あけましておめでとうございます
皆様、あけましておめでとうございます
年末から今にかけ、データ転送コアの開発を行っていました。
といっても、本来の目的である4方向のデータ交換まではまだ到達せず、
EZ-USB FX2とFPGA内でのデータ転送でハマってしまっていました。
いまあるSP6ボードのサンプルデザインでは、EZ-USB FX2とFPGAはともにUSBのクロック(48MHz)で動かすような仕様になっています。しかし、これは使いやすいとはいえません。なぜなら、FPGAの中のユーザロジックは任意の速度で動かしたいわけです。
USBとユーザロジックというクロックドメインの異なる回路間でデータを受け渡しするには、非同期回路のテクニックが必要になります。
ISE11.4のCoreGeneratorにはFIFO Generatorが内蔵されていて、いろんなFIFOを作ってくれます。その中に非同期FIFOもあるのですが、これを使ったのがハマりの源でした。
FIFOの出力であるEMPTYやFULLといったフラグ、それから残量値の出るタイミングが、正直言ってよくわからないのです。どちらかのクロックに同期しているのか、それとも両方のクロックがきた後に更新されるのか。
ハマりにハマってようやく動くようになってきました。でもまだ完璧ではないので、ユーザ側のロジックのクロックは12.5MHz以上ないとうまくいきません。
ともかく、今日か明日には、ドキュメント付きでEZ-USB FX2の汎用FPGAインタフェース回路を公開できるようにしたいと思います。
今年もよろしくお願いします。
| 固定リンク


コメント