Sei sulla pagina 1di 12

Tutorial de Xilinx ISE 10.

1
Descripción y Simulación de un Contador Bidireccional de 4 Bits
Primera Parte
Ing. Arturo J. Miguel de Priego Paz Soldán
www.tourdigital.net
amiguel@pucp.edu.pe
Chincha – Perú
27 de agosto de 2008

Este tutorial muestra la edición en VHDL y la simulación de un


contador básico utilizando la herramienta de diseño ISE 10.1 de
Xilinx. Esta guía es una traducción y ampliación de una sección
del manual “ISE 10.1 Quick Start Tutorial”. Mayor información
y más manuales para diseñar con herramientas y dispositivos de
Xilinx se encuentran en www.xilinx.com/literature.

El contador de este tutorial consta de dos entradas (reloj, direccion) y una salida (cuenta). La
señal reloj es el reloj del contador, la señal direccion indica la dirección de la cuenta (0 para
descendente y 1 para ascendente). La señal cuenta indica el número actual en la salida del
contador. Esta señal está compuesta de 4 bits. En una cuenta ascendente de 1111 el contador
continúa con 0000 y en una cuenta descendente de 0000 pasa a 1111.

En este tutorial se describirá al contador utilizando VHDL a partir del algoritmo siguiente:

1. Declarar la entidad con señales reloj y direccion como entradas de un bit, y cuenta
como salida de cuatro bits.
2. Declarar en la arquitectura la señal n como un número binario de cuatro bits
inicializado en 0.
3. Definir el comportamiento del contador en un proceso:
Si ocurre un flanco positivo de reloj
Si direccion es ascendente
n=n+1
Sino
n=n–1
4. Asignar la salida:
cuenta = n

Los pasos 3 y 4 son concurrentes, es decir, sus sentencias tienen efecto al mismo tiempo. El
orden en el que aparecen en la descripción no determina el orden de ejecución. En cambio,
dentro del proceso el orden sí es importante. En este caso las asignaciones se realizan de
acuerdo a las condiciones cumplidas.

En ISE 10.1 existen plantillas de VHDL para varias construcciones típicas de circuitos lógicos.
Las plantillas se eligen de un menú y luego se editan para ajustar la descripción al diseño
lógico.
Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

METODOLOGÍA DE DISEÑO

Los pasos mostrados en este tutorial se indican en la figura siguiente:

A. Creación de un proyecto nuevo. Los diseños lógicos se preparan en un proyecto de


diseño. Los proyectos de diseño constan generalmente de un grupo de archivos fuentes
y otros generados por las herramientas del software. Para este proyecto usaremos dos
archivos fuentes, uno de descripción VHDL y otro de señales de prueba.
B. Creación de un archivo VHDL. Este archivo contendrá la descripción del contador.
C. Revisión de la sintaxis. Verifica que la descripción textual cumple con las reglas de
sintaxis del lenguaje.
D. Creación de un archivo de ondas de simulación. Sirve para definir las señales de
entrada en el tiempo.
E. Simulación del diseño. Se realiza para comprobar el funcionamiento del circuito
especificado.

Otros pasos (como Especificación de Restricciones, Programación del Dispositivo y


Verificación física del Diseño) se mostrarán en la parte dos de este tutorial.

Ing. Arturo Miguel de Priego www.tourdigital.net 2


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

A. CREACIÓN DE UN PROYECTO NUEVO

1. Seleccione File > New Project… Aparece una ventana que lleva el título New Project
Wizard – Create New Project (figura 1). Haga lo siguiente:
• En el campo Project name escriba Contador como nombre del proyecto.
• En el campo Project location ingrese un nombre de directorio (carpeta) o busque un
directorio para el proyecto. Si el nombre no existe se creará un nuevo directorio (o
subdirectorio) automáticamente.
• En la lista desplegable Top-level source type verifique que esté activa la opción HDL.

Figura 1

2. Presione el botón Next. Aparece una ventana para definir las propiedades del dispositivo.
Establezca las propiedades siguientes y deje las demás tal como están (figura 2):

• Product Category : All


