implement a Verilog 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
d1475b5a4f
commit
3801d523de
12
full_adder.v
12
full_adder.v
@ -23,19 +23,9 @@ module FULL_ADDER(S,CO,A,B, CI);
|
|||||||
output S,CO;
|
output S,CO;
|
||||||
input A,B, CI;
|
input A,B, CI;
|
||||||
|
|
||||||
// half adder 1
|
|
||||||
//assign Y = A ^ B;
|
|
||||||
//assign CO1 = A & B;
|
|
||||||
|
|
||||||
// half adder 2
|
|
||||||
//assign S = Y ^ CI;
|
|
||||||
//assign CO2 = Y & CI;
|
|
||||||
|
|
||||||
//assign CO = CO1 | CO2;
|
|
||||||
|
|
||||||
wire Y, CO1, CO2;
|
wire Y, CO1, CO2;
|
||||||
HALF_ADDER ha1(.Y(Y), .C(CO1), .A(A), .B(B));
|
HALF_ADDER ha1(.Y(Y), .C(CO1), .A(A), .B(B));
|
||||||
HALF_ADDER ha2(.Y(S), .C(CO2), .A(Y), .B(CI));
|
HALF_ADDER ha2(.Y(S), .C(CO2), .A(Y), .B(CI));
|
||||||
assign CO = CO1 | CO2;
|
or (CO, CO1, CO2);
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -22,12 +22,7 @@ module HALF_ADDER(Y,C,A,B);
|
|||||||
output Y,C;
|
output Y,C;
|
||||||
input A,B;
|
input A,B;
|
||||||
|
|
||||||
// this
|
xor digit(Y, A, B);
|
||||||
assign Y = A ^ B;
|
and carry(C, A, B);
|
||||||
assign C = A & B;
|
|
||||||
|
|
||||||
// or this
|
|
||||||
//xor digit(Y, A, B);
|
|
||||||
//and carry(C, A, B);
|
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
@ -42,15 +42,9 @@ input [`DATA_INDEX_LIMIT:0] A;
|
|||||||
input [`DATA_INDEX_LIMIT:0] B;
|
input [`DATA_INDEX_LIMIT:0] B;
|
||||||
input SnA;
|
input SnA;
|
||||||
|
|
||||||
//wire C0, C1, C2, C3;
|
// carry-in bits for each 1-bit full adder
|
||||||
//assign C0 = SnA;
|
|
||||||
//FULL_ADDER b0(Y[0], C1, A[0], B[0], C0);
|
|
||||||
|
|
||||||
// module FULL_ADDER(S,CO,A,B, CI);
|
|
||||||
|
|
||||||
// carry-in bits for each 1 bit full adder
|
|
||||||
wire C[0:32];
|
wire C[0:32];
|
||||||
assign C[0] = SnA;
|
buf (C[0], SnA);
|
||||||
|
|
||||||
genvar i;
|
genvar i;
|
||||||
generate
|
generate
|
||||||
@ -60,6 +54,7 @@ generate
|
|||||||
end
|
end
|
||||||
endgenerate
|
endgenerate
|
||||||
|
|
||||||
assign CO = C[32];
|
//assign CO = C[32];
|
||||||
|
buf (CO, C[32]);
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
Loading…
x
Reference in New Issue
Block a user