Verilog 在always块内实例化模块
我刚刚开始学习verilog,所以这可能是一个非常基本的问题,但我无法真正理解或找到其他方法来表达我在verilog中的意图 我将举一个较小的例子。我基本上是在尝试将一个模块的输出连接到另一个模块的输入。请帮我打49号线,并给我一个替代品Verilog 在always块内实例化模块,verilog,Verilog,我刚刚开始学习verilog,所以这可能是一个非常基本的问题,但我无法真正理解或找到其他方法来表达我在verilog中的意图 我将举一个较小的例子。我基本上是在尝试将一个模块的输出连接到另一个模块的输入。请帮我打49号线,并给我一个替代品 25 module ands ( 26 input1, 27 input2, 28 outputs 29 ); 30 input [2:0] input1; 31 input i
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
25模块(
26输入1,
27输入2,
28项产出
29 );
30输入[2:0]输入1;
31输入2;
32个输出[2:0]个输出;
33
34整数itr;
35
36和a(输出[0],输入1[0],输入2);
37首字母
38开始
39为(itr=1;itr您需要使用genvar itr和generate…endgenerate块,而不是初始块。这应该完全符合您的要求。Verilog模块不打算在初始块或always块内实例化。如果您想用循环实例化多个模块,那么generate
块就是您想要的您要使用。使用您的示例:
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
模块(
输入1,
输入2,
输出
);
输入[2:0]输入1;
输入2;
输出[2:0]输出;
整数itr;
和a(输出[0],输入1[0],输入2);
genvar-itr;
生成
对于(itr=1;itr)是一个关于的相关问题。整数itr;
是否应该删除?