Hay una opción para aleatorizar el proceso de compilación, cuyo IIRC está habilitado de forma predeterminada.
Dado que el diseño FPGA es un problema de optimización con alta complejidad, no es posible encontrar el diseño óptimo a nivel mundial en un marco de tiempo razonable. En su lugar, el compilador comienza con un diseño aleatorio pero correcto, y realiza optimizaciones locales en él, hasta que no sea posible realizar más optimizaciones, luego verifica si el diseño cumple con los requisitos de tiempo.
Si el FPGA está cerca de llenarse, esta aleatorización es a menudo la diferencia entre el tiempo de paso y el fallo, por lo que reiniciar la compilación después de una falla puede darle un resultado funcional. Sin la aleatorización, los tiempos fallidos también podrían reproducirse en la próxima iteración.
Para la producción, haría de diez a veinte compilaciones diferentes, seleccionaría tres con los mejores márgenes de tiempo y las probaría en hardware real a diferentes temperaturas (normalmente, 0 ° y 55 °).