Jeśli licznik jest binarny i nie masz problemu hazardów i nie zależy Ci na synchroniźmie z zegarem to rób asynchroniczny. Myślę, że wyciągnąłbyś sporo więcej niź te 200 MHz. Jeśli chcesz synchroniczny binarny to piszesz go piszesz normalnie w kodzie a on już zrobi domyślnie jak należy :)
U mnie:
process (CLK, RST) begin if RST='1' then divider <= (others => '0'); elsif CLK'event and CLK = '1' then if divider < "11111111111111111111" then divider <= divider+1; else divider <= (others => '0'); end if; end if; end process;
Przeczytaj Xilinx XAPP379, ZTCP licznik binarny może być tak samo szybki do 40 bitów bo tylowejściową bramkę AND może sobie uczynić bez pożyczania z sąsiednich zasobów.