// Howdy 👋.
//
// If you are new to writing code in Flux make sure to check out our get started docs: https://docs.flux.ai/reference/introduction
//
// We also have a Flux Slack Community in case you need help: https://join.slack.com/t/fluxcommunity/shared_invite/zt-p48n941f-wzQ06kGmuFJ2HXnGYT1JkA
//
// To infinity a
module ALU (
input[3: 0]A, // 4-bit input A
input[3: 0]B, // 4-bit input B
input[2: 0]opcode, // 3-bit operation code
output reg[3: 0]result,
output reg carry_out
);
always @(*) begin
case (opcode)
3'b000: {carry_out, result} = A + B; // Addition
3'b001: {carry_out, result} = A - B; // Subtraction
3'b010: result = A & B; // Bitwise AND
3'b011: result = A | B; // Bitwise OR
3'b100: result = A ^ B; // Bitwise XOR