| 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 |