module icebreaker ( input clki, input btn1, input btn2, input btn3, input btn_n, output led1, output led2, output led3, output led4, output led5, output ledr, output ledg, ); wire clk; SB_GB clk_gb(.USER_SIGNAL_TO_GLOBAL_BUFFER(clki), .GLOBAL_BUFFER_OUTPUT(clk)); 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, ledg} = ~(!btn_n + btn1 + btn2 + btn3); endmodule