【发布时间】:2021-04-24 16:34:43
【问题描述】:
我正在使用 Verilog 中的 1 位加法器创建一个 4 位加法器,但遇到了一个问题,即我的 4 位加法器未正确添加。
这是我的代码:
1位
module ab_fulladd (A,B,Cin,S,Cout);
output Cout,S;
input A,B,Cin;
wire w1,w2,w3;
xor G1(S,A,B,Cin);
and
G2(w1,A,B),
G3(w2,A,Cin),
G4(w3,B,Cin);
or
G5(Cout,w1,w2,w3);
endmodule
4 位
module add4bit_parametric (a, b, cin, cout, sum);
parameter size = 4;
input [size-1:0] a, b;
input cin;
output cout;
output [size-1:0] sum;
wire [size-2:0] c;
genvar i;
generate
for (i = 0; i < size; i = i + 1) begin: adder
if (i == 0)
ab_fulladd fa (a[i], b[i], cin, c[i], sum[i]);
else if (i == size-1)
ab_fulladd fa(a[i],b[i],c[i-1],cout,sum[i]);
else
ab_fulladd fa (a[i],b[i],c[i-1],c[i],sum[i]);
end endgenerate
endmodule
我的 4 位在波形中加起来不好。你能帮帮我吗?
【问题讨论】: