summaryrefslogtreecommitdiff
path: root/nandgame/cond_check.sv
diff options
context:
space:
mode:
Diffstat (limited to 'nandgame/cond_check.sv')
-rw-r--r--nandgame/cond_check.sv23
1 files changed, 23 insertions, 0 deletions
diff --git a/nandgame/cond_check.sv b/nandgame/cond_check.sv
new file mode 100644
index 0000000..dc9d334
--- /dev/null
+++ b/nandgame/cond_check.sv
@@ -0,0 +1,23 @@
+// nandgame condition checker
+
+`timescale 1us/1us
+
+module cond_check #(
+ parameter DATA_WIDTH = 16
+) (
+ input [(DATA_WIDTH-1):0] X,
+ input wire ltz,
+ input wire eqz,
+ input wire gtz,
+ output wire res
+);
+
+wire ltr, eqr, gtr, greater_zero;
+assign greater_zero = X[(DATA_WIDTH - 1)] == 0;
+assign ltr = ltz && !greater_zero;
+assign gtr = gtz && greater_zero && !(X == 0);
+assign eqr = eqz && (X == 0);
+
+assign res = ltr || gtr || eqr;
+
+endmodule