Download Analisis sistemas secuenciales

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