summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nandgame/counter.sv35
1 files changed, 35 insertions, 0 deletions
diff --git a/nandgame/counter.sv b/nandgame/counter.sv
new file mode 100644
index 0000000..8fa1d2b
--- /dev/null
+++ b/nandgame/counter.sv
@@ -0,0 +1,35 @@
+// nandgame counter
+
+`timescale 1us/1us
+
+module counter #(
+ parameter DATA_WIDTH = 16
+) (
+ input [(DATA_WIDTH-1):0] X,
+ input wire st,
+ // probably opposed to nandgame,
+ // which "stores" on rising clock
+ // and "outputs" on falling clock,
+ // use "regular" stuff???
+ input wire cl,
+ output reg [(DATA_WIDTH-1):0] RES
+);
+
+
+/*
+A counter component increments a 16-bit number for each clock cycle.
+
+If st (store) is 1, then the input value X is used as the new counter value.
+
+If st is 0, then the previous counter value is incremented by 1.
+
+The counter output changes when cl (clock signal) changes to 0.
+Input Effect
+st cl
+0 0 set next to output + 1
+1 0 set next to X
+
+output is the current output of the component. next becomes the current output when cl changes to 0.
+*/
+
+endmodule