Sunteți pe pagina 1din 19

Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Prctica 12
Componentes
introduccin
El diseo a travs de mdulos preestablecidos componentes, es una excelente alterna9va en
el desarrollo de aplicaciones, su principal ventaja es que permite disear, analizar y simular por
separado cada bloque lgico component , para posteriormente introducirlo dentro de un
programa general.
En esencia el dividir un proyecto a travs de la depuracin de bloques individuales y la
integracin como conjunto mediante el uso de seales signal, resalta el diseo y
programacin estructural en VHDL.

En la gura 1. Se muestra un diagrama electrnico u9lizado para abrir una cerradura electrnica y
cuya descripcin completa puede leerse en el capitulo 4Diseo mediante cartas ASM.

Figura 1. Diagrama de una cerradura electrnica

Objetivo general
Describir el procedimiento u9lizado en una descripcin estructural a travs de la programacin
basada en componentes.

Objetivos especficos
Que el lector comprenda el uso de la programacin en es9lo estructural
Que el lector u9lice el manejo de seales como medio de conexin entre diversos bloque
lgicos y mediante la estructura port map.

1
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Desarrollo Terico
1. Analice el diagrama de la gura 1 y disee cada uno de los bloques lgicos como componentes
individuales , de manera tal que pueda tener una galera de componentes como la mostrada en la
gura 2.

Componente 1: Contador 0 al 3 con entrada de reset


Componente 2: Decodicador de 2X4 con salida ac9va en alto
Componente 3: Mul9plexor de 16:1
Componente 4: Codicador BCD

Figura 2. Galera de componentes

2
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Desarrollo Prctico
1. Considerando el algoritmo ASM denominado controlador como un componente y cuyo
cdigo fue diseado en la prc9ca 9 el programa que integra la solucin al diagrama mostrado en
la gura 1.

Debe de considerar que la seal de cont 4 y la seal de botn no estn considerados dentro del
algn componente.
El programa nal considera la gura 3 en su realizacin.

Figura 3. Diagrama de la estructura nal

En esta ocasin u9lizaremos el so\ware de Xilinx 13.1, previamente instalado en nuestro


ordenador.

1.- Seleccionamos Xilinx mediante el acceso directo del escritorio o mediante la ruta: Inicio/Todos
los programas/Xilinx ISE Design Suite 13.1/ISE Design Tools/Project Navigator como se muestra en
la gura 4

Figura 4. Ruta del programa

3
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
2. Una vez seleccionado se abrir la pantalla principal del so\ware.
Para crear un nuevo proyecto damos click en File y a con9nuacin se desplegar un men, donde
seleccionaremos la opcin NEW PROJECT, gura 5

Figura 5. Crear nuevo proyecto.

3. Se abrir una nueva ventana donde pondremos el nombre de nuestro proyecto, en este caso,
u9lizaremos el nombre de Componentes y agregamos una pequea descripcin de nuestro
programa gura 6.

Top-Level Source Type: seleccionamos el 9po de fuente, en este caso u9lizaremos el lenguaje
VHDL, as que seleccionamos HDL como lo muestra en la parte inferior de la gura 6 y hacemos
click en NEXT.

4
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
4. Nos mostrar una nueva ventana donde seleccionaremos las caracters9cas de nuestro
disposi9vo como lo muestra la gura 7 y hacemos click en NEXT.
Es muy importante que en la opcin VHDL Source Analysis Standard, seleccionemos VHDL-93.

Figura 7. Caracters9cas del disposi9vo.

5. Mostrar otra ventana, indicndonos las caracters9cas del proyecto, as como las
caracters9cas del disposi9vo a u9lizar; damos click en FINISH, Figura 8.

Figura 8. Resumen del proyecto.

5
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
6. Una vez realizado nuestro nuevo proyecto, procedemos a crear nuestro cdigo VHDL en Xilinx,
para esto damos click derecho sobre el cono Device entry en la ventana Hierarchy Panel y
seleccionamos la opcin New Source, Figura 9

Figura 9. Creacin de nuevo cdigo VHDL

7. Procedemos a seleccionar VHDL Module que indica que u9lizaremos cdigo VHDL para
nuestro componente.

Proporcionamos un nombre, vamos a comenzar con nuestro primer componente llamado


Contador y damos click en NEXT.

Figura 9. Creacin del componente 1 Contador.

6
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
8. Escribimos el nombre de la en9dad, que le llamaremos Contador y al nombre de la
arquitectura le llamaremos Contador0a3, tambin denimos las entradas (CLK, H) en y las
salidas (Q) del componente.

Port Name: Nombre de los puertos de entrada o salida.


Direc9on: Especica si el puerto es de entrada o salida (in/out).
Bus: Si lo marcamos como habilitado, indica si el puerto de nuestro componente ser un vector.
MSB: Bit ms signica9vo.
LSB: Bit menos signica9vo.
Marcamos en el puerto Q un bus de salida con MSB=1 y LSB=0, esto indica que tendremos una
salida 9po vector de 2 bits. Figura 10.
Por l9mo damos click en NEXT.

Figura 10. Puertos de nuestro componente

7
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
9. Mostrar un resumen de nuestros puertos, Figura 11. Y a con9nuacin damos click en FINISH.

Figura 11. Resumen de Puertos del componente Contador.

10. Agregamos la librera use IEEE.STD_LOGIC_UNSIGNED.ALL; para poder sumar Q y agregamos el


dems cdigo del contador. Figura12.

