Como ingeniero experimentado ( 3 años con diseño FPGA y sistemas integrados ), le digo que debe consultar la hoja de datos y la guía del usuario de FPGA. No es una respuesta simple.
Tienes que hacer que tus FIT de diseño sean del tipo FPGA que elijas . Algunos FPGA tienen FlipFlops que fueron diseñados para restablecer Async, algunos están diseñados para restablecer Sync.
Debe consultar la guía de usuario de FPGA para saber qué tipo de FlipFlops tiene.
El Implementador / Mapeador elegirá rutas dedicadas para su reinicio (el código puede ejecutarse a una frecuencia más alta y ocupa menos espacio ) si hace coincidir su código con el tipo de primitivas FPGA.
Su diseño funcionará en CUALQUIER caso , pero a veces el Implementador de FPGA hará todo lo posible para que su lógica funcione ( agrega más lógica ), pero eso causará una frecuencia máxima más baja y / o más recursos de FPGA.
Ejemplo: probado con ZYNQ de Xilinx ( FPGA está diseñado para reinicio sincronizado; consulte la guía del usuario de primitivas ). Cambiando restablecimiento de asíncrono a sincronización , la frecuencia estable máxima pasó de 220MHz a 258MHz y, por lo tanto, pasé mi margen de frecuencia.
También podría agregar que el Implementador no sabe qué es un reloj y una señal de reinicio. Asigna pines flipflop a las señales por ORDEN, no por nombre. Entonces, en algunos FPGA, el implementador elige la primera señal después de "process () begin" en VHDL como el reloj, en algunos como el reinicio, dependiendo de qué FPGA esté configurado el implementador.