" QUIEN NO VIVE PARA SERVIR, NO SIRVE PARA VIVIR" TERESA DE CALCUTA. EL COMPARTIR ME DA FELICIDAD
viernes, 9 de marzo de 2012
Estudio de casos: Comparador de 3 bits
martes, 6 de marzo de 2012
Tutorial con ispLEVER: codificador de prioridad con registro de almacenamiento con GAL22V10
Se recomienda al lector en el blog www.digitales1uan.blogspot.com repasar los conceptos fundamentales respecto al uso del ispLEVER al estudiar el tutorial para obtener las compuertas lógicas con la GAL22V10.
En este nuevo tutorial se va a presentar, a manera de ejemplo, como elaborar un codificador de prioridad para un teclado implementado con 5 pulsadores activos por nivel alto, y adicionalmente en la misma GAL22V10 implementar un registro de almacenamiento con 3 flip flops D que obedecen el flanco de subida del reloj.
Lo primero que debemos analizar es si la capacidad de la GAL nos permite realizar el circuito que deseamos trabajar: recordemos que la GAL22V10 dispone de 10 salidas que son compartidas como entradas, y de 22 entradas, 10 de ellas compartidas como salidas, y una entrada en el pin 1 que es compartida como entrada de reloj para un circuito secuencial, como el registro que deseamos implementar.
La pregunta es: ¿ se puede con la GAL22V10 trabajar 10 pulsadores con las entradas del 0 al 9, y a la vez un registro con 4 flip flops D ?
El codificador de prioridad en este ejemplo lo trabajamos por tabla de verdad en ABEL y el registro con el editor esquemático.
Se recomienda crear el mapa de fusibles y el archivo JEDEC sólo en el circuito final que integre tanto al codificador como el registro, para que no se vaya a presentar conflicto en la configuración de pines. Si se utiliza el pin 1 como entrada de un pulsador en el codificador,por ejemplo, al elaborar el mapa de fusibles del coder y luego en el registro como ese pin es la entrada de reloj se puede producir un conflicto y el computador se puede bloquear. El orden con que se hagan las cosas no es tan importante, siempre y cuando el mapa de fusibles se elabore solo al final con todo lo que la GAL va a contener.
Veamos el programa para el codificador de prioridad, donde las entradas las denominamos P0,P1,P2,P3 y P4 de acuerdo a los pulsadores correspondientes a las teclas de los números del 0 al 4. Para la asignación del código binario correspondiente se ha dispuesto de las salidas Y2,Y1,Y0. Se hace indispensable una cuarta salida SG (señal de grupo) que pase de 0 a 1 cuando cualquier tecla o pulsador se active, para que sea la entrada de CLK para el registro con los flip flops D.
En el navegador del ispLEVER este archivo, que salvamos como coder.abl debe compilar sin presentar ningún error. Inmediatamente generamos su símbolo esquemático.
Procedemos luego, con el editor esquemático a dibujar los tres flip flops D:
Compilamos el archivo del gráfico y generamos su símbolo esquemático.
Vamos ahora a integrar los dos archivos: el coder y el registro. Para ello creamos un archivo esquemático nuevo que lo salvamos como gal.
La salida SG del coder se conecta externamente al CLK del registro, mediante un jumper (puente), debido a que internamente la arquitectura de la GAL no lo permite hacer.
Al compilar este nuevo archivo esquemático no debe aparecer error.
Procedemos a efectuar su simulación, dibujando para el CLK una señal arbitraria, pero en la realidad debe ser la misma señal SG:

