mirror of https://github.com/zachjs/sv2v.git
49 lines
1004 B
Verilog
49 lines
1004 B
Verilog
|
|
`define DUMP(name) initial $display(`"name W=%b $bits(X)=%0d Y=%b $bits(Z)=%0d`", W, X, Y, Z);
|
||
|
|
|
||
|
|
module InterfaceA #(
|
||
|
|
parameter W = 9,
|
||
|
|
parameter X = 9,
|
||
|
|
parameter [7:0] Y = 9,
|
||
|
|
parameter Z = 9
|
||
|
|
);
|
||
|
|
`DUMP(InterfaceA)
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module InterfaceB;
|
||
|
|
parameter W = 9;
|
||
|
|
parameter X = 9;
|
||
|
|
parameter [7:0] Y = 9;
|
||
|
|
parameter Z = 9;
|
||
|
|
`DUMP(InterfaceB)
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module ModuleA #(
|
||
|
|
parameter W = 9,
|
||
|
|
parameter X = 9,
|
||
|
|
parameter [7:0] Y = 9,
|
||
|
|
parameter Z = 9
|
||
|
|
);
|
||
|
|
`DUMP(ModuleA)
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module ModuleB;
|
||
|
|
parameter W = 9;
|
||
|
|
parameter X = 9;
|
||
|
|
parameter [7:0] Y = 9;
|
||
|
|
parameter Z = 9;
|
||
|
|
`DUMP(ModuleB)
|
||
|
|
endmodule
|
||
|
|
|
||
|
|
module top;
|
||
|
|
`define PARAMS_A #(.Y(6), .X(5), .Z(7), .W(4))
|
||
|
|
`define PARAMS_B #(0, 1, 2, 3)
|
||
|
|
InterfaceA `PARAMS_A ia1();
|
||
|
|
InterfaceA `PARAMS_B ia2();
|
||
|
|
InterfaceB `PARAMS_A ib1();
|
||
|
|
InterfaceB `PARAMS_B ib2();
|
||
|
|
ModuleA `PARAMS_A ma1();
|
||
|
|
ModuleA `PARAMS_B ma2();
|
||
|
|
ModuleB `PARAMS_A mb1();
|
||
|
|
ModuleB `PARAMS_B mb2();
|
||
|
|
endmodule
|