我是verilog和学习的新手。我有一个测试平台问题。 假设在Verilog testbench中我有8个模块实例。 有没有办法在testbench中使用生成循环实例化它们,就像模块可以在代码的HDL部分声明一样。例如
module my_test_bench;
reg one_r;
reg two_r;
wire one_w;
wire two_w;
genvar i;
generate
(for i = 0; i < 8; i=i+1)
begin
DDR3_module uut[i]( .clk(), .rst(), );
end
endgenerate
initial begin
... test stimulus
end
end module
感谢。
答案 0 :(得分:0)
是的,你可以。使用以下语法:
genvar i;
generate
for (i = 0; i < 8; i = i + 1) begin
DDR3_module uut (.clk(clk[i]), .rst(rst[i]));
end
endgenerate
请注意,您需要为每个实例提供clk
和rst
信号的向量,例如以下前面的声明行:
wire [7:0] clk;
wire [7:0] rst;
如果您想直接从initial
区块中加载,则需要reg
而不是wire
s。