Está en la página 1de 69

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

Análisis y Diseño de Circuitos


Secuenciales
Teoría de Máquinas de Estado (FSM)
La teoría de máquinas de estado es el
nombre con el que se conocen los métodos
de Análisis y Diseño de Circuitos
Secuenciales Sincrónicos. Esta lección
constituye una introducción al tema donde se
definirá lo que son las máquinas de estado y
los conceptos básicos para entender la
metodología de Análisis y Diseño de Circuitos
Secuenciales.

Las máquinas de estado son circuitos


secuenciales que se encuentran constituidos
por una etapa combinacional y una etapa de
memoria, relacionadas de tal forma que
conforman un sistema secuencial para algún
propósito especial.
Los registros y contadores con entradas
asincrónicas son ejemplos de este tipo de
sistemas secuenciales.

Ing. Luis Pacheco Cribillero


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

Máquinas de Estado de Mealy y Moore


Los circuitos secuenciales se clasifican dentro
de la categoría conocida como máquinas de
estado, de la cual se distinguen comúnmente
dos tipos:
o Máquina de Mealy: En esta máquina de

estados las salidas se encuentran


determinadas por el estado interno del
sistema y por las entradas no sincronizadas
con el circuito. El diagrama de bloques
representativo
de la máquina
se muestra en
la figura
donde se
observa que
las salidas del
sistema son tanto sincrónicas como
asincrónicas.
o Máquina de Moore: Las salidas solo
dependen del estado interno y de cualquier
entrada
sincronizada
con el circuito,
como se ve en
la figura:
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

donde las salidas del sistema son


unicamente sincrónicas. Un ejemplo de este
tipo de máquinas de estado son los
contadores.
Los circuitos secuenciales se caracterizan por
tener una etapa combinacional y otra de
memoria conformada por flip-flops. En la
figura se puede
observar un
ejemplo
particular de
este tipo de
circuitos, el cual
corresponde a
una Maquina
de estado de
Mealy.
Observe que hay salidas que dependen de la
etapa de memoria y hay una salida que
depende directamente de la etapa
combinatoria.
Con base en el circuito de la figura se dará
una descripción de las herramientas básicas
que son empleadas para el Análisis y Diseño
de Circuitos Secuenciales. Entre estas
herramientas se encuentran las ecuaciones
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

lógicas, las de los diagramas de estado, las


tablas de estado, las tablas de transición y los
mapas de Karnaugh.
Ecuaciones Lógicas
Las ecuaciones lógicas son funciones que
definen la relación existente entre los estados
de entrada y los estados de salida del
sistema. Para determinar las ecuaciones
lógicas de la máquina de estados de la figura
inicialmente se deben identificar los estados
siguientes.
Estos estados corresponden a aquellos que
ocurren después de una transición en la señal
de reloj de los flip-flops. Recuerde que para
los flip-flops tipo D el estado siguiente (Qi+1) es
igual al estado de la entrada D. Teniendo en
cuenta lo anterior las ecuaciones lógicas para
los flip-flops A y B del circuito de la figura
serían las siguientes:
A = DA = A·X + B·X
B = DB= A’·X
La salida Y esta dada por:
Y = (A + B)·X’
Observando esta última ecuación se concluye
que la salida (Y) es función del estado

Ing. Luis Pacheco Cribillero


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

presente del sistema (A y B) y de la entrada


asincrónica (X).
Las ecuaciones lógicas en los circuitos
secuenciales tienen una estructura formada
por dos clases de estados:
 Los estados siguientes, los cuales se
agrupan al lado izquierdo de la expresión y
representan las variables dependientes del
sistema. El estado de estas variables
cambia en el momento que ocurra un
transición en la señal de reloj.
 Los estados actuales y entradas del
sistema. Agrupados al lado derecho de la
expresión, constituyen las variables
independientes, las cuales pueden o no
cambiar en sincronía con el sistema.
Cuando las ecuaciones de estado contienen
varios términos, se pueden simplificar
empleando metodologías de reducción de
términos como Algebra de Boole, Mpas de
Karnaugh o mediante el algoritmo de Quine-
McCluskey.

Ing. Luis Pacheco Cribillero


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

Estados Entrada Estados Salida


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

