Download logica de control - Universidad Santiago de Cali

Document related concepts
no text concepts found
Transcript
GUIAS ÚNICAS DE LABORATORIO
LÓGICA DE CONTROL
AUTOR: ALBERTO CUERVO
SANTIAGO DE CALI
UNIVERSIDAD SANTIAGO DE CALI
DEPARTAMENTO DE LABORATORIOS
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
LOGICA DE CONTROL
Introducción
El proceso de diseño lógico es una tarea compleja. La mayor creatividad en el diseño de
sistemas digitales lo constituye el proceso de formulación del algoritmo adecuado
expresado mediante un flujograma para describir la operación del sistema digital.
En el presente artículo se describe un sistema digital que multiplica dos números
binarios por el método de sumas sucesivas, el cual puede ser fácilmente implementado
en el laboratorio de la Universidad Santiago de Cali.
Se utiliza el método de un flip-flop por estado para implementar el circuito secuencial
de la unidad de control del sistema. El diseño se efectúa tanto con flip-flops tipo D como
JK.
Generalidades
La información binaria encontrada en un sistema digital puede estar constituída por
datos o información de control y estado. Los datos son elementos discretos de
información que se manipulan por microoperaciones elementales como sumar,
incrementar, etc., en el procesador de datos del sistema bajo el mando y supervisión de
la unidad de control. La información de control suministra las señales de mando
adecuadas para especificar la secuencia en que se deben ir ejecutando las
microoperaciones en el procesador de acuerdo con el algoritmo establecido.
La información de estado son señales generadas por el procesador de datos hacia la
unidad de control para indicarle a esta última el estado en que se encuentra el
procesador de datos del sistema. La unidad de control chequea estas señales de estado y
de acuerdo al valor que tengan las mismas toma la decisión de cuál es la siguiente
microoperación que debe ordenar ejecutar.
En la figura 1 se observa el diagrama funcional general de un sistema digital para el
procesamiento de información. En el mismo se puede observar que a la unidad de
control llegan tanto las señales de estado como también señales externas al sistema que
igualmente condicionan la siguiente microoperación que debe ser ejecutada.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
Datos de
entrada
Señales de control
Señales de entrada
externas
UNIDAD
DE
CONTROL
PROCESADOR
DE
DATOS
Señales de estado
Datos de
salida
Figura 1. Sistema digital formado por la unidad de control y el procesador de datos
De acuerdo con lo anterior, las preguntas en el flujograma del sistema digital se
identifican con una señal de entrada externa o una señal de estado. Estas señales
determinan por tanto el estado siguiente que tendrá la unidad de control en su diagrama
de estados y por consiguiente las microoperaciones que serán ejecutadas.
Planteamiento del problema
Se desea multiplicar dos números binarios sin signos de cuatro bits empleando el método
de sumas sucesivas. Estos números son obtenidos mediante teclados en el sistema. La
unidad de control debe implementarse tanto con flip-flops tipo D como con flip-flops JK.
El producto, que se supondrá no tiene más de cuatro bits, deberá quedar almacenado en
un registro de 4 bits denominado A.
Deberá existir una señal que se denominará "multiplicar" que será obtenida de un
pulsador la cual será utilizada para dar la orden que comience la operación de
multiplicación. Esto es, cuando multiplicar=1, el sistema deberá comenzar el proceso de
multiplicación. Una vez concluya dicho proceso, el sistema deberá iluminar un LED para
indicar que el resultado de la multiplicación se encuentra disponible en la salida del
procesador de datos.
Se debe utilizar el método de un flip-flop/estado en la implementación del circuito de la
unidad de control del sistema. Se debe utilizar una frecuencia relativamente lenta de 1
Hz para los pulsos de reloj para poder ir visualizando las distintas microoperaciones que
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
va realizando secuencialmente el sistema, así como las transiciones que ocurren entre
los estados del mismo.
Flujograma
ALTO
Iluminar LED
No
Multiplicar=1?
Sí
INICIO
C
A
0
multiplicador
Sí
C=0?
Cz=1
No
Cz=0
SUMA
A
C
A+B
C-1
Figura 2. Flujograma del sistema digital
En la figura 2 se muestra el flujograma del sistema para realizar la multiplicación por
sumas sucesivas de acuerdo a lo planteado anteriormente.
El sistema se encuentra detenido iluminando al LED mientras la señal de multiplicar no
tenga el valor 1. Tan pronto se presione el pulsador, el sistema inicialmente ejecutará
las microoperaciones de almacenar el multiplicador colocado en un teclado en el
registro C y borrar el registro de 4 bits A que será utilizado para dejar almacenado el
producto.
A continuación se pregunta si el contenido del registro C, el multiplicador, es igual a
cero. Si la respuesta es afirmativa se termina la operación, pués el producto es cero. En
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
caso contrario se suma el multiplicando (B) tantas veces como sea el valor almacenado
inicialmente en el registro C, dejando almacenadas las sucesivas sumas en el registro A.
Cuando el contenido del registro C se haga 0 al irse decrementando sucesivamente, el
sistema vuelve a iluminar al LED indicando que terminó de efectuar la operación de
multiplicación y el resultado se encuentra almacenado en el registro A.
De acuerdo con este flujograma, se realizan dos preguntas que corresponderán a señales
que entrarán a la unidad de control: la señal de entrada externa "multiplicar"
proveniente del pulsador para ordenar comenzar el proceso de multiplicación y una
señal de estado Cz proveniente del procesador de datos que le indicará a la unidad de
control que el contenido de su registro C = 0. Esto es, si Cz = 1 entonces el contenido
del registro C es 0 (0000). Por el contrario, Cz = 0 indica que el contenido del registro C
es diferente a 0.
De acuerdo con lo anterior, el diagrama funcional del sistema tendrá la apariencia que
se muestra en la figura 3.
Diagrama de estados.
Cada rectángulo del flujograma se puede asociar con un estado del sistema en el cual se
efectúan una o más microoperaciones, pudiéndose construir así a partir de este
flujograma el diagrama de estados que se muestra en la figura 4. Los estados del sistema
se han denominado respectivamente ALTO, INICIO y SUMA.
datos de entrada
teclado
teclado
multiplicando B
multiplicador
señales
de
control
pulsador
multiplicar
UNIDAD
DE
CONTROL
Reg C
PROCESADOR
DE
DATOS
señal de
estado Cz
Reg A
Datos de salida
(producto)
Figura 3. Diagrama funcional del sistema de multiplicación
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
Cz=1
ALTO
INICIO
multiplicar=1
Cz=0
SUMA
multiplicar=0
Cz=0
Cz=1
Figura 4. Diagrama de estados
En este diagama de estados se puede observar lo siguiente:
1. Del estado de ALTO se produce una transición con el pulso de reloj que ocurra en
este estado condicionada por la señal "multiplicar". Si multiplicar = 1 se pasa al
estado de Inicio, y si multiplicar = 0 el sistema permanece en el estado de ALTO.
2. En el estado de Inicio similarmente el cambio de estado estará condicionado por la
señal de estado Cz. Si Cz = 1 se pasa al estado de ALTO y si Cz = 0 se pasa al estado
de SUMA.
3. Finalmente del estado de SUMA se pasa al estado de ALTO si Cz = 1 y permanece en
el estado de SUMA si Cz = 0.
Las microoperaciones que se deben ejecutar en cada uno de los estados del sistema
serán las siguientes:
ALTO
INICIO
SUMA
:
:
:
iluminar el LED (light emitting diode)
A ← 0, C ← multiplicador
A ← A + B, C ← C – 1
Método de un flip-flop por estado.
En el método de un flip-flop/estado se utiliza un flip-flop en la unidad de control para
representar un estado del sistema digital.
De esta forma, como el diagrama de estados tiene tres estados, la unidad de control
estará compuesta por tres flip-flops que se nombrarán igualmente ALTO, INICIO y SUMA
respectivamente.
Uno sólo de estos tres flip-flops se encontrará en el estado 1 de acuerdo al estado en
que se encuentre el sistema digital. Así por ejemplo si el sistema se encuentra en el
estado de INICIO, cada uno de los flip-flops tendrán los estados siguientes:
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
Flip-flop..............Estado
ALTO.......................0
INICIO.....................1
SUMA......................0
Diseño de la Unidad de Control
El siguiente paso en el proceso de diseño del sistema digital planteado será encontrar el
circuito de la unidad de control del mismo.
Para esto se encuentran las funciones de excitación de los flip-flops a partir del
diagrama de estados.
Flip-flop tipo D. Teniendo en cuenta que en un flip-flop tipo D, éste toma el estado que
tenga su entrada de excitación D con la ocurrencia de un pulso de reloj, se podrán
plantear las siguientes funciones para cada uno de los flip-flops observando el diagrama
de estados.
Dalto = multiplicar´ . ALTO + Cz . INICIO + Cz . SUMA
Dinicio = multiplicar . ALTO
Dsuma = Cz´ . INICIO + Cz´ . SUMA
Así por ejemplo, en el diagrama de estados se observa que cuando ocurra un pulso de
reloj el sistema debe pasar al estado de SUMA cuando se cumplan dos condiciones: que
se encuentre en el estado de INICIO y Cz = 0 o que se encuentre en el estado de SUMA y
Cz = 0, de ahí que la función de excitación de este flip-flop sea la planteada
anteriormente, etc.
Flip-flop JK. Un flip-flop JK tiene dos entradas de excitación: J y K. Para encontrar las
funciones de excitación de estos flip-flops se deben tener en cuenta los siguientes
aspectos:
1. Cuando el estado presente del flip-flop sea 0, no importa el valor que tenga su
entrada K. Si se desea que el flip-flop permanezca en el estado 0, la J debe tener el
estado 0. De lo contrario si se desea que el flip-flop experimente una transición de 0
a 1 con un pulso de reloj la J debe tener un 1 aplicado.
2. Cuando el estado presente del flip-flop sea 1 no importa el valor que tenga su
entrada J. Si se desea que permanezca en el estado 1 la K debe ser 0. De lo contrario
si se desea que experimente una transición de 1 a 0 la K debe tener aplicado un 1.
Lo anterior se resume en la tabla de excitación siguiente para un flip-flop JK, donde Qn
y Qn+1 representan el estado antes y después de la ocurrencia de un pulso de reloj.
Qn Qn+1 J K
0
0
0 x
0
1
1 x
1
0
x 1
1
1
x 0
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
De acuerdo a lo anterior, se pueden plantear las siguientes funciones de excitación para
los flip-flops JK de acuerdo al diagrama de estados elaborado.
Jalto = Cz . INICIO + Cz . SUMA
Kalto = multiplicar
Jinicio = multiplicar . ALTO
Kinicio = INICIO
Jsuma = Cz´ . INICIO
Ksuma = Cz
Por ejemplo, si se analiza el estado de ALTO se observa que este flip-flop debe
experimentar una transición de 0 a 1 cuando INICIO = 1 y Cz = 1 o cuando SUMA = 1 y Cz
= 1. Por consiguiente la J de este flip-flop, Jalto, debe ser igual a 1 cuando se den estas
condiciones.
Similarmente el flip-flop de ALTO debe experimentar una transición de 1 a 0 cuando el
sistema salga de este estado, esto es cuando se de la condición de que la señal de
multiplicar sea igual a 1, etc.
Circuito de la unidad de control
De acuerdo con las funciones de excitación de los flip-flops anteriormente obtenidas, se
puede elaborar el circuito de la unidad de control.
La figura 5 muestra el circuito de la unidad de control elaborado con flip-flops tipo D y
la figura 6 lo muestra con flip-flops JK.
En estas figuras se observa que existen dos entradas : la señal del pulsador "multiplicar"
y la señal de estado Cz proveniente del procesador de datos.
De forma similar existiran tres señales de control que irán al procesador de datos las
cuales se relacionan a continuación:
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
ALTO
D
ALTO´
Preset
pulsos
de
reloj
D
INICIO
D SUMA
INICIO´
Clear
SUMA´
Clear
multiplicar
Cz
+5v
R
C
4.7
Kohmios
10 microfaradios
señales de control al procesador de datos
Figura 5. Unidad de control con flip-flops tipo D
1. La señal encargada de iluminar al LED. Como el LED se debe iluminar cuando el
circuito se encuentre en el estado de ALTO, esta señal de control será la salida del
correspondiente flip-flop.
2. Mientras el circuito se encuentre en el estado de INICIO se debe borrar el registro A y
cargar al multiplicador en el registro C. Por tanto la segunda señal de control que
sale de esta unidad será INICIO´, pués como se verá posteriormente el registro A se
borra y el registro C almacena un dato presente en su entrada con un 0 aplicado a la
entrada respectiva.
3. Mientras el circuito se encuentre en el estado de SUMA, se debe decrementar en 1 el
registro C y almacenar la información de la suma de A y B en el registro A. Por tanto
la tercera señal de control será la salida del correspondiente flip-flop para permitir
que se efectúen estas microoperaciones en el procesador de datos.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
+5v
J ALTO
J INICIO
J SUMA
K Preset
INICIO´
K Clear
K Clear
R
C
pulsos de reloj
Cz
multiplicar
señales de control
Figura 6. Unidad de control con flip-flops JK
Procesador de Datos.
Analizando el flujograma se puede observar que en el registro C se deben efectuar dos
microoperaciones diferentes: decremento y almacenamiento o carga de un dato
presente en su entrada. De acuerdo con esto se puede utilizar el circuito integrado
CTRDIV16 como se muestra en la figura 7, el cual consiste de un contador binario de 4
bits con carga en paralelo, cuyas características principales se describen a continuación.
CTRDIV16 : contador binario de 4 bits para conteo creciente y decreciente.
CT=0
: entrada asincrónica, la cual al aplicársele un 1 el contador es llevado a 0.
2+/G1
: entrada de pulsos para conteo creciente sensible al flanco positivo.
1-/G2
: entrada de pulsos para conteo decreciente sensible al flanco positivo.
C3
: entrada asincrónica de carga la cual se activa con 0
1´CT=15 : al alcanzarse el número 15 (1111) esta salida cambia a 0 cuando la entrada
de pulsos para conteo creciente sea 0
2´CT=0 : al alcanzarse el número 0 (0000), el contador lo indica colocando un 0 en
esta salida cuando la entrada de pulsos para conteo decreciente se haga 0.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
CT=0
2+ 1´CT=15
G1
2´CT=0
1G2
C3
S0
S1
C4
1 /2
R
1,4D
3,4D
3D
3,4D
salidas
3,4D
bit de
mayor
orden
3,4D
2,4D
Contador binario CTRDIV16
Registro de desplazamiento SRG4
Figura 7. Elementos utilizados para los registros C y A
Similarmente, para el registro A que finalmente debe tener almacenado el producto al
final de la operación se seleccionó el registro de desplazamiento de 4 bits con carga en
paralelo SRG4 que se muestra igualmente en la figura 7. Las principales características
de este registro son las siguientes:
SRG4
: Registro de desplazamiento bidireccional de 4 bits con modo paralelo y
posibilidad de desplazamiento derecha/izquierda. Sensible al flanco positivo de los
pulsos.
R:
: entrada asincrónica de borrado, se activa con 0
C4/1→/2← : entrada de pulsos de reloj para desplazamiento derecha/izquierda y cargar
datos en paralelo según el modo operativo
1,4D
: entrada para desplazamiento a la derecha
2,4D
: entrada para desplazamiento a la izquierda.
3,4D
: entrada de datos en paralelo
MODO
0
1
2
3
S1
0
0
1
1
S0
0
1
0
1
Función
Sin función, no opera
Desplazamiento a la derecha
Desplazamiento a la izquierda
Carga de datos en paralelo
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
El circuito del procesador de datos del sistema se muestra en la figura 8 donde se
pueden
bit más
significativo
señales
de control
dato de
entrada
multiplicando B
señal de
estado Cz
ALTO
INICIO´
LED
SUMA
SRG4
1
S0
S1
1
C4
1 /2
2
R
3
3,4D
0
3,4D
1
3,4D
2
3,4D
S
U
M
A
D
O
R
0
1-
G2
C3
1
2
3D
3
3
CI
pulsos
de reloj
CTRDIV16
0
bit más
significativo
CO
bit más
significativo
dato de
salida
multiplicador
dato de
entrada
Figura 8 Circuito del procesador de datos
destacar los siguientes aspectos:
1. Como la suma A+B se debe almacenar en el registro A se utiliza un sumador de 4 bits
que tiene aplicado en sus entradas la salida del registro A y el multiplicando B de uno
de los teclados. La salida del sumador que tiene la suma se aplica a la entrada en
paralelo del registro A
2. Como la salida del sumador se debe almacenar en el estado de SUMA, se coloca al
registro A (SRG4) en el modo de carga en paralelo y se aplican pulsos de reloj a la
entrada C4/1→/2← solamente cuando SUMA =1.
3. El registro A debe ser borrado en el estado de INICIO. Como la entrada asincrónica R
que borra a este registro se activa con 0, entonces se aplica la señal de INICIO´ a la
entrada del registro SRG4.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
4. El multiplicador se debe almacenar en C (contador CTRDIV16) en el estado de INICIO.
Por tanto la salida del teclado que genera al multiplicador se aplica a la entrada en
paralelo de este contador y la señal INICIO´ se aplica a la entrada C3 la cual se
activa con 0.
5. El contador SRG4 debe ser decrementado en el estado de SUMA, por lo que se
aplican pulsos de reloj a la entrada 1-/G2 solamente cuando SUMA =1.
6. El LED debe iluminarse solamente cuando el sistema se encuentre en el estado de
ALTO, por lo que la salida de este flip-flop se lleva a iluminar al mismo.
7. De acuerdo con el análisis anterior, al procesador de datos entrarán tres señales de
control provenientes de la unidad de control: INICIO´, SUMA y ALTO.
8. La señal de estado Cz que va del procesador de datos hacia la unidad de control es
obtenida de la salida de una compuerta NOR la cual tiene como entrada los cuatro
bits del registro C (CTRDIV16). De esta forma Cz = 1 solamente cuando C = 0 (0000).
9.
Finalmente se debe observar que al conectarse la energía debe imponerse al sistema un
estado inicial en el cual un solo flip-flop de la unidad de control quede en el estado 1.
Esto se puede efectuar con una red RC (resistencia.condensador) como se muestra en las
figuras 5 y 6 de la unidad de control. Con esta red RC se coloca al sistema inicialmente
en el estado de ALTO al conectarse la fuente de alimentación de +5 voltios. Como el
módulo DIGI BOARD2 no permite fácilmente efectuar lo anterior, el estado de ALTO debe
ser impuesto inicialmente de forma manual utilizando las entradas asincrónicas de los
flip-flops clear y preset de puesta a 0 y 1 respectivamente.
Análisis en el tiempo.
Para un mejor entendimiento de la operación del sistema, en la figura 9 se han dibujado
los pulsos de reloj al sistema, las señales de control INICIO, SUMA y ALTO, la señal
externa de entrada de multiplicar, los valores que van tomando secuencialmente en el
tiempo los registros A y C y la señal aplicada a las entradas C4/1→/2← y 1-/G2 de los
registros A (SRG4) y C (CTRDIV16) respectivamente.
En la elaboración de esta figura se supuso que el multiplicando B es igual al número 3 y
el multiplicador es el número 2.
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
Como se puede observar, el sistema termina quedándose en el estado de ALTO con el
número 6 almacenado en el registro A (SRG4).
Conclusiones
pulsos
de reloj
señal del
pulsador
señal de
multiplicar
ALTO
INICIO
SUMA
C4/1 /2 de SRG4 y
1-/G2 de CTRDIV16
dato en el
registro A
A=0
A=3
A=6
dato en el
registro C
C=2
C=1
C=0
Figura 9. Principales señales en el tiempo y contenidos de A y C
El sistema digital descrito en el presente artículo utiliza un algoritmo de sumas sucesivas
para obtener el producto de dos números binarios.
Este algoritmo es relativamente lento, aunque es utilizable en aquellas aplicaciones
donde la velocidad no sea un factor prioritario.
Se deja al lector buscar algoritmos de multiplicación más rápidos y diseñar los sistemas
digitales apropiados utilizando los mismos.
Bibliografía
1. Víctor P. Nelson, H. Troy Nagle, Bill D. Carroll y J. David Irwin, "Análisis y Diseño de
Circuitos Lógicos Digitales", Prentice-Hall Hispanoamericana, S.A., 1996
2. System Technik, "MODULO DIGI BOARD2 Descripción Técnica"
3. M. Morris Mano, "Lógica Digital y Diseño de Computadores", Editorial Dossat S.A.,
1982
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL
4. J.F. Wakerly, "Digital Design Principles and Practices", 2ª ed., Englewood Cliffs, NJ:
Prentice-Hall, 1984
DDEEPPAARRTTAAM
MEENNTTOO DDEE LLAABBOORRAATTOORRIIOOSS
GGUUIIAASS DDEE LLAABBOORRAATTOORRIIOO DDEE LLOOGGIICCAA DDEE CCOONNTTRROOLL