« 78KマイコンUSBプログラマをリリース | トップページ | トラ技78K基板でUSB-JTAGを作ってみた »

2008.07.21

PCI Express FPGA評価ボード

今年の夏の新製品として、PCI Express付きFPGA評価ボードを設計しています。

FPGAベンダ純正のPCI Express評価ボードはIPコアの試用期間に制限があったり、また別のベンダの評価ボードはIPコアが別売りだったりという状況なので、PCI Expressを気軽に扱えるFPGA評価ボードがいままでなかったような気がします。
そこで、特電ではPCI Expressに対応したFPGA評価ボードを作ることにしました。

いま考えている基板の、主要なコンポーネントは、
 ・FPGA    Spartan3E
 ・PHY     XIO1100(Texas Instruments)
 ・メモリ    DDR2 SDRAM 256Mbit
 ・コネクタ   PCI Express エッジコネクタ & ケーブル(選択)
 ・ユーザI/O 28本(2.54mmピッチ)
 ・ROM     SPIのROM、16Mbit
 ・サイズ    100mm×70mm (PCI Express ロープロファイル)
 ・その他    7セグLED 4個、DIPスイッチ、プッシュスイッチ、RS232C
という感じの基板になります。

FPGAの選定
FPGAにはPCI ExpressのIPコアを入れたいので、Spartan3以降の品種になります。4層基板で作りたいのでBGAパッケージは256ピンに限定です。
スタンダードなSpartan3にするか、ロジック重視のSpartan3Eにするか、I/O重視のSpartan3Aにするかを決めなければなりません。

Spartan3

左から順に、Spartan3、Spartan3E、Spartan3Aです。Spartan3よりも3Eの方が中心部の電源ピンが減っていて、ユーザI/Oが増えています。一番右はSpartan3Aです。ユーザI/Oは増えたような気がしますが、外側から数えて第6列までユーザI/Oとして使われているので、4層基板では配線するのは困難なようです。

また、Spartan3ANは、どうやらパッケージとデバイスの規模が1対1に対応していて、256ピンだとXC3S200ANしか存在しないので今回はパスしました。Spartan3AとSpartan3ANはROMが入っているかいないか以外にも違いはあるようです。また、Digikeyで規模の大きなSpartan3Aを扱っていません。
Spartan3A/ANには面白い新機能(DNAやVCCAUXが3.3Vでよい、など)があるのですが、配線の引きにくさ、入手性、パッケージの選択などから考えてパスします。

そういう理由からSpartan3Eを使うことにしました。
Spartan3Eの注意しなければならない点は、入力専用ピンがそこらじゅうにあることです。このため、ユーザI/Oがすべて入出力信号に使えるわけではありません。

PHYチップの選定
PCI ExpressのPHYチップは、TexasInstruments社のXIO1100を使います。競合するPHYチップにはNXPのPX1011Aがありますが、こちらはPIPEの速度が250MHzになり、I/O規格はSSTL_2になります。
選定理由はDigikeyで買えることと、配線が引きやすそうなこと、LVCMOSであること、使った実績があること、PIPEの速度が125MHzであることです。

DDR2 SDRAM
まず、PCI Express x1の帯域は、250MBytes/secです。8bit幅だと250MHzの速度で信号が送られてきます。
この速度でメモリへの格納と取り出しを行うには、500MBytes/secのメモリ帯域が必要になります。
8bit幅のDRAMを使う場合、選択肢はDDR2以外にはありません。
しかし、DDR2を500MHzで動かすのは基板設計的にもFPGA的にも難しいので、今回はいけるところまでいくことにします。おそらく250MByte/sec程度になると思います。

また、DDR2を使った場合、DDRを使う場合よりも終端抵抗の数を減らすことができるのもメリットの一つです。
Spartan3EとDDR2をつなぐ場合の、直列・並列の終端抵抗の入れ方については検討中です。
Virtex4や5と違ってVPRやVPNがないので面倒な設計になるかもしれません。

コネクタ
コネクタには、標準的なPCI Expressケーブル用のコネクタも載せることにします。
いわゆる「PCI Express External Cabling 1.0」規格を意識して作ろうと思います。

なぜなら、FPGA評価ボードは、パソコンのマザーボードに挿した状態では基板のデバッグがやりづらいからです。
当社のアルバイトの学生曰く、「FPGA評価基板は机の上に横置き使用できるようでなければならない」とのことなのですが、まさに的を得た意見だと思います。

PCI ExpressのコネクタはMolexで手に入るようです。
Pcie_con

ユーザI/O
ユーザI/Oは2.54mmピッチのピンヘッダにします。
昨今のFPGA評価基板は、1mmピッチや0.5mmピッチの高密度コネクタを使う傾向にありますが、高密度コネクタを使うと万能基板に載りません。FPGA評価基板はそのまま万能基板に載らなければ使いにくいと考えています。

コンフィギュレーションROM
SPI方式のROM。AtmelのAT45DB16Dを乗せます。16Mbitです。

その他
PCI Expressのステートマシンの状態を表示したりするため、7セグLEDを乗せようと思います。

電源の設計
ものすごい種類の電源が必要になります。
5V 電源入力
3.3V FPGAのI/O★大電流
2.5V FPGAのVCCAUX
1.8V DDR2の電源★大電流
1.5V XIO1100のコア電源★大電流
1.2V FPGAの内部電源★大電流
0.9V DDR2の終端電源★大電流
0.9V DDR2のリファレンス

これだけの電源を作り出すために、4電源出力タイプのレギュレータを使うことにします。
Spartan3A評価ボードでも使われているナショセミのLP3906という石です。
この石にはJXXIタイプ、DJXIタイプ、VPFPタイプ、PPXPタイプの4つのタイプがあり、
JXXIタイプは1.2V、3.3V、3.3V、1.8Vをつくり、DJXIタイプは0.9V、1.8V、3.3V、1.8Vを作ります。
Spartan3A評価ボードではJXXIタイプ、DJXIタイプが1個づつ使われています。

こんな感じでだいたいのイメージを描いて見ると、
Pcie_board1
となります。
PCI Expressのカードの形状に合わせるため、基板の半分の領域が無駄になっています。パソコンの拡張スロットに挿すことを完全に放棄して、PCI Expressケーブル専用にしてもいいかもしれません。

この基板のソフト面は、
 ・特電 PCI Expressコア
 ・特電 DDR2コア
 ・MITOUJTAG特別評価版 (このボードでのみ使えるバージョン。無期限)
 ・簡易的なデバイスドライバ
といったものを添付しようと思っています。
つまり、買ったその日からすぐにPCI ExpressやDDR2メモリを扱う自作機器が作れ、何かの機械に組み込みやすいという、本当の意味で使いやすいFPGA評価基板を考えています。

|

« 78KマイコンUSBプログラマをリリース | トップページ | トラ技78K基板でUSB-JTAGを作ってみた »

コメント

コメントを書く



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




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/72023/41924153

この記事へのトラックバック一覧です: PCI Express FPGA評価ボード:

« 78KマイコンUSBプログラマをリリース | トップページ | トラ技78K基板でUSB-JTAGを作ってみた »