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# 940

JTAG - XC4000/XC5200/Spartan ファミリをバウンダリ スキャンでコンフィギュレーションする方法

説明

重要度 : 重要

 

概要 :

XC4000/XC5200/Spartan デバイスをバウンダリ スキャン ピンの TUMS、TACK、TD を使用してコンフィギュレーションすることは可能です。このソリューションは XC4000/XC5200/Spartan デバイスを対象にしています。

 

注記 : このアンサーは、JTAG TAP を使用して XC4000/XC5200/Spartan FPGA をコンフィギュレーションする方法についての資料です。このアンサーの情報は、FPGA JTAG コンフィギュレーションに関するほかのすべての資料に記載されている情報より優先されます。

ソリューション

パート A

 

JTAG チェーンで XC4000、XC5200、Spartan デバイスをプログラムするには、ザイリンクス Alliance 1.5 JTAG Programmer ソフトウェアを使用できます。詳細は A1.5 JTAG Programmer のユーザー ガイドを参照してください。

 

パート B

注記 : このソリューションのパート B を理解するには、JTAG/バウンダリ スキャンを理解していることが前提となります。このソリューションは XC4000 ファミリおよび XC5200 ファミリを対象としています。

 

コンフィギュレーション - JTAG を介して ザイリンクス XC4000 または XC5200 をコンフィギュレーションするには次の手順に従ってください。

 

ビットストリーム フォーマットはすべてのコンフィギュレーション モードに対して同じです。バイナリ ファイルを読み出すか、ASCII ファイルを読み出すかによって、BIT ファイルまたは RBT ファイルを使用します。エクスプレス モードのビットストリームはバウンダリ スキャンを介したコンフィギュレーションでは使用できません。

 

コンフィギュレーションを開始する前にデバイスのモード ピンを Low に接続することを推奨します。

 

1. バウンダリ スキャン回路をオンにします。

 

これには 3 つの方法があり、パワーアップを介すか、バウンダリ スキャンを有効にした状態でコンフィギュレーションしたデバイスを介すか、PROGRAM ピンを Low にします。

 

パワーアップを介す方法を取る場合は、パワーがオンになったときに INIT ピンを Low に保持します。VCC が VCC(min) に達したら、JTAG 命令を入力するため TAP をトグルできます。INIT ピンは手動またはプルダウンを利用して Low に保持できます。手動で INIT ピンを Low にする場合は、CONFIGURE 命令が現在の命令になるまでピンを Low に保持する必要があります。プルダウンを使用する場合は、INIT ピンを約 0.5V に引き下げるプルダウン抵抗を使用します。このプルダウンには、FPGA がパワーアップされるたびに INIT ピンを Low に保持し、またコンフィギュレーション中に INIT ピンが Low になっていることをユーザーが確認できるという利点があります。

 

FPGA がコンフィギュレーションされた後にバウンダリ スキャンが有効になっているデバイスをリコンフィギュレーションする必要がある場合、バウンダリ スキャン TAP ピンをトグルし始めます。

 

2. ザイリンクス CONFIGURE 命令を IR に読み込みます。ザイリンクス CONFIGURE 命令は 101(I2 I1 I0) です。I0 は IR に最初にビット シフト入力されます。

 

3. ザイリンクス CONFIGURE 命令でシフトした後、update-IR ステートに遷移してこの命令を現在の JTAG 命令にします。update-IR ステートで TCK が Low になると、FPGA は JTAG コンフィギュレーション モードになり、コンフィギュレーション メモリの消去が開始します。CONFIGURE 命令はこれで現在の命令となり、この後に TCK で立ち上がりエッジが続く必要があります。INIT ピンを手動で Low に保持する場合は、そのピンを CONFIGURE 命令が現在の命令になるまで Low に保持する必要があります。

 

4. CONFIGURE 命令が現在の命令になったら、run-test/idle ステートに遷移し、FPGA がコンフィギュレーション メモリを消去し終えるまで run-test/idle ステートに留まる必要があります。

 

FPGA のコンフィギュレーション メモリ消去には約 2 * 1 us * かかります (デバイス ビットストリームごとのフレーム数)。

 

