`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