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:

miércoles, 12 de diciembre de 2012

Descarga e instalación de IspLEVER classic 1.6 de Lattice Semiconductor

El IspLEVER classic 1.6 de Lattice Semiconductor lanzado en agosto del 2012  permite trabajar dispositivos lógicos programables PLD sencillos como la GAL22V10 en forma esquemática, o utilizando lenguajes de programación para  descripción de hardware HDL tales como ABEL (Advanced Boolean Expressions Language) o VHDL (Very high speed integrated circuits Hardware Description Language).

Para descargar e instalar el programa se recomienda seguir la secuencia siguiente:

1. Ir a la página de Lattice Semiconductor : www.latticesemi.com

    Se puede traducir al español.


2. Ir a PRODUCTOS....Diseño de Sofware....ispLEVER  Classic


3. Vienen indicados luego tres pasos a seguir para descargar e instalar el software. Veamos:

Como sólo se va a trabajar con la GAL22V10 sólo descargue el archivo ispLEVER Classic Base de Módulo en una carpeta que puede llamar ispLEVER 2013, por ejemplo.

4.Descomprima el archivo, y luego al dar doble click  sobre el ejecutable se inicia el proceso de instalación.Este es el PASO 2.

5. Luego hay que solicitar una licencia gratuita por un año.
Al dar doble click en página de licencias en el  PASO 3 se va a una nueva ventana donde se nos invita a que nos registremos:
Para crear una cuenta nueva  escribimos nuestro correo electrónico  y  elegimos una contraseña. Hay que tener paciencia porque hay que llenar un formulario con la información personal, etc.

Cuando ya tengamos guardado el formulario completo podemos entrar a nuestra cuenta WEB de Lattice para solicitar la licencia:

Para enviarle  su licencia LATTICE le solicita actualizar su cuenta y el HOST de su computador, así:
Para conocer su NIC HOST en Ejecutar en   Inicio  escriba CMD para abrir una ventana  de MS-DOS y luego escriba 
ipconfig / all.    Los doce caracteres alfanuméricos del hexadecimal  deben escribirse sin guiones.
Colóquelo el NIC HOST  en el espacio indicado y de Click en generar licencia.

Su licencia llega inmediatamente al correo electrónico registrado como un archivo  license.dat adjunto.

6. Si anteriormente  ya ha descargado o instalado  cualquier software ispLEVER de Lattice Semiconductor  debe borrar todas las carpetas y archivos relacionados para que no se genere ningún conflicto.


Luego, el archivo license.dat debe copiarse en la carpeta License del archivo descargado y descomprimido.


Debe dar ahora doble Click en la Aplicación remoted y reiniciar el computador.

Aparecerá instalado el programa:


Al abrir el navegador de proyectos debe estar listo para trabajar:


............................................................................................................

martes, 20 de noviembre de 2012

Evaluemos nuestros conocimientos sobre Electrónica Digital Combinacional

Estimado lector: lo invitamos a desarrollar los tres ejercicios que le presentamos a continuación: 

Esperamos haya resuelto correctamente cada uno de los 3 ejercicios propuestos.  A continuación volvemos a cada uno de ellos con su respectiva solución:

miércoles, 14 de noviembre de 2012

Unidad Aritmético Lógica: Diseño completo de una ALU de 4 bits

La unidad aritmético lógica, también conocida como ALU(siglas en inglés de arithmetic logic unit), es un circuito digital que calcula operaciones aritméticas (como  suma, resta,  etc.) y operaciones lógicas (OR, AND, XOR, etc), entre dos números binarios. Es parte fundamental de un microprocesador.

 Se recomienda consultar: http://es.wikipedia.org/wiki/Unidad_aritm%C3%A9tico_l%C3%B3gica

El método más simple y directo de diseñar un CIRCUITO LÖGICO de una ALU se muestra a continuación, tal como se plantea en el texto "Lógica Digital y diseño de Computadores" de Morris Mano para una etapa de 2 bits Ai y Bi.
EJERCICIO: Simular en ALTERA el Circuito Lógico indicado en la gráfica anterior.

El circuito debe repetirse n veces para un circuito lógico de n bits. Las cuatro compuertas generan las 4 operaciones lógicas OR, OR EXCLUSIVA, AND y NOT. Las 2 variables de selección en el Multiplexor seleccionan una de las 4 compuertas en la salida.

