第 5 章 エレクトロニクスの量産とコミッショニ ングの準備ングの準備
5.4 CTM における HDL 開発
RxFPGA
PSボードからのトリガーマトリックスを処理するFPGAで、CTMには10個搭載されている。
このFPGAにはXilinx社製のXC2S50E-TQ144PINを用いている。そのICの仕様を、表5.5に 載せる。CTMにはCAT6のコネクタ(LVDSシリアル信号を受け取るコネクタ)が10個ある ため、それぞれのコネクタを1個のFPGAで処理するように設計されている。この数のFPGA で、M2およびM3であれば1/12セクターの1/4をカバーすることが可能である。
表5.5: RxFGPGAの仕様
システムゲート数 ロジックセル 総CLB 分散RAM ブロックRAM ユーザーIO
50K 1728 384 24K 32K 102
TxFPGA
RxFPGAからの信号を受け取り、実際にトリガーを出すFPGAである。CTMには1個搭載
されており、この1個で10個のRxFPGAを処理する。TxFPGAにはXilinx社製の XC2S50E-PQ208PINを用いている。このICはRxFPGAに使われているICとユーザーIO数が異なるの みで、ユーザーIOは146PINである。TxFPGAからトリガーされた信号は、NIMシグナルと してアサートされる。NIMコネクタは4つ搭載されており、最大で4本のトリガーシグナルを 出すことが可能になっている。
5.4.2 トリガーを出すHDL開発
SLB ASICから出されるトリガーマトリックスから、トリガーを出すHDLを開発した。その
概要図を図5.17に載せる。その過程で重要になるのは、PSボードからのLVDSシリアル信号 クロックと、ボードのクロックのスキューを合わせる事と、任意のトリガーマトリックスから トリガーを出すことである。以下、RxFPGAとTxFPGAに分けてそのHDLの概要について述 べる。
図5.17:トリガーを出すHDLのブロック図
RxFPGAの役割
RxFPGAでは3つのことを行っている。
• クロックスキューを合わせる
• すべてのトリガーマトリックスを捕らえる
• ケーブル対のマスク
まず、クロックスキューは、Independent CLK FIFOによってあわせている。このFIFOは書 き込みと読み込みのクロックが異なってもよいFIFOで、書き込みをLVDS信号のクロック、読 み込みをボード上のクロックにすることによって、スキューを合わせる事が可能になる。
また、そのFIFOに書き込むときにIdle状態以外なら書き込めというロジックを入れている。
これによって、すべてのトリガーマトリックスを捕らえることが可能になる。
最後にケーブル対のマスクである。ここでケーブル対とは、CAT6の信号線の対のことであ る。CAT6は8本の信号線によって成り立っており、2本ずつ4つのペアとして差動シリアルに しているのである(図5.18)。それぞれ1,2対、3,6対、4,5対、7,8対となっているのが一般的 で、PSボードもそのような仕様になっている。このケーブル対は、PSボードによっては4対 すべてを使っていないボードもあり、そのマスクをする必要がある。今回はレジスタによって 制御可能になっている。
1,2 pair 3,6 pair 4,5 pair 7,8 pair 図5.18: LVDSの信号線のペア
TxFPGAの役割
TxFPGAでは各RxFPGA単位でのマスク、およびRxFPGAからの信号をまとめるロジック
を入れてある。RxFPGA単位でのマスクにはそのようなレジスタを実装してある。そしてその マスクがあいているRxFPGA信号のORをとり、最終的にトリガーをアサートしている。
5.4.3 トリガーを出すHDLの検証
図5.19にクロックスキューをあわせるモジュールの論理合成シミュレーションの図を載せる。
Independent CLK FIFOに書き込むクロックを読み込むクロックとずらしているが、しっかり読
み出しが行えていることがわかる。また、実際にPSボードからのトリガーマトリックスを受 け取り、トリガーを出すことをオシロスコープにて確認した。
xin rcvclk dump_out
図5.19: クロックスキューをあわせるモジュールの論理合成シミュレーション
わざとクロックのスキューをずらしてFIFOに入れているときの論理合成シミュレーション。書き込みクロックが rcvclkである。このクロックに合わせてデータ(xin)を入れ、読み出しクロック(dbclk)で読み出せるかをシミュ レーションした。アウトプットであるdump outが、入力したデータと同じように2つパルスを出していることが わかる。