| module blinky ( | |
| input clki, | |
| output led0, | |
| output led1, | |
| output led2, | |
| output led3 | |
| ); | |
| wire clk; | |
| BUFGCTRL clk_gb ( | |
| .I0(clki), | |
| .CE0(1'b1), | |
| .CE1(1'b0), | |
| .S0(1'b1), | |
| .S1(1'b0), | |
| .IGNORE0(1'b0), | |
| .IGNORE1(1'b0), | |
| .O(clk) | |
| ); | |
| localparam BITS = 4; | |
| parameter LOG2DELAY = 23; | |
| reg [BITS+LOG2DELAY-1:0] counter = 0; | |
| reg [BITS-1:0] outcnt; | |
| always @(posedge clk) begin | |
| counter <= counter + 1; | |
| outcnt <= counter >> LOG2DELAY; | |
| end | |
| assign {led0, led1, led2, led3} = outcnt ^ (outcnt >> 1); | |
| endmodule |