ML605

開発キット

評価キットの概要

Xilinx社のVirtex-6を搭載したFPGA開発キットです。2011年に1,995ドルで購入しました。搭載されているVirtex-6はXC6VLX240Tです。
この評価キットを購入する以前は、Spartan3 XC3S1500を搭載した評価キットを主に活用していました。しかし、ロジック容量とFPGAに接続されている外部メモリの帯域に物足りない部分があり、この評価キットを購入しました。

ML605(表)

ML605(表)

ML605(裏)

ML605(裏)

主な搭載機能

XC6VLX240T

LX240Tは、大規模なASICのプロトタイプを目的としなければ、十分なロジック容量があります。ただ、ソフトコア・プロセッサまで実装しようとすると、ロジック容量が不足する場合もあるかも知れません。

ロジックセル CLBスライス CLB分散RAM DSP48E1 ブロック RAM MMCM PCIe
241,152 37,680 3,650Kb 768 14,976Kb 12 2

FPGAデバイスは、ファンの下に隠れています。ファンはかなりうるさいです。

FPGAのファン

FPGAのファン

メモリ

DDR3 SO-DIMM (512MB)です。バス幅は64ビットです。FPGA内部のユーザー回路側では、立ち上がりエッジ同期の128ビットのバスとして見えます。

DDR3 SO-DIMM

DDR3 SO-DIMM

PCIe

PCI Express x8エッジ・コネクタが搭載されています。購入当時、ML605に搭載されているVirtex-6のPCIeは、使用するIPコアのバージョンやパッチの適用など、いろいろと制限があった記憶があります。PCI Expressが搭載されているのは素晴らしいのですが、ML605自体のサイズが大きいため、ML605をPCIeカードとして挿入できるPCの選択肢が限られるのが難点でした。変換基板などを利用すれば、Expressカードスロットのあるノート・パソコンでも利用可能でしたが、その変換基板もあまり一般的ではなく、入手が難しかった記憶があります。

PCIeエッジ・コネクタ

PCIeエッジ・コネクタ

PCI Expressはデバッグに苦労し、結局PCI Expressの本をほとんど読破することになりました。PCI Expressの仕様を理解する目的であれば「PCI Express System Architecture」がお勧めです(英語)。実践的な実装に関するノウハウ本ではありません。

PCI Express System Architecture

PCI Express System Architecture

1000ページ以上あり、本の厚さも10cm位あったため、pdf化しました。

もくじ

もくじ

DVI

Chrontel社製 CH7301C-TF Videoコーデックが搭載されています。Virtex-6からはI2Cでレジスタの設定が必要になります。同期信号とRGBデータを入力するとDVIに変換してくれます。

DVIコネクタ周辺

DVIコネクタ周辺

拡張ポート

2つのFMC拡張ポートが用意されています。FMC拡張ポートは、市販の周辺機器を接続するには良いのですが、自作の機器を接続しようとすると、FMCコネクタの入手性が理由であまり使い勝手が良くありません。ML605には単純なピン・ヘッダは搭載されていないので、ちょっとしたGPIOが使いたい場合に不便に思う事があります。

FMC拡張ポート

FMC拡張ポート

コンフィグレーション

プラットフォームケーブル不要でコンフィギュレーションが行えます。具体的には、一般的なミニUSBケーブルを接続すればコンフィギュレーションが行えます。コンフィギュレーションデータの保持は、基板上のFlash、またはCFカード(System ACE)で行えます。

USBコネクタ(UART用とJTAG用)

USBコネクタ(UART用とJTAG用)

ライセンス

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の方が使い勝手が良い場面がありそうです。

タイトルとURLをコピーしました