• Family : Spartan3
• Device : XC3S200
• Package : FT256
• Speed Grade : -4
• Top-Level Source Type : HDL
• Synthesis Tool : XST (VHDL/Verilog)
• Simulator : ISE Simulator (VHDL/Verilog)
• Preferred Language : VHDL
• Verifique que la opción Enable Enhanced Design Summary esté seleccionada.

Ing. Arturo Miguel de Priego www.tourdigital.net 3


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

Figura 2

3. Click Next. Aparece una ventana para crear un nuevo archivo fuente (figura 3).

Figura 3

Ing. Arturo Miguel de Priego www.tourdigital.net 4


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

4. Pulse sobre el botón New Source…. Aparece una ventana para seleccionar el tipo de
archivo (figura 4):
• Seleccione VHDL Module como el tipo de archivo fuente.
• En File name escriba Contador como el nombre del archivo (en este tutorial coincide
con el nombre del proyecto, mas puede ser otro nombre cualquiera).
• Verifique que la casilla Add to project esté seleccionada.

Figura 4

5. Pulse en Next. Aparece una ventana para definir la interfaz del módulo. Establezca los
puertos de entrada y salida tal como se muestra en la figura 5:
• Las señales reloj y direccion son entradas de un bit.
• La señal cuenta es un bus de salida de cuatro bits. Su MSB está indexado con 3 y su
LSB con 0, es decir, el bit de cuenta de mayor peso es cuenta(3) y el de menor peso es
cuenta(0).

Figura 5

Ing. Arturo Miguel de Priego www.tourdigital.net 5


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

6. Click Next. Aparece un resumen (figura 6) del archivo fuente.

Figura 6

7. Pulse en Finish. Si aparece un mensaje notificando


que el directorio no existe, se pedirá una confirmación
para crearlo. Presione en Yes en ese caso.

8. Pulse en Next, y otra vez en Next. Aparece un


resumen del proyecto (figura 8).

Figura 8

Ing. Arturo Miguel de Priego www.tourdigital.net 6


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

9. Pulse en el botón Finish. En el entorno de trabajo aparece el archivo fuente (figura 9).
Algunas líneas de comentarios han sido removidas del archivo original.

Figura 9

Ing. Arturo Miguel de Priego www.tourdigital.net 7


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

B. EDICIÓN DEL ARCHIVO VHDL

10. La edición del circuito puede hacerse a partir de una plantilla para acelerar el tiempo de
escritura y evitar errores comunes de sintaxis:
a) Sitúe el cursor después de la línea de begin y antes de la última línea de texto (después
de la línea 34 y antes de la línea 37 de la figura 9).
b) Abra las plantillas del lenguaje seleccionando Edit > Language Templates…
Si prefiere, seleccione Window > Tile Vertically para hacer visible las ventanas
de plantillas y de diseño.
c) Pulse sobre los símbolos "+" siguiendo la secuencia VHDL > Synthesis Constructs >
Coding Examples > Counters > Binary > Up/Down Counters > Simple Counter.
d) Con Simple Counter seleccionado, elija Edit > Use in File, o pulse sobre el botón Use
Template in File de la barra de herramientas. Esta acción copia la plantilla seleccionada
en el archivo de texto VHDL
e) Cierre la ventana de las plantillas.

11. Edite el archivo de la siguiente manera:


a) Declare la señal n, que servirá como contador del circuito:
signal n: std_logic_vector(3 downto 0) := "0000"
b) Modifique la plantilla para hacer coincidir los nombres de las señales con los indicados
en la plantilla. Realice lo siguiente:
Remplace <clock> con reloj
Remplace <count_direction> con direccion
Remplace <count> con n
c) Agregue la línea siguiente (puede ir en cualquier parte del cuerpo de la arquitectura,
mas por legibilidad colóquela después de la sentencia del proceso):
cuenta <= n;
d) Guarde el archivo seleccionando File > Save. El archivo lucirá como en la figura10.

Figura 10

Ing. Arturo Miguel de Priego www.tourdigital.net 8


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

C. REVISIÓN DE LA SINTAXIS.

12. Verifique que la opción Implementation esté


