Está en la página 1de 2

VHDL

La arquitectura es lo que define cómo se comporta un circuito.

La descripción puede ser de tres tipos:

1. Descripción de flujo de datos


2. Descripción de comportamiento
3. Descripción estructural

Descripción de flujo de datos

VHDL es un lenguaje concurrente, como consecuencia no se seguirá el orden en que están


escritas las instrucciones a la hora de ejecutar el código. De hecho, si hay dos instrucciones,
no tiene porqué ejecutarse una antes que otra, pueden ejecutarse a la vez.

Sentencias Concurrentes
La instrucción básica de la ejecución concurrente es la asignación entre señales a través del
símbolo <=. Para facilitar la asignación de las señales VHDL incluye elementos de alto nivel
como son instrucciones condicionales, de selección, etc, que se verán a continuación.

WHEN ... ELSE[editar]


Sentencia de selección múltiple. En hardware es necesario incluir todas las opciones posibles.
En este caso es obligatorio siempre acabar la expresión con un ELSE.

<señal> <= <asignación1> WHEN <condición1> ELSE


<asignación2> WHEN <condición2> ELSE
...
<asignaciónN> WHEN <condiciónN> ELSE
<asignaciónM>;

WITH ... SELECT ... WHEN


Es similar a las sentencias CASE o SWITCH de C. La asignación se hace según el contenido
de un objeto o resultado de cierta expresión.

WITH <señal1> SELECT


<señal2> <= <asignación1> WHEN <estado_señal1>,
<asignación2> WHEN <estado_señal2>,
...
<asignaciónN> WHEN OTHERS;

BLOCK
En ocasiones interesa agrupar un conjunto de sentencias en bloques. Estos bloques permiten
dividir el sistema en módulos, estos módulos pueden estar compuestos de otros módulos. La
estructura general es la siguiente.

block_id: BLOCK(expresión de guardia)


declaraciones
BEGIN
sentencias concurrentes
END BLOCK block_id;

También podría gustarte