Como engenheiro experiente ( 3 anos com design FPGA e sistemas embarcados ), estou lhe dizendo que você precisa verificar a folha de dados e o guia do usuário do FPGA. Não é uma resposta simples.
Você precisa fazer do seu ajuste de design o tipo FPGA que você escolheu. Alguns FPGAs têm flip-flops projetados para redefinição assíncrona, outros são projetados para redefinição de sincronização.
Você precisa verificar o guia do usuário do FPGA para saber que tipo de flip-flops você possui.
O implementador / mapeador escolherá rotas dedicadas para sua redefinição (o código pode ser executado com maior frequência e ocupa menos espaço ) se você combinar seu código com o tipo de primitivas FPGA.
Seu design funcionará em QUALQUER caso , mas às vezes o Implementador de FPGA fará o possível para que sua lógica funcione ( adiciona mais lógica ), mas isso causará menor frequência máxima e / ou mais recursos de FPGA.
Exemplo: testado com o ZYNQ da Xilinx (o FPGA foi projetado para redefinição sincronizada - consulte o manual do usuário das primitivas ). Ao alterar a redefinição de assíncrono para sincronizado , a frequência estável máxima passou de 220MHz para 258MHz e, portanto, passei na minha margem de frequência.
Além disso, devo acrescentar que o implementador não sabe o que é um sinal de relógio e redefinição. Ele atribui pinos de flip-flop a sinais por ORDER, não por nome. Assim, em alguns FPGAs, o implementador escolhe o primeiro sinal após o "processo () começar" em VHDL como o relógio, em alguns como a redefinição, dependendo do FPGA em que o implementador está definido.