iverilog/ivtest/vhdl_tests/pr2529315b.v

73 lines
848 B
Verilog

module test (
Z,
CO32,
A,
B,
CI);
input[63:0] A;
input[63:0] B;
input CI;
output[63:0] Z;
output CO32;
wire[31:0] Z1;
wire[31:0] Z2;
adder32 add0(
.Z(Z[31:0]),
.A(A[31:0]),
.B(B[31:0]),
.CI(CI));
carry32 car0(
.CO (CO32),
.A (A[31:0]),
.B (B[31:0]),
.CI (CI));
adder32 add1(
.Z (Z1),
.A (A[63:32]),
.B (B[63:32]),
.CI (1'b0));
adder32 add2(
.Z (Z2),
.A (A[63:32]),
.B (B[63:32]),
.CI (1'b1));
assign Z[63:32] = CO32 ? Z2 : Z1;
endmodule
module adder32 (
Z,
A,
B,
CI);
input[31:0] A;
input[31:0] B;
input CI;
output [31:0] Z;
assign Z = A + B + CI;
endmodule
module carry32 (
CO,
A,
B,
CI);
input[31:0] A;
input[31:0] B;
input CI;
output CO;
wire[31:0] unused;
assign {CO, unused} = A + B + CI;
endmodule