FPGA がコンフィギュレーション メモリを消去し終えたら、オープン コレクタ INIT がハイ インピーダンスになります。この時点で shift-dr ステートに遷移する必要があります。TAP が shift-dr ステートになり、INIT ピンがリリースされたら、TCK ピンのクロックはデータおよび長さカウントに対しコンフィギュレーション クロックと見なされます。

 

5. shift-dr ステートでビットストリームをシフト入力し始めます。DONE が High になり、スタートアップ シーケンスが完了するまでビットストリームでシフト入力を続けます。

 

TAP を介してビットストリームをシフト入力している間、コンフィギュレーション ピンである LDC、HDC、INIT、PROGRAM、DOUT、および DONE はすべて、非コンフィギュレーションの場合と同じように動作します。これらのピンはユーザーによりプローブできます。またはコンフィギュレーション完了後やコンフィギュレーションできなかった場合は SAMPLE/PRELOAD 命令を使用してこれらの IOB を確認できます (PROGRAM と DONE を除く)。

 

コンフィギュレーション中 LDC は Low です。コンフィギュレーション中 HDC は High です。コンフィギュレーション中 INIT はハイ インピーダンスとなりますが、CRC エラーやフレーム エラーが検出されると INIT は Low になります。INIT にプルダウンがある場合は、メーターまたはスコープを使用して INIT をプローブする必要があります。手順 1 にあるように INIT ピンにプルダウンが付けられている場合は、INIT が Low となってデータ エラーがあったことを示す場合は、約 0.5V から 0V になります。コンフィギュレーション プロセスを中止するには引き続き PROGRAM を使用できます。DOUT および TDDO は、プリアンブルおよび長さカウントが TDI にシフトされるまで TDI の値を反映します。プリアンブルおよび長さカウントが FPGA にシフトされると、DOUT は High の状態になります。コンフィギュレーションが完了すると DONE が High になります。コンフィギュレーションが完了するまで DONE は Low の状態のままです。

 

追加注記 :

 

a. 1 つの JTAG チェーン内で複数の XC4000 および XC5200 ファミリのデバイスをコンフィギュレーションすることは可能です。ただし非 JTAG のデイジー チェーン コンフィギュレーションとは違い、すべてのビットストリームが 1 つのビットストリームにまとめられるわけではありません。1 つの JTAG チェーンにザイリンクス デバイスを複数コンフィギュレーションする場合、コンフィギュレーション中のものを除き、すべてのデバイスが BYPASS モードになります。CONFIGURE 中のデバイスにはそのビットストリームがダウンロードされます。このデバイスをコンフィギュレーションし終えると、このデバイスも BYPASS モードになり、別のデバイスが BYPASS から CONFIGURE モードになります。

 

b. 長いデイジー チェーンの JTAG デバイスをコンフィギュレーションしている場合 (TDI はその前のデバイスの TDO に接続されている)、CONFIGURE 命令のあるデバイスのビットストリームを変更する必要があることがあります。たとえば、次のようなデイジー チェーンのデバイスがあるとします。

 

デバイス 1---デバイス 2-----デバイス 3

 

デバイス 1 の TDO ピンはデバイス 2 の TDI ピンに接続されています。デバイス 2 の TDO ピンはデバイス 3 の TDO ピンに接続されています。このチェーンをコンフィギュレーションするには、1 つのデバイスを CONFIGURE モードにし、あとの 2 つを BYPASS モードにします。

 

さらに、この方法でデバイス 1 および 2 がコンフィギュレーションされたものとし、デバイス 3 はコンフィギュレーションされないと仮定します。具体的には、デバイス 3 の DONE ピンは High にならないということです。問題はビットストリームの長さカウントです。ビットストリームが破損しているケースを除き、読み込みが完了する前に、ユーザー/ソフトウェアによって計算される長さカウントの最終値に達してしまっていることが考えられます。

 

解決方法は 2 つあります。1 つは、DONE が High になるまで TCK を約 15 秒間供給し続けるというものです。もう 1 つはビットストリームを変更するというものです。コンフィギュレーション中のデバイスの前にあるデバイスの数分長さカウントを増やします。たとえば、上述のテストケースだと、長さカウントを 2 増やします。(バウンダリ スキャンでデイジー チェーンのデバイスをコンフィギュレーションしている場合は、BYPASS モードのデバイスがビットストリームの冒頭に必要な追加の 1 を供給)

 

