====== G-Link ====== ここでは G-Link という通信規格を扱います。 G-Link は光通信の規格で、NIM のような電気信号に比べて高速でデータを送受信可能です。 ただ、ここで扱いたいのは G-Link とはなんたるぞや、という話ではなくて、何らかの素子を扱うにはどうしたらよいかということです。 ===== データシート ===== G-Link に限った話ではないですが、データシートを参照します。 データシートというのは素子ごとにメーカーが用意する「取扱説明書」であり、ユーザーからしたら「教科書」みたいなものでもあります。 その素子がどんな役割を持っているのか、またそれぞれのピンにはどんな信号をつなげばいいのか、といったことが全てこのデータシートの中に書いてあります。 なので、初めての素子を使う時にはこのデータシートを熟読しないといけません。 データシートはにはメーカーが提供する全ての情報が書いてあります。 なので、これを熟読しておけばその素子のプロになれます。 教員から「こんなこと出来るんじゃない?」とか言われても、データシートでダメと書いてあればダメです。 では、実際に G-Link に使われる石のデータシートを少し見てみましょう。 G-Link の Transmitter/Receiver チップは HDMP-1032A/1034A という型番の Agilent(Hewlett-Packard) の素子です。( A がついていない 1032/1034 というチップは一世代古いチップのはずです ) そのチップのデータシートは [[http://www-he.scphys.kyoto-u.ac.jp/research/ATLAS/dokuwiki/lib/exe/fetch.php?media=testbench:introduction_to_verilog_hdl:hdmp-1032a.pdf|データシート]] にあります。 ここにこのチップの各ピンの説明、どんな電源を与えればいいのか、データレートはどこまで耐えられるのかなどなど色んな情報が書いてあります。 まずはざっと見てみてください。 ===== G-Link Tx ===== 実際に Transmitter 側のチップである HDMP-1032A を使って G-Link を送信する PT6 ファームウェアを見てみましょう。 データシートの p.16, p.17 に このチップのピンの説明が書いてあります。 ここは特にじっくり見るようにしましょう。 ここを読み飛ばしたことによってミスることはよくあります。 例えば、ある機能を ON にするためにピン "A" を High にするのか, Low にするのかという定義を勘違いしたために、1日無駄にしたというのはよくあるお話です。 ここを見ながら分かることをザクザク書き出してみましょう。 * TXDIV ( ピン 26, 27 ) 横に説明がつらつら書いてありますが、Figure.2 を見に行った方が分かりやすいと思います。 この 2 bit で data/word rate をコントロールしています。 何 MHz のクロックを入れるかを考えて決めましょう。 ATLAS の場合 ( というか LHC のクロックを使う場合 )、40 MHz のクロックを使います。 TXDIV が 2'b00 の場合 40-70 MWord/sec, 2'b01 の場合 20 - 45 MWord/sec と書いてあります。 2'b00 でもリンクはとれるのかもしれませんが、レンジのギリギリで使いたくは無いので 2'b01 で使うべきなんだということが分かります。 また、2'b10 に設定すると許容レンジ 13-26 MWord/sec ということで 40 MHz のインプットはリンクがとれません。 これを利用して一旦リンクを切って、リンクをとり直すということが可能です。 完全に余談ですが、TGC の人たちはこの操作を "カチカチ" と呼びます。 * TXFLAG, TXFLGENB ( ピン 6, 10 ) G-Link は通常 TX[15:0] を利用して 16 bit/word でやりとりします。 が TXFLGENB を High にすることで TXFLAG を 17 bit 目として扱うことが出来るようになります。 * TXCNTL, TXDATA ( ピン 4, 5 ) G-Link には data/control/idle という 3 種類の word があります。 TXDATA が High で TXCNTL が Low なら data word、その逆が control word, 両方 Low なら idle word です。 リンクがおかしくなった時には上記の TXDIV を "カチカチ" する以外に、idle word を送るということでもリンクをリセットすることが出来ます。 他にも色々と説明が書いてありますので、ひと通り見てみてください。 これらが分かれば、 このファームウェアも理解出来ると思います。