Concurrencia

Los lenguajes de programación clásicos están basados...

En la secuencialidad temporal impuesta por el algoritmo
Por un modelo de ejecución secuencial de las instrucciones

En contra, los lenguajes HDL proceden basándose en

Un modelo de ejecución en paralelo -> Diversos procesos se ejecutan a un mismo tiempo
Una sincronización de todo el proceso mediante sincronización de señales
Actúan usando una cola de eventos!

...a lo que se le denomina concurrencia.

Por consiguiente, la concurrencia se basa en el procesado de un conjunto de instrucciones de forma paralela utilizando transacciones por evento

Concurrencia versus secuencialidad

En VHDL pueden coexistir...

... instrucciones secuenciales
... instrucciones concurrentes

Las sentencias concurrentes

Describen paralelismo (a modo similar al de un circuito combinacional)
El resultado es independiente del orden de escritura y ejecución de las sentencias
Todas las sentencias concurrentes equivalen a procesos concurrentes

Las sentencias secuenciales

Describen algoritmos
El orden en el que se escriben las sentecias es relevante para su ejecución y de él depende el resultado final


Ejemplo: sumador

La siguiente figura muestra un resultado de simulación del código anterior. En este caso la simulación se ha realizado sobre Quartus II de Altera para introducir retardos reales en la simulación.

Debido a la concurrencia:

Todas las salidas del sumador se procesan al mismo tiempo
El diagrama temporal contiene retardos por ser simulación directa del modelado realizado sobre circuito programable de Altera

 

Anterior
Volver a inicio curso
Volver a inicio capítulo
Siguiente


WcN - Joan Oliver. Diseño de circuitos digitales con VHDL: Síntesis concurrente