別のプロジェクトのサブモジュールとして EDIF を使用するため、Vivado プロジェクトから EDIF ファイルをエクスポートしました。
このファイルを新しいプロジェクトに追加し、最上位にインスタンシエートしました。デザイン階層はあっているようですが、合成でサブモジュールが検出されないというメッセージが表示されます。
このサブモジュールに Verilog をエクスポートし、同じ最上位にインスタンシエートする場合は、問題がありません。
write_edif から生成される EDIF 出力の使用に何か制限があるのですか。
機能的には、このエクスポートされた EDIF も Verilog 構造ネットリストも合成後デザインで問題なく使用できるはずです。
しかし、合成中 (合成中のみ) に、EDIF (または NGC) としてのみ使用可能な下位モジュールに対し、RTL ベースの合成スタブが必要になります。
最上位が VHDL の場合は、この指定にコンポーネント宣言を利用するのが一般的です。
しかし最上位が Verilog の場合は、合成スタブ要件を満たすため、下位 EDIF モジュールに対応する空の Verilog モジュール (同じポートのもの) が必要です。
構造 Verilog が下位にある場合、そのモジュール宣言は直接使用できるので、余分なスタブ ファイルは不要です。
また、EDIF をエクスポートするには、ポートだけが含まれている状態で、同じデザインから合成スタブをエクスポートできます。例は次の通りです。
2017.4 以前:
write_edif module.edf
write_verilog -mode port module_stub.v
2018.1 以降:
write_edif module.edf
write_verilog -mode synth_stub module_stub.v
module.edf と module_stub.v の両方をプロジェクトに追加する場合、問題はありません。
このスタブ ファイルは合成中にのみ使用され、合成中モジュールはブラック ボックスのままになります。しかし合成後のデザインで EDIF がブラック ボックスを処理するのに自動的に使用されます。
AR# 54074 | |
---|---|
日付 | 04/30/2018 |
ステータス | アクティブ |
種類 | 既知の問題 |
ツール |