2 Commits

Author SHA1 Message Date
3801d523de 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
2024-10-01 20:42:02 -07:00
d1475b5a4f 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
2024-10-01 11:01:17 -07:00
2 changed files with 6 additions and 21 deletions

View File

@@ -20,7 +20,7 @@ output [63:0] Y;
//input list //input list
input [63:0] A; input [63:0] A;
RC_ADD_SUB_64 twoscomp64_sub(.Y(Y), .A(64'b0), .B(A), .SnA(1'b1)); // TBD
endmodule endmodule
@@ -31,7 +31,7 @@ output [31:0] Y;
//input list //input list
input [31:0] A; input [31:0] A;
RC_ADD_SUB_32 twoscomp32_sub(.Y(Y), .A(0), .B(A), .SnA(1'b1)); // TBD
endmodule endmodule

View File

@@ -29,21 +29,7 @@ input [63:0] A;
input [63:0] B; input [63:0] B;
input SnA; input SnA;
// carry-in bits for each 1-bit full adder // TBD
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 endmodule
@@ -64,12 +50,11 @@ genvar i;
generate generate
for (i = 0; i < 32; i = i + 1) for (i = 0; i < 32; i = i + 1)
begin : add32_gen_loop begin : add32_gen_loop
wire B_xor; FULL_ADDER add_inst(Y[i], C[i+1], A[i], B[i] ^ SnA, C[i]);
xor (B_xor, B[i], SnA);
FULL_ADDER add32_inst(Y[i], C[i+1], A[i], B_xor, C[i]);
end end
endgenerate endgenerate
//assign CO = C[32];
buf (CO, C[32]); buf (CO, C[32]);
endmodule endmodule