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

FPGA コンフィギュレーション - デイジー チェーン コンフィギュレーションの動的な並べ替え

説明

キーワード : config, daisy, chain, prom, コンフィギュレーション, デイジー, チェーン

デイジー チェーン コンフィギュレーションの順序を動的に選択する必要のあるアプリケーションや、複数のデイジー チェーン コンフィギュレーション ストリームを保存するのに必要なメモリ容量を削減する必要のあるアプリケーションでは、各 FPGA コンフィギュレーションが1 つだけ保存されるように手動で変更できます。

例 :

次に、6 つのデバイスを含むデイジー チェーンで各デバイスに複数のデザインがある場合の例を示します。

Lead / Slaves...
Device1 -> Device2 -> Device3 -> Device4 -> Device5 -> Device6
Design1 Design2 Design4 Design7 Design10 Design12
Design3 Design5 Design8 Design11
Design6 Design9

上記のデイジー チェーンのすべての組み合わせを保存すると、同じデザインが複数のメモリ ロケーションに保存される結果となります。

ソリューション

このアンサーでは、FPGA のコンフィギュレーションおよびファイル生成に関する基礎知識を前提として説明します。BitGen および PromGen ユーティリティの使用法については、『開発システム リファレンス ガイド』を参照してください。

デイジー チェーン コンフィギュレーション ストリームは、デバイスごとに複数のファイルで構成することができますが、制限があります。チェーンの最初のデバイスのコンフィギュレーション ファイルは、スレーブ デバイスのプログラムには使用されない可能性があります。その逆も同様です。

手順 :

1. 各デザイン/デバイスの組み合わせに対してビットストリーム (*.bit) ファイルを作成します。異なるデバイス アーキテクチャでは、同じビットストリームが使用されるとは限りません。

2. 各ビットストリームの ASCII-HEX (*.hex) ファイルを作成します。

3. 最初のデバイス以外のデバイスの HEX ファイルから最初の 10 個の 16 進文字を削除します。これは、コンフィギュレーション データの 40 ビット ヘッダです。

4. 各ファイルで残りのコンフィギュレーション ビット数を計算します。これを計算する 1 つの方法として、次の式を使用できます。

bits = (Bytes_per_file - number_of_lines) x 4 bits_per_character

5. データシートの標準プログラム データに 8 を加えた値に一致するようファイル サイズを調整します。各ファイルの最後に、16 進数 F がパディングされています。ファイル サイズを 4 コンフィギュレーション ビット分増加するにはファイルの最後に F を 1 つ追加し、4 コンフィギュレーション ビット分減少するにはファイルの最後の F を 1 つ削除します。同じデバイス用の BIT ファイルは、すべて同じサイズにする必要があります。

最初のデバイス用のファイルは、コンフィギュレーション データ ヘッダがあるので、スレーブ デバイス用のファイルより 40 ビット分大きくなります。

6. デイジー チェーンの LengthCount (レングス カウント) を計算します。

LengthCount の値は、デバイス チェーンのコンフィギュレーション ビット数の合計から 7 を引いた値です。

LengthCount = 合計コンフィギュレーション ビット数 - 7

コンフィギュレーション ビット数の合計は、各デバイスのコンフィギュレーション ビット数の合計で、デバイスごとのビット数はプログラム データ + 8 です。

7. 最初のデバイスのコンフィギュレーション ファイルの LengthCount 値を新しい値に置換します。

HEX ファイルは、ほとんどの場合バイトがスワップされています。最初の 5 バイトのスワップを元に戻して元の LengthCount 値を抽出し、新しい値に置き換えて再びスワップしてからファイルに挿入します。
次に、その例を示します。

元のヘッダ : FF043C89F9
スワップを元に戻す : FF203C919F

LengthCount はプリアンブル FF2 の後に続く 24 ビットで、この例の場合は 03C919 です。
手順 6 で計算された LengthCount が 0F4099 だとすると、これに置き換えてスワップすると、次のようになります。

FF20F4099F (スワップ前)
FF042F90F9 (スワップ後)

最初のデバイスの各コンフィギュレーション ファイルで、最初の 5 バイトをこれに置き換えます。

8. HEX ファイルをメモリに保存するのに適したフォーマットに変換します。

ザイリンクス Web サイトに、HEX ファイルを PROM ファイルに変換するユーティリティがあります。
http://www.xilinx.com/txpatches/pub/utilities/prom/pconfig.zip
AR# 3017
作成日 08/21/2007
最終更新日 12/15/2012
ステータス アクティブ
タイプ 一般