« FPGAをステップ実行させて、波形を観る | トップページ | Spartan3Eの内蔵プルアップ/ダウン抵抗 »

2008.12.05

PCI Expressの基板実装完了。即座に動作確認!

PCI Expressの基板が実装完了しました!!

Spartan3E & XIO1100 PCI Express evaluation board

新しく基板を作ったときって、やっぱり火入れはドキドキします。

ACアダプタから電源(5V)を供給し、JTAGをつなげるとSpartan3Eが認識されました。
まずは一安心。ちゃんと生きているようです。
Xc3s1200e

そして、基板上の3.3V、2.5V、1.8V、1.5V、1.2V、0.9V(VREF)、0.9V(VTT)の各電圧を確認。
OK。電圧はちゃんと出ているようです。

次に、バウンダリスキャンでLEDを点灯
 if(SW_IP[0] == 1) { for(int i = 0 ; i < 256; i++) LED_OP <= ~i; Sleep(100); }
とやれば、タクトスイッチが押されたときにLEDが点滅します。
ここまで動けばかなり安心。

そして最後に、バウンダリスキャンでPCI ExpressのPHYチップを操作してみます。

まず、簡単な治具を作って、2.5Gbpsの高速シリアル信号のループバックと、リファレンスクロックを供給を行うようにします。これでPHYチップが動作する環境が整いました。
Jigu


今回使ったPHYチップは、Texas Instruments社のXIO1100です。

データシートによれば、このICを動作させるには、FPGAからPHYへ出力するTX_ELECIDLEとTX_DET_LOOPBACKをHに、POWERDOWNを"10"にしてリセットを解除すればよさそうです。
その後、POWERDOWNを"00"にし、TX_ELECIDLEとTX_DET_LOOPBACKをLにします。
そしてTX_CLKとTX_DATAとTX_DATAKを送信すれば、高速シリアルラインにデータが現れ、上の写真の治具でループバックして戻ってきます。PHYはその信号をデコードしてRX_DATAとRX_DATAKを出力し、それがFPGAの端子から読み出されるというわけです。

FPGAにこういう動作をさせるJTAGスクリプトを組んで、実験してみました。
スクリプトは下のリンクからダウンロードできます。
■「phytest.cpp」をダウンロード

Bscan_phy

TXDATAにCOMシンボルと、電気的アイドル(D0.0)を送信すると、ちゃんと受信から読み出されました。

今までの常識で考えれば、FPGAにこういう波形を作らせてPHYチップなどの応答を調べたいと思ったとき、FPGAにテスト回路みたいなものを入れて試さなければなりませんでした。しかし、FPGAを毎度毎度論理合成して実験するとなると、そのたびに何分もかかってしまい、時間の無駄です。

上の波形はMITOUJTAG Proのバウンダリスキャンを使っているので、FPGAの中身は空のまま論理合成しないで動いています。論理合成していないので、ソースコードを変更してから実際に動作するまでの待ち時間は5秒くらいで済みます。

したがって、COMのあとに、D0.0ではなく、COM、COM・・と送ったらどうなるだろうか、とか、TX_ELECIDLEをHにしたままだとどうなるだろうか、といったことを思いつくまま気軽に実験してみることができました。
上の波形は綺麗に取れていますが、実は、この波形をとるまでにいろんな信号を入れて試しているのです。

この評価ボードの動作が確認でき次第、PCI Express IPコア(この評価ボード上のみで動くバージョン)とセットで販売する予定です。来年早々の販売開始が目標です。

|

« FPGAをステップ実行させて、波形を観る | トップページ | Spartan3Eの内蔵プルアップ/ダウン抵抗 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« FPGAをステップ実行させて、波形を観る | トップページ | Spartan3Eの内蔵プルアップ/ダウン抵抗 »