Supercompilación para diseño electrónico

4

Estoy leyendo Advanced FPGA Design y el primer ejemplo, simplemente al aumentar un número a la tercera potencia, se divide rápidamente en varias optimizaciones bastante inteligentes para hacer la valoración más rápida.

Ahora, personalmente, diría que es mejor dejar esas minucias en la computadora, así que mi pregunta es: ¿se usa la supercompilación (combinando sintéticamente elementos del programa hasta encontrar un algoritmo óptimo) cuando se aplica a HDL?

TBH, siempre asumí que eso es exactamente lo que es la síntesis: tomar el código HDL y asegurarme de que funcione en el momento óptimo. Pero el libro sugiere que ese no es el caso, y modificar el código para acortar la ruta de evaluación realmente marca la diferencia.

    
pregunta Dmitri Nesteruk

1 respuesta

7
  

¿Se utiliza la supercompilación (combinando sintéticamente elementos del programa hasta que se encuentra un algoritmo óptimo) cuando se aplica a HDL?

No en el sentido del tipo de optimizaciones descritas en ese libro.

En términos generales, un sintetizador HDL es libre de realizar optimizaciones que no afecten el comportamiento visible externamente del diseño. Pueden realizar cambios que mejoran la temporización interna, como refactorizar expresiones lógicas, cambiar señales internas, replicar registros e incluso a veces mover la lógica a través de registros internos, pero no pueden realizar ningún cambio que provoque un cambio en comportamiento visible externamente . En particular, cualquier cambio que haga que un módulo requiera más o menos relojes para devolver un resultado, como la introducción o eliminación de etapas de canalización, está estrictamente prohibido.

En resumen: los sintetizadores HDL pueden realizar ajustes en un diseño para permitir que se ejecute a una frecuencia de reloj más alta, pero no pueden realizar cambios que le hagan devolver un resultado en más o menos ciclos de reloj.

    
respondido por el duskwuff

Lea otras preguntas en las etiquetas