You are on page 1of 26

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Anlisis y Diseo de Circuitos Secuenciales Teora de Mquinas de Estado (FSM) La teora de mquinas de estado es el nombre con el que se conocen los mtodos de Anlisis y Diseo de Circuitos Secuenciales Sincrnicos. Esta leccin constituye una introduccin al tema donde se definir lo que son las mquinas de estado y los conceptos bsicos para entender la metodologa de Anlisis y Diseo de Circuitos Secuenciales. Las mquinas de estado son circuitos secuenciales que se encuentran constituidos por una etapa combinacional y una etapa de memoria, relacionadas de tal forma que conforman un sistema secuencial para algn propsito especial. Los registros y contadores con entradas asincrnicas son ejemplos de este tipo de sistemas secuenciales.

Mquinas de Estado de Mealy y Moore Los circuitos secuenciales se clasifican dentro de la categora conocida como mquinas de estado, de la cual se distinguen comnmente dos tipos: o Mquina de Mealy: En esta mquina de estados las salidas se encuentran determinadas por el estado interno del sistema y por las entradas no sincronizadas con el circuito. El diagrama de bloques representativo de la mquina se muestra en la figura donde se observa que las salidas del sistema son tanto sincrnicas como asincrnicas .
o o o o o o

Mquina de Moore: Las salidas solo dependen del estado interno y de cualquier entrada sincronizada con el circuito, como se ve en la figura: donde las salidas del sistema son unicamente sincrnicas. Un ejemplo de este tipo de mquinas de estado son los contadores.

Los circuitos secuenciales se caracterizan por tener una etapa combinacional y otra de memoria conformada por flip-flops. En la figura se puede observar un ejemplo particular de este tipo de circuitos, el cual corresponde a una Maquina de estado de Mealy. Observe que hay salidas que dependen de la etapa de memoria y hay una salida que depende directamente de la etapa combinatoria.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Con base en el circuito de la figura se dar una descripcin de las herramientas bsicas que son empleadas para el Anlisis y Diseo de Circuitos Secuenciales. Entre estas herramientas se encuentran las ecuaciones lgicas, las de los diagramas de estado, las tablas de estado, las tablas de transicin y los mapas de Karnaugh.

Ecuaciones Lgicas Las ecuaciones lgicas son funciones que definen la relacin existente entre los estados de entrada y los estados de salida del sistema. Para determinar las ecuaciones lgicas de la mquina de estados de la figura inicialmente se deben identificar los estados siguientes. Estos estados corresponden a aquellos que ocurren despus de una transicin en la seal de reloj de los flip-flops. Recuerde que para los flip-flops tipo D el estado siguiente (Qi+1) es igual al estado de la entrada D. Teniendo en cuenta lo anterior las ecuaciones lgicas para los flip-flops A y B del circuito de la figura seran las siguientes: A = DA = AX + BX B = DB= AX La salida Y esta dada por: Y = (A + B)X Observando esta ltima ecuacin se concluye que la salida (Y) es funcin del estado presente del sistema (A y B) y de la entrada asincrnica (X). Las ecuaciones lgicas en los circuitos secuenciales tienen una estructura formada por dos clases de estados: Los estados siguientes, los cuales se agrupan al lado izquierdo de la expresin y representan las variables dependientes del sistema. El estado de estas variables cambia en el momento que ocurra un transicin en la seal de reloj. Los estados actuales y entradas del sistema. Agrupados al lado derecho de la expresin, constituyen las variables independientes, las cuales pueden o no cambiar en sincrona con el sistema. Cuando las ecuaciones de estado contienen varios trminos, se pueden simplificar empleando metodologas de reduccin de trminos como Algebra de Boole, Mpas de Karnaugh o mediante el algoritmo de Quine-McCluskey.

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Tablas de Estado Una tabla de estado es un Estados actuales Entrada Estados siguientes Salida listado que contiene la secuencia de los estados de A B X A B Y entradas, estados internos y salidas del sistema, 0 0 0 0 0 0 considerando todas las posibles 0 0 1 0 1 0 combinaciones de estados actuales y entradas. Las tablas 0 1 0 0 0 0 de estado por lo general se 0 1 1 1 1 1 dividen en tres partes: estados actuales, estados siguientes y 1 0 0 0 0 0 salidas, tal como se muestra en 1 0 1 1 0 1 la Tabla de estado. 1 1 1 1 0 1 0 1 0 0 0 1

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V m+n

UTP

La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene 2 filas. El estado siguiente tiene m columnas, y el nmero de columnas depende del nmero de salidas. Existe una forma ms conveniente de organizar la informacin en la tabla de estado, la cual se muestra en la Tabla siguiente, donde los estados se agrupan de tal modo que la tabla se puede traducir a un diagrama de estados. Al igual que la tabla anterior esta tiene tres secciones: estados actuales, estados siguientes y salidas, sin embargo los estados se agrupan dependiendo del valor de las entradas. La seccin de estados actuales agrupa los estados que ocurren antes de una transicin en la seal de reloj, la seccin de estados siguientes lista aquellos que ocurren despus de la transicin del reloj y la seccin de salidas rene los estados que se dan en el mismo instante de los estados actuales. Haciendo un anlisis de la operacin del circuito de la figura se puede observar lo siguiente: Cuando la variable X=0 los estados actuales A y B cambian a 0 despus de la transicin de reloj, y cuando X=1, los estados de las salidas se comportan tal como se resume en la tabla anterior. Se plantea como ejercicio verificar la informacin de la tabla.

Estado Actual

Estado Siguiente X=0 X=1 AB 01 11 10 10

Salida X=0 Y 0 1 1 1 X=1 Y 0 0 0 0

AB 00 01 10 11

AB 00 00 00 00

Diagramas de Estado Un diagrama de estados es una representacin grfica que indica la secuencia de los estados que se presentan en un circuito secuencial, teniendo en cuenta las entradas y salidas. El diagrama se forma con crculos y lneas. Los crculos representan los estados del circuito secuencial y cada uno de ellos contiene un nmero que identifica su estado. Las lneas indican las transiciones entre estados y se marcan con dos nmeros separados por un (/), estos dos nmeros corresponden a la entrada y salida presentes antes de la transicin. A manera de ejemplo observe la lnea que une
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

