Post on 05-Feb-2018
"ESCUELA POLITÉCNICA NACIONAL"
r r
FACULTAD DE INGENIERÍA ELÉCTRICA
TESIS DE GRADO
"DISEÑO SECUENCIAL SINCRÓNICO ASISTIDO POR
COMPUTADOR"
TESIS PREVIO A LA OBTENCIÓN DEL TITULO DE
INGENIERO EN ELECTRÓNICA Y
TELECOMUNICACIONES
SERGIO L. CLAVTJO MORENO
QUITO, 28 DE NOVIEMBRE DE 1997
Certifico que la presente tesis
ha sido realizada en su
totalidad por el Señor Sergio L.
Clavijo Moreno, bajo mi
afección.
Direcfor^de Tesis
A GRADECIMIENTO
Al Ing. Carlos Novillo por su
sincera colaboración en el
desarrollo de esta Tesis. Deseo
también expresar mi afecto
sincero a iodos aquellos
amigos que colaboraron con
su apoyo en la culminación de
esta Tesis.
ÍNDICE
CAPITULO I
1.- INTRODUCCIÓN A LOS SISTEMAS DIGITALES SECUENCIALES 1
1.1.- Introducción.. 1
1.2.- Elementos Biestables 5
1.2.1.- Circuito básico deunFlip -Flop 5
1.2.2.- Flip - Flop tipo SR temporizado 8
1.2.3.- Flip - Flop tipo D temporizado 10
1.2.4.- Flip -Floptipo JKtemporizado 12
1.2.5.- Flip -Flop tipo T temporizado 15
1.2.6.- Disparo de los Flip -Flops 16
a)Flip - Flop Maestro Esclavo 18
b) Flip - Flop Disparado por Flanco 18
1.3.- Sistemas Digitales Secuenciales 20
1.3.1.- Diseño Secuencia! Asincrónico 23
a) Ejemplo de Análisis 26
b) Ejemplo de Diseño 29
1.3.2.- Diseño Secuencia! Sincrónico 32
a) Tabla de Estado 34
b) Diagrama de Estado 36
c) Ecuaciones de Estado 37
1.4.- Contadores Sincrónicos 41
1.4.1.- Contador Binario 42
1.4.2.- Contador Binario Creciente Decreciente 43
1.4.3.- Contador Binario con carga enParalelo 44
1.4.4.- Contador de Anillo 46
1.4.5.- Contador Johnson 47
1.5.- Registros de Desplazamiento 49
1.5.1.- Registro de Desplazamiento con carga serial y paralelo 51
1.5.2.- Registro de Desplazamiento a Izquierda y Derecha 52
1.6.- Detectores de Secuencias de Códigos 54
índice 1
1.6.1.- Reducción de Estados 56
a) Eliminación de Estados por Partición 63
b) Reducción de estados redundantes por medio de la Tabla de
Implicación 66
c) Condiciones No Importa o Términos sin Efecto 74
1.6.2.- Asignación de Estados 75
1.6.3.- Tabla Característica y de Excitación de los Flip Flops 79
CAPITULO II
2.- DISEÑO SECUENCIAL SINCRÓNICO POR EL MÉTODO 82
TRADICIONAL
2.1.- Procedimientos y Ejemplos de Diseño Secuencia! Sincrónico 83
2.2.- Problema General del Diseño Secuencia! Sincrónico 90
2.2.1.- Contadores Sincrónicos 95
2.2.2.- Registros de Desplazamiento 99
2.2.3.- Detectores de Secuencia de Códigos 102
2.3.- Diseño Secuencia! Sincrónico Utilizando Memorias ROM 112
CAPITULO III
3.- DISEÑO SECUENCIAL SINCRÓNICO ASISTIDO POR 116
COMPUTADOR
3.1.- Diagrama de Flujo y Descripción del Programa de Control y Ayudas 119
3.1.1.- Descripción del Programa Principal 119
3.1.2.- Descripción delPrograma de Ayudas 122
3.2.- Diagrama de Flujo de un Programa Tutoría! 124
3.3.- Diagrama de Flujo y Descripción del Programa General de Diseño
Secuencia! Sincrónico 126
3.4.- Diagrama de Flujo y Descripción de Programas Internos 128
3.5.- Diagrama de Flujo del Diseño Secuencia! Sincrónico Utilizando ROM.... 143
índice!
CAPITULO IV
4.- EJEMPLOS DE UTILIZACIÓN DEL PROGRAMA 145
4.1.- Programa Tutorial 146
4.1.1.- Tutorial para el Diseño de Contadores Sincrónicos 147
4.2.- Programa General del Diseño Secuencia! Sincrónico 153
4.2.1.- Contadores Sincrónicos 153
4.2.2.- Detectores de Secuencia de Códigos 160
4.3.- Programa de Diseño Secuencia! Sincrónico Utilizando ROM 166
CAPITULO V
5.- RESULTADOS, CONCLUSIONES Y RECOMENDACIONES 168
Bibliografía 173
Anexos 175
índice 3
1.- INTRODUCCIÓN A LOS SISTEMAS DIGITALES
SECUENCIALES
1.1.- INTRODUCCIÓN
Los circuitos lógicos para los sistemas digitales pueden ser combinacionales o
secuenciales. Un circuito combinacional consiste de compuertas lógicas cuyas salidas se
determinan directamente en cualquier momento dependiendo únicamente de la combinación
presente en las entradas sin tener en cuenta la combinación anterior de las mismas. Un
circuito secuencia! realiza una operación de procesamiento de información específica y
completamente lógica por medio de un conjunto de funciones de Boole. Los circuitos
secuenciales usan elementos de memoria (celdas binarias), además de compuertas lógicas.
Sus salidas son una función de la combinación presente en las entradas y del estado de los
elementos de memoria en el instante analizado. El estado de los elementos de memoria, a su
vez es una función de la combinación previa de las entradas. Como consecuencia, las salidas
de un circuito secuencial dependen no solamente de la combinación presente en las
entradas, sino también de la combinación pasada de las entradas, y el comportamiento del
circuito debe especificarse por medio de una secuencia de tiempos de las entradas y estados
internos que se encuentran presentes en los elementos de memoria.
Aunque cada sistema digital debe tener circuitos combinacionales, la mayoría de los
sistemas encontrados en la práctica incluyen también elementos de memoria, los cuales
requieren que el sistema se describa en términos de lógica secuencial.
Página 1
Un diagrama de bloques de un circuito secuencial se muestra en la Figura 1.1. Este
consiste de un circuito combinacional al cual se le conectan elementos de memoria para
formar un camino de realimenlación. Los elementos de memoria son capaces de almacenar
información binaria dentro de ellos. La información binaria almacenada en los elementos de
memoria en un tiempo dado define el estado del circuito secuencial.
EntradaCircuito combinacional
Elementos dememoria
Salida
FIGURA 1.1: Diagrama de bloques de un circuito secuencial.
El circuito secuencial recibe la información binaria de las entradas externas. Estas
entradas, conjuntamente con el presente estado de los elementos de memoria, determinan el
valor binario de los terminales de salida. El diagrama de bloques demuestra que las salidas
externas de un circuito secuencial son una función no solamente de las entradas externas sino
del presente estado de los elementos de memoria. El estado siguiente de los elementos de
memoria es también una función de las entradas externas y del estado presente. Así un
circuito secuencial se especifica por medio de una secuencia de tiempo de las entradas,
salidas y estados internos.
Hay dos tipos de circuitos secuenciales. Su clasificación depende del tiempo de sus
señales. Un circuito secuencial sincrónico es un sistema cuyo comportamiento puede
Página 2
definirse a partir del conocimiento de sus señales en instantes discretos de tiempo. En los
sistemas sincrónicos la salida correspondiente a unas determinadas condiciones de entrada se
difiere hasta la recepción de una señal de tiempo. Esta señal de tiempo se suministra
simultáneamente a todas las partes del sistema para asegurar el funcionamiento sincrónico de
las mismas. Estas señales de tiempo son trenes de impulsos que se generan
independientemente del sistema, en un generador de impulsos o "rdof\l comportamiento
de un circuito asincrónico dependen del orden en que cambien las señales de entrada y
puedan ser afectadas en un instante dado de tiempo. Los elementos de memoria
comúnmente usados en los circuitos secuenciales asincrónicos son mecanismos retardadores
de tiempo. En los sistemas asincrónicos, las distintas partes del sistema no están
sincronizadas por los impulsos de reloj, aquí es necesario que las distintas salidas mantengan
su valor hasta recibir una orden de cambio del resto del sistema.
La capacidad de memoria de los mecanismos retardadores de tiempo se debe al
hecho de que la señal gasta un tiempo finito para propagarse a través del dispositivo. En la
práctica, el retardo de propagación interna de las compuertas lógicas es de una duración
suficiente como para producir el retardo necesario, de tal manera que las unidades físicas de
retardo de tiempo pueden ser despreciables. En los sistemas asincrónicos tipo compuerta, los
elementos de memoria de la Figura 1.1 consisten en compuertas lógicas cuyos retardos de
propagación constituyen la memoria requerida. Así, un circuito secuencia! asincrónico puede
tomarse como un circuito combinacional con realimentación. Debido a la realimentación
entre las compuertas lógicas, un circuito secuencia! asincrónico puede a veces volverse
inestable. El problema de inestabilidad impone muchas dificultades al diseñador. Por lo
tanto, su uso no es tan común como los sistemas secuenciales sincrónicos.
Página 3
Un sistema lógico secuencia! sincrónico, por definición, puede usar señales que
afecten a los elementos de memoria solamente en instantes discretos de dempo. Una forma
de lograr este propósito es usar sistemas de pulsos de duración limitada a través del sistema,
de tal manera que la presencia o amplitud determinada de un pulso represente un 1 lógico y
la ausencia del pulso (u otra amplitud) represente un O lógico. L¿ dificultad con un sistema
de pulsos es que cualquier par de pulsos que lleguen de fuentes separadas independientes a
las entradas de la misma compuerta mostrarán retardos no predecibles de tal manera que se
separarán los pulsos ligeramente, resultando una operación no confiable.
Los sistemas lógicos secuenciales sincrónicos prácticos \isan amplitudes fijas tales
como niveles de voltaje para las señales binarias. La sincronización se logra por un
dispositivo de tiempo llamado generador maestro de tiempo el cual genera un tren
periódico de pulsos de reloj. Los pulsos de reloj se distribuyen a través del sistema de tal,
manera que los elementos de memoria son afectados solamente con la llegada del pulso de
sincronización. En la práctica, el pulso de reloj se apHca a las compuertas conjuntamente con
las señales que especifican los cambios requeridos en los elementos de memoria. Las salidas
de las compuertas pueden transmitir señales solamente en los instantes que coinciden con la
llegada de los pulsos de reloj.
Los circuitos secuenciales sincrónicos que usan pulsos de reloj en las entradas de los
elementos de memoria se llaman circuitos secuenciales temporizados. Los circuitos
secuenciales temporizados son el tipo más comúnmente usado. No presentan problemas de
inestabilidad y su temporización se divide fácilmente en pasos discretos independientes, cada
uno de los cuales se considera separadamente.
Página 4
1.2.- ELEMENTOS BIESTABLES
•Los elementos de memoria usados en los circuitos secuenciales temporizados se
llaman elementos biestables, más comúnmente conocidos como "Flip - JFlops" (FFs). Estos
circuitos son celdas binarias capaces de almacenar un bit de información. Un circuito
biestable Flip - Flop (FF) tiene dos salidas, una para el valor normal y otra para el valor
complementado del bit almacenado en él. La información binaria puede entrar a un FF en
una variedad de formas, éste hecho, determina diferentes tipos de FFs.
El circuito de un FF puede mantener un estado binario indefinidamente (siempre y
cuando se esté suministrando energía al circuito) hasta que se entregue una señal de entrada
que permita cambiar de estado. La principal diferencia entre los varios tipos de FFs es el
número de entradas que poseen y la manera en la que las mismas afectan el estado binario.
Los tipos de FFs más comunes se discuten a continuación.
1.2.1.- CIRCUITO BÁSICO DE UN FLIP-FLOP
o—i
O—I
s10001
R00101
Q11000
Q100110
a) Diagrama lógico b)Tabla de verdad
FIGURA 1.2: Circuito Básico de un Flip - Flop con compuertas ÑOR.
Página 5
El circuito de un FF puede construirse con dos compuertas NAND o con dos
compuertas ÑOR. Estas construcciones se muestran en los diagramas lógicos de las Figuras
1.2 y 1.3. Cada circuito forma un FF básico en base al cual se puede construir uno más
complicado. La conexión de acoplamiento mtercruzado de la salida de una compuerta a la
entrada de la otra constituye un camino de realimenLación. Por esta razón, los circuitos se
clasifican como circuitos secuenciales asincrónicos. Cada FF tiene dos salidas, Q y QJ cuyos
niveles lógicos son complementarios (con las excepciones que se observan en las tablas
respectivas) entre sí y dos entradas S (set, poner a 1) y R (reset - clear, reponer - borrar o
poner a cero). Este tipo de FF se llama Flip - Flop SR acoplado directamente.
S11010
R01110
Q00111
Q1ii001
R
a) Diagrama lógico b) Tabla de verdad
FIGURA 1.3: Circuito Básico de un Flip - Flop con compuertas NAND.
Para analizar la operación del circuito de la Figura 1.2 se debe recordar que la
salida de una compuerta ÑOR es O si cualquier entrada es 1 y que la salida es 1 solamente
cuando todas las entradas son 0. En éste análisis se debe asumir un punto de partida,
asúmase que la entrada S es 1 y que la entrada R es 0. Como la compuerta 2 tiene una
entrada de 1, su salida Q' debe ser O, lo cual coloca ambas entradas de la compuerta 1 en O,
Página 6
esto determina que la salida Q sea 1. Cuando la entrada S vuelve a O, las salidas
permanecerán iguales ya que la salida Q sigue siendo 1, dejando una entrada de la
compuerta 2 en 1. Esto causa que la salida QJ permanezca en O lo cual coloca ambas
entradas de la compuerta 1 en O y así la salida Q es 1. De la misma manera es posible
demostrar que un 1 en la entrada R cambia la salida Q a O y QJ a 1. Cuando la entrada de
puesta a cero cambia a O, las salidas no cambian.
Cuando se aplica un 1 a ambas entradas, las salidas Q y Q' van a O esta
combinación viola el hecho de que las salidas Q y Q* son complementarias entre sí. En
operación normal esta condición debe evitarse asegurándose que no se aplique un 1 a ambas
entradas simultáneamente.
Un FF tiene dos entradas útiles. Cuando Q = 1 y Q' = O estará en el estado de
puesta a uno (o estado 1). Cuando Q = O y Q' = 1 estará en el estado de puesta a cero (o
estado cero). Las salidas Q y Q' son complementarias entre á, se les trata como salidas
normal y complemento respectivamente. El estado binario de un FF se toma como el estado
binario de su salida normal.
Bajo operación normal, ambas entradas deben permanecer en O a no ser que se
quiera cambiar el estado del FF. La aplicación de un 1 momentáneo a la entrada S causará
que el FF vaya al estado 1 (Set), esta entrada debe volver a O antes que se aplique un 1 a la
entrada R. Un uno momentáneo aplicado a la entrada R causará que el FF vaya al estado
cero o de borrado (Clear). Cuando ambas entradas son inicialmente O y se aplica un 1 a la
entrada S mientras que el FF esté en el estado 1 (Set) o se aplica un 1 a la entrada R
Página 7
mientras que el FF esté en el estado cero o de borrado (Clear), no existirán cambios en las
salidas del FF.
El circuito del FF básico NAND de la Figura 1.3 opera normalmente con ambas
entradas en 1 a no ser que el estado del FF tenga que cambiarse. La aplicación de un O
momentáneo a la entrada de puesta a uno, causará que Q vaya a 1 y Q' vaya a O, llevando el
FF al estado de puesta a uno. Después que la entrada de puesta a uno vuelva a 1, un cero
momentáneo en la entrada de puesta a cero causará la transición al estado de borrado
(Clear). Cuando ambas entradas vayan a 0? ambas salidas irán a 1; esta condición se evita en
operación normal de un FF de este tipo, por ser una condición inestable.
1.2.2.- FLEP - FLOP TIPO SR TEMPORIZADO
El FF básico por sí solo es un circuito secuencia! asincrónico. Agregando
compuertas a las entradas del circuito básico, puede hacerse que el FF responda a los niveles
de entrada durante la ocurrencia de un pulso de reloj. El FF SR temporizado mostrado en la
Figura 1.4 (a) consiste de un FF básico ÑOR y dos compuertas AND. Las salidas de las
dos compuertas AND permanecen en cero mientras el pulso del reloj Ck sea O,
independientemente de los valores de las entradas S y R. Cuando el pulso de reloj vaya a 1,
la información de las entradas S y R se transfiere al FF básico. El estado de puesta a 1 se
logra con R = O, S = 1 y Ck = 1. Para cambiar el estado de puesta a O (o borrado) las
entradas deben ser R = 1, S = O y Ck =1. Con R = 1 y S = 1, la presencia de un pulso de
reloj causará que ambas salidas vayan momentáneamente a 0. Cuando se quite el pulso, el
estado del FF será indeterminado, es decir podría resultar cualquier estado, dependiendo de
Página 8
sí la entrada de puesta a 1 o la de puesta a O del FF básico pennanezcan el mayor tiempo,
antes de la transición a O al final del pulso.
Q
Q1
Qn00001111
s00110011
R01010101
Qn+1001
ND101
ND
a) Diagrama lógico
ND: No determinado
c) Tabla característica
R Ck S Qn
00 01 11 10 '
0
1 )
0
0
'
X
x
^
A
1
( 1J
,. ..
b) Símbolo gráfico
S.R = 0
d) Ecuación característica
FIGURA 1.4: Flip - Flop tipo SR Temporizado.
Página 9
El símbolo gráfico del FF SR sincronizado se muestra en la Figura 1.4 (b). Tiene
tres entradas: S, R y Ck. El triángulo es un símbolo para el indicador dinámico y denota el
hecho de que el FF responde a una transición del reloj de entrada o flanco de subida de una
señal de un nivel bajo (O binario) a un nivel alto (1 binario).
La tabla característica o de función del FF se muestra en la Figura 1.4 (c). Esta
tabla resume la operación del FF. Qn es el estado del FF en un tiempo dado (refiriéndose al
estado presente), las columnas S y R presentan los valores posibles que pueden tener las
entradas y Qni-i es el estado del FF después que haya ocurrido un pulso de reloj
(refiriéndose al estado siguiente). La ecuación característica de este FF se deduce del mapa
de Karnaugh de la Figura 1.4 (d). Esta ecuación especifica el valor del estado siguiente
como una función del estado presente y de las entradas. La ecuación característica es una
expresión algebraica para la información binaria de la tabla característica. Los dos estados
indeterminados se marcan con una X en el mapa, ya que puede resultar como 1 o como 0.
Sin embargo la relación S.R = O debe incluirse como parte de la ecuación característica para
especificar que S y R no pueden ser iguales a 1 simultáneamente.
1.2.3.- FLIP - FLOP TIPO D TEMPORIZADO
El FF tipo D temporizado mostrado en la Figura 1.5 es una modificación del FF
SR temporÍ7.ado. Tas compuertas NAND 1 y 2 forman el FF básico y las compuertas 3 y 4
las modifican para conformar el FF SR temporizado. la entrada D va directamente a la
entrada S y su complemento se aplica a la entrada R a través de la compuerta 5. Mientras
que el pulso de reloj de entrada sea 0? las compuertas 3 y 4 tienen un 1 en sus salidas,
Página 10
independientemente del valor de las otras entradas. Esto está de acuerdo a que las dos
entradas del FF básico NAND (Figura 1.3) permanezcan inicialmente en el nivel de 1.
Qn D0011
0101
Qn+1
0101
a) Diagrama lógico con compuertas NAND c) Tabla característica
Q Q'
CkXX
D
0 ( 1 ^
0
0
1
1
b) Símbolo gráfico d) Ecuación característica
FIGURA 1.5: Flip - Flop tipo D Temporizado
Página 11
La entrada D se comprueba durante la presencia de un pulso de reloj. Si es 1, la
salida de la compuerta 3 va a 0; cambiando el FF al estado de puesta a 1 (a no ser que ya
esté en ese estado). Si es O, la salida de la compuerta 4 va a O cambiando el FF al estado de
puesta a O o borrado.
El FF tipo D describe su nombre por la habilidad de transmitir "datos". Un FF tipo
D es básicamente un FF SR con un inversor a la entrada R. El inversor agregado reduce el
número de entradas de dos a uno. Este tipo de FF se llama algunas veces bloqueador D con
compuertas o FF de bloqueo o retenedor de datos (Data - latch). La entrada Ck se le da a
menudo la designación de variable G (gate) para indicar que esta entrada habilita el FF de
bloqueo para hacer posible que los datos entren al mismo.
El símbolo para el FF D temporizado se muestra en la Figura 1.5 (b). La tabla
característica se lista en la paite (c) y la ecuación característica en la paite (d). La ecuación
característica muestra que el estado siguiente del FF es igual a la entrada D y es
independiente del valor del presente estado.
1.2.4.- FLIP ~ FLOP TIPO JK
Un FF JK es un refinamiento del FF SR ya que el estado indeterminado del tipo
SR se define en el tipo JK. Las entradas J y K se comportan como las entradas S y R
respectivamente para poner a 1 o O (Set o Clear) al FF. Cuando a ambas entradas se aplican
un 1 a J y K simultáneamente, el FF cambia a su estado de complemento, esto es, si Q — 1
cambia a Q = O y viceversa.
Página 12
Q
Q1
9n00001111
J00110011
K01010101
Qn+100111010
a) Diagrama lógico
J Ck K
b) Símbolo gráfico
JK
QrN
c) Tabla característica
00 OÍ lí 10
0
-;-]0
0
( <0
' ](7 ~
I
d) Ecuación característica
FIGURA 1.6: Flip - Flop tipo JK Temporizado
Un FF JK sincronizado se muestra en la Figura 1,6 (a). La salida Q se aplica con
K y Ck a una compuerta AND de tal manera que el FF se ponga a cero (clear) durante un
pulso de reloj solamente si Q fue 1 previamente. De manera similar la salida Q' se aplica con
Página 13
J y Ck a una compuerta AND de tal manera que el FF se ponga a uno con un pulso de
reloj, solamente si Q7 fue 1 previamente.
Como se muestra en la tabla característica en la Figura 1.6 (c), el FF JK se
comporta como un FF SR excepto cuando las entradas J y K sean ambas iguales a 1.
Cuando J y K son iguales a 1, el pulso de reloj tiene efecto y se transmite solamente en la
compuerta AND en cuya entrada está conectada la salida del FF que tiene valor presente
igual a 1. Así, si Q = 1, la salida de la compuerta AND superior de la Figura 1.6 (a) se
convertirá en 1 una vez que se aplique un pulso de reloj y el FF se pondrá a cero. Si Q' = 1
la salida de la compuerta AND inferior de la Figura 1.6 (a) se convertirá en 1 y el FF se
pondrá a uno. En cualquier caso, el estado de la salida del FF se complementa.
Las entradas en el símbolo gráfico para el FF JK deben marcarse con una J
(debajo de Q) y K (debajo de Q')- La ecuación característica se muestra en la Figura 1.6
(d) y se deduce del mapa de la tabla característica Figura 1.6 (c).
Nótese que debido a la conexión de realimentación del FF JK la señal de reloj Ck
que permanece en 1 (mientras J = K = 1) causará transiciones repetidas y continuas de las
salidas después de que las salidas hayan sido complementadas. Para evitar esta operación
indeseable, los pulsos de reloj deben tener un tiempo de duración menor que la demora de
propagación a través del FF. Esta es una restricción, y que la operación del circuito depende
del ancho de los pulsos. Por esta razón los FF JK nunca se construyen como se muestran en
la Figura 1.6 (a). La restricción del ancho del pulso puede ser eliminada con un maestro
esclavo o una construcción activada por flanco.
Página 14
1.2.5.- FLIP - FLOP TIPO T TEMPORIZADO
a) Diagrama lógico
Q1
T Ct
Q
Q1
Qn0011
T0101
QlM0110
c) Tabla característica
b) Símbolo gráfico d) Ecuación característica
FIGURA 1.7: Flip - FIop tipo T Temporizado
El FF T es la versión de una entrada del FF JK. Como se muestra en la Figura
1.7 (a), el FF T se obtiene de un tipo JK al cual se le une las dos entradas. El nombre T se
deriva de la habilidad del FF de variar (Toggle) o cambiar de estado. Independientemente
del presente estado del FF, éste asume el estado de complemento cuando ocurre el pulso de
Página 15
reloj mientras que la entrada T esté en 1 lógico. El símbolo gráfico, la tabla característica y la
ecuación característica del FF T se muestran en la Figura 1.7, partes (b), (c) y (d)
respectivamente. El FF T tiene las mismas restricciones del FF JK de la Figura 1.6 (a).
1.2.6.- DISPARO DE LOS FLIP - FLOPs
*El estado de un FF varía debido a un cambio momentáneo en la señal de entrada.
Este cambio momentáneo se lo llama disparo (trígger) y la transición que lo causa se dice
que dispara el FF. Los FFs asincrónicos, tales como los circuitos básicos de la Figura 1.2 y
1.3, requieren un disparo de entrada definido por un cambio de nivel de señal. Este nivel
debe regresarse a un valor inicial (O en el FF basado en compuertas ÑOR y 1 en aquel
basado en compuertas NAND) antes de aplicarle el segundo disparo. Los FFs sincronizados4j-
se disparan por medio de pulsos, un pulso comienza a partir de su valor inicial de O, va
momentáneamente a 1 y después de un corto período, regresa a su valor inicial 0. El
intervalo de tiempo que ocurre desde la aplicación del pulso hasta que ocurra la transición de
salida, es un factor crítico.
Como se ve en el diagrama de bloques de la Figura 1.1, un circuito secuencial tiene
^ un camino de realimentación entre el* circuito combinacional y los elementos de memoria,-^T-
Este camino puede producir inestabilidad si la salida de los elementos de memoria (FFs)
están cambiando mientras que las salidas del circuito combinacional que van a las entradas
de los FFs están siendo sometidas a prueba por el pulso de reloj. Se puede prevenir el
problema de tiempo si las salidas de los FFs no comienzan a cambiar hasta que el impulso
de entrada haya retornado a O, Para asegurar tal operación, un FF deberá tener un retardo
^ Página 16
de propagación de la señal desde la entrada hasta la saHda, en exceso, con respecto a la
duración del pulso. Este relardo es comúnmente muy difícil de controlar si el diseñador
depende totalmente del retardo de propagación de las compuertas lógicas. Una forma de
asegurar el retardo adecuado es incluir en el circuito del FF una unidad de retardo físico que
tenga un retardo igual o mayor que la duración del pulso. Una forma muy buena de resolver
el problema de temporización por realimentación es hacer que el FF sea sensible a la.
transición del pulso en vez de la duración del pulso.
Un pulso de reloj puede ser positivo o negativo. Una fuente de reloj positiva
permanece en O durante el intervalo entre los pulsos y va a uno durante la ocurrencia de un
pulso. El pulso pasa por dos transiciones de señal: de O a 1 y el regreso de 1 a 0. Como se ve
en la Figura 1.8, la transición positiva se define como flanco positi\>o y la transición
negativa como flanco negativo. Esta definición es aplicable también a los pulsos negativos.
La forma de aplicar el disparo en los flancos es, mediante el uso de un FF Maestro -
esclavo o un FF de disparo por flancos, los cuales se describen a continuación.
Pulso positivo
Flanco FlancoPositivo Negativo
Pulso negativo
Flanco FlancoNegativo Positivo
FIGURA 1.8: Definición de la transición de un pulso de reloj.
Página 17
a) FLIP - FLOP MAESTRO ESCLAVO
Un FF Maestro - esclavo se construye con dos FF sincrónicos separados. Un
circuito sirve como maestro y el otro como esclavo y el circuito completo se trata como un
FF Maestro - esclavo. El diagrama lógico de un FF Maestro - esclavo SR se muestra en la
Figura 1.9. Este consiste de un FF maestro, un esclavo y un inversor. Cuando el pulso de
reloj Ck es O, la salida del inversor es 1. Como el pulso de entrada de reloj del esclavo es 1>
el FF se habilita y la salida Q es igual a Y mientras que Q' se iguala a Y'. El FF maestro se
inhabilita debido a que Ck = 0.
Cuando el pulso de reloj se convierte en 1, la información en las entradas externas
S y R se transmiten al FF maestro. El FF esclavo sin embargo, se aisla por el intervalo en
que el pulso esté en un nivel de 1, ya que la salida del inversor es 0. Cuando el pulso regresa
a O, el FF maestro se aisla, lo cual previene que las entradas externas lo afecten. El FF
esclavo ka al mismo estado que el maestro.
Maestro Esclavo
S .•
R.•
5 Q
>Ck
R Q'
r^
Y
Y'
$ Q
>Ck
R O1
FIGURA 1.9: Diagrama lógico de un FF Maestro - esclavo.
Página 18
b) FLIP - FLOP DISPARADO POR FLANCO
Otro tipo de FF que sincroniza los cambios de estado durante una transición de
pulso de reloj es el FF disparado por flanco. En este tipo de FF, las transiciones de salida
ocurren en un nivel específico del pulso de reloj. Cuando el nivel de entrada del pulso
excede este umbral, se cierran las entradas y el FF es por tanto inactivo a cambios
posteriores en las entradas hasta que el pulso de reloj regrese a cero y ocurra otro pulso.
Algunos FFs disparados por flanco causan una transición en el flanco positivo del pulso y
otros causan una transición en el flanco negativo del pulso.
D
R
Q
Q1
FIGURA 1.10: Flip - Flop tipo D disparado por flanco positivo.
El diagrama lógico de un FF tipo D disparado por flanco positivo se muestra en la
Figura 1.10. Este consiste en tres FFs básicos del tipo mostrado en la Figura 1.3. Las
Página 19
compuertas NAND i y 2 constituyen un FF básico al igual que las compuertas 3 y 4. El
tercer FF básico que comprende las compuertas 5 y 6 genera las salidas del circuito. Las
entradas S y R del tercer FF básico deben mantenerse en lógica 1 para que las salidas
permanezcan en sus valores estables. Cuando S = O y R = 1, la salida va al estado de puesta
a uno con Q = 1. Cuando S - 1 y R = O, la salida va al estado de puesta a cero con Q = 0.
Las salidas S y R se determinan de los estados de los otros dos FFs básicos. Estos dos FFs
básicos responden a las entradas externas D (datos) y a Ck (pulso de reloj).
1.3.- SISTEMAS DIGITALES SECUENCIALES
Los circuitos lógicos cuyas entradas están alimentadas por ñientes externas, sin
realimentación, es decir, sin conexión entre las salidas y las entradas de las compuertas, se
los denomina circuitos combinacionales,
En los circuitos combinacionales, las salidas están determinadas únicamente por las
entradas. Si, en un instante t — t$ cambia alguna de las entradas, consecuentemente las
salidas deben cambiar. Pero las nuevas salidas dependen solamente de las entradas después
del instante de tiempo t = to y no del valor que tuvieron las salidas y las entradas antes de
ese instante de tiempo. Estos circuitos combinacionales no tienen memoria. Las salidas
actuales dependen de las entradas actuales, pero no de los valores de entradas y salidas
anteriores. Cuando cambian las entradas hay un intervalo muy breve de tiempo durante el
cual las salidas no reflejan ningún cambio. Este breve intervalo es una consecuencia del
retardo finito de propagación a través de las compuertas. Retardos de propagación
frecuentemente muy pequeños.
Página 20
Existen otros circuitos con realimentación en donde las salidas dependen no sólo de
las entradas actuales, sino también de su historia pasada. Esto es, las salidas actuales
dependen de la secuencia de valores lógicos en las enü'adas y de la condición almacenada en
memoria. Estos circuitos lógicos se denominan secuendales.
Cada etapa que atraviesa un circuito secuencia! se denomina estado. En cada
estado el circuito almacena información de su historia pasada, para saber que hacer a
continuación. Un estado se distingue de otro por su información almacenada. Parecerá que,
a medida que pasa el tiempo, es necesario añadir nuevos elementos a la memoria y, por
consiguiente, desarrollar una secuencia ilimitada de estados nuevos y diferentes. Sin
embargo, parece que no toda la historia pasada es relevante, ni todos los estados por los que
pasa el sistema son diferentes entre sí y que el número total de estados es bastante limitado.
Un ejemplo servirá para ilustrar este argumento.
Si se tiene la tarea de mirar una fila de cinco bombillas de luz, numeradas del 1 al 5,
que normalmente están apagadas. Una bombilla cualquiera, pero solamente una cada vez, se
ilumina brevemente de vez en cuando. Se indica que si se ilumina la bombilla 1, después la
2, y así sucesivamente hasta la número 5, al terminar esta secuencia hacer sonar una alarma,
y si el orden de destellos no sigue esa numeración, éste debe ignorarse hasta que se encienda
la luz 1 nuevamente para reiniciar el proceso. Así, cuando finalice la secuencia 1, 23 3, 4, 5,
debe sonar la alarma. Si aparece la secuencia 1, 2, 4, ..., después de observar el destello dé la
luz 4 se puede ignorar lo que sucede a continuación, ya que no se ha seguido el orden
requerido, y se pueden seguir ignorando los destellos hasta que la. luz 1 se encienda de
nuevo, ya que puede ser el comienzo de una secuencia de destellos en el orden requerido.
Página 21
Se puede determinar fácilmente el número de estados diferentes y distintos que
tendrá este sistema, considerando lo que es relevante: que las luces no se han encendido,
que se ha encendido la luz 1 y después la luz 2, y así sucesivamente, hasta que aparezca la
secuencia 1} 2, 3, 4, 5 y entonces se haga sonar la alarma. Como se ve hay un total de 6
mensajes diferentes que es necesario tener en cuenta, por tanto 6 datos y estados diferentes.
El número de diferentes secuencias de encendido que se pueden observar es
grande, pero no todas las varias secuencias son diferentes de una forma relevante. Si se
supone, por ejemplo, que se observa la secuencia 3, 2, 4, 5, 1, 2, 5, 3, 1, 4, 2, 1, 2. Todo lo
que se necesita recordar de esta secuencia es que los dos últimos encendidos fueron 1 y 2.
Así pues, esta secuencia coloca al sistema en el mismo estado que la secuencia 1, 2. Ahora si
se supone que se visualiza la secuencia 1, 2, 3, 4, 2, 5, 3, 2, 1, 3, cuando finalice el sistema
se encontrará en el mismo estado que si no se hubiese encendido ninguna luz.
Para implementar un sistema con componentes lógicos, se utilizarán FFs como
memoria. Si el sistema tiene, por ejemplo, 6 estados de recuerdo, como en el ejemplo,
consecuentemente se necesita 6 estados en los FFs. Para disponer de 6 estados se necesitan
3 FFs. En realidad con 3 FFs se disponen de 8 estados, que irían de QiQiQo = 000 a
QaQiQo = ni? como se necesitan solamente 6, no se utilizarían 2 estados.
El comportamiento de los circuitos secuenciales se determina de las entradas, las
salidas y los estados de los FFs. Tanto las salidas y el estado siguiente son una función de las
entradas y del presente estado. El análisis de los circuitos secuenciales consiste en obtener
una tabla o un diagrama de la secuencia de tiempo de las entradas, salidas y estados internos.
Página 22
Con respecto a la secuencia de tiempo se debe considerar cuando el sistema no posee un
reloj y lambién cuando si lo tiene. En estos casos se pueden definir dos tipos de sistemas
secuenciales; asincrónicos y sincrónicos, que se describen a continuación.
1.3.1.- DISEÑO SECUENCIAL ASINCRÓNICO
Xo
XI
vo
y
y*-
JXJ
».
LCC
C/
I)•N
•v
(
Q Dck
Q 0C*
Q DCX
YO
Y1
...y H
XO
XI
(1EOJNOMBOS)
a) b)
(EXrTKdONCI)
FIGURA 1.11: a) Estructura de un circuito secuencial sincrónico, b) Estructura de uncircuito secuencial en modo fundamental (asincrónico).
A los sistemas secuenciales asincrónicos se los considera como sistemas
secuenciales fundamentales porque los conceptos relacionados con los sistemas secuenciales
Página 23
asincrónicos sustentan las características de los sistemas sincrónicos. Los circuitos
sincrónicos tienen incorporado un circuito secuencia! asincrónico con un FF temporizado el
cual es el corazón de un sistema sincrónico.
Los circuitos asincrónicos no son comprendidos ampliamente, porque situaciones
como velocidad crítica, estados casuales, riesgo dinámico, riesgo indispensable y
oscilaciones deben tenerse muy en cuenta por los diseñadores en el manejo de estos
circuitos los cuales pueden dificultar el diseño e implementación de estos sistemas.
En la Figura 1.11 (a) se presenta la estructura lógica de un circuito secuencial. Se
puede pensar razonablemente que el propósito del FF es suministrar un retardo entre los
cambios en los niveles lógicos en las líneas de estado siguiente y el cambio correspondiente
en las líneas del estado actual. Los cambios en las líneas de entrada XQ, xi, ..., x^j si los
hay, ocurren nominalmentc en el inslante de una transición de disparo de reloj y las líneas
del estado siguiente YO, Yj, ..., Y^.j responden inmediatamente. Sin embargo, el cambio
correspondiente en las líneas de estado presente yo, y^} ..., y^-j se retarda hasta la ocurrencia
de la siguiente transición de disparo del reloj.
Estas consideraciones sugieren que la estructura de la Figura 1.11 (b) puede
constituir un circuito secuencial. Aquí los FFs se han sustituido por elementos que
introducen un retraso. Un tipo de retraso resulta cuando una señal eléctrica se transmite a
través de un hilo largo, una compuerta lógica o de una cascada de compuertas. La diferencia
esencial entre el retardo de la Figura 1.11 (a) y (b) es que en el último caso, el retardo se
determina completamente por el retardo del elemento y no por xina señal externa (señal de
Página 24
reloj). En la práctica, generalmente los elementos retardadores en la circuitería de la Figura
1.11 (b) no se introducen deliberadamente sino que son debidos a las compuertas de la parte
lógica del sistema.
Cuando el sistema de la Figura 1.11 (a) está en condición estacionaria en uno de
sus estados, las entradas yo, yj, • -, yk-i pueden ser diferentes de las salidas lógicas YO, Y3,
..., Yk-i. En la Figura 1.11 (b) en condición estacionaria, las entradas y salidas lógicas
deben coincidir ya que en respuesta a un cambio de una linea de entrada x^ xjf ..., x^i las
líneas YO, Yj, .., Y^-i cambiarán y como mínimo, durante el tiempo de retardo, las líneas Y
deben ser diferentes de las líneas y.
Como las Y e y son diferentes entre sí sólo transitoriamente y durante un intervalo
que no es controlable externamente, hay apatía por parte de algunos en llamarles variables de
estado siguiente y del estado actual. Por ello las Y se denominan frecuentemente variables
de excitación y las y, variables secundarias. El circuito secuencia! de la Figura 1.11 (a)
tque utiliza k FFs y tiene k líneas de estado puede tener hasta 2 estados diferentes.
Consecuentemente, el circuito de la Figura 1.11 (b) que utiliza k elementos de retardo
^también tendrá 2 estados.
Como se ha señalado, los circuitos secuenciales que utilizan FFs con señales de
reloj se denominan sistemas sincrónicos. En contraste, los circuitos que utilizan elementos de
retardo se denominan sistemas en modo fundamental. Históricamente, los sistemas en
modo fundamental aparecieron antes que los sincrónicos, estos últimos presentan muchas
Página 25
ventajas: son más fáciles de diseñar y están Hbres de retardos de propagación, variables y
situaciones impredecibles. Además los sistemas en modo fundamental tienen en la actualidad
aplicaciones algo limitadas.
a) EJEMPLO DE ANÁLISIS
(XO)R
(X1)8 ^
FIGURA 1.12: Ejemplo de un circuito en modo fundamental.
Un ejemplo muy sencillo de un circuito en modo fundamental se da en la Figura
1.12. Se lo ha dibujado con el patrón de la Figura 1.11 (b). Se reconoce fácilmente como
un retenedor estático y se han rotulado aproximadamente los terminales. Las entradas XQ y
x-! son las de reset y set y la salida Z es el terminal Q del FF. En el presente ejemplo hay
una línea de estado Y conectada a y que coincide con la línea Z. El retardo de la línea que
suministra realimentación de la salida lógica a la entrada lógica no se muestra explícitamente.
Como se ha señalado, este retardo es realmente consecuencia de los retardos de propagación
de las compuertas. Como el estado se determina por el nivel lógico en una línea, puede
esperarse que el sistema tenga dos estados.
El comportamiento del circuito de la Figura 1.12 se describe en la tabla de la
Figura 1.13 (a). Aquí se presenta un diagrama correspondiente a cada una de las ocho
Página 26
posibles combinaciones de las tres variables lógicas de entrada y, S y R. En cada
comportamiento se ha puesto el valor correspondiente a la salida Y (Z). Cuando S y R no
cambian y el sistema está estacionario en uno de sus estados estables, claramente se tiene que
Y = y. Para indicar los estados estables la entrada correspondiente a Y en la tabla se ha
encerrado en un círculo. Las entradas que no están en círculos corresponden a situaciones
que pueden persistir sólo transitoriamente y se refieren a estados inestables.
00 01 11 10
SR
KM 1
00 01 11 10
a) Y,* b)ES
EA: Estado actualES: Estado siguiente
FIGURA 1.13: a) Tabla de transición para el circuito de la Figura 1.12. b) Tabla deestados para el circuito de la Figura 1.12.
Esto es consistente con lo esperado, que cuando S = R = O hay dos estados
estables, uno en el que la variable de estado y = O y otro en el que y = 1. Ahora se supone
que S = O, R - 1, entonces como indica la flecha de trazo continuo, el sistema queda en el
mismo estado estable con y = 0. Un cambio posterior a S = 1, R = 1 deja al sistema en el
estado y = 0. A continuación si las entradas S = R = 1 cambian a S = l y R = 0 , esta
situación se analiza bajo las siguientes condiciones: en el diagrama de la Figura 1.12 se
supone que no hay retardos de propagación a través de las compuertas y que existe un
Página 27
elemento de retardo entre Y e y. Entonces como se indica en la tabla de la Figura 1.13 (a),
con S = 1, R = 0 e y = 0 s e tiene que Y = 1, esta situación no persistirá después de un
retardo, el valor Y = 1 aparecerá en y, por lo tanto se tendrá que y = 1. Se puede también
ver en la misma figura que s i S = l ) R = O e j = Y = lesun estado estable. Así, en suma
cuando se está en el estado y = O con SR = 11, un cambio a SR = 10 lleva transitoriamente
al sistema a un estado inestable, se indica en la Figura 1.13 (a) por la flecha de línea
discontinua. De forma similar, comenzando de nuevo en ySR = 000 y se cambia a S = 1
pasará por el estado inestable ySR. = 010 y finalizará en el estado estable j>SR =110.
Comenzando en el estado estable ySR = 101 un cambio a SR = 00 dejaría en el
estado y = 1. Un cambio a SR = 11 ó SR = 01 haría volver al estado y = 0. La tabla de la
Figura 1.13(a) se denomina tabla de transición, en ella los estados se han identificado por
los niveles lógicos en las líneas de estado.
De manera algo más general si simplemente se requieren los nombres de los estados
sin hacer referencia específica a los niveles lógicos, la tabla aparecerá como en la Figura
1.13 (b). Aquí los estados se identifican por a y A, a esta tabla puede denominarse
razonablemente tabla de estados. Se ve una correspondencia entre la transición presente y las
tablas de estado y las transiciones y tablas de estado en los sistemas sincrónicos. Hay una
restricción que se aplica en el caso asincrónico que no ocurre en el caso sincrónico. En el
caso asincrónico debe haber como mínimo una entrada ES (estado siguiente) que sea la
misma que la EA (estado actual). De otra forma el estado contemplado no estaría en la tabla
de estados. También en el caso sincrónico ES y EA se refieren a los estados en cada período
de reloj. En el caso asincrónico ES y EA se refieren a los niveles lógicos de las líneas y e Y.
Página 28
b) EJEMPLO DE DISEÑO
Los conceptos utilizados en esU sección del análisis en gran manera acrecentarán el
entendimiento del enfoque tradicional de diseño. Para este propósito, se considera el método
de análisis mediante la realización de un ejemplo.
X
A
B
C
D
@,oo
©.10
®.oi
©.uES, ZIZO
(a)
00
01
10
11
(00). 00
(Í0),10
©,01
(Q)*11Y1YO, ZIZO
(b)
X*
00
01
10
1 1.
_©_10
@00
01
©11(u)
Y1YO (también) ZIZO
(o)
jrEA
A
B
C
T)
®,ooc
©,10
A
B
(3>.oiD
(5>,i iES, ZIZO
(d)
FIGURA 1.14: a) Diagrama de estados de un contador módulo 4. b) Asignación deestados realizada para la tabla de estados del contador, c) Se hacenasignaciones de estados inestables para dirigir el circuito, d) Tabla deflujo.
Página 29
Como ejemplo sencillo de diseño, se considera un circuito de una sola entrada X y
dos salidas 2/i y Zo- £1 circuito debe contar en módulo 4 el número de cambios de niveles
lógicos de la entrada X. Entonces comenzando con^Y= O y ZjZo = 00, se desea que cuando
A" realice una secuencia X= O — * 1 — * O — * !• — * O, etc., la salida recorra la secuencia
- 00 — * 01 — » 10 — * 11 — * 00, etc.
Claramente se ve la necesidad de cuatro tablas de estado e inevitablemente el
diagrama de estados de la Figura 1.14 (a). Cuando X = O se encuentra en el estado A y la
salida ZiZo = 00. Cuando X cambia de O a 1, se desea ir al estado B con ZjZo = 01. De B ir
a Q de allí a D y finalmente volver a A. En la Figura 1. 14 (b) se realiza una asignación de
estados, que de acuerdo con la tabla al estado A se le asigna YiYo = yjyo = 00, etc. La
asignación de estados se ha realizado haciendo YiYo = Z^Zo en cada caso con el fin de
poder simplificar la circuitería lógica.
Volviendo al estado A, se señaló que cuando X cambia de O a 1 se va a una
columna en la que hay dos estados estables. ¿Cómo se puede asegurar que se finalice en el
estado correcto que es B y no D?. Un esquema bastante simple se da en la Figura 1.14 (c).
Aquí en la posición de la tabla paraj^^ = 00 y X = 1 se ha hecho la entrada YiY0 = 01.
Por consiguiente, cuando el sistema esté en el estado yjyo = 00 (estado A), un cambio en X
de O a 1 provoca un cambio inmediato en YI e YO a YiYo = 01. Poco tiempo después (el
tiempo de retardo) yjyo asume los valores YiYo y tenemos YiYo = yjyo — 01 que es
precisamente lo que se requiere para mantener el circuito en el estado B. Si la entrada en la
Página 30
= 100 ha sido YjYo - 11 entonces correspondientemente habría ido del estado A al D. En
general cuando se va de una columna en la que se dispone de más de un estado estable, se
fabrican las entradas apropiadas en las posiciones correspondientes a estados inestables, para
dirigir al sistema al estado siguiente estable apropiado. Estas direcciones que no están
incluidas en la tabla de la Figura 1.14 (a) se incluye en la tabla de la Figura 1.14 (d).
En la Figura 1.14 (d) no se ha especificado ZjZo en las posiciones de la tabla con
estados inestables. Se decide que como esos estados duran muy poco, los valores de
son inoperantes.
ylyO yO
X00 01 11 10 00
0
( i
iyor i
01 11
0
JL
0
i
10
0
' )1
1 J
(a) Ya (b)Y0
FIGURA 1.15: Diagrama K de YI e Y o para el contador módulo 4.
Ahora se puede construir el diagrama lógico partiendo de la información de la
Tabla 1.14 (c). A partir de esla tabla se pueden fabricar las entradas de los mapas de
Karnaugh para YI e YO como en la Figura 1.15 (a) y (b). De donde se obtiene:
Página 31
y el circuito se dibuja en la Figura 1.16.
YO
Y1Z1
FIGURA 1.16: Diagrama del circuito del contador módulo 4.
1.3.2.- DISEÑO SECUENCIAL SINCRÓNICO
Un diagrama lógico se reconoce como un circuito secuencial si este incluye FFs.
Los FFs pueden ser de cualquier tipo y el diagrama lógico puede o no incluir compuertas
combinacionales. En esta sección, se introduce primero un ejemplo de un circuito secuencial
temporizado y luego se presentan varios métodos para describir el comportamiento de los
circuitos secuenciales. Para ilustrar los diferentes métodos a lo largo de la discusión se usará
un ejemplo específico.
Un ejemplo de un circuito secuencial temporizado se muestra en la Figura 1.17.
Tiene una variable de entrada, una variable de salida y dos FFs temporizados SR llamados
Página 32
A y B. Las conexiones realimentadas de las salidas de los FFs a las entradas de las
compuertas no se muestran explícitamente en el dibujo para facilitar el trazado del mismo.
En vez de ello, se reconocen las conexiones por su lelra marcada en cada entrada. Por
ejemplo, la entrada marcada.*:' en la compuerta 1 designa una entrada del complemento de
je. La segunda entrada A designa una conexión a la salida normal del FF - A.
B
FIGURA 1.17: Ejemplo de un circuito secuencia! temporizado.
En este ejemplo se asume que hay disparo por flanco negativo en ambos FFs y en
la fuente que produce la entrada externa x. Por tanto, las seriales para un estado presente
dado están disponibles durante el tiempo en que se determina un pulso de reloj y empiece el
siguiente, en cuyo momento el circuito pasa al estado siguiente.
Página 33
a) TABLA DE ESTADO
La secuencia de tiempo de las entradas, salidas y estados de los FFs pueden
enumerarse en una tabla de estado. Una tabla de estados esta definida por dos grupos de
ecuaciones, las ecuaciones de salida y las ecuaciones de estado siguiente. La tabla de estado
del circuito de la Figura 1.17 se muestra en la Tabla 1.1.
Qn+i = S + R'.Qn (Ecuación del FF- SR)
An+1 = B-c' + (B jt'y.A Bn+1 = A'-c + (A. *0'.B
Afl+1 = B-c' -f (B + x').A Bn+1 = A'je + (A* + *).B
i=x. AJB'
Estado siguiente
Estado presente
AB
00011011
, = 0
AB
00111010
X=l
AB
01010011
Salida
, = 0
2
0
000
x = l
2
0010
TABLA 1.1: Tabla de estado para el circuito de la Figura 1.17.
La tabla consiste en tres secciones llamadas estado presente, estado siguiente y
salida. El estado presente designa los estados de los FFs antes de la ocurrencia de un pulso
de reloj. El estado siguiente muestra los estados de los FFs después de la aplicación del
pulso de reloj y la sección de salida lista los valores de las variables de salida durante el
presente estado. Las secciones de estado siguiente y de salida tienen dos columnas, una para
la entrada x — O y la otra para x = 1.
Página 34
La deducción de la tabla de estados comienza a partir de un estado posible
cualquiera que se asume inicial. El estado inicial de la mayoría de los circuitos secuenciales
prácticos se define como el estado con ceros en todas las salidas normales de los FFs.
Algunos circuitos secuenciales tienen un estado inicial diferente y otros no tienen ninguno.
En cada caso, el análisis puede comenzar a partir de cualquier estado arbitrario, en este
ejemplo, la tabla de estado empieza con el estado inicial 00.
Cuando el presente estado es AB = 00. Del diagrama lógico, se observa que con los
FFs en O y x = O, ninguna de las compuertas AND produce una señal lógica 1. Por tanto, el
estado siguiente permanece sin cambiar con la salida t en 0. Con AB = 00 y x - 1, la
compuerta 2 produce una señal lógica 1 en la entrada S del FF - B y la compuerta 3
produce una señal lógica 1 en la entrada R del FF - A. Cuando el pulso de reloj dispara los
FFs, A se pone a cero y B se pone a uno, produciendo el estado siguiente 01 con la salida z
en 0. Esta información se lista en la primera fila de la tabla de estado.
De manera similar, se puede deducir el estado siguiente comenzando a partir de los
otros tres estados presentes posibles. En general, el estado siguiente es una función de las
entradas, el estado presente y el tipo de FF usado. Las entradas para la sección de salida son
más fáciles de deducir. En este ejemplo, la salida z es igual a 1 solamente cuando x = 1, A =
1 y B = 0. Por tanto las columnas de salida se marcan con O, excepto cuando el estado
presente es 10 y la entradaA:= 1, para lo cual z se marca con un 1.
La tabla de estado de cualquier circuito secuencia! se obtiene por el mismo
procedimiento dado en este ejemplo. En general un circuito secuencia! con n FFs y m
Página 3 5
variables de entrada tendrá 2 tilas, una para cada estado. El estado siguiente y la salida
tendrán cada una 2 columnas, una para cada combinación de entrada.
Las salidas externas para un circuito sccucncial puede venir de compuertas lógicas o
elementos de memoria. La sección de salida en el estado estable es necesaria solamente si
hay tres salidas de las compuertas lógicas. Cualquier salida externa tomada directamente de
un FF se lista en la columna de estado presente de la tabla de estado. Por tanto la sección de
salida de la tabla de estado puede ser excluida si no hay salidas extemas de las compuertas
lógicas.
b) DIAGRAMA DE ESTADO
Entrada actual
\SaIida actual
FIGURA 1.18: Diagrama de estados para el circuito de la Figura 1.17
La información disponible en la tabla de estado puede representarse gráficamente
en un diagrama de estado. En este diagrama se representa un estado por un círculo y la
transición entre estos se indica por líneas dirigidas que conectan los círculos. El diagrama de
estado del circuito secuencia! de la Figura 1.17 se muestra en la Figura 1.18. El estado
Página 36
binario dentro de cada circuito identifica el estado representado por el círculo (a un estado
también se lo puede identificar por símbolos de letras). Las líneas dirigidas se marcan con
dos números binarios separados por /. El valor de entrada que causa la transición de estado
se marca primero; el número enseguida después del símbolo / da el valor de la salida durante
el presente estado. Por ejemplo, la línea dirigida del estado 00 a 01 marcada 1/0, significa
que el circuito secuencial está en el estado presente 00 mientras que j t = l y z = 0y que al
finalizar el siguiente pulso de reloj, el circuito va al estado 01. Una línea dirigida que conecta
un círculo a sí mismo indica que no hay cambio de estado. El diagrama de estado suministra
la misma información que la tabla de estado y se obtiene directamente de esta o viceversa.
No hay diferencia entre una tabla de estado y un diagrama de estado excepto en la
forma de la presentación. La tabla de estado es más fácil deducir a partir de un diagrama
lógico dado y el diagrama de estado da una vista pictórica de las transiciones de estado y está
en una forma disponible para interpretación binaria de la operación del circuito. El diagrama
de estado se usa a menudo como la especificación inicial de diseño de un circuito secuencial.
c) ECUACIONES DE ESTADO
Una ecuación de estado es una expresión algebraica que especifica las condiciones
para la transición de estado de un FF. El lado izquierdo de la ecuación denota el estado
siguiente del FF y el lado derecho una función de Boole que especifica las condiciones del
presente estado que hacen el estado siguiente igual a 1. Una ecuación de estado es similar en
forma a una ecuación característica de un FF, excepto que especifica las condiciones del
estado siguiente en términos de las variables de entrada extemas y otros valores de los FF.
Página37
La ecuación de estado se deriva directamente de la tabla de estado. Por ejemplo, la ecuación
de estado para el FF - A se deriva por inspección de la Tabla 1.1. De las siguientes
columnas de estado? se nota que el FF - A va al estado 1 cuatro veces: cuando x = O y AB =
01 ó 10 ó 11, o cuando x = 1 y AB = 11. Esto puede expresarse algebraicamente en la
ecuación de estado de la siguiente manera.
= A'.B + A.B'
El lado derecho de la ecuación de estado es una función de Boole para el estado
presente. Cuando esta función es igual a 1, la ocurrencia de los pulsos de reloj causa que el
FF - A tenga el estado siguiente de 1. Cuando una función es igual a O, el pulso de reloj
causará que A tenga el estado siguiente de 0. El lado izquierdo de la ecuación identifica los
FFs por un símbolo de letra seguido de una designación en función del tiempo (n + 1), para
enfatizar que este valor será alcanzado por el FF, un pulso posterior de la secuencia.
Bx
\ 00 01 f 11 10
0
jj
0
0
0
( 11
[ix /
X
A \
- M '
00 01 ( 11 10
0
0
( 10
r — ̂u j^
1
1 )0
An+i = B.x' + (B + x')-A
A'.x+(A.x')'.B
FIGURA 1.19: Ecuaciones de estado para los Flip - Flops A y B.
Página 38
La ecuación de estado es una función de Boole con un tiempo incluido. Es
aplicable solamente en los circuitos secuenciales de reloj, ya que An+i se define para que
cambie de valor con la ocurrencia del pulso de reloj en instantes discretos de tiempo.
La ecuación de estado del FF - A se simplifica por medio de un mapa como se
muestra en la Figura 1.19 (a). Con alguna manipulación algebraica, la función puede
expresarse de la siguiente forma:
si se hace que B.x} — Sy B3.x — R, se obtiene la siguiente relación:
la cual es una ecuación característica de un FF - RS Figura 1.4 (d) (página 9). Esta relación
entre la ecuación de estado y las ecuaciones características del FF pueden justificarse por
inspección del diagrama lógico de la Figura 1.17. En éste se ve que la entrada S del FF - A
es igual a la función de Boole BJC' y la entrada R es igual a B'jc. Sustituyendo estas
funciones en la ecuación característica del FF, dará como resultado la ecuación de estado
para el circuito secuencia! en análisis.
La ecuación de estado para un FF en un circuito secuencia! puede deducirse de una
tabla de estado o de un diagrama lógico. La deducción de una tabla de estado consiste en
obtener la función de Boole especificando las condiciones que hacen el estado siguiente del
Página 39
FF un 1. La deducción a partir de un diagrama lógico consiste en obtener las funciones de
las entradas del FF y sustituirlas en la ecuación característica del Flip - Flop.
La derivación de la ecuación de estado del FF - B a partir de una tabla de verdad se
muestra en el mapa de la Figura 1. 19 (b). Los 1 marcados en el mapa son las entradas y las
combinaciones de entrada que causan que el FF pase al estado siguiente de 1. Estas
condiciones se obtienen directamente de la Tabla 1.1. La forma simplificada que se obtiene
en el mapa se manipula algebraicamente y la ecuación de estado que se obtiene es:
La ecuación de estado puede derivarse directamente a partir del diagrama lógico.
De la Figura 1.17 se observa que la señal para la entrada S del FF - B se genera por la
Función A1 je y la señal para la entrada R por la función A_cJ. Sustituyendo S = A* je y R =
AJC' en la ecuación característica del FF - RS dada por:
Bn+j — S + R'.B
se obtiene la ecuación de estado derivada anteriormente:
Las funciones de estado de todos los FFs, conjuntamente con las funciones de
salida, especifican totalmente un circuito secuencia! EHas representan, algebraicamente, la
misma información que expresa una tabla de estado en forma tabular y un diagrama de
estado en forma gráfica,
Página 40
1.4.- CONTADORES SINCRÓNICOS
Un FF tiene dos estados, un arreglo de n FFs tiene 2D estados. El estado de un
arreglo de n FFs se especifica indicando qué FFs están en set y cuáles en reset. Un
contador es un arreglo de FFs que pasa de estado en estado, en respuesta a un suceso. Un
suceso puede ser un ciclo de una señal de reloj. En cualquier caso, el contador cuenta ci
número de sucesos.
El número de estados que atraviesa el contador antes de volver al estado inicial se
denomina módulo del contador. Un contador construido con n FFs puede tener un módulo
que como máximo es 2 , pero se puede, si es necesario disponer de contadores que no pasen
por todos sus posibles estados. En este caso su módulo sería menor de 2n.
Los contadores vienen en dos categorías: contadores de rizado (ripple counter) y
contadores sincrónicos. En un contador de rizado, la transición de salida del FF sirve como
fuente para disparar otros FFs. En otras palabras, las entradas Ck de todos los FFs se
disparan no por los pulsos de entrada sino por la transición que ocurre en los otros FFs.
En un contador sincrónico, los pulsos de entrada se aplican a todos los Ck de todos
los FFs. El cambio de estado de un FF en particular es dependiente del estado presente de
otros FFs. El pulso de reloj común dispara todos los FFs simultáneamente.
En esta sección se presenta algunos contadores típicos sincrónicos y se explica la
forma de operación y características de diseño de los mismos para su mejor entendimiento.
Página 41
1.4.1.- CONTADOR BINARIO
El diseño de contadores binarios sincrónicos es tan simple que no es necesario pasar
por un proceso de diseño lógico secuencial riguroso. En un contador binario sincrónico, se
complementa el FF (tipo T ó JK) en la posición de menor orden con cada pulso. Esto
significa que las entradas Jy K deben mantenerse en 1. Un FF en cualquier otra posición se
complementa siempre y cuando todas las posiciones de menor orden sean iguales a 1, por
que los bits de menor orden cambiarán a O en el siguiente pulso de cuenta. La cuenta binaria
dice cuando el siguiente bit de mayor orden debe ser complementado. Por ejemplo, si el
estado presente de un contador de 4 bits es = 0011, la siguiente cuenta será
0100. AO se complementa siempre. AI se complementa porque el estado presente de AQ es
1. AI se complementa por que el estado presente de AjAo = 11. Pero Aj no se complementa
porque el estado presente de = Olí, lo cual no dará una condición de todos Is.
FIGURA 1.20: Contador binario sincrónico de 4 bits.
Página 42
Los contadores sincrónicos binarios tienen un patrón regular y pueden fácilmente
ser construidos con FFs complementados y compuertas. El patrón regular puede verse
claramente del contador de 4 bits ilustrado en la Figura 1.20. El contador puede expandirse
a cualquier número de etapas, cada etapa contendrá un FF adicional y una compuerta AND
que da una salida de uno si todas las salidas de los FFs previos son 1.
1.4.2.- CONTADOR BINARIO CRECIENTE - DECRECIENTE
FIGURA 1.21: Contador binario creciente - decreciente de 4 bits.
En un contador binario sincrónico decreciente, si se considera las salidas
complementadas el FF en la posición de menor orden se complementa con cada pulso. Un
FF en cualquier otra posición se complementa con un pulso siempre y cuando todos los bits
Página 43
de menor orden sean iguales a uno. Por ejemplo si el estado presente de un contador binario
de 4 bits decreciente es A3A2AiAo = 1100, la cuenta siguiente será 1011. Las salidas
A3íA2íAi'Ao' = 0011, A0T siempre se complementa. AI' se complementa porque el estado
presente de AOJ = 1. A^' se complementa porque el estado presente de Aj'Ao' = 11. Aa1 no
se complementa porque el estado presente de A2)AiíAo' — Olí, el cual no es una condición
de todos unos. Al final se tiene Aa'Ai'Ai'Ao' = 0100 y AaA2AiAo = 1011 que es la cuenta
siguiente. Un contador binario decreciente puede ser construido como se muestra en la
Figura 1.21, considerando que las entradas de las compuertas AND deben venir de las
salidas complementadas Q' y no de las salidas normales Q de los FFs previos como en el
caso del contador creciente. Un contador binario capaz de contar hacia arriba o hacia abajo
se muestra en la Figura 1.21. Cuando la entrada de control creciente es igual a 1, el circuito
cuenta hacia arriba, ya que las entradas T se determinan a partir de los valores previos de las
salidas normales en Q. Cuando la entrada de control decreciente es 1, el circuito contará
hacia abajo, ya que las salidas complementadas Q* determinan los estados de las entradas T.
Cuando ambas señales de control creciente y decreciente son O, el registro no cambia de
estado, permanece en la misma cuenta.
1.4.3.- CONTADOR BINARIO CON CARGA EN PARALELO
Los contadores usados en los sistemas digitales a menudo requieren una condición
de carga en paralelo para transferir un número binario inicial antes de la operación de
conteo. La Figura 1.22 muestra el diagrama lógico de un registro que tiene una
característica de carga en paralelo y puede operar también como un contador.
Página 44
La entrada de control de carga, cuando es igual a 1, inhabilita la secuencia de
cuenta y causa la transferencia de datos IQ hasta I3 a los FFs AO hasta A¿ respectivamente
mediante un pulso de reloj (carga sincrónica). Si la entrada de carga es O y la entrada de
control de cuenta es 1, el circuito opera como un contador. Los pulsos de reloj causan
entonces cambios del estado de los FFs de acuerdo a la secuencia de cuenta binaria. Si
ambas entradas de control son O, los pulsos de reloj no cambian el estado del registro. La
entrada de borrado es asincrónica y cuando está en O, causará que el contador sea puesto a
cero, independientemente de la presencia de los pulsos de reloj y de las otras entradas.
1.4.4.- CONTADOR DE ANILLO
QO 02
RELOJ
1 C
rr -o
iCk
Ff.
R)
i
i C
FF -1
>Ck
c(.;L?
i i
c
FF - 3
>Ck
ct:Lj
i i <
FF -3_
i C » C k
CL
V
INICIO
FIGURA 1.23: Contador anillo módulo 4.
El circuito ilustrado en la Figura 1.23 es un contador de anillo módulo 4. Se puede
ver que es un registro de desplazamiento conectado para desplazar cíclicamente a la derecha.
En principio el terminal inicializador se pone brevemente a 1, para que el FFo adopte el
estado de set y los demás FFs el de reset Una vez aplicada la señal de reloj, el circuito
contará ciclos de reloj de módulo 4. Cada flanco sucesivo de disparo hará que el FF pase su
Página 46
estado al siguiente FF y adoptará el estado del FF anterior. Entonces cada cuatro ciclos
sucesivos de reloj el contador se encontrará en su estado inicial.
Las señales del contador de anillo se indican en la Figura 1.24, donde aparecen las
señales de reloj y de las salidas Q de los cuatro FFs. Se ha comenzado arbitrariamente, en el
instante en que Qo = 1 y Qs = Qi = Qi = O- Estas señales son muy útiles para propósitos de
manejo de secuencias. Imagínese que en un sistema digital hay una serie de operaciones que
necesitan realizarse en secuencia; e imagínese también que las operaciones individuales
pueden realizarse habilitando una serie de conjuntos de compuertas. Entonces, las señales de
la Figura 1.24 serían ideales para la función de habilitación secuencial.
Q1
FIGURA 1.24: Señales del contador anillo módulo 4 de ia Figura 1.23.
1.4.5.- CONTADOR JOHNSON
El contador de anillo es elegantemente simple, pero tiene la desventaja de utilizar
FFs antieconómicamente. Un contador anillo de n FFs tiene de módulo /t, mientras n FFs
Página 47
permiten 2 estados. Una modificación del contador de anillo, que utiliza FFs más
económicamente, es el contador Johnson, mostrado en la Figura 1.25, Aquí la interconexión
entre FFs es como se muestra en la Figura 1.23, excepto que al final de la cascada de FFs,
es decir, en la cola, la conexión se ha conmutado a Qj' en lugar de Qj.
LOJ
C
FF-0_
»Ck
t
_
3
>
C
F F - 1
>Ck
ti
i
i C
FF -In
> C k
tJ
i
C
FF-3
»Ck
t3
(a)
Cuenta
012345670
Qo
011110000
Qi
001111000
Q2
000111100
QB
000011110
(b)
FIGURA 1.25: (a) Contador JOHNSON (conmutado en cola) y (b) secuencia deconteo.
Si se supone que irdcialmente todos los FFs del contador se han borrado, así Q3 =
Qi — Qi ~ Qo ~ 0. Entonces, el nuevo jQanoo de disparo de reloj transferirá O a FFj, FFi y
, dejándolos inalterados. Sin embargo, a causa de la conmutación en las conexiones de
Página 48
salida del FFj, el FFo irá al estado de set. Por consiguiente, el contador pasa de
= 0000 a QaQaQiQo — 0001. La secuencia de estados a través de los que pasa el contador
se indica en la Figura 1.25 (b). Obsérvese que el contador recorre ocho estados, es decir,
doble del número de FFs, y entonces vuelve al estado inicial. Así pues, con n FFs un
contador Johnson tiene módulo 2n.
1.5.- REGISTROS DE DESPLAZAMIENTO
Se ha señalado que un FF puede almacenar, guardar o recordar, es decir, registrar
un bit. Entonces, un arreglo de estos dispositivos es lo que se conoce como un registro, en el
que se puede escribir una palabra y del que se puede leer la palabra almacenada cuando
convenga. Es así, que los regislros son el papel de anotaciones en el que se pueden escribir
palabras binarias para futuras referencias y consullas.
La mayor parte de las operaciones en una computadora u otros procesadores
digitales no son más que transferencias de palabras de un registro a otro. Una característica
uní que se puede incorporar a los registros, es la posibilidad de que estos pueden realizar
operaciones de desplazamiento de la información almacenada en ellos hacia la izquierda o
hacia la derecha, característica que los ha denominado registros de desplazamiento.
Un arreglo de FFs es la configuración lógica de un registro de desplazamiento el
cual constituye un sistema sincrónico, ya que cada FF se activa mediante la misma señal de
reloj. Este sistema consiste en una cadena de FFs conectados en cascada, con la salida de un
FF conectado a la entrada del siguiente. Todos los FFs reciben un pulso de reloj común, por
Página 49
lo tanto el estado de un FF se transfiere al siguiente, de esta manera el estado del FF de
menor orden se desplazará a través de todo el sistema.
El registro de desplazamiento más sencillo es aquel que usa solamente FFs como se
muestran en la Figura 1.26. La salida Q de un FF dado se conecta a la entrada D del FF
siguiente. Cada pulso de reloj desplaza el contenido del registro un bit una posición a la
derecha. La entrada serial determina qué va en el FF del extremo izquierdo durante el
desplazamiento. La salida serial se toma de la salida del FF del extremo derecho después de
la aplicación de un pulso de reloj. Aunque este registro desplace su contenido a la derecha, si
se voltea la página se observa que el registro desplaza su contenido a la izquierda. Así un
registro de desplazamiento unidireccional puede funcionar como un registro de
desplazamiento a la derecha o a la izquierda.
FF-2
SERA.
REUXI
C
D Q
— c
D O
, — c
D n
>Ck — c
D o
>Ck
SER*.
FIGURA 1.26: Registro de desplazamiento.
El estado del primer FF después de una transición de disparo, se determina por el
nivel lógico aplicado en D procedente de una fuente externa. El bit almacenado en el último
FF se pierde, es decir, ha sido desplazado fuera del registro. Se señala especialmente en el
registro de desplazamiento que durante cada ciclo de reloj se lee, y a la vez se escribe en
cada elemento de almacenamiento.
Página 50
Como ejemplo de la forma de operar de un registro de desplazamiento, considérese
las señales de la Figura 1.27. Inicialmente también considérese que el registro de 4 bits está
borrado, es decir, todos los FFs están en estado de reset Ahora se aplica a la entrada una
secuencia de bits de entrada en sincronismo con el reloj. La operación sincrónica significa,
por un lado que todos los FFs son activados por la misma señal de reloj y por otro que los
datos de entrada cambian una vez y sólo una vez por ciclo de reloj.
Flanco
Entrada D0
Qo
Q2
Q3
FIGURA 1.27: Señales de los registros de la Figura 1.26, borrados iniciaJmente para lasecuencia de entrada 11010.
1.5.1.- REGISTROS DE DESPLAZAMIENTO CON CARGA SERIAL Y
PARALELO.
Los datos digitales pueden presentarse en serie o en paralelo. En la presentación
serie, los bits individuales de una palabra son transportados por un simple hilo y presentados
Página 51
mediante una secuencia temporal un bit detrás de otro. En la presentación paralelo, todos los
bils de la palabra se presentan simulláneamenle utilizando laníos hilos como bils. El foimato
serie utiliza menos hardware, pero el paralelo ahorra tiempo. Por ejemplo si un nivel lógico
se mantiene en estado estacionario durante Ifi segundo con el fin de examinarlo
adecuadamente. Entonces la transmisión serie de una palabra de 8 bits durará 8¿t segundos,
mientras que la transmisión paralela sólo tardaría Iji segundo.
Para pasar del formato serie al paralelo una palabra de 8 bits, se debe utilizar un
registro de 8 bits, en la entrada de datos del registro, los bits individuales aparecen en
sincronismo con la señal de reloj. Entonces inhabilitando la señal de reloj una vez
transcurrido ocho ciclos de reloj, la palabra estará almacenada en el registro y se podrá
disponer simultáneamente de los ocho bits, es decir en paralelo en las salidas de los 8 FFs.
Para pasar del formato paralelo al serie se debe detener el reloj y colocar los bits
individuales, todos simultáneamente, directamente en los FFs individuales. Para este
propósito se pueden utilizar los terminales de entrada de datos o los de entrada directa de los
FFs. Una vez almacenada la palabra en e1 registro se habilita la línea de reloj. Entonces en la
salida del último FF y en sincronismo con el reloj aparecerá una secuencia de los bits
individuales de la palabra.
1.5.2.- REGISTROS DE DESPLAZAMIENTO A IZQUIERDA Y DERECHA
El registro de la Figura 1.26 desplaza solamente en una dirección. Debido a la
forma de las interconexiones, el desplazamiento se hace de izquierda a derecha. A veces, es
Página 52
conveniente poder desplazar en la otra dirección. Para invertir la dirección de desplazamiento
solamente hace falta invertir el orden de las interconexiones de los FFs. Para desplazar de
derecha a izquierda (arriba hacia abajo) basta con conectar la entrada del FF - O a la salida
del FF - 1, y así sucesivamente. Un registro que incorpore compuertas para invertir las
conexiones en respuesta a una orden de control de dirección se denomina registro de
desplazamiento a izquierda y derecha.
BORRADO RELOJ
SO
81 .
ENTRADA
DES ,DER.
W *
11 *
12 *
ENTRADA
DES. IZO.
13 •
K)
11
Y
MUX 4x112
138P 81
L i
10
11
Y
MUX 4x112
1330 81
L_— i
10
11
Y
MUX 4*112
13s ? S1
' L 1
K)
11
Y
MUX4x112
13S[ 31
L
i
t
t
i
i C
FF-0
D Q
>Ck
CL
í
» C
FF-1
D Q
>CK
CL
í
i C
FF-2
D Q
>C1(
CL
í
C
FF-3
D Q
>Ck
CL
í
FIGURA 1.28: Registro de desplazamiento universal.
Página 53
AO
A1
A3
Un registro capaz de desplazar hacia la izquierda y hacia la derecha se llama registro
de desplazamiento bidireccional. Si el registro tiene cualidades de desplazamiento y carga en
paralelo se llama registro de desplazamiento con carga en paralelo. Si es bidireccional y
además carga en paralelo se denomina registro de desplazamiento universal. Un registro de
este tipo se ilustra en la Figura 1.28. Este es un registro universal de 4 bits, el cual utiliza un
multiplexor de cuatro líneas a uno, cuyas entradas de selección SQ y Si determinan la forma
de operación del dispositivo; si SoSj = 00 la entrada de datos de cada FF es su propia salida
para que cada FF registre simplemente su propio estado presente, bajo estas circunstancias,
no hay cambios y el registro se describe bajo condición de retención; si SoSj = 01 el dato va
a desplazarse a la izquierda; si SoSj = 10 el dato va a desplazarse a la derecha y si SoSj =11
las entradas de datos son los niveles lógicos de las líneas de entrada en paralelo IQ, Ii,
Además tiene una entrada de reset que anula las demás entradas y borra todos los FF.
1.6.- DETECTORES DE SECUENCIAS DE CÓDIGOS.
Estadoactual
Reloj
Lógica(circuitos combinacionales)
Memoria (FHp - Flops)
Estadosiguiente
Vn
FIGURA 1.29: Arquitectura de un sistema sincrónico detector de secuencia de códigos.
Página 54
Como una extensión del estudio de los sistemas secuenciales sincrónicos, se
considera el análisis de un detector de secuencia. La arquitectura de este sistema se muestra
en la Figura 1.29 que consta de un bloque de lógica combinacional y otro de memoria o
secuencia!. En principio se desconoce cuantos FFs se requieren, pero cualquiera que sea su
número, deben ser gobernados sincrónicamente es decir todos con la misma señal de reloj.
Si los FFs son del tipo D, el número de líneas que llevan los niveles lógicos del estado
siguiente coincidirá con el número de FFs. Si se utilizan FFs JK, las entradas lógicas a la
memoria habrán de suministrarse para las entradas J y K de cada FF. En este caso el
número n será el doble del número de FFs. Si las salidas del estado actual de memoria se
toman únicamente de la salida Q, el número m de dichas líneas coincidirá con el número de
FFs. Si se utilizan Q y Q' el número de líneas será del doble del número de FFs.
El sistema que se analiza tiene una sola entrada x y una sola salida Z. La entrada x
sirve para introducir la lógica que determina el estado siguiente, x es una entrada sincrónica,
es decir que los cambios de x ocurren sincrónicamente con la señal de reloj. El problema
consiste en diseñar un sistema para que Z sea igual a 1 solamente cuando x haya cumplido
una determinada secuencia de datos.
En caso general, especialmente cuando el diseño es de alguna complejidad, el punto
de partida es un diagrama de flujo. En casos más simples, se puede iniciar con un diagrama
de estados. Siguiendo el análisis, el diagrama de estados es traducido a una tabla de estados
mediante una asignación de estados, en este punto, es necesario elegir el tipo de FF que se
utilizará. A continuación, con diagramas K se deducen las ecuaciones de excitación o de
control de los FFs y la ecuación de salida. Finalmente se dibuja el circuito lógico resultante.
Página 55
1.6.1- REDUCCIÓN DE ESTADOS
Esta sección incluye ciertas propiedades de los circuitos secueneiales que se pueden
usar para reducir el número de compuertas y FFs durante el diseño. Cualquier problema de
diseño, debe considerar el problema de minimizar el costo del circuito final. Las dos
reducciones de costo más obvias son las reducciones en el número de FFs y número de
compuertas. Debido a que estos dos ítems son los mis obvios, se han estudiado c investigado
extensamente. De hecho, una gran porción del objetivo de la teoría de conmutación trata la
manera de buscar algoritmos para minimizar el número de FFs y compuertas en los
circuitos secuenciales.
La reducción del número de FFs en un circuito secuencia! se conoce como la
reducción de estados del problema. Los algoritmos de reducción de estados tratan con sus
procedimientos reducir el número de estados en la tabla de estado, mientras mantiene los
requerimientos de entrada - salida extemos sin cambio. Como m FFs producen 2m estados,
una reducción en el número de estados podría o no resultar en una reducción en el número
de FFs. Un efecto contrario en la reducción del número de FFs es que algunas veces el
circuito equivalente podría requerir mas compuertas combinacionales.
Como ya se ha señalado, el primer paso en el diseño de un sistema secuencia! es
determinar el número de estados de memoria necesarios. Lo importante al tratar con estados
redundantes es que un sistema secuencial se construye con el único propósito de obtener una
secuencia determinada de niveles lógicos de las salidas en respuesta a las secuencias de
entrada. Así. si tenemos dos sistemas secuenciales, uno de 4 FFs utilizado para generar 16
Página 56
estados y el otro de 2 FFs por lo tanto 4 estados. Se supone también que ambos sistemas
dan las mismas secuencias de salida para las mismas secuencias arbitrarias de entrada.
Entonces, los dos sistemas son idénticos. El sistema de 16 estados debe tener potencialidad
de suministrar salidas que el sistema de 4 no puede. Sin embargo, hasta que se aproveche la
potencialidad, los sistemas son indistinguibles. Bajo estas circunstancias se deduce que 12 de
los 16 estados del primer sistema son redundantes. Teniendo en cuenta estas
consideraciones, lo importante es reconocer los estados redundantes en una Labia de estados.
Estado presente
Estado siguiente
x=l
Salida 2
x= 1
P
FIGURA 1.30: Tabla de estados donde,/? y q tienen los mismos estados siguientes ysalidas para todos los valores de x
Considere la situación presentada en la tabla de estados de la Figura 1.30 con una
entrada x y una salida z. No se ha especificado la tabla completa, pero se presentan dos
estados especiales p y q, tales que si el estado presente es p o q, independientemente del
valor de x, las salidas son idénticas y los estados siguientes también. Es decir se tiene dos
estados p y q en la columna estado actual cuya salida actual y estados siguientes coinciden.
Página 57
Entonces, claramente se intuye que estos estados son equivalentes e indistinguibles, por lo
tanto uno de ellos puede despreciarse. Si el estado es p o q la salida es la misma, también si x
— O en ambos casos el estado siguiente es r, se concluye que el futuro del sistema depende
del valor x y no del estado que precedía a r.
FIGURA 1.31: Diagrama de estado.
A continuación, se demostrará la necesidad de reducción de estados con un
ejemplo. Se parte del diagrama de estado del circuito secuencial de la Figura 1.31. En este
ejemplo, solamente las secuencias de entrada - salida son importantes, los estados internos se
usan únicamente para suministrar las secuencias requeridas. Por esta razón, los estados
marcados dentro de los círculos se denotan por símbolos de letras en vez de sus valores
binarios, en contraste a un contador binario, donde la secuencia de valores binarios de los
estados en sí mismos se toman como salidas.
Hay un número infinito de secuencias de entrada que pueden ser aplicadas al
circuito, cada una dará como resultado una secuencia única de salida. Como ejemplo,
considérese la secuencia de entrada 01010110100 en el estado inicial A. Cada entrada de O o
1 produce una salida de O o 1 y causa que el circuito vaya al estado siguiente, se obtiene la
salida y secuencia de estado para una secuencia dada de entrada como sigue: con el circuito
en el estado inicial A, una entrada de O produce una salida de O y el estado siguiente es B.
Página 58
Con el estado presente A y una entrada de 1, la salida es 1 y el estado siguiente es C. Con el
estado presente en B y una entrada de O la salida es O y el estado siguiente es C.
Continuando este proceso y siguiendo la secuencia del ejemplo se tiene que la secuencia
completa es como sigue:
estado
entrada
salida
A
0
0
B
1
1
A
0
0
B
1
1
A
0
0
B
1
1
A
1
1
C
0
1
D
1
1
A
0
0
B
0
0
C
TABLA 1.2: Secuencia de estados para la secuencia de entrada 01010110100.
En cada columna se tiene, el estado presente, el valor de la entrada y el valor de la
salida. El estado siguiente se escribe encima de la siguiente columna. Es importante tener en
cuenta que en este circuito los estados en si mismo son de importancia secundaria porque el
interés primordial son las secuencias de salida causadas por las secuencias de entrada. El
problema de la reducción de estado es encontrar maneras de minimizar el número de estados
en un circuito secuencia! sin alterar las relaciones de entrada - salida.
Estado presente
ABCDEFG
Estado
* = 0
BCDCDGC
siguiente
x— 1
CABACFE
* =
0010000
Salida z
0 x = l
1101111
TABLA 1.3: Tabla de estado
Página 59
Se procederá a reducir el número de estados de este ejemplo. Primero, se necesita
una tabla de estado, es más conveniente aplicar los procedimientos para la reducción de
estados aquí que en los diagramas de estado. La tabla de estado del circuito se lista en la
Tabla 1.3 y se obtiene directamente del diagrama de estado de la Figura 1.31.
Un algoritmo para la reducción de una tabla de estado especificado completamente
se da aquí. Se dice que dos estados son equivalentes si, por cada miembro del conjunto de
entradas, ellos dan exactamente la misma salida y envían al circuito al mismo estado o a un
estado equivalente. Cuando dos estados son equivalentes, uno de ellos puede quitarse sin
alterar las relaciones de entrada salida.
Estado presente
ABCnuEFG
Estado
x = 0
BC
p
DBGC
siguiente
x = l
CAB\
FE
x =
001o000
Salida z
3 x=l
110i111
TABLA 1.4: Método de reducción de la Tabla de estado.
Se aplica este algoritmo a la Tabla 1.3. Observando la tabla de verdad, se cogen los
estados presentes que van al siguiente y que tienen la misma salida para ambas
combinaciones de entrada. Los estados B y D son dos de tales estados, ellos van a los
estados C y A y tienen las salidas de O y 1 para x = O y x = 1 respectivamente. Por tanto, los
estados B y D son equivalentes y se puede eliminar uno. El procedimiento para quitar un
Página 60
estado y reemplazarlo por un equivalente se demuestra en la Tabla 1.4. La fila con el estado
presente D se tacha y el estado D se reemplaza por el estado B cada vez que aparezca en la
columnas de estado siguiente. El resultado de esta simplificación es la Tabla 1.5.
Estado siguiente
Estado presente
ABCEFG
x = 0
BCBBGC
x = 1
CABCFE
Salida 2
* = 0
001000
X ~ 1
110111
TABLA 1.5: Tabla de estados parcialmente reducida.
En la Tabla 1.5, los estados A y E son equivalentes y se puede eliminar uno de
ellos. Ulilizando el mismo procedimiento aplicado en la Tabla 1.4. La fila con el estado
presente E se elimina y este estado se reemplaza por el estado A cada vez que aparezca en la
columnas de estado siguiente. Cuyo resultado se presenta en la Tabla 1.6.
Estado presente
ABCFG
Estado
x = 0
BCBGC
siguiente
x = l
CABFA
* =
00100
Salida z
0 x = l
11011
TABLA 1,6: Tabla de estados parcialmente reducida.
Página 61
En la Tabla 1.6, los estados B y G son equivalentes y se puede eliminar uno de
ellos. Utilizando el mismo procedimiento de simplificación anteriormente aplicado, se
elimina la fila del estado presente G y este estado se reemplaza por el estado B cada vez que
aparezca en las columnas de estado siguiente. El resultado de esta simplificación se presenta
en la Tabla 1.7.
Estado presente
ABCF
Estado
x = 0
BCBB
siguiente
x = l
CABF
Salida
x-0
0010
z
x ~ 1
1101
TABLA 1.7: Tabla de estados totalmente reducida.
estado
entrada
salida
A
0
0
B
1
1
A
0
0
B
1
1
A
0
ü
B
1
1
A
1
1
C
0
1
B
1
1
A
0
0
B
0
0
C
TABLA 1.8: Secuencia de estados para la tabla de estados totalmente reducida.
La tabla reducida final se muestra en la Tabla 1.7. El diagrama de estado para la
tabla reducida constará solamente de cuatro estados y se muestra en la Figura 1.32. Este
diagrama de estado satisface las especificaciones originales de entrada - salida. La Tabla 1.8
lista la secuencia de estados para el diagrama, de estado de la Figura 1.32, es para la
secuencia de entrada usada previamente. Como era de esperarse, se nota que es la misma
secuencia de salida aunque la secuencia de estado es diferente.
Página 62
FIGURA 1.32: Diagrama de estado reducido.
1.6.1.1- ELIMINACIÓN DE ESTADOS REDUNDANTES POR PARTICIÓN
Una tabla de estados puede tener estados redundantes aun cuando no aparezcan
filas con idénticas salidas y los mismos estados siguientes. El método de eliminación de
estados redundantes por partición consiste en dividir la tabla de estados en el número más
pequeño posible de clases equivalentes de estados indistinguibles. Hay muchas formas de
dividir los estados de un circuito secuencial en clases separadas, y no todas estas divisiones
dan como resultado clases equivalentes de estados indistinguibles. Para que una partición
contenga clases equivalentes de estados indistinguibles, es necesario que se cumplan las
siguientes condiciones: primero, los estados dentro de la misma clase deben tener las mismas
salidas para cada entrada individual posible; y segundo, los estados pertenecientes a una
partición deben pertenecer a la misma clase de equivalencia.
Para ilustrar este método de reducción y ver como se determinan los estados
redundantes, consideremos la tabla de estados de la Figura 1.33. El método se descompone
en dos etapas, la primera es dividir los estados en el menor número posible de clases de
equivalencia, de tal manera que los estados dentro de una clase tengan las mismas salidas.
Página 63
Esto se hace inspeccionando la tabla de estados. En el caso de la tabla de estado de la Figura
1.33, se observa que se requieren dos clases.
Estado siguiente
Estado presente x = 0 x-1
qo qi qsqi qs q4q2 q6 q4
qa q? qsq<i qe qoqs qe qoq6 qa q2
q? q? qo
Salidas
x = 0 x
0
000
0
10
0
=10000
0
000
FIGURA 1.33: Tabla de estados para el ejemplo de análisis
a b
(qo, qi, q^ q3, q*, q& q?)
Clase
EstadosSiguiente clase
a
0a a
1a a
2a a
3a b
4a a
6a a
7a a
b
5a a
TABLA 1.9: Clase iniciales de estados equivalentes.
En la Tabla 1.9, la clase a incluirá los estados cuya salida es O para entrada O, y
salida O para entrada 1. La clase b incluye los estados cuya salida es 1 para entrada O, y
salida O para entrada 1. Las clases de estados indistinguibles se descompondrán siempre de
subclases de las clases a y b. Esta partición satisface la primera condición. Si los siguientes
Página 64
estados para cada estado dentro de la clase a están dentro de la misma clase para cada
entrada individual posible, se satisface la segunda condición. Evidentemente, la clase a
contiene pares de eslados que no satisfacen la segunda condición, por lo tanto, no son
indistinguibles. Esto hace necesario separar la clase a en las clases a y c. La nueva partición
puede o no constar de clases de equivalencias de estados indistinguibles, para descubrir esto,
se repite el proceso anotando las clases que contienen los siguientes estados.
Clase
EstadosSiguiente clase
a
0a a
1c a
2a a
4a a
6c a
7a a
b
5a a
c
3a b
(a)
Clase
EstadosSiguiente clase
a
0d a
2d a
4d a
7a a
b
5d a
c
3a b
d
1c a
6c a
(b)
Clase
EstadosSiguiente clase
a
0d a
2d a
4d a
b
5d a
c
3e b
d
1c a
6c a
e
7e a
(c)
TABLA 1.10: Proceso de particionar en clases de estados equivalentes.
En la Tabla 1.10 (c), las cinco clases o, by c, dy e son clases de equivalencias de
estados indistinguibles. Se puede ver que todos los estados dentro de una clase tienen estados
siguientes en la misma clase, para entrada de O y 1. De esta manera la segunda condición
queda finalmente satisfecha. Finalmente se presenta la tabla de estados reducida.
Página65
Estadopresente
qoqiq3qsq?
Estado
* = 0
qiq3q?qiq?
siguiente
*=1
qoqoqsqoqo
Salida z
x = 0
000
10
• - Estadosx~ 1 equivalentes
o qo5 q^j q^0 qi, q¿
0 q3
0 qs0 q7
Clase
a
d
c
be
FIGURA 1.34: Tabla de estados totalmente reducida por el método de partición.
1.6.1.2- ELIMINACIÓN DE ESTADOS REDUNDANTES POR MEDIO DE
TABLAS DE IMPLICACIÓN
Estado presente
12 .3456789101112
Estado
x = Q
246810410810422
siguiente
x — 1
357911121211111
* =
000000001000
Saüdaz
0 x = l
000000000000
FIGURA 1.35: Tabla de estados para el ejemplo de análisis.
Página 66
Otro método para determinar las clases de equivalencias, comprende el uso de la
tabla de implicación, que también puede ser utilizado para el caso incompletamente
especificado. La tabla de implicación proporciona un procedimiento sistemático para
determinar las clases de equivalencia de los estados de un circuito secuenciaL Se desarrollará
el procedimiento utilizando la tabla de la Figura 1.35.
Estado presente
123456789101143
Estado
X = 0
24681041081042
-3
siguiente
J C = 1
357911421143111111
±
Salida z
X = 0
000000001000
x = l
000000000000
FIGURA 1.36: Simplificación informal de la Tabla de estados.
Para tablas de estado completamente especificadas, a veces es posible primeramente
reducir el número de estados informalmente. Es útil hacer primero este intento, ya que los
métodos fórmales implican un trabajo laborioso. En la tabla de la Figura 1.35, se observa
que las salidas y los estados siguientes de los estados 11 y 12 son idénticos. Por lo tanto
estos estados son indistinguibles y el estado 12 se puede eliminar de la tabla. Puesto que el
estado 12 es el siguiente estado de los estados 6 y 73 se sustituyen estas anotaciones con 11.
Estas modificaciones se presenta el la tabla de la Figura 1.3 6. Debido a estas
Página 67
modificaciones, los estados 5 y 7 son ahora indistinguibles, se puede eliminar el estado 7 y
sustituyendo todas las anotaciones de estado siguiente de 7 por 5, se obtiene la tabla de
estado que aparece en la Figura 1.37. En esta tabla se ha ubicado el estado 9 en la base,
debido a que tiene diferentes salidas que los otros estados. Parece ser que ya no hay más
reducciones posibles, pero aun se puede simplificar más aplicando un método formal tal
como el método de la tabla de implicación.
Estado siguiente
Estado presente
123456810119
x = 0
246810484210
y = iA _L
355911111111
Salidas
X = Q
0000000001
x — 1
0000000000
FIGURA 1.37: Tabla de estados parcialmente reducida.
En la Figura 1.38 se presenta una tabla que permite comparar cada estado con los
demás. Descendiendo verticalmente por el lado izquierdo, se observa una lista de todos los
estados de la tabla de estados parcialmente reducida, excepto el primero, y en sentido
horizontal, se presenta la lista de todos excepto el último. Así, la tabla contiene un cuadrado
por cada par de estados. Se empieza colocando una X en los cuadros correspondiente a un
estado que tengan diferentes salidas, comparado a las salidas de los demás estados, ya que no
Página 68
pueden ser equivalente. En este caso, el estado 9 tiene una salida diferente a cualquier otro
estado, de manera que se coloca una X en cada cuadrado de la fila 9. De igual manera se
procedería si hubiera otro estado único con salida diferente que no pueda ser equivalente al
resto de es lados.
2
3
4
5
ft
a
10
2-4
3-5
2-6
3-5
2-8
3-9
2-10
3-11
2-4
3-11
2-8
1-3
2-4
1-3
1-3
\A
/ \6
4-0
5-9
4-10
5-11
5-11
4-a1-5
1-5
2-4
1-5
\A/ \8
5-9
6-10
5-11
4-6
5-11
6-8
1-5
4-G
1-5
2-6
1-5
\A
/ \0
9-11
4-8
9-11
1-9
4-0
1-9
2-8
1-9
\A
/ \0
8-10
1-11
4-10
1-11
2-10
1-11
\A
/ \8
i-li
1-11
2-4
1-11
\A
/ \8
2-8 2-4
\/\/\/'X x X/ \/ \ \ 1011
FIGURA 1.38: Tabla de implicación inicial
A continuación, se anotan en cada cuadrado los pares de estados implicados por los
pares de estados correspondientes a dicho cuadrado. Se empieza en el cuadrado superior de
la primera columna, correspondiente a los estados 1 y 2. De acuerdo con la tabla de estado,
se ve que este par implica a los estados 2 y 4 para x — O y, 3 y 5 para x = 1, de manera que
se anotan 2-4 y 3-5 en el cuadrado 1-2. Se continúa así hasta completar la primera columna,
en esta columna sólo existe una anotación en el cuadrado de los estados 1 y 11, puesto que
Página 69
uno de los conjuntos implicados es un conjunto único (no implica a dos estados diferentes)
por lo tanto no se anota. A continuación, se procede con las restantes columnas hasta que se
llena la tabla de implicación, tal como se presenta en la Figura 1.38.
8 10 11
FIGURA 1.39: Tabla de implicación parcialmente cruzada
La siguiente etapa consiste en hacer pasadas o barridos a través de la tabla, para ver
si algunos de los conjuntos de estados agrupados en cada cuadrado quedan excluidos como
pares posibles de equivalencia, por medio de cuadrados que ya se hayan cruzado o marcado
con una X. Esta condición, hace que el estado 9 no pueda ser equivalente a ningún otro
estado, así que cualquier conjunto implicado que contenga al estado 9 también se excluye.
Así se marca con una X en cada cuadrado que contenga un 9. Obteniéndose la tabla de
implicación parcialmente cruzada de la Figura 1.39. Luego de haber realizado esto, se puede
Página 70
observar que todos los cuadrados implicados con el estado 4 han quedado cruzados,
indicando que el estado 4 no puede ser equivalente a ningún otro estado. Así que cualquier
conjunto implicado que contenga al estado 4 también se excluye. El resultado de esta pasada
se presenta en la Figura 1.40. Aquí se observa que ningún otro estado se elimina
completamente.
VA.
10
11
2-6
3-5
2-10
3-11
-Hz-a1-3
1-3
X
5-11
1-5
A
6-10
5-H
6-8
1-5
. .2-6
i-5
A.\/ \/ \IX
k-.vtí\o
i-il
/-H
1-11
\ '
1-11
A
/\8x-x
/\/K7'\/A
1 2 3 4 5 6 8 10 11
FIGURA 1.40: Tabla de implicación parcialmente cruzada.
A continuación, se debe verificar a todos los cuadrados que aun no se hayan
cruzado, este proceso de verificación se realiza mediante un barrido de derecha a izquierda.
Se comprueba si es que cualquier par de estados implicados (o anotados) en el cuadrado
anali/ado ya ha sido cruzado, si este es el caso, el cuadrado analizado se debe cni7.ar. El
proceso de verificación de los cuadrados que no han sido cruzados se vuelve sistemático. En
Página 71
general, este proceso se debe repetir, hasta que se complete una pasada, sin eliminar o cruzar
ningún cuadrado adicional, en tal caso se habrá llegado al resultado Una!, éste se presenta en
la tabla de la Figura 1.41.
10
U
9
2-6
3-5
2-10
3-11
1-3
5-11
x-x
6-10
5-11
2-G
1-5
2-10
1-11
1-11
z\7\\
10 11
FIGURA 1.41: Tabla de implicación totalmente cruzada.
Hn la tabla de implicación terminada, cada cuadrado que no se haya cruzado
representa un par de estados equivalentes. Las clases de equivalencia se determinan de la
siguiente manera. Se comprueba cada columna de la tabla final de implicación, comenzando
el la primera columna y de arriba para abajo comprobando la existencia de cuadrados sin
cruzar formando los estados equivalentes. En el ejemplo en análisis y tomando como
Página 72
referencia la tabla de implicación totalmente cruzada de la Figura 1.41 se determinan los
siguientes pares de estados equivalentes:
(1, 3), (1, 5), (1, 11), (2, 6), (2, 10), (3, 5), (3, 11), (5,11), (6, 10). Éstos se
agrupan de la siguiente manera: (1, 3), (1, 5), (1, 11), (3, 5), (3, 11), (5,11) y (2, 6), (2, 10),
(65 10). Por último se forman la clase máxima compatible. Una clase compatible es un grupo
de estados cada uno de los cuales es compatible con cada uno de los demás del grupo. Una
clase compatible es máxima cuando no es posible encontrar miembros adicionales de la
clase. En el caso analizado, encontramos que las clases máximas que podemos formar con
más de dos miembros son las siguientes:
La clase equivalente de estados (1, 3, 5, 11), y
La clase equivalente de estados (2, 6, 10).
Que comprenden todas las clases de equivalencias que se han determinado.
EstadoEstado .— -,.,presente x = 0
Oí 02
q2 q4q4 qsqs qs09 q2
siguiente Salida 2
x — 1 x — 0
qi 0qi 0
09 O
Oí 0
Oí 1
x—l
00000
Estadosequivalentes Clase
Ob 03, 055 Olí a02, 06, qio b04 C
Os d
09 ®
FIGURA 1.42: Tabla de estados totalmente reducida por el método de la tabla deimplicación.
Página 73
Aquellos estados que se encuentran en la tabla de estados pero que no están
presentes en las clases de equivalencias, no son equivalentes a ningún otro estado y se deben
insertar en la solución como clases de equivalencia de un sólo estado. Por lo tanto existen
cinco clases de equivalencia, la tabla de estados original de la Figura 1.37, se reduce a la
tabla equivalente de cinco estados de la Figura 1.42.
1.6.1.3- CONDICIONES NO IMPORTA O TÉRMINOS SIN EFECTO
Cuando se diseñan circuitos lógicos, se consideran las funciones de salida sólo para
las combinaciones posibles. Existen casos en los cuales, el número total de posibles
combinaciones del número de variables consideradas es mayor al número de combinaciones
requeridas por el circuito. Dado que existirán combinaciones de entrada que nunca
ocurrirán, sería correcto ignorarlas. Esto sería de poca visión, ya que si existen
combinaciones de entrada que no pueden ocurrir, se pueden usar para efectos de
simplificación.
Para las combinaciones que no ocurren, realmente no importa o no tiene efecto, si
se asigna un O o 1 indistintamente a la localidad correspondiente en el mapa K, dado que
tales condiciones nunca ocurrirán. Estas localidades supuestamente se ignoran en la
obtención de las expresiones lógicas, pero en realidad se consideran como 0. Es más
importante la asignación de 1 o O a cada una de las localidades sin efecto (don 't caré) las
cuales son marcadas con X. Utilizando los términos sin efecto, se pueden obtener relaciones
lógicas más simples, por lo tanto se adquieren ventajas de los estados que no interesan
produciendo circuitos más simples.
Página 74
1.6.2- ASIGNACIÓN DE ESTADOS
Una vez que se ha obtenido la labia mínima de estado, queda todavía por diseñar
un circuito que realice dicha tabla. Debe reconocerce que el problema de la economía no se
ha solucionado con la minimización del número de estados. Es cierto que la cantidad de
elementos de memoria requeridos por una tabla de estados de esta índole es mínima; pero
también requiere una lógica combinacional para desarrollar las ecuaciones de salida y entrada
del elemento de memoria. Puede ser que una tabla de estados que no sea la mínima, requiera
una lógica combinacional notablemente más reducida y, por ende, menos elementos lógicos
que otra.
El costo de la parte del circuito combinacional de un circuito secuencia! puede
reducirse usando los métodos de simplificación conocidos para los circuitos
combinacionales. Sin embargo, hay otro factor conocido como el problema de asignación
de estados, que entra en juego para la minimización de las compuertas combinacionales.
Naturalmente surge la pregunta si es que algunas asignaciones de estados son mejores que
otras, la respuesta es que si, ya que la asignación de una codificación particular puede tener
un efecto notable en el número de elementos lógicos necesarios para realizar el circuito.
Los procedimientos de asignación de estado tiene que ver con los métodos para la
asignación de valores binarios o estados de tal forma que se reduce el costo de los circuitos
combinacionales que accionan los FFs. Entonces es claro que la asignación de estados que
se realice tendrá un marcado efecto en las excitaciones de los FFs dependiendo donde
aparezcan los 1, O y X en los diagramas K e incluso en la obtención de la salida z. Esto no se
Página 75
aplica a los circuitos cuyas salidas externas se toman directamente de los FFs con secuencia
binaria totalmente especificadas.
Un algoritmo simple de asignación de estados consiste en formular todas las
posibles combinaciones de asignación de código, luego seleccionar el circuito más
económico de todos los que se han generado. Desafortunadamente, este método no es
práctico debido al número total de asignaciones de combinaciones de código que se puede
generar, sin embargo mediante este algoritmo siempre se obtendrá el circuito mínimo. Las
alternativas de asignación de estado binario posibles pueden ser cuantificadas. Si se tiene un
circuito con n Flip - Flops, se conoce que este circuito tendrá 2n posibles estados.
Asumiendo que la tabla de estado tiene m estados, y m cumple la relación anterior.
Para todos los valores de my n existen diferentes asignaciones de estado que pueden ser
usadas. Si se desprecia la simetría que está presente entre los diferentes códigos, el número
de diferentes asignaciones posibles para m estados de 2 posibles se puede calcular mediante
la siguiente relación:
2"!
Este número de posibles asignaciones de estados mediante la relación anterior se
pueden disminuir. Utilizando el método forzado desarrollado por McCluskey y Unger que
considera ciertas simetrías y otras propiedades especiales de los circuitos lógicos
Página 76
combinacionales. Incluyendo estas consideraciones, el número de posibles asignaciones
diferentes se puede calcular de la siguiente manera:
Númerode estados, m
23456789
Número de variablesde estado, n
12 -233334
Número deasignaciones distintas
13314042048084010'810.800
TABLA 1.11: Tabla del número de distintas asignaciones posibles.
La Tabla 1.11 lista el número de distintas asignaciones para valores de m de 2 a 9
que corresponde a valores de n de 1 a 4. Examinando esta tabla se observa que el método
forzado de enumeración de todas las posibles asignaciones de estados se ve facilitado
solamente para valores de m hasta 4. Para valores de m de 9 o mayores es absolutamente
inaprovechable el método, haciendo necesario el uso de un procedimiento computacional
para la enumeración de las asignaciones de estado.
El problema de asignar combinaciones de estado, por ejemplo, a cuatro estados o,
¿, c, </, se puede representar como la asignación de 4 estados a los cuatro vértices de un
cuadrado. La Figura 1.43 muestra las tres asignaciones distintas mediante el método
forzado. Cualquiera de las otras asignaciones posibles se agregarían a las rotaciones o
Página 77
inversiones de estas tres asignaciones y, por lo tanto, equivaldrían ya sea a invertir el orden
de las variables o a complementar una o las dos variables. Estos cambios afectarán la forma
de cualquier función booleana, por ende, carecen de importancia con respecto al costo.
10t
00*
d e d i' a _L iu ' 11
a01 00 01
FIGURA 1.43: Tres asignación posibles para cuatro estados.
Para el circuito secuencial especificado en la Tabla 1.7. Recuérdese que, en este
ejemplo, los valores binarios de los estados son inmateriales durante el tiempo en que su
secuencia mantenga las relaciones de entrada - salida adecuadas. Por esta razón, cualquier
asignación de número binario es satisfactoria siempre que a cada estado se le asigne un
número. Mediante la asignación propuesta en la Figura 1.43, para el circuito secuencial
especificado en la Tabla 1.7, se presentan las tres asignaciones posibles para la secuencia de
estados A, B, C y F en la Tabla 1.12.
Estado
ABCF
Asignación 1
00011110
Asignación 2
00110110
Asignación 3
00100111
TABLA 1.12: Tres asignaciones binarías de estado posible.
Página 78
La Tabla 1.13 es la tabla de estado reducida con la asignación binaria 1 sustituida
por las letras de los cuatro estados. Es obvio que una asignación binaria diferente, resultará
en una labia de estado con valores binarios diferentes para los estados, mientras que las
relaciones de entrada - salida permanecen iguales. La presentación en forma binaria de la
tabla de estado se usa para simplificar y deducir la parte combinacional del circuito
secuencia!. La complejidad del circuito combinacional obtenido, dependerá de la asignación
binaria que se seleccione para el estado. Los pasos siguientes en el diseño de un circuito
secuencia! sincrónico se esbozará en el capítulo 2.
Estado siguiente Salida z
listado presente x — 0 x ~ 1 x ^ u x ~ 1
00011110
01110101
11000110
0010
1101
TABLA 1.13: Tabla de estado reducida con asignación binaría 1.
1.6.3- TABLA CARACTERÍSTICA Y DE EXCITACIÓN DE LOS FLIP - FLOPs.
Una tabla característica define la propiedad lógica del FF y caracteriza
completamente su operación. Las tablas características de los Ftip - Flops SR, JX, D y T se
muestran en la Tabla 1.14. Esta define el estado de cada Flip - Flop como función de sus
entradas y su estado previo. Qn se define al estado presente y Qn+i al estado siguiente
después de la ocurrencia de un pulso de reloj.
Página 79
La tabla característica es útil para el análisis y la definición de la operación de un
Flip - Flop. Esta especifica el estado siguiente cuando las entradas y el estado presente del
Flip - Flop se conocen.
Durante el proceso de diseño se conoce por lo general la transición del estado
presente al siguiente y se desea encontrar las condiciones de entrada del Flip - Flop que
causen la transición requerida. Por esta razón, se necesita una tabla que liste las entradas
necesarias para un cambio de estado dado. Tal lista se flama tabla de excitación.
La Tabla 1.15 presenta las tablas de excitación de los cuatro Flip - Fíops
estudiados. Cada tabla consiste en dos columnas Qn (estado actual) y Q0+i (estado
siguiente), y una columna para cada entrada que tiene el Flip - Flop, de esta manera se
puede mostrar como se logra la transición requerida. Hay cuatro transiciones posibles del
/presente estado al siguiente.
Las condiciones de entrada requeridas para cada una de las cuatro transiciones se
derivan de la información disponible en la tabla característica. El símbolo X en las tablas
representa la condición de no importa o sin efecto, es decir no afecta que la entrada tome el
valor lógico de I ó 0.
El procedimiento de diseño que se describirá a continuación en el capítulo siguiente
puede ser usado con cualquier Ffíp - Flop. Es necesario que se conozca la tabla
característica del Flip - Flop, de la cual se pueda generar la tabla de excitación. La tabla de
excitación se usa entonces para determinar las funciones de entrada del Flip - Flop.
Página 81
2.- DISEÑO SECUENCIAL SINCRÓNICO POR EL
MÉTODO TRADICIONAL
Para el diseño de los circuitos secuenciales sincrónicos, es necesario recopilar una
serie de especificaciones, las mismas deben proporcionar la información necesaria para
granear o determinar el diagrama lógico. Con esta serie de especificaciones se puede también
obtener una lista de funciones de Boole mediante las cuales se pueda obtener el diagrama
lógico correspondiente. Un circuito combinacional, está especificado completamente por una
tabla de verdad, en cambio un circuito secuencial requiere una tabla de verdad para su
especificación. Entonces el primer paso en el diseño de los circuitos secuenciales es obtenía:
la tabla de estados o un equivalente de esta presentación, los equivalentes son el diagrama de
estado o las ecuaciones de estado.
Un circuito secuencial sincrónico es implementado a base de Ftip - Flops y
compuertas combinacionales. Parte del diseño de los circuitos secuenciales sincrónicos es
seleccionar el tipo de Ftip - Flop y luego encontrar una estructura combinacional de
compuertas para las excitaciones de los Ftip - Flops. La estructura combinacional,
conjuntamente con los Ftip - Flops^ debe producir un circuito que cumpla con las
características requeridas. El número de Ftip - Flops se determina por el número de estados
necesarios en el circuito. El circuito combinacional se deriva de la tabla de estado. Una vez
determinado el tipo y el número de Ftip - Flops, el proceso de diseño secuencial sufre una
transformación en el procedimiento de diseño, pasa del procedimiento de circuito secuencial
a los procedimientos del problema de circuito combinacionaL De esta manera, las técnicas de
diseño de los circuitos combinacionales pueden aplicarse en su totalidad.
Página 82
2.1.- PROCEDIMIENTOS Y EJEMPLOS DE DISEÑO
SECUENCIAL SINCRÓNICO.
En esta sección se presenta un procedimiento para el diseño de los circuitos
secuenciales. El propósito de este procedimiento es servir como guía de diseño al
principiante, este no es el más óptimo, ya que con experiencia y práctica puede acortarse.
Este método se minimiza mediante una lista de pasos consecutivos que se recomienda seguir
en ese orden. Estos se presentan a continuación.
1.- Se establece la descripción en palabras del comportamiento del circuito. Esto puede
acompañarse por el diagrama de estados, un diagrama de tiempos, u otra
información pertinente.
2.- De la información dada del circuito se identifica todas las entradas y salidas para
construir la tabla de estados inicial.
3.- Si es necesario, el número de estados de la tabla primitiva puede reducirse por los
métodos de reducción de estados si el circuito secuencia! puede caracterizarse por
las relaciones de entrada salida independientes del número de estados. Aquí se
obtiene la tabla de estados final
4.- Se asigna valores binarios utilizando reglas de asignación a cada estado si la tabla de
estado en los pasos 2 ó 3 mantienen símbolos de letras. Este paso puede ser
opcional si la asignación de estados está especificada en el diseño.
5.- De la tabla de estados final se determina el número de Flip - Flops a los cuales se
les puede asignar un número o una letra.
6.- Se escoge el tipo de Ftip - Flop que se va a utilizar en el circuito.
Página 83
7.- Con el Ftip - Flop seleccionado y utilizando las tablas de estado se deduce la
excitación del circuito y las tablas de salida si existe alguna,
8.- Con ayuda de los mapas K o cualquier olro método de simplificación, se deduce las
funciones de salida del circuito y las funciones de excitación de los Ftip - Flops.
9.- Por último se dibuja el diagrama lógico del circuito.
La especificación en palabras del circuito asume que el lector está familiarizado con
la terminología lógica digital. Es necesario que el diseñador use su intuición destreza y
experiencia para llegar a la correcta interpretación de las especificaciones dadas para el
circuito, porque la descripción en palabras puede ser incompleta e inexacta. Sin embargo,
una vez que se haya establecido una especificación completa y se haya obtenido la tabla de
estados, es posible hacer uso del procedimiento formal mencionado para diseñar el circuito.
La reducción del número de estados y su asignación de valores binarios ya han sido
discutidos ampliamente en el Capítulo 1. Para continuar con el análisis, se asume que el
número de estados y su asignación binaria es conocida. El número de Ftip - Flops (n) se
determina por el número de estados. Un circuito puede tener estados binarios sin usar si el
número total de estados es menor que 2 . Los estados no usados se tomarán como
condiciones no importa durante el diseño de la parte combinacional del circuito.
El tipo de Flip - Flop que se va a usar puede incluirse como parte de las
especificaciones del diseño, también puede depender de la disponibilidad del diseñador.
Muchos sistemas digitales se construyen totalmente con Ftip - Flops JK porque ellos son los
más veisátiles y disponibles. Cuando hay muchas clases de Ftip - Flops disponibles, es
Página 84
aconsejable usar el Ftip - Flop RS o D para aplicaciones que requieren transferencia de
datos (tales como registros de desplazamiento). El tipo T para aplicaciones que incluyen
complementación (tales como contadores binarios), y el tipo JK para aplicaciones generales.
La información de salida externa se especifica en la sección de salida de la labia de
estados. De esta se pueden deducir las funciones de salida del circuito. La tabla de excitación
es similar a la de los Ftip - Flops individuales, excepto que las condiciones de entrada son
dictadas por la información disponible en el presente estado y las columnas del estado
siguiente de la tabla de verdad. El método para obtener la tabla de excitación y las funciones
simplificadas de entrada del Ftip - Flop es mejor ilustrarlo con un ejemplo.
FIGURA 2.1: Diagrama de estados.
Se desea diseñar un circuito secuencia! temporizado cuyo diagrama de estado se
presenta en la Figura 2.1. El tipo de Ftip - Flop utilizado es el JK . El diagrama de estado
Página 85
consiste de cuatro estados con valores binarios ya asignados. Como las líneas designadas se
marcan con un sólo dígito binario sin una // se concluye que hay una variable de entrada y
ninguna variable de salida. (El eslado de los Ftip - Flops se puede considerar como las
salidas del circuito). Los dos Flip - Flops necesarios para representar los cuatro estados se
designan como A y B. La variable de entrada se designa como x.
La tabla de estados para este circuito, derivada del diagrama de estado, se muestra
en la Tabla 2.1. Nótese que no hay sección de salida para este circuito. Se mostrará ahora el
procedimiento para obtener la tabla de excitación y la estructura de las compuertas
combinacionales.
Estado siguiente
Estado presente
A B
0 00 11 01 1
X
A
0111
0
B
0100
X
A
0001
1
B
1101
TABLA 2.1: Tabla de estados.
La derivación de la tabla de excitación se facilitará si se reordena la tabla de estado
en forma diferente. Esta forma se muestra en la Tabla 2.2, donde las variables de entrada y
el estado presente se presenta en forma de tabla de verdad. El valor del estado siguiente para
cada estado presente y las condiciones de entrada se copian de la Tabla 2.1, La tabla de
Página 86
excitación del circuito es una lista de condiciones para la entrada del Flip - Flop que causa
las transiciones de estado requeridas y es una función del tipo de Flip - Flop usado. Como
este ejemplo especifica Flip - Flops JK, se necesitan columnas para las entradas J y K del
Flip - Flop A (denotadas por JA y KA) y B (denotadas por JB y KB).
Entradas de los circuitoscombinacionalcs
EstadoEntrada presente
x A B
0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1
Siguienteestado
A B
0 01 11 01 00 10 10 01 1
Salidas del circuitocombinacional
Entradas de los Flip - Flops
JA KA JB KB
0 X 0 XI X X 0X 0 0 XX 0 X I0 X I X0 X X 0X I 0 XX 0 X 0
TABLA 2.2: Tabla de excitación para Flip - Flops JK
Las tabla de excitación para el Flip - Flop JK fue derivada en la Tabla 1.15. Esta
tabla se usa ahora para deducir la tabla de excitación del circxiito. Por ejemplo en la primera
fila de la Tabla 2.2 se tiene una transición del Flip - Flop A de O en el estado presente a O
en el estado siguiente. En 1a Tabla 1.15 se encuentra que los estados de transición de O a O
requieren que la entrada J = O y la entrada K = X. Así, O y X se copian en la primera fila
bajo JA y KA, respectivamente. Este proceso se continua para cada fila de la tabla y para
cada Flip - Flop con las condiciones de entrada especificadas en la Tabla 1.15.
PáginaS?
Ahora considérese la información en una tabla de excitación tal como la Tabla 2.2.
Se sabe que un circuito secuencial consiste de un número de Ftip - Flops y un circuito
combinacional. Para este circuito en particular se necesitan dos Ftip - Flops JK y un circuito
combinacional para las entradas de los Ftip - Flops. Entonces; es evidente que las salidas del
circuito combinacional vayan a las entradas de los Ftip - Flops. Sin embargo las funciones
de Boole que especifican un circuito combinacional se derivan de una tabla de verdad que
muestre las relaciones de entrada - salida del circuito.
AB
,\0 01 ' II IQ
X
AB
00 01 ' 11 10
0
i
X
x]
X
X
0
0
0
(í_YB
Afl A
00 01 ' 11 10
AB
0
( •X
')X
X
0
0
00 01 11 10
X
X
0
0
r0
0X
KB-x'.A
FIGURA 2.2: Mapas K para la parte combinacional del circuito.
Página 88
La tabla de verdad que describe la parte combinacional del circuito está disponible
en la labia de excitación. Las entradas del circuito combinacional se especifican bajo las
columnas de entrada y el estado presente, las salidas del circuito combinacional se
especifican bajo las columnas de entrada de los Ftip - Flops. Así, una tabla de excitación
transforma un diagrama de estados a la tabla de verdad necesaria para el diseño de la parte
combinacional del circuito secuencia!.
Ahora, las funciones de Boole simplificadas pueden derivarse. Las entradas soa las
variables x, A, y B; las salidas son JA, KA, JB y KB. La información de la tabla de verdad
se transfieren a los mapas K de la Figura 2.2, donde se derivan las cuatro funciones
simplificadas para las entradas de los Flip - Flops.
KA = x.B'
= x'.A
FF-B
FIGURA 2.3: Diagrama lógico del circuito secuencia!.
Página 89
El diagrama lógico se dibuja en la Figura 2.3 y consiste de dos Flip - Flops, cuatro
compuertas AND y un inversor. Con alguna experiencia, es posible reducir la cantidad de
trabajo envuelto en la determinación del circuito combinacional.
2.2.- PROBLEMA GENERAL DEL DISEÑO SECUENCLAL
SINCRÓNICO
En esta parte del análisis de los circuitos secuenciales sincrónicos, se considerará el
diseño con estados no usados. Un circuito de n Ftip - Flops puede tener 2n estados. Hay
ocasiones cuando un circuito secuencia! puede usar un número menor que el máximo
número de estados. Los estados que no se usan en la especificación del circuito secuencia!
no se listan en la tabla de estados. Cuando se simplifican las funciones de entrada de los Flip
- Flops, los estados sin usar serán considerados como condiciones "no importa" o
condiciones "sin efecto".
Continuando con el análisis. Aquí, se completará el diseño del circuito secuencial
presentado en la sección 1.6.1.2. Se utilizará la tabla de estado reducida presentada el la
Figura 1.42 cuyo diagrama de estados es el de la Figura 2.4. Se empleará asignación de
estados directa, además el circuito debe usar Flip - Flops JK.
La tabla de estados de la Figura 1.42 se redibuja en la Tabla 2.3 en \ina forma
conveniente para poder obtener las excitaciones de los Flip - Flops. Las condiciones de
entrada del Flip - Flop se deriva de las columnas del estado presente y del estado siguiente
de la tabla. Como se usan los Flip - Flops .TK es necesario referirse a la Tabla 1.16 (b) para
Página 90
las condiciones de excitación de este tipo de Flip - Flop. A los tres Flip - Flops se les da
nombres de variables A, B y C. La variable de entrada es x y la variable de salida es z. La
tabla de excitación del circuito suministra toda la información necesaria para el diseño.
FIGURA 2.4: Diagrama de estados para la tabla de la Figura 1.42.
EstadoEntrada
X
0 .00000001111.1111
presente
A
0000111100001111
B
0011001100110011
c
0101010101010101
Estadosiguiente
A
0000oXXX00100XXX
B
01110XXX00000XXX
c
10111XXX00000XXX
Entrada
JA
0000XXXX0010XXXX
KA
XXXX1XXXXXXX1XXX
de los Flip - Flops
JB
01XX0XXX00XX0XXX
KB
XX00XXXXXX11XXXX
JC
1X1X1XXX0X
. 0X0XXX
KC
X1X0XXXXX1X1XXXX
Salidas
2
00001XXX00001XXX
TABLA 2.3: Tabla de excitación.
Página 91
Hay tres estados sin usar en este circuito: los estados binarios 101, 110 y 111.
Cuando se incluye una entrada de O o 1 con estos estados no usados se obtiene seis términos
mínimos de no importa: 5, 6, 7, 13, 14 y 15. Estas seis combinaciones binarias se listan en la
tabla de verdad bajo el estado siguiente, las entradas de los Ftip - Flops y la salida z como
términos sin efecto o como condiciones no importa.
00 01 il 10^BC
**\0 01 11 10BC
00 01 il LO
00
01
>1"
0
X10
0
^X
0
0
^X0
0
X
T1
00
1 01LAJ J"
l i o
X
11X
X
X
X
X
X
X
X
X
X
X
X
X
00
1 "iLAr rJ J11\10
0
0
0
0
p~X
x0
~T]X
xx
xX
xx
B B BJA = x.B.C' KA = IL JB = x'.C
c c cNBC f X... NBC f . ^ ^ X« c ( ^. _ }
*A\0 01 il 10 xA\0 DI U 10 XA\0 01 U 10
KB - ÍC -
00 01 U 10
00
01
1110
0
( 10
0
0
X
X
0
0
X
X
0
0
X )X
0
KC - B' +
FIGURA 2.5: Mapas para simplificar el circuito secuencia! del ejemplo.
Página 92
La parte combinacional del circuito secuencial se simplifica por medio de los mapas
K de la Figura 2.5 Hay siete mapas en el diagrama, seis mapas son para simplificar las
funciones de entrada para los tres Ftip - Flops JK. El séptimo mapa es para simplificar la
salida z. Cada mapa tiene seis X en los cuadrados de los términos mínimos sin efecto 5, 6, 7,
13, 14 y 15. Los otros términos de no importa en los mapas provienen de las X en las
columnas de entrada de la tabla de excitación del Ftip - Flop. El diagrama lógico obtenido
de estas funciones de Boole se dibujan en la Figura 2.6.
FIGURA 2.6: Diagrama lógico para el ejemplo de análisis.
Un factor olvidado hasta este momento en el diseño es el estado inicial del circuito
secuencial. Cuando se suministra potencia a un sistema digital por primera vez, no se conoce
Página 93
en que estado se fijará el Ftip - Flop. Es costumbre suministrar una entrada maestra de
puesta a uno cuyo propósito es iniciar el estado de todos los Ftip - Flops en el sistema.
Típicamente, la entrada maestra de puesta a uno es una señal aplicada a todos los Flip -
Flops asincrónicamente antes de comentar las operaciones temporizadas. En la mayoría de
casos los Ftip - Flops se llevan a O por medio de una señal maestra de puesta a 0. Por
ejemplo el circuito de la Figura 2.6 puede inicialmente ponerse a O con un estado ABC —
000 que es un estado válido de este circuito.
Pero qué pasa si el circuito no se inicializa con un estado válido?. O lo que es peor,
¿qué pasa si debido a una señal de ruido o a cualquier otra razón imprevista, el circuito se
encuentra en uno de estos estados inválidos?. En este caso es necesario asegurar que el
circuito eventualmente vaya a uno de los estados válidos para regresar a la operación normal.
De otra manera, si el circuito secuencial circula dentro de los estados inválidos, no habrá
manera de llevarlo de nuevo a la secuencia de las transiciones de estados requerida. Aunque
se puede asumir que esta condición indeseable supuestamente no suceda, un diseñador
cuidadoso puede prevenir que esta situación nunca ocurra.
Se había expresado previamente que los estados sin usar en un circuito secuencial
pueden ser tratados como condiciones no importa. Una vez que se diseña el circuito, los n
Flip - Flops pueden estar en cualquiera de los 2 estados posibles. Si algunos de estos
estados se tomaron como condiciones no importa, el circuito puede ser investigado para
determinar el efecto de estos estados. El estado siguiente de los estados inválidos pueden
determinarse del análisis del circuito. De todas maneras, es siempre acertado analizar el
circuito obtenido de un diseño, para asegurar que no se cometan errores durante el proceso.
Página 94
2.2. i.- CONTADORES SINCRÓNICOS
Un circuito secuencial que pasa por una secuencia preestablecida de estados
después de la aplicación de pulsos de entrada es conocido como un contador. Los pulsos de
entrada o pulsos de cuenta pueden ser generados en un reloj, o ellos pueden originarse en
una fuente externa y pueden ocurrir en intervalos establecidos de tiempo o aleatoriamente.
En un contador, la secuencia de estados puede seguir una cuenta binaria o cualquier otra
secuencia de estados. Los contadores se encuentran en la mayoría de equipos que contienen
lógica digital. Ellos se utilizan para contar el número de ocurrencias de un evento y se usan
para generar secuencias de tiempo para controlar las operaciones de un sistema digital
FIGURA 2.7: Diagrama de estado de un contador binario de 3 bits.
De las diferentes secuencias que un contador puede seguir, la secuencia binaria
directa es la más simple. LTn contador que sigue la secuencia binaria se llama contador
Página 95
binario. Un contador de n bits está constituido de n Ftip - Flops y puede contar en binario
de O hasta 2 - 1 . Como ejemplo de análisis, se muestra el diagrama de estados de un
contador binario de tres bits de cuenta directa en la Figura 2,7. El diagrama muestra dentro
de círculos a los estados por los cuales atraviesa el contador, las salidas de los Flip - Ffvps
repiten la secuencia de cuenta binaria con un regreso a 000 después de 111 . Tas líneas
dirigidas entre los círculos no se marcan con valores de entrada - salida como en otros
diagramas de estados. Las transiciones de estado de los circuitos secuenciales temporizados
ocurren durante los pulsos de reloj, los Flip - Flops permanecen en sus estados presentes si
no ocurre ningún pulso. Por esta razón, el pulso de reloj Ckno aparece explícitamente como
una variable de entrada en un diagrama de estados o tabla de estados. Desde este punto de
vista, el diagrama de estados de un contador no tiene que mostrar valores de entrada - salida
a lo largo de las líneas dirigidas. La única entrada al circuito es el pulso de cuenta, y las
salidas están especificadas directamente en los estados presentes de los Flip - Flops. El
estado siguiente de un contador depende únicamente de su estado presente y la transición de
estado ocurre cada vez que se presenta el pulso de reloj. Debido a esta propiedad, un
contador está especificado completamente por medio de una lista de la secuencia de los
estados binarios por los que pasa.
La secuencia de cuenta de un contador binario de tres bits se presenta en la Tabla
2.4. El siguiente número en la secuencia representa el siguiente estado alcanzado por el
circuito después de la aplicación del pulso de cuenta. La secuencia de cuenta se repite una
ver. que haya alcanzado el último valor, de tal manera que el estado 000 es el estado
siguiente después de 111. Ta secuencia de cuenta proporciona toda la información necesaria
para diseñar el circuito de un contador.
Página 96
Estadopresente
A
00001111
B
00110011
c
01010101
A
00011110
Estadosiguiente
B
01100110
c
10101010
Entrada de
JA
0001XXXX
KA
XXXX0001
JB
01XX01XX
los Flip - Rops
KB
XX01XX01
JC
1X1X1X1X
KC
X1X1X1X1
TABT/A 2.4: Tahia de excitación para un contador binario de tres bits.
La Tabla 2.4 es la tabla de excitación para el contador binario de tres bits, aquí a
los tres Ftip - Flops se les asigna las variables A, B y C. La excitación para las entradas J y
K se deriva inspeccionando la transición del estado presente al estado siguiente.
BC
A -¿i
B BC B BC Bi \ X ^^ JL
00 01 f U 10 * V\0 01 f 11 10 * \ 00 01 { Jl 10
0
X
0
X
1
x*
0
X
1 }
0
•iL0
0
1
1
X
X
X
X
t J
0
•1L1
1
X
X
r
X
1 1
1
1 JY Y . Yc c c
U = B.C ÍB = C JC = LL
B ^BC B RC B
00
X
0
DI '
X
0
11
X
i"s ^
10
X
0
L J
10
•!L
00
X
X
OÍ
X
X
11
1
1
10
0
0
1 !
\
•!L
00
í x
X
01
1
1
111
1
10
X I
X
i ;Y Y TC C C
KA = B.C KB = G KC = ÍL
FIGURA 2.8: Mapas K para un contador binario de tres bits.
Página 97
Las funciones de entrada de los FUp - Flops que se listan en la tabla de excitación
se simplifican en los mapas K de la Figura 2.8. Las funciones de Boole listadas bajo cada
mapa especifican la parte del circuito combinacional del contador. Incluyendo estas
funciones con los tres FFss se obtiene el diagrama lógico del contador de la manera
mostrada en la Figura 2.9.
1L
FIGURA 2.9 Diagrama lógico de un contador binario de tres bits.
Un contador con n Ftip - Flops puede tener una secuencia binaria de menos de 2n
números. Por ejemplo, un contador BCD cuenta la secuencia binaria desde 0000 hasta 1001
y regresa a 0000 para repetir la secuencia. Otros contadores pueden seguir una secuencia
arbitraria, de todas formas, el procedimiento de diseño es el mismo. La secuencia de cuenta
se lista y la tabla de excitación se obtiene comparando la cuenta presente con la respectiva
cuenta siguiente.
Página 98
2.2.2.- REGISTROS DE DESPLAZAMIENTO
Una de las aplicaciones de los registros de desplazamiento es que pueden ser usados
para convertir datos en serie a datos en paralelo y viceversa. Si se tiene acceso a todas las
salidas de los Ffíp - Flops del registro de desplazamiento, la información introducida
serialmcntc por desplazamiento puede extraerse en paralelo de las salidas de los Füp - Flops.
Si se agrega al registro de desplazamiento la capacidad de carga en paralelo, entonces, los
datos que entran en paralelo pueden extraerse en serie desplazando los datos en el registro.
Algunos registros tienen los terminales de entrada y salida necesarios para la
transferencia en paralelo. Pueden tener también la característica de desplazamiento hacia la
izquierda y hacia la derecha.
FIGURA 2.11: Diagrama de estados de un registro de desplazamiento hacia laderecha de tres bits.
Página 99
Para el análisis de los registros de desplazamiento se considera el diseño de un
regislro de desplazamiento hacia la derecha de tres bits cuyo diagrama de estados es el
presentado en la Figura 2.11.
Dato
Da0000e00iiiiiiii
Esiad» actual
Q2••1•1111••••111
Qi001180110011001
1 ! 1
Qo01•101ei0i010101
Estado s^uienfe
Q20011001100110fl1]
9101ei•iei0i0iei0i
Qo009i009011111111
TABLA 2.5: Tabla de estados para el diagrama de la Figura 2.11.
La Tabla 2.5 es la labia de excitación para el registro de desplazamiento a derecha
de tres bits analizado, aquí a los tres Ftip - Flcps se les asigna las variables Qi, Qi y Qo- El
estado siguiente de un registro de desplazamiento depende del estado actual y del valor del
dato de la entrada serial. Es así que, si el estado presente es 000 y el dato de entrada es O, el
estado siguiente será 000 y si el dato de entrada es 1, el estado siguiente será 001.
Para este ejemplo se considera el uso de los Fíip - Flops JK. Entonces, la
excitación para las entradas J y K se deriva inspeccionando la transición del estado presente
al estado siguiente cuyo resultado se presenta en la Tabla 2.6.
Página 100
Secuencia de estadosDito
D00n0Q0DB11111111
Estado actualQ2
00110111180001111
Qia0ii001100110011
Qo*1i1t111•1•1•111
Estado siguienteQt
001100118
01100
11
Qi0Ini0i0101Q10101
Q»Q0n0000aiiiiiiii
Salid a de fes FKp-FlopsQo
Jo0X0X0X0X1X1X1X1X
KoX1
X121
XL
X0
X0
X0X0
QiJi01XX01XX01XX01XX
KiXX10XX10
XX1aXX10
Q2
J20011XXXX0811XXXX
K2XXXX110QXXXX11e0
TABLA 2.6: Tabla de excitación con Flip - Flops JK.
0
B
/I
^
X
X
X
X
X
X
X
X
0
0
í\
~S|
X
X
X
X
X
X
X
0
00
0
1
111
•
0
0
0
/T1
1
^
x\
X
Jr
X
X
X
X
Ql
(x11
t
~x\
1
\y
X
D
0
X
X
0
•X
Q:
FIGURA 2.12: Mapas K de la excitación de los Flip - Flops JK.
Página 101
Las funciones de entrada de los FÜp - Flops que se listan en la tabla de excitación
se simplifican en los mapas K de la Figura 2.12. Las funciones de Boole listadas bajo cada
mapa especifican la parte del circuito combinacional del registro de desplazamiento.
.Incluyendo estas funciones con los tres FFs, se obtiene el diagrama lógico del registro de la
manera mostrada en la Figura 2.13.
CK
i
\!\ '\ ! J P O
V 1 RI t Q>Cl_Ki c _
'
J P OR
>CUK
K L Q
c
J P QR
>CLK
K L Q
t
ii1
FIGURA 2.13: Diagrama lógico de un registro de desplazamiento de tres bits.
2.2.3.- DETECTORES DE SECUENCIA DE CÓDIGOS
Para el análisis de los detectores de secuencia de códigos, se propone un problema
de diseño de un sistema secuencial con una sola entrada je y una sola salida z. El problema
consiste en diseñar un sistema para que z sea igual a 1 siempre y cuando los valores que x a
adquirido cumpla con una secuencia de valores preestablecida. Para prevenir ambigüedades
respecto de lo que se pretende, la secuencia de entrada y la salida correspondiente se deben
especificar completamente. La secuencia que se desea detectar es 10010, al cumplimiento de
esta la salida z debe ser 1.
Página 102
Como se ha señalado antes, se debe definir un primer estado especificando la
historia necesaria que conduce a este estado para evitar tener que volver más allá del estado
inicial. En el caso presente hay muchas maneras de definir el primer estado. Considérese el
primer estado como al que se llega después de que se haya producido una secuencia de dos
(o más) 1 consecutivos. (Tener en cuenta que el estado en cualquier intervalo de reloj no
está determinado por las entradas en ese intervalo, sino por las entradas en los intervalos
previos). En cualquier circunstancia, este primer estado, el A en la Figura 2.14, es un estado
donde se ha recibido al primer bit de una potencial secuencia que produzca salida y cualquier
cosa que haya ocurrido anteriormente es irrelevante.
O/O
i/O
FIGURA 2.14: Diagrama de estados para el ejemplo de análisis.
Este primer estado A (al que se llega después de dos intervalos en ios que x = 1 y t
= 0). Si ahora se tuviese un tercer.* = 1, sustituiría al segundo 1 como el primer bit de una
potencial secuencia que produzca salida. En cualquier circunstancia, no se hacen progresos
hacia una secuencia que produzca salida. Lo que debe recordar el sistema es lo mismo que
antes. Por tanto, como indica la flecha que comienza y termina en el estado A, cuando x = 1,
Página 103
entonces z = O y el siguiente estado es A. Ahora si los siguientes cuatro bits de entrada son x
= 0010; es decir, aparece una secuencia que produce salida. Entonces la ocurrencia de cada
nuevo paso debe recordarse. Cada nueva entrada genera un nuevo estado, como indica la
Figura 2.14. El último x = O genera una saHda z = 1 y en el siguiente flanco del disparo de
reloj el sistema va al estado E.
Cabe recordar que si desarrollamos correcta o incorrectamente el diagrama de
estados, éste no se completa hasta que dos flechas dejen cada estado. Si cuando el sistema se
encuentre en el estado B y tenemos que x = 1, la secuencia se inválida y no podemos ir de
B a C; así se introduce un nuevo estado F, el cual es un estado que se llega después de la
secuencia 1101 y, por consiguiente, es un estado que recuerda el primer bit, es decir, el
último 1, de una potencial secuencia que produzca salida. En F, si la siguiente entrada es x -
O, Entonces la secuencia es 11010. Todo lo que necesitamos recordar de esta secuencia es
que sus dos últimos bits son potencialmente los dos primeros biís de una secuencia que
produzca salida. Pero este recuerdo está precisamente almacenado en B. Por consiguiente,
como se indico en F, un x = O mantiene z = O, el estado siguiente será nuevamente B, Si en
F el siguiente bit es x = 1, entonces los dos últimos bits son 1 consecutivos y el sistema va al
estado A, ya que dicho estado se ha definido precisamente como el estado del sistema
después de dos 1 consecutivos.
En C, si la siguiente entrada es x = O, se tienen tres O consecutivos, se invalida la
secuencia y no podemos ir de C a D. Aquí se introduce el estado G. Este estado G recuerda
que la secuencia se ha vuelto a invalidar, ya que se trata de una secuencia de más de dos O y
no progresa hacia una secuencia que produzca salida hasta que no aparezca un 1. En G más
Página 104
ceros no cambia lo que ha de memorizarse, así que x = O deja el sistema en el estado G. Por
otro lado, en G, si x = 1 de nuevo tenemos el primer bit de una posible secuencia que
produzca salida. El estado F es un estado que recuerda precisamente que el primer bit se ha
recibido. Por consiguiente, x - 1 mantiene z = O y el sistema cambia de G a F.
En Dj un x = 1 significa que se ha recibido dos 1 consecutivos y está es la
información almacenada en A. Por consiguiente, cuando x — 1 se va de D a A con z = 0.
Finalmente, ya que el solapamiento de las secuencias está permitido, cuando alcancemos el
estado E no solamente se completa una secuencia, sino que también se tienen los dos
primeros bits de una nueva secuencia que poíencialmente puede producir salida. Si en E, se
tiene que x = O, se obtendrá la secuencia 100 cuyos tres primeros bits corresponden a una
secuencia que produce salida. Pero ésta es precisamente la secuencia que deja C. Por
consiguiente con x = O volvemos de E a C. Entonces se ha completado el diagrama de
estados tal cual se presenta en la Figura 2.14.
Pensando sobre un mismo diagrama de estados, personas diferentes pueden llegar a
diagramas aparentemente diferentes pero correctos. Por supuesto, cuando se eliminan todos
los estados redundantes, todos los diagramas válidos deben ser idénticos excepto en el caso
posible que en distintos diagramas los estados equivalentes tengan distintos nombres. El
siguiente paso es aplicar al diagrama los procedimientos para eliminar estados redundantes,
Es importante tener en cuenta que en este circuito los estados en si mismo son de
importancia secundaria porque el interés primordial son las secuencias de salida causadas por
las secuencias de entrada.
Página 105
Estado presente
ABCDEFG
Estado
.v = 0
BCGECBG
siguiente
x=l
A- F
DAAAF
x =
0001000
Salida 2
0 x = l
0000000
TABLA 2.7: Tabla de estado.
Se procederá a reducir el número de estados en este ejemplo. Primero, se necesita
una tabla de estado, es más conveniente aplicar los procedimientos para k reducción de
estados aquí que en los diagramas de estado. La tabla de estado del circuito en análisis se
lista en la Tabla 2.7 y se obtiene directamente del diagrama de estado de la Figura 2.14. En
la Tabla 2.7, los estados A y F son equivalentes, se procede a eliminar el estado F.
Estado presente
ABCDEPG
Estado
x = 0
BCGEC
G
siguiente
x = l
AFADAAA
FA
x =
000100
0
Salida 2
0 x=l
000000
0
TABLA 2.8: Reducción de estados equivalentes.
Página 106
En la Tabla 2.8 se presenta la manera de eliminación de un estado equivalente.
Primero se procede a la anulación del estado F y luego a remplazar el estado F por su estado
equivalente A en todas las posiciones de estado siguiente que se encuentre. Entonces se
obtiene la Tabla 2.9.
Estado siguiente
Es Lado présenle
ABCDF
G
x-0
BCGB BcG
x-l
AADA\
Salida z
x-0
0001o0
x-l
00000
0
TABLA 2.9: Reducción de estados equivalentes.
En la Tabla 2.9, se puede apreciar que los estados B y E son equivalentes y se
procede a eliminar el estado E utilizando el procedimiento esbozado en el párrafo anterior.
Luego de haber realizado la simplificación del estado E se obtiene la Tabla 2.10.
Estado presente
ABCDG
Estado
x = 0
BCGBG
siguiente
x = 1
AADAA
Salidas
x = 0 x
00010
= 1
00000
TABLA 2.10: Tabla de estados totalmente reducida.
Página 107
La Tabla 2.10 es la tabla final simplificada mediante el método tradicional de
simplificación, a ésta se debe aplicar un método sistemático de simplificación para verificar si
ésta es la labia final. Se procederá a determinar esta característica utilizando el método de
particiones de los estados en clases de estados equivalentes, éstas son:
Clase a: A, B, C y G
Clase b:D
Clase
EstadosSiguiente clase
a
Aa a
Ba a
Ca b
Ga a
b
Da a
Clase
EstadosSiguiente clase
a
Aa a
Bc a
Ga a
b
Da a
c
Ca b
Clase
EstadosSiguiente clase
a
Ad a
Ga a
b
Dd a
c
C 'a b
d
Bc a
Clase
EstadosSiguiente clase
a
Ad a
b
Dd a
c
Ce b
d
Bc a
e
Ge a
TABLA 2.11: Método de particionamiento en clases de estados equivalentes.
Página 108
La Tabla 2.11 muestra el método de simplificación por particionamiento en clases
de estados equivalentes. En esta tabla se aprecia que el número de estados es igual al
número de clases luego de la aplicación del método, por lo tanto no se ha simplificado más
estados en la Tabla 2.10.
El siguiente paso en el diseño es la asignación de valores binarios a los estados, en
este ejemplo se utilizará asignación directa, con lo cual se obtiene la Tabla 2.12.
ABCDG
000001010Olí100
EníraáaX00000XXX11111XXX
Estado actualQ2
00001XXX00001XXX
Qi00110XXX00110XXX
Qo01010XXX01010XXX
Estada sigurnic
Q2
00000XXX00100 _,XXX
Qi01110XXX00000XXX
Qo10111XXXu0000XXX
Salüi
100001XXX00000XXX
TABLA 2.12: Tabla de estados con asignación binaria directa,
Luego de la asignación de estados se procede a 1a selección del tipo de Plip - Flop
con el cual se va a realizar el circuito, en este ejemplo se utilizará el Flip - Flop JK.
Página 109
E» trida
X
a0n00XXX11111XXX
Secuencia 4 e estad %sEstado ictuil
Q2
QenQ1XXX60001XXX
Qia0ii8XXX0011aXXX
Qo0inieXXX0101QXXX
Estad* siguiente
Q*
XXX••1••XXX
Qi81110XXX•0000XXX
Qo10111XXXe00eeXXX
.Salidaz08n0
iXXXe•e0eXXX
&U*ladel*sFBp-FU»sQ2
J200Q
0XXXX0ei9XXXX
K2XXTX1XXXXXXX1XXX
QiJl•1XX0XXX00XXaXXX
KiXXn0XXXXXX11XXXX
QoJfl1X1X1XXX0X0X0XXX
JeX1X0XXXXX1X1XXXX
TABLA 2.13: Tabla de estados y excitación de los Flip - Flops JK.
Qi
0
X
X
0
e
X
X
8
e
X
X
8
e
X
T]
JJ
X
X
X
X
X
X
X
X
0
X
X
1
a
X
X
i
Qi
0
0
0
e
i
X
X
•
X
X
X
X
X
X
X
X
LQ2
X
X
X
X
1
X
X
1
Q
X
X
1
X
X
X
X
|Q2
FIGURA 2.15: Mapas K y funciones lógicas de las excitaciones de los Flip Flops JK.
Página 110
Q!
0
1
0
0
1
X
X
0
0
X
X
•
0
X
X
D
LQ2
QO
FIGURA 2.16: Mapa K y función lógica de la salida z.
FIGURA 2.17: Diagrama Lógico del circuito secuencia! diseñado.
Con la ayuda de la tabla de excitación del Flip - Flop escogido se procede a la
determinación de la tabla de excitación, utilizando esta tabla se generan los mapas K de los
cuales se obtienen las funciones lógicas de excitación de los Flip - Flops y la función lógica
de la salida, finalmente se dibuja el diagrama lógico del circuito secuencia! diseñado.
Página 111
2.3.- DISEÑO SECUENCIAL SINCRÓNICO UTILIZANDO
MEMORIAS ROM
Debido al desarrollo de la tecnología de semiconductores, los ingenieros de diseño
tienen acceso a elementos de memoria mas complejos y más baratos, haciendo posible su
utilización en aplicaciones que anteriormente utilizaban sólo compuertas lógicas.
Es necesario dejar constancia que esta tendencia continuará en la presente década
ya que, debido al desarrollo de las técnicas digitales, el -volumen de producción de estos
elementos aumentará apreciablemente. También es necesario mencionar que actualmente el
costo por bit de memoria es de sólo unas milésimas de centavo de dólar, existe la tendencia
a disminuir aún más en los próximos años.
Entradas x
Estadoactual
Reloj
Lógica(circuitos combinacionales)
Memoria (Flip - Rops)
Z Salidas
Estadosiguiente
n
FIGURA 2.18: Arquitectura de un sistema secuencial.
Página 112
El presente acápite presenta los criterios de diseño secuencia! sincrónico utilizando
memorias de tipo ROM. En el diagrama de bloques de la Figura 2.18, el estado actual y las
entradas externas detenninan el siguiente estado y los valores de las salidas externas. Parte
del circuito combinacional determina el estado siguiente y la otra parte genera las salidas. El
siguiente valor del estado del circuito combinacional se carga en la memoria a base de Flip -
Flops con un pulso de reloj. Entonces, la parte combinacional de un circuito secuencial
puede ser construido con memorias de tipo ROM. Para esbozar este procedimiento se
utilizara el diagrama de estados de la Figura 2.19.
FIGURA 2.19: Diagrama de estados de un circuito secuencial.
Entrada
X
00001111
Estado presente
A B
0 00 11 ü1 10 00 1,1 01 1
Estado siguiente
A B
0 00 0o o-0 00 11 01 10 1
Salida
z
00010001
TABLA 2.14: Tabla de estados.
Página 113
En el diagrama de estados de la Figura 2.19 se representa a un sistema secuencial
de cuatro estados para lo cual se hace necesario 2 Ftip Flops, Además posee una entrada y
una salida. La Tabla 2.14 presenta la secuencial de, estados en función de la entrada del
circuito secuencial que se analiza.
La memoria ROM se utiliza para configurar la parte combinacional del circuito
secuencial y los Ftip - Flops para almacenar el estado actual El número de entradas de la
ROM es igual al número de Ftip - Flops más el número de entradas externas, para este
ejemplo se hace necesario 3 entradas. El número de salidas de la ROM es igual al número
de Füp - Flops más el número de salidas externas, en este caso es necesario 3 salidas.
Idealmente se necesitaría una memoria ROM de 8x3. Como paso siguiente se determina la
tabla de verdad de la memoria ROM, ésta se presenta en la Tabla 2.15.
Direcciones de la ROM
Entrada
X
A2
000ü1111
Estado presente
A B
AI AO
0 - 00 11 01 10 00 11 01 1
Salidas de la ROM
Estado siguiente
A B
02 . O í
0 00 00 0.0 00 11 01 10 1
Salida
z
00
00010001
TABLA 2.15: Tabla de verdad de la ROM.
Página 114
La tabla de verdad de la ROM es idéntica a la tabla de estado con estado presente y
entradas especificando la dirección de la ROM y el estado siguiente y las salidas especifican
las salidas de la ROM. Los valores de estado siguiente deben ser conectados de las salidas de
la ROM a las entradas de los Flip - Flops. La configuración de este sistema mediante
memorias ROM se presenta en la Figura 2.20.
X
Ck
A2 Oo
Ai ROM OíAo Os
REGISTRO
Ql Di
Qo Do
FIGURA 2.20: Diagrama de un circuito secuencia! que utiliza una memoria ROM yFüp - Flops.
Hasta esta parte de la elaboración de la Tesis, se ha desarrollado la teoría necesaria
para el diseño de los circuitos secuenciales sincrónicos.
En el capítulo siguiente se procederá a la elaboración del paquete computacional
mediante el cual se pueda realizar casi en su totalidad de forma automática el diseño de los
circuitos secuenciales sincrónicos.
Página 115
3.- DISEÑO SECUENCIAL SINCRÓNICO ASISTIDO POR
COMPUTADOR
Se ha explicado que el diseño de un circuito secuencial sincrónico por el método
tradicional comienza a partir de un conjunto de especificaciones mediante las cuales se
pueden obtener un diagrama lógico o una lista de funciones de Boole que describan
claramente el comportamiento del circuito secuencial sincrónico.
Para el diseño secuencial sincrónico asistido por computador, es necesario que el
conjunto de especificaciones puedan ser claramente ingresadas en el programa
computacional de diseño, y de esta manera obtener una solución real al problema planteado.
Es por esta razón que los problemas de diseño secuencial sincrónico en este trabajo de tesis
se enmarca a los sistemas secuenciales de una entrada y una saHda, los contadores
sincrónicos y los registros de desplazamiento.
En el método de diseño secuencial sincrónico asistido por computador, objetivo de
esta tesis de investigación, se parte de la tabla estados. Una vez obtenida la tabla de estados,
se pasa a la reducción de los estados equivalentes si es que aquello es posible. Luego de
haber realizado lo mencionado anteriormente se pasa a la asignación de valores binarios a los
estados, con lo cual queda determinado el número de Ftíp - Flops necesarios. Como paso
siguiente se selecciona el tipo de Flip - Flop que se va a usar. Mediante el uso de las tablas
de estado del Ftíp - Flop escogido se deduce la excitación del circuito y las tablas de salida.
Finalmente se procede a la simplificación computacional mediante la cual se deducen las
funciones de salida del circuito y las ftinciones de entrada de los Flip - Flaps.
Página 116
Antes de empezar con el análisis y la descripción del programa compuíacional, es
necesario hacer una introducción al lenguaje utilizado como herramienta en el desarrollo de
esta Tesis de Ingeniería. La aplicación computacional denominada por Microsoft como
Visual Basic, se ha convertido en el lenguaje de programación que sigue las características
gráficas de Windows para los entornos de programación. De esta forma la visión intuitiva de
los botones de mandato, botones de opciones, cuadros de verificación, cuadros de lista,
ventanas, iconos, menús y cuadros de diálogo están ahora al alcance de los entornos de
programación,
Se puede afirmar que Visual Basic de Microsoft es un sistema gráfico de desarrollo
de aplicaciones para entornos Windows muy diferente de todos los otros lenguajes de
programación, dado su fácil manejo y por presentar una forma ingeniosa, innovadora, rápida
y fácil de crear aplicaciones. Con este sistema, puede desarrollarse cualquier tipo de
aplicación basada en el entorno Windows^ incluyendo sistemas administrativos,
herramientas, utilidades, aplicaciones front - endpara el proceso de datos de main -frames^
servidores o procesadores locales y hasta productos de software comercial
En Visual Basic, los programas son creados de forma totalmente visual. Con la
ayuda del raían, el programador extrae de un cuadro de utilidades los objetos tales como:
botones, barras de desplazamiento, cuadros de entradas de texto y otros controles,
posicionándolos directamente en la pantalla. Después de la preparación de las pantallas de un
programa, de forma directa e inmediata, sin escribir ni una línea de programa, el
programador describe las funciones de cada objeto y su relación con los estímulos externos,
como pulsaciones de teclas o acciones realizadas en los botones del ratón.
Página 117
La facilidad que presenta el lenguaje de programación Visual Basic para la
creación de pantallas o ventanas y en estas los menús que son creados como opciones u
objetos a los cuales se les denomina controles. Estos controles pertenecen a las aplicaciones
de los usuario dentro de las ventanas, controles que responden a las acciones denominadas
sucesos de los usuarios.
En la programación dirigida a sucesos, el código perteneciente a una opción u
objete sólo se ejecuta cuando el usuario o el sistema Dama al suceso correspondiente. En
cuanto la aplicación espera un suceso, permanece en el ambiente a menos que el usuario la
cierre. En el mismo instante el asuario puede estar ejecutando otras aplicaciones.
La facilidad que presenta Visual Basic en el diseño de menús, hace que un menú
se realice de una manera rápida y sencilla, estos menus son circulares tanto en el sentido
horizontal como en el vertical, cada uno de los componentes de un menú corresponden a
opciones las cuales están organizadas por niveles de prioridad y pueden ejecutar
instrucciones o sucesos correspondientes directamente con un Cack del ratón sobre la
opción o con la tecla <Intro> cuando la opción esta remarcada, también se puede ejecutar el
suceso de una opción u objeto mediante las teclas <Alt + letra subrayad a>.
En el diseño de menús, a las opciones pertenecientes a estos se les puede dar
características de ejecución tales como ejecución mediante la pulsación de teclas llamadas
rápidas. La propiedad de teclas rápidas de una opción u objeto hace que el suceso
correspondiente a estos se ejecute mediante la presión de estas teclas desde cualquier lugar
del programa.
Página 118
3.1.- DIAGRAMA DE FLUJO Y DESCRIPCIÓN DEL PROGRAMA
DE CONTROL Y AYUDAS
Lo expuesto en los párrafos anteriores de este capitulo elimina la manera tradicional
del diseño de programas computacionales mediante algoritmos o diagramas de flujo. Elimina
también la secuencia tradicional de ejecución de las instrucciones que es de arriba hacia
abajo en una programación estructurada tradicional. El método de diseño bajo el entorno
Visual Basic, hace que el control de un programa se lo realice mediante rutinas que tienen
igual prioridad las cuales pueden activarse, desactivarse o ejecutarse en cualquier instante, en
este método de programación no es necesario una secuencia definida para la ejecución de las
rutinas de control, aquí las rutinas se ejecutan si se encuentran activas o presentes y no existe
ningún impedimento que las bloquee. Entonces, el diagrama de flujo del método tradicional
de programación pasa a un diagrama de bloques, bloques que corresponden a rutinas que
tienen niveles de prioridad.
3.1.1.- DESCRIPCIÓN DEL PROGRAMA PRINCIPAL
Las rutinas del programa principal se presentan en la Figura 3.1. Esta figura
contiene las rutinas principales: [Archivo] para el manejo de archivos en formato de texto, la
rutina [Tutorial] describe la secuencia que debe seguir el usuario en el diseño de los
diferentes tópicos del programa, la rutina [Diseño] realiza el diseño de los diferentes tópicos
que contiene el programa, la rutina [Ventanas] despliega en forma ordenada las pantallas de
texto activas en un instante determinado y la rutina [Ayudas] presenta conceptos de la teoría
del diseño secuencial sincrónico, los mismos presentados el los capítulos uno y dos.
Página 119
«a.
PRO
GR
AM
A
PRIN
CIP
AL
Arc
hiv
oT
uto
rial
Nue
vo
Abr
ir
Cer
rar
Gu
ard
ar
Imp
rim
ir
Sal
ir
Dis
eno
Pro
ced
imie
nto
sd
e d
iseu
o
Co
nta
do
res
Sin
cró
nic
os
Reg
istr
os
de
des
pla
zam
ien
to
Det
ecto
res
de
Cód
igos
Sis
tem
asS
ecu
enci
ales
uti
liza
nd
o R
OM
Ven
tan
as
Co
nta
do
res
Det
ecto
res
de
cod
ifo
s
Sis
tem
asS
ecu
enci
ales
uti
liza
nd
o R
OM
Pro
ble
mas
Min
imiz
acio
n
Avu
das
Cas
cad
a
Ho
rizo
nta
l
Ver
tica
l
índ
ice
Bu
scar
A
yuda
So
bre
Uso
de
Ayu
das
Tu
tori
al
del
Pro
gra
ma
Ace
rca
del
Pro
gra
ma
FIG
UR
A
3.1
: D
iag
ram
a d
e b
loq
ues
del
p
rog
ram
a p
rin
cip
al.
La rutina [Archivo] contiene: la subrutina [Nuevo] que permite realizar archivos
nuevos en formato de texto, la subrutina [Abrir] permite presentar en pantalla archivos en
formato de texto existentes, la subrutina [Cerrar] permite limpiar la ventana de texto activa,
la subrutina [Guardar] permite almacenar el texto contenido en la ventana actual, la
subrutina [Imprimir] permite imprimir el texto contenido en la ventana activa y la subrutina
[Salir] cierra completamente el programa.
La rutina [Tutorial] contiene: la subrutina [Procedimientos de diseño] que
presenta en pantalla los procedimientos que se sugieren seguir en el diseño secuencial
sincrónico, la subrutina [Contadores sincrónicos] desarrolla la secuencia a seguir en el
diseño de los contadores sincrónicos de cualquier tipo, la subrutina [Registros de
desplazamiento] analiza las aplicaciones de los registros de desplazamiento, la subrutina
[Detectores de códigos] desarrolla la secuencia que se debe realizar en el diseño de los
detectores de secuencias de códigos, la subrutina [Diseño secuencial sincrónico con ROM]
presenta los pasos a seguir en el diseño de los sistemas secuenciales sincrónicos utilizando
memorias ROM.
La rutina [Diseño] contiene: la subrutina [Contadores] permite al usuario realizar
el diseño de los contadores sincrónicos de cualquier número de bits, la subrutina [Detectores
de códigos] pennite al usuario realizar el diseño de los detectores de secuencias de códigos
con una entrada y una salida, la subrutina [Diseño utilizando ROM] permite realizar al
usuario el diseño de los sistemas secuenciales sincrónicos mediante el uso de memorias
ROM, la subrutina [Problemas] presenta el desarrollo de un grupo de problemas de
aplicación práctica que pueden ser analizados y resueltos mediante los sistemas secuenciales
Página 121
sincrónicos, la subrutina [Minimizar] es un utilitario que se incluye como parte del programa
para que el usuario pueda realizar la simplificación de las funciones de Boole si se conocen
los términos mínimos de la función.
La rutina [Ventanas] contiene: la subrutina [Cascada] es un utilitario para
presentar las ventanas de texto en un arreglo de cascada en la pantalla, la subrutina
[Horizontal] es un utilitario que permite presentar las ventanas de texto en arreglo horizontal
en pantalla, la subrutina [Vertical] permite presentar las ventanas de texto en arreglo vertical,
la subrutina [Guardar] permite almacenar el texto contenido en la ventana actual.
La rutina [Ayudas] contiene: la subrutina [índice] despliega una ventana con
rutinas necesarias para el uso de las ayudas, la subrutina [Buscar ayuda sobre] despliega
una ventana con los tópicos de teoría y conceptos relacionados con el diseño secuencia!
sincrónico, la subrutina [Preguntas y respuestas] presenta un banco de preguntas con sus
respectivas respuestas como soporte teórico para el usuario, la subrutina [Uso de ayudas]
presenta sugerencias sobre el manejo de las ayudas, la subrutina [Tutoría! del programa]
presenta los pasos a seguir en la utilización del programa, la subrutina [Acerca del
programa] presenta los lincamientos de propiedad intelectual.
3.1.2- DESCRIPCIÓN DEL PROGRAMA DE AYUDAS
La Figura 3.2 presenta el diagrama de bloques con las rutinas principales del
programa de ayudas. El programa de ayudas contiene las rutinas principales: la rutina
[Archivo] para la impresión de archivos visualizados en la pantalla de ayudas, la rutina
Página 122
[Ayuda], mediante la cual se puede visualizar conceptos de la teoría del diseño secuencia!
sincrónico, los mismos conceptos presentados en los capítulos uno y dos
PROGRAMA DE AYUDAS
Archivo Ayuda
Imprimir
Especificarimpresora
Salir
Buscar ayudasobre
Uso de la
ayuda
Acerca de la
ayuda
FIGURA 3.2: Diagrama de bloques del programa de ayudas.
La rutina [Archivo] contiene: la subrutina [Imprimir] que imprime directamente el
texto contenido en la ventana activa, la subrutina [Especificar impresora] despliega un
cuadro de dialogo en el cual le permite seleccionar el tipo de impresora y sctcar las opciones
para la impresión del texto contenido en la ventana activa, la subrutina [Salir] le pennite
abandonar la ventana de ayudas y retomar a la pantalla del programa principal.
La rutina [Ayuda] contiene: la subrutina [Buscar ayuda sobre] despliega una
ventana con los tópicos de teoría y conceptos relacionados con el diseño secuencia!
Página 123
sincrónico, la subrutina [Uso de la ayuda] despliega información con las instrucciones y
comandos que se pueden ejecutar durante el uso de las ayudas, la subrutina [Acerca de las
ayudas] especifica los derechos de propiedad intelectual de las ayudas.
3.2.- DIAGRAMA DE FLUJO DE UN PROGRAMA TUTORIAL
La Figura 3.3 presenta el diagrama de flujo de un programa tutoría! bajo el
ambiente Windows. Un programa tutoría! de esta naturaleza está .conformado de N
lecciones. La forma de programación de un tutoría! se realiza mediante instrucciones que
permitan ejecutar una lección a la vez, avanzar a la ejecución de la siguiente lección,
retroceder a la ejecución de la lección anterior o salir en cualquier punto en la ejecución del
programa tutorial.
Al iniciar la ejecución de un programa tutorial se presenta la lección inicial En el
diagrama de fiujo de la Figura 3.3, existe la posibilidad de ingresar a un bloque de
instrucciones mediante el comando [Instrucciones] que permiten al usuario, si así lo
requiere, conocer los comandos que aparecerán durante el desarrollo del tutorial. Estos
comandos son instrucciones que le posibilitan al usuario avanzar, retroceder en el desarrollo
del tutorial o salir del tutorial si este fuera el caso. En el diagrama de flujo de la Figura 3.3,
si el tutorial se encontraba en la lección l-ésima^ el comando [Siguiente] hace avanzar la
ejecución del tutorial a la lección Pésima + 7, el comando [Anterior] hace retroceder la
ejecución del tutorial a la lección /-¿sima - 1, y. el comando [Salir] abandona el programa
tutorial. En un tutorial, el comando [Siguiente] aparecerá si la lección ejecutada no es la /i-
ésima, y el comando [Anterior] si la lección ejecutada no es la primera.
Página 124
3.3.- DIAGRAMA DE FLUJO Y DESCRIPCIÓN DEL PROGRAMA
GENERAL DEL DISEÑO SECUENCIAL SINCRÓNICO
C INICIO
DIAGRAMA DEESTADOS
GENERACIÓN DE LA
TABLA DE ESTADOS
SIMPLIFICACIÓNDE ESTADOS
SELECCIÓN DEL TIPO
DE FL1P - FLOP
GENERACIÓN DE LA
TABLA DE EXCITACIÓN
GENERACIÓN DE LOSMAPAS "K"
SIMPLIFICACIÓN DE LASFUNCIONES DE BOOLE
CREACIÓN DELDIAGRAMA LÓGICO
FIGURA 3.4: Diagrama de flujo de un programa general de diseño secuencialsincrónico.
En el diagrama de flujo presentado el la Figura 3.4, se especifica la secuencia que se
sigue en el programa computacional de esta tesis para el desarrollo de los diferentes tópicos
del diseño secuencial sincrónico con Fíip - Flops y compuertas lógicas.
Página 126
En la Figura 3.4, la rutina [Diagrama de estados) y la rutina [Generación de la
tabla de estados] permite que el usuario ingrese los datos correspondientes a un diagrama
de estados o el código de una secuencia de tal manera que con estos datos se pueda generar
la labia de esíados. Durante la generación de la tabla de estados se realiza la asignación de
nombres de letras a los estados.
La rutina [Simplificación de estados] realiza la simplificación de estados mediante
simple inspección, después de haber realizado esto, se procede a la simplificación sistemática
mediante particiones o mediante la tabla de implicación. Después de haber realizado la
simplificación, queda determinado en número de Flip - Flops necesarios.
Una vez determinado el número de Fíip - Flaps^ la rutina [Selección del tipo de
Flip - Flap] permite al usuario escoger el tipo de F/ip - Flop con el cual desea realizar el
diseño del circuito secuencia! sincrónico. Al seleccionar el tipo de Ftip - Flap, la rutina
[Generación de la tabla de excitación] crea la tabla de excitación de los Flip - Flops y la
tabla de salida si esta existe.
Una vez creada la tabla de excitación, quedan determinados los términos mínimos,
términos máximos y condiciones no importa para cada una de las excitaciones de los Flip -
Flops y para la salida si este es el caso, con lo cual implícitamente se han determinado los
mapas K. Mediante la rutina de [Simplificación de las funciones de Boole] se determinan
los funciones de excitación y salida simplificadas. Por último, las funciones de Boole
simplificadas determinan implícitamente el diagrama lógico el cual no se presenta en el
programa de diseño secuencial sincrónico.
Página 127
3.4.- DIAGRAMA DE FLUJO Y DESCRIPCIÓN DE PROGRAMAS
INTERNOS
Una de las rutinas que se encuentra dentro del programa principal es el algoritmo
utilizado para simplificar las funciones de Boole (minimización). El diagrama de flujo de
este algoritmo se presenta el la Figura 3.5.
El primer paso utilizado para la minimización es obtener los implicantes primos.
Para la obtención de estos se determinan las tablas de trabajo de origen y destino. En la tabla
de origen se agrupan las combinaciones binarias que pertenecen a términos mínimos y
condiciones no importa. Se toma el primer término de este grupo y se lo compara con todos
los del grupo inferior. La primera comprobación es verificar si los dos términos comparados
tienen las mismas variables, si no tienen las mismas variables no se pueden combinar y se
sigue la comprobación con el siguiente término del grupo inferior. Si tienen las mismas
variables se procede a contar cuantas variables cambian de estado del un ténnino al otro. La
manera de hacer esto es aplicando el operador lógico OR - EXCLUSIVO a los términos y
contando el número de unos del resultado. Los cambios presentados al detectar un cambio
de estado de una variable son:
Estado anterior
Estado actual
Resultado OR - EXCLUSIVO
0 0 1 1
0 1 0 1
0 1 1 0
TABLA 3.1: Función OR - EXCLUSIVO de dos números binarios.
Página 128
DEFINIRVARIABLESLOCALES
LAZO
DEFINIR TABLA DEORIGEN Y DE
DESTINO
DEL PRIMERGRUPO AL
PENÚLTIMO
CALCULE ÍNDICES YPUNTEROS DEL GRUPO
SUPERIOR
DEL UMITEINFERIOR
AL SUPERIOR
RECUPERAR TERMINODEL GRUPOSUPERIOR
CALCULE ÍNDICES YPUNTERO DEL GRUPO
INFERIOR
© 0 ©
• "DEL LIMITE
INFERIORAL SUPERIOR\R TERMINO
DEL GRUPOINFERIOR
©FIGURA 3.5: Rutina de determinación de los Implicantes Primos (I.P.). Parte (a).
Página 129
3
"j r"
COMPARE VARIABLESELIMINADAS ENTRE
LOS TÉRMINOS
CALCULE NUMERO DEVARIABLES QUE
CAMBIAN DR ESTADO
T
CALCULE TERMINONUEVO, MARQUE VA-RIABLE QUE CAMBIA
MARQUE LOSTÉRMINOS QUE SE
HAN COMBINADO
BUSQUE SI ELNUENO TERMINO
YA EXISTE
ALMACENE EL NUEVOTERMINO EN TABIA
DE DESTINO
FIGURA 3.5: Rutina de determinación de Implicantes Primos (T.P.). Parte (b).
Página 130
ALMACENE NUEVOSÍNDICES DE TABLA
DE DESTINO
/ DEL INICIO \E LA TABLA ORIGEN>
\L FINAL X\R LA MARCA
DE No. PRIMO DECADA TERMINO
ALMACENE TERMINO ENTABLA DE IMPLICANTES
ACTUALICE PUNTERO
CALCULE CUANTOSTÉRMINOS NUEVOS
SE GENERARON
INTERCAMBIO DEFUNCIÓN DE LAS
TABLAS DE TRABAJOORIGEN <—> DESTINO
FIGURA 3,5: Rutina de determinación de Implicantes Primos (I.P.). Parte (c).
Página 131
En la Tabla 3.1 se ve que la operación OR - EXCLUSIVO es la indicada para
determinar en número de cambios entre el estado anterior y el estado actual . Si existe más
de un cambio entre eslos estados, los términos binarios que representan a los estados no se
pueden combinar y se sigue al siguiente término del grupo inferior.
Si existe un sólo cambio, se combinan los dos términos en uno sólo. El término
resultante se coloca en la tabla de destino marcando la variable eliminada. También se
marca con un "1" el vector de términos considerados en la combinación, indicando que éstos
ya se han agrupado en un grupo mayor. El proceso continua, hasta comparar todos los de un
grupo con los del grupo siguiente, y así hasta acabar también con todos los grupos. En la
tabla de destino hay un nuevo grupo de términos.
En la tabla de origen se verifican todos los términos y aquellos que no estén
marcados, son los que no se han podido agrupar para formar grupos mayores,
constituyéndose en implicantes primos y se almacena en la tabla de implicantes primos.
A continuación se borra la tabla de origen y se cambian las funciones, la tabla de
destino pasa a ser la de origen y la de origen pasa a ser la nueva tabla de destino.
El proceso se vuelve a repetir, hasta que no pueda pasarse ningún término a la tabla
de destino, en ese momento se han hallado todos los implicantes primos.
El siguiente paso en la solución consiste en seleccionar un grupo óptimo de
implicantes primos, tal que cubra todas las combinaciones que tienen asignado un "1". Es
Página 132
importante indicar que el método planteado no garantiza el obtener la solución mínima, sino
una buena aproximación de la misma. El trabajo para hallar la verdadera solución mínima
puede llegar ha ser enorme y es posible que el ahorro en costo de la solución no represente el
incremento en tiempo. El método para hallar la solución mínima será el tomar todos los
implicantes primos, realizar todas las combinaciones posibles, tales que lleven a la solución y
de éstas escoger la de mínimo costo. En realidad el método propuesto, plantea la generación
de una tabla en donde se tengan en las filas, los implicantes primos y en las columnas los
términos originales de la tabla original. En las intersecciones se pondría un "1" si el P.F
(Producto Fundamental) está incluido en el I.P (Implicante Primo) o un cero si no lo está.
La estructura de los vectores es similar a la del proceso anterior, al llenar la tabla de
productos fundamentales, se toman de la tabla de verdad original, todas las combinaciones
que tengan asignado un "1" y se dejan las marcas "O" ó "2" (con "2" se representarán las
condiciones no importa). No se debe tomar en cuenta a las condiciones no importa ya que
estas combinaciones pueden ser cubiertas o no, lo que equivale a que puedan tener cualquier
valor. La primera operación es determinar si algún producto fundamental está cubierto por
sólo un implicante primo, en tal caso el implicante primo debe estar en la solución ya que de
otro modo no se puede cubrir el producto fundamental. A este implicante primo se le
denomina Implicante Primo Esencial (T.P.E) y forma parte del resultado, siendo almacenado
en la tabla correspondiente y eliminado en la tabla de implicantes primos junto con el
producto fundamental al cual cubre. Cuando ya no quedan más implicantes primos
esenciales se ha llegado a la tabla cíclica, a la que se apHca el método de Ramificación
parcial. El método de ramificación parcial se aplica hasta que todas las columnas (de
productos fundamentales) queden cubiertas por algún implicante primo, en cuyo caso se
habrá llegado a la solución.
Página 133
DEFINIRVARIABLES
LOCALES
NUMERO MÁXIMODE TÉRMINOS
ES = 2-N
DESDE 1HASTA
RECUPERE CONTENIDODE U TABLA
PARA ESE NUMERO
ALMACENAR EN LASTABLAS, ACTUALIZAR
PUNTEROS
RECUPERE LATABLA DE
IMPLICANTESPRIMOS
FIGURA 3.6: Rutina para generar de la tabla cíclica.
Página 134
DEFINIRVARIABLES
LOCALES
DESDE LACOLUMNA = 1
RECUPEREEL RPODUCTOFUNDAMENTAL
DESDEFILA = 1
AL # DE F.P.
RECUPERE I.P, VE-RIFIQUE 31 I.P.
CONTIENE AL P.F.
VERIFICAR SI I.P.SE HA MARCADO
COMO I.P.E.
MARCAR EL P.F.COMO YAINCLUIDO
FIGURA 3.7: Rutina de detección de implicantes primos esenciales (I.P.E.). Parte (a).
Página 135
ALMACENE # DE FILA EINCREMENTE CONTA-DOR DE OCURRENCIA
ALMACENEEL NUMERO LE
OCURRENCIAS
MARCAR I.P. COMOESENCIAL Y ALMACE-NAR EN LA SOLUCIÓN
FIGURA 3.7: Rutina de detección de implicantes primos esenciaJes (I.P.E.)- Parte (b).
Página 136
INICIO
DESDE LACOLUMNA = iAL # DE P.F.
VERIFICA!*SI LA COLUMNASE HA MARCADO
SITIENE KtARCÁ?
DESDE LAFILA = i
AL # DE I.P.E.
RECUPERE I.P.E. YVERIFIQUE SI
CONTIENE AL P.F.
FIGUKA 3,8: Rutina de eliminación de columnas contenidas en los I.P.E. Parte (a).
Página 137
REUBIQUE
LA COLUMNA
DESDE iAL NUMERO
DE I.P.
VERIFIQUE SI ELI.P. ESTÁ MARCADO
COMO ESENCIAL
REUBIQXÍELA
FILA
3
FIGURA 3.8: Rutina de eliminación de columnas contenidas en los I.P.E. Parte (b).
Página 138
DEFINIRVARIABLES
LOCALES
' DESDE INC = .-AL NUMERO >*-
DE l.P. /
/ DESDE I< AL NUMERO\E P.F.
RECUPERE EL %DE OCURRENCIASEN ESA COLUMNA
DESDE K = 1AL NUMERO
DE l.P.
VERIFIQUE SI LAFILA CONTIENE A
ESA COLUMNA
0 ÓFIGURA 3.9: Rutina de solución de la tabla cíclica. Parte (a).
Página 139
NO CONTIENE?
SI
ALMACENE LAPOSICIÓN DE
LA FILA K
DESDECOA = 1
A INC
PROBABILIDADDE ESA
FILA = O
/DESDE IC2 - i-*< AL NUMEEO
\E P.F.
RECUPEREEL
P.F.
4
FIGURA 3.9: Rutina de solución de la tabla cíclica. Parte (b).
Página 140
7
*
©VERIFIQUE SI EL
I.P. CONTIENEAL P.F.
SUMELA
PROBABILIDAD
RECUPERE MÁXIMAPROBABILIDAD Y
COMPARE
1
SI
•
ALMACENE NUEVAPROBABILIDAD
MÁXIMA Y LA FILA
FIGURA 3.9: Rutina de solución de la tabla cíclica. Parte (c).
Página 141
(•)(£MARQUE U FaA Y
ALMACENE COMO FAJSTEDE LA SOLUCIÓN
RECUPERE EL I.P.DE ESA FILA
/fjESDE INC2 =AL NUMERO
\E P.F.N
INCREMENTEEL
CONTADOR
RECUPEREEL
P.F.
1
NO
'
VERIFIQUE SI ELI.P. CONTIENE
AL P.F.
3,0
FIGURA 3.9: Rutina de solución de la tabla cíclica. Parte (d).
Página 142
9 © ©RECUPERE CONTADOR(CO) (COLUMNASSIN MARCAR)
FIGURA 3.9: Rutina de solución de la tabla cíclica. Parte (e).
3.5.- DIAGRAMA DE FLUJO DEL DISEÑO SECUENCIAL
SINCRÓNICO UTILIZANDO ROM
En el diagrama de flujo de la Figura 3.10, se especifica la secuencia que se sigue en
el programa compuíacional de esta tesis para el desarrollo de los diferentes tópicos del diseño
secuencia! sincrónico con Ftip - Flops y memorias ROM. En la Figura 3.10, la rutina
[Diagrama de estados] y la rutina [Generación de la tabla de estados] permite que el
usuario ingrese los datos correspondientes a un diagrama de estados de tal manera que con
Página 143
estos datos se pueda generar la tabla de estados. La rutina [Simplificación de estados]
realiza la simplificación de estados mediante simple inspección, después de haber realizado
esto, se procede a la simplificación sistemática mediante particiones o mediante la Labia de
implicación, lo cual determina el número de FUp - Flops.
La rutina [Generación de la tabla de verdad] realiza el cambio de la tabla de
estados a la tabla de verdad de la memoria ROM. Por último, la tabla de verdad determina
implícitamente el diagrama del circuito secuencia! el cual no se presenta en el programa de
diseño secuencial sincrónico.
("INICIO
DIAGRAMA DEESTADOS
GENERACIÓN DE LATABLA DE ESTADOS
SIMPLIFICACIÓNDE ESTADOS
GENERACIÓN DE LATABLA DE VERDAD
CREACIÓN DELCIRCUITO
FIGURA 3.10: Diagrama de flujo de un programa general de diseño secuencialsincrónico utilizando memorias ROM.
Página 144
4.- EJEMPLOS DE UTILIZACIÓN DEL PROGRAMA
DISFSIAC 1.0Archivo Tutorlal [Diserto Ventanas Acudas
Figuras Tablas Salir
FIGURA 4.1 Pantalla que presenta el menú principal.
Para la utilización de cualquier parte del programa, es necesario que el usuario
ingrese al menú principal, una vez en éste puede seleccionar el tema que desee mediante la
opción correspondiente. Las opciones que puede seleccionar el'usuario son [Archivo],
[Tutoría!], [Diseño], [Ventanas] y [Acudas] cuyas funciones, opciones secundarias y
rutinas internas fueron explicadas en el tercer capítulo. Para la explicación sobre la
utilización del programa en este capítulo, se realizará una ilustración paso a paso en el
desarrollo del tema seleccionado.
Página 145
4.1.- PROGRAMA TUTORIAL
ArchivoDISESIAC 1.0 - [DiaeiSu lictueiiual Smuuiiicu Aüi-otidu pui Cuiuuutaüur)1 Tittnrial Ventanas Ayudas
Figuras Proredimientos de Diseño GccuencijlContadores SincrónicosRegistros de DesplazamientoDetectores de Secuencia de CódigosDiseño Sccucncial Sincrónico con RQM
FIGURA 4.2: Componentes de la opción [Tutoría]].
Dentro del programa [Tutoría!] el usuario puede seleccionar el tema procedimientos
de diseño secuencia!, que es un tutoría! sobre los pasos que se deben seguir en el diseño de
sistemas secuenciales sincrónicos. Puede seleccionar el tutoría! para.el diseño de contadores5
para el diseño de registros de desplazamiento, para el diseño de detectores de secuencias de
códigos y el tutoría! para el diseño de sistemas sccuencialcs sincrónicos mediante el uso de
memorias ROM, Como ejemplo de uso del programa tutorial se presenta el desarrollo del
tutoría! para el diseño de contadores sincrónicos.
Página 146
4. i. 1.- TUTORIAL PARA EL DISEÑO DE CONTADORES SINCRÓNICOS.
1UTORIAI -Cnntartf>re¡; Sinrrónir.nr.
JUas lecciones de fundamentos de
diseño de contadoressincrónicos, enseña los pasosnecesarios para adiestrarle en eldiseño de estos.
• Haga Clíck sobre instruccionespara ver como moverse por lapantalla.
Instrucciones
Haga CHck sobre siguiente paracomenzar con las lecciones deldiseño de contadores.
Siguiente
FIGURA 4.3: Primera pantalla del tutorial de contadores sincrónicos.
La Figura 4.3 presenta la primera pantalla del tutorial del diseño de contadores
sincrónicos. Aquí se pueden ver los comandos: [Salir] que le permite salir al menú principal,
[Instrucciones] describe las comandos que aparecerán durante la ejecución de este tutorial,
y el comando [Siguiente] que avanza a la siguiente lección del tutorial, este comando estará
presente hasta la penúltima lección del tutorial de contadores sincrónicos. A partir de la
segunda lección aparecerá el comando [Anterior], este comando permite retroceder a la
lección previa del tutorial.
Página 147
TUrORIAI -Contadnrer» Sinrrnnirnr.
Diagrama de estados miRODUCCIÓNALOS CONTADORESSINCRÓNICOS
Un cirrnitn sp,rnenr,ial que pasa pnr rmasecuencia preestablecida de estadasdespués de la aplicación de pulsos deentrada se U ama un contador. En tmcontador, la secuencia de estados puedeseguir una cuenta binaría o cualquier otrasecuencia de estados. Los contadores seencuentran en la mayoría de equipos quecontienen lógica digital. Ellas se utilizanpara contar el número de ocurrencias de unevento y se usan para generar secuenciasde tiempo para controlar las operaciones deun sistema digital.
De las diferentes secuencias que uncontador debe seguir, la secuencia binariadirecta es la más simple. Un contador quesigue la secuencia binaría se Dama contador
FIGURA 4.4: Segunda pantalla del tutorial de contadores sincrónicos.
La Figura 4.4 presenta como aparece la segunda pantalla durante el desarrollo del
tutorial para el diseño de contadores sincrónicos. Aquí se pueden ver los comandos: [Salir],
[Anterior] y [Siguiente] que cumplen las funciones descritas en el párrafo anterior.
Como se explicó en el capítulo dos, para el diseño de contadores sincrónicos se
parte de la especificación del número de estados por el cual atraviesa el contador mediante
una tabla de estados o un diagrama de estados, aquí queda determinado el número de Flip -
Flops que son necesarios para el diseño de este contador. Entonces, la Figura 4.4 presenta
Página 148
el diagrama de estados de un contador módulo ocho de cuenta directa ascendente del cual se
explica su diseño. También se présenla una venlana de texto en la cual se presentan las
especificaciones que debe cumplir el contador cuyo procedimiento de diseño se explicará, si
las especificaciones de diseño no cabe en la ventana de texto, la ventana presenta la
posibilidad de desplazar hacia abajo y así poder ver el resto de la explicación.
TUTORÍA! -Contarinrer, Sinfrhnirnr.Diagrama de estadas
t *
TIPODEFUP-]
<$JK
OSR
Sa¡ir
eLUF
ODOT
¿nterú
Seca encía de cuanta
Estado actual Estado siguiente
TABLA DE ESTADOS
El siguiente paso en el diseño decantadores es la determinación dela tabla de estados.Avi tí'i consideramos por ejemplo elvalor de cuenta 000 como estadoactual (Qn), entonces, el valor decuenta 001 será el estado de cuenta
FIGURA 4.5: Tercera pantalla del tutoría! de contadores sincrónicos.
La Figura 4.5 presenta la tercera pantalla en el desarrollo del tutorial de contadores
sincrónicos. Del diagrama de estados se procede a la creación de la tabla de estados la cual
se presenta en esta figura. También se presenta una ventana de texto con la explicación de
Página 149
como se genera la tabla de estados. Por esta razón, en esta pantalla del tuíorial se presenta
una ventana con los tipos de Ftip - Flops estudiados, el objetivo de esta opción es presentar
en el tutorial la alternativa para que el usuario en este punto pueda seleccionar un tipo de
Flip - Flop con el cual desee continuar el desarrollo de las siguientes lecciones. En nuestro
caso, para proseguir con la explicación de la utilización del tuíorial de contadores
sincrónicos, se escoge el Flip - Flop tipo JK.
í TUTOR1AI -Cnnlailnrer. Sínrrónirn*; !
Tabla de excitación con íTip-ílops JK
Secuencia de cuentaHitado actual
O*00
0
0
1111
Q100
110
0
11
9«0
10
10
101
Estado siguienteQ*00
011110
Qi0
110
0
11D
<?•I0
10
10
10
Entrad os del Ftíp-Hop
Q*J2
00
0
12
X
XX
K2
X
X
XX
0
0
0
1
QiJi0iXX
0
1X
X
KiXX
01XX
0
1
OoJo1X1X1X
1X
KoX
1X1X
1Xi
Tabla de excitaciónQn0011
Qn+10101
Salir
J01XX
KXX10
TABLA DE EXCITACIÓN
La tabla de excitación se genera una vezestablecido el tipo de Flip - Flop, Se considerael estado actual (Qn) de la variablecorrespondiente y el
Anterior
estado siguiente (Qn-HL) de
Supliente
*
4-
FIGURA 4.6: Cuarta pantalla del tutorial de contadores sincrónicos.
La Figura 4.6 presenta la cuarta pantalla en el desarrollo del tutorial de contadores
sincrónicos. Una vez seleccionado el tipo de Ftip - fTop, el paso siguiente en el diseño de
Página 150
contadores sincrónicos es la creación de la tabla de excitación para las entradas de los Flip -
Flops. La Figura 4.6 presenta la tabla de excitación, una ventana de texto con explicación
de como se crea la tabla de excitación y la tabla de excitación del Flip • Flop seleccionado
para el diseño del circuito para que el usuario pueda verificar la veracidad de la tabla de
excitación para las entradas de los Flip - Flops.
TUTORÍA! -Contadnre". Si
Mapas K y fundones lógicas de las excitaciones JyK
FIGURA 4.7: Quita pantalla del tutoría! de contadores sincrónicos.
La Figura 4.7 presenta la quinta pantalla en el desarrollo del tutorial de contadores
sincrónicos. Después de haber obtenido la tabla de excitación, se procede a la creación de los
mapas "K" para cada una de las entradas de los Flip - Flops^ en estos mapas se presenta la
Página 151
manera más óptima de agrupar los términos mínimos, este procedimiento se realiza
utilizando la ayuda de las condiciones no importa y así obtener las funciones lógicas de
excitación de los FUp - Flops más simples posibles. En este punto cabe dejar constancia que
la agrupación se facilita por que el número de variables es pequeño, si el número de variables
es mayor o igual a cinco, la posibilidad de optimizar las funciones lógicas mediante los
mapas "K" se ve dificultado, debido a que es difícil visualizar cuales serán los grupos más
óptimos, es por esta razón que la optimización de las funciones lógicas para un número
elevado de variables necesita un algoritmo diferente y que éste pueda ser desarrollado
computacionalmente.
TUTOHIAI -Cnntariiirttr. Sinr.rnninn?;
Diagrama Lo giro eonilip-ílops JK
Q0
1 11
i
f— <
(\>CLK
u 75
v—_ | 1
C »C1_K
i i i
1 1L
OCLK
i' 75
DE RELOÜ
FIGURA 4.8: Sexta y última pantalla del tutorial de contadores sincrónicos.
Página 152
La Figura 4.8 presenta la última pantalla en el desarrollo del tutoría! de contadores
sincrónicos. Una vez obtenidas las íimciones lógicas de las excitaciones de los Ftíp - Flops
mediante los mapas "K" se procede a dibujar el circuito lógico correspondiente. Así se
termina la explicación de los pasos necesarios por los que atraviesa el diseño de contadores
sincrónicos los cuales están incluidos en el programa tutorial analizado.
4.2.- PROGRAMA . GENERAL DE DISEÑO SECUENCIAL
SINCRÓNICO
Como ejemplos de utilización del programa en lo referente al diseño de sistemas
sccuenciales sincrónicos se presenta la utilización del programa en el diseño contadores
sincrónicos así como para el diseño de detectores de secuencias de códigos.
4.2.1.- CONTADORES SINCRÓNICOS
Para explicar el uso del programa para el diseño de contadores sincrónicos se lo
realizará mediante un ejemplo práctico. Entonces, se desea diseñar un contador BCD, este
contador tiene 10 estados 0,1, 2, 3, 4, 5, 6, 7, 8, y 9 por tanto, es un contador que necesita 4
bits o dígitos en código binario, esta información se debe proporcional al programa. Para
ingresar al programa de diseño de contadores sincrónicos, en el menú principal se selecciona
la opción [Diseño] y de ésta la opción [Contadores]. La Figura 4.9 presenta la pantalla
despxiés de haber seleccionado y ejecutado la opción [Contadores], en esta pantalla se
pregunta al usuario cual es el número de bits del contador, por lo tanto se debe ingresar el
número 4 en el casillero junto al comando [Aceptar], una vez realizado esto se hace Click
Página 153
con el ratón sobre el comando o se selecciona el botón de comando [Aceptar] mediante la
tecla <Tab> y se presiona la tecla <Intro> o se presiona las teclas <Alt - A>, con cuatro bits
se pueden obtener hasta 16 combinaciones posibles, en el ejemplo de diseño se necesitan 10
estados por lo tanto seis estados no existen en este contador.
DISFSIAC 1.0 -[Diueim de cu ida do res]
Figuras Tullías SalirESTADO ACTUAL ESTADO SIGUIENTE
Ingrese el número de bits delcontador
Salir
FIGURA 4.9: Pantalla inicial para el diseño de contadores.
El programa presenta un cuadro de diálogo con el usuario tal como se presenta en
la Figura 4.10, el cual posibilita el modo de ir llenando la tabla de estado siguiente.
Mediante este cuadro de diálogo, se le informa al programa sobre la existencia o no de un
determinado estado binario, el usuario debe ingresar la existencia de un estado binario
Página 154
mediante la opción [Si], luego el programa le preguntará cual es el estado de cuenta siguiente
correspondiente a este estado; sino existe un estado binario el usuario debe informarle esta
situación mediante la opción [No], en cuyo caso el programa pasa a preguntarle sobre las
caracleríslicas del siguiente estado de cuenta.
DISESIAC 1.0 - IDfctfMu it* contador»?;;!
Fi yuras Tablas SalirESTADO ACTUAL ESTADO SIGUIENTE
g3|Q2|Qi|QQ0 0 1
Existe el estado (1)?
O s¡ O No
Salir
FIGURA 4.10: Segunda pantalla para el diseño de contadores.
En la Figura 4.10 ya se ha ingresado las características del eslado de cuenta O el
cual tiene como eslado siguiente de cuenta al eslado 1, en este punto el cuadro de diálogo
présenla la pregunla sobre la existencia del estado 1 a esto el usuario debe responder que si,
también que su estado de cuenta siguiente es el estado 2, esle proceso se repite hasta.
Página 155
completar todas las posibles combinaciones que se puedan realizar con el número de bits
ingresados, instante en el cual se habrá terminado el ingreso de datos. Luego de haber
ingresado todos los datos, el programa le preguntará si los mismos están correctos, sino están
correctos permite la posibilidad de corregirlos y si están correctos se debe presionar el
comando [Aceptar]. Luego de haber realizado esto, aparece la pantalla mostrada el la
Figura 4.11 que presenta la tabla de estados completa.
DISESIAC 1.0 - [Diuefiu de contadure-j]
TIIIU de Fliu Fluii
FF.1KEFSREFDFFT
Salir
FIGURA 4,11: Tercera pantalla para el diseño de contadores.
La Figura 4.11, presenta también un cuadro de diálogo que permite al usuario
escoger el tipo de Flip - Flop con el cual realizará el diseño. Siguiendo con el análisis para el
Página 156
diseño de contadores, se escogerá el Flip - Flop JK. Luego de haber seleccionado el Flip -
Flop se obtiene la pantalla presentada en la Figura 4.12, en la cual se presenta la tabla de
excitación completa para la selección realizada, antes de iniciar el proceso de calculo se
puede ver la labia de excitación con todos los Flip - Flops mostrados en el cuadro de
selección de éstos. Si el número de estados no alcanza en la ventana de la tabla, las flechas
de desplazamiento horizontal y vertical de esta permiten mirar el resto del contenido.
DISESIAC 1.0 - [Di^im de cuiitadureü]
Figuras Tablas SalirEtta a* la lafaU da excitación con FEp Rpo* Tipo JK
3|K3 \32\K2 [jl |gl |üOJKDO X1 X
1 XX I
O X O X X O I XO X 1 X X 1 X I0 X X O O X 1 X
X O 1 X X 1X X O X O I X
1 X X I X I X IX O O X O X 1 X
Calcular
Salir
O»]Qirfl \J (K
1 0 1 I X
2 1 0 X IÍl 1 X 0
FIGURA 4,12: Cuarta pantalla para el diseño de contadores.
El comando [Calcular] de la Figura 4.12 inicia el proceso de obtención de las
funciones simplificadas de Boole, luego de haber seleccionado este comando aparecerá la
Página 157
pantalla de la Figura 4.13 en la cual ya se visualiza la primera función de Boole simplificada
para la primera variable de excitación, en el ejemplo de análisis corresponde a la función de
Boole para la variable de excitación J3.
a DISES1AC 1.0 IDit
"I
Figuras Tablas
;iiiiu dr cuiitmlure?;! BH
T1
SalirEsta at la tabla de excitación con FHp
Fbwv* Tínn .IKJ3 = Q2QIQO
o"L23
4
5
tí
7~8o
Q3|Q2 |Q1•o o0 0 00 0 10 0 10 1 00 1 00 1 10 1 11 0 0i n n
|QO|Q3|Q2 Q0 0 0 01 0 0 10 0 0 11 0 1 0
0 0 1 01 0 1 10 0 1 11 1 0 0
0 1 0 0i n n n
1 QO|J3|K31 0 X
0 0 X1 0 X0 0 X1 0 X
0 0 X1 0 X0 1 X
1 X 0n Y i
|J2|K2 \Jl0 X 00 X 1
0 X X1 X XX 0 0X 0 1
X 0 XX 1 X
0 X 0n Y n
Kl [JOJKDX 1 X
X X L0 1 X1 X 1X 1 X
X X 10 1 X1 X 1X 1 XY Y 1
*
Siguiente
Saür
FIGURA 4.13: Quinta pantalla para el diseño de contadores.
En la FIGURA 4.13 aparece el comando [Siguiente] el cual permite continuar con
el proceso de obtención de las funciones simplificadas de Boole para el resto de variables de
excitación de los FUp - Flops^ una vez obtenida la última función de excitación en el
ejemplo la variable JO, se ha finalizado con el diseño de contadores sincrónicos. La Figura
4.14 presenta la última pantalla para el diseño de contadores en la cual aparece el comando
Página 158
[Ok] permite retornar a la pantalla de la Figura 4.9 y continuar realizando el diseño de los
contadores sincrónicos si así lo requiere el usuario. El comando [Salir] retorna al menú
principal.
S DISESIAC 1.0 lFuim3| BQ-
Figuras Tab las SalirEsta a* la tabla de atentación con FUf)
PLw*«- Tínn JK
élL23
45
<5_78Q
Q3 |Q2 |Q1 QO Q3
• 0 0 0 0
0 0 0 1 0
0 0 1 0 00 0 1 1 0
0 1 0 0 0
0 1 0 1 00 1 1 0 00 1 1 1 1
1 0 0 0 1i n n i n
Q2 |Q1 |QO |J30 0 3 0
0 1 0 00 1 1 0I O D O
1 0 1 01 1 0 0
1 1 1 00 0 0 10 0 1 Xn n n v
K3X
XXXXX
XX01
•V
KD = 1 Logic*
\J2\K2 \Jl
0 X 0
0 X 10 X X1 X XX 0 0X 0 1X 0 XX 1 X0 X 0n v n
Kl [JO KO
X 1 X
X X 10 1 X1 X L
X 1 XX X 10 1 X1 X LX I XY V 1
4
+
Q£
Sajir
FIGURA 4.14: Ultima pantalla para el diseño de contadores.
Las funciones obtenidas para este ejemplo de análisis se listan a continuación.
=Qo
K2 = !.
Página 159
Ji-Ch'.Qo
Jo = 1 Lógico
=Q0
= 1 Lógico
4.2.2.- DETECTORES DE SECUENCIA DE CÓDIGOS
Como en el caso anterior, para explicar el uso del programa para el diseño de
detectores de secuencia de códigos se lo realizará mediante un ejemplo práctico. El programa
presenta la posibilidad de diseño mediante el ingreso del código a detectar o mediante el
ingreso de los estados que posee inicialmente el circuito a diseñar. Entonces, se desea diseñar
un circuito detector de códigos cuyo diagrama de estados se presenta en la Figura 4.15.
FIGURA 4.15: Diagrama de estados para el ejemplo de análisis..
El sistema de la Figura 4.15 tiene 7 estados A, B, C, D, E, F y G, también en esta
figura se puede ver cuales son los estados siguientes y el valor de la salida de cada uno de los
estados, esta información se debe proporcional al programa para iniciar el diseño. El ingreso
al programa de diseño de detectores de códigos se realiza de la siguiente manera, en el menú
principal se selecciona la opción [Diseño] y de ésta la opción [Detectores de Códigos]. La
Página 160
Figura 4.16 presenta la pantalla después de haber seleccionado y ejecutado la opción
[Detectores de Códigos], en esta pantafla se pregunta al usuario cual es el modo de diseño,
si es mediante el ingreso del código o mediante el diagrama de estados, para el ejemplo se
selecciona mediante el diagrama de estados haciendo Ctíck en el comando [Aceptar] junto al
casillero que tiene esla opción.
DI31 SIAC 1.0 - |[)Í-;e¡íu de deteriore1; vcuencr
Figura* Tablas Salir
Diseño mediante el ingreso del código
Diseño mediante el diagrama de estados
FIGURA 4.16: Pantalla inicial para el diseño de detectores de códigos.
Una vez que se seleccionó el comando aceptar de la opción correspondiente, el
programa presenta la pantalla de la Figura 4.17 en la cual se debe ingresar el número de
estados que posee el diagrama de estados, para el ejemplo se ingresa el número 7.
Página 161
DISESIAC 1.0 - [Di Otilio de detectores Je: secuencia1- d« códigos!
Figuras Tablas Salir
Ingrese el Número de estados
FIGURA 4.17: Segunda pantalla para el diseño de detectores de códigos.
Luego de ingresar el número de estados se presiona la tecla <íntro> en la Figura
4.17, y el programa pasa a la pantalla de la Figura 4.18 en la cual presenta un cuadro de
diálogo que permite ingresar los datos contenidos en el diagrama de estados, en esta figura el
cuadro de diálogo presenta la ventana para ingresar las características del estado A.
En la Figura 4.18 presenta el cuadro de diálogo seleccionando las características
del estado A, para este estado se selecciona para cuando la entrada x = O la salida z = O y el
estado siguiente es B, y cuando la entrada x = 7, la saHda z = 1 y el estado siguiente es C. La
selección del valor de la salida z se realiza remarcando la opción que indica el valor de la
Página 162
salida, para cada valor de entrada y la selección del estado siguiente se efectúa mediante las
barras de desplazamiento horizontal que el cuadro de dialogo presenta para cada uno de los
valores que puede tomar la entrada x.
DISESIAC 1.0 - [Dk-trñu de deletlurtv.: de a'.; de uúdiuu'j]
Figuras Tablas Salir
B
Aceptar
f Entrada X - 0~~
® SattdaZ-0
Estado siguiente - B
•Entrada X -1~
O SalidaZ-0
&(SafidaZ»'1Í
Evtado - C
FIGURA 4.18: Tercera pantalla para el diseño de contadores.
Una vez realizado el ingreso de las características del estado, se hace Click sobre el
comando [Aceptar]. El ingreso de los datos de los restantes estados, se hace de la misma
manera ya descrita en el párrafo anterior y la tabla de estados completa es tal como se
presenta en la pantalla de la Figura 4.19. En esta figura aparece el comando [Simplificar],
comando que ejecuta las rutinas de simplificación. En primer lugar se realiza la
Página 163
simplificación de estados equivalentes por simple inspección, para luego pasar a una
simplificación mediante la tabla de particiones o mediante la tabla de implicación.
DISESIAC 1.0 - [Diseño de (Jeletture-j ile secuencias de tróüíuuul
Figuras Talilas Salir
012
3456
•\cfaimBCDr
Ffj
al |SHr«fcitic/2
IB
CD
CDGC
:=€ |Sifiiiente/X=l Salida^=0 Salid^X=lC 0 1
A 0 1B 1 0A 0 1C D 1F 0 1E 0 1
FIGURA 4.19: Cuarta pantalla para el diseño de detectores de códigos.
Una vez realizado el proceso simplificación por simple inspección, el programa
presenta una ventana de diálogo en la que se puede seleccionar el método a utilizar en la
segunda parte de la simplificación de estados equivalentes, para el ejemplo se escoge la
simplificación mediante la tabla de particiones. Luego del proceso de simplificación, el
programa presenta una pantalla con los estados equivalentes resultantes de la simplificación
asignando nuevas variables a estos estados tal cual se muestra en la Figura 4.20.
Página 164
DISESIAC 1.0 - [Dis
Figuras Tablas Salir
Salir
JActaal |Si(üenÍE/X=<] |Signieiifc/X=l Salid*0
1
23
^ •̂b c 0b e a 0
e b fc. 1
d b 4 0
Q£=0 Saüda/X-1 ¡Equivalencia1 a = A£1 fc=B,í>,G0 c = C1 d = F
FIGURA 4.20: Quita pantalla para el diseño de detectores de códigos.
Luego de la simplificación se procede como en el caso de los contadores a
determinar la tabla de estados mediante el comando [Calcular]. Desde este punto en
adelante el proceso para determinar las funciones de Boole simplificadas es similar al
descrito para el diseño de contadores en las Figuras 4.11 a 4.14 respectivamente. Es así que,
las funciones de Boole simplificadas para las excitaciones de los Ftip - Flops y la salida
obtenidas para el ejemplo de análisis son las siguientes:
J . v J f~\r V > i- í~\ — A -V¿o JM — A -r l̂ o
Página 165
Jo = 1 Lógico Ko = Qi'
4.3.- PROGRAMA DE DISEÑO SECUENCIAL UTILIZANDO
MEMORIAS ROM
5 OIStSlAC 1.0 - IDitíefio Sctutiicial Sím rúnii;u con inefiiuiiau ROM| DE3-
Figuras
01^345
61
xa0
00111T
Ql QO0 00 11 01 10 00 11 01 1
Salir
Tablas Salir
A.T
Ql QO Z
0 1 0
1 0 0
O l í0 1 0O l í0 0 1
0 1 0i i h
+
-*•
FIGURA 4.21: Sexta pantalla en el diseño secuencia! sincrónico con memorias ROM.
, /El proceso de diseño secuencial sincrónico utilizando memorias ROM es similar al
proceso de diseño de detectores de secuencias de códigos presentado en el numeral anterior
Página 166
hasta el instante en que se ha encontrado la tabla de estados simplificada. Por lo tanto las
pantallas que aparecerán en este procedimiento son similares a las presentadas en las Figuras
4.16,4.17, 4.18, 4.19 y 4.20.
Lo único que resta por hacer es asignar las entradas de la memoria a las entradas
externas y a los estados actuales, también asignar las salidas de la memoria a las salidas
externas y a los estados siguientes, determinándose de esta manera el tamaño de la memoria,
La Figura 4.21 presenta la pantalla con la tabla de estados para el ejemplo de
diseño de detectores de secuencia de códigos analizado en el numeral anterior, aquí se hace
la asignación de las variables de entrada salida del circuito a las variables de entrada salida de
la memoria ROM, esta asignación es la siguiente:
Entradas de la ROM Salidas de la ROM
A0 = Qo O0 = z
AI = Qi Oí = Qo
Luego de hacer la asignación se determina el tamaño de la memoria ROM. Para
este ejemplo es de 8x3, ocho localidades de tres bits. Para la asignación de variables no hace
falta un programa riguroso, ya que el propio usuario puede realizarlo fácilmente desde la
tabla de estados.
Página 167
5.- RESULTADOS, RECOMENDACIONES Y
CONCLUSIONES
Al concluir esta tesis de ingeniería, se pueden citar los resultados nías relevantes
obtenidos durante el desarrollo de la misma, hacer algunas recomendaciones y extraer
conclusiones de este trabajo, con el propósito de ayudar en el desarrollo de futuras tesis
relacionadas con la elaboración de Software educativo.
Para el desarrollo de esta tesis se ha utilizado como lenguaje de programación el
Visual Basic 4.0 de Microsoft debido a sus características de facilidad, versatilidad. En la
realización de esta tesis se ha comprobado que Visual Basic es un sistema gráfico para
desarrollo de aplicaciones en entornos Windows de muy fácil manejo que presenta una
forma ingeniosa, innovadora, rápida y fácil en la creación de aplicaciones. Con este sistema,
puede desarrollarse cualquier tipo de aplicación basada en el entorno Windows, incluyendo
sistemas administrativos, herramientas, utilidades, aplicaciones front- ¿«¿/para el proceso de
datos de main - frontes, servidores o procesadores locales y hasta productos de Software
Comercial, como es el caso del paquete computacional desarrollado en esta tesis.
El lenguaje de programación Visual Basic tiene un control denominado OLE que
permite la vinculación e incrustación de obj etos, tecnología que permite que los
programadores de aplicaciones basadas en Windows desarrollen aplicaciones que puedan
presentar datos de muchas diferentes aplicaciones permitiendo que los usuarios editen dichos
datos desde la aplicación con la que fueron creados. En algunos casos, el usuario puede
incluso editar los datos desde en interior de la aplicación Visual Basic. Esta característica en
Página 168
el lenguaje de programación hace que el usuario pueda tener dentro de la aplicación Visual
Basic una aplicación de hoja de cálculo, una hoja de trabajo, una hoja de macro, una celda o
un rango de celdas todos como tipos diferentes de objetos.
Lo más laborioso en el desarrollo de esta tesis de grado fue el interfaz de usuario
para el ingreso de datos, también el interfaz para la presentación de resultados intermedios en
el desarrollo de los diferentes tópicos de diseño secuencial sincrónico y la presentación de los
resultados. Esto es una característica de los entornos de programación Windows. Para
solventar este inconveniente, el programador debe seleccionar el ambiente y los controles
adecuados para estos propósitos cuyo objetivo principal será no dificultar al usuario y hacer
más amigable estas acciones.
En este trabajo de tesis se ha integrado una pequeña parte de la formación del
estudiante de la Escuela Politécnica Nacional, proporcionando ayuda tanto al estudiante
como al profesor. El estudiante puede consultar toda la teoría necesaria para el estudio de los
sistemas secuenciales sincrónicos y adiestrase en el manejo y diseño de estos sistemas. El
profesor con este trabajo puede exponer su clase mediante un computador y un sistema de
proyección de datos (Data Show), exponer los conceptos necesarios, realizar la demostración
paso a paso de un ejemplo de aplicación y desarrollar el diseño de estos sistemas paso a paso
únicamente ejecutando una acción en el teclado o el ratón optimizando de esta manera el
tiempo, característica que facilitaría la ejecución en clase de un número mayor de ejercicios.
Otra aplicación de este trabajo sería en el diseño y la realización de las prácticas en
el laboratorio de la materia correspondiente a los sistemas secuenciales sincrónicos. Podría
Página 169
usarse como una ayuda de fácil acceso en la elaboración, desarrollo y ejecución de las
prácticas, es decir como un módulo didáctico de elaboración de las prácticas para el profesor
y comprobación de los resultados obtenidos por parte de los estudiantes. Esto agilitaría el
desarrollo de las prácticas c incrementaría la cantidad de circuitos que se podrían armar y
probar, consolidándose el aprendizaje de esta materia.
En este trabajo se ha desarrollar un paquete computacional didáctico que facilita el
estudio y diseño de Sistemas Digitales Secuenciales Sincrónicos con ayuda del computador
personal. Además se ha conseguido un alto nivel técnico en el diseño de estos sistemas cuyas
características principales son: impartir los conocimientos en forma rápida, fácil y sobre todo
en forma muy didáctica.
Este trabajo de tesis permite al usuario interactuar con un programa tutorial que le
guiará en el aprendizaje de los conocimientos básicos sobre los diferentes tópicos del Diseño
Secuencia! Sincrónico. También el paquete pone a disposición del usuario, todos los
programas necesarios para la resolución de variados problemas relacionados con el Diseño
Secuencial Sincrónico, que le permitirán afianzar los conocimientos previos obtenidos en la
materia y le ayudará a tener un mayor entendimiento y destreza en el diseño y elaboración de
estos sistemas.
También permitirá la selección de los diferentes temas relacionados con el diseño
Secuencial Sincrónico y será decisión del usuario el grado de complejidad y cantidad de
ejercicios que desee realizar antes de continuar con otro tema. Además el paquete cuenta con
un programa de ayuda para mayor receptabilidad y entendimiento de la teoría y diseño de
estos sistemas.
Página 170
El paquete computacional entrega la solución del problema planteado mediante
procesos intermedios, de esta manera el usuario puede hacer el seguimiento del problema en
pasos intermedios de igual manera que se explica en la teoría de los sistemas Secuenciales
Sincrónicos. De igual forma son accesibles otras opciones como la impresión del
fundamento teórico que sustenta esta tesis y de los resultados obtenidos.
En esta tesis de ingeniería, ha quedado demostrado que con el uso del computador
los problemas de cálculo se simplifican y se agilitan, en problemas repetitivos como la
simplificación de estados y la minimizadón de las funciones de Boole que aquí se ha
computarizado. Reduciendo considerablemente el tiempo de diseño de los sistemas
secuenciales sincrónicos de alguna complejidad y complejos. Es posible que la reducción de
tiempo no se aprecie claramente en los sistemas simples, ya que puede ser más recomendable
hacerlo manualmente, pero en todo caso el paquete le servirá.
Luego de haber realizado algunas conclusiones referente a la elaboración de esta
tesis, cabe también acotar que si bien es cierto que este paquete computacional cubre una
pequeña parte de la materia de Sistemas Digitales, es también cierto que se puede integrar en
un paquete más completo toda la materia y hacer como parte de otras tesis módulos
relacionados con esta materia, luego integrarlos en un paquete completo de esta materia.
También, al finalizar esta tesis, es acertado decir que cualquier materia se puede
integrar en un paquete computacional didáctico, por lo tanto el desarrollo de paquetes
computacionales el la Facultad de Ingeniería Eléctrica es factible y pueden ser objeto de
futuras tesis de grado.
Página 171
Finalmente, es acertado decir que con el desarrollo de esta tesis queda demostrado
que la enseñanza utilizando paquetes computacionales es factible en la Facultad de Ingeniería
Eléctrica y en la Escuela Politécnica Nacional Aun más se puede decir con certeza que la
enseñanza en las Universidades de nuestro País en el futuro se desarrollará por Software
didáctico realizado por sus propios estudiantes y profesores.
Por último cabe mencionar que en las Universidades de oíros Países cono Estados
Unidos, Canadá, España, etc. este tipo de educación ya se encuentra presente en éstas y que
existe acceso a Software didáctico de ubre difusión a través del Internet el cual puede
acoplarse directamente o con ciertas modificaciones en la enseñanza en la Facultad de
Ingeniería Eléctrica.
Página 172
BIBLIOGRAFÍA
M. Morris Mano., Lógica Digital y Diseño de Computadoras., Prentice Hall
Hispanoamericana S.A., México., 1979.
M. Morris Mano., Diseño Digital Principios y Aplicaciones., Prentice Hall
Hispanoamericana S.A., México., 1987.
M. Monis Mano., Arquitectura de Computadoras., Prentice Hall Hispanoamericana
S.A., México., 1987.
Ronaid T. Tocci., Sistemas Digitales Principios y Aplicaciones., Prentice Hall
Hispanoamericana S.A., México., 1993.
F. HÍ11 y G. Peterson., Teoría de Conmutación y Diseño Lógico., Prentice Hall
Hispanoamericana S.A.3 México., 1987.
John F. Wakeriy., Diseño Digital Principios y Prácticas., Prentice Hall
Hispanoamericana S.A., México., 1992.
Herbert Taub., Circuitos Digitales y Microprocesadores., Me Graw Hffl Madrid-,
1992.
Nashelky., Fundamento de Tecnología Digital., Me Graw HilL, Madrid., 1993.
Página 173
José Eduardo Maluf Carvalho., Visual Basic 3.0 - 4.O., Me Graw HilL, Madrid.,
1992 - 1997.
Chico Hidalgo Patricio., Resolución de Ecuaciones Booleanas Utilizando el
Microcontrolador 8751., Escuela Politécnica Nacional., Quito Ecuador., 1987.
Manuales de los Fabricantes de Visual Basic 3.0 y 4.O., Microsoft Corp., New
York., 1987 - 1995.
Página 174