module top ( | |
input clk, | |
output LED1, | |
output LED2, | |
output LED3, | |
output LED4, | |
output LED5 | |
); | |
localparam BITS = 5; | |
localparam LOG2DELAY = 22; | |
function [BITS-1:0] bin2gray(input [BITS-1:0] in); | |
integer i; | |
reg [BITS:0] temp; | |
begin | |
temp = in; | |
for (i=0; i<BITS; i=i+1) | |
bin2gray[i] = ^temp[i +: 2]; | |
end | |
endfunction | |
reg [BITS+LOG2DELAY-1:0] counter = 0; | |
always@(posedge clk) | |
counter <= counter + 1; | |
assign {LED1, LED2, LED3, LED4, LED5} = bin2gray(counter >> LOG2DELAY); | |
endmodule |