los estados 00 y 01 en el diagrama de estado de la figura anterior. Esta lnea marcada como 1/0 indica que el circuito secuencial se encuentra en el estado 00 mientras la entrada X=0 y la salida Y=0, y que despus de que ocurra una transicin en la seal de reloj el estado cambia a 01. Las lneas que salen y regresan al mismo crculo indican que no hay cambio en el estado, cuando se presentan la entrada y salida indicadas. Tablas de Transicin de flip-flops Las tablas de transicin se usan en Transiciones de Salida Entradas al flip-flop conjunto con las de estado y representan la Qi+1 J K tabla de verdad de los flip-flops con los Qi cuales se desea implementar el circuito 0 0 0 X secuencial. La tabla contiene los estados 1 1 X actuales y siguientes segn el estado de 0 las entradas de los flip-flops. La tabla 1 0 X 1 anterior corresponde a la tabla de transicin del flip-flop JK. 1 1 X 0 En la tabla, Qi corresponde al estado actual y Qi+1 al estado siguiente, J y K son las entradas de los flip-flops. La informacin sombreada en la tabla se interpreta de la siguiente forma: cuando el estado presente de la salida Q=0 y las entradas J=1 y K=X (X indica una condicin de no importa, 1 o 0), despus de un pulso de reloj en el flip-flop la salida cambia al estado siguiente Q=1.

Estado Actual Q2 0 0 0 0 1 1 1 1 Q1 0 0 1 1 0 0 1 1 Q0 0 1 0 1 0 1 0 1

Estado Siguiente Q2 0 0 0 1 1 1 1 0 Q1 0 1 1 0 0 1 1 0 Q0 1 0 1 0 1 0 1 0

Entradas de los flip-flop J2 0 0 0 1 X X X X K2 X X X X 0 0 0 1 J1 0 1 X X 0 1 X X K1 X X 0 1 X X 0 1 J0 1 X 1 X 1 X 1 X K0 X 1 X 1 X 1 X 1

Mapas de Karnaugh Generalmente la tablas de estado y de transicin de los flip-flops se fusionan en una sola para agrupar la informacin de tal forma que permitan construir los Mapas de Karnaugh para simplificar las funciones lgicas. La tabla anterior corresponde a una tabla de estado de un contador de tres bits con flip-flops JK. Observe que esta tabla incluye las entradas J y K para cada una de la transiciones (estado actual a estado siguiente). Las regiones sombreadas en la tabla indican que el estado Qi cambia estando presentes las entradas Ji y Ki correspondientes despus de una transicin del reloj.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Los Mapas de Karnaugh se emplean para definir la lgica de las entradas de los flip-flops y se debe hacer uno para cada una de las entradas. La figura corresponde al Mapa de karnaugh de la entrada J1. de la tabla de estado anterior. Observe que cada celda en el mapa representa uno de los estados actuales de la secuencia en la tabla de estado. Una vez asignados todos los estados posibles a cada celda en el Mapa de Karnaugh se procede a simplificar y deducir las expresiones lgicas. En la figura se observa que la expresin correspondiente a la entrada J1 es: J1 = Q0 Esta expresin indica que en el circuito lgico la salida Q0 debe ir conectada a la entrada J1.

Anlisis y Diseo de Circuitos Secuenciales Anlisis y Diseo de Circuitos Secuenciales Sincrnicos La gran mayora de los circuitos digitales contienen flip-flops y compuertas para realizar funciones especficas. El diseo de estos circuitos inicia a partir de las especificaciones y finaliza con las funciones lgicas, de las cuales se obtiene el circuito lgico. Inicialmente se debe crear una tabla de estado o representacin equivalente, para identificar la secuencia de estados que deseada. Luego de seleccionar el nmero y tipo de flip-flops con los cuales se desea hacer el diseo, se deduce la lgica combinatoria necesaria para generar la secuencia de estados. Los circuitos secuenciales se pueden analizar y disear siguiendo un procedimiento claramente definido que consiste en los siguientes pasos: o Asignacin de estados o Construccin del diagrama de transicin o Elaboracin de la tabla de estados o Obtencin de ecuaciones o funciones lgicas o Realizacin de circuitos lgicos Para explicar este mtodo se desarrollar un ejemplo aplicado a un diseo particular. Ejemplo: Disear el circuito secuencial del proceso que cumple el diagrama de estados de la figura: Paso 1. Asignacin de estados: el proceso tiene cuatro estados, una entrada y no tiene salidas (se pueden considerar como Sali das las de los flip-flops). Para represen tar los cuatro estados se usarn dos flip-flops A y B de tipo JK. Y la entrada ser X. Paso 2. Contruccin del diagrama de transicin o de estado La figura anterior corresponde al diagrama de transicin. Analizando este diagrama se observa que el estado 10 se mantiene mientras X=0 y en el momento que X=1 pasa al estado 11, despus al estado 00 y finalmente al estado 01, hasta el momento que nuevamente X=0, volviendo de esta forma al estado AB=10. Adicionalmente observe que los estados 00 10 y 11, se mantienen cuando X=0 y el estado 01 se mantiene cuando X=1. Paso 3. Elaboracin de la tabla de estados
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

A partir del diagrama de estados y de la tabla de transicin del flipflop JK se puede construir la tabla de estados. Para la simplificacin de los circuitos combinatorios es conveniente que se presenten condiciones de "no importa", ya que estas permiten simplificar las funciones lgicas y por tanto el tamao del circuito lgico. Paso 4. Obtencin de ecuaciones o funciones lgicas. En este paso se obtienen las funciones lgicas para las entradas de los flip-flops (JA, KA, JB y KB) y el objetivo es deducir la lgica combinatoria de estado siguiente, mediante el uso de Mapas de Karnaugh. A continuacin se muestran los Mapas de Karnaugh y las funciones lgicas correspondientes. Entrada X 0 1 0 1 0 1 0 1 Estado Actual A B 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 Estado Siguiente A B 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 Excitaciones JA KA JB KB 0 X 0 X 0 X 1 X 1 X X 1 0 X X 0 X 0 0 X X 0 1 X X 0 X 0 X 1 X 1

Paso 5. Realizacin de circuitos lgicos Este es el ltimo paso del diseo, y consiste en implementar la lgica combi nacional a partir de las ecuacio nes lgicas obte nidas en el paso anterior para las entradas J y K de los flip-flops. Las conexiones correspondientes, se efectan mediante el uso de compuertas e inversores.

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Diseo de Circuitos Secuenciales con flip-flops D El diseo del circuito anterior se hizo con flip-flops JK. En esta seccin veremos como se realiza el diseo de circuitos secuenciales mediante el uso de flip-flops tipo D. A diferencia de las entradas de los flip-flops JK, las entradas en los flip-flops D corresponden exactamente a los estados siguientes. Por esta razn en la tabla de estado no se requiere una columna independiente para las excitaciones. En el siguiente ejemplo se ver como realizar el diseo de circuitos secuenciales con flip-flops D. Ejemplo Entrada Estado actual Estado siguiente Salida Realizar el diseo del circuito lgico correspondiente a la tabla de estado. X A B A(DA) B(DB) Y Observe que esta tabla es la misma del 0 0 0 0 0 0 ejemplo anterior, pero adicionalmente se 1 0 0 0 1 1 agreg una salida (Y). Paso 1. Asignacin de estados 0 0 1 1 0 0 Este proceso al igual que el ejemplo 1 0 1 0 1 0 anterior tiene cuatro estados de dos bits 0 1 0 1 0 0 (AB), una entrada (X) y una salida (Y). Para representar los cuatro estados se 1 1 0 1 1 1 usarn dos flip-flops D identificados 0 1 1 1 1 0 como A y B. 1 1 1 0 0 0

