58 lines
1.0 KiB
Coq
58 lines
1.0 KiB
Coq
![]() |
module blinky (
|
||
|
input clk_pin,
|
||
|
output led1_pin,
|
||
|
output led2_pin,
|
||
|
output led3_pin,
|
||
|
output led4_pin,
|
||
|
output led5_pin
|
||
|
);
|
||
|
wire clk, led1, led2, led3, led4, led5;
|
||
|
|
||
|
SB_IO #(
|
||
|
.PIN_TYPE(6'b 0110_01),
|
||
|
.PULLUP(1'b0),
|
||
|
.NEG_TRIGGER(1'b0)
|
||
|
) led_iob [4:0] (
|
||
|
.PACKAGE_PIN({led1_pin, led2_pin, led3_pin, led4_pin, led5_pin}),
|
||
|
.LATCH_INPUT_VALUE(),
|
||
|
.CLOCK_ENABLE(),
|
||
|
.INPUT_CLK(),
|
||
|
.OUTPUT_CLK(),
|
||
|
.OUTPUT_ENABLE(),
|
||
|
.D_OUT_0({led1, led2, led3, led4, led5}),
|
||
|
.D_OUT_1(),
|
||
|
.D_IN_0(),
|
||
|
.D_IN_1()
|
||
|
);
|
||
|
|
||
|
SB_IO #(
|
||
|
.PIN_TYPE(6'b 0000_01),
|
||
|
.PULLUP(1'b0),
|
||
|
.NEG_TRIGGER(1'b0)
|
||
|
) clk_iob (
|
||
|
.PACKAGE_PIN(clk_pin),
|
||
|
.LATCH_INPUT_VALUE(),
|
||
|
.CLOCK_ENABLE(),
|
||
|
.INPUT_CLK(),
|
||
|
.OUTPUT_CLK(),
|
||
|
.OUTPUT_ENABLE(),
|
||
|
.D_OUT_0(),
|
||
|
.D_OUT_1(),
|
||
|
.D_IN_0(clk),
|
||
|
.D_IN_1()
|
||
|
);
|
||
|
|
||
|
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);
|
||
|
endmodule
|