`timescale 1us/1us `include "nandgame_types.v" module logic_unit_tb ( ); logic [15:0] in1; logic [15:0] in2; LogicCode opcode; logic [15:0] result; logic_unit uut ( .X(in1), .Y(in2), .operation(opcode), .RES(result) ); string filename; initial begin `ifdef DUMP_FILE_NAME filename=`DUMP_FILE_NAME; `else filename="logic_unit.lxt2"; `endif $dumpfile(filename); $dumpvars(); end initial begin in1 = 16'b1010; in2 = 16'b1100; opcode = LOGIC_AND; #1 assert(result == 16'b1000); #1 in1 = 16'b1010; in2 = 16'b1100; opcode = LOGIC_OR; #1 assert(result == 16'b1110); #1 in1 = 16'b1010; in2 = 16'b1100; opcode = LOGIC_XOR; #1 assert(result == 16'b0110); #1 in1 = 16'b1010101010101010; opcode = LOGIC_NEGT; #1 assert(result == 16'b0101010101010101); #1 $finish(); end endmodule