Paso 2. Construccin del diagrama del transicin o de estado El diagrama de transicin es el mismo del ejemplo anterior, excepto que ahora se tiene en cuenta la salida (Y). En la figura se observa el diagrama de estado. Paso 3. Elaboracin de la tabla de estado. Para este ejemplo inicialmente se di la tabla de estados

Paso 4. Obtencin de ecuaciones o funciones lgicas. En este paso se deben obtener las funciones lgicas para las entradas de los flip-flops (DA, DB) y la salida (Y). En la figura se muestran los Mapas de Karnaugh y las funciones lgicas correspondientes.

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Paso 5. Realizacin de circuitos lgicos Con las ecuaciones lgicas obtenidas en el paso anterior se puede implementar el circuito lgico. Las conexiones correspondientes, se efectan mediante el uso de compuertas e inversores y en la figura 7.2.6 se muestra el diseo del circuito.

Estados no usados Durante el diseo de los circuitos secuenciales para simplificar las representaciones lgicas, es conveniente emplear los estados no usados como condiciones que no importa. Estos estados se identifican con una (X) en los Mapas de Karnaugh. Para ilustrar como emplear estos estados, observe la tabla abajo. Teniendo en cuenta todas las posibles combinaciones de las variables A, B, C y X, Note que en esta tabla hay seis estados que no estn presentes (0000, 0001, 1100, 1101, 1110 y 1111). Las seis filas de la tabla correspondientes a estos estados se identifican como estados X (1 o 0) o condiciones de "No importa", al momento de elaborar los Mapas de Karnaugh. Estado actual Entrada Estado siguiente Excitaciones Salida A B C X A B C JA KA JB KB JC KC Y 0 0 1 0 0 0 1 0 X 0 X X 0 0 0 0 1 1 0 1 0 0 X 1 X X 1 0 0 1 0 0 0 1 1 0 X X 0 1 X 0 0 1 0 1 1 0 0 1 X X 1 0 X 0 0 1 1 0 0 0 1 0 X X 1 X 0 0 0 1 1 1 1 0 0 1 X X 1 X 1 0 1 0 0 0 1 0 1 X 0 0 X 1 X 0 1 0 0 1 1 0 0 X 0 0 X 0 X 1 1 0 1 0 0 0 1 X 1 0 X X 0 0 1 0 1 1 1 0 0 X 0 0 X X 1 1 Tabla de estado - Condiciones de "no importa" Los mapas de karnaugh correspondientes a las entradas de cada flip-flop (JA, KA, JB, KB, JC y KC) y la salida (Y), se muestran en la figura 7.2.7. Observe que en cada mapa los estados
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

resaltados en rojo corresponden a los estados no usados, los cuales se han incluido como condiciones "no importa" para simplificar la mayor cantidad de variables en las expresiones.

Como conclusin sobre esta seccin, podemos decir que es recomendable incluir los estados no usados en el diseo de los circuitos secuenciales. Esto implica una reduccin en las expresiones lgicas y por consiguiente en el tamao del circuito, que en otros trminos representar obviamente un menor tiempo de desarrollo y costo de implementacin. Se plantea como ejercicio hacer el diagrama lgico correspondiente a las ecuaciones halladas a partir de los mapas de Karnaugh de la figura y hacer el diseo del circuito secuencial sin tener en cuenta los estados no usados para comparar los dos casos y notar las diferencias.

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

PLD's Secuenciales PLD's Secuenciales (Control Simplificado para Mquina Lavadora) El objetivo de esta prctica es el de disear y probar un circuito de control para una lavadora, pero haciendo algunas simplificaciones que se explican al final, con el fin de que el circuito pueda programarse dentro de una GAL16V8, dispositivo que slo dispone de 8 flip flops. En un proceso de lavado normal, una lavadora ejecuta secuencialmente los siguientes pasos:

Para que el circuito no exceda la capacidad de la GAL16V8 se tiene que omitir la ltima etapa de exprimido, que se indica subrayada en la lista de arriba. Entradas: (5) Pulsadores de arranque (ARR) y de parada (PAR), detectores de nivel alto (NIA) y de nivel bajo (NIB), interruptor de tapa (TAP). Todas las entradas son activas ALTAS. Adems se dispone de una seal de reloj (CLK) externa que suministra un periodo de un minuto. Salidas: (5) Vlvulas solenoides de agua caliente (CAL), de agua fra (FRI) y de drenaje (DRE). Motor (MOT). La ltima salida, VEL, cuando vale 0 acopla el motor para agitacin en las etapas de lavado y enjuague y cuando vale 1 lo acopla a velocidad alta durante la etapa de exprimido. Durante el estado de Apagado todas las salidas permanecen inactivas o sea con un valor de cero. Operacin de la lavadora Al presionar el pulsador de arranque la lavadora empieza una etapa de llenado, durante la cual mantiene abiertas las vlvulas de agua fra y de agua caliente hasta cuando el agua alcanza el nivel del detector NIA y se vuelven a cerrar las dos vlvulas. Luego la mquina pasa la etapa de lavado, agitando la ropa durante un ciclo de reloj, pasando despus al drenado del tanque, mediante la apertura de la respectiva vlvula. En el flanco de reloj que sigue a la activacin del detector NIB, que indica desocupacin del tanque, la lavadora termina la etapa de drenado. La siguiente etapa es la de exprimido que dura un ciclo de reloj, durante la cual contina abierta la vlvula de drenaje y se energiza el motor acoplado a la transmisin de alta velocidad. Si durante esta etapa se abre la tapa de la lavadora, la mquina debe regresar la etapa anterior, si ello no ocurre contina el proceso normal. Enseguida se vuelve a llenar el tanque, pero esta vez slo se abre la vlvula de agua fra, que permanece abierta hasta cuando se activa el detector NIA. Con el siguiente flanco de reloj la mquina enjuaga durante un ciclo de reloj. Por ltimo la mquina vuelve al drenado, desocupando nuevamente el tanque y regresando al estado inicial de apagado. Si durante cualquier momento del proceso de lavado se presiona el pulsador PAR, las salidas que estn activasen ese momento deben desactivarse y la mquina debe regresar al estado de apagado. Simplificaciones del circuito de control 1. Se suprimi la ltima etapa del proceso que era la del exprimido posterior del enjuague, ello significara en la prctica que la ropa tendra que sacarse empapada de la lavadora y exprimirse manualmente.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

