mirror of https://github.com/zachjs/sv2v.git
44 lines
1.0 KiB
Verilog
44 lines
1.0 KiB
Verilog
`define FOO(tag) \
|
|
wire [29:0] tag``one_out, tag``two_out, tag``thr_out, tag``fou_out; \
|
|
tag``1 tag``one(.clock(clock), .in(in), .out(tag``one_out)); \
|
|
tag``2 tag``two(.clock(clock), .in(in), .out(tag``two_out)); \
|
|
tag``3 tag``thr(.clock(clock), .in(in), .out(tag``thr_out)); \
|
|
tag``4 tag``fou(.clock(clock), .in(in), .out(tag``fou_out)); \
|
|
integer tag``i; \
|
|
initial begin \
|
|
for (tag``i = 0; tag``i < 40; tag``i++) begin \
|
|
#2; \
|
|
$display(`"tag`", $time, ": %h %30b %30b %30b %30b", in, \
|
|
tag``one_out, tag``two_out, tag``thr_out, tag``fou_out); \
|
|
end \
|
|
end
|
|
|
|
module top;
|
|
reg clock, in;
|
|
|
|
initial begin
|
|
clock = 1;
|
|
forever #1 clock = ~clock;
|
|
end
|
|
|
|
integer i;
|
|
localparam [40:0] pattern = 40'hfadf014932;
|
|
initial begin
|
|
for (i = 0; i < 40; i++) begin
|
|
in = pattern[i];
|
|
#2;
|
|
end
|
|
$finish;
|
|
end
|
|
|
|
`FOO(A)
|
|
`FOO(B)
|
|
`FOO(C)
|
|
`FOO(D)
|
|
`FOO(E)
|
|
`FOO(F)
|
|
`FOO(G)
|
|
`FOO(H)
|
|
|
|
endmodule
|