process(clk) --start the process when clk when edge is detected. begin if rising_edge(clk)then --if rising edge detected if(counter <=X"BEBC200" ) then --counter starts at 0 but as soon as the rising edge is detected on the clock, it counts until the value of counter is less than or equal to the conditional value delay<='0'; counter_2000ms <=counter+x"000001"; --increment the counter every iteration else --once the counter is greater than the conditional value delay<='1'; counter<=x"000000"; --reset the counte immediately and restart the process end if; end if; end process;