导致问题的部分是c[1] = p[0] + g[0] & c0;
。它有什么问题?
module CLA_gen(p, g, c0, c);
input [3:0] p;
input [3:0] g;
input c0;
output reg [4:1] c;
begin
c[1] = p[0] + g[0] & c0;
end
endmodule
答案 0 :(得分:4)
你错过了你的常常阻止及其敏感性列表。
always @(*)
c[1] = p[0] + g[0] & c0;
在上面发布的代码中,您不一定需要开头/结尾,因为您只有一行。但是将它添加到那里并没有什么坏处。
答案 1 :(得分:2)
您最有可能想要改变:
begin
为:
always @* begin
每个begin/end
必须是其他构造的一部分,例如always
,initial
等。
答案 2 :(得分:0)
删除开头和结尾 将c声明为输出
按照这个
module CLA_gen(p, g, c0, c);
input [3:0] p;
input [3:0] g;
input c0;
output [4:1] c;
assign c[1] = p[0] + g[0] & c0;
endmodule
答案 3 :(得分:-1)
您可能需要使用< =而不是=。