SOLUCIÓN:
La implementación se hizo utilizando el Editor Esquemático del Altera como archivo GDF.
Para la simulación se usa el Editor de formas de Ondas. Se establece un Fin de tiempo de 8 segundos en File. En Options se fija un ancho de grilla de 1 segundo. Se da Pantalla Completa en el Icono respectivo a la izquierda.
La simulación para algunos valores tomados al azar es la siguiente:
Se puede verificar que se cumple con las condiciones especificadas para esta pequeña ALU.
" QUIEN NO VIVE PARA SERVIR, NO SIRVE PARA VIVIR" TERESA DE CALCUTA. EL COMPARTIR ME DA FELICIDAD
lunes, 17 de junio de 2013
sábado, 8 de junio de 2013
Diseño y simulación en Altera de Unidad Aritmético-Lógica (ALU)
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 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.
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.
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.
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.
miércoles, 5 de junio de 2013
Restador binario con sumadores simulado en Altera
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:
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:
martes, 4 de junio de 2013
Memoria EEPROM 28C64
EEPROM o E²PROM son las siglas de Electrically Erasable Programmable Read Only Memory (ROM programable y borrable eléctricamente). Es un tipo de memoria que puede ser programada, borrada y reprogramada eléctricamente, a diferencia de la EPROM que ha de borrarse mediante luz ultravioleta. Son memorias no volátiles.
Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada miles de veces.
Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada miles de veces.
Una
memoria EEPROM muy usada es la 28C64. . ATMEL produce la AT28C64( AT
quiere decir que ATMEL es el fabricante, 28 identifica el tipo de
memoria, en este caso EEPROM; la C significa que la tecnología usada es
C-MOS, o sea con base en transistores Mosfet canal P y canal N en modo
complementario, y el 64 es la capacidad: 64 Kilobits, o sea 8192
palabras de 8 bits cada una, lo que es lo mismo que 8 Kbytes)
Otra empresa que produce EEPROM es MICROCHIP, fabricante de la 28C64A, cuya configuración de pines es similar a la de ATMEL. La programación se realiza con el superpro Z, estableciendo las direcciones y los datos en Hexadecimal.
Internamente la memoria dispone de un DECODIFICADOR DE DIRECCIONES.
Para
lograr las 8192 palabras se requiere de 13 entradas de dirección (
A0...A12: Addresses Inputs) ( 2 elevado a la 13 es igual a 8192).
El
siguiente esquema muestra la arquitectura básica de una ROM con dos
entradas de dirección y cuatro salidas, que nos permite comprender lo
esencial en la programación:
El primer fusible, situado a a la izquierda en cada compuerta OR, se "quema" si el dato a grabar es un CERO, y "no se quema" si el dato a grabar en esa dirección es un UNO.Para
nuestro caso se queman los fusibles de las OR correspondientes a las
salidas O2 y O0, y no se queman en las OR de las salidas O3 y O1.
Cuando se tiene A1 =0, A0= 1: "0" = 0, "1" = 1, "2" = 0, "3" = 0. En este caso, los fusibles de O3 y O1 se queman, y los de O2 y O0 no se queman (para que pueda pasar el UNO)
Cuando se tiene A1 =1, A0= 0: "0" = 0, "1" = 0, "2" = 1, "3" = 0. En este caso, solo el fusible de O3 se quema.
El programa en hexadecimal que es el exigido por el programador es:
Dirección Dato
0 A
1 5
2 7
3 F
martes, 14 de mayo de 2013
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:
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.
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:
Suscribirse a:
Entradas (Atom)
.jpg)
.jpg)
+74153.jpg)
.jpg)
.jpg)







.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)
.jpg)









