diff options
Diffstat (limited to 'examples/icebreaker/example.v')
-rw-r--r-- | examples/icebreaker/example.v | 39 |
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 |