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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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:
donde las salidas del sistema son
unicamente sincrónicas. Un ejemplo de este
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
lógicas, las de los diagramas de estado, las
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 presente
del sistema (A y B) y de la entrada asincrónica
(X).
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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.
Estados Entrada Estados Salida
actuales siguientes
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 tiene tres
Estado Siguiente Salida
Estado Actual
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
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 cada
uno de ellos contiene
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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
Ing. Luis Pacheco Cribillero
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 Estado Entradas de los
Actual Siguiente 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
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 flip-flops
y se debe hacer uno para
cada una de las entradas.
La figura corresponde al
Mapa de karnaugh de la
entrada J1. de la tabla de
estado anterior.
Observe que cada celda en el mapa representa
uno de los estados actuales de la secuencia en
la tabla de estado. Una vez asignados todos
los estados posibles a cada celda en el Mapa
de Karnaugh se procede a simplificar y deducir
las expresiones 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
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
funciones específicas. El diseño de estos
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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 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.
Paso 3. Elaboración de la tabla de estados
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
combinatoria de estado siguiente, mediante el
uso de Mapas de Karnaugh. A continuación se
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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.
Estado Estado
Entrada Salida
actual siguiente
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
Ejemplo
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
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)
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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"
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
condiciones "no importa" para simplificar la
mayor cantidad de variables en las
expresiones.
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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.
PLD's Secuenciales
PLD's Secuenciales (Control Simplificado para
Máquina Lavadora)
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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:
Apagado Llenado Lavado Drenado
Exprimido Llenado
Enjuague Drenado
Exprimido Apagado
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,
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
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 dispositivos lógicos
de propósito general, frecuentemente
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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:
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
Economía.
o
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
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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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:
9. Sintetiza y simplifica las ecuaciones
lógicas.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 opción de diseño de
soluciones de sistemas electrónicos.
ABEL
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
componentes. VHDL maneja una sintaxis
amplia y flexible. El lenguaje VHDL permite el
diseño Top -Down o en otras palabras; modelar
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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, 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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").
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 PLD
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 fusible se
abre en el proceso de programación. La figura
muestra 4.4.2 un arreglo AND programado.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
Figura 4.4.2. Arreglo AND Programado.
Matriz OR
La matriz OR está formada por una red de
compuertas OR conectadas a 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 productos. La PAL
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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 se carga
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 este borrado
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
, 115 Genérica
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
15
,
25
GAL18V10 20 15 115 E2CMOS PLD
, Universal
20
GAL22V8A 24 10 55, E2CMOS PLD
, 115 Genérica
15
,
25
GAL22RA1 24 15 115 E2CMOS PLD
0 , Universal
20
GAL22V10 24 10 130 E2CMOS PLD
, Universal
15
,
25
GAL26CV1 28 15 130 E2CMOS PLD
2 , Universal
20
GAL6001 24 30 150 E2CMOS FPLA
,
35
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 una gran variedad de
dispositivos programables.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 = ; /* */
pin 1 = ; /* */
pin 1 = ; /* */
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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
CUPL
En este archivo los comentarios los grupos de
caracteres "/*" y "*/" son empleados para incluir
comentarios por parte del usuario, los cuales
permiten organizar el archivo de una forma
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 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:
salida = entrada:[C..F];
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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];
TABLE Ent =>
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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;
IF (condición2)
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
Este tipo de definición NEXT estado_n2
permite declarar la relación OUT sal_n0;
entradas y salidas DEFAULT
mediante la definición de NEXT estado_n0;
máquinas de estado. La PRESENT
sintaxis empleada para estado_n1
este tipo de definición se NEXT
ilustra en las líneas de estado_n2;
código de la Lista 4.5.3. ...
Lista 4.5.3. Sintaxis en ...
CUPL para crear Máquinas ...
de Estado PRESENT
Estamentos Condicionales estado_nn
Los estamentos 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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 = 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 */
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 ningún
error. Después de ello se puede proceder a
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP
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