FC2カウンター FPGAの部屋 2021年07月16日
fc2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

DFX をやってみよう1(DFX を調べる1)

DFX(Dynamic Function eXchange)をやってみようと思う。初めに DFX とはどんなものか?を調べてみよう。

Vivado Design Suite ユーザーガイド Dynamic Function eXchange UG909 (v2020.2) 2021 年 2 月 8 日”を読みながら、まとめてみよう。

DFX は以前は、 Partial Reconfiguration と呼ばれていた技術で、FPGA が動作中に、一部の領域だけをリコンフィギュレーションできる技術だ。Vivado 2019.1 からはどの Vivado エディションでもライセンス無しで DFX を使用できるようになった。つまり WebPACK や Vivado ML 2021.1 でも DFX を使用することができる。

CNN(Convolutional Neural Network)の部分をリコンフィギュレーションできるようにすると、動作中に CNN 部分を切り替えることができるようになるはずだ。適切に切り替えれば小さなたくさんの CNN で大きな CNN と同等の作業ができるはずだと思う。
後は、規模の大きなフィルタを切り替えて使うということができるようになる。今まで複数のフィルタを実装していたアプリケーションなどで、 1 つのフィルタで済むということになれば、より小さな FPGA で代替えできるということになると思う。

手順としては、フルのビットファイルでコンフィギュレーションした後で、入れ替える部分だけのパーシャル・ビットファイルで指定領域だけをリコンフィギュレーションするわけだ。つまりフルのビットファイルと、いくつかのバーシャル・ビットファイルが必要になる。

Vivado Design Suite ユーザーガイド Dynamic Function eXchange UG909 (v2020.2) 2021 年 2 月 8 日”の 8 ページの”図 1: Dynamic Function eXchange の基本的な概念”と文章を引用する。
DFX_1_210716.png

この図に示すように、Reconfig Block A にインプリメントされたファンクションは、A1.bit、A2.bit、A3.bit、または A4.bit のいずれかのパーシャル BIT ファイルをダウンロードすることにより変更できます。FPGA デザインのロジックは、リコンフィギャラブル ロジックとスタティック ロジックの 2 種類に分類できます。FPGA ブロックの灰色の部分はスタティック ロジックを表し、Reconfig Block "A" と示された部分はリコンフィギャラブル ロジックを表します。スタティック ロジックは動作し続け、パーシャル BIT ファイルの読み込みの影響は受けません。リコンフィギャラブル ロジックは、パーシャル BIT ファイルの内容に置き換えられます。


リコンフィギャラブル パーティション (RP) にいくつかのリコンフィギャラブル モジュール (RM)がリコンフィギュレーションされていって機能が切り替わることできる。 RP, RM の略語はこれからいつも出てくる。

Vivado Design Suite ユーザーガイド Dynamic Function eXchange UG909 (v2020.2) 2021 年 2 月 8 日”の 10 ページの”設計に関する考察事項”の文章を引用する。

設計に関する考察事項
デザインの要件とガイドライン

• Dynamic Function eXchange には、Vivado 2013.3 以降を使用する必要があります。
• リコンフィギャラブル領域を定義するには、エレメント タイプごとにフロアプランが必要です。

• 標準のタイミング制約がサポートされ、必要に応じて追加のタイミング バジェット機能も使用できます。
• デザインを完成させるために便利な専用のデザイン ルール チェック (DRC) が用意されています。
• DFX デザインでは、パーシャル リコンフィギュレーションの開始だけでなく、FPGA 内またはシステム デザインの一部としてパーシャル BIT ファイルを配布することも考慮する必要があります。
• Vivado Design Suite では、Dynamic Function eXchange (DFX) Controller IP がサポートされます。このカスタマイズ可能な IP は、ザイリンクス デバイスでのパーシャル リコンフィギュレーションのコア タスクを管理します。
• RP には、そのパーティションにインプリメントされるさまざまなリコンフィギャラブル モジュール (RM) で使用されるすべてのピンを含める必要があります。RM でほかの RM とは異なる入力または出力が使用される場合、結果の RM の入力または出力がその RM 内で接続されなくなる可能性があります。この状況がある場合、ツールでRM 内の未使用の入力または出力すべてに対して LUT1 バッファーが挿入されます。出力 LUT1 は定数値に接続されます。この定数値は、未使用の出力ピンの HD.PARTPIN_TIEOFF プロパティにより制御できます。このプロパティの詳細は、ブラック ボックスを参照してください。
• ビットストリームの生成でブラック ボックスがサポートされます。ポートを定数値に固定する方法の詳細は、ブラック ボックスを参照してください。
• ユーザー リセット信号では、RM 内のロジックがレベルを認識するのかエッジを認識するのかを決定してください。リセット回路がレベルを認識する場合 (FIFO などの一部 IP の場合など)、リコンフィギュレーションが完了するまで RM リセットは適用しないでください。
• DFX デザインは、Zynq MPSoC デバイスのザイリンクス アイソレーション デザイン フロー (IDF) と互換性があります。このソリューションの詳細は、『UltraScale+ FPGA および Zynq UltraScale+ MPSoCs のアイソレーション デザイン フロー』 (XAPP1335) を参照してください。


Vivado の DFX フローを”Vivado Design Suite ユーザーガイド Dynamic Function eXchange UG909 (v2020.2) 2021 年 2 月 8 日”の 21 ページから引用する。

1. スタティック モジュールとリコンフィギャラブル モジュール (RM) を個別に合成します。詳細は、合成 を参照してください。
2. 物理制約 (Pblock) を作成してリコンフィギャラブル領域を定義します。詳細は、リコンフィギャラブル領域のフロアプランを作成 を参照してください。
3. 各リコンフィギャラブル パーティション (RP) に HD.RECONFIGURABLE プロパティを設定します。詳細は、モジュールをリコンフィギャラブルと定義 を参照してください。
4. 完全なデザイン (スタティック モジュールと、RP ごとに 1 つの RM) をコンテキストでインプリメントします。詳細は、インプリメンテーション を参照してください。
5. 完全に配線済みのデザインのデザイン チェックポイントを保存します。詳細は、インプリメンテーション を参照してください。
6. このデザインから RM を削除し、スタティック部分のみのデザイン チェックポイントを保存します。詳細は、インプリメンテーション を参照してください。
7. スタティック部分の配置と配線を固定します。詳細は、インプリメンテーション データの保持 を参照してください。
8. スタティック デザインに新しい RM を追加し、新しいコンフィギュレーションをインプリメントして、配線済みデザイン全体のチェックポイントを保存します。
9. すべての RM がインプリメントされるまで手順 8 を繰り返します。
10. すべてのコンフィギュレーションに 対して検証ユーティリティ (pr_verify) を実行します。詳細は、コンフィギュレーションの検証 を参照してください。
11. 各コンフィギュレーションのビットストリームを作成します。詳細は、ビットストリームの生成 を参照してください。

  1. 2021年07月16日 04:05 |
  2. Dynamic Function eXchange
  3. | トラックバック:0
  4. | コメント:0