análisis y diseño de circuitos secuenciales33

36
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. 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 o o o o o Máquina de Moore : Las salidas solo dependen del Ing. Luis Pacheco Cribillero

Upload: marco-quispe-palacios

Post on 30-Jul-2015

359 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

Análisis y Diseño de Circuitos SecuencialesTeorí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.

Máquinas de Estado de Mealy y MooreLos 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

o

o

o

o

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: 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.

Ing. Luis Pacheco Cribillero

Page 2: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 lógicas, las de los diagramas de estado, las tablas de estado, las tablas de transición y los mapas de Karnaugh.

Ecuaciones LógicasLas 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·XB = 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 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 Quine-McCluskey.

Ing. Luis Pacheco Cribillero

Page 3: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

Tablas de EstadoUna 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

Estados actuales Entrada Estados siguientes Salida

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

Page 4: Análisis y Diseño de Circuitos Secuenciales33

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 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 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.

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

Diagramas de EstadoUn 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 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.

Ing. Luis Pacheco Cribillero

Page 5: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.Tablas de Transición de flip-flopsLas 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.

Mapas de KarnaughGeneralmente 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.

Los Mapas de Karnaugh se emplean para definir la lógica 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

Ing. Luis Pacheco Cribillero

Transiciones de Salida Entradas al flip-flop

Qi Qi+1 J K

0 0 0 X

0 1 1 X

1 0 X 1

1 1 X 0

Estado Actual Estado Siguiente Entradas de los flip-flop

Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0

0 0 0 0 0 1 0 X 0 X 1 X

0 0 1 0 1 0 0 X 1 X X 1

0 1 0 0 1 1 0 X X 0 1 X

0 1 1 1 0 0 1 X X 1 X 1

1 0 0 1 0 1 X 0 0 X 1 X

1 0 1 1 1 0 X 0 1 X X 1

1 1 0 1 1 1 X 0 X 0 1 X

1 1 1 0 0 0 X 1 X 1 X 1

Page 6: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 = Q0

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 SecuencialesAnálisis y Diseño de Circuitos Secuenciales SincrónicosLa gran mayoría de los circuitos digitales contienen flip-flops y compuertas para realizar 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.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 flip-flops). 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 estadoLa 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.Paso 3. Elaboración de la tabla de estados

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

Ing. Luis Pacheco Cribillero

Entrada Estado Actual Estado Siguiente Excitaciones

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

Page 7: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

"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 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ógicosEste 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 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 flip-flops D El diseño del circuito anterior se hizo con flip-flops 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.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

Ing. Luis Pacheco Cribillero

Entrada Estado actual Estado siguiente Salida

X A B A(DA) B(DB) Y

0 0 0 0 0 0

1 0 0 0 1 1

0 0 1 1 0 0

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

Page 8: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 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ógicosCon 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.

Ing. Luis Pacheco Cribillero

Page 9: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

Estados no usadosDurante 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 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.

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 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

Page 10: Análisis y Diseño de Circuitos Secuenciales33

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 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.

Ing. Luis Pacheco Cribillero

Page 11: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 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:ApagadoLlenado Lavado Drenado Exprimido Llenado EnjuagueDrenado ExprimidoApagadoPara 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 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 lavadoraAl 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 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 control defina tiempos diferentes a los de un período de reloj, para las etapas de exprimido y

Ing. Luis Pacheco Cribillero

Page 12: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 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íaLa 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 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 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 PLDLos PLD se dividen en dos clases:

6. PLDs combinatorios.

Ing. Luis Pacheco Cribillero

Page 13: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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ásicosLos 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.).

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 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

Ing. Luis Pacheco Cribillero

Page 14: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 - DownLas herramientas siguen el diagrama de flujo de la figura 4.4.2.

Figura 4.2.2. Diagrama de Flujo con herramientas EDAEste 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

Page 15: Análisis y Diseño de Circuitos Secuenciales33

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 - DownLa 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:

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 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

Ing. Luis Pacheco Cribillero

Page 16: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

En la actualidad existen diversas herramientas de diseño para integrar sistemas de gran complejidad. Los lenguajes de descripción de hardware constituyen una opción de diseño de soluciones de sistemas electrónicos. ABELEl 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.

VHDLEl 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 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. CUPLEl 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, 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 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.

Ing. Luis Pacheco Cribillero

Page 17: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 EDAEntre 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 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 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 PLDLa estructura básica de un PLD etá formada por un arreglo de puetas AND y OR interconectadas a través de fusibles.Matriz ANDLa 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 fusible se abre en el proceso de programación. La figura muestra 4.4.2 un arreglo AND programado.

Ing. Luis Pacheco Cribillero

Page 18: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

Figura 4.4.2. Arreglo AND Programado.Matriz ORLa 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.

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 Ing. Luis Pacheco Cribillero