Al igual que el circuito lógico se puede diseñar un circuito  aritmético, en el cual además de las entradas Ai   y Bi debe tenerse en cuenta el acarreo de entrada Ci, y en su salida además de Fi, en este caso se agregaría  el acarreo  de salida Ci+1

Veamos la siguiente tabla de función para el circuito aritmético en una etapa:

S1       S0       Ci             Salida                              Descripción de la función realizada
0          0         0              Fi = Ai                               Transfiere Ai
0          0         1              Fi = Ai mas 1                     Incrementa Ai
0          1         0              Fi = Ai  mas Bi                   Suma Ai con Bi
0          1         1              Fi = Ai mas Bi mas 1          Suma Ai con Bi mas acarreo
1          0         0              Fi = Ai mas Bi´                   Suma Ai con el complemento de B
1          0         1              Fi = Ai mas Bi´ mas 1         Resta Ai menos Bi
1          1         0              Fi = Ai menos 1                  Decrementa Ai
1          1         1              Fi = Ai                                Transfiere Ai  

El diagrama para la unidad aritmética de una etapa es el siguiente:
El circuito lógico puede ser combinado en el circuito aritmético para producir una unidad lógica aritmética. Las variables de selección S1 y S0 pueden hacerse comunes a ambas secciones siempre y cuando se use una tercera variable de selección S2 para diferenciar entre los dos.

Las salidas de los circuitos lógicos y aritméticos de cada estado pasan por un multiplexor con la variable de
selección s2 . Cuando S2=0  se. selecciona la salida aritmética, pero cuando S2 = 1 se selecciona la salida lógica.

L
Al simular en Altera debemos obtener una sola caja tal como se muestra en la siguiente gráfica:
Luego se acoplan las 4 cajitas  para formar la ALU de 4 bits, tal como se muestra:
Se espera que el estimado lector  haya efectuado paso a paso la simulación de la ALU en Altera. Esto le permite una completa comprensión de este importante concepto de la Electrónica Digital.

En una forma similar a lo descrito, se ha diseñado una ALU comercial, el circuito integrado 74LS181, el cual estudiaremos a continuación, al simularlao en Altera. La mejor forma de estudiar un chip comercial antes de implementarlo en el protoboard es analizar su tabla de funcionamiento de acuerdo a su hoja de datos suministrada por el fabricante (Data Sheet)  y efectuar su simulación.
La ALU 74181 se puede trabajar con cualquiera de dos tablas de funcionamiento.Una tabla con los datos activos en nivel bajo y otra donde los datos son activos en nivel alto, tal como la que se muestra a continuación:


EJERCICIO: Simular en ALTERA el 74181 para verificar el comportamiento de las dos tablas.

domingo, 11 de noviembre de 2012

Restador binario :Análisis de casos


Se sugiere al lector imprimir para luego estudiar el artículo que se presenta como PDF en https://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r65019.PDF 

Como repaso de los circuitos estudiados hasta el momento en el curso de Digitales 1 vale la pena consultar http://lc.fie.umich.mx/~jrincon/elec3-cap7.pdf

ESTUDIO DE CASOS:

Se desea implementar un RESTADOR BINARIO A-B.  A y B son números de 4 bits cada uno, dispuestos en Dip-Switch. El resultado de la resta se viasualiza con 5 Leds, cátodo común. Cuatro Leds indican el resultado de la resta y un quinto Led,SIGNO, enciende cuando la resta es negativa. El circuito se ha compilado en Altera y su simulación indica que funciona correctamente.  Explique detalladamente su funcionamiento.

CIRCUITO LÓGICO:

SIMULACIÓN:

jueves, 8 de noviembre de 2012

Diseño de sumador paralelo de 4 bits: 7483


Iniciamos con la suma de 2 números X,Y de 1 bit cada uno: 


Luego al tener en cuenta el acarreo de entrada tendremos una tabla de verdad más completa:
Con 2 Half Adder y una compuerta OR se puede obtener el circuito lógico de un Full Adder:
Con 1 half adder y 3 full adder se construye el sumador binario de 4 bits:
Ejercicio 1: Efectuar la simulación en Altera del sumador de 4 bits, a partir del half adder, siguiendo el proceso jerárquico en el diseño.
..........................................................................................................
El sumador 7483 dispone de 4 full adder:
Su circuito aparece en el data sheet, tal como se muestra:

Ejercicio 2: Efectuar la simulación en Altera del comportamiento del sumador 7483, llamando al sumador incorporado en librería.