Programar
-
Upload
jonathan-cronque -
Category
Documents
-
view
223 -
download
1
description
Transcript of Programar
![Page 1: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/1.jpg)
APRENDA A PROGRAMAR EN ISE Project Navigator
Por: M. en C. Arnoldo Ulises Villalobos Guerra
Este tutorial está dedicado a los alumnos de Ing. Electrónica del ITESZ con el objetivo de iniciar a los
alumnos en el lenguaje VHDL con ISE Project Navigator.
1.1 LENGUAJE VHDL
Los lenguajes de descripción de hardware (HDL) son utilizados para describir la arquitectura
y comportamiento de sistemas electrónicos los cuales fueron desarrollados para trabajar con diseños
complejos.
VHDL es un lenguaje de descripción de hardware de alta velocidad. Los circuitos descritos
en VHDL pueden ser simulados utilizando herramientas de simulación para reproducir el
funcionamiento del circuito. Además utilizando herramientas de síntesis se puede implementar dicho
circuito en un dispositivo lógico programable.
1.2 ENTIDAD
La entidad es la descripción externa de un circuito, aquí se enumeran las entradas y las
salidas del diseño. Una entidad es análoga a un símbolo esquemático de los diagramas electrónicos,
el cual describe las conexiones del dispositivo hacia el resto del diseño.
Para determinar la entidad del circuito anterior, se tiene que nombrar las entradas y salidas.
Por ejemplo las entradas se pueden nombrar con las primeras letras del alfabeto y las salidas con
las últimas letras (usted puede nombrarlas como guste).
A B
Y C
![Page 2: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/2.jpg)
D
E Z
De esta manera la entidad está conformada por cinco entradas nombradas A,B,C,D y E y dos
salidas Y y Z.
1.3 ARQUITECTURA
La arquitectura es la descripción del funcionamiento interno del circuito. Una arquitectura
describe el funcionamiento de la entidad a la que hace referencia.
La entidad y arquitectura se utilizan para representar la descripción completa de un diseño.
Por ejemplo, para crear la arquitectura del circuito siguiente tenemos que apoyarnos de dos
señales y describir el comportamiento interno.
AB
YCD
E Z
Primero definimos las señales s1 y s2. Las señales son conexiones internas, estas
conexiones nos sirven para describir el circuito.
AB s1
YC s2D
E Z
La arquitectura podría ser de la siguiente manera:
s1<= A AND B;s2<= C OR D;Y<= s1 AND s2;Z<= s2 OR E;
![Page 3: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/3.jpg)
Importante: El orden de las ecuaciones no importa, recuerde que VHDL tiene comportamiento paralelo o concurrente.
1.4 PRIMER PROGRAMA
En este apartado se verá cómo implementar el circuito anterior en la tarjeta NEXYS 2.
Lo primero que se tiene que hacer es crear un nuevo proyecto en ISE Project Navigator.
A continuación se da un nombre al proyecto y se especifica la ruta en donde se desea
guardarlo.
Después se tiene que elegir la familia, el dispositivo, el empaquetado y la velocidad del
dispositivo. La tarjeta nexys 2 cuenta con un FPGA XC3S500E de la familia SPARTAN3E.
![Page 4: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/4.jpg)
Una vez credo el proyecto damos click derecho en el proyecto y creamos una nueva fuente.
A continuación se selecciona módulo VHDL y se le da un nombre.
A continuación se especifican los puertos de la entidad. A,B,C,D y E se especifican como
entradas, y Y y Z como salidas.
AB
YCD
ZE
![Page 5: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/5.jpg)
En nuestro archivo VHD se observa la entidad creada
La entidad creada se llama prog1 y tiene 7 puertos, 5 puertos son entradas (A,B,C,D y E) y 2
puertos son salidas (Y y Z). Todos los puertos son del tipo STD_LOGIC. Este tipo representa una
lógica multivaluada de 9 valores. Además del ‘0’ lógico y el ‘1’ lógico, posee alta impedancia ‘Z’,
desconocido ‘X’ ó sin inicializar ‘U’ entre otros.
Después en la arquitectura se describen las ecuaciones lógicas del comportamiento del
circuito.
AB s1
YC s2D ZE
Por ultimo declaramos las señales.
1.4.1 SINTETIZAR
La sintetización es la creación del archivo que contiene los “1” y “0” lógicos que se bajan a la
memoria del dispositivo. Para sintetizar se guardan todos los cambios y se da doble click en
Synthesize.
![Page 6: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/6.jpg)
Una vez sintetizado dar doble click en Implement Design
Y por último doble click en Generate Programming File
1.4.2 MAPEO DE PINES
Para mapear las entradas y salidas en pines específicos se hace uso del software
planAhead, para ello dar doble click en Floorplan Area.
En este caso se utilizará los primeros swiches 0,1,2,3,4 y 5 y leds 0 y 1.
![Page 7: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/7.jpg)
Seleccionar los pines correspondientes.
Por ultimo click guardar.
Para verificar el mapeo en ISE solo dar doble click en Implement Design
A continuación en la pestaña de Design Summary click en Pinout Report
![Page 8: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/8.jpg)
Para finalizar dar doble click en Generate Programming File
1.5 PROGRAMACION DE LA TARJETA
Conectar la tarjeta a la PC y poner el swich de encendido en posición ON, después dar doble
click en Manage Configuration Project.
Crear un nuevo proyecto.
![Page 9: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/9.jpg)
Dar click en YES.
Click en OK
Dar click en YES
Seleccionar nuestro archivo .bit , y click Open
![Page 10: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/10.jpg)
A continuación Click en NO.
Click Cancel all.
Clik Cancel.
![Page 11: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/11.jpg)
Por ultimo Click derecho sobre el icono del FPGA y click Program.
Listo, ahora pruebe el circuito.
![Page 12: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/12.jpg)
2.0 DECLARACION DE VECTORES
Se puede declarar vectores en una entidad. Por ejemplo, en el siguiente circuito se
observa que la entrada es un vector llamado “A” y está conformado por 5 pines. La salida es un
vector llamado “Y” conformado por 2 pines.
A(0)A(1)
Y(0)A(2)A(3)
Y(1)
A(4)
La entidad se crea de la siguiente manera:
Se usan 3 señales para describir la arquitectura
A(0)A(1) S1
Y(0)A(2) S2A(3)
A(4) S3 Y(1)
![Page 13: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/13.jpg)
2.1 SIMULACION
Para simular se crea un archivo Test Bench, para ello click derecho en el proyecto y click en
New Source.
A continuación se selecciona VHDL Test Bench, se le da un nombre y click Next.
Después next, next y Finish.
Ahora se selecciona simulación y doble click en el archivo Test Bech creado
![Page 14: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/14.jpg)
Debido a que el circuito es un circuito combinacional y no secuencial se tiene que quitar
algunas líneas, ya que no se requieren señales de reloj.
constant <clock>_period : time := 10 ns; BEGIN
-- Instantiate the Unit Under Test (UUT) uut: PRO3 PORT MAP ( A => A, Y => Y );
-- Clock process definitions <clock>_process :process begin
<clock> <= '0';wait for <clock>_period/2; QUITAR ESTAS LINEAS<clock> <= '1';wait for <clock>_period/2;
end process; -- Stimulus process stim_proc: process begin -- hold reset state for 100 ns. wait for 100 ns;
wait for <clock>_period*10;
El circuito tiene 5 entradas, es decir 32 combinaciones posibles. Se pueden simular todas las combinaciones posibles de entrada. A continuación se simulan algunas combinaciones.
![Page 15: Programar](https://reader035.fdocuments.es/reader035/viewer/2022070407/563dbb34550346aa9aab22c2/html5/thumbnails/15.jpg)
A continuación guardar todos los cambios y doble click en Behavioral Check Syntax.
Despues doble click en Simulate Behavioral Model.
Por ultimo click en Zoom to Full View.