verilog testbench组件使用generate实例化

时间:2015-09-24 01:03:42

标签: unit-testing for-loop verilog simulation

我是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

感谢。

1 个答案:

答案 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

请注意,您需要为每个实例提供clkrst信号的向量,例如以下前面的声明行:

wire [7:0] clk;
wire [7:0] rst;

如果您想直接从initial区块中加载,则需要reg而不是wire s。