いままで、DFX をやってきたが、Vivado で RM をリコンフィギュレーションしてきた。この辺りでソフトウェアから DFX を制御したいということで、Zynq 系で使用できるプロセッサ コンフィギュレーション アクセス ポート (PCAP)について情報収集していこう。
PCAP でのコンフィギュレーションについては、”
Zynq-7000 SoC テクニカル リファレンス マニュアル UG585 (v1.10) 2015 年 2 月 23 日”の 192 ページからの”6.4 デバイス ブートおよび PL コンフ ィギュレーシ ョ ン”に書いてあった。
”
Zynq-7000 SoC テクニカル リファレンス マニュアル UG585 (v1.10) 2015 年 2 月 23 日”の 192 ページからの”6.4 デバイス ブートおよび PL コンフ ィギュレーシ ョ ン”から図と文章を引用する。
”6.4.1 PS ソフ トウェアによる PL 制御”を引用する。

”PS ソフ トウェアによる PL 初期化”から引用する。
1. [PCFG_PROG_B] 信号を High にする。
2. [PCFG_PROG_B] 信号を Low にする。
3. [PCAP_INIT] ステータスがリセットされているかポーリングする。
4. [PCFG_PROG_B] 信号を High にする。
5. [PCAP_INIT] ステータスがセットされているかポーリングする。
”6.4.3 PL への PCAP ブリッジ”から引用する。
PCAP ブリ ッジ (AXI-PCAP ブリッジまたは PCAP インターフェイス と も呼ぶ) は、ビットストリームによ る PL コンフィギュレーション、 ブート イメージおよびビットストリームの復号化、 ファイルの認証に使用できます。

DMA 転送を開始するには、 4 つの DMA レジ スタに次の順序で書き込みます。
1. ソース アドレス レジスタ devcfg.DMA_SRC_ADDR
2. デスティネーション アドレス レジスタ devcfg.DMA_DST_ADDR
3. ソース長レジスタ devcfg.DMA_SRC_LEN
4. デスティネーション長レジスタ devcfg.DMA_DEST_LEN (このレジスタへの書き込みにより DMA 転送が開始)
”6.4.4 PCAP データパス コンフィギュレーション”
PCAP でコンフィギュレーションする時のブロック図”図 6-18 : 非セキュアおよびセキュア PL ビ ッ ト ス ト リーム パスの図”を引用する。

”PL の初期化およびコンフィギュレーション レジスタ”
”表 6-23 : PL の制御およびステータス レジスタ ビット”を引用する。



PCAP の資料は Xilinx Forum にもある。
”
How to use PCAP to config the PL in zynq”
”
Zynq Z0720 PCAP Readback”
アプリケーションノートも 2 つ参考になりそうだ。
”
Zynq-7000 All Programmable SoC デバイスにおけるハー ドウェア アクセラレーターのパーシャル リコンフィギュレーション”
xapp1159.zip”
Zynq‐7000 AP SoC プロセ ッサにおける Vivado Design Suite を使用したハー ドウェア アクセ ラレータのパーシ ャル リコンフィギュレーション”
xapp1231-partial-refonfig-hw-axxelerator-vivado.zipライセンスのためブログに書けないが、そのものズバリなので、”
Zynq‐7000 AP SoC プロセ ッサにおける Vivado Design Suite を使用したハー ドウェア アクセ ラレータのパーシ ャル リコンフィギュレーション”をやってみよう。
(追加)
、”
Zynq‐7000 AP SoC プロセ ッサにおける Vivado Design Suite を使用したハー ドウェア アクセ ラレータのパーシ ャル リコンフィギュレーション”の 14 ページの”デバイス コンフィギュレーションおよびブート フロー”から引用。
1 つのコ ンフィ ギュレーシ ョン エンジンがフル コンフィ ギュ レーション とパーシャル コンフィギュ レーシ ョ ンの両方を管理し ます。パーシャル ビット ストリームにはコンフィギュ レーション フ レームのア ド レス情報が含まれている ため、 これを PL へロードする際に、 リコンフィギャラブル モジュールの物理的な位置を把握し ている必要はあ り ません。
18 ページから引用。
PCAP イ ン ターフ ェ イ ス経由でパーシャル ビット ストリームを転送する前に、is_partial_bitstream デバイス属性が 1 に設定 されている必要があります。 DevC デバイス ノード上での書き込みファイル動作によ り 、 パーシャル ビット ストリームが転送されます。
is_partial_bitstream デバイス属性は Linux の devcfg の属性のようです。(”
Partial reconfiguration in linux”参照)
パーシャル・リコンフィギュレーションの資料”
Partial Reconfiguration: XDcfg”
”
Partial Reconfiguration by PCAP: bitstream size not an integer of words?”
”
Partial Reconfiguration: Measuring Zynq PCAP Reconfiguration Time”
- 2021年08月23日 03:38 |
- Dynamic Function eXchange
-
| トラックバック:0
-
| コメント:0