リコンフィギュレーション後にリセットを適用する機能を使用すると、パーシャル リコンフィギュレーション中にリコンフィギュレーションされる領域が一定した状態に保持され、新しい RM のすべてのロジックが開始値に初期化されます。パーシャル リコンフィギュレーション中、スタティック配線は影響を受けずにその領域を通過でき、デバイスのほかの部分にあるスタティック ロジック (およびほかのダイナミック領域) は通常どおり動作し続けます。この機能を使用する Dynamic Function eXchange は、FPGA の初期コンフィギュレーションと同様に動作し、同期エレメントが既知の初期ステートになります。
次に、RESET_AFTER_RECONFIG
プロパティの構文を示します。
set_property RESET_AFTER_RECONFIG true [get_pblocks <reconfig_pblock_name>]
デザインで 7 シリーズの XADC コンポーネントの DRP インターフェイスが使用される場合、RESET_AFTER_RECONFIG がイネーブルになっていると、パーシャル リコンフィギュレーション中にこのインターフェイスはブロック (リセットに保持) されます。インターフェイスは応答せず (ビジー状態)、このリコンフィギュレーション中はアクセスがない状態になります。パーシャル リコンフィギュレーションが完了すると、インターフェイスは再びアクセス可能になります。
7 シリーズおよび Zynq-7000 SoC デバイスでリコンフィギュレーション後にリセットを適用する機能を使用するには、Pblock 制約がリコンフィギュレーション フレームに揃えられている必要があります。GSR は領域内のすべての同期エレメントに影響するので、リコンフィギャラブル フレームのみを使用する必要があります。これらのリコンフィギャラブル フレーム内でにはスタティック ロジックは配置できません (スタティック配線は可能)。Pblock の高さは、リコンフィギャラブル フレームの基本領域に合わせるため、クロック領域の境界に揃える必要があります。RESET_AFTER_RECONFIG
を使用する場合、Pblock の幅に関する要件はありません。
UltraScale および UltraScale+ デバイスにはこのクロック領域を揃える要件はなく、GSR の適用を詳細に制御できます。そのため、UltraScale および UltraScale+ アーキテクチャでは RESET_AFTER_RECONFIG
がすべての RP に自動的に適用されます。この機能はオフにはできません。
次の図では、左側の Pblock (pblock_shift
) は Pblock の上辺と下辺がクロック領域 X1Y3 の高さに揃っているので、フレームに揃っています。右側の Pblock (pblock_count
) はフレームに揃っていません。
-
7 シリーズ デバイス: モジュールがパーシャル リコンフィギュレーションされた後、Pblock とその上のクロック領域境界の間に配置されているスタティック ロジックが GSR の影響を受けるので、フレームに揃えられていない Pblock (図の
pblock_count
など) にはRESET_AFTER_RECONFIG
を設定できません。 -
UltraScale および UltraScale+ デバイス: GSR 制御が改善されているので、両方の Pblock に自動的に
RESET_AFTER_RECONFIG
が使用されます。
SNAPPING_MODE
制約を使用すると、有効なリコンフィギャラブル Pblock が自動的に作成されます。詳細は、リコンフィギャラブル パーティション Pblock の自動調整 (7 シリーズ デバイス) または Pblock の PU の自動調整 (UltraScale および UltraScale+ デバイス) を参照してください。
GSR の機能はパーシャル ビットストリーム内に組み込まれているので、リコンフィギュレーション中にこの機能を含めるための操作は必要ありません。ただし、このプロセスは SHUTDOWN
シーケンス (リコンフィギュレーションする領域のみにマスク) を使用するので、リコンフィギュレーションを開始したときに外部 DONE
ピンを LOW
にし、正しく完了したら HIGH
にする必要があります。ボードをセットアップする際に、この動作を考慮する必要があります。STARTUP
ブロックはシャットダウン中ディスエーブルになるので、このブロックの DONEO
を DONE
ピンのステートが変化しないようにするために使用することはできません。また、STARTUP
を使用している場合、RESET_AFTER_RECONFIG
をパーシャル リコンフィギュレーションのコンフィギュレーション クロックを生成するなどのほかの目的で使用することはできません。
さらに、リコンフィギュレーションが発生したときに GSR マスクをダイナミック領域にのみ開くために、初期コンフィギュレーションの後、デザイン全体のマスクを閉じたところから開始します。各パーシャル ビットストリームは、ターゲット領域のマスクを開き、新しいコンフィギュレーション データを読み込んで、この領域の GSR イベントを発行してから、マスクを閉じます。UltraScale の場合にのみ、このプロセスは 2 つのビットストリーム間で分割されます。詳細は、クリア ビットストリームを参照してください。リコンフィギュレーションが発生しない場合マスクは閉じるので、GSR へのフル デバイス アクセスは許容されません。
7 シリーズの場合にのみ、別のアプローチとして、このプロパティを使用せず、リコンフィギュレーションされたロジックで正しく機能させるために初期化が必要なものにローカル リセットを適用する方法があります。この方法では、Pblock の高さをクロック領域の境界に揃える必要はありません。GSR またはローカル リセットを使用しない場合、リコンフィギャラブル モジュール内の同期エレメントが初期の開始値にならない可能性があります。