2. No se incluy un bloque temporizador que sirva para que el usuario pueda seleccionar el tiempo de la etapa de lavado y para que el mismo circuito de control defina tiempos diferentes a los de un perodo de reloj, para las etapas de exprimido y de enjuague. Este bloque se puede realizar mediante un contador decreciente que se pueda inicializar en cualquier valor y que le enva una seal al circuito de control, cada vez que su salida llega a cero. 3. Si la mquina est exprimiendo y se abre la tapa , inmediatamente debiera pararse el motor sin tener que esperar hasta que ocurra el siguiente flanco activo de la seal de reloj. Igualmente si se pulsa PAR inmediatamente debiera pararse la mquina. De la misma forma, en las etapas de llenado las vlvulas debieran cerrarse apenas se activa el detector de nivel alto. La ltima simplificacin se tiene que hacer porque el CUPL, versin 4.8, aparentemente slo soporta mquinas de estado de Moore. Las dos primeras simplificaciones se deben realizar por la escasez de flipflops en el dispositivo a utilizar, el GAL16V8. Dispositivos Lgicos Programables Una forma rpida y directa de integrar aplicaciones se logra con la lgica programable, la cual permite independizar el proceso de fabricacin del proceso de diseo fuera de la fbrica de semiconductores. El sistema desplaza los errores de alambrado al campo exclusivo de la programacin. Los sistemas con estas caractersticas se pueden borrar y reprogramar en casos de cambios o revisiones. El resultado es la reduccin del espacio fsico de la aplicacin. El diseo est basado en bibliotecas y mecanismos especficos de mapeado de funciones. En el captulo se vern dispositivos como los PAL y GAL por la facilidad de manejo y coste razonable. El lenguaje CUPL se ver por su amplia difusin y empleo en aplicaciones. Dispositivos Lgicos Programables Diseo Lgico Hoy Da La mayor parte de los diseos de nivel de sistema incorporan diversos dispositivos, como son las memorias RAM, ROM, controladores, procesadores, etc., que se interconectan mediante gran cantidad de dispositivos lgicos de propsito general, frecuentemente denominados lgica de unin ("glue logic"). En los ltimos aos, los dispositivos PLD (Programmable Logic Device) han comenzado a reemplazar muchos de los antiguos dispositivos de unin, SSI y MSI. El uso de dispositivos PLD proporciona una reduccin en el nmero de circuitos integrados. Por ejemplo, en los sistemas de memoria de las computadoras, los PLD pueden utilizarse para decodificar direcciones de memoria y generar seales de escritura en memoria. En muchas aplicaciones, los PLD y, en concreto, las matrices lgicas programables (PAL, Programmable Array Logic) y las matrices lgicas genricas (GAL, Generic Array Logic) pueden emplearse para reemplazar dispositivos lgicos SSI y MSI, consiguiendo con ello una reduccin de etapas y de los costos. Por las razones anteriores el diseo lgico hoy da se realiza con PLDs. Un PLD est formado por una matriz de puertas AND y puertas OR, que se pueden programar para conseguir funciones lgicas especficas. El diseo con PLDs seala las siguientes ventajas en relacin a la lgica cableada: o Economa. o Menos espacio en los impresos. o Se mantiene la reserva del diseo. o Se requiere tener menos inventarios que con circuitos estndar SSI, MSI. o Menos alambrado. Tipos de PLD
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Los PLD se dividen en dos clases: 6. PLDs combinatorios. Constituidos por arreglos de compuertas AND OR. El usuario define las interconexiones y en esto consiste la programacin. 7. PLDs secuenciales. Adems de los arreglos de compuertas, incluyen flip flops para programar funciones secuenciales como contadores y mquinas de estado(ver captulo 8). Estructura de los Dispositivos Lgicos Programables Bsicos Los PLD se clasifican de acuerdo con su estructura, la cual es bsicamente la ordenacin funcional de los elementos internos que proporciona al dispositivo sus caractersticas de operacin especficas. Memoria programable de slo lectura PROM (PROM, Programable Read Only Memory) La PROM est formada por un conjunto fijo (no programable) de puertas AND conectadas como decodificador y una matriz programable OR. La PROM se utiliza como una memoria direccionable y no como un dispositivo lgico (Ver Fig 4.1.1.).

Figura 4.1.1. Diagrama de bloques de una PROM (Programmable Read-Only Memory). Arreglo Lgico Programable PLA (PLA, Programmable Logic Array) El PLA es un PLD formado por una matriz AND programable y una matriz OR programable. La PLA ha sido desarrollada para superar algunas de las limitaciones de las memorias PROM (Ver Fig 4.1.2.).

Figura 4.1.2. Diagrama de bloques de una PLA (Programmable Logic Array). Los dispositivos lgicos programables como las PAL y las GAL se vern en la siguiente leccin. En la actualidad existen soluciones con Dispositivos Lgicos programables complejos que combinan arquitectura superior y software de gran alcance, ofreciendo un nivel sin precedente en la flexibilidad del diseo. Herramientas Computacionales Utilizadas en las Metodologias de Diseo Descendentes (Top-Down) En el diseo Top - Down se captura una idea en un nivel de abstraccin alto y se implementa a partir de sta descripcin, en un proceso hacia abajo incrementando el nivel de detalle segn lo requerido. La figura 4.3.1. muestra la forma de diseo Top- Down. En el primer nivel de la figura se aprecia un sistema inicial dividido en mdulos, los cuales se dividen sucesivamente hasta llegar a los componentes bsicos del circuito o elementos primarios. Estos elementos se enmarcan en un cuadrado con la lneas ms gruesa. Los
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

mtodos de diseo se basan en programas computacionales conocidos como herramientas de automatizacin del diseo electrnico (EDA Tools), las cuales sobresalen por ofrecer una reduccin significativa en el tiempo del diseo.

Figura 4.2.1. Metodologia De Diseo Top - Down Las herramientas siguen el diagrama de flujo de la figura 4.4.2.

Figura 4.2.2. Diagrama de Flujo con herramientas EDA Este proceso se resume en los siguientes pasos: 1. Planteamiento de las especificaciones. 2. Entrada del diseo:En esta etapa se realiza una descripcin del circuito, para la cual existen varias alernativas, a. Captura Esquemtica: Dibujo del circuito mediante interfaz grfica, puede ser un diagrama de bloques. b. Mediante lenguajes de descripcin HDL como VHDL, Verilog, Abel y CUPL. c. Diagramas de transicin de estados. d. Formas de onda Tablas de verdad.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

