// nandgame arithmetic unit `timescale 1us/1us `include "nandgame_types.v" `ifndef NANDGAME_ARU `define NANDGAME_ARU module arith_unit #( parameter DATA_WIDTH = 16 ) ( input [(DATA_WIDTH-1):0] X, input [(DATA_WIDTH-1):0] Y, input ArithCode operation, output logic [(DATA_WIDTH-1):0] RES ); always_comb begin case (operation) ARITH_PLUS: RES = X + Y; ARITH_MINUS: RES = X - Y; ARITH_INC: RES = X + 1; ARITH_DEC: RES = X - 1; default: RES = 0; endcase end endmodule `endif