Escolar Documentos
Profissional Documentos
Cultura Documentos
Implementación de un FPGA
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
1. Declarar señales reloj y dirección como entradas de un bit, y cuenta como salida de
cuatro bits.
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.
METODOLOGÍA DE DISEÑO
C. Revisión de la sintaxis. Verifica que la descripción textual cumple con las reglas de
sintaxis del lenguaje.
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:
.
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
Figura 2
3. Click Next. Aparece una ventana para crear un nuevo archivo fuente (Figura 3).
Figura 3
4. Pulse sobre el botón New Source…. Aparece una ventana para seleccionar el tipo de
archivo (Figura 4):
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
Figura 6
Figura 8
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
Figura 10
C. REVISIÓN DE LA SINTAXIS.
* 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
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
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.
Figura 16