Connect
あるインターフェースをほかのインターフェースに接続するために各メンバーを代入する代わりに connect
宣言を使用することができます。connect
宣言はインターフェースの全てのメンバーを自動的に接続します。
代入の方向はmodportによって決まります。つまり output
メンバーが input
メンバーに代入されます。connect
の引数がインターフェースインスタンスの場合、方向を決定するためにmodportの指定が必要です。
接続演算子 <>
は always_comb
中でも使用することができます。
interface InterfaceA {
var cmd : logic;
var ready: logic;
modport master {
cmd : output,
ready: input ,
}
modport slave {
..converse(master)
}
}
module ModuleA (
mst_if0: modport InterfaceA::master,
slv_if0: modport InterfaceA::slave ,
mst_if1: modport InterfaceA::master,
slv_if1: modport InterfaceA::slave ,
) {
inst bus_if0: InterfaceA;
inst bus_if1: InterfaceA;
connect mst_if0 <> bus_if0.slave;
connect slv_if0 <> bus_if0.master;
always_comb {
mst_if1 <> bus_if1.slave;
}
always_comb {
slv_if1 <> bus_if1.master;
}
}