3. Simulacin HDL (Opcional): Simula el comportamiento del circuito que se acaba de describir antes de la sntesis. 4. Sntesis lgica: Consiste en tomar la descripcin HDL y a partir de ella, generar y simplificar las ecuaciones lgicas correspondientes al circuito descrito. 5. Simulacin funcional: Simula las ecuaciones lgicas, sin tener en cuenta los retardos. 6. Implementacin del diseo: Los pasos a seguir dependen del tipo de PLD que se est utilizando en el diseo. Trazado del mapa, Colocacin y enrutamiento, Creacin del archivo para la programacin del dispositivo. Revisa si el circuito se adapta al chip; No. salidas, No. de trminos productos por salida. 7. Simulacin temporal: Despus de la implementacin ya se conoce como queda programado el circuito y se puede realizar una simulacin teniendo en cuenta los retardos. 8. Programacin: La implementacin genera un archivo JEDEC que indica el estado de las conexiones. Este archivo se usa para programar (o quemar el chip). Ventajas del Diseo Top - Down La metodologia de diseo descendente disminuye el tiempo de diseo. Por medio de los programas CAD para diseo de impresos se ha logrado disminuir el tiempo a 1/10 parte de lo que se gastaba antes, cuando esto se hacia antes manualmente. En la realizacin de las simulaciones no es necesario slo un prototipo, ya que este generalmente funciona; antes se deba repetir el proceso 2 o 3 veces hasta que el prototipo funcionara. Las ltimas herramientas de diseo electrnico permiten implementar de forma automtica la metodologa de diseo Top - Down. Lenguajes de Descripcin de Hardware (HDL - Hardware Description Language) Los lenguejes HDL permiten realizar el primer paso de la metodologa del diseo descendente. Se describen en un lenguaje de alto nivel el comportamiento requerido del circuito a disear. Esta descripcin se puede hacer mediante tablas de verdad, lista de transiciones de estados, ecuaciones lgicas. Con base a la descripcin, el programa realiza los siguientes pasos: 9. Sintetiza y simplifica las ecuaciones lgicas. 10. Simula las ecuaciones. 11. Sintetiza el circuito lgico. 12. Simula el circuito lgico. 13. Sintetiza el archivo para programar un PLD. Entre otras ventajas, se pueden mencionar las siguientes: 14. EL programa HDL es el mismo as cambie la tecnologa, Ejemplo: FPGA, transistores 2.5m ., 1.2 m . 15. Facilita la comunicacin entre los diseadores. 16. Facilita el uso de las partes de un diseo en otros (Reutilizacin). 17. Es posible verificar el funcionamiento del sistema dentro del proceso de diseo sin necesidad de implementar el circuito. 18. Las simulaciones del diseo, antes de que este sea implementado, permiten probar la arquitectura del sistema para tomar decisiones en cuanto a cambios en el diseo. 19. Las herramientas de sntesis tienen la capacidad de convertir una descripcin hecha en un HDL, VHDL por ejemplo, a compuertas lgicas y adems, optimizar dicha descripcin de acuerdo a la tecnologa utilizada. 20. Las descripciones en un HDL proporcionan documentacin de la funcionalidad de un diseo independientemente de la tecnologa utilizada. 21. Una descripcin realizada en un HDL es ms fcil de leer y comprender que los nestlist o circuitos esquemticos. 22. Un circuito hecho mediante una descripcin en un HDL puede ser utilizado en cualquier tipo de dispositivo programable capaz de soportar la densidad del diseo. Es decir, no es necesario adecuar el circuito a cada dispositivo porque las herramientas de sntesis se encargan de ello.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Lenguajes HDL ms populares En la actualidad existen diversas herramientas de diseo para integrar sistemas de gran complejidad. Los lenguajes de descripcin de hardware constituyen una opcin de diseo de soluciones de sistemas electrnicos. ABEL El lenguaje ABEL es el ms utilizado en los PLDs. El lenguaje ABEL facilita la programacin de PLDs combinatorios y secuenciales. Un circuito en ABEL se puede describir en forma de ecuacin lgicas, tabla de verdad o en transicin de estados. El programa ABEL cumple los siguientes pasos: 23. Verifica si existen errores en la sintaxis del programa fuente. 24. Simplifica o sintetiza las ecuaciones segn sea el caso. 25. Simula las ecuaciones. 26. Puede escoger el dispositivo que mejor se adapte, o verificar si el dispositivo especificado s se adapta a la aplicacin. 27. Genera el archivo JEDEC para la programacin del PLD. VHDL El VHDL es un lenguaje de descripcin y modelado diseado para descibir en forma entendible la funcionalidad y la organizacin del hardware de los sistemas digitales y otros componentes. VHDL maneja una sintaxis amplia y flexible. El lenguaje VHDL permite el diseo Top -Down o en otras palabras; modelar los bloques de alto nivel, simularlos y adecuar la funcionalidad en alto nivel antes de llegar a los niveles bajos de abstraccin en la implementacin del diseo. CUPL El lenguaje CUPL se describir en la leccion 5 de este captulo. Herramientas para la Automatizacin del Diseo Electrnico (EDA Tools) Las herramientas EDA ("Electronic Design Automation") son las herramientas de hardware y software utilizadas en el diseo de sistemas electrnicos. El diseo de hardware tiene un inconveniente que no existe en el desarrollo de software. El problema es el alto costo en el ciclo de diseo, desarrollo del prototipo, pruebas y reinicio del ciclo. La etapa de costo ms elevado es el prototipo. Por necesidad del mercado, se impone la reduccin de costos en esta etapa, con el fin de incluir la fase de desarrollo del prototipo al final del proceso, evitando la repeticin de varios prototipos, razn por la cual se encarece el ciclo. La introduccin de la fase de simulacin y verificacin de circuitos utilizando herramientas EDA, hace no necesaria la comprobacin del funcionamiento del circuito por medio de la implementacin fsica del prototipo. Las herramientas EDA estn presentes en todas las fases del ciclo de diseo de circuitos. Primero en la fase de generacin del sistema que puede representarse en un diagrama esquemtico, en bloques o de flujo. Se encuentra tambin la fase de simulacin y comprobacin de circuitos, donde diferentes herramientas permiten verificar el funcionamiento del sistema. Estas simulaciones pueden ser de eventos, funcionales, digitales o elctricas, de acuerdo al nivel requerido. Despus estn las herramientas EDA utilizadas en la sntesis y programacin de circuitos digitales en dispositivos lgicos programables. Existen, adems, las herramientas EDA orientadas a la fabricacin de circuitos. En el caso del diseo de hardware estas herramientas sirven para la realizacin de PCBs ("Printed Circuit Boards" o placas de circuito impreso), o para desarrollar circuitos integrados de aplicacin especifica como ASICs ("Aplication Specific Integrated Circuits"). Las principales caractersticas y finalidad de algunas herramientas EDA que intervienen en el diseo de circuitos son: 1. Lenguajes de Descripcin de Circuitos. 2. Diagramas Esquemticos. 3. Grafos y Diagramas de Flujo. 4. Simulacin de Eventos.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

