FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Análisis y Diseño de Circuitos Secuenciales Teoría de Máquinas de Estado (FSM) La teoría de máquinas de estado es el nombre con el que se conocen los métodos de Análisis y Diseño de Circuitos Secuenciales Sincrónicos. Esta lección constituye una introducción al tema donde se definirá lo que son las máquinas de estado y los conceptos básicos para entender la metodología de Análisis y Diseño de Circuitos Secuenciales. Las máquinas 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 algún propósito especial. Los registros y contadores con entradas asincrónicas son ejemplos de este tipo de sistemas secuenciales. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Máquinas de Estado de Mealy y Moore Los circuitos secuenciales se clasifican dentro de la categoría conocida como máquinas de estado, de la cual se distinguen comúnmente dos tipos: o Máquina de Mealy: En esta máquina 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 máquina se muestra en la figura donde se observa que las salidas del sistema son tanto sincrónicas como asincrónicas. o Máquina de Moore: Las salidas solo dependen del estado interno y de cualquier entrada sincronizada con el circuito, como se ve en la figura: Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP donde las salidas del sistema son unicamente sincrónicas. Un ejemplo de este tipo de máquinas 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. Con base en el circuito de la figura se dará una descripción de las herramientas básicas que son empleadas para el Análisis y Diseño de Circuitos Secuenciales. Entre estas herramientas se encuentran las ecuaciones Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP lógicas, las de los diagramas de estado, las tablas de estado, las tablas de transición y los mapas de Karnaugh. Ecuaciones Lógicas Las ecuaciones lógicas son funciones que definen la relación existente entre los estados de entrada y los estados de salida del sistema. Para determinar las ecuaciones lógicas de la máquina de estados de la figura inicialmente se deben identificar los estados siguientes. Estos estados corresponden a aquellos que ocurren después de una transición en la señal 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 lógicas para los flip-flops A y B del circuito de la figura serían las siguientes: A = DA = A·X + B·X B = DB= A’·X La salida Y esta dada por: Y = (A + B)·X’ Observando esta última ecuación se concluye que la salida (Y) es función del estado Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP presente del sistema (A y B) y de la entrada asincrónica (X). Las ecuaciones lógicas 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 expresión y representan las variables dependientes del sistema. El estado de estas variables cambia en el momento que ocurra un transición en la señal de reloj. Los estados actuales y entradas del sistema. Agrupados al lado derecho de la expresión, constituyen las variables independientes, las cuales pueden o no cambiar en sincronía con el sistema. Cuando las ecuaciones de estado contienen varios términos, se pueden simplificar empleando metodologías de reducción de términos como Algebra de Boole, Mpas de Karnaugh o mediante el algoritmo de QuineMcCluskey. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Estados Entrada Estados Salida actuales siguientes A B X A B Y 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0 1 Tablas de Estado Una tabla de estado es un listado que contiene la secuencia de los estados de entradas, estados internos y salidas del sistema, considerando todas las posibles combinaciones de estados actuales y entradas. Las tablas de estado por lo general se dividen en tres partes: estados actuales, estados siguientes y salidas, tal como se muestra en la Tabla de estado. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP La tabla de estado para un circuito secuencial con m flip-flops y n entradas tiene 2m+n filas. El estado siguiente tiene m columnas, y el número de columnas depende del número de salidas. Existe una forma más conveniente de organizar la información 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 Estado Actual Estado Siguiente Salida X=0 X=1 X=0 X=1 AB AB AB Y Y 00 00 01 0 0 01 00 11 1 0 10 00 10 1 0 11 00 10 1 0 tiene tres secciones: estados actuales, estados siguientes y salidas, sin embargo los estados se agrupan dependiendo del valor de las entradas. La sección de estados actuales agrupa los estados que ocurren antes de una Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP transición en la señal de reloj, la sección de estados siguientes lista aquellos que ocurren después de la transición del reloj y la sección de salidas reúne los estados que se dan en el mismo instante de los estados actuales. Haciendo un análisis de la operación del circuito de la figura se puede observar lo siguiente: Cuando la variable X=0 los estados actuales A y B cambian a 0 después de la transición 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 información de la tabla. Diagramas de Estado Un diagrama de estados es una representación gráfica 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 círculos y líneas. Los círculos representan los estados del circuito secuencial y Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP cada uno de ellos contiene un número que identifica su estado. Las líneas indican las transiciones entre estados y se marcan con dos números separados por un (/), estos dos números corresponden a la entrada y salida presentes antes de la transición. A manera de ejemplo observe la línea que une los estados 00 y 01 en el diagrama de estado de la figura anterior. Esta línea 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 después de que ocurra una transición en la señal de reloj el estado cambia a 01. Las líneas que salen y regresan al mismo círculo indican que no hay cambio en el estado, cuando se presentan la entrada y salida indicadas. Transiciones de Salida Qi Qi+1 0 0 0 1 1 0 1 1 Ing. Luis Pacheco Cribillero Entradas al flip-flop J K 0 X 1 X X 1 X 0 FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Tablas de Transición de flip-flops Las tablas de transición se usan en conjunto con las de estado y representan la tabla de verdad de los flip-flops con los cuales se desea implementar el circuito secuencial. La tabla contiene los estados actuales y siguientes según el estado de las entradas de los flip-flops. La tabla anterior corresponde a la tabla de transición del flip-flop JK. 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 información 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 condición de no importa, 1 o 0), después de un pulso de reloj en el flip-flop la salida cambia al estado siguiente Q=1. Estado Actual Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 Ing. Luis Pacheco Cribillero Estado Siguiente Q2 Q1 Q0 0 0 1 0 1 0 0 1 1 Entradas de los flip-flop J2 K2 J1 K1 J0 K0 0 X 0 X 1 X 0 X 1 X X 1 0 X X 0 1 X FACULTAD DE ELECTRÓNICA Y MECATRÓNICA 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 0 CIRCUITOS DIGITALES II 0 0 1 1 0 0 1 0 1 0 1 X X X X X 0 0 0 1 EE V X 0 1 X X 1 X X 0 1 UTP X 1 X 1 X 1 X 1 X 1 Mapas de Karnaugh Generalmente la tablas de estado y de transición de los flip-flops se fusionan en una sola para agrupar la información de tal forma que permitan construir los Mapas de Karnaugh para simplificar las funciones lógicas. 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 después de una transición del reloj. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Los Mapas de Karnaugh se emplean para definir la lógica de las entradas de los flipflops 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 lógicas. En la figura se observa que la expresión correspondiente a la entrada J1 es: J1 = Q 0 Esta expresión indica que en el circuito lógico la salida Q0 debe ir conectada a la entrada J1. Análisis y Diseño de Circuitos Secuenciales Análisis y Diseño de Circuitos Secuenciales Sincrónicos La gran mayoría de los circuitos digitales contienen flip-flops y compuertas para realizar Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP funciones específicas. El diseño de estos circuitos inicia a partir de las especificaciones y finaliza con las funciones lógicas, de las cuales se obtiene el circuito lógico. Inicialmente se debe crear una tabla de estado o representación equivalente, para identificar la secuencia de estados que deseada. Luego de seleccionar el número y tipo de flip-flops con los cuales se desea hacer el diseño, se deduce la lógica combinatoria necesaria para generar la secuencia de estados. Los circuitos secuenciales se pueden analizar y diseñar siguiendo un procedimiento claramente definido que consiste en los siguientes pasos: o Asignación de estados o Construcción del diagrama de transición o Elaboración de la tabla de estados o Obtención de ecuaciones o funciones lógicas o Realización de circuitos lógicos Para explicar este método se desarrollará un ejemplo aplicado a un diseño particular. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Ejemplo: Diseñar el circuito secuencial del proceso que cumple el diagrama de estados de la figura: Paso 1. Asignación de estados: el proceso tiene cuatro estados, una entrada y no tiene salidas (se pueden considerar como Sali das las de los flipflops). Para represen tar los cuatro estados se usarán dos flip-flops A y B de tipo JK. Y la entrada será X. Paso 2. Contrucción del diagrama de transición o de estado La figura anterior corresponde al diagrama de transición. 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, después 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. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Paso 3. Elaboración de la tabla de estados Estado Estado Entrada Excitaciones Actual Siguiente X A B A B JA KA JB KB 0 0 0 0 0 0 X 0 X 1 0 0 0 1 0 X 1 X 0 0 1 1 0 1 X X 1 1 0 1 0 1 0 X X 0 0 1 0 1 0 X 0 0 X 1 1 0 1 1 X 0 1 X 0 1 1 1 1 X 0 X 0 1 1 1 0 0 X 1 X 1 A partir del diagrama de estados y de la tabla de transición del flip-flop JK se puede construir la tabla de estados. Para la simplificación de los circuitos combinatorios es conveniente que se presenten condiciones de "no importa", ya que estas permiten simplificar las funciones lógicas y por tanto el tamaño del circuito lógico. Paso 4. Obtención de ecuaciones o funciones lógicas. En este paso se obtienen las funciones lógicas para las entradas de los flip-flops (JA, KA, JB y KB) y el objetivo es deducir la lógica Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP combinatoria de estado siguiente, mediante el uso de Mapas de Karnaugh. A continuación se muestran los Mapas de Karnaugh y las funciones lógicas correspondientes. Paso 5. Realización de circuitos lógicos Este es el último paso del diseño, y consiste en implementar la lógica combi nacional a partir de las ecuacio nes lógicas obte nidas en el paso anterior Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP para las entradas J y K de los flip-flops. Las conexiones correspondientes, se efectúan mediante el uso de compuertas e inversores. Diseño de Circuitos Secuenciales con flipflops D El diseño del circuito anterior se hizo con flipflops JK. En esta sección veremos como se realiza el diseño 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 razón en la tabla de estado no se requiere una columna independiente para las excitaciones. En el siguiente ejemplo se verá como realizar el diseño de circuitos secuenciales con flip-flops D. Entrada X 0 1 0 Ing. Luis Pacheco Cribillero Estado actual A B 0 0 0 0 0 1 Estado Salida siguiente A(DA) B(DB) Y 0 0 0 0 1 1 1 0 0 FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 1 0 1 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 0 Ejemplo Realizar el diseño del circuito lógico correspondiente a la tabla de estado. Observe que esta tabla es la misma del ejemplo anterior, pero adicionalmente se agregó una salida (Y). Paso 1. Asignación de estados Este proceso al igual que el ejemplo anterior tiene cuatro estados de dos bits (AB), una entrada (X) y una salida (Y). Para representar los cuatro estados se usarán dos flip-flops D identificados como A y B. Paso 2. Construcción del diagrama del transición o de estado El diagrama de transición es el mismo del ejemplo anterior, excepto que ahora se tiene en cuenta la salida (Y). En la figura se observa el diagrama de Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP estado. Paso 3. Elaboración de la tabla de estado. Para este ejemplo inicialmente se dió la tabla de estados. Paso 4. Obtención de ecuaciones o funciones lógicas. En este paso se deben obtener las funciones lógicas 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 lógicas correspondientes. Paso 5. Realización de circuitos lógicos Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Con las ecuaciones lógicas obtenidas en el paso anterior se puede implementar el circuito lógico. Las conexiones correspondientes, se efectúan mediante el uso de compuertas e inversores y en la figura 7.2.6 se muestra el diseño del circuito. Estados no usados Durante el diseño de los circuitos secuenciales para simplificar las representaciones lógicas, 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 Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP todas las posibles combinaciones de las variables A, B, C y X, Note que en esta tabla hay seis estados que no están 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. Estad Estado o Entra Salid siguien Excitaciones actua da a te l ABCX A B C J K J K J K Y A A B B C C 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" Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 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 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. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Como conclusión sobre esta sección, podemos decir que es recomendable incluir los estados no usados en el diseño de los circuitos secuenciales. Esto implica una reducción en las expresiones lógicas y por consiguiente en el tamaño del circuito, que en otros términos representará obviamente un Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP menor tiempo de desarrollo y costo de implementación. Se plantea como ejercicio hacer el diagrama lógico correspondiente a las ecuaciones halladas a partir de los mapas de Karnaugh de la figura y hacer el diseño del circuito secuencial sin tener en cuenta los estados no usados para comparar los dos casos y notar las diferencias. PLD's Secuenciales PLD's Secuenciales (Control Simplificado para Máquina Lavadora) El objetivo de esta práctica es el de diseñar y probar un circuito de control para una lavadora, pero haciendo algunas Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP simplificaciones que se explican al final, con el fin de que el circuito pueda programarse dentro de una GAL16V8, dispositivo que sólo 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. Además se dispone de una señal de reloj (CLK) externa que suministra un periodo de un minuto. Salidas: (5) –Válvulas solenoides de agua caliente (CAL), de agua fría (FRI) y de drenaje (DRE). Motor (MOT). La última salida, VEL, cuando vale 0 acopla el motor para agitación Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 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. Operación de la lavadora Al presionar el pulsador de arranque la lavadora empieza una etapa de llenado, durante la cual mantiene abiertas las válvulas de agua fría y de agua caliente hasta cuando el agua alcanza el nivel del detector NIA y se vuelven a cerrar las dos válvulas. Luego la máquina pasa la etapa de lavado, agitando la ropa durante un ciclo de reloj, pasando después al drenado del tanque, mediante la apertura de la respectiva válvula. En el flanco de reloj que sigue a la activación del detector NIB, que indica desocupación 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 continúa abierta la válvula de drenaje y se energiza el motor acoplado a la transmisión de alta velocidad. Si durante esta etapa se abre la tapa de la lavadora, la máquina debe regresar Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP la etapa anterior, si ello no ocurre continúa el proceso normal. Enseguida se vuelve a llenar el tanque, pero esta vez sólo se abre la válvula de agua fría, que permanece abierta hasta cuando se activa el detector NIA. Con el siguiente flanco de reloj la máquina enjuaga durante un ciclo de reloj. Por último la máquina 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 estén activasen ese momento deben desactivarse y la máquina 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 significaría en la práctica que la ropa tendría que sacarse empapada de la lavadora y exprimirse manualmente. 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 Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP control defina tiempos diferentes a los de un período 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 envía una señal al circuito de control, cada vez que su salida llega a cero. 3. Si la máquina 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 señal de reloj. Igualmente si se pulsa PAR inmediatamente debiera pararse la máquina. De la misma forma, en las etapas de llenado las válvulas debieran cerrarse apenas se activa el detector de nivel alto. La última simplificación se tiene que hacer porque el CUPL, versión 4.8, aparentemente sólo soporta máquinas de estado de Moore. Las dos primeras simplificaciones se deben realizar por la escasez de flip–flops en el dispositivo a utilizar, el GAL16V8. Dispositivos Lógicos Programables Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Una forma rápida y directa de integrar aplicaciones se logra con la lógica programable, la cual permite independizar el proceso de fabricación del proceso de diseño fuera de la fábrica de semiconductores. El sistema desplaza los errores de alambrado al campo exclusivo de la programación. Los sistemas con estas características se pueden borrar y reprogramar en casos de cambios o revisiones. El resultado es la reducción del espacio físico de la aplicación. El diseño está basado en bibliotecas y mecanismos específicos de mapeado de funciones. En el capítulo se verán dispositivos como los PAL y GAL por la facilidad de manejo y coste razonable. El lenguaje CUPL se verá por su amplia difusión y empleo en aplicaciones. Dispositivos Lógicos Programables Diseño Lógico Hoy Día La mayor parte de los diseños de nivel de sistema incorporan diversos dispositivos, como son las memorias RAM, ROM, controladores, procesadores, etc., que se interconectan mediante gran cantidad de Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP dispositivos lógicos de propósito general, frecuentemente denominados lógica de unión ("glue logic"). En los últimos años, los dispositivos PLD (Programmable Logic Device) han comenzado a reemplazar muchos de los antiguos dispositivos de unión, SSI y MSI. El uso de dispositivos PLD proporciona una reducción en el número de circuitos integrados. Por ejemplo, en los sistemas de memoria de las computadoras, los PLD pueden utilizarse para decodificar direcciones de memoria y generar señales de escritura en memoria. En muchas aplicaciones, los PLD y, en concreto, las matrices lógicas programables (PAL, Programmable Array Logic) y las matrices lógicas genéricas (GAL, Generic Array Logic) pueden emplearse para reemplazar dispositivos lógicos SSI y MSI, consiguiendo con ello una reducción de etapas y de los costos. Por las razones anteriores el diseño lógico hoy día se realiza con PLDs. Un PLD está formado por una matriz de puertas AND y Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP puertas OR, que se pueden programar para conseguir funciones lógicas específicas. El diseño con PLDs señala las siguientes ventajas en relación a la lógica cableada: o Economía. o Menos espacio en los impresos. o Se mantiene la reserva del diseño. o Se requiere tener menos inventarios que con circuitos estándar SSI, MSI. o Menos alambrado. Tipos de PLD 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 programación. 7. PLDs secuenciales. Además de los arreglos de compuertas, incluyen flip – flops para programar funciones secuenciales como contadores y máquinas de estado(ver capítulo 8). Estructura de los Dispositivos Lógicos Programables Básicos Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Los PLD se clasifican de acuerdo con su estructura, la cual es básicamente la ordenación funcional de los elementos internos que proporciona al dispositivo sus características de operación específicas. Memoria programable de sólo 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 lógico (Ver Fig 4.1.1.). Figura 4.1.1. Diagrama de bloques de una PROM (Programmable Read-Only Memory). Arreglo Lógico 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.). Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Figura 4.1.2. Diagrama de bloques de una PLA (Programmable Logic Array). Los dispositivos lógicos programables como las PAL y las GAL se verán en la siguiente lección. En la actualidad existen soluciones con Dispositivos Lógicos programables complejos que combinan arquitectura superior y software de gran alcance, ofreciendo un nivel sin precedente en la flexibilidad del diseño. Herramientas Computacionales Utilizadas en las Metodologias de Diseño Descendentes (Top-Down) En el diseño Top - Down se captura una idea en un nivel de abstracción alto y se implementa a partir de ésta descripción, en un proceso hacia abajo incrementando el nivel de detalle según lo requerido. La figura 4.3.1. muestra la forma de diseño Top- Down. En el primer nivel de la figura se aprecia un sistema inicial dividido en módulos, los cuales se dividen sucesivamente hasta llegar a los Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP componentes básicos del circuito o elementos primarios. Estos elementos se enmarcan en un cuadrado con la líneas más gruesa. Los métodos de diseño se basan en programas computacionales conocidos como herramientas de automatización del diseño electrónico (EDA Tools), las cuales sobresalen por ofrecer una reducción significativa en el tiempo del diseño. Figura 4.2.1. Metodologia De Diseño Top Down Las herramientas siguen el diagrama de flujo de la figura 4.4.2. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 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 diseño:En esta etapa se realiza una descripción del circuito, para la cual existen varias alernativas, a. Captura Esquemática: Dibujo del circuito mediante interfaz gráfica, puede ser un diagrama de bloques. b. Mediante lenguajes de descripción HDL como VHDL, Verilog, Abel y CUPL. c. Diagramas de transición de estados. d. Formas de onda –Tablas de verdad. 3. Simulación HDL (Opcional): Simula el comportamiento del circuito que se acaba de describir antes de la síntesis. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 4. Síntesis lógica: Consiste en tomar la descripción HDL y a partir de ella, generar y simplificar las ecuaciones lógicas correspondientes al circuito descrito. 5. Simulación funcional: Simula las ecuaciones lógicas, sin tener en cuenta los retardos. 6. Implementación del diseño: Los pasos a seguir dependen del tipo de PLD que se esté utilizando en el diseño. Trazado del mapa, Colocación y enrutamiento, Creación del archivo para la programación del dispositivo. Revisa si el circuito se adapta al chip; No. salidas, No. de términos productos por salida. 7. Simulación temporal: Después de la implementación ya se conoce como queda programado el circuito y se puede realizar una simulación teniendo en cuenta los retardos. 8. Programación: La implementación genera un archivo JEDEC que indica el estado de las conexiones. Este archivo se usa para programar (o quemar el chip). Ventajas del Diseño Top - Down Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP La metodologia de diseño descendente disminuye el tiempo de diseño. Por medio de los programas CAD para diseño 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 realización de las simulaciones no es necesario sólo un prototipo, ya que este generalmente funciona; antes se debía repetir el proceso 2 o 3 veces hasta que el prototipo funcionara. Las últimas herramientas de diseño electrónico permiten implementar de forma automática la metodología de diseño Top Down. Lenguajes de Descripción de Hardware (HDL - Hardware Description Language) Los lenguejes HDL permiten realizar el primer paso de la metodología del diseño descendente. Se describen en un lenguaje de alto nivel el comportamiento requerido del circuito a diseñar. Esta descripción se puede hacer mediante tablas de verdad, lista de transiciones de estados, ecuaciones lógicas. Con base a la descripción, el programa realiza los siguientes pasos: Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 9. Sintetiza y simplifica las ecuaciones lógicas. 10. Simula las ecuaciones. 11. Sintetiza el circuito lógico. 12. Simula el circuito lógico. 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 tecnología, Ejemplo: FPGA, transistores 2.5m ., 1.2 m . 15. Facilita la comunicación entre los diseñadores. 16. Facilita el uso de las partes de un diseño en otros (Reutilización). 17. Es posible verificar el funcionamiento del sistema dentro del proceso de diseño sin necesidad de implementar el circuito. 18. Las simulaciones del diseño, antes de que este sea implementado, permiten probar la arquitectura del sistema para tomar decisiones en cuanto a cambios en el diseño. 19. Las herramientas de síntesis tienen la capacidad de convertir una descripción Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP hecha en un HDL, VHDL por ejemplo, a compuertas lógicas y además, optimizar dicha descripción de acuerdo a la tecnología utilizada. 20. Las descripciones en un HDL proporcionan documentación de la funcionalidad de un diseño independientemente de la tecnología utilizada. 21. Una descripción realizada en un HDL es más fácil de leer y comprender que los nestlist o circuitos esquemáticos. 22. Un circuito hecho mediante una descripción en un HDL puede ser utilizado en cualquier tipo de dispositivo programable capaz de soportar la densidad del diseño. Es decir, no es necesario adecuar el circuito a cada dispositivo porque las herramientas de síntesis se encargan de ello. Lenguajes HDL más populares En la actualidad existen diversas herramientas de diseño para integrar sistemas de gran complejidad. Los lenguajes de descripción de hardware constituyen una Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP opción de diseño de soluciones de sistemas electrónicos. ABEL El lenguaje ABEL es el más utilizado en los PLDs. El lenguaje ABEL facilita la programación de PLDs combinatorios y secuenciales. Un circuito en ABEL se puede describir en forma de ecuación lógicas, tabla de verdad o en transición 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 según 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 aplicación. 27. Genera el archivo JEDEC para la programación del PLD. VHDL El VHDL es un lenguaje de descripción y modelado diseñado para descibir en forma entendible la funcionalidad y la organización del hardware de los sistemas digitales y otros Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP componentes. VHDL maneja una sintaxis amplia y flexible. El lenguaje VHDL permite el diseño 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 abstracción en la implementación del diseño. CUPL El lenguaje CUPL se describirá en la leccion 5 de este capítulo. Herramientas para la Automatización del Diseño Electrónico (EDA Tools) Las herramientas EDA ("Electronic Design Automation") son las herramientas de hardware y software utilizadas en el diseño de sistemas electrónicos. El diseño de hardware tiene un inconveniente que no existe en el desarrollo de software. El problema es el alto costo en el ciclo de diseño, desarrollo del prototipo, pruebas y reinicio del ciclo. La etapa de costo más elevado es el prototipo. Por necesidad del mercado, se impone la reducción de costos en esta etapa, con el fin de incluir la fase de desarrollo del prototipo al final del proceso, evitando la repetición de varios prototipos, Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP razón por la cual se encarece el ciclo. La introducción de la fase de simulación y verificación de circuitos utilizando herramientas EDA, hace no necesaria la comprobación del funcionamiento del circuito por medio de la implementación física del prototipo. Las herramientas EDA están presentes en todas las fases del ciclo de diseño de circuitos. Primero en la fase de generación del sistema que puede representarse en un diagrama esquemático, en bloques o de flujo. Se encuentra también la fase de simulación y comprobación de circuitos, donde diferentes herramientas permiten verificar el funcionamiento del sistema. Estas simulaciones pueden ser de eventos, funcionales, digitales o eléctricas, de acuerdo al nivel requerido. Después están las herramientas EDA utilizadas en la síntesis y programación de circuitos digitales en dispositivos lógicos programables. Existen, además, las herramientas EDA orientadas a la fabricación de circuitos. En el caso del diseño de hardware estas herramientas sirven para la realización de PCBs ("Printed Circuit Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Boards" o placas de circuito impreso), o para desarrollar circuitos integrados de aplicación especifica como ASICs ("Aplication Specific Integrated Circuits"). Las principales características y finalidad de algunas herramientas EDA que intervienen en el diseño de circuitos son: 1. Lenguajes de Descripción de Circuitos. 2. Diagramas Esquemáticos. 3. Grafos y Diagramas de Flujo. 4. Simulación de Eventos. 5. Simulación Funcional. 6. Simulación Digital. 7. Simulación Eléctrica. 8. Diseño de PCBs. 9. Diseño de Circuitos Integrados. 10. Diseño con Dispositivos Programables. Para la automatización del diseño electrónico se utilizan herramientas EDA. Ventajas de la metodologia de diseño que usa herramientas EDA Entre las ventajas de la metodologia de diseño con el empleo de herramientas EDA está la reducción del diseño, la posibilidad de dividir un proyecto en módulos que se desarrollan por separado, la independencia Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP del diseño con respecto a la tecnología, la posibilidad de la reutilización de los diseños, la optimización de los circuitos y las simulaciones posibles con las herramientas. Con la aparición de herramientas EDA cada vez más complejas, que integran en el mismo marco de trabajo las herramientas de descripción, síntesis, simulación y realización; apareció la necesidad de disponer de un método de descripción de circuitos que permitiera el intercambio de información entre las diferentes herramientas que componen el ciclo de diseño. En principio se utilizó un lenguaje de descripción que permitía, 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 diseño. Principios y Aplicaciones de los Dispositivos Lógicos Programables como las PALs y las GALs. Una matriz programable es una red de conductores distribuidos en filas y columnas Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP con un fusible en cada punto de intersección. Las matrices pueden ser fijas o programables. Todos los PLD están formados por matrices programables. Estrucutura Interna de un PLD La estructura básica de un PLD etá formada por un arreglo de puetas AND y OR interconectadas a través de fusibles. Matriz AND La matriz AND está formada por una red de compuertas AND conectadas a través conductores y fusibles en cada punto de intersección. Cada punto de intersección 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 conexión entre una fila y una columna, el fusible queda intacto y en caso de no requerirse la conexión, el Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP fusible se abre en el proceso de programación. La figura muestra 4.4.2 un arreglo AND programado. Figura 4.4.2. Arreglo AND Programado. Matriz OR La matriz OR está formada por una red de compuertas OR conectadas a través conductores y fusibles en cada punto de intersección. 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. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Figura 4.4.4. Arreglo OR Programado. Los dispositivos lógicos programables que se usan más comúnmente para la implementación lógica son la PAL y la GAL. Lógica 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 utilización de dos matrices programables y la mayor complejidad del circuito. La PAL básica está formada por una matriz AND programable y una matriz OR fija con la lógica de salida (Ver figura 4.4.5). Esta estructura permite implementar cualquier suma de productos lógica con un número de variables definido, sabiendo que cualquier función lógica puede expresarse como suma de Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V productos. La PAL se implementa tecnología bipolar (TTL o ECL). UTP con Figura 4.2.5. Diagrama de bloques de una PAL (Programmable Logic Array) Nomenclatura de una PAL Los líderes en fabricación de PLDs, Texas Instruments y AMD, tienen una notación 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. Códigos Tipos de Salidas L Combinatoria con nivel bajo activo. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP H Combinatoria con nivel alto activo. R Registro. RA Registro asíncrono. X Registro O exclusivo. V Vesátil. M Macrocélula. 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 Lógica Genérica (GAL, Generic Array Logic) La GAL se forma con una matriz AND reprogramable y una matriz OR fija , con una salida lógica programable. La figura 4.4.7. muestra el diagrama de bloques de una GAL. Esta estructura permite implementar cualquier expresión lógica suma de productos con un número de variables limitado. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA 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 tecnología ECMOS (Electrically Erasable CMOS, CMOS borrable eléctricamente). En la figura 4.4.8. se ilustra la estructura básica 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 eléctricamente borrable (E2CMOS) en cada punto de intersección, 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 tensión mayor a VDD (alta) en la compuerta no flotante. Al aplicar esta tensión el dieléctrico conduce y la compuerta flotante Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP se carga negativamente, dejando en operación normal siempre abierto el transistor. Figura 4.4.8. Estructura Básica 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. Programación de una GAL (Generic Array Logic). El borrado se puede hacer de dos formas: o Con luz ultravioleta(UV): exponiendo el transistor de 5 a 20 minutos a luz UV, el dieléctrico conduce y permite la descarga de la compuerta flotante. Para Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP este borrado el chip lleva una ventana de cuarzo transparente. o Borrado eléctrico: Es el más usado hoy en día. La capa que aisla la compuerta flotante es más delgada. Al aplicar una tensión alta con polaridad contraria , la compuerta flotante se descarga porque el dieléctrico conduce. Las ventajas más importantes de esta técnica son una descarga rápida, 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 tamaño de la matriz, en el tipo de OLMC (Las macroceldas Lógicas de Salida que contienen circuitos lógicos programables que se pueden configurar como entrada o salida combinacional y secuencial) y en los parámetros de funcionamiento, tales como velocidad y disipación de potencia. Referencia Númer tPD ICC Característica o de (mA s Pines ) GAL16V8A 20 10 55, E2CMOS PLD Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA GAL18V10 20 GAL22V8A 24 GAL22RA1 24 0 GAL22V10 24 GAL26CV1 28 2 GAL6001 Ing. Luis Pacheco Cribillero 24 CIRCUITOS DIGITALES II , 15 , 25 15 , 20 10 , 15 , 25 15 , 20 10 , 15 , 25 15 , 20 30 , EE V UTP 115 Genérica 115 E2CMOS PLD Universal 55, E2CMOS 115 Genérica PLD 115 E2CMOS PLD Universal 130 E2CMOS PLD Universal 130 E2CMOS PLD Universal 150 E2CMOS FPLA FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 35 ispGAL16Z 24 30 190 E2CMOS PLD 8 , Programable 35 en Circuito Tabla 4.2.2. Familias GAL del fabricante Lattice Programación en CUPL En el medio electrónico 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 lección se pretende dar una introducción a la programación de PLDs utilizando este compilador dejando por parte del estudiante la profundización en el tema. CUPL es una Herramienta de programación para PLDs y su nombre proviene de la sigla en inglés de Compiler Universal Programmable Logic , la cual traduce Compilador Universal para Lógica Programable. Este compilador ofrece varias características que permiten desarrollos basados en la metodología Top-Down y puede generar archivos de programación para Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP una gran variedad de dispositivos programables. La programación en este Software se efectúa mediante la creación de un archivo de texto que contiene el código para la programación del dispositivo. Este archivo tiene tres partes básicas: el encabezado, la declaración de los pines de entrada y las definiciones lógicas. Generalmente se emplea un archivo como el que se muestra en la Lista 4.5.1 para dar inicio al diseño lógico y tener una forma estandar para trabajar en CUPL. Name XXXXX; Partno XXXXX; Date Revision Designer Company Assembly Location /**************************************************** ***********/ /*Entradas*/ pin 1 Ing. Luis Pacheco Cribillero = ; /* */ FACULTAD DE ELECTRÓNICA Y MECATRÓNICA pin pin pin CIRCUITOS DIGITALES II EE V UTP 1 1 1 = = = ; ; ; /* /* /* */ */ */ /*Salidas*/ pin 1 pin 1 pin 1 pin 1 = = = = ; ; ; ; /* /* /* /* */ */ */ */ /*Variables pin 1 pin 1 pin 1 pin 1 Intermedias = ; = ; = ; = ; (Opcionales)*/ /* */ /* */ /* */ /* */ /**************************************************** ***********/ /* Ecuaciones Lógicas*/ /**************************************************** ***********/ 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 Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP cuales permiten organizar el archivo de una forma comprensible y especificar la funcion de ciertos tipos de instrucciones. En las siguientes secciones se indicarán algunas características a tener en cuenta para programar un PLD en CUPL y la sintaxis que se debe emplear en el archivo fuente para implementar un diseño. Asignación de Pines La asignación 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 lógicas. La asignación 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 asignación finaliza con un punto y coma (;). Sintaxis General Sintaxis Abreviada Pin [2,3] = [Nombre, Pin 1 = Nombre; Nombre2]; Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Pin 2 = Pin [2,3] = ![Nombre, !Nombre; Nombre2]; Pin 3 = !SET; Pin [2..3] = [Q0..3]; Tabla 4.5.1. Asignación de Terminales El signo "!" en la asignación de pines indica que la variable se complementa. Este signo se emplea generalmente para declarar variables activas en bajo Definición de Variables Intermedias Las variables intermedias corresponden a variables asignadas a una ecuación lógica 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 básicamente en reducir el tamaño de las ecuaciones lógicas 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. Definición de Ecuaciones Lógicas Las ecuaciones lógicas corresponden a las expresiones lógicas que relacionan los pines de entrada y salida. y en el archivo fuente se Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP ubican después de la asignación de pines y variables intermedias. Las ecuaciones lógicas deben tener cierta sintaxis para que el programa interprete las operaciones lógicas. En la tabla 4.5.2 se relacionan los operadores lógicos con lo cuales se construyen las expresiones lógicas junto con la sintaxis que exige CUPL. Formato Formato Operador Función de CUPL Convencional & AND A&B A·B # OR A#B A+B ! NOT !A A' $ XOR A$B Tabla 4.5.2. Sintaxis de CUPL para operaciones lógicas La sintaxis general de las ecuaciones lógicas en CUPL es la siguiente: [!] var [.ext] = exp; Extensiones de Variables Las extensiones son atributos que se agregan a las variables en las ecuaciones lógicas y la manera de emplearlas en el archivo fuentes es mediante la sintaxis: "V.E", donde V es la variable lógica y E es la extensión. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Las extensiones para las variables son empleadas para definir funciones que dependen de la configuración física 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 según la extensión seleccionada, y un ejemplo sobre su utilización. 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 lógicas pueden incluir extensiones, la sintaxis que se debe emplear para las ecuaciones lógicas es la siguiente: [!] var [.ext] = exp; Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP donde var es la variable lógica , ext es la extensión y exp es la expresión lógica.Un sencillo ejemplo usando el software para creación de CUPL servirá para ilustrar el proceso. En CUPL existe otro tipo de sintaxis para simplificar un poco la ecuaciones lógicas. Una de ellas consiste en la utlización de los operadores de forma cosecutiva a varias variables. En la tabla 4.5.2 se indica como se pueden representar las expresiones lógicas de forma abreviada. Forma Convencional Forma Abreviada A3 & A2 & A1 & A0 [A3, A2, A1, A0]:& B3 # B2 # B1 # B0 [B3..B0]:# C3 $ C2 $ C1 $ C0 [C3, C2, C1, C0]:$ Tabla 4.5.3. Forma abreviada para representar expresiones lógicas con un mismo operador 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 ecuación de la forma: Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP salida = entrada:[C..F]; Esta ecuación equivale a escribir la siguiente expresión: salida = entrada:C # entrada:D # entrada:E # entrada:F; Definición de Alternativa de las Salidas En CUPL existen otras formas alternativas de definir las salidas. Entre ellas exiten las Tablas de Verdad, Máquinas de Estado y Estamentos Condicionales. A contnuación de indica la sintaxis de cada uno de estos tipo de declaración de salidas lógicas. Tablas de Verdad Como su nombre lo indica este tipo de sintaxis agrupa la información sobre la asociación de entradas y salidas en forma de tabla. Para declara una tabla de verdad inicialemnte se declarar las entradas y salidas. Después 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]; Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP 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 Máquinas de Estado SEQUENCE lista_vars_estado { PRESENT estado_n0 IF (condición1)NEXT estado_n1; Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Este tipo de definición IF (condición2) permite declarar la relación NEXT estado_n2 entradas y salidas OUT sal_n0; mediante la definición de DEFAULT máquinas de estado. La NEXT estado_n0; sintaxis empleada para PRESENT este tipo de definición se estado_n1 ilustra en las líneas de NEXT código de la Lista 4.5.3. estado_n2; Lista 4.5.3. Sintaxis en ... CUPL para crear Máquinas ... de Estado ... Estamentos Condicionales PRESENT Los estamentos estado_nn condicionales es otro tipo estamentos; de sintaxis que se puede } emplear en CUPL para definir el diseño lógico. Básicamente está sintaxis es muy similar a la un lenguaje de programción de alto nivel. La sintaxis que soporta CUPL se relaciona en la lista 4.5.4. CONDITION { IF expr0 OUT var; . . Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP IF exprn OUT var; DEFAULT OUT var; } Lista 4.5.4. Sintaxis en CUPL para crear Estamentos Condicionales Ejemplo de Programación en CUPL El código que se indica en la Lista 4.5.5. corresponde al texto del archivo fuente para programar un GAL16V8, que ilustra como programa funciones lógicas básicas en CUPL. Name Funciones lógicas; Partno GAL16V8; Revision 01; Date 03/01/03; Designer J.Beltran; Company Universidad Nacional; Location X; Assembly X; Device G16V8; Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP /**************************************************** **/ /* Archivo Fuente de ejemplo en CUPL para implementar funciones lógicas */ /**************************************************** **/ /* Definición de las entradas */ Pin 1 = Pin 2 = b; /* Definiciónde 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; /* Definición de Ecuaciones Lógicas*/ inva = !a; /* Inversión de las entradas a y b*/ invb = !b; and = a & b; /* Función AND */ nand = !(a & b); /* Función NAND */ Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP or = a # b; /* Función OR*/ nor = !(a # b); /* Función NOR */ xor = a $ b; /* Función XOR */ xnor = !(a $ b); /* Función XOR Negada*/ Lista 4.5.5. Archivo fuente de ejemplo en CUPL para implementación de funciones lógicas Una vez se tiene el archivo fuente de un diseño lógico, el paso a seguir es compilar el archivo para generar el archivo de programación JEDEC, el cual se emplea para programar el dispositivo. Durante el procesode compilación 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 efectúa mediante la generación de varias entradas que comprueban los estados de las salidas para verificar las ecuaciones lógicas. La simulación se recomienda para verificar que el diseño es correcto y que no existe Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP ningún error. Después de ello se puede proceder a programar el dispositivo y finalmente verificar su funcionamiento. PLD's Combinatorios Utilizando una GAL16V8, escribir en CUPL el programa y la correspondiente simulación, para programar este dispositivo como una ALU de 4 bits que realice las operaciones especificadas en la siguiente tabla. S2 S1 S0 OPERACIÓN 1 0 0 AND 1 0 1 OR 1 1 0 NOT A 1 1 1 XOR 0 X X A+1 El preinforme debe incluir los siguientes archivos: *.pld: programa fuente de CUPL. *.si: archivo para simulación. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP *.doc: Información sobre ecuaciones simplificadas y diagrama de pines *.so: Archivo que muestra los resultados de la simulación. Opcionalmente pueden incluir el archivo JEDEC (*.jed). El día de la práctica también 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 Fotoeléctrico Montar y probar un circuito para detectar el paso de objetos. El detector debe usar una pareja Led–Fototransistor con un alcance mínimo de 20 cms. El contador debe tener 2 dígitos decimales, con sus visualizadores y una entrada para borrado, debe contar desde 0 hasta 29. Se pueden utilizar 2 chips CD4029 en cascada. Ing. Luis Pacheco Cribillero FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP Nota: Se deben seleccionar los valores apropiados para las resistencias R1 y R2. Ing. Luis Pacheco Cribillero