You are on page 1of 7

SISTEMAS DIGITALES I

ACTIVIDAD # 7
CAPTULO DEL CURSO: LENGUAJE DE DESCRIPCIN DE HARDWARE VHDL

OBJETIVOS DE APRENDIZAJE:
Aplicar conceptos relacionados a VHDL en los circuitos combinatoriales.
Describir circuitos digitales combinatoriales en lenguaje VHDL.

DURACIN: 120 minutos

MATERIALES Y HERRAMIENTAS:
- Ejercicios realizados en las sesiones de clase.
- Quartus II.

MARCO TERICO:

Lenguaje de Descripcin del Hardware

El Lenguaje de Descripcin de Hardware (HDL) es similar a un lenguaje de


programacin de computadora, excepto que un HDL describe Hardware (circuito
digital) que, luego de simulado puede ser construido. Existen dos lenguajes del tipo
HDL que son estndares: el uno es el de IEEE, conocido como VHDL (Very High
Speed Integrated Circuit Hardware Description Lenguage); y el otro es el de Verilog
HDL.

En HDL tenemos diferentes tipos de descripciones: Sistema, algortmico, RTL, Lgico,


Conmutacin, Elctrico, Fsico. En VHDL se declara una caja negra (entity), con un
identificador para el circuito, y sus terminales de entrada y salida. Tambin se
declaran las direcciones (modo) de los terminales (in, out) y el tipo de datos que
admiten. Luego se describe el circuito en s, dentro del cuerpo de una arquitectura.
Esta descripcin difiere segn el nivel.

Estructura de un programa en VHDL

Cuando se utiliza VHDL, un sistema digital


puede dividirse en varios bloques, para
efectuar el proceso de la manera ms
comprensible y que sea fcil de probar y de
dar mantenimiento. En VHDL, cada porcin
del diseo es considerado un bloque, que es
descrito en el lenguaje mediante una
entidad y una arquitectura. La entidad Figura 1: Descomposicin modular de
un sistema
describe el exterior del circuito y la arquitectura
su comportamiento interno.

Ejemplo: Describa la entidad y arquitectura de una puerta NAND, segn se muestra


en la figura 2.

ENTITY nand2 IS
PORT(I1,I2: IN BIT;
O: OUT BIT);
END nand2;
ARCHITECTURE C1 OF nand2 IS
BEGIN
O <= NOT(I1 AND I2); Figura 2: Diagrama de bloque la puerta NAND
END C1;

Adicionalmente, debe tenerse en cuenta que el archivo de texto creado se graba con
el mismo nombre de la entidad y con la extensin vhd. Para el ejemplo anterior, el
archivo recibir el nombre de: nand2.vhd

Todo programa en VHDL se inicia declarando las bibliotecas que se usarn en el


programa. Luego, en la entidad, se listan las seales, los modos y tipos de datos de
cada una. Al final se describe la arquitectura. Los modos de las seales son los
siguientes:

Modo: IN OUT BUFFER INOUT


Entrada Salida Salida realimentada Bidireccional
Tipo: BIT, STD_LOGIC, STD_LOGIC_VECTOR

La estructura general de un programa en VHDL es como sigue:

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;

ENTITY <nombre_entidad> IS
PORT(<nombre_pin>: <modo><tipo>;
<nombre_pin>: <modo><tipo>);
END <nombre_entidad>;

ARCHITECTURE <nombre_arquitectura> OF <nombre_entidad> IS


--Regin de declaraciones
BEGIN
<sentencia>; <comentario>
<sentencia>; <comentario>
END <nombre_arquitectura>;

En VHDL, una arquitectura tiene dos partes: La seccin de las declaraciones; y el


cuerpo de la arquitectura. La parte de declaraciones precede la palabra clave BEGIN,
la cual puede ser usada para declarar seales, variables y constantes. Tambin
puede ser usada para declarar componentes y especificar atributos. Luego de BEGIN,
se colocan las sentencias concurrentes o secuenciales que describen la solucin del
problema.

Tipos de descripciones dentro de la arquitectura

