AR# 4219

9.1i BitGen - Virtex でデータが DOUT に出力されない理由/ "-g DebugBitstream" の目的/ 普通のビットストリームとデバッグ ビットストリームの違い

説明

キーワード : bit stream, LOUT, ビットストリーム

BitGen の "DebugBitstream" オプションの目的は何ですか。

-g DebugBitstream:Yes or -g DebugBitstream:No

普通のビットストリームとデバッグ ビットストリームの違いは何ですか。 デバイスがデータを DOUT に出力しないのはなぜですか。

ソリューション

1

DebugBistream が "Yes" に設定されていると異なるビットファイルが生成されます。 このビット ファイルにはシリアル ダウンロードをデバッグするための詳細情報とコマンドが含まれます。

メモ : JTAG または SelectMAP ダウンロードにはこのデバッグ ビットストリームは使用できません。これらのモードでは、LOUT コマンドが処理されないためです。

デバッグ ビットストリームにはコンフィギュレーション問題をデバッグするための次のコマンドが含まれています。
- LOUT 書き込みが同期ワード (ヘッダ = 0x30010001、データ = 0x00000000) の後に含まれています。
- 各フレームが個々に書き込まれます (標準ビットストリームでは複数のフレームが書き込まれる)。
- LOUT 書き込みは各フレーム後 (ヘッダ = 0x30010001、データ = フレーム アドレス) に行われます。
- CRC チェックが各フレーム後に行われます (Virtex/-E/Spartan-II/-E のみ)。

LOUT 書き込み

LOUT 書き込みはデータを DOUT ピンに出力します。 デバイスがコマンドを正しく受信している場合 (デバイスが正しく同期化される場合など)、各フレームのフレーム アドレスは、フレームが書き込まれた後 DOUT ピンに出力されます (フレーム アドレスは連続するものではなく、ブロック タイプ、メジャー アドレス、マイナー アドレスの組み合わせです)。 Virtex/-E/Spartan-II/-E デバイスのフレーム アドレス計算式はザイリンクス アプリケーション ノート (Xilinx XAPP151): 『Virtex Series Configuration Architecture User Guide』に記載されています。 Virtex-II デバイスにはこの情報がありません。

コンフィギュレーション ビットが抜けていたり追加されている場合、またはクロック グリッチが発生する場合、コンフィギュレーション コマンドは 32 ビット バウンダリに正しく表われません。 このため DOUT ピンのデータ出力は停止します。 各 LOUT 書き込みは 32 ビットです。

CRC チェック

CRC チェックは、エラーを検出するためのものです。 "1" が "0" に変更されたり、またはその逆に変更されると、CRC チェックが行われず INIT ピンが Low になりコンフィギュレーションが停止します。

CRC チェック - Virtex

標準 Virtex ビットストリームには CRC チェックが 1 つだけ含まれています。これはコンフィギュレーション シーケンスの最後に行われます。 何かの理由で 1 ビット不足すると、コンフィギュレーション データの 32 ビット アライメントが失われ、CRC チェックが行われません。 この場合、コンフィギュレーション データが正しく受信されていても INIT ピンは Low になりません。

DebugBitstream オプションを設定すると、各フレームを個々に書き込み、各フレームに CRC チェックを追加できるので、コンフィギュレーション データ エラーが発生した場所を正確に突き止めることができます。

CRC チェック - Virtex-II

標準 Virtex-II ビットストリームは、フレームを書き込むごとに CRC チェックが行われます (Xilinx Answer 13790)。このため、Virtex-II デバイスの場合、DebugBitstream オプションは追加 CRC チェックが行われません。

ビットストリーム サイズ

DebugBitstream オプションを選択すると、ビットストリームにたくさんのコマンドが追加されるため、サイズが約 20% 大きくなります。 このため、ビットストリームを PROM にフィットできなくなる可能性があります。 デバッグ ビットストリームが大きすぎる場合、ビットストリームに LOUT 書き込みを手動で追加することができます。詳細は (Xilinx Answer 7819) を参照してください。

2

Virtex コンフィギュレーション データは今までのザイリンクス ファミリのものとは全く異なります。ヘッダ、プリアンブル、長さカウントの情報がビットストリームの最初に含まれていません。 Virtex ファミリは、他の FPGA ファミリのようにコンフィギュレーション データをオーバーフローしたり、DOUT レジスタから出力しません。 DOUT からデータを出力する唯一の方法は LOUT レジスタへ書き込むことです。 LOUT は Legacy Data Out レジスタで、DOUT ピンへのデータをパイプラインします。

Virtex デバイスがコンフィギュレーション チェーンの唯一のデバイスであるときは常に、データは DOUT から出力されず、LOUT レジスタに書き込まれません。 Virtex デバイスがコンフィギュレーション チェーンにあるときは常に、データを DOUT から出力し、チェーン内にあるデバイスをすべてコンフィギュレーションすることが必要です。 PROM File Formatter (または PROMGen) を使用してビットストリームを PROM ファイルに連結させる場合、LOUT レジスタへの書き込みは自動的に行われます。

3

手動で変更を入れる必要がある場合は、RBT ファイルを修正してください。

RBT ファイルを修正するには、余分なデータを必要な場所に挿入し、ヘッダの "Bits:" フィールドを更新します。 PROMGen でこの情報が読み込まれ、正しい長さのファイルが生成されます。
AR# 4219
日付 03/06/2007
ステータス アクティブ
種類 一般