5. Simulacin Funcional. 6. Simulacin Digital. 7. Simulacin Elctrica. 8. Diseo de PCBs. 9. Diseo de Circuitos Integrados. 10. Diseo con Dispositivos Programables. Para la automatizacin del diseo electrnico se utilizan herramientas EDA. Ventajas de la metodologia de diseo que usa herramientas EDA Entre las ventajas de la metodologia de diseo con el empleo de herramientas EDA est la reduccin del diseo, la posibilidad de dividir un proyecto en mdulos que se desarrollan por separado, la independencia del diseo con respecto a la tecnologa, la posibilidad de la reutilizacin de los diseos, la optimizacin de los circuitos y las simulaciones posibles con las herramientas. Con la aparicin de herramientas EDA cada vez ms complejas, que integran en el mismo marco de trabajo las herramientas de descripcin, sntesis, simulacin y realizacin; apareci la necesidad de disponer de un mtodo de descripcin de circuitos que permitiera el intercambio de informacin entre las diferentes herramientas que componen el ciclo de diseo. En principio se utiliz un lenguaje de descripcin que permita, mediante sentencias simples, describir completamente un circuito. A estos lenguajes se les llam Netlist puesto que eran simplemente eso, un conjunto de instrucciones que indicaban las interconexiones entre los componentes de un diseo. Principios y Aplicaciones de los Dispositivos Lgicos Programables como las PALs y las GALs. Una matriz programable es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de interseccin. Las matrices pueden ser fijas o programables. Todos los PLD estn formados por matrices programables. Estrucutura Interna de un PLD La estructura bsica de un PLD et formada por un arreglo de puetas AND y OR interconectadas a travs de fusibles. Matriz AND La matriz AND est formada por una red de compuertas AND conectadas a travs conductores y fusibles en cada punto de interseccin. Cada punto de interseccin entre una fila y una columna se denomina celda. La figura 4.4.1 muestra un arreglo de compuertas no programado.

Figura 4.4.1. Arreglo AND No Programado. Cuando se requiere una conexin entre una fila y una columna, el fusible queda intacto y en caso de no requerirse la conexin, el fusible se abre en el proceso de programacin. La figura muestra 4.4.2 un arreglo AND programado.

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Figura 4.4.2. Arreglo AND Programado. Matriz OR La matriz OR est formada por una red de compuertas OR conectadas a travs conductores y fusibles en cada punto de interseccin. La figura 4.4.3 muestra un arreglo de compuertas no programado.

Figura 4.4.3. Arreglo OR No Programado. La figura muestra 4.4.4 un arreglo OR programado.

Figura 4.4.4. Arreglo OR Programado. Los dispositivos lgicos programables que se usan ms comnmente para la implementacin lgica son la PAL y la GAL. Lgica de Arreglos Programables (PAL, Programmable Array Logic) La PAL es un PLD que se ha desarrollado para superar ciertas desventajas de la PLA, tales como los largos retardos debidos a los fusibles adicionales que resultan de la utilizacin de dos matrices programables y la mayor complejidad del circuito. La PAL bsica est formada
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

por una matriz AND programable y una matriz OR fija con la lgica de salida (Ver figura 4.4.5). Esta estructura permite implementar cualquier suma de productos lgica con un nmero de variables definido, sabiendo que cualquier funcin lgica puede expresarse como suma de productos. La PAL se implementa con tecnologa bipolar (TTL o ECL).

Figura 4.2.5. Diagrama de bloques de una PAL (Programmable Logic Array) Nomenclatura de una PAL Los lderes en fabricacin de PLDs, Texas Instruments y AMD, tienen una notacin para identificar los dispositivos. Por ejemplo, la estructura en PLD AMD es:

Figura 4.2.6. Diagrama de bloques de una PAL (Programmable Logic Array) Dentro de la estructura de salida se tienen las posibilidades contenidas en la tabla 4.2.1. Cdigos Tipos de Salidas L H R RA X V Combinatoria con nivel bajo activo. Combinatoria con nivel alto activo. Registro. Registro asncrono. Registro O exclusivo. Vestil.

M Macroclula. Tabla 4.2.1. Tipos de Salidas de una PAL. PALs comerciales En el mercado se manejan referencias como la PAL16L8, PAL20L8, PAL20V8 y PAL20X8. Matriz Lgica Genrica (GAL, Generic Array Logic) La GAL se forma con una matriz AND reprogramable y una matriz OR fija , con una salida lgica programable. La figura 4.4.7. muestra el diagrama de bloques de una GAL. Esta estructura permite implementar cualquier expresin lgica suma de productos con un nmero de variables limitado.

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Figura 4.4.7. Diagrama de Bloques de una GAL (Generic Array Logic). Las dos principales diferencias entre los dispositivos GAL y PAL son: a) la GAL es reprogramable y b) la GAL tiene configuraciones de salida programables. La GAL se puede programar una y otra vez, ya que usa tecnologa ECMOS (Electrically Erasable CMOS, CMOS borrable elctricamente). En la figura 4.4.8. se ilustra la estructura bsica de una GAL con dos variables de entrada y una de salida. La matriz reprogramable es esencialmente una red de conductores ordenados en filas y columnas, con una celda CMOS elctricamente borrable (E2CMOS) en cada punto de interseccin, en lugar de un fusible como en el caso de las PAL. Estos PLDs son borrables y reprogramables. El transistor CMOS tiene 2 compuertas, una de ellas totalmente aislada, flotante. Para programar cada celda se aplica o no una tensin mayor a VDD (alta) en la compuerta no flotante. Al aplicar esta tensin el dielctrico conduce y la compuerta flotante se carga negativamente, dejando en operacin normal siempre abierto el transistor.

Figura 4.4.8. Estructura Bsica de una GAL (Generic Array Logic) En la figura 4.2.9. se muestra un ejemplo de una sencilla matriz GAL programada para obtener la suma de tres productos.

Figura 4.4.9. Programacin de una GAL (Generic Array Logic). El borrado se puede hacer de dos formas:

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Con luz ultravioleta(UV): exponiendo el transistor de 5 a 20 minutos a luz UV, el dielctrico conduce y permite la descarga de la compuerta flotante. Para este borrado el chip lleva una ventana de cuarzo transparente. o Borrado elctrico: Es el ms usado hoy en da. La capa que aisla la compuerta flotante es ms delgada. Al aplicar una tensin alta con polaridad contraria , la compuerta flotante se descarga porque el dielctrico conduce. Las ventajas ms importantes de esta tcnica son una descarga rpida, no se requiere UV y no se requiere sacar el chip de su base. GALs comerciales Las diversas GAL tienen el mismo tipo de matriz programable. Se diferencian en el tamao de la matriz, en el tipo de OLMC (Las macroceldas Lgicas de Salida que contienen circuitos lgicos programables que se pueden configurar como entrada o salida combinacional y secuencial) y en los parmetros de funcionamiento, tales como velocidad y disipacin de potencia. Referencia Nmero de Pines tPD ICC (mA) Caractersticas
o

