Você está na página 1de 12

Adscripción Ingeniero Ruben VRECH

Implementación de un FPGA

En esta clase se 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. Está basado en la guía del “Quick Start Tutorial”

Implementaremos un contador que consta de dos entradas (reloj, dirección) y una salida
(cuenta).
La señal reloj es el reloj del contador, la señal dirección 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.

ESTRUCTURA

Se utilizará programación VHDL a partir del siguiente algoritmo:

1. Declarar señales reloj y dirección 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 dirección 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 ejemplos de VHDL para varias construcciones típicas de circuitos
lógicos.
Los ejemplos se eligen de un menú y luego se editan para ajustar la descripción al diseño
lógico.

Electrónica Digital I Página 1-12


Adscripción Ingeniero Ruben VRECH

METODOLOGÍA DE DISEÑO

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 la simulación de ondas. 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.

Electrónica Digital I Página 2-12


Adscripción Ingeniero Ruben VRECH

EL PROYECTO
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

Electrónica Digital I Página 3-12


Adscripción Ingeniero Ruben VRECH

Figura 2

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

Figura 3

Electrónica Digital I Página 4-12


Adscripción Ingeniero Ruben VRECH

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 trabajo coincide
con el nombre del proyecto, pero 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 dirección 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

Electrónica Digital I Página 5-12


Adscripción Ingeniero Ruben VRECH

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

Electrónica Digital I Página 6-12


Adscripción Ingeniero Ruben VRECH

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

Electrónica Digital I Página 7-12


Adscripción Ingeniero Ruben VRECH

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…
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 dirección
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 File > Save. El archivo lucirá como en la figura10.

Figura 10

Electrónica Digital I Página 8-12


Adscripción Ingeniero Ruben VRECH

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, antes desconecte su computador de la red y no abra


ningún otro programa por medidas de seguridad.

Electrónica Digital I Página 9-12


Adscripción Ingeniero Ruben VRECH

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 dirección 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.

Electrónica Digital I Página 10-12


Adscripción Ingeniero Ruben VRECH

Figura 13

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

21. Guarde el archivo de ondas.

Electrónica Digital I Página 11-12


Adscripción Ingeniero Ruben VRECH

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

Electrónica Digital I Página 12-12

Você também pode gostar