gpt4 book ai didi

verilog - 在 always block 中实例化模块

转载 作者:行者123 更新时间:2023-12-01 11:41:29 24 4
gpt4 key购买 nike

我刚刚开始学习 verilog,所以这可能是一个非常基本的问题,但我无法真正理解或找到替代方案来表达我在 verilog 中的意图。

我举个小例子。我基本上是在尝试将我的一个模块的输出连接到另一个模块的输入。请帮助我处理线标记 49 并提供替代方案。

   25 module ands (
26 input1,
27 input2,
28 outputs
29 );
30 input [2:0] input1;
31 input input2;
32 output [2:0] outputs;
33
34 integer itr;
35
36 and a (outputs[0],input1[0],input2);
37 initial
38 begin
39 for (itr = 1 ; itr <= 2; itr = itr+1)
40 and a(outputs[itr],input1[itr],outputs[itr-1]);
41 end
42
43 endmodule

我知道这是一个愚蠢的例子,我可以很容易地避免使用 for 循环,但我想稍后使用参数。

谢谢,抱歉,如果它太基础了。

最佳答案

Verilog 模块不打算在 initial 或 always block 内实例化。如果你想用一个循环实例化多个模块,那么 generate block 就是你想要使用的。使用您的示例:

module ands (
input1,
input2,
outputs
);
input [2:0] input1;
input input2;
output [2:0] outputs;

integer itr;

and a (outputs[0],input1[0],input2);

genvar itr;
generate
for (itr = 1 ; itr <= 2; itr = itr+1)
and a(outputs[itr],input1[itr],outputs[itr-1]);
endgenerate

endmodule

这需要使用 verilog2001 或更高版本。

关于verilog - 在 always block 中实例化模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20184247/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com