module top ( input clk, output [3:0] led ); localparam BITS = 4; localparam LOG2DELAY = 22; wire bufg; BUFG bufgctrl ( .I(clk), .O(bufg) ); reg [BITS+LOG2DELAY-1:0] counter = 0; always @(posedge bufg) begin counter <= counter + 1; end assign led[3:0] = counter >> LOG2DELAY; endmodule