Programar

21
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.

description

Programacion

Transcript of Programar

Page 1: Programar

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

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

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

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

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

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

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

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

Dar click en YES.

Click en OK

Dar click en YES

Seleccionar nuestro archivo .bit , y click Open

Page 10: Programar

A continuación Click en NO.

Click Cancel all.

Clik Cancel.

Page 11: Programar

Por ultimo Click derecho sobre el icono del FPGA y click Program.

Listo, ahora pruebe el circuito.

Page 12: Programar

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

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

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

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.