En VHDL, las descripciones de una arquitectura difieren segn el nivel de abstraccin


con el que se propone resolver el circuito. Las descripciones son:
Estructural o lgica: Descripcin exacta del esquema lgico que resuelve la funcin
objeto del diseo.
De flujo de datos o RTL.
Comportamental o algortmica (descripcin funcional).

Descripcin Estructural o lgica

En la descripcin estructural, el cuerpo de la arquitectura se transforma en una


descripcin exacta del esquema lgico. Para ello, se usa las declaraciones de
componentes. La cantidad de declaraciones de componentes est en relacin con la
cantidad de componentes distintas que formarn parte del circuito fsico que se est
diseando. La declaracin component tiene una estructura similar a la de una
entidad, pero no tiene la misma connotacin. La forma de declarar un componente es
la siguiente:
component nombre_componente
port (seales_entrada: modo tipo;
seales_salida: modo tipo);
end component;

Adems, en la seccin de declaraciones de la arquitectura (regin ubicada entre la


palabra reservada architecture y la palabra begin), puede existir la necesidad de
realizar algunas declaraciones de seales internas, las cuales intervienen en la
descripcin del circuito, pero no tienen acceso a los terminales externos del diseo
(no estn declaradas en la entidad).

Ejemplo: Realizar la descripcin en VHDL de tipo estructural de la operacin EXOR

La operacin exor se puede expresar como: Y = A B.H= A B + A B

ENTITY XOR IS
PORT (A,B: IN BIT;
Y: OUT BIT); A AN ANB
END XOR;
B
Architecture XOR1 of XOR is Y
- declaracin de seales
signal AN, BN : bit;
signal ANB, ABN : bit;
- declaracin de componentes ABN
component INV BN
port (I: in bit;
O: out bit); Figura 3: Circuito equivalente de exor con
end component; nombres de las seales internas.
component AND2
port (I1, I2: in bit;
O: out bit);
end component;
component OR2
port (I1, I2: in bit;
O: out bit);
end component;
begin
- instanciacin de componentes
U1: INV port map(A,AN);
U2: INV port map(B,BN);
U3: AND2 port map(AN,B,ANB);
U4: AND2 port map(A,BN,ABN);
U5: OR2 port map(ANB,ABN,Y);
end XOR1;

Como puede observarse en el ejemplo anterior, la instanciacin de un componente


(esto es, invocar al componente para usarlo dentro de la arquitectura de la puerta exor)
se hace siempre usando la sentencia port map.

Uno de los tipos de seales con que trabaja el VHDL es el arreglo de seales, tanto
del tipo bit_vector, como del tipo std_logic_vector. Esto permite escribir de forma ms
compacta los diseos en VHDL. Ellos representan un arreglo de bits y se utilizan con
dispositivos multiterminales.

Ejemplo: Realizar la descripcin VHDL de tipo estructural de un decodificador de 2


entradas y 4 salidas, activadas con el nivel bajo, y una entrada de habilitacin, tambin
activa en el nivel bajo.

Entity decod2x4 is
Port(A: in bit_vector(1 downto 0);
NEN: in bit;
NY: out bit_vector(3 downto 0));
End decod2x4;

architecture decod_a of decod2x4 is


-- declaracin de seales
signal AN(1),AN(0), EN: bit;
-- declaracin de componentes
component INV
port (I: in bit;
O: out bit);
end component;
component NAND3
port (I1, I2, I3: in bit;
O: out bit);
end component; Figura 4: Circuito del decod2x4 con
begin nombres de las seales internas.
--instanciacin de componentes
U1: INV port map (A(1),AN(1));
U2: INV port map (A(0),AN(0));
U3: INV port map (NEN,EN);
U4: NAND3 port map (AN(1), EN, AN(0), NY(0));
U5: NAND3 port map (AN(1), EN, A(0), NY(1));
U6: NAND3 port map (A(1), EN, AN(0), NY(2));
U7: NAND3 port map (A(1), EN, A(0), NY(3));
end decod_a;

Descripcin por flujo de datos (RTL)

