first commit

This commit is contained in:
Jose Luis Montañes Ojados
2026-02-28 21:59:55 +01:00
commit d094ff3148
21 changed files with 2286 additions and 0 deletions

45
full_adder/full_adder.v Normal file
View File

@@ -0,0 +1,45 @@
/*
Full Adder Declaration
A B Cin | Sum Cout
0 0 0 | 0 0
0 0 1 | 1 0
0 1 0 | 1 0
0 1 1 | 0 1
1 0 0 | 1 0
1 0 1 | 0 1
1 1 0 | 0 1
1 1 1 | 1 1
*/
`include "./half_adder/half_adder.v"
module full_adder_structural (carry_in, a, b, sum, carry_out);
input carry_in, a, b;
output sum, carry_out;
wire add1_sum, add1_carry;
wire add2_carry;
half_adder add1(a, b, add1_sum, add1_carry);
half_adder add2(add1_sum, carry_in, sum, add2_carry);
or final_or(carry_out, add1_carry, add2_carry);
endmodule
module full_adder_dataflow (carry_in, a, b, sum, carry_out);
input carry_in, a, b;
output sum, carry_out;
assign sum = a ^ b ^ carry_in;
assign carry_out = (a & b) | (carry_in & (a ^ b));
endmodule
module full_adder_behavioral (carry_in, a, b, sum, carry_out);
input carry_in, a, b;
output reg sum, carry_out;
always @(*) begin
sum = a ^ b ^ carry_in;
carry_out = (a & b) | (carry_in & (a ^ b));
end
endmodule