« 特電Spartan-6ボード45の販売を再開しました | トップページ | Spartan-6ボードにOV7670を接続 »

2010.09.20

Spartan-6のアプリケーション開発で進展

今日はSpartan-6ボードのアプリケーション開発で大きな進展がありました。

まず、EZ-USB FX2のバルクリード/ライトでハングアップした際に、USBケーブルを抜き差しせずに、ハングアップから復帰する方法がわかったことです。もうちょっと頑張れば、タイムアウト付きのバルクリード/ライト関数が作れるかもしれません。

とりあえずは、コンロトール画面にリセットボタンをつけました。ハングアップしたときにこのボタンを押せば、復旧できます。
Sp6_smpl_1

それから、サンプルアプリケーションを、マルチスレッド化しました。
このアプリケーションは、ボード上のSDRAM内のデータをUSBで取り込みたいときに、画像の横にあるスクロールバーで開始番地が指定できるようになっています。しかし、今まではマルチスレッドではなかったので、バーを摘まんでいる間は、USBの転送が止まってしまっていました。
これをマルチスレッド化したら、スクロールバーをぐりぐり動かすことでSDRAM転送の開始アドレスを変えて、画像をスクロールすることができるようになりました。

いやー、それにしても64Mバイトというのはほんとうに広大なメモリ空間ですね。スクロールバーをぐりぐりしていると、その広さが実感できます。

そして、DDR2 SDRAMコアをマルチポート化しました!!
例えば、ポートAにはUSBの読み書き回路を、ポートBにはデータ収集装置とデータ出力装置をつなぐ、なんてことが簡単にできるようになります。

実験してみたのが↓の図です。

Sp6_smpl_2

上の図は、わかりにくいですが、パソコンからUSB経由で乱数データを送ってDDR2メモリに書き込み、FPGAの中のロジックで縞模様を描いて、それをパソコンに再度取り込んで画像を表示しているものです。

つまり、こういうことをする汎用的なしくみをつくっているわけです。

    カメラ
     ↓
USB⇔DDR2
     ↓
    テレビ

もうちょっと頑張って3ポートのメモリコントローラにすれば、

    カメラ
     ↓
USB⇔DDR2⇔ FPGA内ロジック (MicroBlazeとか)
     ↓
    テレビ

こんな仕組みが出来上がります。

新しいサンプルアプリケーションとDLL、および、FPGAのデザインは、今あるバグが取れ次第、アップロードします。お楽しみに。

|

« 特電Spartan-6ボード45の販売を再開しました | トップページ | Spartan-6ボードにOV7670を接続 »

コメント

コメントを書く



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




« 特電Spartan-6ボード45の販売を再開しました | トップページ | Spartan-6ボードにOV7670を接続 »