Page 19: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 productos. La PAL se implementa con tecnología bipolar (TTL o ECL).

Figura 4.2.5. Diagrama de bloques de una PAL (Programmable Logic Array) Nomenclatura de una PALLos 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.

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 comercialesEn 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

Page 20: Análisis y Diseño de Circuitos Secuenciales33

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 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:

Ing. Luis Pacheco Cribillero

Page 21: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 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 comercialesLas 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úmero de Pines tPD ICC (mA) Características

GAL16V8A 20 10, 15, 25 55, 115 E2CMOS PLD Genérica

GAL18V10 20 15, 20 115 E2CMOS PLD Universal

GAL22V8A 24 10, 15, 25 55, 115 E2CMOS PLD Genérica

GAL22RA10 24 15, 20 115 E2CMOS PLD Universal

GAL22V10 24 10, 15, 25 130 E2CMOS PLD Universal

GAL26CV12 28 15, 20 130 E2CMOS PLD Universal

GAL6001 24 30, 35 150 E2CMOS FPLA

ispGAL16Z8 24 30, 35 190 E2CMOS PLD Programable en Circuito

Tabla 4.2.2. Familias GAL del fabricante LatticeProgramación en CUPLEn 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 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;DateRevisionDesignerCompanyAssemblyLocation

/***************************************************************

Ing. Luis Pacheco Cribillero

Page 22: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

/

/*Entradas*/pin 1 = ;         /* */pin 1 = ;         /* */pin 1 = ;         /* */pin 1 = ;         /* */

/*Salidas*/pin 1 = ;         /* */pin 1 = ;         /* */pin 1 = ;         /* */pin 1 = ;         /* */

/*Variables Intermedias (Opcionales)*/pin 1 = ;         /* */pin 1 = ;         /* */pin 1 = ;         /* */pin 1 = ;         /* */

/***************************************************************//* Ecuaciones Lógicas*//***************************************************************/

Lista 4.5.1. Archivo de Ejemplo de Entrada en CUPLEn 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 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 PinesLa 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 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. Asignación de TerminalesEl signo "!" en la asignación de pines indica que la variable se complementa. Este signo se emplea generalmente para declarar variables activas en bajoDefinición de Variables IntermediasLas 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.

Ing. Luis Pacheco Cribillero

Page 23: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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ógicasLas ecuaciones lógicas corresponden a las expresiones lógicas que relacionan los pines de entrada y salida. y en el archivo fuente se 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.

Operador Función Formato de CUPL Formato Convencional

& AND A&B A·B

# OR A#B A+B

! NOT !A A'

$ XOR A$B AB

Tabla 4.5.2. Sintaxis de CUPL para operaciones lógicasLa sintaxis general de las ecuaciones lógicas en CUPL es la siguiente:[!] var [.ext] = exp;Extensiones de VariablesLas 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.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;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]:# Ing. Luis Pacheco Cribillero

Page 24: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

C3 $ C2 $ C1 $ C0 [C3, C2, C1, C0]:$

Tabla 4.5.3. Forma abreviada para representar expresiones lógicas con un mismo operadorExiste 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: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 SalidasEn 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 VerdadComo 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];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 VerdadMáquinas de EstadoEste tipo de definición permite declarar la relación entradas y salidas mediante la definición de máquinas de estado. La sintaxis empleada para este tipo de definición se ilustra en las líneas de código de la Lista 4.5.3.Lista 4.5.3. Sintaxis en CUPL para crear Máquinas de EstadoEstamentos CondicionalesLos estamentos condicionales es otro tipo 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;    .    .    IF exprn OUT var;    DEFAULT OUT var;}

Lista 4.5.4. Sintaxis en CUPL para crear Estamentos Condicionales

Ing. Luis Pacheco Cribillero

SEQUENCE lista_vars_estado {  PRESENT estado_n0    IF (condición1)NEXT estado_n1;    IF (condición2) NEXT estado_n2 OUT sal_n0;    DEFAULT NEXT estado_n0;  PRESENT estado_n1    NEXT estado_n2;  ...  ...  ...  PRESENT estado_nn estamentos;}

Page 25: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

Ejemplo de Programación en CUPLEl 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;/******************************************************//* Archivo Fuente de ejemplo en CUPL para implementar funciones lógicas *//******************************************************/

/* Definición de las entradas */Pin 1 = a;Pin 2 = b;/* Definiciónde las salidas */

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 */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ógicasUna 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 ningún error. Después de ello se puede proceder a programar el dispositivo y finalmente verificar su funcionamiento.

Ing. Luis Pacheco Cribillero

Page 26: Análisis y Diseño de Circuitos Secuenciales33

FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

PLD's CombinatoriosUtilizando 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.*.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éctricoMontar 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.

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

Ing. Luis Pacheco Cribillero