c. 一般的には、XC4000 および XC5200 の場合、JTAG を使用してこれらのデバイスをコンフィギュレーションしているのであれば、ほかの JTAG 命令を実行する前にデバイスをコンフィギュレーションし終えます。バウンダリ スキャンでコンフィギュレーションを開始すると、このコンフィギュレーション操作を終了させる必要があります。

 

d. コンフィギュレーション中のデザインにバウンダリ スキャンが含まれていない場合、スタートアップ シーケンスの最終イベントが I/O のリリースになるようにしてください。

 

バウンダリ スキャンが使用できず、FPGA がコンフィギュレーションされ、スタートアップ シーケンスが終了する前に I/O がリリースされる場合、FPGA は入力信号には応答せず、また出力もまったく応答しません。

 

e. コンフィギュレーション メモリを消去した後にバウンダリ スキャンの CONFIGURE 命令を再出力すると、CONFIGURE 命令がキャンセルされます。

 

コンフィギュレーション メモリを消去した後にバウンダリ スキャンの CONFIGURE 命令を正しく再出力する方法は、別のバウンダリ スキャン命令をまず出力し、それから CONFIGURE 命令を出力するというものです。

 

f. バウンダリ スキャンを使用したコンフィギュレーションにエラーが発生した場合、使用できるバウンダリ スキャン命令には、サンプル/プリロードとバイパスの 2 つしかありません。別のリコンフィギュレーションが試行される場合、PROGRAM ピンを Low にするか、FPGA に電源投入し直す必要があります。

 

g. CONFIGURE 命令が現在の命令である場合、/INIT ピンがハイ インピーダンスになり、TAP が shift-dr ステートになるまで、TCK ピンのクロックはコンフィギュレーション クロックとは見なされません。

 

h. 複数のデバイスを含むチェーンをコンフィギュレーションする場合は、すべてバウンダリ スキャン モードでチェーンをコンフィギュレーションするか、それ以外のコンフィギュレーション モードを使用することを推奨します。複数デバイスを含むデイジー チェーンをコンフィギュレーションするのに、一部をバウンダリ スキャンで、残りをそれ以外のモードでコンフィギュレーションすることは可能です。混合モードでコンフィギュレーションするとしても連続した 1 つのバウンダリ スキャン チェーンが得られるわけではなく、ユーザー アプリケーションによっては問題になることもあります。

 

1. バウンダリ スキャンを使用して複数のザイリンクス FPGA のあるチェーンをコンフィギュレーションする場合、非バウンダリ スキャンのデイジー チェーン コンフィギュレーションの場合とは異なり、すべてのビットストリームを 1 つのビットストリームにまとめる必要はありません。FPGA がバウンダリ スキャン コンフィギュレーションの場合は、非バウンダリ スキャン コンフィギュレーションに使用されるのと同じコンフィギュレーション回路を使用できます。したがって、PROM Formatter または makeprom/promgen を使用して、すべてのビットストリームを 1 つにまとめることは可能です。その場合は、注記 (a) のようにコンフィギュレーションする必要があります。さらに、/INIT ピンをすべてまとめて接続する必要があります。DONE ピンもすべてまとめて接続する必要があります。

 

j. n ビット命令が n ビット IR レジスタに読み込まれるには n-1 の TCK が必要です。IEEE 1149.1 によると、タップ インプリメンテーションには、TAP が shift-IR/shift-DR ステートにあるときは常に、また shift-IR/shift-DR ステートから遷移するときには、IR/DR でシフトが発生します。この動作に基づいて、n ビット命令にシフトするには n-1 の TCK が必要なのです。JTAG を使用してコンフィギュレーション可能なザイリンクス FPGA の場合、3 ビットの CONFIGURE 命令にシフトするのに shift-IR ステートに 2 TCK 間だけ留まる必要があります。

 

注記 : デイジー チェーンのコンフィギュレーションは、すべてのデバイスをバウンダリ スキャンにするか、またはすべてのデバイスを非バウンダリ スキャンにするかのどちらかになります。

AR# 940
作成日 08/21/2007
最終更新日 09/17/2013
ステータス アーカイブ
タイプ 一般
デバイス
  • 4000/E/XL/XV
  • 4000E/EX/XL QPro/R
  • Spartan/XL