階層名 - 2023.2 日本語

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

Document ID
UG903
Release Date
2023-11-01
Version
2023.2 日本語

Vivado 合成でデザインの階層を完全に保持するよう指定しない場合、合成中に一部、またはすべての階層をフラットにできます。詳細は、 『Vivado Design Suite ユーザー ガイド: 合成』 (UG901) の「合成設定の使用」にある -flatten_hierarchy に関する情報を参照してください。

たとえば、デザインのサブレベルに次のようなレジスタがあるとします。エラボレート済みデザインの例:

inst_A/inst_B/control_reg

合成中、このレジスタに特別な最適化は実行されないとすると、ツール オプションまたはデザイン構造によって、フラット名または階層名が得られます。

フラット ネットリストでのインスタンス名

inst_A/inst_B/control_reg (F)

階層ネットリストでのインスタンス名

inst_A/inst_B/control_reg (H)

フラット化された階層レベルを示すのにもスラッシュ (/) が使用されるので、見た目に違いはありませんが、メモリ内のオブジェクトをクエリすると違いがはっきりします。次のコマンドでは、F のネットリスト オブジェクトが返され、H のネットリスト オブジェクトは返されません。

% get_cells -hierarchical *inst_B/control_reg
% get_cells inst_A*control_reg

階層名に関連する問題を回避するため、AMD では次をお勧めします。

  • -hierarchical オプションを指定せずに get_* コマンドを使用します。
  • エラボレートされたデザインに表示されるように、スラッシュ (/) を使用してすべての階層を区切ります。

-hierarchical オプションなしの例:

  • 次のコマンドは、フラット ネットリストと階層ネットリストのどちらでも機能します。
    % get_cells inst_A/inst_B/*_reg
    % get_cells inst_*/inst_B/control_reg
  • 次のようにすることもできます。
    % get_cells -hier -filter {NAME =~ inst_A/inst_B/*_reg}
    % get_cells -hier -filter {NAME =~ inst_*/inst_B/control_reg}
注意:
階層セルでも同様に、合成を実行するときに階層ピンに制約を設定しないでください。また、組み合わせロジックの演算子を接続するネットに制約を設定しないでください。これらは LUT に結合され、ネットリストからなくなる可能性があります。

合成によりデザインが変換されているため、合成前の制約の一部は正しく適用されない可能性があります。これらの問題を解決するには、次の手順に従います。

  1. 合成済みネットリストに適用する新しい XDC 構文を検索します。
  2. その制約を、インプリメンテーションのみに使用する新しい XDC ファイルに保存します。
  3. 合成のみに使用する合成制約を別の XDC ファイルに移動します。