-3
module adder4(
output[3:0] sum,
output c_out, // carry out
input[3:0] a, b, // operands
input c_in); // carry in
wire [2:0] c_o;
full_adder fa1(c_o[0],sum[0],a[0],b[0],c_in);
full_adder fa2(c_o[1],sum[1],a[1],b[1],c_o[0]);
full_adder fa3(c_o[2],sum[2],a[2],b[2],c_o[1]);
full_adder fa4(c_out,sum[3],a[3],b[3],c_o[2]);
endmodule
module full_adder(
output sum,
output c_out, // carry out
input a,
input b,
input c_in); // carry in
wire sum1;
wire c_in1;
wire c_out2;
half_adder ha1(sum1,c_in1,a,b);
half_adder ha2(sum,c_out2,sum1,c_in);
or(c_out,c_out2,c_in1);
endmodule
module half_adder(
output sum,
output c_out, // carry out
input a,
input b);
assign sum=a^b;
assign c_out=a&&b;
endmodule
嗨,夥計們!我試圖從4個完整的加法器中創建一個4位加法器,但是我一直得到錯誤的結果。當a = 3和b = 8時,我得到的總和是9而不是11.我沒有看到這個錯誤。有人知道我在這裏做錯了什麼嗎?4位加法器返回錯誤結果
感謝:d,我沒有意識到,直到現在。 – 2014-10-16 20:13:48
現在我得到12當a = 8,b = 3和c_in = 1時 – 2014-10-16 20:23:15
@lulia Dobra:1)不客氣。 2)你應該得到12。 – toolic 2014-10-16 20:24:31