Lo primero que debemos analizar es si la capacidad de la GAL nos permite realizar el circuito que deseamos trabajar: recordemos que la GAL22V10 dispone de 10 salidas que son compartidas como entradas, y de 22 entradas, 10 de ellas compartidas como salidas, y una entrada en el pin 1 que es compartida como entrada de reloj para un circuito secuencial, como el registro que deseamos implementar.
La pregunta es: ¿ se puede con la GAL22V10 trabajar 10 pulsadores con las entradas del 0 al 9, y a la vez un registro con 4 flip flops D ?
El codificador de prioridad en este ejemplo lo trabajamos por tabla de verdad en ABEL y el registro con el editor esquemático.
Se recomienda crear el mapa de fusibles y el archivo JEDEC sólo en el circuito final que integre tanto al codificador como el registro, para que no se vaya a presentar conflicto en la configuración de pines. Si se utiliza el pin 1 como entrada de un pulsador en el codificador,por ejemplo, al elaborar el mapa de fusibles del coder y luego en el registro como ese pin es la entrada de reloj se puede producir un conflicto y el computador se puede bloquear. El orden con que se hagan las cosas no es tan importante, siempre y cuando el mapa de fusibles se elabore solo al final con todo lo que la GAL va a contener.
Veamos el programa para el codificador de prioridad, donde las entradas las denominamos P0,P1,P2,P3 y P4 de acuerdo a los pulsadores correspondientes a las teclas de los números del 0 al 4. Para la asignación del código binario correspondiente se ha dispuesto de las salidas Y2,Y1,Y0. Se hace indispensable una cuarta salida SG (señal de grupo) que pase de 0 a 1 cuando cualquier tecla o pulsador se active, para que sea la entrada de CLK para el registro con los flip flops D.
En el navegador del ispLEVER este archivo, que salvamos como coder.abl debe compilar sin presentar ningún error. Inmediatamente generamos su símbolo esquemático.
Procedemos luego, con el editor esquemático a dibujar los tres flip flops D:
Compilamos el archivo del gráfico y generamos su símbolo esquemático.
Vamos ahora a integrar los dos archivos: el coder y el registro. Para ello creamos un archivo esquemático nuevo que lo salvamos como gal.
La salida SG del coder se conecta externamente al CLK del registro, mediante un jumper (puente), debido a que internamente la arquitectura de la GAL no lo permite hacer.
Al compilar este nuevo archivo esquemático no debe aparecer error.
Procedemos a efectuar su simulación, dibujando para el CLK una señal arbitraria, pero en la realidad debe ser la misma señal SG:
Luego si hacemos la actualización de todos los archivos esquemáticos, los enlaces LINK y la capacidad de la GAL mediante FIT design .
Al crear el mapa de fusibles se genera el reporte del chip con su configuración de pines:
La GAL queda lista para programarla con el Superpro Z mediante el archivo JEDEC:
martes, 28 de febrero de 2012
Codificador de prioridad para teclado
http://www.angelfire.com/al2/Comunicaciones/Laboratorio/codifica.html
LOGICAID
LOGICAID es un excelente programa creado en la Universidad de Texas, en Austin por el profesor Charles H. Roth,Jr. Muy útil para el diseño de circuitos digitales, tanto combinatorios como secuenciales.
Se puede descargar en:
http://jagarza.fime.uanl.mx/Ene2012/Software/LogicAid.zip
domingo, 26 de febrero de 2012
ISPLEVER Lattice Semiconductor y el lenguaje ABEL
En la actualidad el diseño de los sistemas digitales se simplifica gracias a los avances en la Lógica Programable y del software para implementarla que es muy amigable y está disponible en un ambiente de ventanas; además se cuenta con ayudas visuales en caso de algún error. Por su parte, los dispositivos electrónicos digitales son económicos y programables a la medida.
Para el diseño digital contamos con herramientas de captura esquemática (schematic) y el lenguaje de descripción de hardware (HDL) ABEL-HDL, o VHDL, que permiten la implementación física del diseño en un dispositivo lógico programable (PLD), en particular dispositivos como la GAL22V10 que, por su versatilidad y capacidad, permiten implementar una gran variedad de diseños y aplicaciones de la lógica combinacional y secuencial, utilizando el mismo dispositivo en todas las prácticas (es reprogramable).
Para el desarrollo de las prácticas, es necesario contar con una computador personal donde se instalará el programa compilador Isp-Starter o ISP LEVER de la compañía Lattice Semiconductor. Para este programa, se puede obtener una licencia gratuita en la página de Internet: http://www.latticesemi.com/products/designsoftware/ispleverclassic/index.cfm
Dentro del programa Isp-lever se incluyen los programas:
- Schematic (captura esquemática), donde el diseño se representa usando símbolos.
- Text Editor (editor de texto), para capturar el código en el lenguaje ABEL-HDL.
- Waveforms (generador de diagramas de tiempo), para comprobar el funcionamiento del diseño, antes de implementarse físicamente.
Para la programación de los circuitos integrados es necesario un programador compatible con archivos en formato JEDEC, que soporte dispositivos lógicos programables como la GAL22V10 de Lattice Semiconductor (GENERIC ARRAY LOGIC: arreglo lógico genérico).
Se puede obtener información sobre el lenguaje ABEL con ejemplos de aplicación en http://jagarza.fime.uanl.mx/Ene2011/Manuales/abel1.pdf
Se puede obtener información sobre el lenguaje ABEL con ejemplos de aplicación en http://jagarza.fime.uanl.mx/Ene2011/Manuales/abel1.pdf
Un excelente libro, versión en PDF, de prácticas de electrónica digital manejando ABEL con ISPLEVER escrito por el Ingeniero Juan Angel Garza, Facultad de Ingeniería Mecánica y Eléctrica de la Universidad Autónoma de Nuevo León en México se encuentra en el enlace: http://cursos.itcg.edu.mx/libros/practicas.pdf
viernes, 24 de febrero de 2012
DE LA LÓGICA CABLEADA A LA PROGRAMADA
Lógica programada es lo contrario de la lógica cableada, es decir, este tipo de diseño permite utilizar un circuito o un proyecto para muchas otras funciones con el simple cambio del software que incorpora.
La lógica programada se basa en dispositivos lógicos programables (PLD), los cuales tienen una función no establecida, al contrario que las puertas lógicas u otros chips de funciones específicas tanto combinatorias o secuenciales, que tienen un propósito específico de aplicación en el momento de su fabricación.
Antes de poder utilizar el PLD en un circuito, este debe ser programado.
En los cursos de electrónica digital en la UAN vamos a comenzar a utilizar la GAL 22V10, junto al software ISPLEVER de la empresa LATTICE SEMICONDUCTOR. Se recomienda consultar la página http://es.wikipedia.org/wiki/L%C3%B3gica_programada
martes, 21 de febrero de 2012
Suscribirse a:
Entradas (Atom)