seleccionada en la lista despegable de la ventana
Sources.

13. Seleccione la fuente de diseño Contador en la ventana


Sources para visualizar los procesos en la ventana
Processes.

14. Pulse en la marca "+" al lado del proceso Synthesize-


XST para expandir este grupo.

15. Haga doble click en Check Syntax.

Comenzará la revisión de la sintaxis del diseño


Contador. Si se producen errores ellos aparecen en
la pestaña Console de la ventana Transcript. Si
aparecen errores revise la sintaxis, corrija los errores
y vuelva a revisar la sintaxis.

Si existe un antivirus activado en la computadora, es probable que aparezca el


siguiente mensaje de error (la ruta y nombre de archivo puede variar):

* HDL Compilation *
=======================================================
ERROR:HDLParsers - Cannot reanme dependency database for library
"work", file is "xst/work/hdpdeps.ref". Temporary database file
"D:\\VHDL\Xilinx\ISE10.1\Tutorial\xst\work\xil_2552_6" will remain.
System error message is: No such file or directory

La solución es desactivar el antivirus, mas antes desconecte su computador de la red y


no abra ningún otro programa por medidas de seguridad.

Ing. Arturo Miguel de Priego www.tourdigital.net 9


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

D. EDICIÓN DE LAS ONDAS DE SEÑALES

16. Para crear las ondas de las señales de entrada, que servirán como estímulos para validar el
funcionamiento del diseño a través de las respuestas en la onda de la señal de salida, realice
los siguientes pasos:
a) Seleccione el archivo Contador en la ventana Sources.
b) Seleccione Project > New Source.
c) En New Source Wizard elija Test Bench WaveForm y escriba Contador_tbw en el
campo File Name.

Figura 12

17. Pulse en Next. Aparece la página Associated Source donde se indica que está asociándose
la forma de onda con el archivo Contador.

18. Pulse en Next. La página Summary muestra que el archivo fuente será agregado al
proyecto, y muestra el directorio, tipo y nombre.

19. Pulse en Finish. Aparece una ventana para inicializar y configurar la temporización del
diseño. Para este diseño la frecuencia de reloj es 25 MHz, la entrada direccion debe ser
válida 10 ns antes del flanco de subida del reloj y la salida cuenta debe ser válida 10 ns
después del flanco positivo del reloj. Complete los datos siguientes (figura 13):

 Clock High Time : 20 ns.


 Clock Low Time : 20 ns.
 Input Setup Time : 10 ns.
 Output Valid Delay : 10 ns.
 Global Signals : GSR (FPGA)
 Offset : 0 ns.
 Initial Length of Test Bench : 1500 ns.

Deje los demás valores tal como están.

Ing. Arturo Miguel de Priego www.tourdigital.net 10


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

Figura 13

20. Pulse en Finish. Aparecerá una ventana con las formas de las ondas. Si prefiere, edite la
onda de direccion para realizar una cuenta ascendente o mixta.

21. Guarde el archivo de ondas.

Ing. Arturo Miguel de Priego www.tourdigital.net 11


Tutorial de Xilinx ISE 10.1 – Primera Parte Chincha – Perú, Agosto 27, 2008

E. SIMULACIÓN LÓGICA (FUNCIONAL) DEL DISEÑO

22. En la ventana Sources, seleccione Behavioral


Simulation.

23. Seleccione Contador_tbw.

24. En la ventana Processes pulse en + para expandir el


proceso Xilinx ISE Simulator y pulse dos veces
seguidas sobre Simulate Behavioral Model (pulse en
la pestaña Process si no los viera inicialmente). El
simulador aparecerá y ejecutará la simulación hasta el
final del archivo de simulación.

25. Para observar los resultados de simulación, seleccione


la pestaña Simulation. Observará un patrón como el de
la figura 16.

26. Finalmente, verifique el funcionamiento del contador.


Realice los cambios que crea conveniente en el archivo
de ondas para cubrir más casos de simulación y vuelva
a ejecutar el simulador para actualizar las salidas.

Figura 16

Ing. Arturo Miguel de Priego www.tourdigital.net 12

Potrebbero piacerti anche