lab-02: gate level model for ripple carry adder subtractor
Gate level implementation for the following components: - FULL_ADDER - HALF_ADDER - RC_ADD_SUB_32
This commit is contained in:
parent
87e48f162e
commit
42732e4fe0
@ -23,6 +23,9 @@ module FULL_ADDER(S,CO,A,B, CI);
|
||||
output S,CO;
|
||||
input A,B, CI;
|
||||
|
||||
//TBD
|
||||
wire Y, CO1, CO2;
|
||||
HALF_ADDER ha1(.Y(Y), .C(CO1), .A(A), .B(B));
|
||||
HALF_ADDER ha2(.Y(S), .C(CO2), .A(Y), .B(CI));
|
||||
or (CO, CO1, CO2);
|
||||
|
||||
endmodule;
|
||||
endmodule
|
||||
|
@ -22,6 +22,7 @@ module HALF_ADDER(Y,C,A,B);
|
||||
output Y,C;
|
||||
input A,B;
|
||||
|
||||
// TBD
|
||||
xor digit(Y, A, B);
|
||||
and carry(C, A, B);
|
||||
|
||||
endmodule;
|
||||
endmodule
|
||||
|
@ -29,7 +29,21 @@ input [63:0] A;
|
||||
input [63:0] B;
|
||||
input SnA;
|
||||
|
||||
// TBD
|
||||
// carry-in bits for each 1-bit full adder
|
||||
wire C[0:64];
|
||||
buf (C[0], SnA);
|
||||
|
||||
genvar i;
|
||||
generate
|
||||
for (i = 0; i < 64; i = i + 1)
|
||||
begin : add64_gen_loop
|
||||
wire B_xor;
|
||||
xor (B_xor, B[i], SnA);
|
||||
FULL_ADDER add64_inst(Y[i], C[i+1], A[i], B_xor, C[i]);
|
||||
end
|
||||
endgenerate
|
||||
|
||||
buf (CO, C[64]);
|
||||
|
||||
endmodule
|
||||
|
||||
@ -42,7 +56,20 @@ input [`DATA_INDEX_LIMIT:0] A;
|
||||
input [`DATA_INDEX_LIMIT:0] B;
|
||||
input SnA;
|
||||
|
||||
// TBD
|
||||
// carry-in bits for each 1-bit full adder
|
||||
wire C[0:32];
|
||||
buf (C[0], SnA);
|
||||
|
||||
genvar i;
|
||||
generate
|
||||
for (i = 0; i < 32; i = i + 1)
|
||||
begin : add32_gen_loop
|
||||
wire B_xor;
|
||||
xor (B_xor, B[i], SnA);
|
||||
FULL_ADDER add32_inst(Y[i], C[i+1], A[i], B_xor, C[i]);
|
||||
end
|
||||
endgenerate
|
||||
|
||||
buf (CO, C[32]);
|
||||
|
||||
endmodule
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user