インスタンシエーションが必要な場合 - 2023.2 日本語

Versal アダプティブ SoC ハードウェア、IP、およびプラットフォーム開発設計手法ガイド (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 日本語

合成ツールのマップでタイミング、消費電力、エリア制約が満たされない場合、またはデバイス内の特定機能を推論できない場合、インスタンシエーションを使用した方がよいことがあります。

インスタンシエーションすると、ユーザーが合成ツールを完全に制御できます。たとえば、クロック周波数を改善するため、エリアを節約する目的で通常合成ツールで選択される LUT とキャリー チェーン エレメントの組み合わせではなく、LUT のみを使用するコンパレータをインプリメントできます。

デバイスで使用可能な複雑なリソースを使用できるようにするには、インスタンシエーションが唯一の方法であることもあります。これは、次が原因です。

  • HDL 言語の制限

    たとえば、VHDL でダブル データ レート (DDR) 出力を記述することはできません。これは、2 つの別のプロセスで同じ信号を駆動する必要があるからです。

  • 合成ツールの推論の制限

    たとえば、合成ツールには現在のところ RTL 記述からクロック調整ブロック (CMB) を推論する機能はないので、インスタンシエートする必要があります。

    AMD プリミティブをインスタンシエートする場合は、ターゲット アーキテクチャのユーザー ガイドおよびライブラリ ガイドを参照し、コンポーネントの機能、設定、接続を完全に理解してください。

    推論とインスタンシエートのどちらでも、AMDでは Vivado Design Suite 言語テンプレートからテンプレートを使用することをお勧めします。

次にヒントを示します。

  • 可能な限り機能を推論します。
  • 合成可能な RTL コードで要件が満たされない場合は、コードをデバイス ライブラリ コンポーネントのインスタンシエーションと置き換える前に、要件を見直します。
  • 一般的な Verilog および VHDL ビヘイビアー構文を記述する場合や、プリミティブをインスタンシエートする必要がある場合は、Vivado Design Suite 言語テンプレートを使用することを考慮します。