RTL のコンフィギュレーション - 2023.2 日本語

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

syn.rtl コマンドでは、コンパイル済み RTL のさまざまな属性、使用されるリセットのタイプ、ステート マシンのエンコーディングを設定します。RTL で特定の ID を使用できるようにもします。デフォルトでは、これらのオプションは最上位デザインおよびそのデザイン内のすべての RTL ブロックに適用されます。

syn.rtl.cosim_trace_generation
カーネルが Vitis カーネルとして合成される場合に、Vitis ツール フローでハードウェア エミュレーション中にテスト ベクターを生成して、今後のデザイン イテレーションで C/RTL 協調のテストベンチとして使用できるようにします。
syn.rtl.cosim_trace_generation=1
syn.rtl.deadlock_detection

エクスポートされた IP/XO ファイルの最上位 RTL でシミュレーションまたは合成デッドロック検出をイネーブルにします。設定できるオプションは次のとおりです。

  • none: デッドロック検出はディスエーブル
  • sim: デッドロック検出はシミュレーション/エミュレーションでのみイネーブル。これがデフォルト設定です。
  • hw: デッドロック検出は合成済み RTL IP でイネーブル。ap_local_deadlock および ap_local_block 信号を IP に追加して、ローカルおよびグローバルなデッドロック検出をイネーブルします。
syn.rtl.deadlock_detection=hw
syn.rtl.deadlock_diagnosis
アプリケーションのハードウェア エミュレーション時に、Vitis カーネル (.xo) のデッドロック検出診断をイネーブルにします。
syn.rtl.deadlock_diagnosis=1
syn.rtl.header
内容が生成される RTL ファイルの先頭に挿入されるファイルを指定します。これで、生成された RTL ファイルに、ユーザーの指定した内容が含まれるようになります。
syn.rtl.header=../../myHeader.txt
syn.rtl.kernel_profile
カーネルのプロファイルに必要な最上位イベントとストール ポートを追加します。
syn.rtl.kernel_profile=1
重要: このオプションは、v++ -c --profile.stall コマンドに関連しており、ストール プロファイリングをリンクされたアプリケーションで使用できるようにするには、HLS コンポーネントに手動で追加する必要があります。
syn.rtl.module_auto_prefix
生成される RTL モジュールの接頭辞の値に、最上位関数名を指定します。syn.rtl.module_prefix オプションを使用した場合は無視されます。これはデフォルトでイネーブルになります。
syn.rtl.module_auto_prefix=1
syn.rtl.module_prefix
生成されるすべての RTL モジュール名に使用される接頭辞を指定します。最上位関数のデフォルトのモジュール接頭辞をオーバーライドする場合に使用します。
syn.rtl.module_prefix=newTop
syn.rtl.mult_keep_attribute
keep 属性をイネーブルにします。
syn.rtl.mult_keep_attribute=1
syn.rtl.register_all_io
すべての I/O 信号に対して、デフォルトでレジスタを使用します。
syn.rtl.register_all_io=1
syn.rtl.register_reset_num
リセット信号に追加するレジスタの数を指定します。
syn.rtl.register_reset_num=2
syn.rtl.reset
C/C++ コードで初期化される変数は RTL (およびビットストリーム) では常に同じ値に初期化されます。この初期化はパワーオン時にのみ実行され、デザインにリセットが適用されたときには繰り返されません。

-reset オプションの設定により、レジスタおよびメモリのリセット方法が決まります。

  • none: デザインにリセットは追加されません。
  • control: ステート マシンに使用される制御レジスタや、I/O プロトコル信号の生成に使用される制御レジスタをリセットします。これがデフォルト設定です。
  • state: C/C++ コードのスタティック変数またはグローバル変数から生成された制御レジスタおよびレジスタ/メモリをリセットします。C/C++ コードで初期化されるスタティック変数またはグローバル変数は、初期値にリセットされます。
  • all: デザイン内のレジスタおよびメモリをすべてリセットします。C/C++ コードで初期化されるスタティック変数またはグローバル変数は、初期値にリセットされます。
syn.rtl.reset=state
syn.rtl.reset_async
すべてのレジスタで非同期リセットを使用します。このオプションを指定しない場合は、同期リセットが使用されます。
syn.rtl.reset_async=1
syn.rtl.reset_level
リセット信号の極性をアクティブ Low またはアクティブ High に定義します。デフォルト設定はアクティブ High です。
syn.rtl.reset_level=low
ヒント: AXI プロトコルにはアクティブ Low リセットが必要です。デザインが AXI インターフェイスを使用している場合、syn.rtl.reset_level がアクティブ High であれば、ツールは警告を表示してこのリセット レベルを定義します。