Ing. Luis Pacheco Cribillero


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

La tabla de estado para un circuito secuencial


con m flip-flops y n entradas tiene 2m+n filas. El
estado siguiente tiene m columnas, y el
número de columnas depende del número de
salidas.
Existe una forma más conveniente de
organizar la información en la tabla de estado,
la cual se muestra en la Tabla siguiente,
donde los estados se agrupan de tal modo
que la tabla se puede traducir a un diagrama
de estados. Al igual que la tabla anterior esta

Estado 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
tiene tres secciones: estados actuales,
estados siguientes y salidas, sin embargo los
estados se agrupan dependiendo del valor de
las entradas. La sección de estados actuales
agrupa los estados que ocurren antes de una
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

transición en la señal de reloj, la sección de


estados siguientes lista aquellos que ocurren
después de la transición del reloj y la sección
de salidas reúne los estados que se dan en el
mismo instante de los estados actuales.
Haciendo un análisis de la operación del
circuito de la figura se puede observar lo
siguiente: Cuando la variable X=0 los estados
actuales A y B cambian a 0 después de la
transición de reloj, y cuando X=1, los estados
de las salidas se comportan tal como se
resume en la tabla anterior. Se plantea como
ejercicio verificar la información de la tabla.
Diagramas de Estado
Un diagrama de estados es una
representación gráfica que indica la secuencia
de los estados que se presentan en un
circuito secuencial,
teniendo en cuenta
las entradas y
salidas. El diagrama
se forma con
círculos y líneas. Los
círculos representan
los estados del
circuito secuencial y
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

cada uno de ellos contiene un número que


identifica su estado. Las líneas indican las
transiciones entre estados y se marcan con
dos números separados por un (/), estos dos
números corresponden a la entrada y
salida presentes antes de la transición.
A manera de ejemplo observe la línea que
une los estados 00 y 01 en el diagrama de
estado de la figura anterior. Esta línea
marcada como 1/0 indica que el circuito
secuencial se encuentra en el estado 00
mientras la entrada X=0 y la salida Y=0, y que
después de que ocurra una transición en la
señal de reloj el estado cambia a 01.
Las líneas que salen y regresan al mismo
círculo indican que no hay cambio en el
estado, cuando se presentan la entrada y
salida indicadas.
Transiciones de Salida 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.

Ing. Luis Pacheco Cribillero


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

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
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

Ing. Luis Pacheco Cribillero


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

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

Ing. Luis Pacheco Cribillero


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

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 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

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

Ing. Luis Pacheco Cribillero


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

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

Ing. Luis Pacheco Cribillero


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

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

Ing. Luis Pacheco Cribillero


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

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

Ing. Luis Pacheco Cribillero


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

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
Entrad Salid
o siguient Excitaciones
a a
actual e
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.

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.

Ing. Luis Pacheco Cribillero


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

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 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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

2. No se incluyó un bloque
temporizador que sirva para que el usuario
pueda seleccionar el tiempo de la etapa de
lavado y para que el mismo circuito de
control defina tiempos diferentes a los de
un 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.

Ing. Luis Pacheco Cribillero


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

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


Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

Ing. Luis Pacheco Cribillero


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

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 PLD
Los PLD se dividen en dos clases:
1. PLDs combinatorios.

Constituidos por arreglos de compuertas


AND – OR. El usuario define las
interconexiones y en esto consiste la
programación.
2. PLDs secuenciales.

Ing. Luis Pacheco Cribillero


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

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.
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).
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

Ing. Luis Pacheco Cribillero


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

Figura 4.2.1. Metodologia De Diseño Top -


Down
Las herramientas siguen el diagrama de flujo
de la figura 4.4.2.

Figura 4.2.2. Diagrama de Flujo con


herramientas EDA
Este proceso se resume en los siguientes
pasos:
1. Planteamiento de las
especificaciones.
2. Entrada del 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.

Ing. Luis Pacheco Cribillero


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

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.
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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

