【问题标题】:verilog testbench component instantiate using generate使用 generate 实例化 verilog 测试台组件
【发布时间】:2015-09-24 01:03:41
【问题描述】:

我是 verilog 和学习的新手。我有一个测试台问题。 假设在 Verilog 测试平台中我有一个模块的 8 个实例。 有没有办法在测试台中使用生成循环来实例化它们,比如可以在代码的 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

谢谢。

【问题讨论】:

    标签: unit-testing for-loop verilog simulation


    【解决方案1】:

    是的,你可以。使用以下语法:

    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 块中驱动它们,则这些需要是 regs 而不是 wires。

    【讨论】:

    • 谢谢,我知道这行得通。我希望 8 个 DDR3 模块实例会出现在 Xilinx ISE 工具集中。但在模拟中,我确实看到了全部 8 个。
    • @clicker 抱歉,我想我没听懂您的意思 - 如果您正在在模拟中看到所有 8 个,问题是什么?我对 ISE 了解不多,所以也许我遗漏了什么?如果是这种情况,我建议相应地更新您的问题(添加 ISE 标记并解释您到底在追求什么)。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多