En la descripcin por flujo de datos, la arquitectura describe como fluyen las seales
de entrada por el circuito, pasando por todas las funciones lgicas intermedias hasta
las funciones finales, y de all hacia los terminales de salida. Este estilo de escritura
de la arquitectura es llamada descripcin de transferencia de registros RTL (Register
Transfer Language). Los diseos ejecutados en la descripcin RTL son prcticas
comunes en el diseo digital moderno. En la aproximacin por flujo de datos se utilizan
declaraciones de asignacin de seales, as como operadores lgicos que no se
emplean en el estilo de escritura estructural, volviendo la arquitectura ms compacta.
Despus de la palabra clave begin, se produce la asignacin del flujo de datos de las
seales del miembro de la derecha (expresin) hacia la seal Y, del miembro de la
izquierda (salida).

El VHDL posee un conjunto de operadores que se usan con las seales o con las
variables declaradas en sus diseos. Los operadores lgicos que tiene el VHDL en
sus libreras son: not, and, or, nand, nor, xor y xnor. La figura 5, presentada a
continuacin contiene una clasificacin de los operadores definidos en el lenguaje
VHDL.

Lgicos: AND, OR, XOR, NOT, NAND,


NOR y XNOR
Aritmticos: +, -, * (multiplicacin solo por 2)
De relacin: =, /=, <, >, <=, >=
De concatenacin: &

Cuando los operadores lgicos se usan con los tipos de seales std_logic o bit, ellos
tienen su significado usual. Los valores '0' y '1' son valores constantes y deben estar
encerrados entre apstrofes. Cuando el tipo de seal usada es declarada
std_logic_vector o bit_vector, entonces los valores deben estar encerrados entre
comillas.
Un ejemplo de operaciones lgicas con el tipo de
datos vector es el siguiente:
01100101xor10101101=11001000

El operador de concatenacin en VHDL, cuyo smbolo es & permite realizar la unin


de seales o variables de distinta longitud.
Ejemplo: Realizar la descripcin de la arquitectura en RTL de una compuerta XOR.

architecture XOR2 of XOR is


begin
--asignacin de seales
Y <= (not A and B) or (A and not B);
end XOR2;

DESCRIPCIN DEL TALLER (REPASO)

1. Para cada uno de los siguientes ejercicios, describa en VHDL nicamente la entidad
a partir de los siguientes diagramas de bloque.

a) b)
4 2
W.H F.H (A)2 F1
Circuito Circuito
4 4
(X)2 1 B.H 2
(Y)2

c) d)
P.H R.H F3.H
F2.H
Circuito Circuito
3 4 4 S.H
(Q)2

2. Para cada uno de los siguientes ejercicios realice la descripcin VHDL:

a) El circuito tiene 4 variables lgicas de entrada y presenta en F4 el resultado en


base a la siguiente funcin lgica, la cual deber primero minimizarla:

F4(A,B,C,D) = A.D + B.C + A.C

b) El circuito digital recibe las palabras binarias A, B, C de 4 bits cada una, y


presenta en F5 la siguiente funcin aritmtica:
4
A
F5 = A B + C 5
4 F5
B
4
C
c) El circuito tiene 3 variables lgicas de entrada y presenta en F6 el resultado,
con base en la siguiente funcin lgica, la cual debe primero minimizarla:

Bibliografa:

[1]. Fundamentos de Lgica Digital, Stephen Brown & Zvonco Vranesic, Segunda
Edicin, Mc.Graw Hill, 2009.

[2]. Sistemas Digitales: Principios y Aplicaciones, Ronald Tocci, Octava Edicin,


Prentice Hall, 2003.

[3]. Anlisis y Diseo de Circuitos Lgicos Digitales, Vctor Nelson, Troy Nagle, Bill
Carroll, David Irwin, Primera Edicin, Prentice Hall, 2000.

[4]. Digital Design with RTL Design, Verilog and VHDL, Frank Vahid, Second Edition,
John Wiley and Sons, 2010.

Elaborado por MSc. Sara Ros Orellana

30/05/2017

You might also like