modport キーワード - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: 合成 (UG901)

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

上記の例では、インターフェイス内の信号が入力または出力として記述されなくなっています。インターフェイスが追加される前は、sel ポートが bottom1 の出力および bottom2 の入力でした。

インターフェイスが追加されると、それが明確ではなくなります。実際、Vivado 合成エンジンではこれらが双方向ポートと考慮されるようになったことに対して警告メッセージは表示されず、階層を使用して生成されたネットリストではこれらが inouts として定義されます。これは、生成されたロジックの観点からは問題ではありませんが、混乱の原因となります。

方向を指定するには、次のコード例に示すように modport キーワードを使用します。

interface my_int;
logic sel;
logic [9:0] data1, data2, result;
modport b1 (input result, output sel, data1, data2); 
modport b2 (input sel, data1, data2, output result);
endinterface : my_int

bottom モジュールの宣言に次を使用します。

module bottom1 ( 
my_int.b1 int1,

これで、入力と出力が正しく関連付けられます。