Xiliinx SpartanII コンフィグレーションプログラム
Version 1.14
Copyright (C) 2002,2003 Tatsuyuki Satoh
目次
1.概要
2.はじめに
3. 使用上の注意
4.動作環境
5.USBアダプターの制作方法
6.プログラムの実行方法
7.その他
8.参考資料
9.変更履歴
10.謝辞
1.概要
Cypress EZ-USB(AN2135SC)か、Xilinx標準Parallelケーブルを使用して、
Xilinx FPGA SpartanIIをPCからコンフィグレーションするプログラムです。
Webpackに付属のプログラマiMPACT.exeの代わりに使用します。
将来的にはiMPACT.exeと置き換えることで、デザイン後−>全自動コンフィグ
という形にしたいです。
必要と余力が発生すれば、CPLDにも対応するかもしれません。
2.はじめに
Xilinxの無償デザインツールWebpackに付属のiMPACTは高性能なプログラマで、
アマチュアユースの場合、回路図の公開されているパラレルケーブルを用いて
コンフィグレーションを行いますが、いくつか不便を感じます。
・起動時間が長い
・コンフィグレーション速度が遅い
・起動するたびに、選択+右クリック+プログラムの操作が必要。
・パラレルケーブルは相性の悪いPCがある。
・高性能なISP用プローブは値段が高い
そこで、Cypress EZ-USB(AN2135SC)を使用したUSBインターフェースを用いれば、
パラレルケーブルよりも高速にプログラムを行ない、パラレルポートを持たないノ
ートPCや、パラレルポートの相性の問題も少なくなくまります。
当然iMPACTはEZ-USBをサポートしませんので、独自の制御プログラムが必要です。
3. 使用上の注意
このプログラムはフリーソフトウェアです。
著作権は、作者(佐藤 達之およびドライバーの作者)が保持します。
このプログラムの使用によるいかなる損害に対しても、作者は責任を負いません。
転送、配布、公開は基本的にフリーです。
ただし、下記の項目については作者に無断で行うことを禁止します。
1) アーカイブの一部を、改造/削除/追加したものを配布すること。
2) 配布することによってお金を得ること。(手数料もダメです!)
3) その他、著作権法にふれる行為。
4.動作環境
OS: Windows98/2000/Me/XP,ただしドライバーにも依存
+----------+-------------+-------+-------------+-----------------+
|プログラム| OS | I/F |ハードウェア | 備考 |
+----------+-------------+-------+-------------+-----------------+
|SPCISP本体| Win32 | |制約なし | 各種ドライバ依存|
+----------+-------------+-------+-------------+-----------------+
各種プローブ用ドライバー
+------------+------+--------+---------------+----------+---------------+
|DLL名,名称 | OS | I/F |ハードウェア |Dev.Driver| 備考 |
+------------+------+--------+---------------+----------+---------------+
|spc_usb2.dll|Win98 |USB 1.1 |MINI-USB他,各種|ezusb.sys |AN2131SC/2135SC|
|EZ-USB SPI |/2K/XP| |AN2131SC/2135SC|(*1) |両対応高速版 |
+------------+------+--------+---------------+----------+---------------+
|spc_xpar.dll|Win98 |Paralell|Xilinx |giveio.sys|Xilinx標準 |
|Xilinx P.III|/2K/XP|(*2) |Parallel |(*3) |HDL製XC2で確認 |
| | | |Cable III他 | | |
+------------+------+--------+---------------+----------+---------------+
|spc_apar.dll|Win98 |Paralell|Altera |giveio.sys|Altera標準 |
|Altera B.B. |/2K/XP|(*2) |ByteBlaster? |(*3) |現在確認不可 |
+------------+------+--------+---------------+----------+---------------+
|spc_usb.dll |Win98 |USB 1.1 |PRD_SM2改他 |ezusb.sys |SPI版切り替えで|
|AN2135SC |/2K/XP| |AN2135SCベース |(*1) |打ち切り |
+------------+------+--------+---------------+----------+---------------+
|spc_pdc.dll |Win98 |USB 1.1 |USB-PDC |ezusb.sys |spc_usb.dllの |
|USB-PDC |/2K/XP| |他AN2131SC |(*1) |AN2131版(*4) |
+------------+------+--------+---------------+----------+---------------+
*1:Cypress EZ-USB開発キットのソフトウェアに含まれている
EZ-USB用デバイスドライバー
*2:EPP/ECP等の種類を問わないが、LPT1==アドレス0x378が望ましい
*3:WindowsNT/2K/XPで必要
*4:FREE WINGさんにより構築、ご提供物。
spc_usb2.dllへの移行をお勧め
http://hp.vector.co.jp/authors/VA014069/
5.USBアダプターの制作方法
EZ-USBの場合、AN2131SCかAN2135SCが搭載され、EEPROM未接続のEZ-USB
モジュールで、指定のポートが空いているものが必要です。
EEPROMを未接続にして、回路図を参考にEZ-USBのポートから配線を引き出
して、JTAG-ISPケーブルを制作します。
ドライバーは、SPI版,AN2135SC版、USB-PDC版(AN2131SC)の3種類がありま
すが、SPI版が最も高速なのでそちらをお勧めします。
自作の他、使用/流用可能なモジュールとしては、推奨順に下記のものがあ
ります。
1)オプティマイズ製MINI-USB
URL:http://optimize.ath.cx/mini_ezusb/index.html
オプティマイズとの提携により、正式サポート/動作確認を行います。
2) 株式会社 アイ・ピイ・アイ製AN2131SC基板
URL:http://www.ipishop.com/usb.html
未確認ですが、たぶん使えます。
3)オプティマイズ製カメレオンUSB(破壊)
http://optimize.ath.cx/cusb/index.html
http://members.tripod.co.jp/x1resource/xilinx/chamusb/broken.htm
CPLDが壊れてしまったカメレオンUSBを再利用できます。
著者は、実際に"コレ"を使用して制作しています。
4)プリンストン製スマートメディアリーダ、PRD-SM2
http://www.princeton.co.jp/
http://members.tripod.co.jp/x1resource/xilinx/sm/prd_sm2.htm
著者が最初に使用したものですが、販売終了しています。
後継機種では、中味がAN2135SCとは異なっている模様です。
5)I・O DATA製 USB-PDC
http://www.iodata.co.jp/
これまた販売終了していますが、携帯電話用ケーブルで、EZ-USBユーザーの
間では人気があるようです。
外部とのI/FにバッファICが入っているそうで、I/Oの方向が決まっている為、
より高速な"SPI版"を使用するためには、内部の改造が必要なようです。
6.プログラムの実行方法
spcisp.exe を実行すると、コマンドとオプションの一覧が出ます。
useage: spcusb [Xilinx_bit_file] [option] [option]...
option :
-port [address] : port address
-baud [bps] : baud rate
-mode bscan : BoundaryScan (JTAG) mode
-mode sserlal : SlaveSerial (CCLK) moden
-mode sparalell : SlaveParalell (CCLK) mode
-bitstream : [future]
-jedec : [future]
-driver [dllname]: DLL driver slelect
-target [nums] : number of chained device in TDO side
-continue : continus mode
-f [rspname] : use option in file
・ファイル名について
[Xilinx_bit_file] Xilinxデザインツールが出力する.bitファイル指定します。
拡張子.bitはあってもなくてもかまいません。
・オプションについて
-port [address] : ポートアドレスを16進数で指定します。
パラレルポートの場合I/Oベースアドレスとなります。
-baud [bps] : ボーレートの設定、(現状未サポート)
-mode bscan : BoundaryScanでコンフィグレーションします。(*5)
-mode sserlal : SlaveSerialでコンフィグレーションします。 (*5)
-mode sparalell : SlaveParalellでコンフィグレーションします。(*5)
-bitstream : (現状未サポート)
-jedec : (現状未サポート)
-driver [dllname]: ドライバーDLL名を指定します。(.dllは不要)
デフォールト='spcdrv'
-continue : コンティニュアスモードにします。
-target [nums] : BoundaryScanでDaisyChain時、ターゲットの位置をTDOに
接続された別デバイスの数を指定します。
デフォールト=自動検出 (*6)
-f [rspname] : ファイルからオプションを取り込みます。
*5:それぞれドライバーがサポートしている必要があります。
現状、sparalellのサポートはありません。
sserialをサポートするドライバーはごく一部です。
*6:BounderyScanのDEVICE_IDコードが.bitファイル内のデバイス名称と適合する
チップで、TDO側に最も近いものが選択されます。
通常は自動検出出来ますが、SpartanIIをカスケード接続している場合等は、
-targetオプションでデバイスの位置を明記します。
・デフォールトオプションファイルspcisp.rspについて
カレントディレクトリにspcisp.rspというファイルを作成しておくと、そのファイ
ル内のオプションが自動的に実行されます。
書式は、テキストで1行1オプションとしてください。空白行があるとファイル名
として認識されるので、注意してください。
また、spcisp.rspの指定は、コマンドラインや-fオプションよりも優先度が高いこ
とに気をつけて下さい。
-fオプションのファイル形式も同様です。
・デフォールトドライバーspc_isp.dllについて
オプションでドライバーを指定しないと、spc_isp.dllがデフォールトととなりま
す。
常時一種類のプローブしか扱わない場合、目的のDLLをspc_isp.dllにリネームして
おくことでオプション指定を省くことが可能です。
使用例:
1)USBのプローブで、'sample1.bit'をJTAGモードでコンフィグレーションする。
spcisp.exe -driver spc_usb sample1
2)USBのプローブで、'sample2.bit'をシリアルスレーブモードでコンフィグレー
ションする。
spcisp.exe -driver spc_usb -mode sserial sample2
3)LPT1に接続されたパラレルケーブルで'sample3.bit'をJTAGモードでコンフィグ
レーションする。
spcisp.exe -driver spc_xpar -port 378 sample3
4)USBのプローブで、デザインツールのディレクトリ'prj'内のsample4.bit内のタ
イムスタンプが更新されるたびに、自動的にコンフィグレーションを行う
spcisp.exe -driver spc_usb -continue sample4
PIFファイルやバッチファイルを作成しておけば、マウスクリックで実行できます。
7.その他
一部のUSBドライバーには、オプティマイズ製カメレオンUSB用のファームウェ
アおよびライブラリプログラムが含まれています。
カメレオンUSB、EZ-USB、EZ-USB開発キット、EZ-USB用デバイスドライバーについ
ては、オプティマイズのホームページで詳しく説明されています。
オプティマイズ URL
8.参考資料
Xilinx SpartanIIデータシート
Xilinx アプリケーションマニュアル XAPP139
カメレオンUSB汎用FW、ライブラリ
Einguste氏のGCCによるDLL制作の手順
DEBSOL Webページ内、バウンダリスキャン講座
9.変更履歴
2003. 5.29 V1.14 書き込みブロックサイズを32Kから8Kに変更
JTAGデータの内部扱いをMSBファーストに統一
SpartanII JTAG制御を切り離し
コンティニュアスモード時、ターゲット電源再投入時でコンフィグ
rspファイルで"#"で始まる行をコメントと解釈
2003. 4.16 V1.13 画面表示修正など、本ドキュメント修正
2003. 1.20 V1.12
2003. 1. 9 V1.11
2002. 8.20 V1.10 JTAG DaisyChainサポート、自動選択追加
2002. 8. 5 V1.00 ドライバーDLL化
オプション書式をimpact.exe形式に大幅変更
その他もろもろ
2002. 3.18 V0.90 1stリリース
10.謝辞
カメレオンUSBの斬新なアイデアと、同サポートページの丁寧な説明により、
EZ-USBの入門への道を開いていただいたオプティマイズの冨田氏に感謝します。
また、USB-PDC用のドライバは、FREE WINGさんからご提供いただきました。