creation of an ALU
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
'include "cpu/alu/halfadder.sv"
|
||||||
|
|
||||||
|
module adder (
|
||||||
|
output sum_bit,
|
||||||
|
output carry_bit,
|
||||||
|
input a,
|
||||||
|
input b,
|
||||||
|
input c
|
||||||
|
);
|
||||||
|
|
||||||
|
halfadder halfadd(tmpXor0, tmpAnd0, a, b);
|
||||||
|
|
||||||
|
xor sum_final(sum_bit, tmpXor0, c);
|
||||||
|
|
||||||
|
and carry_tmp0(tmpAnd1, tmpXor0, c);
|
||||||
|
or carry_final(carry_bit, tmpAnd0, tmpAnd1);
|
||||||
|
|
||||||
|
endmodule
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
'include "cpu/alu/adder.sv"
|
||||||
|
|
||||||
|
module adder16 (
|
||||||
|
output [15:0]sum_bit,
|
||||||
|
output [15:0]carry_bit
|
||||||
|
input [15:0]a,
|
||||||
|
input [15:0]b,
|
||||||
|
input [15:0]c,
|
||||||
|
);
|
||||||
|
|
||||||
|
halfadder(tmpXor0, tmpAnd0, a, b)
|
||||||
|
|
||||||
|
xor sum_final(sum_bit, tmpXor0, c);
|
||||||
|
|
||||||
|
and carry_tmp0(tmpAnd1, tmpXor0, c);
|
||||||
|
or carry_final(carry_bit, tmpAnd0, tmpAnd1);
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
module halfadder (
|
||||||
|
output sum_bit,
|
||||||
|
output carry_bit,
|
||||||
|
input a,
|
||||||
|
input b
|
||||||
|
);
|
||||||
|
|
||||||
|
xor sum_g(sum_bit, a, b);
|
||||||
|
and carry_g(carry_bit, a, b);
|
||||||
|
|
||||||
|
endmodule
|
||||||
Reference in New Issue
Block a user