11. Procedemos a Compilar nuestro cdigo, en la parte inferior izquierda muestra un panel
Process: Contador-Contador0a3, vamos a la opcin Synthesize XST y a con9nuacin en
Check Syntax, nos informar si queremos guardar despus de los cambios realizados le decimos
que s y empezar a compilar.

Si todo est correcto nos mostrar una palomita verde de que la compilacin ha concluido.
Figura12.

Nota: si hubiera algn error de compilacin nos marcara con una tache en rojo y nos mostrara la
lnea del error en el cdigo.

Figura 12. Cdigo y compilacin del componente Contador.

8
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
PROCESO DE SIMULACIN DEL COMPONENTE
13. Una vez realizada la compilacin, procederemos a la simulacin de nuestro componente contador.
En la ventana de Design, en la barra de View, seleccionamos el cono de simulation ,
seleccionamos nuestro contador y hacemos doble click en Simulate behavioral que se encuentra
dentro de la ventana Process: Contador-Contador0a3 como se muestra en la gura 13.

Figura 13. Entrando a la simulacin en Xilinx.

14.- Se desplegar una nueva ventana con el entorno de simulacin. Figura 14

Figura 14. Entorno de Simulacin de Xilinx

15.- Para probar cada uno de nuestros puertos y el funcionamiento de nuestro componente, le
daremos valores de la siguiente manera.

9
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Click derecho sobre el puerto, en este caso seleccionamos el puerto h. Figura 15 y a con9nuacin
le daremos un valor de1 a dicho puerto como se muestra en la Figura 16. Y hacemos click en OK.

Figura 15.


Figura 16

10
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Para agregar un reloj al puerto CLK, de igual manera realizamos click derecho sobre el puerto CLK y
desplegar un men, en el cual seleccionaremos la opcin Force Clock. Nos mostrar un nuevo
cuadro donde insertaremos:


Leading Edge Value: Valor de comienzo del reloj, en este caso colocaremos un 0.
Trailing Edge Value: Valor del segundo borde del patrn del reloj, colocaremos un 1.
Period: La longitud del pulso de reloj, que se dene como un valor de 9empo, pondremos 10 ns

11
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
16.- Daremos click en el cono para ver el funcionamiento de nuestro componente y ajustamos el
zoom con los conos para visualizarlo mejor.
En la Figura 17, observamos la salida Q va incrementando de uno en uno con cada pulso de reloj
hasta llegar al 3, posteriormente se reinicia siempre y cuando H sea igual a 0, cuando H sea
igual1, Q no contara y se mantendr en cero.

Figura 17. Anlisis de la simulacin.

17.- De la misma manera que realizamos el Contador, realizaremos los dems componentes:
Componente 2: Decodicador de 2X4 con salida ac9va en alto
Componente 3: Mul9plexor de 16:1
Componente 4: Codicador BCD.

Para realizar los dems componentes, repe9remos las instrucciones a par9r del paso nmero 6.

18.- En la Figura 18, se muestra el cdigo para el Decodicador compilado junto con su
simulacin. Figura 19.

12
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Figura 18. Cdigo del Decodicador de 2X4 con salida ac9va en alto

Figura 19. Simulacin del Decodicador.

19.- En la Figura 20, se muestra el cdigo para el Mul9plexor 16:1 compilado junto con su
simulacin. Figura 21.

En el puerto E se inicializa el vector con 0, porque en el diagrama de la gura 1 algunos bits van
conectados a 9erra.

13
Figura 23.

14
Figura 20. Cdigo del mul9plexor 16:1

Figura 21. Simulacin del mul9plexor 16:1


Practica 12

20.- En la Figura 22, se muestra el cdigo para el Controlador compilado junto con su simulacin.
D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
15
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
16
Figura 22. Cdigo del Controlador
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.
Figura 23. Simulacin del Controlador.

21.- Una vez que realizamos las en9dades por separado, procederemos a juntar todo en un
GRAN componente. Para esto, creamos un nuevo archivo (siguiendo el paso 7) con el nombre de
Cerradura.

Una vez creado nuestro archivo crearemos los puertos que slo vamos a necesitar de acuerdo a la
Figura 3. Que son: Ac9vacin, Alarma, CLK, y Teclado.
Colocamos las seales correspondientes, estas seales sern nuestros alambres internos de
nuestro componente. Estas seales 9enen que corresponder al nmero de bits que 9enen cada
uno de los puertos de tus componentes. Nosotros u9lizaremos las seales:

SIGNAL C1,INC,RES,CONT4,BUT: STD_LOGIC;


SIGNAL SEN: STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL SM: STD_LOGIC_VECTOR(3 DOWNTO 0);

Declaramos los componentes que tendr nuestro GRAN componente, que posteriormente
uniremos.
Ejemplo:
COMPONENT Contador is
Port (CLK : in STD_LOGIC;
H : in STD_LOGIC;
Q : inout STD_LOGIC_VECTOR (1 downto 0));
end COMPONENT;

A con9nuacin, haremos el mapeo de puertos, esto quiere decir, uniremos cada seal o cable
interno de cada uno de nuestros componentes.

17
18
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.




Xilinx
Altera
So\ware
Warp 5.2
Material de apoyo

ispLEVER Classic

19
Practica 12

D.R. 2013 Grupo Editorial Patria S.A. de C.V. Queda prohibida la reproduccin con fines comerciales directos e indirectos, la trasmisin total o parcial de los contenidos de este documento en cualesquiera formas, sean electrnicas o mecnicas, sin la autorizacin por escrito del editor.

S-ar putea să vă placă și