UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 16829

Virtex および Spartan FPGA - JTAG JPROGRAM 命令の使用方法

説明

Virtex FPGA の Virtex-II ジェネレーション、Spartan FPGA の Spartan-3 ジェネレーションより、JPROGRAM と呼ばれる JTAG 命令が導入されました。この命令は、FPGA の外部専用 PROG_B ピンをトグルさせるのと同じで、新しいビットストリームを読み込む前にFPGA コンフィギュレーション メモリをクリアにさせるのに使用されます。

SVF/XSVF/ACE (JTAG) ファイルで JPROGRAM 命令を使用するにあたり、知っておくべき問題はありますか。

JPROGRAM が出力されたら、デバイスでコンフィギュレーション メモリのクリアが完了したことをどうやって知ることができるのですか。

JTAG を使用している場合、デバイスでコンフィギュレーション メモリのクリアが完了していなくてもデバイスのコンフィギュレーションを開始することは可能ですか。

FPGA デバイス別の問題およびコンフィギュレーションについては、(ザイリンクス アンサー 34104) を参照してください。

ソリューション

SVF/XSVF/ACE (JTAG) ファイルで JPROGRAM 命令を使用するにあたり、知っておくべき問題はありますか。

FPGA のモード ピンが JTAG 以外のコンフィギュレーション ソースからコンフィギュレーションされるように設定されている場合 (オンボード PROM など)、コンフィギュレーション ソースを JTAG に固定しておくため、JPROGRAM 命令の後に CFG_IN 命令 (ビットストリームでのシフトに使用) が続く必要があります。JPROGRAM 命令の読み込みは PROG_B ピンのトグルと同じであるため、JPROGRAM 命令の後に CFG_IN 命令が続かない場合、FPGA はモード ピンの設定に合せてコンフィギュレーションを開始しようとします。

コンフィギュレーションに関する JTAG 制御をリリースするシーケンスは次のようになっています。

- JPROGRAM 命令の後 TEST-LOGIC-RESET タップ ステートに戻ります (TEST-LOGIC-RESET はデフォルトの IDCODE 命令を再度読み込む)。

- JPROGRAM 命令の後 CFG_IN 以外の命令を読み込みます (IDCODE、USERCODE、BYPASS など)。

JPROGRAM が出力されたら、デバイスでコンフィギュレーション メモリのクリアが完了したことをどうやって知ることができるのですか。

FPGA がコンフィギュレーション メモリをクリアにしたかどうかを判断するには、JTAG を使用して、次のいずれかの方法を利用します。

1. INSTRUCTION_CAPTURE レジスタをシフト出力し 「house-cleaning is complete」を示すビットを確認します (ビットの説明については FPGA の BSDL を参照)。 INSTRUCTION_CAPTURE レジスタは、CFG_IN 命令を再度読み込む前に JTAG TAP の CAPTURE-IR ステートに戻って取得できます。CFG_IN 命令がデバイスにシフト入力されると、JTAG TAP の SHIFT-IR ステート中に新しい INSTRUCTION_CAPTURE レジスタ値が TDO にシフト出力されます。INSTRUCTION_CAPTURE レジスタの詳細は、任意の JTAG の資料を参照してください。

2. CFG_IN/CFG_OUT 命令シーケンスを使用し完全デバイス STATUS レジスタを読み出し、INIT ビットが High であるかを確認します。FPGA の内部 STATUS レジスタの詳細は、Virtex のユーザー ガイドを参照してください。Spartan の場合は XAPP452:

http://japan.xilinx.com/support/documentation/application_notes/xapp452.pdf
を参照してください。

JTAG を使用している場合、デバイスでコンフィギュレーション メモリのクリアが完了していなくてもデバイスのコンフィギュレーションを開始することは可能ですか。

いいえ。デバイスでコンフィギュレーション メモリのクリアが完了していないと、新しいコンフィギュレーション命令が無視されます。SVF フォーマットでは、ステータスが合致するまで、ループ命令がサポートされないため、デバイスが準備完了になる前に、新しいビットストリームをデバイスに送信開始することが可能です。デバイスがコンフィギュレーション メモリをクリアしたこと、ビットストリームの受信準備ができていることを確認するため、JPROG_B 命令を CFG_IN 命令に置き換えた後、プログラマは FPGA で求められているコンフィギュレーション メモリのクリアの最長時間、RUN-TEST-IDLE で待機する必要があります (FPGA データシートの Tpl を参照)。

偽 SVF シーケンスの例 :

SIR TDI (jprogram)

SIR TDI (cfg_in)

RUNTEST max_Tpl_time

SIR TDI (cfg_in)

SDR TDI (...コンフィギュレーション ビットストリームはここにくる...)

JPROGRAM を iMPACT 内で出力するには、デバッグ モードを使用し、次の例の手順に従います。

1. iMPACT を起動します。

2. チェーンを初期化し、チェーン内のデバイスの BSDL ファイルの場所を確認します。ザイリンクス デバイスの場合、BSDL ファイルは $XILINX/<device type>/data ディレクトリにあり、.bsd というファイル拡張子がついています。

3. 現在のステートに保持するデバイスの BYPASS (または HIGHZ) 命令を検索します。IEEE1149.1 準拠デバイスの BYPASS 命令は常にすべて 1 です。

4. JPROGRAM コマンドでリセットするザイリンクス FPGA の JPROGRAM を検索します。

5. iMPACT で [File] -> [Start Debug Chain] をクリックします。

6. [Debug Chain] ウィンドウで、TLR (Test Logic Reset) のボタンを押し、チェーンのデバイスが既知のステートにあることを確認します。

7. [Debug Chain] ウィンドウの [Scan IR] フィールドに、JPROGRAM 命令を受信しないデバイスには BYPASS (または HIGHZ) 命令を読み込んだ状態の、デバイス チェーン全体の連結命令シフトを貼り付けます。

たとえば、XCF01S (IR 長が 8) 1 つ、XC3S50 (IR 長が 6) 1 つ、XCF08P (IR 長が 8) 1 つ、 XC5VLX30 (IR 長が 10) 1 つで構成されているチェーンの場合、次の文字列を [Scan IR] フィールドに入力します。

1111111100101111111111111111111111001011

「11111111」は XCF01S の BYPASS 命令、 「001011」は XC3S50 の JPROGRAM 命令、「1111111111111111」 は XCF08P の BYPASS 命令、「1111001011」は XC5VLX30 の JPROGRAM 命令です。

8. [Debug Chain] ウィンドウで [Execute] をクリックします。し、Scan IR の値でシフトします。(上記の例では、両方の FPGA が同時にリセットされます。)

9.[Debug Chain] ウィンドウで TLR (Test Logic Reset) のボタンを押し、JTAG 命令レジスタをデフォルト値にリセットします (JPROGRAM 命令を削除)。この時点で、FPGA はコンフィギュレーション モード ピンで選択されているソースからコンフィギュレーションを実行しようとします。FPGA がマスタ モードの場合は、CCLK がトグルし始めます。

AR# 16829
日付 03/17/2010
ステータス アクティブ
種類 ??????
このページをブックマークに追加