generate
generate-for
generate-formodule ha(input a, b, output sum, cout);
assign sum = a ^ b;
assign cout = a & b;
endmodule
module my_design #(parameter N=4) (input [N-1:0] a, b, output [N-1:0] sum, cout);
genvar i;
generate
for (i = 0; i < N; i = i + 1) begin
ha u0 (a[i], b[i], sum[i], cout[i]);
end
endgenerate
endmodule
module tb;
parameter N = 2;
reg [N-1:0] a, b;
wire [N-1:0] sum, cout;
my_design #(.N(N)) md( .a(a), .b(b), .sum(sum), .cout(cout));
initial begin
a <= 0;
b <= 0;
$monitor ("a=0x%0h b=0x%0h sum=0x%0h cout=0x%0h", a, b, sum, cout);
#10 a <= 'h2;
b <= 'h3;
#20 b <= 'h4;
#10 a <= 'h5;
end
endmodulegenerate-if
generate-ifgenerate-case
generate-caseLast updated