EZ-FPGA用モジュールについて

 EZ-FPGAをJTAG通信で使う場合や、コンフィグROM内のユーザーデータをロードする事ができるモジュールがあります。
 言語はすべてVerilogHDLのみですが、最近のデザインツールはVHDLとVerilogHDLを混合利用できるようになっているので、VHDLでも利用できると思われます。
 これらのモジュールとのJTAG通信は、ezfcとEZFPGAライブラリでサポートされています。


jtagspi()モジュール
 8ビットクロック同期シリアルに見立てた、8ビット単位の低レベルな送受信モジュールです。
 シリパラ、パラシリ変換を行いながら、送受信が同時に行われます。
 ホスト側がマスタ(クロック発生器)で、FPGA側はスレーブ動作になり、ウェイト機能等はないので、FPGA側は待ったなしで応答する必要があります。
 JTAGデイジーチェイン接続時は、送信開始/終了時のレスポンスが低下します。

jtagmem()モジュール
 8ビット非同期メモリバスに見立てた、メモリアクセス用モジュールです。
 アドレス空間は最大30bitで1GBです。
 下位プロトコルとしてjtagspi()モジュールをUSER1タップで使用しています。
 ライトパルス等でラッチをかければ、同期バスへの変換も可能です。
 ホスト側がマスタでウェイト機能等はないので、FPGA側は待ったなしでバスアクセスをする必要があります。

xcf_load()モジュール
 コンフィグROMの空きエリアからユーザーデータを読み出し、外部RAM等に書き込みを行うモジュールです。
 8ビットデータの非同期バスに対応しています。ユーザーデータのヘッダコードは不要でコンフィグROMの任意のアドレスから任意のサイズだけ転送できます。
 動作サイクルにウェイト機能等はないので、起動時に外部RAMへプリセットデータを転送した後にユーザーデザインを動作せるような用途に向いています。
 JTAGのUSER2タップからデータも受け付けることが可能なので、コンフィグROMに書き込みを行うことなくデザインやデータの検証を行うことが可能です。

PLL()モジュール
 EZ-FPGA基板上のVCO、TLC2934の発振周波数を任意の周波数に設定するためのPLL回路です。
 他に基準クロックが必要で、基準クロックとVCOクロックの分周費によって周波数を決定できます。
 発振周波数やループ周期等は適切な範囲で使用しないと安定しませんが、PLL分周器をFPGAで組むことで設定範囲の自由度が高くなります。
 PLLの分周比率を算出してくれるツール、vcocalc.exeもあります。