aboutsummaryrefslogtreecommitdiffstats
path: root/examples/icebreaker/example.v
diff options
context:
space:
mode:
Diffstat (limited to 'examples/icebreaker/example.v')
-rw-r--r--examples/icebreaker/example.v39
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/icebreaker/example.v b/examples/icebreaker/example.v
new file mode 100644
index 0000000..8985f9e
--- /dev/null
+++ b/examples/icebreaker/example.v
@@ -0,0 +1,39 @@
+module top (
+ input CLK,
+
+ output LED1,
+ output LED2,
+ output LED3,
+ output LED4,
+ output LED5,
+
+ input BTN_N,
+ input BTN1,
+ input BTN2,
+ input BTN3,
+
+ output LEDR_N,
+ output LEDG_N,
+
+ output P1A1, P1A2, P1A3, P1A4, P1A7, P1A8, P1A9, P1A10,
+ output P1B1, P1B2, P1B3, P1B4, P1B7, P1B8, P1B9, P1B10
+);
+
+ localparam BITS = 5;
+ localparam LOG2DELAY = 22;
+
+ reg [BITS+LOG2DELAY-1:0] counter = 0;
+ reg [BITS-1:0] outcnt;
+
+ always @(posedge CLK) begin
+ counter <= counter + 1;
+ outcnt <= counter >> LOG2DELAY;
+ end
+
+ assign {LED1, LED2, LED3, LED4, LED5} = outcnt ^ (outcnt >> 1);
+
+ assign {LEDR_N, LEDG_N} = ~(!BTN_N + BTN1 + BTN2 + BTN3);
+
+ assign {P1A1, P1A2, P1A3, P1A4, P1A7, P1A8, P1A9, P1A10,
+ P1B1, P1B2, P1B3, P1B4, P1B7, P1B8, P1B9, P1B10} = 1 << (outcnt & 15);
+endmodule