EZ-FPGAライブラリ

 EZ-FPGAを簡単に使うためのモジュール、ライブラリ、ツールです。

対応インターフェース

mini EZ-FPGAとXilinx Paralell CableIII互換ケーブルに対応しています。
mini EZ-FPGAで使用するためには、あらかじめEZ-USB用のデバイスドライバをインストールしておく必要があります。
パラレルポートで使用するためにはOSにgiveio.sysを組み込むか、同一ディレクトリにgiveio.sysをおいておく必要があります。更に実行にはアドミニ権限が必要です。

JTAG通信

EZ-FPGAに搭載されているFPGAのSpartan2は、JTAGインターフェースからデザインのコンフィグレーション(ダウンロード)が可能なことに加え、ユーザーデザイン上で通信するためのタップがあります。
EZ-USBのJTAG通信はTyp.1Mbps程度の速度なので大量高速転送には向きませんが、JTAG信号だけで使用可能なので、ちょとした制御には便利な機能です。
EZFPGAライブラリでは、FPGAのコンフィグレーション制御やコンフィグROMの読み書きに加え、このJTAG通信機能を使うためのモジュール、ライブラリ、プログラムを提供しています。

2006.2.xx版からオープンソースになり、JTAGデイジーチェインにも対応しました。
旧版との相違点はこちらで、旧版から移行する場合にはいくつか注意点があります。

VCO & PLL

 最近のFPGAにはDLL(ディレイロックドループ)や、PLL(フェーズロックドループ)が内蔵されており、クロック周波数をある程度自由に変換できるようになっています。
 EZ-FPGAに搭載されているFPGAは少し前のFPGAなのでPLLやDLLを内蔵していないので、VCO(電圧で周波数が変化する発振器)ICのTI製TLC2934を基板上に搭載しています。

 VCOは通常はPLL(フェーズロックドループ)と組み合わせて使用します。
 正確な基準クロックを入力し、基準クロックとVCOクロックを別々の比率で分周した後に比較して両方が一致するようにVCOのチューニング電圧をドライブすると、VCOが規定の周波数に定まります。

 EZ-FPGAではPLL回路をFPGAのロジックでデザインするように設計されています。
 EZ-FPGAライブラリでは、PLLの標準的なロジックのモジュールと、PLLの分周比率を算出してくれるツールvcocalc.exeを提供しています。


EZ-FPGA用モジュール

jtagspi()モジュール
8ビットクロック同期シリアルに見立てた、8ビット単位の低レベルな送受信モジュールです。
jtagmem()モジュール
8ビット非同期メモリバスに見立てた、メモリアクセス用モジュールです。
xcf_load()モジュール
コンフィグROMの空きエリアからユーザーデータを読み出し、外部RAM等に書き込みを行うモジュールです。
PLL()モジュール
EZ-FPGA基板上のVCOの発振周波数を設定するための回路です。
 各モジュールの詳細はこちらを参照して下さい。

EZFPGAコントローラ ezfc

テキストで書かれた簡単なスクリプト命令を実行するプログラムです。
FPGAのコンフィグレーション、コンフィグROMへのユーザーデータの配置と書き込み、JTAG通信等が簡単に行えます。
詳しくはこちらを参照して下さい。


ホストPC側EZ-FPGAライブラリ

C言語でプログラムを記述して、EZFPGAライブラリをリンクすることでezfcで処理出来ない条件判定や複雑な処理を行うことができます。
FPGAのコンフィグレーションとシャットダウン、コンフィグROMのイレースと書き込みに、FPGA側モジュールとのJTAG通信機能がライブラリ化されています。
EZ-FPGAライブラリはDLL形式と、GCC(MinGW)とMicrosoftVisualC 6.0用のスタティックリンク形式のライブラリがあります。
VisualC 6.0を使用する場合、ライブラリに"Advapi32.lib"を指定して下さい。


ダウンロード

ezfpga060303.lzhEZ-FPGAライブラリ一式(060303)
ezfpga060303src.lzhEZ-FPGAライブラリソース一式(060303)
EZ-FPGAライブラリ説明書
EZ-FPGAライブラリファイルツリー
変更履歴

過去のバージョン
ezfpga060221.lzhEZ-FPGAライブラリ一式(060221)
ezfpga060221src.lzhEZ-FPGAライブラリソース一式(060221)