GAL16V8A GAL18V10 GAL22V8A GAL22V10 GAL6001

20 20 24 24 24

10, 15, 25 55, 115 E2CMOS PLD Genrica 15, 20 15, 20 15, 20 30, 35 115 115 130 150 E2CMOS PLD Universal E2CMOS PLD Universal E2CMOS PLD Universal E2CMOS PLD Universal E2CMOS FPLA 10, 15, 25 55, 115 E2CMOS PLD Genrica 10, 15, 25 130

GAL22RA10 24 GAL26CV12 28

ispGAL16Z8 24 30, 35 190 E2CMOS PLD Programable en Circuito Tabla 4.2.2. Familias GAL del fabricante Lattice Programacin en CUPL En el medio electrnico hay diferentes herramientas de software para programar PLDs. Todos estos tienen semejanzas compartidas y sus diferencias distintivas. Uno de los compiladores disponibles de alto nivel de uso difundido actualmente es CUPL. En esta leccin se pretende dar una introduccin a la programacin de PLDs utilizando este compilador dejando por parte del estudiante la profundizacin en el tema. CUPL es una Herramienta de programacin para PLDs y su nombre proviene de la sigla en ingls de Compiler Universal Programmable Logic , la cual traduce Compilador Universal para Lgica Programable. Este compilador ofrece varias caractersticas que permiten desarrollos basados en la metodologa Top-Down y puede generar archivos de programacin para una gran variedad de dispositivos programables. La programacin en este Software se efecta mediante la creacin de un archivo de texto que contiene el cdigo para la programacin del dispositivo. Este archivo tiene tres partes bsicas: el encabezado, la declaracin de los pines de entrada y las definiciones lgicas. Generalmente se emplea un archivo como el que se muestra en la Lista 4.5.1 para dar inicio al diseo lgico y tener una forma estandar para trabajar en CUPL. Name XXXXX; Partno XXXXX; Date Revision Designer Company Assembly Location /***************************************************************/
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

/*Entradas*/ pin 1 pin 1 pin 1 pin 1 /*Salidas*/ pin pin pin pin

= = = =

; ; ; ;

/* /* /* /*

*/ */ */ */

1 1 1 1

= = = =

; ; ; ;

/* /* /* /*

*/ */ */ */

/*Variables pin 1 pin 1 pin 1 pin 1

Intermedias = ; = ; = ; = ;

(Opcionales)*/ /* */ /* */ /* */ /* */

/***************************************************************/ /* Ecuaciones Lgicas*/ /***************************************************************/ Lista 4.5.1. Archivo de Ejemplo de Entrada en CUPL En este archivo los comentarios los grupos de caracteres "/*" y "*/" son empleados para incluir comentarios por parte del usuario, los cuales permiten organizar el archivo de una forma comprensible y especificar la funcion de ciertos tipos de instrucciones. En las siguientes secciones se indicarn algunas caractersticas a tener en cuenta para programar un PLD en CUPL y la sintaxis que se debe emplear en el archivo fuente para implementar un diseo. Asignacin de Pines La asignacin de los pines corresponde al nombramiento de los pines del dispositivo con nombres descriptivos para las entradas y salidas. Los nombres se pueden asignar de forma libre y corresponden a las variables que se emplean para definir las ecuaciones lgicas. La asignacin de pines se puede hacer de forma invividual o grupal. En la tabla 4.5.1 se indica la sintaxis que se emplea en CUPL para asignar los pines de un dispositivo programable. Observe que cada asignacin finaliza con un punto y coma (;). Sintaxis General Sintaxis Abreviada Pin 1 = Nombre; Pin [2,3] = [Nombre, Nombre2];

Pin 2 = !Nombre; Pin [2,3] = ![Nombre, Nombre2]; Pin 3 = !SET; Pin [2..3] = [Q0..3]; Tabla 4.5.1. Asignacin de Terminales El signo "!" en la asignacin de pines indica que la variable se complementa. Este signo se emplea generalmente para declarar variables activas en bajo Definicin de Variables Intermedias Las variables intermedias corresponden a variables asignadas a una ecuacin lgica pero que no representan un pin en el dispositivo. Generalmente esta variables se utilizan cuando se requiere manejar varias varibles de entra y salidas. El objetivo de declarar variables intermedias, consiste bsicamente en reducir el tamao de las ecuaciones lgicas asignadas a los pines de salida y permitir organizar el archivo de entrada de una forma comprensible. Su uso no es obligatorio en el archivo de entrada para CUPL.
Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Definicin de Ecuaciones Lgicas Las ecuaciones lgicas corresponden a las expresiones lgicas que relacionan los pines de entrada y salida. y en el archivo fuente se ubican despus de la asignacin de pines y variables intermedias. Las ecuaciones lgicas deben tener cierta sintaxis para que el programa interprete las operaciones lgicas. En la tabla 4.5.2 se relacionan los operadores lgicos con lo cuales se construyen las expresiones lgicas junto con la sintaxis que exige CUPL. Operador Funcin Formato de CUPL Formato Convencional & # ! AND OR NOT A&B A#B !A AB A+B A'

