From 981f86a5b3ea6a05925c807bac26986e0c876dcf Mon Sep 17 00:00:00 2001 From: uvok Date: Thu, 1 Jan 2026 15:32:54 +0100 Subject: Add nandgame files need/want systemverilog --- nandgame/logic_unit.sv | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 nandgame/logic_unit.sv (limited to 'nandgame/logic_unit.sv') diff --git a/nandgame/logic_unit.sv b/nandgame/logic_unit.sv new file mode 100644 index 0000000..32b9691 --- /dev/null +++ b/nandgame/logic_unit.sv @@ -0,0 +1,32 @@ +// nandgame logic unit + +`timescale 1us/1us + +`include "nandgame_types.v" + +module logic_unit #( + parameter DATA_WIDTH = 16 +) ( + input [(DATA_WIDTH-1):0] X, + input [(DATA_WIDTH-1):0] Y, + input LogicCode operation, + + output logic [(DATA_WIDTH-1):0] RES +); + +// assign RES = operation == LOGIC_AND ? (X & Y) : +// operation == LOGIC_OR ? (X | Y) : +// operation == LOGIC_XOR ? (X ^ Y) : +// operation == LOGIC_NEGT ? (~X) : 0; + +always_comb begin + case (operation) + LOGIC_AND: RES = X & Y; + LOGIC_OR: RES = X | Y; + LOGIC_XOR: RES = X ^ Y; + LOGIC_NEGT: RES = ~X; + default: RES = 0; + endcase +end + +endmodule -- cgit v1.2.3