Ejercicio: Utilizando 4 leds disponibles en la tarjeta Digilent Spartan 3E visualizar un contador binario ascendente de 4 bits, que disponga de entrada de habilitación manejada mediante un interruptor.
Solución: En el navegador del Xilinx ISE 10.1 creamos nuevo proyecto: Cont0al15, y designamos Esquemático como jerarquía superior de trabajo.
Luego debe elaborar el program VHDL del contador, guardarlo y chequear sintaxis para asegurarnos que no tiene errores.
Simulamos el contador, cambiando la fuente de implementación a simulación, y creando archivo de chequeo de formas de onda:
Verificamos que efectivamente el contador trabaja como se desea, y efectuamos la síntexis del mismo.
Luego en Implementación como fuente, Utilidades de diseño, creamos el símbolo esquemático del contador, para ser utilizado posteriormente.
En una entrada anterior de este blog (encendido y apagado de un led con Spartan 3E) copiamos, pegamos, chequeamos sintaxis del archivo Clk1hz el cual requerimos para acoplarlo al contador.
Generamos también su símbolo esquemático después de haber efectuado su síntesis. Para este programa VHDL no efectuamos simulación, pues ya se probó que funciona correctamente en la tarjeta de Spartan.
Luego creamos como nueva fuente para la FPGA xc3s500e un archivo en esquemático que llamamos final para enlazar los dos símbolos esquemáticos: el contador y Clk1hz.
Vamos al Editor Gráfico, y por medio del filtro de símbolos ( Symbol Name Filter ) llamamos los dos símbolos esquemáticos para poderlos enlazar:
Procedemos ahora a etiquetear las entradas y el bus de salida.
Salvamos este archivo final.
En Implementación se puede observar la jerarquía en el diseño del proyecto.
Procedemos entonces a la asignación de pines post-síntesis del archivo esquemático final:
Asignamos los pines en la ventana de Xilinx PACE para generar el archivo final.ucf y programar la FPGA:
Salvamos el archivo final.ucf y cerramos el editor PACE (Pinout and Area Constrints Editor) de asignación de pines del Xilinx ISE (Integrated Software Environment), versión 10.1.
Damos ahora doble click en Implement Design que aparece con un interrogante color naranja, para corregir inconsistencias en el diseño y se puedan aceptar los pines asignados.
Luego generamos el archivo de programación y configuramos la FPGA en la tarjeta Digilent Spartan 3E.
Obviamente se requiere que la tarjeta esté alimentada y el cable USB esté conectado al computador, que es por donde se efectúa su programación JTAG ( Joint Test Action Group )
Damos Bypass para que no se programe ni la CPLD ni la PROM, y sobre la FPGA con el botón derecho damos click en program asignando el archivo final.bit
Cuando aparece el aviso de que la programación se ha efectuado exitosamente, podemos luego verificar que si habilitamos el contador colocando el interruptor a Vcc (Reset = 1) los Leds visualizan el conteo del 0 al 15 repetitivamente con una frecuencia de 1 Hz.
Si el interruptor que actúa como Reset se coloca en nivel bajo se bloque el conteo en el estado que se encuentre el contador, debido a que se suspende el paso de pulsos de reloj de 50 Mhz debido a que pulsos toma el valor de Cero en el archivo VHDL de Clk1hz.
Veamos un video con nuestro proyecto: Contador binario ascendente de 4 bits con entrada de habilitación:
Luego debe elaborar el program VHDL del contador, guardarlo y chequear sintaxis para asegurarnos que no tiene errores.
Verificamos que efectivamente el contador trabaja como se desea, y efectuamos la síntexis del mismo.
Luego en Implementación como fuente, Utilidades de diseño, creamos el símbolo esquemático del contador, para ser utilizado posteriormente.
En una entrada anterior de este blog (encendido y apagado de un led con Spartan 3E) copiamos, pegamos, chequeamos sintaxis del archivo Clk1hz el cual requerimos para acoplarlo al contador.
Generamos también su símbolo esquemático después de haber efectuado su síntesis. Para este programa VHDL no efectuamos simulación, pues ya se probó que funciona correctamente en la tarjeta de Spartan.
Luego creamos como nueva fuente para la FPGA xc3s500e un archivo en esquemático que llamamos final para enlazar los dos símbolos esquemáticos: el contador y Clk1hz.
Vamos al Editor Gráfico, y por medio del filtro de símbolos ( Symbol Name Filter ) llamamos los dos símbolos esquemáticos para poderlos enlazar:
Procedemos ahora a etiquetear las entradas y el bus de salida.
Salvamos este archivo final.
En Implementación se puede observar la jerarquía en el diseño del proyecto.
Procedemos entonces a la asignación de pines post-síntesis del archivo esquemático final:
Asignamos los pines en la ventana de Xilinx PACE para generar el archivo final.ucf y programar la FPGA:
Salvamos el archivo final.ucf y cerramos el editor PACE (Pinout and Area Constrints Editor) de asignación de pines del Xilinx ISE (Integrated Software Environment), versión 10.1.
Damos ahora doble click en Implement Design que aparece con un interrogante color naranja, para corregir inconsistencias en el diseño y se puedan aceptar los pines asignados.
Luego generamos el archivo de programación y configuramos la FPGA en la tarjeta Digilent Spartan 3E.
Obviamente se requiere que la tarjeta esté alimentada y el cable USB esté conectado al computador, que es por donde se efectúa su programación JTAG ( Joint Test Action Group )
Damos Bypass para que no se programe ni la CPLD ni la PROM, y sobre la FPGA con el botón derecho damos click en program asignando el archivo final.bit
Cuando aparece el aviso de que la programación se ha efectuado exitosamente, podemos luego verificar que si habilitamos el contador colocando el interruptor a Vcc (Reset = 1) los Leds visualizan el conteo del 0 al 15 repetitivamente con una frecuencia de 1 Hz.
Si el interruptor que actúa como Reset se coloca en nivel bajo se bloque el conteo en el estado que se encuentre el contador, debido a que se suspende el paso de pulsos de reloj de 50 Mhz debido a que pulsos toma el valor de Cero en el archivo VHDL de Clk1hz.
Veamos un video con nuestro proyecto: Contador binario ascendente de 4 bits con entrada de habilitación: