ソフトウェア仕様 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2003/12/24 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
【ソフトウェア概要】 DLC-008 には 基本ソフト ( 実用性のあるサンプルプログラム ) を付属しています。このプログラムは,サポートページよりダウンロードすることができます。このプログラムはSVFファイルから、USB-JTAG 用データの変換と送信を行い CPLD/FPGA/PROM に対して書込みを行います。 次の機能はサポートしていません。 1.JTAGチェーン対応していません (ターゲットは1つのみ) 2.ザイリンクス社以外のデバイス 3.ベリファイはしていません ( TDO を一致させていません ) 【SVFファイルの解説】 Serial Vector Format (SVF) は Texas Instruments 社が開発した IEEE1149.1 (JTAG) のバス動作を記述する文法仕様です。USB-JTAGの基本ソフトが対応しているSVF コマンドは、次の6つです。 基本ソフトがサポートしているコマンド
ザイリンクス社インパクトから生成されるが、基本ソフトがサポートしていないコマンド
ザイリンクス社インパクトからSVFファイルとして生成されないSVFコマンド
JTAGには、次の16個のステートがあります。図に記述している数値は,他のステートに遷移するときのTMSの値です。[RESET] ステートから [IDLE] への遷移はTMSを「0」の状態で、TCKの立ち上がりエッジにて、遷移します。このとき,TMSが「1」であれば、[RESET]のままです。
実際のSVFファイルを例に説明します。
※ 一行は’;’セミコロンで指定します。 ※ 始めにTMSを「1」にしてTCKにクロックを5回供給します。これによって,初期ステートが[RESET](Test-Logic-Reset)になります。 1. ” // ” はコメント文です 2.TRST コマンドはTRST信号ピンが存在しませんので,無視します。 3.SIR コマンドの最終ステートを [IRPAUSE] とします。 4.SDR コマンドの最終ステート [IDLE] とします。この ENDIR/ENDDR はファイルの先頭以外でも出現します。 5.ステートを [RESET] から [IDLE] とします。 例 : STATE IREXIT2 IRUPDATE DRSELECT DRCAPTURE DREXIT1 DRPAUSE; 上記のような場合には [現在のステート] -> [IREXIT2] -> [IRUPDATE] -> [DRSELECT] -> [DRCAPTURE] -> [DREXIT1] -> [DRPAUSE]の順にステートを遷移します。 6−9.ターゲットのデバイスが1つしかない場合、TIR/HIR/TDR/HDR は 「0」 となります。これは無視しても影響はありません。 10.SIR コマンドは 5 はスキャン対象のビット数です。このコマンドが実行されると、ステートを [IDLE] から [IRSHIFT] に遷移します。実際にスキャン入力する TDI の値は、TDI ( 09 ) の 0x09 です。 [IRSHIFT] に留まったまま下位から順に 10010 を入力します。[IRSHIFT] に留まるとは TMS を 「0」 にしたままということになります。0x09の下位から数えて5ビット目(最後のビット)は TMS を 「1」にしてステートを [IREXIT1] に移動します。スキャン対象のビット数は数ビットから数百万ビットまであります。 11.SIRコマンドと同様の考え方ですが、ステートは [DRSHIFT] にてデータを入力します。まず、先程のSIRコマンドで遷移した[IRPAUSE] から [DRSHIFT] まで遷移します。TDI の値は、TDI (12345678) の 0x12345678 です。SMASK が示す数値が 「0」 であれば "don't care" という意味です。0xffffffff なのですべて「1」となり32ビットすべて必要な値です。 12.RUNTEST コマンドは、指定のTCKクロック数の間、[設定したステート] に留まります。「RUNTEST DRPAUSE 5000 TCK;」であれば、[現在のステート] から [DRPAUSE] に遷移し,TCK数で表された待ち時間となります。Virtex系のFPGAでは、実際にTCKクロックを供給しないと動作しません。USB-JTAGでは、シリアル通信が最大1Mbpsの場合でも動作するように設定してあります。 前コマンドで遷移した [IDLE] から [DRPAUSE] に遷移します。[DRPAUSE] にて TMS を 「0」 にしたままで、TCKクロックを供給します。 13.ステートを [DRPAUSE] から [IDLE] に遷移します。 以上のように、指定されたコマンドを先頭から順に処理していけばFPGA/CPLD/PROMデバイスにプログラミングすることができます。 【SVFファイルとオシロスコープ波形】 前項にてステートの動作を説明しましたが、USB-JTAGからの波形について説明します。
※
【USB-JTAG基本ソフトウェアの解説】 上図のように、SVFファイルから1行ずつ読込みを行い、コマンドの判定を行います。生成されたデータは送信キューにためて、一度に送信します。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
メールでのご質問はこちらへどうぞ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|