• 検索結果がありません。

CTM における HDL 開発

ドキュメント内 untitled (ページ 83-87)

第 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つパルスを出していることが わかる。

ドキュメント内 untitled (ページ 83-87)