`include "asu.sv" `include "lu.sv" // flags[0:0] = Cout // flags[1:1] = Overflow module alu #(parameter width=2)(input logic [3:0] op, input logic [2**width-1:0] A, input logic [2**width-1:0] B, output logic [2**width-1:0] OUT_1, output logic flags[1:0]); logic [2**width-1:0] asu_out; logic [1:0] asu_flags; logic [0:0] asu_op; asu #(width) adder_unit(asu_op, A, B, asu_out, asu_flags[0], asu_flags[1]); logic [width-1:0] lu_out; lu #(width) logic_unit(op[1:0], A, B, lu_out); // Cout = asu_flags[0] // Overflow = asu_flags[0] ^ asu_flags[1] endmodule