前の手順で、デバッグの変更を加え、デザインをアップデートしました。デザインを配置配線し、タイミング要件を満たすために、新しいネットリストにインプリメンテーションを実行できる状態です。ところが、前回の実行と今回の実行とでは若干の変更しかありません。そこで、インクリメンタル コンパイル フローを利用すれば、前回のデバッグ、配置配線のエフォートの大半を再利用できます。デザインを何度か繰り返し実行してタイミングを満たすには時間がかかりますが、その時間を大きく短縮できるのです。詳細は、 『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904)を参照してください。
- まず、デザイン チェックポイント (DCP) を定義するところから始めます。これをインクリメンタル コンパイル フローのリファレンス デザインとして使用します。このデザインから Vivado Design Suite に配置配線データが読み込まれます。
- Design Runs ウィンドウで impl_2 run を右クリックし、Set Incremental Implementation を選択します。Set Incremental Implemenation ダイアログ ボックスが開きます。
- Automatically use the checkpoint from the previous run をクリックします。
- OK をクリックします。この情報は、選択されている run の INCREMENTAL_CHECKPOINT プロパティに保存されます。このプロパティを設定すると、Vivado Design Suite でインプリメンテーション中にインクリメンタル コンパイル フローが実行されます。
- 次の Tcl コマンドを使用すると、現在の run でこのプロパティをチェックできます。
get_property INCREMENTAL_CHECKPOINT [current_run]
これで、top_routed.dcp チェックポイントへのフル パスが返されます。
ヒント: 現在の run のインクリメンタル コンパイルをディスエーブルにするには、INCREMENTAL_CHECKPOINT プロパティをクリアにします。Set Incremental Compile ダイアログ ボックスを使用するか、直接 Properties ウィンドウでプロパティを編集するか、reset_property
コマンドを実行して、プロパティをクリアにします。 - Flow Navigator で Run
Implementation をクリックします。
これで、インクリメンタル コンパイル フローのリファレンス デザインとして top_routed.dcp ファイルを使用し、現在の run でインプリメンテーションが実行されます。run が完了すると、Implementation Completed ダイアログ ボックスが開きます。
-
Open Implemented Design を選択して OK をクリックします。次の図のように、Design Runs ウィンドウにはインプリメンテーション run の impl_2 と impl_1 の経過時間が示されています。
注記: これは非常に小さなデザインです。インクリメンタル コンパイル フローは、これよりも大型で、複雑なデザインで、さらに大きな効果を発揮します。 - 次の図のように、Results ウィンドウで Reports タブを選択し、Place Design の下にある Incremental Reuse Report をダブルクリックします。
Vivado IDE のテキスト エディターでインクリメンタル再利用レポートが開きます。このレポートには、再利用されたセル、ポート、ネットの割合が示されています。このパーセンテージが高いほど、インクリメンタル チェックポイントから配置配線が効果的に再利用されていることになります。
このレポートでは、フルに再利用されたネットは、リファレンス デザインからネットの配線全体が再利用されたことを示します。部分的に再利用されたネットは、リファレンス デザインからネットの配線が一部再利用されたことを示します。セル、セルの配置、またはその両方が変更されたため、一部のセグメントが再配線されています。再利用されていないネットは、現在のデザインのネットがリファレンス デザインと一致しなかったことを示します。