AR# 5718

Virtex JTAG - JTAG チェーンで複数の Virtex デバイスをプログラムする方法

説明

キーワード : Virtex, JTAG, TAP, daisy chain, configuration, デイジー チェーン, コンフィギュレーション

重要度 : 標準

概要 :
複数の Virtex デバイスが JTAG デイジー チェーンで接続されています (1 つのデバイスの TDO がほかのデバイスの TDI に接続され、すべての TCK が 1 つの TCK として、またすべての TMS ピンが 1 つの TMS ピンとして接続されているとします)。

この場合、Virtex の JTAG ピンを介してすべてのデイジー チェーンをコンフィギュレーションできますか。

ソリューション

1

コンフィギュレーションできます。次のソフトウェアとハードウェアの手順に従ってください。

最初に、JTAG コンフィギュレーション用にビットストリームを用意します。 Virtex デイジー チェーンでビットストリームを生成するには、次のコマンドを使用して BIT ファイルを作成します。

bitgen -g startupclk:jtagclk designName.ncd

designName.ncd は PAR からの配線済み NCD ファイルの名前です。

このコマンドを使用しないと、Virtex デバイスはビット ストリームを受け取り、DONE および /INIT ピンの両方が High になりますが、デバイスは反応しません。 このオプションを使用すると Virtex デバイスが TCK ピンで JTAG クロックを使用し JTAG コンフィギュレーションを終了します。

スタートアップ シーケンスでクロックを供給するのに TCK を使用しない場合は、STARTUP_VIRTEX シンボルで、スタートアップ シーケンスに使用する内部クロック ネットを追加する必要があります。 その場合、BitGen オプション -g:userclk を使用して、スタートアップに USERCLK を使用するように指定してください。

パワーアップ直後に JTAG を介して Virtex デバイスをコンフィギュレーションする場合、Virtex デバイスのモード ピンを 101 (M2=1,M1=0,M0=1 NOPULLUPS) または 001 (M2=0,M1=0,M0=1 PULLUPS) に設定する必要があります。 パワーアップ前にモード ピンを 101 か 001 に設定せずにコンフィギュレーション命令を入力すると、Virtex デバイスは正しくコンフィギュレーションされません。

次に、BIT ファイルを JTAG Programmer ソフトウェアに追加し、コンフィギュレーションを完了します。 別のソフトウェアをご使用の場合は、次を参照してください。

デイジー チェーンのデバイスは、次のステップに従って 1 つずつコンフィギュレーションします。

1. CFG_IN 命令を最初のデバイスにロードします (すべてのダウンストリーム デバイスで BYPASS を使用します)。

2. 最初のビットストリーム (0 で始まらない) をシフトインします。

3. Test-Logic-Reset (TLR) を実行します。

4. BYPASS を最初のデバイスに、CFG_IN を 2 番目のデバイス (すべてのダウンストリーム デバイスで BYPASS を使用) にロードします。

5. 2 つ目のビットストリーム (31 の 0 で始まる) をシフトインします。

6. TRL プロセスを実行します。

(4) から (6) までの手順をデバイスごとに繰り返し、コンフィギュレーション前のデバイスの先行ゼロを 1 つずつ減らします。

7. JSTART コマンドをすべてのデバイスにロードします。

8. Shift-DR で TCK クロックを 12 回供給します。

この時点で、すべてのデバイスがアクティブになります。

2

Virtex デバイスでの JTAG コンフィギュレーションのトラブルシューティング

Virtex デバイスではトラブルシュート用に TAP を常にオンにしてください。 JTAG コンフィギュレーション モードでは、DONE ピンが JTAG モード以外のモードと同じように動作します。 Virtex に JTAG コンフィギュレーション モードを使用すると、DONE ピンでビット ストリームが問題なくデバイスにロードされたかどうかを確認できます。

DONE ピンが Low の場合は、すべてのビットストリームが送られたか、すべてのビットストリームは送られてもスタートアップ シーケンスが終了していないか、エラーが発生したかのいずれかです。 DONE ピンが High の場合は、Virtex デバイスがすべてのビットストリームを受け取り、ビットストリームも破損せずに問題がなかったことを示しています。

DONE が High でなく、JTAGCLK のビットストリームが –g オプションで作成され、JSTART 命令がすでに実行されている場合、ビットストリームのエラーが検出されている可能性があります。 Virtex デバイスを JTAG 以外でコンフィギュレーションする場合、このようなエラーは /INIT ピンで確認できます。 Virtex の JTAG コンフィギュレーションでは、外部 /INIT ピンはステータス レポートには使用されませんが、内部 /INIT 信号を見ることはできます。

DONE ピンが Low のままで Virtex の JTAG コンフィギュレーションが終了した場合、次の手順に従って、ビットストリームでのエラーの有無を確認してください。

1. TAP を TLR ステートにします。
2. CFG_IN 命令をロードします。
3. Shift-DR ステートで、次の 64 ビット パターンをシフトインします。




4. CFG_OUT 命令をロードします。
5. Shift-DR で、TDO の読み込み中に TCK クロックを 32 回供給します。

データは STATUS レジスタに含まれます。 DRC エラーが発生した場合、最後のビットは 1 となります。 コンフィギュレーションに問題がなかった場合、32 ビットは通常次のようになります。




一番右のビットは、最後にシフトアウトされたビットです。 結果が上記と異なる場合は、コンフィギュレーションに問題があります。
AR# 5718
日付 12/02/2011
ステータス アーカイブ
種類 一般