From f9d92b31e4bea3037c75f7c7a508c1be09811fd0 Mon Sep 17 00:00:00 2001 From: kryptoish Date: Sat, 7 Dec 2024 22:12:43 -0800 Subject: Final Working Version --- src/alu.sv | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/alu.sv (limited to 'src/alu.sv') diff --git a/src/alu.sv b/src/alu.sv new file mode 100644 index 0000000..c6d00bd --- /dev/null +++ b/src/alu.sv @@ -0,0 +1,17 @@ +module ALU(Ain, Bin, op, out, status); + input [1:0] op; + input [15:0] Ain, Bin; + output [2:0] status; + output reg [15:0] out; + + assign status[2] = out[15]; + assign status[1] = (out[15] ^ Ain[15]) & ~(out[15] ^ Bin[15]); + assign status[0] = (out == 0); + + always_comb case (op) + 2'b00: out = Ain + Bin; + 2'b01: out = Ain - Bin; + 2'b10: out = Ain & Bin; + 2'b11: out = ~Bin; + endcase +endmodule: ALU -- cgit v1.2.3