Ejecución paralela VHDL de sentencias usando variables

1

Si a, b, c y d son variables, esto no se ejecuta en paralelo:

a := b;
c := a;

Pero ¿qué pasa con lo siguiente:

a := b;
c := d;

¿Estas declaraciones se ejecutan de forma concurrente o secuencial?

    
pregunta gilianzz

1 respuesta

1

Cuando no hay dependencia entre dos asignaciones en un proceso de VHDL, como en el segundo ejemplo, el sintetizador puede elegir cómo deducir la lógica del código siempre que la salida sea equivalente y cumpla con las restricciones proporcionadas.

En la práctica, las dos sentencias se ejecutarán en paralelo, ya que el sintetizador comprobará que no están conectadas y creará una lógica separada para manejar las dos asignaciones.

La mejor manera que encuentro para entender cómo el sintetizador está inferiendo la lógica de su código VHDL es observar la representación esquemática de la salida de la herramienta después de los pasos de elaboración y síntesis para un diseño simple y ajustar las cosas para ver cómo cambia.

    
respondido por el Xcodo

Lea otras preguntas en las etiquetas