miércoles, 3 de abril de 2013

Tutorial: Primos del 0 al 7 con VHDL en Isplever classic 1.6 utilizando GAL22V10

Ejercicio: Se introduce el número binario de 3 bits (Z,Y,X) que en decimal corresponden a los números del 0 al 7. En un display de 7 segmentos, ánodo común, se visualiza el dígito, y se enciende el punto cuando el número es primo. Se supone que el 1 es primo.

Solución:

Elaboramos la tabla de verdad respectiva en Logicaid para obtener las 8 ecuaciones Booleanas simplificadas:
Las ecuaciones Booleanas minimizadas en Suma de Productos son las siguientes:
Cerramos el proyecto que esté abierto en el navegador de Isplever classic 1.6 y creamos nuevo proyecto guardando en una carpeta apropiada y designando como VHDL el tipo de diseño de entrada:

Seleccionamos la GAL con la cual vamos a trabajar con su tipo de empaque tal como se muestra:

Para nuestro proyecto Primos07 creamos como nuevo  un módulo VHDL:


Nos ayudamos de la plantilla y sólo escribimos las ecuaciones en la arquitectura  de acuerdo a la sintaxis exigida para el lenguaje VHDL:

Guardamos y luego efectuamos el proceso de simplificación y síntesis del archivo VHDL:

Luego creamos un archivo nuevo de estímulo de formas de ondas para efectuar la simulación:

Lo asociamos con el archivo Primos07.vhd  que vamos a trabajar con la Gal22V10:



Creamos el archivo Primos07.wdl  e importamos  las ondas para poderlas editar:


Añadimos y mostramos  todas las ondas importadas indicando que son entradas y salidas:

Luego dibujamos las entradas Z,Y,X:

Se procede entonces a efectuar la simulación funcional:
Damos luego click en el signo de admiración (run) para correr la simulación:

Verificamos que las ondas en la salida corresponden a la tabla de verdad:


Después de verificar que no hay error vamos a configurar la Gal para que estructure el circuito lógico requerido:
Efectuamos los enlaces requeridos dentro de las compuertas que internamente posee la Gal (Link Design) y verificamos la capacidad de la Gal de acuerdo a su arquitectura para que puede armar el circuito solicitado (Fit Design). Luego  se crea el mapa de fusibles y el archivo JEDEC para programar la GAl, elaborando un reporte del Chip en el cual podemos observar como se autocofiguraron los pines de entrada y salida en el dispositivo lógico programable.

El archivo JEDEC que para nuestro diseño es Primos.jed es el que nos permite programar la GAL con el programador universal Superpro, vía USB:
Para saber en que forma vamos a implementar el circuito con la GAL en el protoboard recurrimos al reporte de Chip que elabora el Isplever, donde preaviamente se hace un reporte de las ecuaciones Booleanas minimizadas de acuerdo a la sintaxis de la programación en Lenguaje ABEL:
En lenguaje ABEL la negación se designa por !, la And por & y la Or por #.  Aunque ya por la simulación sabemos que nuestro diseño es correcto, por medio de las ecuaciones que reporta el Isplever también lo podemos verificar.
Veamos la configuración de pines de la GAL para nuestro ejercicio de laboratorio: