summaryrefslogtreecommitdiff
path: root/nandgame/cond_check_tb.sv
diff options
context:
space:
mode:
authoruvok2026-01-01 16:57:20 +0100
committeruvok2026-01-01 16:57:20 +0100
commit7a6628f20419ca3bcade1865da66030569feae71 (patch)
treedc8b199929548ab7384e8a9d06da9d1d8863bdc4 /nandgame/cond_check_tb.sv
parent65e923b2b4648456c9d83c81262642918b75daff (diff)
Add nandgame condition check
Diffstat (limited to 'nandgame/cond_check_tb.sv')
-rw-r--r--nandgame/cond_check_tb.sv119
1 files changed, 119 insertions, 0 deletions
diff --git a/nandgame/cond_check_tb.sv b/nandgame/cond_check_tb.sv
new file mode 100644
index 0000000..a7a22dc
--- /dev/null
+++ b/nandgame/cond_check_tb.sv
@@ -0,0 +1,119 @@
+`timescale 1us/1us
+
+`include "nandgame_types.v"
+
+module cond_check_tb;
+
+logic [15:0] in1;
+logic ltz, gtz, eqz;
+logic res;
+
+cond_check uut (
+ .X(in1),
+ .ltz(ltz),
+ .gtz(gtz),
+ .eqz(eqz),
+ .res(res)
+);
+
+string filename;
+initial begin
+`ifdef DUMP_FILE_NAME
+ filename=`DUMP_FILE_NAME;
+`else
+ filename="cond_check.lin1t2";
+`endif
+ $dumpfile(filename); $dumpvars();
+
+end
+
+bit exp_res;
+initial begin
+ eqz = 0; gtz = 0; ltz = 0; in1 = 0;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 0; ltz = 1; in1 = 0;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 1; ltz = 0; in1 = 0;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 1; gtz = 0; ltz = 0; in1 = 0;
+ #1
+ exp_res = 1;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 0; ltz = 0; in1 = 1;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 0; ltz = 1; in1 = 1;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 1; ltz = 0; in1 = 1;
+ #1
+ exp_res = 1;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 1; gtz = 0; ltz = 0; in1 = 1;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 0; ltz = 0; in1 = -1;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 0; ltz = 1; in1 = -1;
+ #1
+ exp_res = 1;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 0; gtz = 1; ltz = 0; in1 = -1;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ eqz = 1; gtz = 0; ltz = 0; in1 = -1;
+ #1
+ exp_res = 0;
+ assert(res == exp_res)
+ else $error("Expected %d, but got %d", exp_res, res);
+ #1
+
+ $finish();
+end
+
+endmodule