$ XOR A$B Tabla 4.5.2. Sintaxis de CUPL para operaciones lgicas La sintaxis general de las ecuaciones lgicas en CUPL es la siguiente: [!] var [.ext] = exp; Extensiones de Variables Las extensiones son atributos que se agregan a las variables en las ecuaciones lgicas y la manera de emplearlas en el archivo fuentes es mediante la sintaxis: "V.E", donde V es la variable lgica y E es la extensin. Las extensiones para las variables son empleadas para definir funciones que dependen de la configuracin fsica de las salidas del PLD. Generalmente el tipo de salidas que se pueden configurar en un PLD son salidas combinacionales, secuenciales y triestado, entre otras. En la figura 4.5.1 se muestra un diagrama ilustrativo del tipo de salidas que se pueden configurar en CUPL segn la extensin seleccionada, y un ejemplo sobre su utilizacin. Figura 4.5.1. Circuito Ilustrativo del tipo de salidas configurables en un PLD (Tomado de ATMEL - WinCUPL User's Manual) Teniendo en cuenta que las varibles lgicas pueden incluir extensiones, la sintaxis que se debe emplear para las ecuaciones lgicas es la siguiente: [!] var [.ext] = exp; donde var es la variable lgica , ext es la extensin y exp es la expresin lgica.Un sencillo ejemplo usando el software para creacin de CUPL servir para ilustrar el proceso. En CUPL existe otro tipo de sintaxis para simplificar un poco la ecuaciones lgicas. Una de ellas consiste en la utlizacin de los operadores de forma cosecutiva a varias variables. En la tabla 4.5.2 se indica como se pueden representar las expresiones lgicas de forma abreviada. Forma Convencional Forma Abreviada A3 & A2 & A1 & A0 B3 # B2 # B1 # B0 C3 $ C2 $ C1 $ C0
Ing. Luis Pacheco Cribillero

[A3, A2, A1, A0]:& [B3..B0]:# [C3, C2, C1, C0]:$

Tabla 4.5.3. Forma abreviada para representar expresiones lgicas con un mismo operador

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Existe otro tipo de sintaxis similar a la anterior que define rangos de datos. Inicialmente se debe definir un campo de la siguiente forma: FIELD entrada = [A3..A0]; Luego se escribe el rango de la ecuacin de la forma: salida = entrada:[C..F]; Esta ecuacin equivale a escribir la siguiente expresin: salida = entrada:C # entrada:D # entrada:E # entrada:F; Definicin de Alternativa de las Salidas En CUPL existen otras formas alternativas de definir las salidas. Entre ellas exiten las Tablas de Verdad, Mquinas de Estado y Estamentos Condicionales. A contnuacin de indica la sintaxis de cada uno de estos tipo de declaracin de salidas lgicas. Tablas de Verdad Como su nombre lo indica este tipo de sintaxis agrupa la informacin sobre la asociacin de entradas y salidas en forma de tabla. Para declara una tabla de verdad inicialemnte se declarar las entradas y salidas. Despus de ello se asignan los valores uno a uno de las entradas y salidas. En la Lista 4.5.2 se indica las sintaxis para un decodificador de Hexadecimal a BCD. FIELD Entrada = [Ent3..0]; FIELD Salida = [Sal3..0]; TABLE Ent => Sal { 0=> 00; 1=>01; 2=>02; 3=>03; 4=>04; 5=>05; 6=>06; 7=>07; 8=>08; 9=>09; A=>10; B=>11; C=>12; D=>13; E=>14; F=>15; } Lista 4.5.2. Sintaxis en CUPL para crear Tablas de Verdad Mquinas de Estado Este tipo de definicin permite declarar la relacin SEQUENCE lista_vars_estado { entradas y salidas mediante la definicin de mquinas PRESENT estado_n0 de estado. La sintaxis empleada para este tipo de IF (condicin1)NEXT estado_n1; definicin se ilustra en las lneas de cdigo de la Lista IF (condicin2) NEXT estado_n2 4.5.3. OUT sal_n0; Lista 4.5.3. Sintaxis en CUPL para crear Mquinas de DEFAULT NEXT estado_n0; Estado PRESENT estado_n1 Estamentos Condicionales NEXT estado_n2; Los estamentos condicionales es otro tipo de sintaxis ... que se puede emplear en CUPL para definir el diseo ... lgico. Bsicamente est sintaxis es muy similar a la un ... lenguaje de programcin de alto nivel. La sintaxis que PRESENT estado_nn soporta CUPL se relaciona en la lista 4.5.4. estamentos; CONDITION { } IF expr0 OUT var; . . IF exprn OUT var; DEFAULT OUT var; } Lista 4.5.4. Sintaxis en CUPL para crear Estamentos Condicionales

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Ejemplo de Programacin en CUPL El cdigo que se indica en la Lista 4.5.5. corresponde al texto del archivo fuente para programar un GAL16V8, que ilustra como programa funciones lgicas bsicas en CUPL. Name Funciones lgicas; Partno GAL16V8; Revision 01; Date 03/01/03; Designer J.Beltran; Company Universidad Nacional; Location X; Assembly X; Device G16V8; /******************************************************/ /* Archivo Fuente de ejemplo en CUPL para implementar funciones lgicas */ /******************************************************/ /* Definicin de las entradas */ Pin 1 Pin 2 = b; /* Definicinde

= las salidas

a; */

Pin 12 = inva; Pin 13 = invb; Pin 14 = and; Pin 15 = nand; Pin 16 = or; Pin 17 = nor; Pin 18 = xor; Pin 19 = xnor; /* Definicin de Ecuaciones Lgicas*/ inva = !a; /* Inversin de las entradas a y b*/ invb = !b; and = a & b; /* Funcin AND */ nand = !(a & b); /* Funcin NAND */ or = a # b; /* Funcin OR*/ nor = !(a # b); /* Funcin NOR */ xor = a $ b; /* Funcin XOR */ xnor = !(a $ b); /* Funcin XOR Negada*/ Lista 4.5.5. Archivo fuente de ejemplo en CUPL para implementacin de funciones lgicas Una vez se tiene el archivo fuente de un diseo lgico, el paso a seguir es compilar el archivo para generar el archivo de programacin JEDEC, el cual se emplea para programar el dispositivo. Durante el procesode compilacin del archivo fuente CUPL verifica la sintaxis del archivo e indica los posibles errores que puedan existir. Si el programa no detecta errores se genera el archivo .JED. CUPL entre sus funciones tiene un simulador con el cual se pueden comprobar las salidas. Este proceso se efecta mediante la generacin de varias entradas que comprueban los estados de las salidas para verificar las ecuaciones lgicas. La simulacin se recomienda para verificar que el diseo es correcto y que no existe ningn error. Despus de ello se puede proceder a programar el dispositivo y finalmente verificar su funcionamiento. PLD's Combinatorios

Ing. Luis Pacheco Cribillero

FACULTAD DE ELECTRNICA Y MECATRNICA

CIRCUITOS DIGITALES II

EE V

UTP

Utilizando una GAL16V8, escribir en CUPL el programa y la correspondiente simulacin, para programar este dispositivo como una ALU de 4 bits que realice las operaciones especificadas en la siguiente tabla. S2 S1 1 1 1 1 0 0 0 1 1 X S0 0 1 0 1 X OPERACIN AND OR NOT A XOR A+1

El preinforme debe incluir los siguientes archivos: *.pld: programa fuente de CUPL. *.si: archivo para simulacin. *.doc: Informacin sobre ecuaciones simplificadas y diagrama de pines *.so: Archivo que muestra los resultados de la simulacin. Opcionalmente pueden incluir el archivo JEDEC (*.jed). El da de la prctica tambin debe traer el disquete con el archivo *.jed y el dispositivo GAL16V8, el cual deben montar y probar en un entrenador, una vez haya sido programado. Contador con Detector Fotoelctrico Montar y probar un circuito para detectar el paso de objetos. El detector debe usar una pareja LedFototransistor con un alcance mnimo de 20 cms. El contador debe tener 2 dgitos decimales, con sus visualizadores y una entrada para borrado, debe contar desde 0 hasta 29. Se pueden utilizar 2 chips CD4029 en cascada.

Nota: Se deben seleccionar los valores apropiados para las resistencias R1 y R2.

Ing. Luis Pacheco Cribillero