BitBangModeを利用したFPGAコンフィグレーションソフト
 BitCfg3

2009/09/14-

2012年04月04日 EDA-301/EDX-301に対応しました Ver3.2
2010年01月27日 新コンフィギュレーションソフト BBC BASICを公開しました。併せてご覧下さい
古いバージョンの動作説明は、こちらをご覧下さい。
 BitCfig3は、当社のEDX/EDAシリーズのうち、FTDIチップのBitBangMode(ビットバンモード)を用いて、USB経由でFPGAにコンフィグレーションするためのソフトウエアです。
 弊社製品のコンフィグレーションはもちろん、 ソースを公開しておりますので、ご自由に改造や応用をしていただけます。

下記製品に対応しております。
■ALTERAシリーズ
Model 概要 コマンドライン引数
FTDI_DESCRIPTION
EDA-002 ALTERA社FPGA EP1K10TC100 教育用ボード "EDA/EDX-002 HuMANDATA LTD."
EDA-003 ALTERA社FPGA CycloneII 搭載 USB-FPGAボード "ED-CONFIG HuMANDATA LTD. A."
EDA-004 ALTERA社FPGA CycloneIII 搭載 USB-FPGAボード "EDA-004 HuMANDATA B"
EDA-301(※1) ALTERA社FPGA CycloneIV 搭載 USB-FPGAボード "EDA-301 HuMANDATA B"
■XILINXシリーズ
Model 概要 コマンドライン引数
FTDI_DESCRIPTION
EDX-002 XILINX社FPGA XC2S15 教育用ボード "EDA/EDX-002 HuMANDATA LTD."
EDX-004 XILINX社FPGA XC2S15 教育用ボード "EDA/EDX-002 HuMANDATA LTD."
EDX-005 XILINX社FPGA Spartan3AN搭載 USB-FPGAボード "ED-CONFIG HuMANDATA LTD. A"
EDX-006 XILINX社FPGA Virtex-5 搭載 USB-FPGAボード "EDX-006 HuMANDATA B"
EDX-301(※1) XILINX社FPGA Spartan-6 LX 搭載 USB-FPGAボード "EDX-301 HuMANDATA B"
(※1)Ver3.2より対応しています
 FTDIのUSBチップのBitBangModeを利用したFPGAをコンフィグレーションを行うための方法について説明いたします。
ビットストリーム(***.bit/***.rbf) をUSB経由からダウンロードすることによって、FPGAのコンフィグレーションを行います。コンフィグレーションモードは次のようになります。
FPGAベンダー ALTERA XILINX
Configモード Passive Serial Slave Serial
データファイル形式 rbfファイル bitファイル

 BitCfg3は、拡張子によりALTER・XILINXを自動的に判断しコンフィグレーションを行います。
詳しくはソースプログラムを公開していますので、そちらをご覧下さい。短いプログラムですので容易に理解していただけるかと思います。
 ALTERAとXILINXのコンフィグレーションモード。(BitCfg3はJTAGではなく、FPGAのシリアルコンフィグレーション動作を行います)


FTDIチップにおけるピンの割付はのようになります。
FT245B/R FT232B/R FT2232H/FT2232D 方向 XILINX ALTERA 備考
Data0 TXD Data0(A/B) OUT CCLK DCLK
Data1 RXD Data1(A/B) OUT PROG nCONFIG
Data2 RTS Data2(A/B) OUT DIN DATA0
Data3 CTS Data3(A/B) IN DONE CONF_DONE
Data4 DTR Data4(A/B) -- --
Data5 DSR Data5(A/B) OUT FT_OE (FT_OE) EDX-301のみ
Data6 DCD Data6(A/B) -- --
Data7 RI Data7(A/B) -- --
※BitCfgはピン割付が一致していれば、当社製品でなく、お客様の回路や、他社のFTDIチップを搭載したモジュールでも動作いたします。
 ALTERAとXILINXでのシリアルデータのビットの順番が異なるだけで考え方は同じです。XILINXの場合0xAAを1010 1010と送信するのに対し、 ALTERAでは0101 0101と送信します。データの入力が終わっても、動作が開始するまでいくつかのCCLK/DCLKを与える必要があります。

実行時画面

BitCfg(V3)では以下の改良を行いました。

■引数でターゲットハードを指定できるように変更(/D)
 コマンドライン引数にFTDI_DESCRIPTIONを指定します。
/D="EDA/EDX-002 HuMANDATA LTD.":EDA-002またはEDX-002
/D="ED-CONFIG HuMANDATA LTD. A.":EDA-003またはEDX-005、EDX-005(FT2232DのAポートを使用)
/D="EDA-004 HuMANDATA B":EDA-004(FT2232HのBポートを使用)
/D="EDX-006 HuMANDATA B":EDX-006(FT2232HのBポートを使用)
/D="EDX-301 HuMANDATA B":EDX-301(FT2232HのBポートを使用)
/D="EDA-301 HuMANDATA B":EDA-301(FT2232HのBポートを使用)
 従ってお客様の作られたコンフィグレーションハードウエアでも、ピン割付が同じであれば、引数の変更で対応可能です。

■引数でコンフィグレーションクロックレートを設定できるように変更(/C)
 コマンドライン引数でクロックレートを指定
"/C=1000000" : (デフォルト)
クロックレートと、実際の周波数の関係はUSBチップの種類により異なります。この値は、FT_SetBaudRate()に与えるパラメータを設定することになります。
■引数でコンフィグレーションデータを指定し起動と同時にコンフィグレーションすることができるように変更(/F)
 コマンドライン引数でコンフィグレーションファイルのフルパスを指定
"/F=C:\ABC\DEF\conf_data.bit" : xilinxの場合の例
"/F=C:\ABC\DEF\conf_data.rbf" : alteraの場合の
 /F=によるファイル指定がある場合は、コンフィグレーションを試みてすぐに終了します。
 正常時終了コード:0、異常時終了コード:-1などゼロ以外。

引数の/D /F /Cは全て大文字であること。また引数の厳密なチェックは行っていません。
一つでも引数を設定する場合は、必ず/Dオプションが必要です。
一つも引数が無いときは従来のロジックに従って、EDA/EDX-002、EDA-003、EDX-004、EDX-005を見つけて設定します。(同時使用はできません)
EDX-005でクロックレートを変更するときのBATファイル例 (拡張子をtxtからbatに変更してください)

@echo off
start BitCfg /D="ED-CONFIG HuMANDATA LTD. A" /C=3000000
exit
ソース一式のダウンロードはこちらをクリックしてください
2010/01/15 xilinx使用時クロックレートを上げられるようになりダウンロードが高速になりました。
2012/04/04 EDA-301とEDX-301に対応しました。
高速になった理由:
 下図(xilinx社データシートより引用)のTplを確保することでクロックレートを上げられるようになりました。

 今回の改良により
■ PCの起動と同時にアプリケーションの動作をはじめることができる
■ ユーザプログラムにコンフィグレーションロジックを組み込まなくても、BitCfg3を外部プログラムとして呼び出してコンフィグレーションを行うことができる
■ ショートカットに引数を追加しておけば、アイコンのクリックでコンフィグレーションが可能
などが可能となりました。
 プログラムに自信のある方は、FTDI社のDLLを呼び出して直接操作することも難しく無いと思われます。
メールでのご質問はこちらへどうぞ

HDLのホームページへ