Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
f4a3e3bb8b
|
|||
f5b19ae9fc
|
|||
48bdad0e8b
|
|||
bb7e172316
|
6
logic.v
6
logic.v
@@ -20,7 +20,7 @@ output [63:0] Y;
|
||||
//input list
|
||||
input [63:0] A;
|
||||
|
||||
// TBD
|
||||
RC_ADD_SUB_64 twoscomp64_sub(.Y(Y), .A(64'b0), .B(A), .SnA(1'b1));
|
||||
|
||||
endmodule
|
||||
|
||||
@@ -31,7 +31,7 @@ output [31:0] Y;
|
||||
//input list
|
||||
input [31:0] A;
|
||||
|
||||
// TBD
|
||||
RC_ADD_SUB_32 twoscomp32_sub(.Y(Y), .A(0), .B(A), .SnA(1'b1));
|
||||
|
||||
endmodule
|
||||
|
||||
@@ -143,4 +143,4 @@ input [1:0] I;
|
||||
|
||||
// TBD
|
||||
|
||||
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
|
||||
|
||||
@@ -50,11 +64,12 @@ genvar i;
|
||||
generate
|
||||
for (i = 0; i < 32; i = i + 1)
|
||||
begin : add32_gen_loop
|
||||
FULL_ADDER add_inst(Y[i], C[i+1], A[i], B[i] ^ SnA, C[i]);
|
||||
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
|
||||
|
||||
//assign CO = C[32];
|
||||
buf (CO, C[32]);
|
||||
|
||||
endmodule
|
||||
|
Reference in New Issue
Block a user