ピンのクエリの最適化 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: 制約の使用 (UG903)

Document ID
UG903
Release Date
2022-06-01
Version
2022.1 日本語

デザインのピン数はセル数の数倍なので、get_pins の代わりに get_cells を使用すると、実行時間に大きく影響する可能性があります。実行時間は、XDC 制約の処理時 (open_checkpoint の実行時間など) または Tcl スクリプトの実行時に長くなります。ピン オブジェクトとセル オブジェクトの関係を利用して、多数のピンをクエリする際の実行時間を短縮することをお勧めします。

デザインに含まれるすべてのピンから名前に基づいてピンを検索するよりも、まずピンのセルを検索し、返されたセルのピンをフィルターを使用して検索する方が効率的です。次にその例を示します。

推奨されるピンのクエリ方法

  • 元のピンのクエリ:
    get_pins –hier * -filter {NAME=~xx*/yy*}
  • 推奨される効率的なピンのクエリ:
    get_pins –filter {REF_PIN_NAME=~yy*} –of [get_cells –hier xx*]
  • 推奨される別のピンのクエリ:
    get_pins –filter {REF_PIN_NAME=~yy*} –of [get_cells –hier * -filter {NAME=~xx*}]

たとえば、次のような制約があるとします。

set_max_delay 15 -from [get_pins -hier -filter {NAME=~*/aclk_dpram_reg*/*/CLK}] \
-to [get_cells -hier -filter {NAME=~*/bclk_dout_reg*}] \
-datapath_only

この制約を次のように記述し直すと、特に大型デザインで、クエリにかかる時間を大幅に短縮できます。

set_max_delay 15 -from [get_pins -of [get_cells -hier –filter
{NAME =~ *aclk_dpram_reg*/*}] -filter {REF_PIN_NAME == CLK}] \
-to [get_cells -hier bclk_dout_reg*] \
-datapath_only