Spartan-6のアプリケーション開発で進展
今日はSpartan-6ボードのアプリケーション開発で大きな進展がありました。
まず、EZ-USB FX2のバルクリード/ライトでハングアップした際に、USBケーブルを抜き差しせずに、ハングアップから復帰する方法がわかったことです。もうちょっと頑張れば、タイムアウト付きのバルクリード/ライト関数が作れるかもしれません。
とりあえずは、コンロトール画面にリセットボタンをつけました。ハングアップしたときにこのボタンを押せば、復旧できます。

それから、サンプルアプリケーションを、マルチスレッド化しました。
このアプリケーションは、ボード上のSDRAM内のデータをUSBで取り込みたいときに、画像の横にあるスクロールバーで開始番地が指定できるようになっています。しかし、今まではマルチスレッドではなかったので、バーを摘まんでいる間は、USBの転送が止まってしまっていました。
これをマルチスレッド化したら、スクロールバーをぐりぐり動かすことでSDRAM転送の開始アドレスを変えて、画像をスクロールすることができるようになりました。
いやー、それにしても64Mバイトというのはほんとうに広大なメモリ空間ですね。スクロールバーをぐりぐりしていると、その広さが実感できます。
そして、DDR2 SDRAMコアをマルチポート化しました!!
例えば、ポートAにはUSBの読み書き回路を、ポートBにはデータ収集装置とデータ出力装置をつなぐ、なんてことが簡単にできるようになります。
実験してみたのが↓の図です。
上の図は、わかりにくいですが、パソコンからUSB経由で乱数データを送ってDDR2メモリに書き込み、FPGAの中のロジックで縞模様を描いて、それをパソコンに再度取り込んで画像を表示しているものです。
つまり、こういうことをする汎用的なしくみをつくっているわけです。
カメラ
↓
USB⇔DDR2
↓
テレビ
もうちょっと頑張って3ポートのメモリコントローラにすれば、
カメラ
↓
USB⇔DDR2⇔ FPGA内ロジック (MicroBlazeとか)
↓
テレビ
こんな仕組みが出来上がります。
新しいサンプルアプリケーションとDLL、および、FPGAのデザインは、今あるバグが取れ次第、アップロードします。お楽しみに。
| 固定リンク



コメント