Professional Documents
Culture Documents
SENTENCIAS CONCURRENTES
Sentencias Concurrentes
HARDWARE
Es inherentemente concurrente, los circuitos coexisten fsicamente en el tiempo
Este Hardware no se puede modelar en un lenguaje secuencial como C S <= A & B; Q <= C|D;
el chip tiene dos compuertas que funcionan simultneamente
Sentencias Concurrentes
Sin embargo, esta solucin no es valida con este circuito
Q no puede tomar su valor hasta que se obtenga S
Por qu? No hay que olvidar que se trata de modelar circuitos reales, no virtuales, y las seales necesitan que transcurra el tiempo para tomar un valor
Sentencias Concurrentes
PROCESOS
Describen el comportamiento de un circuito Tantos procesos como queramos Las seales NO se pueden declarar dentro de un proceso Las variables se usan dentro de los procesos
Sentencias Concurrentes
SINTAXIS de PROCESS nombre etiqueta: process (lista de sensitividad) declaraciones begin sentencias secuenciales; end process nombre etiqueta;
LISTA DE SENSITIVIDAD
DECLARACION DE VARIABLES
Sentencias Concurrentes
PROPIEDADES
Las sentencias concurrentes se utilizan fuera de un bloque PROCESS Dentro de un PROCESS se convierten en secuenciales. Se ejecutan simultneamente en la simulacin No hay prioridad Deben formar parte siempre de las arquitecturas o bloques. No conservan un orden.
Sentencias Concurrentes
En VHDL veremos las siguientes
Sentencias Concurrentes
El objeto bsico en VHDL es la seal, que se utiliza para modelar los hilos del circuito. La instruccin bsica de la ejecucin concurrente es la asignacin entre seales a travs del smbolo <=. Existen 3 tipos de asignaciones: Asignacin concurrente de seal. Asignacin condicional de seal (Whenelse). Asignacin selectiva de seal (with*select>when).
Ejemplo en VHDL
En hardware es necesario incluir todas las opciones posibles. En este caso es obligatorio siempre acabar la expresin con un ELSE. La sintaxis es:
Importante!
Siempre es obligatorio asignar algo, aunque es posible no realizar accin alguna, para ello se utiliza la palabra reservada UNAFFECTED. De esta forma se asignar el mismo valor que tena la seal.
Ejemplo en VHDL
Por qu? No hay que olvidar que se trata de modelar circuitos reales, no virtuales, y las seales necesitan que transcurra el tiempo para tomar un valor:
La solucin de VHDL
Sentencia WITHSELECT
CASE. Su sintaxis es la siguiente:
with
asignacin1 asignacin2
to
others
FOR .. IN .. LOOP
a FOR .. IN .. GENERATE
Para recapitular.
sentencias concurrentes arquitecturas concurrente PROCESS sentencias secuenciales procedimientos PROCESS. procesos
NO
process
arquitectura.