評価キットの概要
Xilinx社のVirtex-6を搭載したFPGA開発キットです。2011年に1,995ドルで購入しました。搭載されているVirtex-6はXC6VLX240Tです。
この評価キットを購入する以前は、Spartan3 XC3S1500を搭載した評価キットを主に活用していました。しかし、ロジック容量とFPGAに接続されている外部メモリの帯域に物足りない部分があり、この評価キットを購入しました。
主な搭載機能
XC6VLX240T
LX240Tは、大規模なASICのプロトタイプを目的としなければ、十分なロジック容量があります。ただ、ソフトコア・プロセッサまで実装しようとすると、ロジック容量が不足する場合もあるかも知れません。
ロジックセル | CLBスライス | CLB分散RAM | DSP48E1 | ブロック RAM | MMCM | PCIe |
241,152 | 37,680 | 3,650Kb | 768 | 14,976Kb | 12 | 2 |
FPGAデバイスは、ファンの下に隠れています。ファンはかなりうるさいです。
メモリ
DDR3 SO-DIMM (512MB)です。バス幅は64ビットです。FPGA内部のユーザー回路側では、立ち上がりエッジ同期の128ビットのバスとして見えます。
PCIe
PCI Express x8エッジ・コネクタが搭載されています。購入当時、ML605に搭載されているVirtex-6のPCIeは、使用するIPコアのバージョンやパッチの適用など、いろいろと制限があった記憶があります。PCI Expressが搭載されているのは素晴らしいのですが、ML605自体のサイズが大きいため、ML605をPCIeカードとして挿入できるPCの選択肢が限られるのが難点でした。変換基板などを利用すれば、Expressカードスロットのあるノート・パソコンでも利用可能でしたが、その変換基板もあまり一般的ではなく、入手が難しかった記憶があります。
PCI Expressはデバッグに苦労し、結局PCI Expressの本をほとんど読破することになりました。PCI Expressの仕様を理解する目的であれば「PCI Express System Architecture」がお勧めです(英語)。実践的な実装に関するノウハウ本ではありません。
1000ページ以上あり、本の厚さも10cm位あったため、pdf化しました。
DVI
Chrontel社製 CH7301C-TF Videoコーデックが搭載されています。Virtex-6からはI2Cでレジスタの設定が必要になります。同期信号とRGBデータを入力するとDVIに変換してくれます。
拡張ポート
2つのFMC拡張ポートが用意されています。FMC拡張ポートは、市販の周辺機器を接続するには良いのですが、自作の機器を接続しようとすると、FMCコネクタの入手性が理由であまり使い勝手が良くありません。ML605には単純なピン・ヘッダは搭載されていないので、ちょっとしたGPIOが使いたい場合に不便に思う事があります。
コンフィグレーション
プラットフォームケーブル不要でコンフィギュレーションが行えます。具体的には、一般的なミニUSBケーブルを接続すればコンフィギュレーションが行えます。コンフィギュレーションデータの保持は、基板上のFlash、またはCFカード(System ACE)で行えます。
ライセンス
ISE Logic EditionのVirtex-6 LX240T限定ライセンスが付属しています。ChipScopeも使えます。
実際の活用
この開発キットを購入した一番の理由は、Spartan3 XC3S1500よりも大きなロジック容量のFPGAに、リアルタイム3Dグラフィクス機能をフル実装することでした。Spartan3 XC3S1500では、ロジック容量の都合で、3Dのジオメトリ処理をソフトウェアで行っていたため、満足なパフォーマンスが得られませんでした。また、ラスタライザのアーキテクチャもロジック容量の都合でかなり妥協が必要でした。ML605であれば、これらの妥協点の改善が期待できました。
ここで、少し問題になるのがプロセッサです。リアルタイム3Dグラフィクスの処理にはプロセッサが必要になりますが、ML605にプロセッサを接続しようとすると、選択肢は
- PCをPCIeで接続する
- Virtex-6にソフトコア・プロセッサを内蔵する
のどちらかです。
このようなことを検討している間に、ZedBoardが販売されました。ZedBoardに搭載されているZynq-7020には、Cortex-A9が内蔵されているため、プロセッサについて悩む必要がありません。このため、途中でメインの開発キットをZedBoardに変更してしまいました。結局、この開発キットはあまり活用していません。
また、この開発キットは、OpenSPARCを実装して試すのに最適だと考えていたのですが、ZedBoardを入手したことなどが理由で結局こちらも試していません。
今となってはかなり旧型の開発キットですが、用途によってはZedBoardよりもML605の方が使い勝手が良い場面がありそうです。