Escolar Documentos
Profissional Documentos
Cultura Documentos
Llamadas a libreras.
Entidad.
Arquitectura(s).
Operadores y expresiones
Las expresiones en VHDL son prcticamente iguales a como pudieran ser en
otros lenguajes de programacin o descripcin, por lo que se expondrn
brevemente algunos de los existentes en VHDL y su utilizacin.
Operadores varios
Operadores aritmticos
** (Exponencial) Sirve para elevar un nmero a una potencia: 4**2 es 4^2.
El operador de la izquierda puede ser entero o real, pero el de la derecha
solo puede ser entero.
ABS() (valor absoluto) Como su propio nombre indica esta funcin devuelve
el valor absoluto de su argumento que puede ser de cualquier tipo
numrico.
+ (Suma y signo positivo) Este operador sirve para indicar suma, si va entre
dos operandos, o signo, si va al principio de una expresin. La precedencia
es diferente en cada caso. Opera sobre valores numricos de cualquier tipo.
- (resta y signo negativo) Cuando va entre dos operandos se realiza la
operacin de sustraccin, y si va delante de una expresin le cambia el
signo. Los operandos pueden ser numricos de cualquier tipo.
Operadores de desplazamiento
Operadores relacionales
Devuelven siempre un valor de tipo booleano (TRUE o FALSE). Los tipos con
los que pueden operar dependen de la operacin:
Operadores lgicos
Son NOT, AND, NAND, OR, NOR y XOR. El funcionamiento es el habitual para
este tipo de operadores. Actan sobre los tipos bit, bit vector y boolean. En
el caso de realizarse estas operaciones sobre un vector, la operacin se
realiza bit a bit, incluyendo la operacin NOT.
En primer lugar, sea el tipo de descripcin que sea, hay que definir el smbolo o
entidad del circuito. En efecto, lo primero es definir las entradas y salidas del
circuito, es decir, la caja negra que lo define. Se le llama entidad porque en la
sintaxis de VHDL esta parte se declara con la palabra clave ENTITY. Esta
definicin de entidad, que suele ser la primera parte de toda descripcin VHDL,
se expone a continuacin:
Esta porcin del lenguaje indica que la entidad mux (que es el nombre que se
le ha dado al circuito) tiene tres entradas de tipo bit, y una salida tambin del
tipo bit. Los tipos de las entradas y salidas se vern ms adelante. El tipo bit
simplemente indica una lnea que puede tomar los valores '0' y '1'. La entidad
de un circuito es nica, sin embargo, se mostr que un mismo smbolo, en este
caso entidad, podr tener varias vistas o en el caso de VHDL arquitecturas.
Cada bloque de arquitectura, que es donde se describe el circuito, puede ser
una representacin diferente del mismo circuito. Por ejemplo, puede haber una
descripcin estructural y otra comportamental, ambas son descripciones
diferentes, pero ambas descripciones corresponden al mismo circuito, smbolo,
o entidad. Veamos entonces la descripcin comportamental:
/----(1)----/
ARCHITECTURE transferencia OF mux IS
SIGNAL nosel,ax,bx:bit;
BEGIN
nosel<=NOT selec; ax<=a AND nosel; bx<=b AND selec; salida<=ax OR bx; END
transferencia; /----(2)----/ ARCHITECTURE transferencia OF mux IS BEGIN salida<=a
WHEN selec='0' ELSE b; END transferencia;
En la descripcin (1) hay varias instrucciones, todas ellas concurrentes, es
decir, se ejecutan cada vez que cambia alguna de las seales que intervienen
en la asignacin. Este primer caso es casi una descripcin estructural ya que
de alguna manera se estn definiendo las seales (cables) y los componentes
que la definen, aunque no es comportamental ya que en realidad se trata de
asignaciones a seales y no una descripcin de componentes y conexiones. El
segundo caso (2) es tambin una descripcin de transferencia aunque basta
una nica instruccin de asignacin para definir el circuito.
COMPONENT and2
PORT(e1,e2: IN bit; y: OUT bit);
END COMPONENT
COMPONENT or2
PORT(e1,e2: IN bit; y: OUT bit);
END COMPONENT;
COMPONENT inv
PORT(e: IN bit; y: OUT bit);
END COMPONENT;
BEGIN
u0: inv PORT MAP(e=>selec,y=>nosel);
u1: and2 PORT MAP(e1=>a,e2=>nosel,y=>ax);
u2: and2 PORT MAP(e1=>b,e2=>sel,y=>bx);
u3: or2 PORT MAP(e1=>ax,e2=>bx,y=>salida);
END estructura;