【发布时间】:2021-11-27 00:03:34
【问题描述】:
在行为建模中实现 Verilog 代码时,我们使用 reg 作为输出。但是,当我必须使用模块实例化并使用电线连接它时,它会在实现时显示错误。有没有其他方法可以使用模块实例化来连接不同模块实例的输出以实现组合逻辑,因为将先前模型的reg 输出连接到电线是非法的?请注意,我必须应用行为建模,因此不允许使用赋值语句。这是一个将两个半加器连接到一个全加器的示例。
module half_adder(input wire a,b,output reg sum,output reg carry);
always@(a or b)
begin
sum = a^b ;
carry= a & b ;
end
endmodule
module full_adder(input wire a,b,c,output reg sum,output reg carry);
wire s1,c1,c2;
half_adder gate1(a,b,s1,c1);
half_adder gate2(s1,c,sum,c2);
always@(a or b or c)
begin
carry = c1|c2;
end
endmodule
错误 (10663):full_adder.v(14) 处的 Verilog HDL 端口连接错误: 输出或输入端口“sum”必须连接到结构网络 表达
【问题讨论】:
标签: verilog