Ing. Luis Pacheco Cribillero


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

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:
1. Sintetiza y simplifica las
ecuaciones lógicas.
2. Simula las ecuaciones.
3. Sintetiza el circuito lógico.
4. Simula el circuito lógico.
5. Sintetiza el archivo para
programar un PLD.
Entre otras ventajas, se pueden mencionar las
siguientes:
6. EL programa HDL es el mismo
así cambie la tecnología, Ejemplo: FPGA,
transistores 2.5m ., 1.2 m .
7. Facilita la comunicación entre
los diseñadores.

Ing. Luis Pacheco Cribillero


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

8. Facilita el uso de las partes de


un diseño en otros (Reutilización).
9. Es posible verificar el
funcionamiento del sistema dentro del
proceso de diseño sin necesidad de
implementar el circuito.
10. 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.
11. 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.
12. Las descripciones en un HDL
proporcionan documentación de la
funcionalidad de un diseño
independientemente de la tecnología
utilizada.
13. Una descripción realizada en un
HDL es más fácil de leer y comprender
que los nestlist o circuitos esquemáticos.

Ing. Luis Pacheco Cribillero


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

14. 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
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:
15. Verifica si existen errores en la
sintaxis del programa fuente.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

16. Simplifica o sintetiza las


ecuaciones según sea el caso.
17. Simula las ecuaciones.
18. Puede escoger el dispositivo
que mejor se adapte, o verificar si el
dispositivo especificado sí se adapta a la
aplicación.
19. 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 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)
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

Ing. Luis Pacheco Cribillero


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

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

Ing. Luis Pacheco Cribillero


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

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 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.
H Combinatoria con nivel alto activo.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.

Figura 4.4.7. Diagrama de Bloques de una


GAL (Generic Array Logic).
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.

Ing. Luis Pacheco Cribillero


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

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 el chip lleva una ventana de
cuarzo transparente.

Ing. Luis Pacheco Cribillero


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

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úmero tPD ICC Característica


de (mA) s
Pines
GAL16V8A 20 10, 55, E2CMOS PLD
15, 115 Genérica
25
GAL18V10 20 15, 115 E2CMOS PLD
20 Universal
GAL22V8A 24 10, 55, E2CMOS PLD
15, 115 Genérica
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

25
GAL22RA1 24 15, 115 E2CMOS PLD
0 20 Universal
GAL22V10 24 10, 130 E2CMOS PLD
15, Universal
25
GAL26CV1 28 15, 130 E2CMOS PLD
2 20 Universal
GAL6001 24 30, 150 E2CMOS FPLA
35
ispGAL16Z8 24 E2CMOS PLD 30, 190
35
Programable 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

Ing. Luis Pacheco Cribillero


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

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;
Date
Revision
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

Designer
Company
Assembly
Location

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

/*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 = ; /* */

Ing. Luis Pacheco Cribillero


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

/****************************************************
***********/
/* 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 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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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];
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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

Ing. Luis Pacheco Cribillero


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

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.
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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

(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]:#
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];
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 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];
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

FIELD Salida =
[Sal3..0];
TABLE Ent =>
Sal {
0=> 00;
1=>01; SEQUENCE
2=>02;
3=>03; lista_vars_estado
4=>04; {
5=>05; PRESENT
6=>06;
7=>07; estado_n0
8=>08; IF
9=>09; A=>10; (condición1)NEXT
B=>11; estado_n1;
C=>12; IF (condición2)
D=>13; E=>14; NEXT estado_n2
F=>15; OUT sal_n0;
} DEFAULT
Lista 4.5.2. Sintaxis en NEXT estado_n0;
CUPL para crear Tablas de PRESENT
Verdad estado_n1
Máquinas de Estado NEXT
Este tipo de definición estado_n2;
permite declarar la relación ...
entradas y salidas ...
mediante la definición de ...
máquinas de estado. La PRESENT
estado_nn
Ing. Luis Pacheco Cribillero
estamentos;
}
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 Estado
Estamentos Condicionales
Los 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


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

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

/* Definición de las entradas */


Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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ógicas
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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 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.
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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
Ing. Luis Pacheco Cribillero
FACULTAD DE ELECTRÓNICA Y MECATRÓNICA CIRCUITOS DIGITALES II EE V UTP

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.

Nota: Se deben seleccionar los valores


apropiados para las resistencias R1 y R2.

Ing. Luis Pacheco Cribillero

También podría gustarte