Professional Documents
Culture Documents
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
LABORATORIO N 7
ESTILO DE DESCRIPCIN ESTRUCTURAL EN VHDL
1. OBJETIVO
Describir el comportamiento de un sistema electrnico digital utilizando el estilo de
programacin estructural de VHDL, para identificar sus componentes fundamentales al
interior de cada unidad bsica de diseo.
2. EQUIPO NECESARIO
Computadora.
Herramienta de simulacin Xilinx WebPack 10.1.
Tarjeta PEGASUS de Digilent.
Cable de conexin JTAG.
Cable de alimentacin para la PEGASUS.
4. MARCO CONCEPTUAL
Las guas de laboratorio 5 y 6 han mostrado los dos estilos comportamentales para la
descripcin de sistemas digitales en VHDL: algortmica y flujo de datos. En el presente
documento se presenta el otro estilo de descripcin que se define en este curso:
estructural.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
de los paquetes contenidos en las libreras de diseo del software que se est utilizando.
Sin embargo este estilo de programacin no resulta muy aconsejable para circuitos
medianamente complejos ya que el tiempo de edicin es mayor al de los otros estilos.
La descripcin estructural debe tender a la definicin y referencia de componentes,
as como tambin a la especificacin de interconexiones entre unos y otros [1]. Estos
elementos se asocian a mdulos almacenados en una librera y para usarlos se necesitan
declararlos, configurarlos y conectarlos adecuadamente.
En trminos generales, para este estilo de programacin se necesita declarar cada
componente que constituye el circuito, adems, tambin se debe designar el tipo de seal
que interconecta a cada elemento y por ltimo se debe crear un mapa del circuito total
[2]; cada uno de estos elementos tiene un lugar especfico dentro de la arquitectura del
programa en general tal como se muestra en el diagrama de flujo de la Figura 1.
Libreras y
Paquetes
Entidad
Arquitectura
Declaracin
de Seales
Declaracin
de
Componentes
Configuracin
de
Componentes
Figura 1. Diagrama de flujo que representa la estructura general del modelo de programacin en
VHDL con estilo de descripcin estructural. Fuente: elaboracin propia.
Cdigo I. Formato para declarar una seal en VHDL. Fuente: Language Templates de Xilinx
ISE Power Navigator.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
component <Nombre_del_componente>
generic(<Nombre_de_las_constantes>
<Otras_constantes>
port(<Nombre_de_los_puertos>
<Otros_puertos>
end component;
:
:
:
:
<Tipo>
<Tipo>
<Modo>
<Modo>
:= <Valor>;
:= <Valor>);
<Tipo>;
<Tipo>);
Cdigo II. Formato para declarar un componente en VHDL. Fuente: Language Templates de
Xilinx ISE Power Navigator.
--Modo explcito:
<Id_de_lnea> : <Nombre_del_componete>
generic map(<Nombre_de_constanste_genrica_local> => <Valor>,
<Otras_constantes_genricas> => <Valor>);
port map(<Nombre_de_puerto_local> => <seal_externa>,
<Otros_puertos> => <seal_externa>);
--Modo implcito:
<Id_de_lnea> : <Nombre_del_componete>
generic map(<valor_1>,<valor_2>,...,<valor_m>);
port map(<seal_1>,<seal_2>,...,<seal_n>);
Cdigo III. Formato para configurar los componentes de la arquitectura de un circuito lgico
digital descrito con el estilo estructural en VHDL. Fuente: Language Templates de Xilinx ISE
Power Navigator.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
Arquitectura
A
U0
B
Conexin
N0
XNOR2
U3
C
U1
N1
AND2
U5
U4
E
U2
F
N2
N3
OR2
AND2
Elemento U4
Salida
N4
NAND2
Seal
Componente AND2
XOR2
Entidad
Figura 2. Esquema y constitucin del circuito digital del ejemplo 1. Fuente: elaboracin propia.
Paso 1. Escribir el programa principal o de nivel superior (Top Level) que describa la
estructura del circuito de la Figura 2 basndose en la estructura mostrada en la Figura 1.
Para este ejemplo se ha escrito el programa del Cdigo IV.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Francisco de Paula
Santander
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Ingeniera Electrnica
Diseo Digital
Cdigo IV. Programa principal en VHDL empleado en la descripcin estructural del circuito
digital de la Figura 2 (paso 1).
Se aclara que lo que se define principalmente es el componente que emplee el elemento, de modo que
cualquier otro elemento que utilice el mismo componente, tambin quedar definido.
Francisco de Paula
Santander
Elementos
Ingeniera Electrnica
Diseo Digital
New Source
Paso 4.2 En la ventana New Source Wizard seleccionar el tipo de fuente VHDL Module
y escribir su nombre (File name) y localizacin (Location). Se recomienda escribir el
Ing. Jhon Jairo Ramrez Matheus.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
nombre del componente que emplea el elemento y que la localizacin del directorio sea
la misma que la del proyecto (sta viene predeterminada). Luego, oprimir el botn Next
(siguiente). Ello se muestra en la Figura 5.
Paso 4.3 Definir los nombres de la entidad, la arquitectura, las entradas y las salidas del
componente. El nombre de la entidad debe ser el mismo nombre del componente definido
en el programa Top Level. Los otros tres son arbitrarios; cada uno puede ser el mismo
que los definidos para el componente en el programa Top Level, o bien, puede ser distinto.
Lo que s debe ser igual es el nmero de entradas y salidas.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
En esta gua se prefiere asignar los mismos nombres para evitar confusiones, excepto el
de la arquitectura (para este caso arq_and_2) porque ste no es definido en el Top Level.
Luego, oprimir el botn Next y en la siguiente ventana oprimir Finish. Ello se muestra2
en la Figura 6.
Paso 4.4 Escribir el programa que describa el funcionamiento del componente. En este
caso se ha escrito un programa de estilo flujo de datos (por simplicidad) para el
componente and_2 tal como se muestra en el Cdigo V.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AND2
Cdigo V. Programa en VHDL con estilo flujo de datos que describe el funcionamiento del
componente and_2 (paso 4.4). Fuente: elaboracin propia.
Figura 7. Cambio simultneo de dos elementos que emplean el mismo componente (paso 4.5).
Fuente: elaboracin propia.
2
No se muestra la ventana donde se oprime Finish porque no se considera un objeto grfico relevante.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
Guardar el programa. Obsrvese que los elementos U1 y U4 cambian del estado (no
definido) al (descrito con VHDL). Adems debe notarse que los dos han cambiado
porque ambos utilizan el componente AND2. Ello se muestra en la Figura 7.
Paso 4.5 Repetir los pasos 4.1 al 4.4 para crear los programas de los componentes
faltantes. el Cdigo VI, Cdigo VII, Cdigo VIII y Cdigo IX muestran los programas
desarrollados para XNOR2, XOR2, OR2 y NAND2 respectivamente.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Cdigo VI. Programa en VHDL con estilo flujo de datos que describe el funcionamiento del
componente xnor_2 (paso 4.6).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Cdigo VII. Programa en VHDL con estilo flujo de datos que describe el funcionamiento del
componente xor_2 (paso 4.6).
Francisco de Paula
Santander
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Ingeniera Electrnica
Diseo Digital
Cdigo VIII. Programa en VHDL con estilo flujo de datos que describe el funcionamiento del
componente or_2 (paso 4.6).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Cdigo IX. Programa en VHDL con estilo flujo de datos que describe el funcionamiento del
componente nand_2 (paso 4.6).
Paso 4.6 Poner alguno de los mdulos definidos (en este caso, uno de los elementos)
como el mdulo superior. En este caso, se procede a seleccionar el elemento U0. Luego,
se oprime el botn Set as Top Module ( )de la caja de herramientas de la ventana Design;
o bien, seleccionar con clic derecho el mdulo (U0 xnor_2) y escoger Set as Top
Module. Ello se muestra en la Figura 8.
Paso 4.7 Sintetizar elemento por elemento. Para ello ejecute con doble clic la opcin
Synthesize XST de la lista Processes de la ventana Design. En este caso, el resultado de
tal procedimiento es como se muestra en la Figura 9. El smbolo implica que la sntesis
ha sido satisfactoria. Repetir este paso hasta que se sintetice satisfactoriamente todos los
elementos.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
Figura 8. Poner el elemento U0 como mdulo superior (paso 4.7). Fuente: elaboracin propia.
Figura 9. Sntesis satisfactoria del elemento U0 (paso 4.8). Fuente: elaboracin propia.
Paso 5. Repetir el paso 2. Ntese que en este caso el resultado es una sntesis satisfactoria
tal como se muestra en la Figura 10. Adems, obsrvese que el cdigo presente en tal
figura es el correspondiente al componente NAND2 y no al del Top Level. Esto se debe
a que fue el ltimo de los componentes en sintetizar. Con ello se hace entender que no
Ing. Jhon Jairo Ramrez Matheus.
Francisco de Paula
Santander
Ingeniera Electrnica
Diseo Digital
hay necesidad que un programa sea el mdulo superior (Top Module) para poder ser
abierto, visto y/o editado.
Figura 10. Sntesis satisfactoria del programa de nivel superior o Top Level (paso 5). Fuente:
elaboracin propia.
Asignacin: Probar el circuito conectando cada una de las entradas a un switch y la salida
a un led.
5. ACTIVIDAD
Teniendo en cuenta el estilo de descripcin estructural y el circuito de la Figura 11:
a) Encuentre las expresiones booleanas que describen el circuito.
b) Del diagrama lgico encuentre la tabla de verdad que describe el comportamiento del
circuito.
c) Disee un programa en lenguaje VHDL por los dos mtodos vistos en clase y
compruebe su funcionamiento.
d) Construya el smbolo del programa que cre.
e) Realice el diagrama de tiempos.
f) Implemente su proyecto en la tarjeta Pegasus de Digilent utilizando para ello los
recursos de la tarjeta para comprobar su funcionamiento. Diodos leds para las salidas
y swicthes en las entradas respectivamente.
Ing. Jhon Jairo Ramrez Matheus.
Francisco de Paula
Ingeniera Electrnica
Diseo Digital
Santander
U3
N3
U4
N4
AND2
U0
INV
N0
U6
U7
AND2
OR3
U5
U1
INV
N1
U2
INV
N2
N5
AND3
AND2
6. REFERENCIAS
[1] Fernando Pardo Carpio and Jos A. Boluda Grau, VHDL Lenguaje para sntesis y
modelado de circuitos, Tercera ed. Mxico D.F., Mxico: Alfaomega Grupo Editor,
S.A. de C.V., 2011.
[2] David G. Maxines and Jessica Alcal, VHDL El Arte de Programar Sistemas
Digitales, Primera ed. Mxico: Compaia Editorial Continental, 2002.
[3] Xilinx, Inc., Language Templates of Power Navigator, 2012.