Spartan-6評価ボードのサンプルデザインを更新
特電Spartan-6評価ボードのサンプルデザインを更新しました。
http://www.tokudenkairo.co.jp/sp6/
主な更新点は、DDR2メモリコントローラを、MCB(Memory Controler Block)に対応したことです。
これによって、ついにメモリアクセス時のビットエラーが根絶できました。
MCBを作ったXILINXの中の人は凄いので、電流やタイミングのキャリブレーションとかを自動的にしてくれるそうです。とにかく安定しています。いままでは私が作ったオリジナルなDDR2メモリコントローラを使うデザインだったのですが、IODELAY2の調整が難しかったのも事実です。やっぱりハードマクロの安心感は桁違いです。
私が作ったのは、MCBをラッパして使いやすくするための回路です。この回路はddr2mcb.vhdというソースコードで与えられます。どのアドレスから、何バイト読み出したいか、という指令を与えると、自動的にMCBを叩いてアクセスしてくれます。1回の指令で64Mバイト全域のアクセスも可能です。
また、MCB自体がマルチチャネルなので、このラッパもマルチポート(2ポート)になっています。USBからアクセスしている間にも、GPIOから受信したデータをDDR2メモリに書き込むということが簡単にできるようになりました。
これで、Spartan-6を汎用のデータキャプチャ装置や、データ出力装置として使うための準備が整いました。
次はUSBとDDR2メモリまわりのロジックをカプセル化して、ユーザアプリケーションをもっと作りやすくするためにソースコードを整理しようかと思います。
Spartan-6のIOは実はすごい能力を持っています。ISERDESを使えば1GHzの速度でI/Oをサンプリングできますし、IODELAY2をつかって数十ps単位でタイミングをずらすことができます。等価サンプリングでI/Oを動かせば、特電Spartan-6ボードを使って、数十GHz相当のロジアナが作れるのではないかと考えています。
そのデータを溜め込むためにも、信頼のおけるDDR2メモリアクセスが必要だったわけです。
| 固定リンク
コメント