Leo Clases

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 560

1

Capítulo 1

Funciones Booleanas

Cada salida de un sistema digital combinacional puede describirse por una función booleana
de sus variables de entrada. Es decir, las salidas de una red combinacional dependen solamente
de sus entradas. Lo anterior se considera la definición de un sistema digital combinacional.

1.1. Definiciones

i) Una variable booleana es un símbolo, el cual puede ser sustituido por un elemento del
conjunto B={0,1}. Una constante booleana es un valor perteneciente al conjunto {0,1}.
ii) El elemento que es sustituido por el símbolo de la variable se llama el valor de la variable.
iii) Una función booleana de n variables f ( x1 , x2 ,..., xn ) , es un mapeo o correspondencia que
asocia un valor booleano a f, con cada una de las posibles combinaciones de valores que
pueden tomar las variables.
iv) Una expresión o fórmula booleana queda definida, recursivamente, por las reglas:
a) Constantes y variables son expresiones.
b) Si x e y son expresiones, entonces:
x+y, x·y, x’, y’, (x) también son expresiones.
v) Una función booleana es una función f ( x1 , x2 ,..., xn ) , para la cual existe una expresión
E ( x1 , x2 ,..., xn ) , tal que:
f ( x1 , x2 ,..., xn ) E ( x1 , x2 ,..., xn ) (1.1)

vi) Un literal es el símbolo empleado para una variable o su complemento.

vii) Dos expresiones son equivalentes si una puede ser obtenida a partir de la otra mediante un
número finito de aplicaciones de los postulados o teoremas. O bien si tienen las mismas tablas
de verdad.

viii) Suelen emplearse dos tipos restringidos de expresiones:

La siguiente sintaxis, muestra la formación de expresiones como suma de productos.


Una expresión es un OR de sus términos.
Un término es el AND de sus factores.
Un factor es: una constante, o una variable, o una variable complementada.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales

Ejemplo: 0 + a + 1bc + d’ + a’cde

La siguiente sintaxis, muestra la formación de expresiones como producto de sumas.


Una expresión es un AND de sus términos entre paréntesis.
Un término es el OR de sus factores.
Un factor es: una constante, o una variable, o una variable complementada.

Ejemplo: a(1)(c+d’+0)(a + b + c + e’)

1.2. Espacios y funciones Booleanas.

Si definimos el espacio booleano según: B = {0, 1}.

Mediante el producto cartesiano podemos definir el espacio B2, según:

B2 = {0, 1}X{0, 1} = {(00), (01), (10), (11)} (1.2)

Para x = (x1, x2), podemos definir una función booleana f de dos variables según:

f ( x) : B 2 B (1.3)

Cada punto de B2 se mapea a B.

Para n variables booleanas, con: x ( x1 , x2 ,..., xn ) , se define una función f según:

f ( x) : B n B (1.4)

Para cada punto de B n la función f ( x) asigna un elemento de B ; la función booleana


puede tomar valores 1 ó 0 dependiendo de los valores individuales de las variables.

El conjunto uno u “on” de f puede definirse como los puntos de B n que se mapean a 1:

f1 f 1
(1) x | f ( x) 1 (1.5)

El conjunto cero u “off” de f puede definirse como los puntos de B n que se mapean a 0:

f0 f 1
(0) x | f ( x) 0 (1.6)

Si f 1 B n se dice que f es una tautología. Se anota: f 1


Si f 0 B n se tiene que f 1 es vacío y se dice que f no es satisfacible. En lógica la
expresión asociada a la función se denomina contradicción.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 3
Una función es satisfacible cuando existe al menos un elemento en el conjunto uno. Es
decir: para al menos una combinación de las entradas la función toma valor verdadero.

Dos funciones f y g son equivalentes si para todo x B n se tiene:

f ( x) g ( x) (1.7)

1.3. Representación de Funciones Booleanas

1.3.1. Expresiones.

Una función puede ser descrita por una expresión.


Ejemplo:
f( A, B, C) = AB + A’C + AC’ (1.8)

La función puede evaluarse para las diferentes combinaciones de valores que tomen las
variables. Se ilustra la evaluación de la función para A = 1, B = 0 y C = 0.

f( 1, 0, 0) = 1 0 + 1’ 0 + 1 0’
= 0 +0 0+1 1
= 1

Existen infinitas representaciones equivalentes de una función a través de expresiones.

Esto nos lleva al problema de síntesis lógica que consiste en encontrar la “mejor” expresión
para representar a una función.
La mayor ventaja de esta representación es que puede ser muy compacta y facilita la
manipulación matemática. Sin embargo resulta difícil el tratamiento algorítmico.

1.3.2. Tabla de verdad

Una función puede ser descrita por una tabla de verdad.


Una tabla de verdad despliega todas las posibles combinaciones de valores de las variables y
el valor asociado de la función. Por ejemplo, para la expresión (1.8):

A B C f
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1

Figura 1.1. Tabla de verdad de AB + A’C + AC’.

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales
La mayor ventaja de la representación por tabla de verdad es que es única. Dos funciones
con tablas de verdad iguales son equivalentes.

Sin embargo a medida que el número de variables aumenta su uso se torna impracticable. El
crecimiento exponencial del número de renglones, ya que éstos se duplican al aumentar en una
variable, impiden que esta representación se emplee para desarrollar algoritmos
computacionales eficientes.

Una variante de las tablas de verdad son las matrices de cobertura que se desarrollan en
4.6.4.

1.3.3. Esquema Lógico.

Un diagrama o esquemático empleando símbolos estandarizados para las funciones lógicas.


Símbolos de compuertas básicas (gates)

NOT

AND NAND
D Q
OR NOR

XOR XNOR clk

Figura 1.2. Símbolos lógicos de compuertas y flip-flop D.

Los símbolos lógicos anteriores representan a las funciones booleanas básicas, cuyas
definiciones se presentan en 1.4.2.
La Figura 1.3 ilustra las relaciones geométricas de los símbolos IEEE para las compuertas
lógicas elementales.

26
19
26
5 10 13
4
26
26

Figura 1.3. Relaciones métricas de los símbolos lógicos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 5
Se ha agregado el símbolo de un elemento que permite almacenar un bit de información; el
cual tiene una señal de entrada D y una señal de salida Q; cuando la señal de control, o reloj clk,
sube a uno se copia o almacena el valor lógico de entrada en el flip-flop. Cuando el control clk,
baja a cero, la salida mantiene el valor almacenado, independientemente de los cambios de la
entrada. Las redes combinacionales se pueden representar sin emplear flip-flops.
Esquemático red digital.
La Figura 1.4 representa mediante símbolos normalizados a la tabla de la Figura 1.1.
A
B
A’
f
C
A
C’

Figura 1.4. Esquemático de AB + A’C + AC’

Existen múltiples esquemáticos que pueden representar la misma función. La ventaja de esta
representación es que está asociada a la implementación.

La mayoría de las herramientas de ayuda al diseño digital permiten ingresar, en un ambiente


visual, un esquemático mediante la colocación de componentes y una posterior interconexión o
alambrado.

Los esquemáticos pueden describirse mediante secuencias de texto, que especifican las
compuertas y los cables que las interconectan. Se denominan netlist a estas representaciones.
Síntesis lógica.
El problema de síntesis lógica consiste en encontrar un circuito C(G, A), formado por un
conjunto G de compuertas y flip-flops, y un conjunto A de alambres o elementos orientados que
interconectan las compuertas y flip-flops.

Se denominan secuenciales a los circuitos digitales que contienen flip-flops, compuertas y


lazos de realimentación; y combinacionales a los que sólo contienen compuertas lógicas sin
realimentaciones.

1.3.4. Diagrama Temporal.

Se representa mediante las formas de ondas de las entradas y de las salidas.

Empleando simuladores, pueden obtenerse formas de ondas de las señales. En estos


diagramas pueden observarse los retardos de propagación a través de las compuertas.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
40 50 60 70 80 90 100
0 10 20 30
C
B
A
f

Figura 1.5. Diagrama temporal

Para confeccionar el diagrama temporal de la Figura 1.5, se generaron las ocho


combinaciones posibles para las variables de entrada y se graficó la salida f, de (1.8).

Los cambios de f no están alineados con los cambios de las entradas, debido a que toma
tiempo para que una compuerta cambie su estado. Es similar a una tabla de verdad, pero
horizontal.

Nótese que entre los tiempos 10 y 20, la señal f debería estar en 1 lógico(A=1, C'=1), sin
embargo esto ocurre un poco después (tipo 2 unidades). Esto se debe al retardo de propagación
a través de las compuertas.
También se aprecia, en la gráfica de la Figura 1.5, que la salida tiene una caída a cero, un
poco después del tiempo 40; como se verá después, es una perturbación.
En el tiempo cercano a cero existe un valor no lógico asociado a f, esto es debido a que el
simulador no puede conocer la salida hasta que los valores iniciales se hayan propagado a través
de las compuertas.

Las formas de ondas pueden también visualizarse mediante un analizador lógico, o con un
osciloscopio.
Retardos de propagación.
Existe un retardo entre la salida y la entrada de una compuerta, que se denomina retardo de
propagación.

La Figura 1.6, muestra las formas de ondas a la entrada y salida de un inversor, en las que se
han definido los retardos de propagación (propagation delay) de un canto de subida y de un
canto de bajada. Al mismo tiempo se definen los tiempos de subida y de bajada.

Los retardos de propagación han sido definidos como cotas superiores de retardos entre
entradas válidas y salidas válidas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 7

Vin

VIH

VIL

t
tPDHL tPDLH
Vout

VOH

VOL

t
tf tr
Tiempo caída Tiempo subida
(fall time) (rise time)

Figura 1.6. Retardos de propagación.

También pueden definirse los mínimos retardos de propagación o tiempos de contaminación


como las cotas mínimas entre entradas inválidas y salidas inválidas.

Vin
VIH

VIL

t
Vout tCDHL tCDLH

VOH

VOL

t
Figura 1.7. Tiempos de contaminación.

En la práctica, los fabricantes de dispositivos tienen sus propias definiciones de dichos


tiempos y de la forma de medirlos.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
También existen retardos de propagación de las señales a través de los cables, debido a que
la velocidad de propagación de una onda electromagnética que se apoya en los conductores no
viaja a velocidad infinita. Este retardo, a través de los cables, es despreciable en bajas
frecuencias.

La Figura 1.8, muestra las formas de ondas idealizadas en las entradas y salidas de los
inversores. Nótese que los tiempos de propagación son acumulativos en conexiones en cascada.

A1 A2 A3

A1

A2

A3

Figura 1.8. Retardos idealizados en inversor.

Entonces en la práctica, debido a los retardos de propagación, no puede aplicarse el


postulado de complementariedad en las transiciones de A.
A A 1
Es decir:
A A 0

no son verdaderas, en las transiciones; esto debido a que no es posible generar un


complemento de una variable que cambie simultáneamente con la variable.

En diseño de redes combinacionales se asume que si se conoce A; y si se necesita A negada,


ésta se obtendrá mediante un inversor, en este caso A’ estará atrasada en el tiempo respecto de
A. También puede ocurrir que se genere A a partir de A'.
Perturbaciones.
En el diagrama de la Figura 1.9 se muestran perturbaciones, cuando una señal y su
complemento pasan por diferentes compuertas. Se ilustra el caso de and, or, nand y nor.
Se muestran los cambios cuando la señal está retrasada y adelantada con respecto a su
complemento.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 9

A A’ A’ A

A A

A’ A’

A
A’
A
A’

A
A’

A
A’

A' atrasada respecto de A. A atrasada respecto de A'

Figura 1.9. Perturbaciones estáticas en compuertas.

Se denomina perturbación en 1, si el nivel de la salida debe permanecer en 1 y si se produce


momentáneamente un cero. La duración y ocurrencia de la perturbación depende de los retardos
de las señales que la producen.
Se tiene una perturbación en "0" si existe una subida momentánea del nivel de la señal de
salida a 1, debiendo ésta permanecer baja.

En una compuerta AND, en la que ingresan una señal y su complemento, se produce


perturbación del cero lógico, con el canto de subida de A, si ésta está adelantada respecto de A';
o en el canto de subida de A' si ésta está adelantada respecto de A.

En una compuerta OR, en la que ingresan una señal y su complemento, se produce


perturbación del uno lógico, con el canto de bajada de A, si ésta está adelantada respecto de A';
o en el canto de bajada de A' si ésta está adelantada respecto de A.

1.3.5. Diagramas de Venn.

Similares al visto en el Teorema 13 de consenso, en el Apéndice 1.

Otras formas de representación, que se desarrollaran más adelante, se enumeran a


continuación:

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
1.3.6. Mapas de Karnaugh.

Es la principal representación conceptual de funciones booleanas. Se dispone de esta


representación desde el año 1953. Su uso práctico queda limitado a funciones de cinco o menos
variables.

1.3.7. N-cubos.

Diagrama de la función en un espacio discreto multidimensional. Lo emplearemos como


fundamento conceptual de los mapas de Karnaugh y de los métodos de minimización.

1.3.8. Lenguajes de descripción de hardware.

Para sistemas reales se emplean aplicaciones computacionales que emplean lenguajes para la
descripción del hardware (HDL Hardware Description Language).

El empleo de lenguajes como VHDL o Verilog, permiten describir el diseño, efectuar


simulaciones y verificaciones, y finalmente efectuar el proceso de síntesis.

1.4. Funciones de varias variables.

1.4.1 Funciones de n variables.

Si hay n variables, la tabla de verdad tendrá N 2n renglones. Para un renglón


determinado la función puede tomar valor 0 ó 1. Entonces pueden escribirse 2 N tablas de
verdad diferentes.
n
Es decir, 22 funciones booleanas de n variables.

La siguiente tabla muestra el rápido crecimiento del número de funciones booleanas de n


variables.

n N 2n 22
n

0 1 2
1 2 4
2 4 16
3 8 256
4 16 65536
... ...

Figura 1.10. Número de funciones

El caso n = 0 se interpreta como una función descrita por 0 variables; es decir por una
constante. En esta situación existe sólo un valor posible (N=1) y como la constante puede ser 0
ó 1 el número de funciones de cero variables es 2.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 11
1.4.2 Funciones de dos variables.

Para n = 2 las tablas de verdad tienen cuatro renglones. Los cuatro casilleros de una función
pueden llenarse de 16 formas, las que se muestran en la siguiente tabla.

A B f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15


0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Figura 1.11. Funciones de dos variables

Las funciones se han numerado, en binario, considerando el primer renglón como el dígito
menos significativo. Por ejemplo: 0111 equivale a 7, en sistema binario. Lo cual puede verse
de la siguiente relación: 0 23 +1 22 + 1 21 +1 20 = 7

Las 16 funciones booleanas de dos variables pueden representarse en forma analítica,


mediante expresiones booleanas, las que se muestran en la Figura 1.8.

f0 = 0 f8 = AB
f1 = A'B' = (A + B)' f9 = A'B' + AB
f2 = A'B f10 = A'B + AB = B
f3 = A'B' + A'B = A' f11 = A'B' + A'B + AB = A' + B
f4 = AB' f12 = AB' + AB = A
f5 = A'B' + AB' = B' f13 = A'B' + AB' + AB = A + B'
f6 = A'B + AB' f14 = A'B + AB' + AB = A + B
f7 = A'B' + A'B + AB' = A' + B' = (AB)' f15 = A'B' + A'B + AB' + AB = 1

Figura 1.12. Expresiones para funciones de dos variables

Las diferentes expresiones pueden comprobarse verificando que se satisfacen las tablas de
verdad de la Figura 1.11.

Algunas de estas funciones son tan utilizadas, que se las reconoce con un nombre.
Definiciones de funciones lógicas de dos variables.
f1 (A, B) = nor (A, B) = A B
f 8 (A, B) = and (A, B) = A B
f 6 (A, B) = xor (A, B) = A B (1.9)
f 7 (A, B) = nand (A, B) = A B
f14 (A, B) = or (A, B) = A + B

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
La función 1 se denomina nor (por: not or). La función 8 se denomina and; la 14 or; la 3 es la
negación de A, o not A.

La función 6, se denomina xor, por or exclusivo. Toma valor verdadero si los valores lógicos
de A y B son diferentes; por esto también se la denomina desigualdad o diferencia.

La función 9 se denomina xnor. Toma valor verdadero si los valores lógicos de A y B son
iguales. Por esto se la denomina igualdad o coincidencia .
La función 9 se denomina equivalencia lógica o bicondicional; la función 11 es la
implicancia lógica o condicional.

f9 (A,B) = not (xor (A,B)) = A B (1.10)

f11 (A,B) = A B =A B

En el Apéndice 1, se desarrolla con más detalles la importancia de la función 11 en el cálculo


proposicional.

En la Figura 1.13 se destaca la diferencia entre OR (inclusivo) y XOR (exclusivo), difieren


en el último renglón de su tabla de verdad.

A B OR XOR
0 0 0 0
0 1 1 1
1 0 1 1
1 1 1 0

Figura 1.13. Diferentes or

Propiedades de la función Xor.

A 0=A
A 1 =A
A A=0
A A=1

Las primeras dos expresiones se emplean en el cálculo de complementos; se puede generar la


señal o su complemento mediante una señal de control que es una entrada a la compuerta xor.
Las dos últimas se emplean en circuitos para detectar errores.
También se tienen las siguientes equivalencias:
x y=y x
(x y) z = x (y z)
x (y z)=xy xz
Las que pueden demostrarse empleando tablas de verdad.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 13

Conjuntos Funcionalmente Completos.


Cualquier expresión booleana puede ser escrita mediante los operadores AND, OR, y NOT.
Se dice que estos operadores constituyen un conjunto funcionalmente completo.

Por lo tanto un circuito combinacional puede construirse usando sólo compuertas AND, OR
y NOT.

Las siguientes relaciones muestran que la función NAND es funcionalmente completa, ya


que pueden implementarse circuitos combinacionales sólo empleando este tipo de compuertas.

Si la función efectúa el nand de sus entradas, puede generar:


El not de una variable, ingresando la misma señal en ambas entradas.
El or de dos variables, ingresando las señales complementadas al nand.
El and de dos variables, complementando la salida del nand, mediante un inversor
(implementado también empleando una compuerta nand).

nand ( A, B) AB
nand ( A, A) A
nand ( A, B ) A B

También la función NOR es funcionalmente completa. Esto puede verse observando que la
función nor, genera el complemento de una variable, y también el or y el and de dos variables.
nor ( A, B) A B
nor ( A, A) A
nor ( A, B ) AB
Generalización para funciones de más de dos variables.
Algunas funciones pueden generalizarse para más de dos variables, por ejemplo:

and (a, b, c) abc (1.11)


or (a, b, c, d ) a b c d

La función xor para n variables puede generalizarse, estableciendo que la función toma valor
uno si se tiene un número impar de variables que toman valores iguales a 1; y toma valor cero si
el número de variables que toman valor 1 es par.

1.5. Formulación de expresiones booleanas.

A partir de la descripción de un problema, generalmente expresada en forma de texto, se


desea obtener fórmulas lógicas mediante expresiones que emplean variables booleanas.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
Ejemplo 1.1.

(Taub): En un estante hay 5 libros (v, w, x, y, z) que se pueden tomar cumpliendo las
siguientes reglas:
a) Se seleccionan v o w o ambos
b) Se seleccionan x o z pero no ambos
c) se selecciona v y z juntos, o bien una selección que no incluya a ninguno de ellos
d) si se selecciona y, también debe seleccionarse z
e) si se selecciona a w, también debe seleccionarse a v e y.
Expresar cómo seleccionar un grupo de libros cumpliendo las reglas anteriores.

Solución.
Sean:
u la proposición lógica que indica que la selección de libros cumple las reglas
el nombre del libro es la proposición lógica que indica que se tomó dicho libro para formar
la selección.

Como las reglas de selección deben cumplirse simultáneamente, debe entenderse que debe
cumplirse la primera regla y la segunda, y así sucesivamente.

Por lo tanto: u es igual al and de las reglas individuales.

La regla a), establece el or (incluye a ambos) de v con w. Es decir: v + w.

La regla b), establece el xor (no incluye a ambos) de x con z. Es decir: x z.

Para la regla c), se tiene:

v z regla c)
0 0 1
0 1 0
1 0 0
1 1 1

Es decir: (v z)'

La regla d) traducida es: y z


La regla e) traducida es: w vy

Entonces: u = (v + w)( x z) (v z)' (y z)( w vy )

Reemplazando los operadores por or, and y not, se obtiene:

u = (v + w)(xz' + x'z)(vz + v'z')(y' + z)( w' + vy)

Efectuando los productos:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 15
(v+w) (vz +v'z') = vvz + vv'z + vwz + v'wz' que se simplifica a: vz + v'wz'
(xz' +x'z)(y' +z) = xy'z' + xzz' + x'y'z + x'zz que se simplifica a : xy'z' + x'z

entonces queda: u = (vz + v'wz' )( xy'z' + x'z )( w' + vy)

El producto (vz + v'wz' )( w' + vy) puede simplificarse a: (vw'z + vyz)

Y el producto ( xy'z' + x'z ) (vw'z + vyz) = x'vw'z + x'vyz

Finalmente: u = vx'z(w' +y)

Que puede leerse:


Se debe seleccionar v y z, y rechazar x; y si se selecciona w también debe seleccionarse y.

Una frase alternativa para (w' +y) es: si no se selecciona w, la selección de y es opcional.

Ejemplo 1.2.

(Dietmeyer). Tres interruptores(a, b, c) controlan dos ampolletas (una roja R, y otra verde V)
del modo siguiente:
a) Cuando los tres interruptores están cerrados, se enciende la luz roja.
b) Cuando el interruptor A está abierto y B o C están cerrados se enciende la luz verde.
c) No deben encenderse ambas ampolletas a la vez.
d) En el resto de los casos la roja debe encenderse, excepto cuando los tres interruptores están
abiertos, en este caso no debe encenderse ninguna ampolleta.

Solución:

Se emplea la siguiente asignación de valores lógicos:


a interruptor cerrado se asigna 1 lógico,
a ampolleta encendida se le asigna 1 lógico.

La especificación b) se interpreta como o incluyente; es decir, B o C o ambos cerrados.

De la condición d), se extrae la especificación e)


e) cuando los tres interruptores están abiertos no debe encenderse ninguna ampolleta.

Si se puede completar la tabla de verdad, el problema está completamente especificado:

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales

A B C R V
0 0 0 0 0 por condición e
0 0 1 0 1
0 1 0 0 1
0 1 1 0 1 por condición b.
1 0 0 1 0
1 0 1 1 0
1 1 0 1 0 por condición c
1 1 1 1 0

por condición d por condición a. por condición c

Figura 1.14. Tabla de verdad para Ejemplo 1.2.

Se va completando la tabla, con las especificaciones, la última en aplicar es la d).

Se advierte que si no se hubiese dado, por ejemplo, la especificación c), el problema queda
indeterminado. En estos casos es preciso efectuar suposiciones o agregar especificaciones.

Por esto podría decirse que una tabla de verdad es una especificación formal.

Una vez que se tiene la tabla pueden encontrarse las expresiones para R y V en función de A,
B y C.
Puede comprobarse que cada uno de la función está asociado a un producto lógico de las
variables A, B y C. Y que la función es la suma lógica de esos productos, se tiene entonces que:

R = AB'C' + AB'C + ABC' + ABC


V = A'B'C + A'BC' + A'BC

que pueden simplificarse, empleando teoremas, resultando:

R = A.
V = A'(B +C)

1.6. Teoremas relativos a funciones de varias variables.

T.16 Función Dual

f d ( x1 , x2 ,..., xn , 0,1, •, ) f ( x1 , x2 ,..., xn , 0,1, •, ) (1.12)

Este teorema permite calcular la función dual ( fd) de una función f. Debe notarse que no se
intercambian las constantes y los operadores.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 17
T.17 Reducción.

x1 f ( x1 , x2 ..., xn ) x1 f (0, x2 ,..., xn ) (1.13)


x1 f ( x1 , x2 ..., xn ) x1 f (1, x2 ,..., xn )

Demostración por inducción perfecta de la primera proposición. Se analizan todos los casos
que se presentan cuando la variable x1 toma todos los valores que le son posibles.

Considerando:
x1 f ( x1 ,..., xn ) x1 f (0, x2 ,..., xn )

Cuando x1 = 0, entonces: 0 f (0, x2 ..., xn ) 0 f (0, x2 ,..., xn )


Resultando por P3 que: f (0, x2 ..., xn ) f (0, x2 ,..., xn )

Cuando x1 = 1, entonces: 1 f (1, x2 ..., xn ) 1 f (0, x2 ,..., xn )


Resultando por T9 que: 1 = 1

Se concluye que: x1 f ( x1 ,..., xn ) x1 f (0, x2 ,..., xn ) es válida para todos los


valores que puede tomar x1. El postulado P3 y el Teorema 9, se describen en el Apéndice 1.

T.18 Teorema de expansión de Shannon.

f ( x1 , x2 ,..., xn ) x1 f (1, x2 ,..., xn ) x1 f (0, x2 ,..., xn ) (1.14)


f ( x1 , x2 ,..., xn ) ( x1 f (0, x2 ,..., xn )) ( x1 f (1, x2 ,..., xn ))

Las funciones f (0, x2 ,..., xn ) y f (1, x2 ,..., xn ) se denominan cofactores x1 de f, y son


funciones de (n-1) variables.

Demostración por inducción perfecta o completa de la primera proposición.

Considerando: f ( x1 , x2 ,..., xn ) x1 f (1, x2 ,..., xn ) x1 f (0, x2 ,..., xn )


Cuando x1 = 0, entonces:
f ( 0,x2 ,...,x n ) 0 f ( 1,x2 ,...,x n ) 1 f ( 0,x2 ,...,x n )

Por T.9 y P.3 se llega a: f (0, x2 ,..., xn ) f (0, x2 ,..., xn )

Cuando x1 = 1, entonces:
f ( 1,x2 ,...,x n ) 1 f ( 1,x2 ,...,x n ) 0 f ( 0,x2 ,...,x n )

Por T.9 y P.3 se llega a: f (1, x2 ,..., xn ) f (1, x2 ,..., xn )

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
Entonces f ( x1 , x2 ,..., xn ) x1 f (1, x2 ,..., xn ) x1 f (0, x2 ,..., xn ) es válida para todos
los valores que puede tomar x1.

La repetida aplicación de este teorema permite representar una función de n variables como
una suma de productos o un producto de sumas.
Ejemplo 1.3.
En desarrollos de minimización se clasifican las funciones, dependiendo de cómo aparecen
las variables en una forma suma de productos.

Si se divide o parte f en términos de x3, se tiene:


f ( x1 , x2 , x3 ) f ( x1 , x2 , 0) x3 ' f ( x1 , x2 ,1) x3
Si f ( x1 , x2 , 0) 0 se dice que f es unata positiva respecto de x3. Es decir si en la forma
suma de productos no aparece x3’.
Si f ( x1 , x2 ,1) 0 se dice que f es unata negativa respecto de x3. Es decir si en la forma
suma de productos no aparece x3.

T.19 Generalización de De Morgan.

f '( x1 , x2 ..., xn , 0,1, , ) f ( x '1 , x '2 ,..., x 'n ,1, 0, , )

1.7. Minimización (reducción o simplificación) de Funciones.

Criterios de Reducción.

Cada función tiene una y sólo una tabla de verdad asociada; sin embargo pueden escribirse
diferentes expresiones booleanas para la misma función. Esto implica diferente costo.

a) Si se minimiza el número de compuertas empleadas, se tendrá un circuito más pequeño, lo


que influencia directamente el costo de manufactura, debido a que se requiere un circuito
impreso de menor superficie y menor número de componentes. También disminuyen las
probabilidades de fallas debidas a componentes defectuosas, debido al menor número de éstas.

La Figura 1.15, muestra el encapsulamiento de compuertas en pastillas de 14 patas, en


dispositivos de baja integración. Debe notarse que a medida que aumentan las entradas de las
compuertas, disminuye el número de éstas en un chip o pastilla.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 19

Figura 1.15. Compuertas TTL serie 74xx

Al aumentar la densidad de transistores en los dispositivos, el problema es encontrar


metodologías para mapear adecuadamente los diseños basados en compuertas a las estructuras
de los dispositivos programables.

b) Si se minimiza el número de entradas a las compuertas, se tendrá menos transistores en


cada compuerta y por lo tanto un costo menor. Si se considera las señales y sus complementos,
presentes en una expresión, como entradas de compuertas, puede definirse el concepto de literal
en una expresión.

Un literal es la ocurrencia de una variable o su forma complementada en una expresión.

Si se desea minimizar las entradas, debe minimizarse el número de literales en una


expresión.

Ejemplo 1.4.

f(x, y, z) = x’y(z+y’x) +y’z es una expresión que tiene 7 literales.

Puede reducirse, aplicando postulados y teoremas a:

f(x, y, z) = (xy)’z = (x’ +y’)z que tiene 3 literales.

Es usual asumir que se dispone de las variables y sus complementos como entradas de una
red combinacional, por esta razón se cuentan los literales.

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales
Como se verá más adelante algunos elementos básicos de memoria (flip-flops) entregan
como salidas las variables y sus complementos, en la Figura 1.16 se muestran un flip-flop JK y
un flip-flop D, la señal de control CP (clock pulse) es el reloj:

J Q D Q
CP _ _
K Q CP Q

Figura 1.16. Salidas complementadas en Flip-flops

También en los dispositivos programables existen circuitos inversores en las entradas, en la


Figura 1.17., se ilustra la generación de A’ a partir de la entrada A:

A A'
A
Figura 1.17. Entradas complementadas

Ejemplo 1.5.

Como se ha dicho: Existen diversas expresiones para una misma función.

Sea la función f(A, B, C) = (A+C) B' (C +D)

Que puede implementarse con compuertas según:


A

B f

Figura 1.18. Diseño en dos niveles.

La representación es en dos niveles. Definiendo el nivel por el número de compuertas a


través de las cuales se propagan las señales de entrada hasta llegar a la señal de salida.
La implementación, de la Figura 1.18, tiene 8 entradas y 5 literales. Y emplea una compuerta
que tiene más de dos entradas (3 en el and del ejemplo).

Si expresamos ahora la misma función f por la expresión equivalente:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 21
f =(A+C)(B' (C + D))

De este modo todas las compuertas empleadas no tienen más de dos entradas, según puede
verse en el esquema de la Figura 1.19:
A

f
B

Figura 1.19. Diseño en tres niveles.

La implementación de la Figura 1.19 tiene 9 entradas y 5 literales. La suma de las entradas se


obtiene sumando las entradas a todas las compuertas, ya sea en el diagrama o en la expresión
booleana.
Notando que un cambio en la señal C o D o B, debe propagarse por tres compuertas, se dice
que el circuito está implementado en tres niveles. La señal A se propaga en dos niveles hasta la
salida f.

c) Si lo que se desea es aumentar la velocidad de respuesta, se requiere disminuir el número de


niveles.
Para lograr esto, en general se requerirán compuertas con mayor número de entradas lo cual
aumenta el costo.

Obviamente existirá un compromiso entre velocidad y costo; el que se suele denominar


compromiso: tiempo-espacio.

Los circuitos lógicos que tienen igual tabla de verdad son equivalentes, pero pueden tener
diferente costo, en tiempo o en espacio.

Existen diversas herramientas para explorar el compromiso entre retardos y tamaño, que
permiten generar automáticamente diferentes soluciones, empleando minimización lógica para
reducir la complejidad espacial y optimización de los retardos para aumentar la velocidad de
respuesta.

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

Índice general.

CAPÍTULO 1.........................................................................................................................................1
FUNCIONES BOOLEANAS ...............................................................................................................1
1.1. DEFINICIONES ...............................................................................................................................1
1.2. ESPACIOS Y FUNCIONES BOOLEANAS............................................................................................2
1.3. REPRESENTACIÓN DE FUNCIONES BOOLEANAS ............................................................................3
1.3.1. Expresiones. .........................................................................................................................3
1.3.2. Tabla de verdad ....................................................................................................................3
1.3.3. Esquema Lógico. ..................................................................................................................4
Símbolos de compuertas básicas (gates) .................................................................................................... 4
Esquemático red digital.............................................................................................................................. 5
Síntesis lógica. ........................................................................................................................................... 5
1.3.4. Diagrama Temporal. ............................................................................................................5
Retardos de propagación. ........................................................................................................................... 6
Perturbaciones............................................................................................................................................ 8
1.3.5. Diagramas de Venn. .............................................................................................................9
1.3.6. Mapas de Karnaugh. ..........................................................................................................10
1.3.7. N-cubos...............................................................................................................................10
1.3.8. Lenguajes de descripción de hardware. .............................................................................10
1.4. FUNCIONES DE VARIAS VARIABLES. ............................................................................................10
1.4.1 Funciones de n variables. ....................................................................................................10
1.4.2 Funciones de dos variables. ................................................................................................11
Definiciones de funciones lógicas de dos variables. ................................................................................ 11
Conjuntos Funcionalmente Completos. ................................................................................................... 13
Generalización para funciones de más de dos variables........................................................................... 13
1.5. FORMULACIÓN DE EXPRESIONES BOOLEANAS.............................................................................13
Ejemplo 1.1. .................................................................................................................................14
Ejemplo 1.2. .................................................................................................................................15
1.6. TEOREMAS RELATIVOS A FUNCIONES DE VARIAS VARIABLES. ....................................................16
T.16 Función Dual .......................................................................................................................16
T.17 Reducción. ............................................................................................................................17
T.18 Teorema de expansión de Shannon. .....................................................................................17
Ejemplo 1.3. ............................................................................................................................................. 18
1.7. MINIMIZACIÓN (REDUCCIÓN O SIMPLIFICACIÓN) DE FUNCIONES. ...............................................18
Criterios de Reducción. ................................................................................................................18
Ejemplo 1.4. .................................................................................................................................19
Ejemplo 1.5. .................................................................................................................................20
ÍNDICE GENERAL. ..............................................................................................................................22
ÍNDICE DE FIGURAS ...........................................................................................................................23

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 1. Funciones Booleanas 23

Índice de Figuras

Figura 1.1. Tabla de verdad de AB + A’C + AC’. ........................................................................ 3


Figura 1.2. Símbolos lógicos de compuertas y flip-flop D............................................................ 4
Figura 1.3. Relaciones métricas de los símbolos lógicos. ............................................................. 4
Figura 1.4. Esquemático de AB + A’C + AC’ .............................................................................. 5
Figura 1.5. Diagrama temporal...................................................................................................... 6
Figura 1.6. Retardos de propagación. ............................................................................................ 7
Figura 1.7. Tiempos de contaminación. ........................................................................................ 7
Figura 1.8. Retardos idealizados en inversor................................................................................. 8
Figura 1.9. Perturbaciones estáticas en compuertas. ..................................................................... 9
Figura 1.10. Número de funciones .............................................................................................. 10
Figura 1.11. Funciones de dos variables ..................................................................................... 11
Figura 1.12. Expresiones para funciones de dos variables .......................................................... 11
Figura 1.13. Diferentes or............................................................................................................ 12
Figura 1.14. Tabla de verdad para Ejemplo 1.2. ......................................................................... 16
Figura 1.15. Compuertas TTL serie 74xx ................................................................................... 19
Figura 1.16. Salidas complementadas en Flip-flops .................................................................... 20
Figura 1.17. Entradas complementadas ....................................................................................... 20
Figura 1.18. Diseño en dos niveles.............................................................................................. 20
Figura 1.19. Diseño en tres niveles. ............................................................................................ 21

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 2

Síntesis en dos niveles

2.1. Formas de Funciones.

Pueden escribirse diversas expresiones para una función.

Existen dos formas básicas de expresiones booleanas que pueden ser implementadas en dos
niveles de compuertas.

a) Suma de Productos (OR de ANDs).


Se denomina forma normal disyuntiva. Si uno de los sumandos (producto lógico de
variables) toma valor lógico 1, la expresión tomará valor lógico 1.
Ejemplo 1: AB ' C B ' D A ' CD ' con 8 literales y 11 entradas.

b) Producto de Sumas (AND de ORs).


Se denomina forma normal conjuntiva. Si uno de los productos (suma lógica de variables)
toma valor lógico 0, la expresión tomará valor lógico 0.
Ejemplo 2: ( A ' B C )( B ' C D)( A C ' D) con 9 literales y 12 entradas.

Existen formas híbridas que son mezclas de las dos anteriores, y que en general tienen
representación en redes con más de dos niveles de compuertas.
Las formas híbridas se pueden reducir a una de las anteriores, aplicando postulados y
teoremas.
Ejemplo 3: AB(C+D)+E es una forma híbrida, de 5 literales, 8 entradas y 3 niveles que
puede ser representada como suma de productos según: ABC+ABD+E, con 7 literales, 9
entradas y 2 niveles. La forma híbrida tiene menor costo espacial, pero mayor costo temporal.

Toda expresión booleana puede ser representada en estas dos formas básicas.

Por ejemplo para el Ejemplo 1, se tiene la forma producto de sumas: ( A B )(C D)( A C )
con 6 literales y 9 entradas, que es de menor costo. La equivalencia entre ambas formas puede
ser demostrada aplicando los postulados y teoremas.
También se tiene para el Ejemplo 2, la forma equivalente según suma de productos:
A ' B ' C ' AC BD CD , con 9 literales y 13 entradas, que es de mayor costo. En este caso también
se tiene la forma equivalente: A ' B ' C ' AC BD A ' D .

Profesor Leopoldo Silva Bijit 13-04-2010


2 Sistemas Digitales
Existen dos formas especiales de suma de productos y producto de sumas que se denominan:
Suma de mintérminos y Producto de maxtérminos; las cuales permiten expresar funciones
booleanas en forma normalizada.

Las formas canónicas son representaciones estandarizadas de expresiones booleanas y


permiten asociar a una función una expresión algebraica única. Escritas de esta manera pueden
efectuarse comparaciones entre expresiones booleanas.

Una forma canónica destaca las componentes más primitivas de una expresión.

Existe sólo una forma de escribir la tabla de verdad de una función y sólo una forma
canónica, pero existen diversas representaciones de la función, mediante esquemáticos o
expresiones booleanas.

Los términos elementales con los que se construyen las formas canónicas se denominan
mintérminos y maxtérminos. Una forma canónica no es una expresión mínima.

2.2. Mintérminos

En una función de n variables, un mintérmino es un producto que contiene las n variables,


pudiendo éstas estar o no complementadas.

Para el caso de dos variables, los mintérminos son:

AB, A’B, AB’, A’B’

Puede comprobarse que para tres variables, el número de mintérminos es 8, y para n


variables se tendrán 2 n mintérminos.

Debe notarse que cada renglón de una tabla de verdad está asociado a un y sólo un
mintérmino.

Cada mintérmino puede ser asociado a un número decimal.


Para simplificar la notación, una vez ordenadas las variables de acuerdo a cierto criterio, se
asigna un "1" a una variable no complementada y un "0" a las complementadas, formando así un
número binario, el cual expresado en sistema decimal se emplea para referenciar unívocamente
a cada mintérmino.

Ejemplo 2.1. Definición de mintérmino

Sea: A B C un mintérmino en caso de tener una función de tres variables. Entonces el


código binario es 010, este número expresado en decimal es 2. El criterio de ordenación de las
variables es alfabético. Se anota: m2 A BC

Una función booleana puede describirse por la suma de los mintérminos que la constituyen.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 3
En general:
f mi
La anterior es una forma particular de suma de productos.

Una simplificación adicional es escribir una lista de mintérminos según:


f m(1,3,8)
Esto indica que f está formada por la suma de m1 , m3 y m8 .

Debe destacarse que es importante el orden de las variables antes de asignar códigos
binarios.

Ejemplo 2.2. Suma de mintérminos

Obtener la tabla de verdad para:

f ( A, B, C ) m(2, 6) ABC ABC


Se tiene:
# ABC f m2 m6
0 000 0 0 0
1 001 0 0 0
2 010 1 1 0
3 011 0 0 0
4 100 0 0 0
5 101 0 0 0
6 110 1 0 1
7 111 0 0 0

Figura 2.1 Tablas de verdad de algunos Mintérminos.

La tabla de verdad de un mintérmino contiene uno y sólo un valor lógico "1"; el resto son
"0"s. La posición del "1", define unívocamente un renglón. Cada columna de un mintérmino, a
través de la operación OR, deja un uno, en un renglón determinado de la columna de f.

La suma lógica de los mintérminos no incluidos en la sumatoria que describe a f, son los
mintérminos de la función complementada, en el caso del ejemplo anterior:

f m(0,1, 3, 4, 5, 7)

2.3. Maxtérmino.

Es una suma lógica que contiene todas las variables, pudiendo éstas estar o no
complementadas.

Profesor Leopoldo Silva Bijit 13-04-2010


4 Sistemas Digitales
La tabla de verdad de un maxtérmino contiene uno y sólo un valor lógico "0"; el resto son
"1"s. La posición del "0" define unívocamente a un renglón de la tabla de verdad.

Para dos variables, los maxtérminos son: ( A B), ( A B ), ( A B) y ( A B )


Para n variables se tendrán 2 n maxtérminos.

El código decimal para identificar a los maxtérminos se obtiene, una vez ordenadas las
variables dentro de una suma de acuerdo a cierto criterio, asignando un "0" a cada variable no
complementada y un "1" a las variables complementadas. Debe notarse que esta asignación es
diferente (dual) de la elegida para mintérminos.

Ejemplo 2.3. Definición de maxtérmino.

Sea: ( A B C ) un maxtérmino. Entonces el código binario es: 101. El número expresado


en decimal es 5 y se anota: M 5 A B C

Una función puede describirse como el producto de los maxtérminos que la constituyen.
Cada maxtérmino asegura un cero de la función en un determinado renglón.

En general: f Mi

Es una forma particular de producto de sumas. También puede abreviarse mediante una lista
de los números decimales de los maxtérminos.

Ejemplo 2.4. Producto de maxtérminos

Obtener la tabla de verdad para:


f ( A, B, C ) M (2, 6) (A B C )( A B C)

Se tiene:
# ABC f M2 M6
0 000 1 1 1
1 001 1 1 1
2 010 0 0 1
3 011 1 1 1
4 100 1 1 1
5 101 1 1 1
6 110 0 1 0
7 111 1 1 1

Figura 2.2. Tablas de verdad de algunos Maxtérminos.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 5
La tabla de verdad de un maxtérmino contiene uno y sólo un valor lógico “0”, el resto son
“1”s. La posición del cero define unívocamente al renglón. Cada columna de un maxtérmino,
deja un cero a través de la operación AND, en un renglón determinado de la columna de f.

El producto lógico de los maxtérminos no incluidos en f, corresponde a la función


complemento:
f M (0,1,3,4,5,7)

Relaciones

Con los códigos elegidos para denotar mintérminos y maxtérminos, se cumplen:


mi Mi
Mi mi
mi Mi
Mi mi
Para n variables se tendrá que:
i (2n ) 1
mi 1
i 0
i (2n ) 1
Mi 0
i 0

Es decir, la suma lógica de todos los mintérminos de n variables es igual a 1; y el producto


lógico de todos los maxtérminos tiene valor lógico cero.

Ejemplo 2.5. De suma de mintérminos a productoria de maxtérminos.

Expresar como producto de maxtérminos, la función f y su complemento:


f(A,B,C) m( 2,3,6,7 )

Se tiene, para la función f: f m2 m3 m6 m7


Complementando: f m2 m3 m6 m7
Reemplazando los mintérminos complementados por maxtérminos:
f M2 M3 M6 M7
Finalmente, para la función complementada:
f M (2,3, 6, 7)

Se puede escribir la función complementada, como la suma de los mintérminos que no están
presentes en la función, es decir: f m0 m1 m4 m5
Aplicando De Morgan: f f m0 m1 m4 m5

Profesor Leopoldo Silva Bijit 13-04-2010


6 Sistemas Digitales
Resulta: f m0 m1 m4 m5
Reemplazando los mintérminos complementados por maxtérminos:
f M 0 M1 M 4 M 5
Finalmente: f M (0,1, 4,5)

2.4. Expansión a formas canónicas

Cualquier función booleana puede ser representada en forma canónica. El proceso de obtener
la forma canónica se denomina expansión.

Un método directo consiste en obtener la tabla de verdad, y luego identificar los mintérminos
o los maxtérminos. Otra posibilidad, que se estudia a continuación, es mediante un desarrollo
algebraico basado en los postulados y teoremas del álgebra de Boole.

2.4.1. Expansión de suma de productos

Está basado en el uso repetitivo del teorema: a ab ab


Ejemplo 2.7. Expansión a mintérminos.
f (a, b, c) a bc abc

El término "a" puede expandirse según:


a ab ab
abc ab c abc ab c ;se completan las variables que faltan.
m7 m5 m6 m 4
Para bc’ se tiene:
bc abc a bc
m6 m2

Se tiene que: abc = m7 , es un mintérmino.


Usando el teorema de idempotencia (m6 + m6 = m6), se obtiene:

f (a, b, c) m(2,4,5,6,7)

2.4.2. Expansión de productos de sumas

Está basado en completar los factores, mediante el uso de: a (a b)( a b)


Ejemplo 2.8. Expansión a maxtérminos
f (a, b, c) (a b)(b c)
Se tiene que:

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 7
a b (a b c) (a b c ) M 0 M1
b c
(a b c ) (a b c ) M1 M 5
Considerando, por idempotencia, que: M 1 M 1M 1
Finalmente:
f (a, b, c) M 0 M 1M 5

2.5. Síntesis de las formas.

2.5.1. Suma de productos

Dada una función mediante una suma de productos, ésta puede implementarse usando un
OR de AND's.
Ejemplo 2.9. OR de ANDs

Para: f (a, b, c, d ) ab cd , se logra directamente:


a
b'
f
c
d
Primer Nivel | Segundo Nivel

Figura 2.3. Suma de productos en dos niveles.

Se dice que es una implementación en dos niveles.

Una red es de n niveles, cuando una señal de entrada debe pasar a través de n compuertas
para llegar a la salida; la señal de entrada que recorra más compuertas hasta llegar a la salida, es
la que define la cantidad de niveles; el recorrido se denomina ruta crítica y define el retardo de
propagación de la red. Debe notarse que se considera que se dispone de b' (si sólo se dispone de
b, se requiere un nivel adicional).

También puede implementarse usando solamente compuertas NAND.


Ejemplo 2.10. Dos niveles de NANDs
En el ejemplo 2.9. aplicando involución, se logra:
f ab cd ; por involución .
ab cd ; por De Morgan.

Gráficamente:

Profesor Leopoldo Silva Bijit 13-04-2010


8 Sistemas Digitales

a
b'
f
c
d

Figura 2.4. Suma de productos mediante NANDs.

La técnica anterior se denomina "Método de doble complementación", la cual se puede


visualizar en forma gráfica agregando dos pequeños círculos a la salida de la Figura 2.3.
a a
b' f b' f
c c
d d

Figura 2.5. Doble complementación.

Luego se emplea, el equivalente gráfico del Teorema de De Morgan, que se muestra en la


Figura 2.6.

Figura 2.6. Equivalencia gráfica del teorema de De Morgan.

Finalmente se desplazan los pequeños círculos, en las entradas de la compuerta de salida,


hacia las salidas de las compuertas de primer nivel; resultando la Figura 2.4.

2.5.2. Producto de sumas

Dada una función mediante un producto de sumas, puede lograrse una implementación en
dos niveles; usando un AND de OR's.

Ejemplo: f (A B ) (C D)

Se obtiene:
A
B' f
C
D

Figura 2.7. Producto de sumas en dos niveles.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 9
Esto en el caso de emplear compuertas AND y OR. También puede aplicarse el método de
la doble complementación para un diseño basado en compuertas NOR.

Algebraicamente:
f ( A B ) (C D) ; involución
( A B ) (C D) ; De Morgan
Resulta:
A
B' f
C
D
| Primer Nivel | Segundo Nivel |

Figura 2.8. Suma de productos mediante NORs.

El circuito anterior, puede obtenerse directamente a partir del basado en AND y OR, de la
Figura 2.7, usando el equivalente gráfico del teorema de De Morgan, que se muestra en la
Figura 2.9.

Figura 2.9. Visualización esquemática del teorema de De Morgan.

2.5.3. Conversión de producto de sumas a suma de productos. Cambio de lógica.

Si se tiene una expresión tipo producto de sumas, mediante la doble complementación, el


circuito a la izquierda de la Figura 2.10, puede modificarse como se muestra en el esquemático
de la derecha:

A A
B' f B' f
C C
D D

Figura 2.10. De producto de sumas a Suma de productos.

Aplicando De Morgan, a las compuertas de primer y segundo nivel se obtiene la red de la


Figura 2.11 izquierda. Luego complementando las variables de entrada y salida, se obtiene el
esquema de suma de productos.

Profesor Leopoldo Silva Bijit 13-04-2010


10 Sistemas Digitales

A A'
B' f B f'
C C'
D D'

Figura 2.11. Complementos de las entradas y salidas.

Debe notarse que la implementación como suma de productos tiene todas las variables de
entrada y salida complementadas, respecto a la forma producto de sumas. Es decir, plantea la
expresión en términos de los complementos de las variables originales.

También puede convertirse una expresión tipo suma de productos a la forma producto de
sumas. En un esquemático, se cambian los ANDs del primer nivel por ORs; y el OR del
segundo nivel por un AND; además se complementan las variables de entrada y la de salida.

Si se cambia la asignación de valores físicos a lógicos por su forma complementaria, el


diseño en dos niveles basado en suma de productos puede efectuarse como producto de sumas y
viceversa.

2.6. Diseño lógico

2.6.1. Fan-in. Fan out.

En la práctica, las compuertas lógicas tienen ciertas características. Una de ellas es el fan-in,
que es el número de entradas de una compuerta.

En componentes electrónicas integradas en pequeña escala, el caso de las compuertas lógicas


OR, AND, NOT, NOR y NAND, las pastillas suelen ser de 14 pines o patas. Dos de ellas se
emplean para proveer la alimentación continua (Vcc) y la Tierra (Gnd). Debido a esto, a medida
que aumenta el número de entradas a una compuerta, disminuye el número de circuitos, o
compuertas de igual tipo, que soporta la pastilla. Por ejemplo, se tienen 4 circuitos de 2
entradas, 3 de 3 entradas, 2 de 4 entradas.

Fan-out se denomina el número de compuertas que pueden ser alimentadas o comandadas


por una salida.

Si en un diseño lógico se efectúan restricciones de fan-in y fan-out, se tendrá una


representación en más de dos niveles.
A mayor número de niveles, habrá un comportamiento más lento del circuito; ya que una
conmutación debe propagarse a través de más compuertas.

A menor número de niveles se tendrá que ocupar compuertas de mayor fan-in, lo que
generalmente implica ocupar más pastillas en una implementación.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 11
2.6.2. Observaciones sobre la forma Producto de Sumas.

Algunas observaciones sobre la forma AND de ORs:

Si se observa la siguiente tabla de verdad:

f f1 f2
0 0 1
1 1 1
0 1 0
1 1 1
1 1 1
1 1 1
0 1 0
0 0 1

Figura 2.12. AND de columnas.

Se advierte que, dada la elección de las funciones, se cumple: f = f1 f2


Donde f1 y f2 son grupos de maxtérminos de f, y son agrupaciones disjuntas. Los
maxtérminos de f1 no están presentes en f2 y viceversa.
Ambas funciones pueden representarse como producto de maxtérminos; es decir, como
producto de sumas.

La minimización consiste en encontrar los mayores grupos de maxtérminos que puedan


escribirse como un solo sumando con el menor número de literales. En ese caso al grupo se lo
denomina implicante. Esto minimiza el fan-in de las compuertas ORs que implementan el
sumando. A la vez, la minimización también consiste en determinar el menor número de grupos
disjuntos, ya que esto minimiza el fan-in del AND que forma el producto lógico.

2.6.3. Observaciones sobre la forma Suma de Productos.

Algunas observaciones sobre la forma OR de ANDs:


Si se observan las siguientes tablas de verdad:

f f1 f2
0 0 0
1 1 0
0 0 0
1 0 1
1 0 1
1 1 0
0 0 0
0 0 0

Figura 2.13. OR de columnas.

Profesor Leopoldo Silva Bijit 13-04-2010


12 Sistemas Digitales
Se advierte que, dada la elección de las funciones, se cumple: f = f1 + f2

Donde f1 y f2 son grupos de mintérminos de f, y son agrupaciones disjuntas. Los mintérminos


de f1 no están presentes en f2 y viceversa.

Ambas funciones pueden representarse como suma de mintérminos; es decir, como suma de
productos.

La minimización consiste en encontrar los mayores grupos de mintérminos que puedan


escribirse como un solo producto con el menor número de literales. En ese caso al grupo se lo
denomina implicante. Esto minimiza el fan-in de las compuertas AND que implementan el
producto. A la vez, la minimización también consiste en determinar el menor número de grupos
disjuntos, ya que esto minimiza el fan-in del OR que forma la suma lógica.

2.6.4. Observaciones sobre las diferentes formas de diseño.

Existen básicamente dos metodologías de diseño. Una es agrupar los mintérminos de la


función, lo que lleva a la forma suma de productos; la otra es agrupar los maxtérminos de la
función, lo que lleva a la forma producto de sumas.

El primer método es equivalente a agrupar los ceros (maxtérminos) de la función


complementada.
El segundo método es equivalente a la agrupación de unos (mintérminos) de la función
complementada.

A muchas personas les resulta más sencillo formar agrupaciones de unos. Entonces:
agrupando los unos de la función se logra la forma suma de productos; y agrupando los unos de
la función complementada, se genera mediante De Morgan la forma producto de sumas, ya que
esto equivale a agrupar los ceros de la función. Luego debe compararse el costo de ambos
diseños para obtener el mínimo.

2.6.5. Perturbaciones. Diseños con riesgos.

En diseños de redes combinacionales pueden presentarse perturbaciones. En el caso de la red


de la Figura 2.14, la salida puede expresarse según:

P = (((A’+B)’ + (D’+ C)’)’ + A)’ = A’(AB’+C’D)

Entonces con {B=0, C=1} o {B=0 y D=0}, se presenta perturbación, en canto de subida de A
atrasado, ver Figura 1.9.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 13
A

A
B

C
D P = A'(AB' + C'D)

Figura 2.14. Perturbación en red combinacional

Las carreras entre los cantos, pueden evitarse en este caso cambiando el diseño.
Minimizando se logra un diseño libre de perturbaciones: P = A' C' D

Una perturbación puede eliminarse, suprimiendo la posibilidad de formar: (A + A') o (A A')


en la función; esto congelando en "1" ó "0" el resto de las variables.

Para esto se usa el teorema del consenso, que para tres variables puede escribirse:

AB AC AB AC BC

Si B=1 y C=1, queda: A A A A 1

El término de consenso elimina la perturbación, colocando un uno lógico cuando se produce


la condición de perturbación. Lo cual se ilustra a continuación:

2.6.5.1. Perturbación estática en uno.


La tabla de verdad de f, se ilustra mediante una representación denominada mapa de
Karnaugh, que se estudiará en detalle en el Capítulo 5.
AB
C 00 01 11 10 A'
0 2 6 4
0 1 1 C
A f
1 3 7 5
1 1 1 B
1
B
f(A, B, C)=AB+A’C+BC C

Figura 2.15. Eliminación de perturbación en uno.

Profesor Leopoldo Silva Bijit 13-04-2010


14 Sistemas Digitales
Con B=1 y C=1, si se producen transiciones de A, éstas implican perturbaciones. Esto
permite identificar su ocurrencia en un mapa; se producen cuando el diseño tiene implicantes
adyacentes. Se corrige con el término de consenso, que de un punto de vista formal es
redundante; y en la práctica elimina la perturbación, cubriendo la zona en que los implicantes
tienen la adyacencia.
En el caso del ejemplo: ésta se produce en el canto de bajada de A, si A’ está atrasada
respecto a A; y en el de subida de A, si A’ está adelantada respecto a A.

Lo diseños basados en suma de productos pueden generar perturbaciones en 1; y los basados


en producto de sumas pueden generar perturbaciones en 0.

2.6.5.2. Perturbación estática en cero.


Si se tiene: f ( A B)( A ' C ) .
A f1
B'
f
A’
C f2

Figura 2.15a. Perturbación en cero.

La condición para la perturbación, se produce con B=0 y C=0, cuando ocurre un canto de
subida de A (con A’ atrasada respecto de A); la salida del and equivale al producto: AA’.

Las perturbaciones en cero, se eliminan introduciendo una suma de términos adicional,


empleando el teorema del consenso: ( A B)( A' C ) ( A B)( A' C )(B C ) .
A
f1
B
B f
C

A’
C f2

Figura 2.15b. Eliminación de perturbación en cero.

En este caso, cuando B=0 y C=0, la salida será: f ( A 0)( A ' 0)(0 0) 0 , y no se
produce perturbación.

Resumiendo: se producen perturbaciones estáticas, cuando hay agrupaciones adyacentes


(éstas difieren en una variable). Se denominan estáticas, pues es un cambio momentáneo de un

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 15
nivel constante (Spikes o glitches), produciendo un falso cero o un falso uno. El falso cero se
denomina perturbación estática en uno; el falso uno se denomina perturbación estática en cero.

Figura 2.16. Falsos ceros y unos.

El circuito combinacional, que en determinadas condiciones de las entradas, puede presentar


perturbaciones en la salida se denomina riesgoso (hazard). Mediante diseños en dos niveles, y
cuando se cubren las adyacencias entre implicantes, empleando compuertas adicionales, se
logran diseños de redes combinacionales libres de riesgos.
Ejemplo 2.11. Análisis de perturbaciones.
En el esquemático de la Figura 2.17, se tiene: f AB BC

B f

Figura 2.17. Análisis de perturbaciones.

Puede determinarse si se produce o no perturbación, analizando si llegan señales y sus


complementos a una misma compuerta.
En el caso de la Figura 2.17, si A=0 y C=1 se tiene f = B'+B lo que implica la posibilidad o
riesgo de perturbación en f.

Para determinar cuándo se produce, es preciso conocer cual de las señales llega primero. En el
caso de la Figura 2.17, B llega al OR de la salida, con un retardo de propagación, a través del
AND; y B’ pasando a través del NOT llega al OR de salida, con dos retardos de propagación.
Como B' está atrasada respecto de B, la perturbación se produce en el canto de bajada de B.
Ver Figura 1.9.

En un mapa (ver Capítulo 5) se puede visualizar el riesgo de perturbación, debido a


agrupaciones adyacentes. En la Figura 2.18 se visualiza la perturbación al pasar B de 1 a 0, es
un caso de falso cero, ya que la implementación es del tipo suma de productos.

Profesor Leopoldo Silva Bijit 13-04-2010


16 Sistemas Digitales

AB
C 00 01 11 10
0 2 6 4
0 1
1 3 7 5
1 1 1 1

f(A, B, C)=A'B'+BC
Figura 2.18. Visualización de perturbaciones en mapas.

Puede corregirse el diseño:


a) atrasando B, colocando condensadores, dependiendo su ubicación y la forma de conectarlo de
la familia lógica. Esta solución no es general.
b) colocando compuerta de consenso A’C. La solución con compuertas que cubran las
transiciones entre implicantes es de tipo general y no depende de la frecuencia de las señales
presentes. Un circuito, con las compuertas adicionales, se denomina libre de riesgos.
Ejemplo 2.12.
En circuitos diseñados con más de dos niveles, pueden generarse perturbaciones con más de
un cambio momentáneo. Por ejemplo si debiendo estar en uno, tiene dos o más caídas a cero en
un leve período de tiempo.
El siguiente circuito, de la Figura 2.19, tiene una perturbación, de más de un pulso, en 1; el
resto de las variables se asumen unos para habilitar las entradas a los ands.

La señal en f1 tiene una perturbación en 1, ocurre lo mismo en f2. Libre de perturbaciones la


señal en f debería ser un uno. Sin embargo se presenta una perturbación de más de un pulso,
como se ilustra en las formas de ondas de la Figura 2.20, si el tiempo de propagación de la vía
que genera f2 es mayor que el retardo con que se produce f1.
a’
b
f1
a
c f
a’
d
f2
a
e

Figura 2.19. Más de una perturbación estática.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 17

a
a’

f1
f2
f

Figura 2.20. Más de una perturbación estática.

Se producen en implementaciones con más de dos niveles, y si concurren a una compuerta


las señales y sus complementos por más de dos vías con retardos diferentes.

Si denominamos f a la señal de salida, y A a la señal de entrada, se tiene que:

f = (A+A’)(A+A’)

La perturbación de más de un pulso también se podría definir como estática, en el sentido


que un valor lógico que debe permanecer sin cambios (estacionario o estático), cambia el valor
una o más veces, y en forma momentánea, para finalmente retomar el valor inicial. En algunos
textos, estas perturbaciones son clasificadas como dinámicas.
2.6.5.3. Perturbaciones dinámicas.
Si la señal de salida cambia de valor lógico, es decir, de 0 a 1 o viceversa, y durante el
cambio ocurren perturbaciones se dice que ésta es dinámica.

Figura 2.21. Perturbaciones dinámicas.

La red de la Figura 2.22 muestra una perturbación dinámica, al cambiar la variable A de


entrada de 1 a 0, y la salida de 0 a 1. Con B=1, C=1 y D=0, se tiene que: f = (A’ +A)(A’) y las
señales concurren al AND de salida a través de tres vías con diferentes retardos. La señal f1,
tiene una perturbación estática en cero, en el canto de bajada de A; si el cambio f 1 se produce
después del cambio de f2, por ser su vía de propagación más lenta, la señal f, presentará una
oscilación: primero pasa a 1, luego a 0 y finalmente a 1.

Se aprecia que f, cambia momentáneamente a 0, luego vuelve a tomar valor 1; para


finalmente tomar valor estable 1.

Resumiendo se puede decir que una perturbación es dinámica si ocurre en una conmutación
de la salida. Se espera una sola transición de la salida y se producen oscilaciones de ésta.

Profesor Leopoldo Silva Bijit 13-04-2010


18 Sistemas Digitales
En un diseño en dos niveles, no se producen perturbaciones dinámicas. En una red
multinivel, tampoco se producen perturbaciones dinámicas si el diseño se realiza eliminando las
perturbaciones estáticas.
A
B
f1
A’
C f
A’

f2
D

Figura 2.22. Red con perturbación dinámica.

A
A’

f1
f

Figura 2.23. Perturbación dinámica.

El caso dual del anterior, se produce para una red combinacional en la que se produzca en la
salida: f=AA’ + A’.
2.6.5.4. Carreras aleatorias de las entradas. Perturbación de la función.
En redes combinacionales también pueden producirse perturbaciones si varias de las entradas
tienen cambios casi simultáneos.

En el mapa de la función f, de la Figura 2.24, si la función cambia de:

f(0, 0, 0, 0) a f(0, 1, 0, 1)

debería permanecer en cero. Sin embargo si no se produce el cambio simultáneo de B y D, se


tendrán dos situaciones posibles:
Si B cambia primero, se tendrá, que la salida toma los valores:

f(0, 0, 0, 0) , f(0, 1, 0, 0) , f(0, 1, 0, 1)

Si D cambia primero, la salida toma los valores:

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 19
f(0, 0, 0, 0) , f(0, 0, 0, 1) , f(0, 1, 0, 1)

En ambos casos la función pasa momentáneamente por 1.


AB
CD 00 01 11 10
0 4 12 8
00 0 1 0 0
1 5 13 9
01 1 0 1 0
3 7 15 11
11 0 1 0 1
2 6 14 10
10 1 0 1 0

f(A, B, C, D)

Figura 2.24. Función con perturbación por carreras.

Una forma de controlar las carreras de las entradas es la habilitación del conjunto durante un
breve lapso de tiempo, luego de un tiempo de ocurrido el cambio de las entradas.

A, B, C, D
p

Figura 2.25. Pulso de habilitación.

El pulso de habilitación se denomina strobe, en inglés.

Figura 2.26. Función con perturbación por carreras.

Ejemplo 2.13.
La red combinacional, de la Figura 2.27, es alimentada por un contador que genera las
señales A, B, C y D. Éstas cambian casi al mismo tiempo; es decir, varias tienen cantos que

Profesor Leopoldo Silva Bijit 13-04-2010


20 Sistemas Digitales
ocurren con pequeñas diferencias temporales. Podría decirse que ocurre una carrera entre las
diferentes conmutaciones.
A
B TP1
C
D f
74LS93 1
Clock MR1 Q3
CP1 Q1 MR2 1 Q2 TP2
CP2 Q2 CP0 Q1 1
CP1 Q0
1

Figura 2.27. Carreras en las entradas.

Si se analizan las formas de ondas, cuando A es 1; y B pasa de 0 a 1; y C y D pasan de 1 a 0;


es decir cuando el contador entra en la cuenta 12 en decimal, o 1100 en binario, se produce una
perturbación de 1 en la salida.
A
B
C
D

TP1
TP2

Perturbación por carreras de las entradas

Figura 2.28. Perturbación por carreras en las entradas.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 21

Problemas resueltos

Problema 2.1. Diseño multinivel

Un caso más general de implementación en base a compuertas NOR y NAND se ilustra en el


siguiente ejemplo.

Se parte de una implementación multinivel tipo suma de productos, y se emplea la técnica de


doble complementación. El diseño se representa mediante un esquemático.

f (A B) C (D E) F

La función no está descrita como suma de mintérminos.


En forma inmediata se logra la red en tres niveles, empleando compuertas con fan-in igual a
dos:

A'
B'
C
f
F'
D
E

Figura P2.1. Función en tres niveles.

La implementación basada en compuertas NAND se logra con el método de doble


complementación. En forma gráfica:

A'
B'
C
f
F'
D
E

Figura P2.2. Doble complementación en diseños multinivel.

Aplicando el teorema de De Morgan, se logra una implementación, en base a NAND:

Profesor Leopoldo Silva Bijit 13-04-2010


22 Sistemas Digitales
A
B
C
f
F'
D'
E'

Figura P2.3. Diseño multinivel mediante NANDs.

Nótese que las variables de entrada, que recorren un número impar de compuertas para llegar
a la salida, deben complementarse. Es el caso de A, B, D y E en el ejemplo anterior.

Problema 2.2. Conversión a NANDs en multinivel

El siguiente ejemplo ilustra una conversión a compuertas nand de un esquemático multinivel,


del tipo suma de productos. Debe notarse el tratamiento de la señal interna X, y la necesidad de
agregar un inversor.

Desde un punto de vista analítico: F = A X + X + D; X = B C


Complementando, ambos miembros, se logra: F' = ( A X)' ( X' ) ( D' ) ; X' = (B C)'
A A
X
B
C X F
F’
D B
C
X'
D'

Figura P2.4 Implementación con NANDs en diseños multinivel.

Problema 2.3. Diseño multinivel. Factorización.

Sea una función de 7 variables.

X=ADF + AEF + BDF + BEF + CDF + CEF + G

Asumiendo que ya está simplificada lógicamente como suma de productos, se observa que
requiere una compuerta OR de 7 entradas (fan-in = 7), también se requieren 6 compuertas AND
de 3 entradas. La expresión está formada por 19 literales. Un diseño directo requiere 25 entradas
(7 al OR de salida y 18 a los ANDs). Esta implementación tiene alto costo y es en dos niveles.

Efectuando una factorización, puede expresarse según:

X = (A + B + C) (D + E) F + G
Para encontrar los factores adecuados pueden ayudar programas de minimización multinivel.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 23
La expresión anterior requiere una compuerta OR de tres entradas, dos ORs de dos entradas,
un AND de 3 entradas. La factorización logra una expresión con 7 literales; y 10 entradas.
Se disminuye el tamaño, pero aumenta el número de niveles.
A
B
C
X
D
E
F
G

Figura P2.5. Diseño en tres niveles.

Problema 2.4. Diferentes formas de implementación.

Pueden escogerse diferentes formas de implementar funciones.

Por ejemplo, para la siguiente tabla de verdad:

A B C f
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0

Figura P2.6. Función de tres variables.

a) Como suma de mínterminos: f = A'B'C+A'BC+AB'C+ABC'


requiere un OR de 4 entradas, y 4 ANDs de 3 entradas. 16 entradas, con 12 literales, en dos
niveles, asumiendo que se dispone de las variables y sus complementos (los literales).

b) Si se escribe como suma de productos mínima:


f = (A'B'C + A'B'C ) +A'BC+AB'C +ABC' por idempotencia, y agrupando se obtiene:
f = A'C+B'C +ABC' forma mínima que requiere un OR de 3 entradas, 2 ANDs de 2
entradas y un AND de 3 entradas. Con 10 entradas y 7 literales. En dos niveles.

c) Factorizando con S = AB, se logra: f = SC'+S'C;

Profesor Leopoldo Silva Bijit 13-04-2010


24 Sistemas Digitales

A S
B
C' f

Figura P2.7. Empleando un factor común S.

Que requiere: 3 compuertas AND de 2 entradas, un OR de dos entradas y un inversor. Se


tienen 9 entradas y 4 niveles.

d) Empleando compuertas XOR: f = S C; con S = AB

A S
B
f
C

Figura P2.8. Empleando compuertas xor.

Implementación que emplea 2 compuertas, dos niveles, 4 entradas. Una de las compuertas es
un OR exclusivo que requiere mayor costo interno.

Problema 2.5. Costos de Implementación.

Dependiendo de la forma de la expresión, las formas mínimas pueden tener costos diferentes,
como se aprecia en el siguiente ejemplo.

La expresión: f = AB + C en su forma canónica de suma de productos requiere: 20 entradas,


5 ANDs de 3 entradas y un OR de 5 entradas. Si se minimiza la suma de productos se requieren:
4 entradas, un AND de 2 entradas y un OR de 2 entradas.

La misma expresión anterior como forma canónica de producto de sumas requiere: 12


entradas, 3 ORs de 3 entradas y un AND de 3 entradas. En su forma minimizada de producto de
sumas requiere: 6 entradas, 2 ORs de 2 entradas y un AND de 2 entradas.

En este caso la suma minimizada de productos lleva a la implementación de menor costo


espacial.

Un análisis de las formas de ondas permite establecer diferencias entre las


implementaciones, ya sea por la producción de perturbaciones o porque tengan retardos
diferentes. Algunas compuertas que tienen mayor número de entradas, tienen mayor retardo.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 25
Problema 2.6.

Expresar como suma de mintérminos usando teorema de expansión. Exprese los mintérminos
mediante números decimales, ordenados en forma ascendente.
Con f(a, b, c, d) = a + b’ c

Solución:
Para el primer término se tiene la siguiente expansión:
a = ab + ab’ = abc + abc’ + ab’c + ab’c’
a = abcd + abcd’ + abc’d + abc’d’ + ab’cd + ab’cd’ + ab’c’d + ab’c’d’
a = m(15, 14, 13, 12, 11, 10, 9, 8)
Para el segundo término, la expansión resulta:
b’c = ab’c + a’b’c = ab’cd + ab’cd’ + a’b’cd + a’b’cd’ = m( 11, 10, 3, 2)

Entonces: f(a, b, c, d) = m(15, 14, 13, 12, 11, 10, 9, 8) + m( 11, 10, 3, 2)
Como m10 + m10 = m10 por idempotencia, y también: m11 + m11 = m11

Resulta finalmente, ordenando los valores decimales en forma ascendente:

f(a, b, c, d) = a + b’c = m(2, 3, 8, 9, 10, 11, 12, 13, 14, 15)

Problema 2.7.

Se tiene una red combinacional con tres entradas (D2, D1, D0) y ocho salidas: (L7, L6, L5, L4,
L3, L2, L1, L0).
Los tres dígitos binarios pueden leerse en su equivalente decimal (n), considerando que D2
es la cifra más significativa y D0 la menos significativa.
Cuando en la entrada se tiene el número n: la salida Ln está baja (0 lógico) y el resto de las
salidas están altas (1 lógico).

D2 L7
L6
D1 ...
D0 L1
L0

Figura P2.9 Entradas y salidas Problema 2.7.

Determinar:
a) Tabla de verdad.
b) Expresión lógica mínima para L5 como suma de productos, efectuando reducciones
algebraicas.
c) Expresión lógica mínima para L5 como producto de sumas, efectuando reducciones
algebraicas.
Solución.

Profesor Leopoldo Silva Bijit 13-04-2010


26 Sistemas Digitales
a) La tabla de verdad para las ocho salidas:

D2 D1 D0 L7 L6 L5 L4 L3 L2 L1 L0
0 0 0 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 1 1 0 1
0 1 0 1 1 1 1 1 0 1 1
0 1 1 1 1 1 1 0 1 1 1
1 0 0 1 1 1 0 1 1 1 1
1 0 1 1 1 0 1 1 1 1 1
1 1 0 1 0 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1 1

Figura P2.10 Tabla de verdad Problema 2.7.

b) De la tabla, expresando como suma de mintérminos:


L5 = m(0, 1, 2, 3, 4, 6, 7)

L5 = m0+m1+m2+m3+m4+m6+m7
L5 = m0+m0+m1+m2+m2+m2+m3+m3+m4+m6+m6+m7 Por idempotencia. T8.
L5 = (m0+m2+m4+m6) + (m0+m1+m2+m3) + (m2+m3+m6+m7) Por conmutación. P4.
Aplicando repetidamente fusión: T14
m(0, 2, 4, 6) = (D2’D1’D0’ + D2’D1D0’) +(D2D1’D0’ + D2D1D0’)
= D2’D0’ + D2D0’ = D0’

m(0, 1, 2, 3) = (D2’D1’D0’ + D2’D1’D0) +(D2’D1D0’ + D2’D1D0)


= D2’D1’ + D2’D1 = D2’

m(2, 3, 6, 7) = (D2’D1D0’ + D2’D1D0) +(D2D1D0’ + D2D1D0)


= D2’D1 + D2D1 = D1
Resulta finalmente:
L5 = D2’ + D1 + D0’

c) De la tabla, expresando como producto de maxtérminos:


Debido a que la expresión está formada por un solo maxtérmino, no es necesario minimizar:

L5 = M5 = D2’ + D1 + D0’

En este caso, ambos diseños resultan de igual complejidad (y con la misma expresión).

Problema 2.8.

Se tiene la función:
f(a, b, c) = M(1,2,3,6) + m(5, 7)

a) Determinar la tabla de verdad.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 27
b) Expresión lógica mínima para f como suma de productos.
c) Expresión lógica mínima para f como producto de sumas.

Solución:
a) La tabla de verdad para f, resulta de la suma lógica de las columnas asociadas al producto
de maxtérminos y a la suma de mintérminos. Con n el código decimal para el mintérmino.
a b c M(1,2,3,6) m(5, 7) f n
0 0 0 1 0 1 0
0 0 1 0 0 0 1
0 1 0 0 0 0 2
0 1 1 0 0 0 3
1 0 0 1 0 1 4
1 0 1 1 1 1 5
1 1 0 0 0 0 6
1 1 1 1 1 1 7

Figura P2.11 Tabla de verdad Problema 2.8.

b) Expresando f como suma de mintérminos, se obtiene: f = m(0, 4, 5, 7)


f = (a’b’c’ + ab’c’ ) + (ab’c + abc ) = b’c’ + ac Aplicando T14.

c1) Expresando f como producto de maxtérminos:


Se tiene: f(a, b, c) = M(1,2,3,6) = M1 M3 M2 M6 Por conmutación. P4
f = (a +b +c’)(a +b’ +c’)(a +b’ +c)(a’ +b’ +c) Por definición y Aplicando fusión. T14.
f = (a + c’) (b’ + c)
c2) Alternativamente, Describiendo el complemento de la función f, como suma de
mintérminos: f ’ = m(1, 2, 3, 6) = m1 +m3 + m2 +m6 Por conmutación. P4
f ’ = a’b’c + a’bc + a’bc’ + abc’ Por fusión. T14

Se obtiene la ecuación de polaridad inversa:


f ’ = a’c + bc’ Complementando y aplicando Involución en el lado izquierdo y De Morgan
en la expresión de la derecha, se obtiene igual resultado que en c1):
f = (a + c’)(b’ +c)

Problema 2.9.

Se tiene la función:
f(a, b, c, d) = ( a b) c

a) Determinar la tabla de verdad.


b) Expresar como suma de mintérminos.
c) Expresar como producto de maxtérminos.

Solución:

Profesor Leopoldo Silva Bijit 13-04-2010


28 Sistemas Digitales
a) Planteando tablas de verdad para el OR exclusivo de a y b, y empleando esta columna con
la de la variable c, se obtiene la columna para la función f. Con n el equivalente decimal del
código del mintérmino:

a b c d a b (a b) c n
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 0 0 1 2
0 0 1 1 0 1 3
0 1 0 0 1 1 4
0 1 0 1 1 1 5
0 1 1 0 1 0 6
0 1 1 1 1 0 7
1 0 0 0 1 1 8
1 0 0 1 1 1 9
1 0 1 0 1 0 10
1 0 1 1 1 0 11
1 1 0 0 0 0 12
1 1 0 1 0 0 13
1 1 1 0 0 1 14
1 1 1 1 0 1 15
Figura P2.12 Tabla de verdad Problema 2.9.

b) Leyendo los mintérminos directamente de la tabla, se logra:

f = m(2, 3, 4, 5, 8, 9, 14, 15)

c) Leyendo los maxtérminos directamente de la tabla, se logra:

f(a, b, c, d) = M(0, 1, 6, 7, 10, 11, 12, 13)

Otro desarrollo:
Se tiene por definición:
a b = ab’ +a’ b
Luego: ( a b ) c = (ab’ +a’ b)c’ + (ab’ +a’ b)’c = ab’c’ +a’bc’ + ab’c +a’b’c Por P6.
f = ab’c’d +ab’c’d’ + a’bc’d + a’bc’d’ + ab’cd + ab’cd’ + a’b’cd + a’b’cd’ por T14.
f = m9 + m8 + m5 + m4 + m11 + m10 + m3 + m2
Conmutando se obtiene igual resultado que el anterior.

Los números de los maxtérminos son los números de los mintérminos que no están
presentes, en la expresión anterior. Con esta información puede escribirse la tabla de verdad.

Problema 2.10.

Para una función booleana de 3 variables A, B, C:

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 29
f(A,B,C) = m(2,3,5,7)

a) Determinar la tabla de verdad para f.


b) Expresar f ' como producto de maxtérminos. Justificar la respuesta.
c) Expresión booleana, para f, con menos literales. Justificar la respuesta.

Solución.
a) m2 = A'BC' ; m3 = A'BC ;m5 = AB'C ; m7 = ABC
Los unos de f están asociados a los mintérminos presentes. El mintérmino 2 en decimal
equivale a la combinación de valores 010 de las variables ABC, y por lo tanto tendrá asociado
un uno en la tabla de verdad de la función.

Resulta entonces:
ABC f f' Código decimal
000 0 1 0
001 0 1 1
010 1 0 2
011 1 0 3
100 0 1 4
101 1 0 5
110 0 1 6
111 1 0 7

Figura P2.13 Tabla de verdad Problema 2.10.

b) Los maxtérminos de f ' quedan definidos por los ceros de su tabla de verdad. Para A=0,
B=1 y C=0 se tiene que (A + B' +C) genera el cero en el renglón respectivo de f '.
Entonces: f ' = (A+B' +C)(A+B'+C')(A'+B+C')(A'+B'+C')
Codificando los maxtérminos en binario, se logra: f ' = M010 + M011 + M101 +M111
En decimal: f ' = M2 M3 M5 M7
Otro desarrollo:
A partir de f = (m2+m3+m5+m7), negando ambos miembros se logra:
f ' = (m2+m3+m5+m7)' ; P2
= m2' m3' m5' m7' ; T12 De Morgan
= M ( 2,3,5,7) ;Con mi' = Mi

c) f(A,B,C) = m(2,3,5,7)
= A'BC'+AB'C'+AB'C+ ABC ; definición de mintérminos.
= A'C'B+AC'B'+ACB'+ ACB ; P4 Conmutatividad.
= A'C'(B+B') + AC(B'+B) ; P6 Distributividad.
= A'C'(1) +AC(1) ; P7 Complemento único.
= A'C'+AC ; P3 Elementos únicos.

Problema 2.11.

Se tiene un número binario de cuatro bits:

Profesor Leopoldo Silva Bijit 13-04-2010


30 Sistemas Digitales
A3A2A1A0, donde A3 es la cifra más significativa, sea n el equivalente decimal de este
número.

Diseñar un sistema que acepte a n como entrada y que produzca en la salida el equivalente
binario del número decimal: ( n*4 +1).

Solución.
El mayor n que puede escribirse con cuatro bits es 15, por lo tanto la salida mayor será 61, lo
cual requiere 6 cifras binarias para representarla. Sean éstas: S5S4S3S2S1S0.

La siguiente tabla de verdad ilustra la situación:


n A3A2A1A0 n*4 +1 S5S4S3S2S1S0
0 0000 1 000001
1 0001 5 000101
2 0010 9 001001
3 0011 13 001101
4 0100 17 010001
5 0101 21 010101
6 0110 25 011001
7 0111 29 011101
8 1000 33 100001
9 1001 37 100101
10 1010 41 101001
11 1011 45 101101
12 1100 49 110001
13 1101 53 110101
14 1110 57 111001
15 1111 61 111101

Figura P2.14 Tabla de verdad Problema 2.11.

Observando la tabla, se determina que S1= 0 y S0 = 1 son constantes, y que:


S5 = A3, S4 = A2, S3 = A1, y S2 = A0

El diseño mínimo no requiere compuertas, y se muestra a continuación:

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 31

A3 S5
S1
A2 S4 VCC
A1 S3
S0
A0 S2
S1
tierra
S0
VCC

Figura P2.15 Esquemático Problema 2.11.

A la derecha se muestra un diseño donde las señales S1 y S0 son salidas de compuertas.

Problema 2.12.

Se tiene un circuito digital de 4 entradas (A, B, C, D) y cuatro salidas (f1, f2, f3, f4).
a) Determinar como suma de mintérminos, la función f1 que es verdadera cuando exactamente
dos de las entradas sean verdaderas.
b) Determinar como producto de maxtérminos, la función f2 que es verdadera cuando
exactamente tres de las entradas sean verdaderas.
c) Determinar mediante un circuito lógico en base a AND, OR y NOT, la función f3, que es
verdadera cuando exactamente cuatro de las entradas sean verdaderas.
d) Determinar mediante una expresión booleana, la función f4, que es verdadera cuando
exactamente cuatro de las entradas sean falsas.

Solución.

Se tienen las siguientes tablas de verdad.

Profesor Leopoldo Silva Bijit 13-04-2010


32 Sistemas Digitales

A B C D f1 f2 f3 f4 Código
0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 1
0 0 1 0 0 0 0 0 2
0 0 1 1 1 0 0 0 3
0 1 0 0 0 0 0 0 4
0 1 0 1 1 0 0 0 5
0 1 1 0 1 0 0 0 6
0 1 1 1 0 1 0 0 7
1 0 0 0 0 0 0 0 8
1 0 0 1 1 0 0 0 9
1 0 1 0 1 0 0 0 10
1 0 1 1 0 1 0 0 11
1 1 0 0 1 0 0 0 12
1 1 0 1 0 1 0 0 13
1 1 1 0 0 1 0 0 14
1 1 1 1 0 0 1 0 15

Figura P2.16 Tabla de verdad Problema 2.12.

Entonces:
f1 = m(3, 5, 6, 9, 10, 12)
f2 = M(0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15)
f3 = m(15) = ABCD
A
B f3
C
D
f4 = m(0) = A'B'C'D'

Ejercicios propuestos.

Ejemplo 2.1.

Verificar las relaciones:

f m(2, 6) M (0,1, 3, 4, 5, 7)
f m(0,1, 3, 4, 5, 7) M (2, 6)

Ejemplo 2.2.

Con f(a, b, c, d) = ab’d + c’(b d)’ + m9 + M’13


a) Expresar como suma de mintérminos.
b) Expresar como producto de maxtérminos.
c) Minimizar como suma de productos empleando teoremas.

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 33
Ejemplo 2.3.

Para la función:

f(A, B, C, D) = ((A + B)C+B’)D + m13m2 +m5 + M2m13

Determinar:
a) Formas canónicas.
b) Minimizar, indicando número de entradas.
c) 2-cubos que contienen a m7
d) Agregue un mintérmino (a elección) tal que la expresión se simplifique.

Ejemplo 2.4.

Para la función:

f(A, B, C, D) = ((A + B)C+B’)D + m13m2 +m13 + M2m13

Determinar:
a) Formas canónicas.
b) Minimizar, indicando número de entradas.
c) 2-cubos que contienen a m7
d) Agregue un mintérmino (a elección) tal que la expresión se simplifique.

Ejemplo 2.5.

Para un diseño libre de perturbaciones, de la función:


f ( w, x, y, z ) xy ' w ' y
que elección realizaría:
a) f ( w, x, y, z ) xy ' w ' y w ' xz
b) f ( w, x, y, z ) xy ' w ' y w ' x

Ejemplo 2.6.

Eliminar las perturbaciones estáticas de la función:


f (v, w, x, y, z ) v ' wz ' w ' x ' z xz vwy '

Profesor Leopoldo Silva Bijit 13-04-2010


34 Sistemas Digitales

Índice general.

CAPÍTULO 2.........................................................................................................................................1
SÍNTESIS EN DOS NIVELES ............................................................................................................1
2.1. FORMAS DE FUNCIONES. ...............................................................................................................1
2.2. MINTÉRMINOS ..............................................................................................................................2
Ejemplo 2.1. Definición de mintérmino ..........................................................................................2
Ejemplo 2.2. Suma de mintérminos ................................................................................................3
2.3. MAXTÉRMINO. ..............................................................................................................................3
Ejemplo 2.3. Definición de maxtérmino. ........................................................................................4
Ejemplo 2.4. Producto de maxtérminos .........................................................................................4
Relaciones ......................................................................................................................................5
Ejemplo 2.5. De suma de mintérminos a productoria de maxtérminos. .........................................5
2.4. EXPANSIÓN A FORMAS CANÓNICAS...............................................................................................6
2.4.1. Expansión de suma de productos .........................................................................................6
Ejemplo 2.7. Expansión a mintérminos. .................................................................................................... 6
2.4.2. Expansión de productos de sumas ........................................................................................6
Ejemplo 2.8. Expansión a maxtérminos ..................................................................................................... 6
2.5. SÍNTESIS DE LAS FORMAS..............................................................................................................7
2.5.1. Suma de productos ...............................................................................................................7
Ejemplo 2.9. OR de ANDs ........................................................................................................................ 7
Ejemplo 2.10. Dos niveles de NANDs ....................................................................................................... 7
2.5.2. Producto de sumas ...............................................................................................................8
2.5.3. Conversión de producto de sumas a suma de productos. Cambio de lógica. .......................9
2.6. DISEÑO LÓGICO ..........................................................................................................................10
2.6.1. Fan-in. Fan out...................................................................................................................10
2.6.2. Observaciones sobre la forma Producto de Sumas. ...........................................................11
2.6.3. Observaciones sobre la forma Suma de Productos. ...........................................................11
2.6.4. Observaciones sobre las diferentes formas de diseño. .......................................................12
2.6.5. Perturbaciones. Diseños con riesgos. ................................................................................12
2.6.5.1. Perturbación estática en uno........................................................................................................ 13
2.6.5.2. Perturbación estática en cero. ...................................................................................................... 14
Ejemplo 2.11. Análisis de perturbaciones. ............................................................................................... 15
Ejemplo 2.12. ........................................................................................................................................... 16
2.6.5.3. Perturbaciones dinámicas. ........................................................................................................... 17
2.6.5.4. Carreras aleatorias de las entradas. Perturbación de la función. .................................................. 18
Ejemplo 2.13. ...................................................................................................................................... 19
PROBLEMAS RESUELTOS ....................................................................................................................21
Problema 2.1. Diseño multinivel ..................................................................................................21
Problema 2.2. Conversión a NANDs en multinivel ......................................................................22
Problema 2.3. Diseño multinivel. Factorización. .........................................................................22
Problema 2.4. Diferentes formas de implementación. .................................................................23
Problema 2.5. Costos de Implementación. ...................................................................................24
Problema 2.6. ...............................................................................................................................25
Problema 2.7. ...............................................................................................................................25
Problema 2.8. ...............................................................................................................................26

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 35
Problema 2.9. .............................................................................................................................. 27
Problema 2.10. ............................................................................................................................ 28
Problema 2.11. ............................................................................................................................ 29
Problema 2.12. ............................................................................................................................ 31
EJERCICIOS PROPUESTOS................................................................................................................... 32
Ejemplo 2.1. ................................................................................................................................. 32
Ejemplo 2.2. ................................................................................................................................. 32
Ejemplo 2.3. ................................................................................................................................. 33
Ejemplo 2.4. ................................................................................................................................. 33
Ejemplo 2.5. ................................................................................................................................. 33
Ejemplo 2.6. ................................................................................................................................. 33
ÍNDICE GENERAL. .............................................................................................................................. 34
ÍNDICE DE FIGURAS........................................................................................................................... 36

Profesor Leopoldo Silva Bijit 13-04-2010


36 Sistemas Digitales

Índice de Figuras

Figura 2.1 Tablas de verdad de algunos Mintérminos................................................................... 3


Figura 2.2. Tablas de verdad de algunos Maxtérminos. ............................................................... 4
Figura 2.3. Suma de productos en dos niveles. ............................................................................ 7
Figura 2.4. Suma de productos mediante NANDs. ...................................................................... 8
Figura 2.5. Doble complementación............................................................................................. 8
Figura 2.6. Equivalencia gráfica del teorema de De Morgan. ...................................................... 8
Figura 2.7. Producto de sumas en dos niveles. ............................................................................. 8
Figura 2.8. Suma de productos mediante NORs. ......................................................................... 9
Figura 2.9. Visualización esquemática del teorema de De Morgan. ............................................ 9
Figura 2.10. De producto de sumas a Suma de productos. ........................................................... 9
Figura 2.11. Complementos de las entradas y salidas. ............................................................... 10
Figura 2.12. AND de columnas. ................................................................................................. 11
Figura 2.13. OR de columnas. .................................................................................................... 11
Figura 2.14. Perturbación en red combinacional ......................................................................... 13
Figura 2.15. Eliminación de perturbación en uno........................................................................ 13
Figura 2.15a. Perturbación en cero. ............................................................................................. 14
Figura 2.15b. Eliminación de perturbación en cero. .................................................................... 14
Figura 2.16. Falsos ceros y unos.................................................................................................. 15
Figura 2.17. Análisis de perturbaciones. ..................................................................................... 15
Figura 2.18. Visualización de perturbaciones en mapas.............................................................. 16
Figura 2.19. Más de una perturbación estática. ........................................................................... 16
Figura 2.20. Más de una perturbación estática. ........................................................................... 17
Figura 2.21. Perturbaciones dinámicas. ....................................................................................... 17
Figura 2.22. Red con perturbación dinámica. .............................................................................. 18
Figura 2.23. Perturbación dinámica............................................................................................. 18
Figura 2.24. Función con perturbación por carreras. ................................................................... 19
Figura 2.25. Pulso de habilitación. .............................................................................................. 19
Figura 2.26. Función con perturbación por carreras. ................................................................... 19
Figura 2.27. Carreras en las entradas. .......................................................................................... 20
Figura 2.28. Perturbación por carreras en las entradas. ............................................................... 20
Figura P2.1. Función en tres niveles........................................................................................... 21
Figura P2.2. Doble complementación en diseños multinivel. .................................................... 21
Figura P2.3. Diseño multinivel mediante NANDs. .................................................................... 22
Figura P2.4 Implementación con NANDs en diseños multinivel............................................... 22
Figura P2.5. Diseño en tres niveles. ........................................................................................... 23
Figura P2.6. Función de tres variables. ...................................................................................... 23
Figura P2.7. Empleando un factor común S. .............................................................................. 24
Figura P2.8. Empleando compuertas xor.................................................................................... 24
Figura P2.9 Entradas y salidas Problema 2.7. ............................................................................ 25
Figura P2.10 Tabla de verdad Problema 2.7............................................................................... 26
Figura P2.11 Tabla de verdad Problema 2.8............................................................................... 27
Figura P2.12 Tabla de verdad Problema 2.9............................................................................... 28
Figura P2.13 Tabla de verdad Problema 2.10............................................................................. 29

Profesor Leopoldo Silva Bijit 13-04-2010


Capítulo 2. Síntesis en dos niveles 37
Figura P2.14 Tabla de verdad Problema 2.11. ........................................................................... 30
Figura P2.15 Esquemático Problema 2.11. ................................................................................ 31
Figura P2.16 Tabla de verdad Problema 2.12. ........................................................................... 32

Profesor Leopoldo Silva Bijit 13-04-2010


1

Capítulo 3

Codificación binaria

3.1. Codificación

En un ambiente de sistemas digitales se denomina codificación a la asignación de un significado


a una configuración de bits.

Al modelar problemas es usual encontrar variables que pueden tomar múltiples valores, se
denomina codificación al proceso de convertir esas variables en señales binarias. La elección
adecuada del código puede conducir a redes lógicas más simples.

Consideremos, por ejemplo, el estado de un semáforo: éste puede tomar uno de tres valores:
verde, amarillo o rojo.
Una posible codificación es considerar cada color como una señal binaria; así si la variable
color toma valor rojo, estará en nivel alto la señal rojo y el resto de las señales (la verde y
amarilla) serán ceros.
Otra posibilidad es emplear dos bits para representar las tres situaciones que son posibles; ya
que con dos bits pueden simbolizarse, en binario, cuatro casos. Existen gran cantidad de códigos
posibles, ya que el nombre binario para el primer color puede elegirse de 4 maneras diferentes;
el código binario para el segundo color puede ser elegido de tres maneras diferentes, y el tercer
color puede ser elegido de dos modos diferentes. Existen 24 formas de representar la variable
multivaluada color mediante un vector binario.

A continuación se mostrarán ejemplos de tres clases de códigos: numéricos, alfanuméricos y de


despliegue.

3.2. Códigos numéricos

Los más empleados son aquellos usados para representar números decimales.
El código representa los dígitos decimales por una secuencia de símbolos binarios.

3.2.1. Códigos ponderados

Se denomina código ponderado a uno en el que a cada posición de la secuencia binaria se le


asigna un peso o ponderación.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Ejemplo 3.1. Código BCD
El código ponderado más empleado es el BCD, que representa a los dígitos decimales por
secuencias de bits en sistema binario. BCD es un acrónimo de Binary Coded Decimal es decir,
decimal codificado en binario.

Decimal BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

Figura 3.1 Código BCD.

La tabla es el código. Cada secuencia de 4 bits es una palabra del código. Nótese que a cada
dígito decimal se le asocia una secuencia de 4 bits.

La posición de más a la izquierda, o más significativa, tiene peso 8. El bit menos significativo,
el de más a la derecha, tiene ponderación 1. Las ponderaciones son potencias de 2.
Así, la palabra 7, puede interpretarse según:

0*8 + 1*4 + 1*2 + 1*1 = 7

Para representar el número decimal 12 se requieren 8 bits, o dos palabras de código.

12 = 0001 0010

Ejemplo 3.2. Transmisión de símbolos BCD.


A través de un par de cables, puede enviarse una secuencia de cifras decimales codificadas en
binario. Si enviamos primero las unidades, luego las decenas y después las centenas; y si se
envía primero el bit menos significativo, se tendrá que la siguiente forma de onda representa el
número 923:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 3. Codificación binaria 3

1 1 0 0 0 1 0 0 1 0 0 1

t
3 2 9

Figura 3.2 Transmisión serie de un símbolo BCD.

La situación anterior ilustra una transmisión serie. La duración temporal de los bits y la forma
de iniciar y terminar la comunicación debe ser acordada entre el transmisor y receptor, esta
modalidad se denomina comunicación asincrónica. Si además se transmite una señal de reloj, se
tendrá una comunicación serial sincrónica.

Si se dispone de cuatro líneas, más una referencia, se puede enviar una cifra decimal en
paralelo. Si enviamos primero la cifra más significativa, y si identificamos los cables del bus
por su ponderación, la Figura 3.3. muestra la transmisión paralela del número 329.
Las líneas se han identificado de acuerdo al peso.

b
8 t

b
8
b
b 4 t
4

b
2

b b
1 2 t

b
1 t
3 2 9

Figura 3.3 Transmisión paralela símbolo BCD.

3.2.2. Distancia

Se define la distancia entre dos palabras de un código, como el número de dígitos que se deben
cambiar a una palabra para obtener la otra.
Por ejemplo:
Hay distancia 1 entre 0100 y 0110.
Hay distancia 4 entre 0011 y 1100.

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

La distancia del código es la mínima distancia entre dos palabras consecutivas cualesquiera del
código.

En ciertas aplicaciones son útiles los códigos de distancia unitaria. Uno de los más empleados
es el código Gray, que es un sistema de codificación que ordena un conjunto de 2n números
binarios, de tal modo que sólo uno de los n bits cambia de una palabra a la siguiente.
Por ejemplo, para palabras de largo igual a 3 bits, se pueden representar 8 números decimales
según:

Decimal Gray
0 000
1 001
2 011
3 010
4 110
5 111
6 101
7 100

Figura 3.4 Código Gray para palabras de largo tres.

Nótese que entre números decimales consecutivos la distancia entre las palabras codificadas es
1.

3.2.3. Código reflejado.

Cuando en una lista ordenada ascendente, según el código, la mitad superior es simétrica con la
inferior, exceptuando el bit de mayor orden, se dice que el código es reflejado.

Ejemplo: Código Gray con largo de palabra de dos bits:

00
01
--
11
10

Nótese que lo anterior permite construir tablas de código Gray con largos de palabra mayores.
Para obtener el código para largo tres, se duplica el código de largo dos, mediante un reflejo; a
la mitad superior se la antecede con un 0 y a la inferior con un 1, ver Figura 3.4.

En la Figura 3.5. se muestran los diseños de redes combinacionales, para generar código Gray a
partir de una secuencia binaria de cuatro bits y viceversa.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 3. Codificación binaria 5

B3 G3

B2 G2
G3 B3

B2
G2
B1 G1
B1
G1

B0 G0 G0 B0

Figura 3.5 Conversores de código Gray a binario.

3.2.4. Código cíclico

En éstos, las palabras consecutivas tienen la misma distancia, y esta distancia existe también
entre la primera y la última palabra del código. En este sentido, la lista puede considerarse
cerrada.

3.2.5. Paridad

En aplicaciones digitales de movimiento de información, es importante detectar cualquier tipo


de error en la información recibida.

Cuando la probabilidad de error no es muy alta, ha probado ser efectivo un sistema denominado
Chequeo de paridad. Esta técnica emplea un bit extra, llamado de paridad, cuyo valor se
selecciona de tal forma de dejar un número par de unos en la palabra de código, entonces se dice
que el código es de paridad par. Si el bit se escoge tal que el número de unos en la palabra sea
impar, se tiene un sistema de paridad impar.
Ejemplo 3.3. Generador y detector de paridad.
Generador y detector de paridad. Se envían 4 bits en paralelo más uno de paridad par. La Figura
3.6 muestra la generación del bit de paridad, mediante:

p b8 b4 b2 b1

En el extremo receptor se calcula la señal detectora de paridad, mediante:

dp b8 b4 b2 b1 p

Las ecuaciones que realizan el diseño se obtienen planteando la tabla de verdad y luego
empleando compuertas or exclusivo para la implementación.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales

Tx Rx

dp

Figura 3.6 Generador y detector de paridad.

En la Figura 3.6 se muestra, entre líneas punteadas, el medio de transmisión; que separa al
transmisor del receptor. Analizar el circuito, determinando valores de p y dp, en caso de
producirse errores, en una de las cinco señales que se transmiten.
Ejemplo 3.5.
a) Sea una palabra de largo 3: 010

Entonces con un bit de paridad par, se representa: 1010. Donde el bit de paridad ocupa la
posición más significativa. En este caso: p b4 b2 b1 0 1 0 1

b) Puede verse que un error se detecta simplemente, en un código con paridad, debido al
cambio de tipo de paridad. Si la palabra correcta, con paridad par es 1010, se tiene que si se
recibe:

i) 1110 (paridad impar). Llegó errado bit 2.


ii) 1000 (paridad impar). Llegó errado bit 3.
iii) 0010 (paridad impar). Llegó errado bit 1, el de paridad
iv) 1011 (paridad impar). Llegó errado bit 4.
El bit de paridad sólo permite detectar el error, no corregirlo.

Un error en dos bits no puede ser detectado. Este sistema no permite corregir el error, sólo
detectarlo.

c) Se tiene el siguiente código octal con paridad impar:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 3. Codificación binaria 7

Decimal Octal con paridad impar


0 1000
1 0001
2 0010
3 1011
4 0100
5 1101
6 1110
7 0111

Figura 3.7 Código octal con paridad impar.

Nótese que la distancia del código, de la Figura 3.7, es dos. La paridad ocupa el bit más
significativo.

Ejemplo 3.6.
Un código muy empleado es el hexadecimal que representa 16 símbolos o cifras del sistema
hexadecimal mediante secuencias de cuatro bits. La tabla con el código se muestra en la Figura
3.8. Las secuencias hexadecimales suelen precederse con 0x; de este modo el número
hexadecimal 0x1A4 tiene como equivalente al número decimal 420:

0 x1A4 1 162 10 161 4 160 420

Hexadecimal Hex en binario


0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Figura 3.8 Código hexadecimal.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
De acuerdo a la tabla de la Figura 3.8, el equivalente binario de la secuencia 0x1A4 se obtiene
reemplazando cada cifra hexadecimal por su secuencia equivalente binaria, de cuatro bits.

0 x1A4 000110100100

3.3. Códigos alfanuméricos

La mayor parte de los dispositivos periféricos empleados en sistemas de computación para


comunicar al hombre con las máquinas, permiten representar las letras minúsculas y
mayúsculas, dígitos decimales, signos de puntuación y caracteres especiales.

Uno de los códigos más empleados es el código ASCII. Éste es un código de 7 bits, más uno de
paridad. Permite representar 128 símbolos. Su nombre es una abreviación de "American
Standard Code for Information Interchange".

Se tienen 32 símbolos de control, símbolos de puntuación, letras y números. Los símbolos


asociados a los dígitos decimales están entre 0x30 y 0x39; entonces basta considerar los 4
menos significativos para obtener el código BCD equivalente.

Los códigos binarios de las letras mayúsculas y minúsculas difieren en el estado de un bit.

Pueden plantearse una serie de sistemas combinacionales que decodifiquen o categoricen a


símbolos pertenecientes al código ASCII. Por ejemplo: ¿Es letra? , ¿Es letra o número?, etc.

H D H D H D H D H D H D H D H D
00 NULL 00 10 DEL 16 20 32 30 0 48 40 @ 64 50 P 80 60 ` 96 70 p 112
01 SOH 01 11 DC1 17 21 ! 33 31 1 49 41 A 65 51 Q 81 61 a 97 71 q 113
02 STX 02 12 DC2 18 22 " 34 32 2 50 42 B 66 52 R 82 62 b 98 72 r 114
03 EXT 03 13 DC3 19 23 # 35 33 3 51 43 C 67 53 S 83 63 c 99 73 s 115
04 EOT 04 14 DC4 20 24 $ 36 34 4 52 44 D 68 54 T 84 64 d 100 74 t 116
05 ENQ 05 15 NAK 21 25 % 37 35 5 53 45 E 69 55 U 85 65 e 101 75 u 117
06 ACK 06 16 SYN 22 26 & 38 36 6 54 46 F 70 56 V 86 66 f 102 76 v 118
07 BEL 07 17 ETB 23 27 ' 39 37 7 55 47 G 71 57 W 87 67 g 103 77 w 119
08 BS 08 18 CAN 24 28 ( 40 38 8 56 48 H 72 58 X 88 68 h 104 78 x 120
09 TAB 09 19 EM 25 29 ) 41 39 9 57 49 I 73 59 Y 89 69 i 105 79 y 121
0a LF 10 1a SUB 26 2a * 42 3a : 58 4a J 74 5a Z 90 6a j 106 7a z 122
0b VT 11 1b ESC 27 2b + 43 3b ; 59 4b K 75 5b [ 91 6b k 107 7b { 123
0c FF 12 1c FS 28 2c , 44 3c < 60 4c L 76 5c \ 92 6c l 108 7c | 124
0d CR 13 1d GS 29 2d - 45 3d = 61 4d M 77 5d ] 93 6d m 109 7d } 125
0e SO 14 1e RS 30 2e . 46 3e > 62 4e N 78 5e ^ 94 6e n 110 7e ~ 126
0f SI 15 1f US 31 2f / 47 3f ? 63 4f O 79 5f _ 95 6f o 111 7f del 127

Figura 3.9 Código ASCII.

En computadores personales se emplean 8 bits para representar caracteres, lo cual permite


denotar 256 símbolos. Esto ha sido especialmente útil en aplicaciones de procesamiento de
textos en diversos idiomas, pues pueden incluirse letras con diferentes tipos de acentos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 3. Codificación binaria 9
El estándar ISO-8859 posee la codificación ASCII en su rango inicial (128 caracteres) y otros
128 caracteres para cada codificación de diferentes lenguas originarias de Europa occidental,
utilizando 8 bits. ISO-8859-1 es el alfabeto latino. Este código no cubre a lenguajes con otros
alfabetos, como el chino o el árabe.

Unicode asigna un código único a cada carácter, utilizado en los lenguajes escritos del mundo,
para esto Unicode representa un carácter en forma abstracta, y deja la representación visual,
tamaño, dimensión, fuente o estilo, a otra aplicación, como un navegador web, un procesador de
texto o un cliente de correo. Las normas de transmisión Unicode más empleadas son UTF-8 y
UTF-16.

En páginas web se emplean entidades HTML para enviar caracteres especiales al cliente.
Comienzan con & y terminan en punto y coma. Por ejemplo para enviar una a minúscula
acentuada, se envía: &aacute;. También se acepta introducir una secuencia Unicode precedida
de la secuencia &#x. Por ejemplo U+00E1, es el Unicode para la á; entonces en la página web,
puede codificarse: &#x00E1;

3.4. Códigos de despliegue (Display Codes)

Existe una variedad de códigos empleados en voltímetros digitales, tubos de rayos catódicos y
calculadoras. Uno de los más empleados es el código de siete segmentos, cuya tabla se ilustra a
continuación:
Decimal S6 S5 S4 S3 S2 S1 S0
0 0 1 1 1 1 1 1
1 0 0 0 0 1 1 0
2 1 0 1 1 0 1 1
3 1 0 0 1 1 1 1
4 1 1 0 0 1 1 0
5 1 1 0 1 1 0 1
6 1 1 1 1 1 0 1
7 0 0 0 0 1 1 1
8 1 1 1 1 1 1 1
9 1 1 0 1 1 1 1

0
5 1
6

4 2
3

Figura 3.10 Código de siete segmentos.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
El diagrama ilustra la numeración de los segmentos, y los segmentos activados de acuerdo al
valor decimal.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 3. Codificación binaria 11

Índice general.

CAPÍTULO 3 ............................................................................................................................................. 1
CODIFICACIÓN BINARIA ..................................................................................................................... 1
3.1. CODIFICACIÓN ................................................................................................................................... 1
3.2. CÓDIGOS NUMÉRICOS ........................................................................................................................ 1
3.2.1. Códigos ponderados .................................................................................................................. 1
Ejemplo 3.1. Código BCD ............................................................................................................................... 2
Ejemplo 3.2. Transmisión de símbolos BCD. .................................................................................................. 2
3.2.2. Distancia ................................................................................................................................... 3
3.2.3. Código reflejado. ....................................................................................................................... 4
3.2.4. Código cíclico ........................................................................................................................... 5
3.2.5. Paridad ...................................................................................................................................... 5
Ejemplo 3.3. Generador y detector de paridad. ................................................................................................ 5
Ejemplo 3.5. ..................................................................................................................................................... 6
Ejemplo 3.6. ..................................................................................................................................................... 7
3.3. CÓDIGOS ALFANUMÉRICOS ................................................................................................................ 8
3.4. CÓDIGOS DE DESPLIEGUE (DISPLAY CODES) ..................................................................................... 9
ÍNDICE GENERAL. ................................................................................................................................... 11
ÍNDICE DE FIGURAS................................................................................................................................. 12

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales

Índice de figuras

Figura 3.1 Código BCD. ................................................................................................................ 2


Figura 3.2 Transmisión serie de un símbolo BCD. ....................................................................... 3
Figura 3.3 Transmisión paralela símbolo BCD. ............................................................................ 3
Figura 3.4 Código Gray para palabras de largo tres. ..................................................................... 4
Figura 3.5 Conversores de código Gray a binario. ........................................................................ 5
Figura 3.6 Generador y detector de paridad. ................................................................................. 6
Figura 3.7 Código octal con paridad impar. .................................................................................. 7
Figura 3.8 Código hexadecimal. .................................................................................................... 7
Figura 3.9 Código ASCII. ............................................................................................................. 8
Figura 3.10 Código de siete segmentos. ........................................................................................ 9

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 4

N-cubos

4.1. Representación de una función booleana en el espacio Bn.

Los n-cubos representan a las funciones booleanas, en espacios n-dimensionales discretos,


como un subconjunto de los vértices de un n-cubo geométrico.

Se representan las variables de la función en ejes coordenados ortogonales. Las variables


booleanas pueden tomar solamente los valores "0" y "1", lo cual define un espacio discreto. Las
representaciones gráficas de los n-cubos están restringidas a valores de n pequeños.

La definición de una función consiste en establecer cuáles de los vértices del n-cubo se mapean
a valor lógico 0, y cuáles otros se mapean a valor lógico 1.

Esta representación permite visualizar los grupos de mintérminos, o subcubos, que considerados
juntos logran una expresión con menos literales

4.2. Dos-cubos.

Para dos variables x1 y x2, se tiene el espacio B2 el que puede considerarse definido por:
{0, 1}X{0, 1} = {(00), (01), (10), (11)}

Cada vértice es un mintérmino.


2-Cubo
10 11
X2

X2 X1

X1 00 01

Figura 4.1. 2-cubo.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Nótese que el 2-cubo tiene 4 vértices. Cada vértice está separado de los adyacentes en distancia
uno. En este caso, cada vértice tiene dos adyacentes. Se dice que estos 4 mintérminos forman
un 2-cubo. Cada lado del cuadrado, de la Figura 4.1, es un 1-cubo, y está formado por dos
vértices adyacentes.

Expresiones en términos de literales tienen directa relación con los subcubos en el espacio que
se esté considerando. Las diferentes expresiones, formadas por un literal: X1, X’1, X2 y X’2 son
1-cubos y corresponden a los lados del cuadrado, de la Figura 4.1; están formadas por dos
mintérminos adyacentes.
Pero dos mintérminos no adyacentes no pueden ser representados mediante un solo literal. Por
ejemplo, para los mintérminos ubicados en los extremos de las diagonales se requieren cuatro
literales para representarlos mediante una expresión. Se tiene: X2X1’+X2’X1; y también cuatro
literales para los otros dos mintérminos que no están a distancia uno: X2X1+X2’ X1’.

4.3. 3-cubos.

En variables x1, x2 y x3. 110 111

X
2 010 011
x3 x2 x1

X 100
101
3

000 001
X
1
Figura 4.2. 3-cubo.

Nótese en la Figura 4.2, que x2 = 1 es la cara superior, y que x2 = 0 define la cara inferior.
Cuando se congela una de las variables de un 3-cubo, se obtiene un 2-cubo.

Por ejemplo: x2 es un 2-cubo y está formado por 4 mintérminos en un plano.

x2 x1' x2 x3' x1 x2 x3' x1' x2 x3 x1 x2 x3

No todos los grupos de cuatro mintérminos diferentes, forman un 2-cubo.

En la Figura 4.3, un vértice es un producto de tres literales; una arista del cubo es una expresión
formada por el producto de dos literales; una cara del cubo puede representarse por una
expresión con un literal.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 4. N-cubos 3

B
_ C
B AB
A
C ___
ABC
A A
3-cubo
__
ABC

Figura 4.3 Caras, lados y vértices en 3-cubos.

4.4. Generalizaciones en n-cubos

Los n-cubos permiten conceptualizar algunas características de las funciones booleanas.

Mediante inducción pueden demostrarse:

a) Un n-cubo tiene 2n vértices.


b) Cada vértice de un n-cubo tiene n adyacentes.
c) Si se fija una variable en un n-cubo, el resto de las (n-1) variables puede representarse por un
cubo de (n-1) dimensiones.
d) Cada mintérmino corresponde a un vértice.
e) Si se fijan k de las n variables, las restantes pueden representarse en un cubo de (n-k)
dimensiones.
f) Un cubo de (n-k) está contenido en el cubo de n dimensiones; se dice por esto que es un
subcubo.
g) Un cubo es un producto de literales.

Recordando que: Un conjunto de k variables booleanas puede tomar 2k valores posibles; y que
n
se pueden efectuar elecciones de k elementos de un grupo total de n, puede concluirse que
k
el número total de subcubos de (n-k) dimensiones incluidos en uno de n es:

n n!
2k 2k
k k !(n k )!

Donde: 0 k n
Con k=n se tienen 2n subcubos de 0 dimensiones; son los mintérminos.

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

Con k=0 se tiene 20 = 1, un cubo de (n-0) dimensiones.

Ejemplo 4.1.

Un 3-cubo contiene:

3
i) 21 = 6 2-cubos. (k=1, n-k=2) Cuatro mintérminos en un plano. Una cara.
1
3
ii) 22 = 12 1-cubos. (k=2, n-k=1) Dos mintérminos adyacentes. Una arista.
2
3
iii) 2 3 = 8 0-cubos. (k=3, n-k=0) Los mintérminos. Un vértice.
3

Ejemplo 4.2. Selecciones de dos objetos de un grupo de 4.

Se tienen cuatro letras. ¿Cuántas selecciones de dos letras pueden hacerse?


Sean las letras: a, b, c, d.

La primera letra puede escogerse de 4 formas, la segunda de 3 formas. Se fija la primera letra y
luego se dan valores a la segunda. En total se tienen 4*3 = 12 permutaciones:

ab, ac, ad, ba, bc, bd, ca, cb, cd, da, db, dc.

Si no se considera diferencia en el orden de ocurrencia de las letras, por ejemplo ab se considera


igual a ba, se tendrán 6 combinaciones:

ab, ac, ad, bc, bd, cd.

El número de combinaciones puede calcularse según el coeficiente binomial:


4 4! 1 2 3 4
= 6
2 2!(4 2)! 1 2 1 2

Ejemplo 4.3. Combinaciones.

Generación de combinaciones en forma sistemática.


Para grupos de 2 variables de un conjunto de 4. Las combinaciones son:
ab
ac
ad
bc
bd
cd

Se forma una lista ordenada de las variables, en el caso del ejemplo: (a, b, c, d).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 4. N-cubos 5
Se fija la primera combinación (ab en el ejemplo) en orden alfabético; luego en la última
posición se van colocando en orden los valores restantes de la lista (c, d). Una vez agotada la
lista, se cambia la posición anterior por el siguiente de la lista (b en el ejemplo, ya no debe
emplearse a); y se vuelve a repetir el proceso, pero con los elementos siguientes (c y d en el
ejemplo). El proceso se repite para las posiciones más significativas.

Ejemplo 4.4.

Determinar los 2-cubos incrustados en un 4-cubo.


El número de combinaciones de 2 variables de un grupo de 4 es 6; este número se obtiene de:
n 4!
6 , con n=4 y k=2.
k 2!(4 2)!
n
En la Figura 4.4, el número de renglones es el de las combinaciones ; y el número de
k
columnas son los valores posibles que pueden tomar k variables ( 2k 22 4 ).

ab ab’ a’b a’b’


ac ac’ a’c a’c’
ad ad’ a’d a’d’
bc bc’ b’c b’c’
bd bd’ b’d b’d’
cd cd’ c’d c’d’

Figura 4.4. 2-cubos en un 4-cubo.

La tabla muestra los 24 2-cubos contenidos en un 4-cubo.

El 2-cubo ab está formado por los siguientes 4 mintérminos:

ab = abcd + abcd’ + abc’d + abc’d’

4.5. Los n-cubos y la minimización de expresiones booleanas.

Los mintérminos pueden agruparse según sub-cubos. Un subcubo es un producto de literales.

Mientras mayores sean las dimensiones de un sub-cubo, menos letras pueden emplearse
para representarlo según una expresión booleana formada por un producto de literales.

Entonces un objetivo de la minimización es encontrar sub-cubos entre los mintérminos que


forman una función. Logrando que esos sub-cubos agrupen el mayor número de mintérminos, y
que a la vez se encuentre el menor número de sub-cubos.

Con m<n, un m-cubo dentro de un n-cubo, se representa con un término formado por (n-m)
literales.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
Si en un espacio Bn, un cubo tiene k literales, entonces es un (n-k)-cubo y está formado por 2n-k
mintérminos. Lo que significa que si k disminuye el número de mintérminos aumenta.

4.6. Relación con la forma suma de productos.

4.6.1. Irredundante.

Antes se definió que un cubo es un producto de literales. También se mostró que una expresión
booleana puede representarse por una suma de productos.

Entonces: Una función f puede representarse por una suma de cubos.


i k
f Ci
i 1
El conjunto de cubos F que representa a f, se denomina una cobertura de f.
F C1 , C2 ,.., Ck
Si Ci F , si F Ci no cubre a f , se dice que el cubo Ci es irredundante (no es redundante).

Ejemplo 4.5.

Sea f(a, b, c) = ab + ac + bc, sea el cubo Ci ab .


Como F Ci {ac, bc} no cubre a f, ya que abc’ no queda cubierto. Entonces Ci ab es
irredundante.
bc ab
b
ac

c abc’

a
f

Figura 4.4a. Cubo irredundante.

4.6.2. Implicante.

Si C es un cubo en Bn , se tiene que: C Bn .


Si C f , donde f es una función Booleana, se dice que el cubo C es un implicante de f.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 4. N-cubos 7
4.6.3. Primo.

Si Ci F , sea Di el cubo que resulta de eliminar el literal j de Ci . El cubo Di tiene el doble


de mintérminos que el cubo Ci .
Si ( F Ci ) Di no cubre a f, entonces el literal j es primo. Esta definición indica que ese
literal debe estar presente en el cubo.
Si todos los literales de un cubo Ci son primos el cubo es primo. Se emplea primo con el
sentido de primordial, de principal.
Una cobertura F es prima si todos sus cubos son primos.

En una cobertura F, un cubo Ci F es primo esencial si contiene un mintérmino que el resto de


los cubos de F no contiene.
Ejemplo 4.6.
Sea f(a, b, c) = ab + ac + bc, sea el cubo Ci ab . Si se elimina b en el cubo anterior, se
tiene: Di a.
Se tiene la cobertura, F {ab, ac, bc} , entonces ( F Ci ) Di {ac, bc} {a} {a, ac, bc}
no cubre a f ya que incluye el mintérmino ab’c’ que no está en f. Esto implica que ab es primo.

Además ab es primo esencial ya que contiene al mintérmino abc’ que los cubos ac y bc no
contienen.
bc ab
b
ac

c a

a
f ab’c’

Figura 4.5. Literal primordial de un cubo.

Si para cuatro variables se tiene que: abc, abc’ y ab son implicantes, entonces ab es implicante
primo. El cubo ab tiene el doble de mintérminos que abc y abc’. El literal c no es primo, y si lo
son los literales a y b.
Puede notarse que bc es primo esencial pues contiene el mintérmino abc, que los otros
implicantes no contienen. También ac es primo esencial.

Un subcubo es primo si no puede agruparse con otros para formar un cubo de mayores
dimensiones. Es decir si ninguno de sus literales puede omitirse.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
4.6.4. Matriz de coberturas.

Pueden anotarse los cubos que son implicantes empleando notación matricial. Las columnas
describen las variables, y en los renglones se representan los cubos. Cuando en el cubo aparece
el literal de la variable, se coloca valor 1 en esa variable; si aparece como literal el complemento
se coloca valor 0 en esa variable. Si la variable no está presente en el cubo, se coloca un – en la
posición de la variable; este símbolo también puede interpretarse representando ambos valores 0
y 1.
Ejemplo 4.7.
Sea f(a, b, c, d) = ac + c’d

a b c d
ac 1 - 1 -
c’d - - 0 1

Figura 4.6. Matriz de Cobertura.

La Figura 4.6a, muestra los cubos: ac, abc y ab’c.

a b c d
ac 1 - 1 -
abc 1 1 1 -
ab’c 1 0 1 -

Figura 4.6a. Expansión de ac.

Puede comprobarse que los cubos abc y ab’c pueden agruparse para formar el cubo ac. En
forma simbólica, el proceso de expansión podría anotarse:

ac = {1,-,1,-} = {1,{0,1},1,-} = {101-, 111-} = ab’c + abc

Las operaciones en sentido inverso muestran la forma en que se fusionan los subcubos: abc y
ab’c en el cubo ac.

La matriz de cobertura es una notación bastante más compacta que la de una tabla de verdad, y
representa a una función booleana por una suma de productos o cubos.

Su mayor ventaja es que modela mediante matrices a los cubos de una función; luego mediante
operaciones matriciales pueden desarrollarse algoritmos para la minimización de funciones
booleanas.

Se desarrolla más sobre esta notación o formato pla, en el Apéndice 3, sobre uso de espresso.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 4. N-cubos 9
4.7. Representación de cubos de dimensiones mayores que tres.

El 3-cubo de la Figura 4.3, puede dibujarse sobre un plano. Puede empujarse una tapa hacia el
plano formado por la tapa opuesta, como se muestra en la Figura 4.7.

Otra forma de dibujarlo es representar dos 2-cubos, a uno de ellos se le agrega un 1 en la


primera posición; al otro un cero. Luego se unen los mintérminos a distancia uno.

110 111

10 11
010 011
00 01
000 001
2-cubo

100 101
3-cubo

Figura 4.7 Abatimiento de un 3-cubo.

El 4-cubo puede representarse también en el espacio, sin embargo, es más sencillo de realizar en
un plano. Para dibujarlo, se escriben dos 3-cubos como el anterior. A un 3-cubo se le agrega un
1 en la primera posición; al otro un cero. Luego se unen los mintérminos a distancia uno.

0110 0111

0010 0011
0000 0001

0100 0101

1100 1101

1000 1001

1010 1011

1110 1111

Figura 4.8. 4-cubo.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
En la Figura 4.8, cada vértice está a distancia 1 de sus adyacentes.

Un 4-cubo contiene:
8 3-cubos. Cada 3-cubo formado por 8 mintérminos.
24 2-cubos. Cada 2-cubo formado por 4 mintérminos.
32 1-cubos. Cada 1-cubo formado por dos mintérminos adyacentes.
16 0-cubos o mintérminos.

Un 4-cubo permite representar cualquier función booleana de 4 variables. Para hacerlo se


marcan los vértices de los mintérminos presentes en la expresión.

Como puede apreciarse en la Figura 4.8, la representación gráfica de cubos con dimensiones
mayores que 3, no resultan prácticas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 4. N-cubos 11

Índice general.

CAPÍTULO 4 ............................................................................................................................................. 1
N-CUBOS.................................................................................................................................................... 1
4.1. REPRESENTACIÓN DE UNA FUNCIÓN BOOLEANA EN EL ESPACIO BN. .................................................. 1
4.2. DOS-CUBOS. ...................................................................................................................................... 1
4.3. 3-CUBOS. ........................................................................................................................................... 2
4.4. GENERALIZACIONES EN N-CUBOS ..................................................................................................... 3
Ejemplo 4.1. ........................................................................................................................................ 4
Ejemplo 4.2. Selecciones de dos objetos de un grupo de 4. ................................................................ 4
Ejemplo 4.3. Combinaciones. .............................................................................................................. 4
Ejemplo 4.4. ........................................................................................................................................ 5
4.5. LOS N-CUBOS Y LA MINIMIZACIÓN DE EXPRESIONES BOOLEANAS. ..................................................... 5
4.6. RELACIÓN CON LA FORMA SUMA DE PRODUCTOS. ............................................................................. 6
4.6.1. Irredundante. ............................................................................................................................. 6
Ejemplo 4.5. ........................................................................................................................................ 6
4.6.2. Implicante. ................................................................................................................................. 6
4.6.3. Primo. ........................................................................................................................................ 7
Ejemplo 4.6. ..................................................................................................................................................... 7
4.6.4. Matriz de coberturas. ................................................................................................................ 8
Ejemplo 4.7. ..................................................................................................................................................... 8
4.7. REPRESENTACIÓN DE CUBOS DE DIMENSIONES MAYORES QUE TRES. ................................................. 9
ÍNDICE GENERAL. ................................................................................................................................... 11
ÍNDICE DE FIGURAS................................................................................................................................. 12

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales

Índice de figuras

Figura 4.1. 2-cubo.......................................................................................................................... 1


Figura 4.2. 3-cubo.......................................................................................................................... 2
Figura 4.3 Caras, lados y vértices en 3-cubos. .............................................................................. 3
Figura 4.4. 2-cubos en un 4-cubo. ................................................................................................. 5
Figura 4.4a. Cubo irredundante. .................................................................................................... 6
Figura 4.5. Literal primordial de un cubo. ..................................................................................... 7
Figura 4.6. Matriz de Cobertura. ................................................................................................... 8
Figura 4.6a. Expansión de ac. ........................................................................................................ 8
Figura 4.7 Abatimiento de un 3-cubo. .......................................................................................... 9
Figura 4.8. 4-cubo.......................................................................................................................... 9

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 5

Mapas de Karnaugh

5.1. Conceptos

Esta representación gráfica de una función booleana ha sido utilizada desde 1953. Permite entender los
principales conceptos sobre minimización de funciones, pero su uso práctico está limitado a un número
relativamente bajo de variables, no más de 5 ó 6.

Existe una relación uno a uno entre un mapa y una tabla de verdad. Una tabla tiene un renglón por cada
mintérmino; y un mapa, como se verá, tiene un casillero o cuadro asociado a cada mintérmino.

El mapa también puede ser considerado una extensión de los diagramas de Venn. Consideremos un diagrama
de Venn para dos variables A y B:

A B

A B’ AB
A’ B

A’ B’

Figura 5.1 Mintérminos de dos variables en un diagrama de Venn.

Si el orden de las variables para la asignación del código de mintérminos es AB, se puede rotular el diagrama
con el número decimal asociado al mintérmino, queda:

A B

2 3 1

0
Figura 5.2 Códigos decimales de mintérminos en un diagrama de Venn.

Puede observarse que resultan áreas desiguales para cada mintérmino; y que el gráfico refleja las adyacencias
entre mintérminos, pero no tan claramente como un 2-cubo, el cual se muestra en la Figura 5.3:

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales

0 A
2

1 3
B
C
Figura 5.3 Mintérminos de dos variables en un 2-cubo.

En un mapa de Karnaugh para cada mintérmino se adopta un área de igual tamaño y forma cuadrada; y
además, estos cuadrados se disponen de tal forma que reflejen las adyacencias. En la Figura 5.4, se ha
superpuesto el 2-cubo, con un mapa de dos variables.
A
B 0 1
0 0 2 A

1 1 3

B f(A,B)
C
Figura 5.4 Mintérminos de dos variables en un mapa de Karnaugh.

La identificación de los cuadros con el número del mintérmino, depende de la elección del orden de las
variables que se haya elegido para la representación decimal equivalente. Por ejemplo, para dos variables A y
B:
B 0 1 B 0 1
A A
0 1 0 2
0 0

2 3 1 3
1 1

f(A, B) f(B, A)

Figura 5.5 Número decimal de los mintérminos y el orden de las variables.

La representación de funciones mediante mapas, se logra marcando los mintérminos presentes con un "1"; los
ceros suelen omitirse.

Por ejemplo, las funciones AND y OR, de dos variables, se representan en mapas según:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 3

B B
A 0 1 A 0 1
0 1 0 0 1
0 0 0 1
2 3 2 3
1 0 1 1 1 1

f1(A,B)=A B f2(A,B)=A + B

Figura 5.6 Representación de funciones de dos variables en un mapa.

Nótese que f1 m3 ; y que f 2 m1 m2 m3 .

Mapa para tres variables.

Para tres variables, en orden: A, B y C, se ilustran los mintérminos en un diagrama de Venn y en un 3-cubo:
B
A B 2 6
4 6 2
0 A
7 4
5 3
3
7
1 0 1 5
C
C

Figura 5.7 Diagrama de Venn para tres variables y un 3-cubo.

La Figura 5.8, muestra un desarrollo de un 3-cubo. Nótese que al abrir las caras del cubo, los mintérminos
que están a distancia uno, quedan adyacentes (exceptuando los de la cara 0451).

Los códigos de los mintérminos quedan ordenados según código Gray. El 3-cubo muestra también la
propiedad del código Gray de ser reflejado, la cara 0231 y la cara 4675 son 2-cubos con A=0 y A=1
respectivamente.

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

B B=1
A=0
2 A=1
6
4 A 2 6
0 0
C=0 4
3
7
1 3 7
5 C=1 5
1
0
C
f(A, B, C)
f(A, B, C)
Figura 5.8 Del 3-cubo al mapa de Karnaugh de tres variables.

La Figura 5.9 muestra el desarrollo de un 3-cubo sobre el mapa de Karnaugh de tres variables:
AB
C 00 01 11 10
0 2 6 4
0

1
1 3 7 5

f(A, B, C)
Figura 5.9 Mapa de Karnaugh de tres variables y un 3-cubo.

Nótese que m0 es adyacente a m1 , m2 y m4 . En un mapa de Karnaugh se considera que los bordes de los
rectángulos son coincidentes, debido a la propiedad del código Gray de ser cíclico. Los cuatro mintérminos
de los extremos pueden visualizarse como muestra la Figura 5.10:

Figura 5.10 Bordes en un mapa de Karnaugh.

El mapa para tres variables puede obtenerse con dos mapas de dos variables.
Resulta práctico colocar en un borde de cada cuadrado el número del mintérmino. De esta forma, resulta
cómodo expresar una forma canónica en un mapa.

5.2. Formas de Mapas

A continuación se ilustran mapas, para 3, 4 y 5 variables. Los valores de columnas y renglones se ordenan
empleando código Gray, para reflejar mejor las adyacencias. El orden de las variables, para la representación
decimal equivalente del mintérmino, figura en la base de cada mapa.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 5

AB
CD 00 01 11 10
0 4 12 8
AB 00
C 00 01 11 10
0 2 6 4 1 5 13 9
0 01

1 3 7 5 3 7 15 11
1 11

2 6 14 10
f(A, B, C) 10

Figura 5.11 Mapas de Karnaugh para tres y cuatro variables.


f(A, B, C, D)
La Figura 5.12 muestra una forma alternativa de identificar los mintérminos, indicando las zonas donde las
variables toman valor uno.
A

B
Figura 5.12 Mapa de Karnaugh para tres variables.

Nótese que el mapa de 5 variables se obtiene a partir de dos mapas de cuatro variables. A uno se le antecede
un cero en la codificación de las columnas y al otro un 1.

La Figura 5.13 muestra un mapa para 5 variables codificado en Gray.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales

ABC
000 001 011 010 110 111 101 100
DE
0 4 12 8 24 28 20 16
00 0

1 5 13 9 25 29 21 17
01

3 7 15 11 27 31 23 19
11

2 6 14 10 26 30 22 18
10

f(A, B, C, D, E)

Figura 5.13 Mapa de Karnaugh de cinco variables, codificado en Gray.

Sin embargo esta forma de generar mapas, no refleja bien las adyacencias.
En un mapa de cinco variables cada mintérmino tiene cinco adyacentes, pero sólo pueden dibujarse cuatro
cuadrados adyacentes en un lado a un cuadrado. Por ejemplo, en la Figura 5.13, se visualiza bien que el
mintérmino 5 tiene adyacentes los mintérminos: 1, 4, 7 y 13; pero no tan claramente que también es
adyacente al 21.

Otra forma es una representación de mapas apilados en el espacio, como se muestra en la Figura 5.14. De
esta forma puede visualizarse las adyacencias en diferentes planos. En esta representación se visualiza mejor
que el mintérmino 5 es adyacente con el 21.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 7

A=1 100 101 111 110


16 20 28 24
0
A=0
17 21 29 25

19 23 31 27
ABC

DE 000 001 011 010


18 22 30 26
0 4 12 8
00

1 5 13 9
01 f(A, B, C, D, E)

3 7 15 11
11

2 6 14 10
10

Figura 5.14 Mapa de Karnaugh apilable de cinco variables.

Mapas para 6 o más variables son difíciles de manejar.

5.3. Manejo de Mapas

Los siguientes conceptos son útiles en la manipulación de mapas:

a) Un mapa de n variables tiene 2 n cuadros.


b) Cada bloque o casillero de un mapa de n variables, tiene n bloques adyacentes; ya que los códigos
binarios de los n mintérminos adyacentes están a distancia uno.
c) Un bloque está asociado a un producto o cubo que contiene las n variables, pudiendo éstas estar o no
complementadas.
d) Agrupando dos bloques adyacentes, se logra un producto de (n-1) variables.
e) Los bloques pueden agruparse en un número que es una potencia de dos; es decir: 2, 4, 8, 16, etc.
f) Agrupando 2 k bloques, que forman un k-cubo, la expresión booleana asociada es la que resulta de eliminar
k variables de las n correspondientes a un mintérmino.

Los siguientes mapas ilustran el concepto de agrupaciones de números pares de mintérminos, que forman
subcubos.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales

AB AB
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 0 0 1 1 00 0 0 1 0
1 5 13 9 1 5 13 9
01 0 0 1 1 01 0 0 1 0
3 7 15 11 3 7 15 11
11 0 0 1 1 11 0 0 1 0
2 6 14 10 2 6 14 10
10 0 0 1 1 10 0 0 1 0

f(A, B, C, D)=A f(A, B, C, D)=AB

Figura 5.15 Agrupaciones de 8 y 4 mintérminos en un Mapa de Karnaugh de cuatro variables.

AB AB
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 0 0 0 0 00 0 0 0 0
1 5 13 9 1 5 13 9
01 0 0 0 0 01 0 0 0 0
3 7 15 11 3 7 15 11
11 0 0 1 0 11 0 0 1 0
2 6 14 10 2 6 14 10
10 0 0 1 0 10 0 0 0 0

f(A, B, C, D)=ABC f(A, B, C, D)=ABCD

Figura 5.16. 2-cubo y mintérmino en un Mapa de Karnaugh de cuatro variables.

Para n = 4:
a) Un mintérmino se expresa como un producto de 4 variables.
b) Una agrupación de 2 mintérminos, que forman un 1-cubo (o que son adyacentes), puede expresarse en tres
variables.
c) Una agrupación de 4 mintérminos, que forman un 2-cubo, se expresa en dos variables.
d) Una agrupación de 23 mintérminos, que forman un 3-cubo, reduce en 3 las variables; es decir, esta
agrupación puede expresarse como una variable.
e) Una agrupación de los 2 4 mintérminos (forman un 4-cubo), puede expresarse como 1. Es decir, en 0
variables.
f) Nótese que bajo el mapa suele escribirse la función que éste representa.
g) La lectura de la expresión asociada a un grupo, se efectúa por la intersección de las zonas asociadas a las
variables.
h) El número de grupos de un literal, en caso de n variables, aplicando la fórmula desarrollada en 4.4, es:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 9

n n!
21 2 2n
1 1!(n 1)!

Para n=4, se tienen 8 grupos de un literal:

A, B, C , D, A , B , C , D

i) Los grupos de 2 literales, en caso de n variables, está dado por:

n n!
22 22 2n(n 1)
2 2!(n 2)!

Con n=4, se tienen 24 grupos de dos literales:

AB, A'B, AB', A'B'


n AC, A'C, AC', A'C'
AD, A'D, AD', A'D'
2 BC, B'C, BC', B'C'
BD, B'D, BD', B'D'
CD, C'D, CD', C'D'

22
j) Los grupos de k literales, cuando se tienen n variables, quedan dados por:
Con k n :
n!
2k
k!(n k )!
Cuando k es igual a n, se logra el número de mintérminos.
k) Debido al alto número de subcubos, es importante ejercitarse en ubicarlos en el mapa.
Los menos evidentes son aquellos que se encuentran en los bordes.
Ejemplos de estos casos, para n=4: b’d’, b’c, a’b’d’, a’bd’

5.4. Uso de mapas

La obtención del mapa, a partir de una forma canónica es asunto trivial, si los casilleros han sido rotulados
con los números decimales de los mintérminos.
La obtención del mapa, a partir de una forma “suma de productos” puede obtenerse empleando los conceptos
desarrollados en manejo de mapas en el punto 5.3, para representar los cubos de cada producto.

Aplicando la inducción perfecta los mapas pueden emplearse para demostrar teoremas, y también para
verificar alguna proposición del álgebra de Boole.

La principal aplicación de los mapas es la minimización de funciones, realizada en forma manual, lo que
resulta conveniente para 5 o menos variables.

Ejemplo 5.1. Mapa a partir de los mintérminos.

Obtener el mapa de: f ( A, B, C ) m(1, 2,5)

Basta marcar con un uno los mintérminos presentes. Se obtiene:

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales

AB
C 00 01 11 10
0 2 6 4
0 1
1 3 7 5
1 1 1

f ( A, B, C ) m(1, 2,5)

Figura 5.17. Mapa de Karnaugh a partir de lista de mintérminos.

Ejemplo 5.2. Mapa a partir de expresión.

Obtener el mapa de la siguiente función:

f ( A, B, C ) A ' C BC ' A ' BC

Para tres variables: Un mintérmino tiene 3 literales; una agrupación de dos mintérminos adyacentes tiene una
expresión dependiente de dos variables.

Para aclarar el método, se dibujará un mapa para cada producto. Con un poco de experiencia, todos los
productos pueden dibujarse en el mismo mapa.

Para los cubos: A’C y B’C se obtienen:

AB AB
C 00 01 11 10 C 00 01 11 10
0 2 6 4 0 2 6 4
0 0 1 1
1 3 7 5 1 3 7 5
1 1 1 1

f1(A, B, C)=A'C f2(A, B, C)=BC'

Figura 5.18. Un mapa de Karnaugh por producto.

Y para A'BC: Finalmente:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 11

AB AB
C 00 01 11 10 C 00 01 11 10
0 2 6 4 0 2 6 4
0 0 1 1

1 3 7 5 1 3 7 5
1 1 1 1 1

f3(A, B, C)=A'BC f(A, B, C)=A'C+BC'+A'BC

Figura 5.19. Mapa de Karnaugh de un mintérmino y de la función completa.

El mapa anterior permite escribir la forma canónica:


f ( A, B, C ) m(1, 2,3, 6)

Nótese que el producto A'BC está incluido en A'C


Los mintérminos se marcan sólo una vez. Esto por idempotencia, ya que: mi mi mi .

Ejemplo 5.3. Uso de mapas en la demostración de teoremas.

Dadas dos funciones, si se desea probar su equivalencia, la aplicación de los mapas simplifica largas
demostraciones algebraicas. Sólo es preciso obtener un mapa para cada una de las funciones, y luego
comparar la igualdad de sus formas canónicas.

Demostrar el teorema de De Morgan:


(a b) ' a ' b '

La expresión del lado derecho tiene el mapa que figura a la izquierda en la Figura 5.20. A la derecha de la
Figura 5.20 se tiene el mapa para el OR de las variables.
A A
0 1 B 0 1
0 2 0 2
0 1 0 1
1 3 1 3
1 1 1 1 1

f1(A,B)=A'B' f2(A,B)=A+B

Figura 5.20. Mapas de Karnaugh en la demostración de teoremas.

Negando el mapa para la función OR, se obtiene idéntico mapa al de f1. Entonces f1 y f2’ son equivalentes por
tener igual forma canónica, lo cual demuestra por inducción completa la proposición, conocida como teorema
de De Morgan.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
5.5. Minimización usando mapas de Karnaugh.

La simplificación de expresiones booleanas mediante reducciones puramente algebraicas presenta


dificultades, ya que no puede encontrarse un procedimiento sistemático general, para efectuar la reducción.
Además se presenta la dificultad de cómo saber que se ha encontrado la forma mínima. Los mapas, muestran
la estructura interna de la función, facilitando la agrupación en subcubos.

Se han desarrollado herramientas de diseño lógico que permiten efectuar minimizaciones para funciones de
una o varias variables. Sin embargo los algoritmos y heurísticas en que están basados no son fáciles de
entender, ya que conceptualizan aspectos de las funciones booleanas que son más adecuadas a un tratamiento
algorítmico, mediante un computador.

A continuación desarrollaremos métodos gráficos, basados en mapas, y que están limitados a un número
reducido de variables (no más de 6), ya que su exposición permitirá entender los métodos automáticos, así
como también permitir diseñar, con papel y lápiz, algunos casos sencillos.

5.5.1. Minimización como suma de productos.

Podemos plantear el problema de minimización diciendo que se desea obtener, a partir de una expresión
booleana, una forma equivalente que contenga un número mínimo de términos, y tal que cada término tenga
el mínimo número de literales posible.

El método consiste en dibujar el mapa a partir de la función, y luego leer desde el mapa agrupando
convenientemente los mintérminos presentes.
Deben respetarse las siguientes reglas:

Deben agruparse tantos bloques como sea posible; ya que mientras mayor sea la agrupación, menor será el
número de literales.

Debe formarse el menor número de agrupaciones de bloques; ya que a menor número de grupos, se tendrá
menor número de términos.

Un bloque puede ser usado muchas veces, en distintas agrupaciones; pero a lo menos una vez.

Una técnica consiste en formar primero los grupos con menor número de adyacencias. Por esta razón, los
primeros mintérminos que deben marcarse son aquellos que no tienen adyacencias.
Ejemplo 5.4. Minimización a partir de los mintérminos
Se tiene:
AB
C 00 01 11 10
0 2 6 4
0 1 1 1
1 3 7 5
1 1 1

f(A, B, C)= (0,2,3,6,7)


Figura 5.21. Mapa de Karnaugh a partir de los mintérminos.

Si se considera primero la agrupación de los mintérminos (2, 3, 6, 7) que puede leerse como B, podría inducir,
en caso de mapas complejos, a no agrupar convenientemente al mintérmino A’B’C’, que sólo tiene una
adyacencia.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 13

Considerando formar grupos mayores con los mintérminos que tienen menos adyacencias quedan las
siguientes agrupaciones de mintérminos: (0, 2) y (2, 3, 6, 7).

AB
C 00 01 11 10
A’C’ 0 2 6 4
0 1 1 1 0
1 3 7 5
1 0 1 1 0
B

f(A, B, C)=B+A’C’
Figura 5.22. Agrupaciones en el Mapa de Karnaugh.

Veremos a continuación un ejemplo más complejo.


Ejemplo 5.5. Formación de grupos de mintérminos en minimización basada en mapas.
Se desea minimizar: f(A, B, C, D) = m(0, 1, 3, 8, 9, 11, 13, 14)

Dibujando un mapa para cuatro variables, se logra:


AB
CD 00 01 11 10
0 4 12 8
00 1 1
1 5 13 9
01 1 1 1
3 7 15 11
11 1 1
2 6 14 10
10 1

f(A, B, C, D)= (0,1,3,8,9,11,13,14)


Figura 5.23. Mapa de Karnaugh con los mintérminos.

Se observa que:
m14 no tiene mintérminos adyacentes. Por esta razón no puede agruparse.
m13 tiene un mintérmino adyacente. Por lo tanto, sólo puede agruparse con m9 .
m0 , m3 , m8 y m11 tienen dos mintérminos a distancia uno.
m1 tiene 3 mintérminos adyacentes.
m9 tiene 4 mintérminos a distancia uno.

Los grupos que forman sub-cubos suelen marcarse en al mapa, encerrando los mintérminos del grupo con una
línea cerrada.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
Ya se tienen los grupos:( m14 ) y ( m9 y m13 ); puede formarse ( m0 , m1 , m8 , m9 ), con el objeto de hacer el grupo
lo mayor posible.

Sólo falta considerar m3 y m11 , que a su vez forman un grupo. Sin embargo, conviene efectuar la
agrupación: ( m1 , m3 , m9 , m11 ), que emplea m1 y m9 , ya considerados, con el objeto de hacer el grupo lo mayor
posible.

Resulta finalmente: f(A,B,C,D)=ABCD’+AC'D+B’D+B’C’


AB
CD 00 01 11 10
0 4 12 8
00 1 0 0 1
1 5 13 9
01 1 0 1 1
3 7 15 11
11 1 0 0 1
2 6 14 10
10 0 0 1 0

f(A,B,C,D)=ABCD’+AC'D+B’D+B’C’

Figura 5.24. Mínimo número de grupos.

Ejemplo 5.6.
Minimizar: f(A, B, C, D) = m(0, 1, 2, 7, 8, 9, 10, 15)

AB
CD 00 01 11 10
0 4 12 8
00 1 0 0 1

1 5 13 9
01 1 0 0 1

3 7 15 11
11 0 1 1 0

2 6 14 10
10 1 0 0 1

f(A, B, C, D)=BCD+B’D’+B’C’

Figura 5.25. Solución ejemplo 5.6.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 15
Ejemplo 5.7.
Minimizar: f(A, B, C, D, E) = m(0,2,4,7,10,12,13,18,23,26,28,29).
ABC
000 001 011 010 100 101 111 110
DE
0 4 12 8 16 20 28 24
00 1 1 1 0 0 0 0 1 0

1 5 13 9 17 21 29 25
01 0 0 1 0 0 0 1 0

3 7 15 11 19 23 31 27
11 0 1 0 0 0 1 0 0

2 6 14 10 18 22 30 26
10 1 0 0 1 1 0 0 1

f(A, B, C, D, E)=B’CDE+A’B’D’E’+BCD’+C’DE’

Figura 5.26. Solución ejemplo 5.7.

Nótese que la representación es de sub-mapas apilados, pero dibujados en un plano.


Se tienen los siguientes grupos: (7,23); (0,4); (12,13,28,29); (2,10,18,26)

5.5.2. Minimización en forma de producto de sumas.

El método consiste en desarrollar el mapa para f, a partir de la forma canónica. Luego se obtiene el mapa para
f negado, de esta forma, se puede leer el producto de maxtérminos de f, como la suma de mintérminos de f’.
Así se obtiene la forma mínima como suma de productos. Después se obtiene por involución, la función f; y
finalmente se aplica De Morgan.

Para una función dada, siempre deberán obtenerse los dos diseños; es decir la forma suma de productos y
producto de sumas, ya que no es posible obtener una relación que indique cual de las dos formas será
mínima.
Ejemplo 5.8
Para el mapa de la Figura 5.27, se pueden obtener las formas canónicas:
La suma de mintérminos, resulta:

f(A, B, C, D)= m(0, 1, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15)

La suma de maxtérminos, puede obtenerse según:

f’ = m(2, 5, 6, 7) = m2 + m5 + m6 + m7

Aplicando De Morgan, resulta:

f = m2’ m5’ m6’ m7’ = M2 M5 M6 M7= M(2, 5, 6, 7)


La función f, puede expresarse como suma de productos según:

f(A, B, C, D) = A + C’D’ + B’D con 5 literales.

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales
También del mapa de f’, puede leerse, como suma de productos, según:

f ’ = A’BD + A’CD’

Aplicando De Morgan, puede expresarse como producto de sumas según:

f(A, B, C, D) = (A + B’ + D’)(A + C’ + D) con 6 literales.


AB
CD 00 01 11 10
0 4 12 8
00 1 1 1 1
1 5 13 9
01 1 0 1 1
3 7 15 11
11 1 0 1 1
2 6 14 10
10 0 0 1 1

Figura 5.27. Solución ejemplo 5.8.

Resulta mínima la forma suma de productos.

Ejemplo 5.9.
Minimizar, según producto de sumas: f(A,B,C,D) = (4,5,7,8,10,11,12,13,15)

Para f(A,B,C,D) se tiene:

AB
CD 00 01 11 10
0 4 12 8
00 0 1 1 1
1 5 13 9
01 0 1 1 0
3 7 15 11
11 0 1 1 1
2 6 14 10
10 0 0 0 1

Figura 5.28. Mapa con los mintérminos de ejemplo 5.9

Luego, para f ' el mapa resulta:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 17

AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
3 7 15 11
11 1
2 6 14 10
10 1 1 1

f '(A, B, C, D)
Figura 5.29. Mapa con los mintérminos de f’

Formando los siguientes grupos, en el mapa: (0, 1, 3, 2); (6, 14); (1, 9).

Se obtiene: f’= A’B’ + BCD’ + B’C’D


Por involución: (f’)’ = f = (A’B’ + BCD’ + B’C’D)’
Por De Morgan: f = (A’B’)’ (BCD’)’ (B’C’D)’

Finalmente, por De Morgan:


f = (A +B) (B’ +C’ +D) (B +C +D’)

Con un poco de práctica, pueden agruparse los ceros en el primer mapa, y leer directamente las sumas,
complementando las variables.

5.5.3. Condiciones superfluas (don't care)

Algunas funciones booleanas son completamente especificadas para todas las combinaciones posibles de sus
variables.

Se denominan funciones incompletamente especificadas cuando se establece que el valor de la función es "1"
para ciertas combinaciones, "0" para otras y un valor cualquiera para el resto.

Los mintérminos pueden agruparse en tres conjuntos: conjunto que activa la función (on set), conjunto que
desactiva la función (off set) y conjunto de mintérminos superfluos (dc set).

Los mintérminos que pueden ser especificados con valor "1" ó "0"; es decir: con cualquier valor, se
denominan “condiciones superfluas”, o que “no importan” (don’t care).

Ejemplo de esta situación, es cuando existe dependencia entre las variables de entrada; ésta puede originar
que nunca se produzcan ciertas combinaciones de valores de las variables de entrada.

La presencia de estas condiciones flexibiliza el diseño de circuitos combinacionales; ya que posibilita


aumentar el tamaño de las agrupaciones, mediante la asignación de valor "1" a ciertas condiciones superfluas
y "0" a otras, según convenga para aumentar los grupos de mintérminos que forman sub-cubos.

Debe tenerse presente que no deben formarse agrupaciones que sólo contengan términos superfluos.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
En el mapa, las condiciones superfluas pueden marcarse con una "d" o con una “X”. En algunos textos se
emplea el símbolo ; el símbolo original representaba un "1" sobre un "0".
Ejemplo 5.10.
Se tiene f(A,B,C) = m(0,5) + d(1,4,7).

En un mapa:
AB
C 00 01 11 10
0 2 6 4
0 1 d
1 3 7 5
1 d d 1

f(A, B, C)

Figura 5.30. Mapa con condiciones superfluas.

Sin emplear las condiciones superfluas, se tiene: f = A’B’C’ + AB’C, con 6 literales.

Puede agruparse (0,1) y (5,7). En este caso: f = A’B’ + AC, con 4 literales.

Sin embargo, la agrupación más conveniente es (0, 1, 4, 5), y así se obtiene, con un literal:

f = B’

Nótese que: f(A,B,C) = (2,3,6) D(1,4,7) es decir, los maxtérminos superfluos tienen iguales
números que los mintérminos superfluos.

También se tienen:
f’(A, B, C) = m(2, 3, 6) + d(1, 4, 7)
f’(A, B, C) = M(0, 5) D(1, 4, 7)

Si en el ejemplo anterior, se minimiza la función f, como suma de productos, se logra: f’=B. Obteniendo un
resultado igual al anterior.
AB
C 00 01 11 10
0 2 6 4
0 1 1 d

1 3 7 5
1 d 1 d

f '(A, B, C)
Figura 5.31. Mapa con condiciones superfluas de f’

Debido a la presencia de condiciones superfluas, no se cumplirá siempre que:

f = (f ')'

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 19

No obstante, tanto f como (f ')' contienen los mintérminos especificados en la lista de f.


Ejemplo 5.11.
Puede comprobarse que f y (f ')' no son iguales, para la siguiente función que contiene mintérminos
superfluos:

f(A, B, C) = m(0, 1, 5) + d(2, 6) = A’C’ + B’C


f’(A, B, C) = m(3, 4, 7) + d(2, 6) = B + AC’
f’’(A, B, C) = ( B + AC’)’ = B’ (AC’)’ = B’(A’+C) = A’B’ + B’C A’C’ + B’C

Ejemplo 5.12.
Diseñar traductor de código BCD a exceso-3. El código exceso-3, representa los dígitos decimales mediante
su equivalente binario más tres. Tiene propiedades aritméticas que lo hacen útil en manipulaciones.

Nótese que se tiene un sistema con cuatro entradas y cuatro salidas: Se ha asumido que la cifra BCD se
dispone en paralelo, y se desea lograr la equivalente exceso-3, también en paralelo.

Se tiene:

BCD exceso-3
0 0000 0011
1 0001 0100
2 0010 0101
3 0011 0110
4 0100 0111
5 0101 1000
6 0110 1001
7 0111 1010
8 1000 1011
9 1001 1100
wxyz f 4 f3 f 2 f1

Figura 5.32. Tabla traductor BCD a Exceso-3.

Si se conoce que en la entrada se tendrá una cifra BCD, entonces algunas combinaciones de las variables w,
x, y, z deben tratarse como condiciones superfluas. Es el caso de los mintérminos con equivalentes binarios
1010 hasta 1111. En un mapa, esto puede anotarse:

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales

wx
yz 00 01 11 10
0 4 12 8
00 d
1 5 13 9
01 d
3 7 15 11
11 d d
2 6 14 10
10 d d

f(w, x, y, z)
Figura 5.33. Mapa de las condiciones superfluas del ejemplo 5.13.

Las expresiones canónicas para las funciones de salida son:

f1 = m(0,2,4,6,8) + d(10,11,12,13,14,15)
f2 = m(0,3,4,7,8) + d(10,11,12,13,14,15)
f3 = m(1,2,3,4,9) + d(10,11,12,13,14,15)
f4 = m(5,6,7,8,9) + d(10,11,12,13,14,15)

Minimizando, para cada una de las funciones por separado, se logra para el sistema de múltiples salidas, con
17 entradas:
f1 = z’
f2= y’ z’ + yz
f3= x’y + x’z + xy’z’
f4 = x’w +yw’z’

Puede apreciarse que en un sistema de salidas múltiples existe la posibilidad de ahorrar material: usando
parte o la totalidad de los productos de una función como partes de otra. Ejemplo de esto es el factor y’z' de
f2, que puede usarse en f3.

Una minimización multinivel con cuatro nodos, resulta con 16 literales:


f4 = w + x y + x z
f3 = f4' x + f4' y + f1' x'
f2 = f1 y' + f1' y
f1 = z'

Con un nodo adicional, resultan 13 literales.


f4 = x*nodo + w;
f3 = x*nodo’ + x’*nodo;
f2 = y*z + nodo’;
f1 = z’;
nodo = z + y;

Si se presenta una cifra BCD inválida en la entrada, la salida también será errónea. Para usar confiablemente
el circuito combinacional, diseñado empleando condiciones superfluas, debe asegurarse que la entrada sea
una cifra BCD válida.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 21
Problemas resueltos.

Problema 5.1. Comparador binario.

Primero es conveniente definir las variables que se emplearán:


Se tienen, como entradas, dos números (N1 y N2) de dos cifras binarias cada uno.
Las salidas o los resultados de la comparación serán tres señales que denominaremos: Lt por less than (menor
que), Eq por equal (igual), y Gt por greather than (mayor que).
Asumiremos que la cifra más significativa de N1 será A, y B la menos significativa; la cifra más significativa
de N2 será C, y D la menos significativa.

Un diagrama general de las entradas y salidas del módulo combinacional que se diseñará es el siguiente:

N1 A LT AB<CD
B
EQ AB=CD
C
N2
D GT AB>CD

Figura P5.1 Diagrama funcional comparador.

A continuación se especifica el diseño mediante una tabla de verdad. Ésta tiene 16 renglones.

Cuando N1 igual a N2 se activa la señal EQ.


Cuando N1 es mayor que N2 se activa la señal GT.
Cuando N1 es menor que N2 se activa la señal LT.

A B C D LT EQ GT
0 0 0 0 0 1 0
0 0 0 1 1 0 0
0 0 1 0 1 0 0
0 0 1 1 1 0 0
0 1 0 0 0 0 1
0 1 0 1 0 1 0
0 1 1 0 1 0 0
0 1 1 1 1 0 0
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 0 1 0
1 0 1 1 1 0 0
1 1 0 0 0 0 1
1 1 0 1 0 0 1
1 1 1 0 0 0 1
1 1 1 1 0 1 0

Figura P5.2. Tabla del comparador.

A continuación se plantean los 3 mapas de 4 variables y se efectúa la minimización, se obtienen:


LT = A'B'D + A'C + B'CD

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales
EQ = A'B'C'D' + A'BC'D + ABCD + AB'CD' = XNOR(A, C) XNOR(B, D)
GT = BC'D' + AC' + ABD'

Problema 5.2. Multiplicador de dos números binarios de dos cifras cada uno.

Primero se definen las variables que se emplearán:


Los resultados de la multiplicación son cuatro señales que denominaremos: P3 el bit más significativo del
producto, hasta P0 que será el bit menos significativo del producto. También asumiremos que la cifra más
significativa de N1 será A, y B la menos significativa; la cifra más significativa de N2 será C, y D la menos
significativa. Un diagrama general de las entradas y salidas del módulo combinacional que se diseñará es el
siguiente:

A
N1 P3
B P2
C P1
N2 P0
D

Figura P5.3. Diagrama funcional multiplicador.

A continuación se especifica el diseño mediante una tabla de verdad. Ésta tiene 16 renglones.

A B C D P3 P2 P1 P0
0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 1 0 0 0 0
0 1 0 0 0 0 0 0
0 1 0 1 0 0 0 1
0 1 1 0 0 0 1 0
0 1 1 1 0 0 1 1
1 0 0 0 0 0 0 0
1 0 0 1 0 0 1 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 1 0
1 1 0 0 0 0 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 1 1 0
1 1 1 1 1 0 0 1

Figura P5.4. Tabla de verdad de multiplicador.

Luego se plantean 4 mapas de 4 variables. Después se minimiza, y se obtienen:


P3 = ABCD
P2 = AB’C + ACD’
P1 = AB'D + AC'D + BCD' + A'BC
P0 = BD

Problema 5.3. Incrementador en uno de cifra BCD.

Se asume que en la entrada se tiene una cifra BCD válida.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 23
Primero se plantean las variables que se emplearán.
La entrada son cuatro señales que denominaremos: E3 el bit más significativo de la cifra BCD, hasta E0 que
será el bit menos significativo. La salida son cuatro señales que denominaremos: S3 el bit más significativo
de la cifra BCD aumentada en uno, hasta S0 que será el bit menos significativo.

E3 S3
E2 S2
E1 S1
E0 S0

Figura P5.5. Diagrama funcional incrementador BCD.

Se asume que cuando a 9 se le suma 1 se obtiene cifra decimal 0. Se descarta la reserva.


Se completa la tabla de verdad.

E3 E2 E1 E0 S3 S2 S1 S0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0
0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 0 1 0 0 1
1 0 0 1 0 0 0 0
1 0 1 0 d d d d
1 0 1 1 d d d d
1 1 0 0 d d d d
1 1 0 1 d d d d
1 1 1 0 d d d d
1 1 1 1 d d d d

Figura P5.6. Tabla de verdad del incrementador BCD

Se plantean 4 mapas de 4 variables y se minimiza, empleando condiciones superfluas, se obtienen:


S3 = E2 E1 E0 + E3 E0'
S2 = E2 E1' + E2 E0' + E2' E1 E0
S1 = E3' E1' E0 + E1 E0'
S0 = E0'

Problema 5.4. Semisumador binario.

Se denomina semi-sumador a un dispositivo que permite sumar, en binario, dos variables de entrada de un bit
(Ai y Bi). El sistema debe generar dos salidas: la suma (Si) y la reserva de salida (Ci carry).
La tabla de verdad resulta:

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales

Ai Bi Ci Si
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

Figura P5.7. Tabla de verdad del semisumador

Del mapa pueden leerse las siguientes ecuaciones:


Si = Ai’Bi + AiBi’ = Ai Bi
Ci = Ai Bi
Ai
Si
Bi

Ci
Figura P5.8. Implementación semisumador.

Problema 5.5. Sumador completo.

Si se desea sumar variables de varios bits se requiere un sumador completo, que tenga una tercera entrada
denominada reserva de entrada (carry-in):

Ai Bi Ci

Ci+1 Si
Figura P5.9. Diagrama funcional sumador completo de un bit.

Se tiene la siguiente tabla de verdad:

Ai Bi Ci Ci+1 Si
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1

Figura P5.10. Tabla de verdad del sumador completo de un bit.

El esquema de la Figura P5.11, muestra una suma de cuatro bits en base a la conexión de cuatro sumadores
completos:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 25

A3 B3 C3 A2 B2 C2 A1 B1 C1 A0 B0 C0

C4 S3 C3 S2 C2 S1 C1 S0
Figura P5.11. Diagrama funcional sumador completo de cuatro bits.

Las ecuaciones, para la tabla de la Figura P5.10, resultan:


Si = C i A i B i
C i +1 = B i C i + A i C i + A i Bi = C i (A i + B i) + A i B i

Un esquemático que representa a las ecuaciones anteriores se muestra en la Figura P5.12.

Ai Ai
Bi Ci
Ci
Si Ci+1
Ci Bi

Ai
Bi

Figura P5.12. Red para sumador completo.

Un sumador completo, puede implementarse mediante dos semi-sumadores, observando que:


C i +1 = B i C i + A i C i + A i Bi = C i (A i + B i) + A i B i = C i (A i B i) + A i B i

Ai Ai Bi Ai Bi Ci
Bi Si

Ai Bi (Ai Bi )Ci

Ci+1
Ci

Figura P5.13. Sumador completo mediante dos semisumadores.

Problema 5.6. Detección y corrección de errores en bits. Hamming.

En sistemas digitales, determinadas acciones sobre los datos colocan la integridad de éstos en peligro.
Ejemplo de procesos que pueden generar errores son: El almacenar bits en memorias dinámicas o en medios
magnéticos (superficies de discos flexibles o rígidos, que pueden dañarse físicamente o contaminarse por
interferencia en la escritura o lectura); la transmisión de bits mediante conductores de cobre, fibra o en forma
inalámbrica a través de grandes distancias.

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales
Debe contemplarse en el diseño de sistemas digitales que estos errores pueden producirse y que debe
encontrarse procedimientos para tratarlos.
La idea básica es que cuando se almacena o envía información se le agregue bits adicionales, denominados de
redundancia.

La detección de errores emplea los bits adicionales cuando se accesa o recibe información para determinar si
existe corrupción de los datos. En la corrección de errores, la información adicional debe permitir detectar y
corregir los errores, dentro de ciertos límites.

La detección requiere menos bits redundantes, pero si se detecta un error, el receptor solicita que se vuelvan a
enviar los datos, lo cual agrega tiempo de latencia y complejidad.
En la corrección se tiene menor latencia, ya que el proceso de corrección es una parte de la lógica que recibe
los datos; y sólo si los errores sobrepasan los límites de la corrección, debe solicitarse el reenvío.

Existen procedimientos para detectar y corregir errores simples (paridad, Hamming) y múltiples (códigos de
redundancia cíclica).
Detección de un error simple.
Se envían n bits: b0, b1, b2, ..., bn-1. Se desea encontrar el modo de detectar un error de un bit.
Una solución es enviar (n+1) bits, el bit n-avo es uno si existe un número impar de unos en los n bits de
datos. Por esto al bit redundante se lo denomina de paridad (par en este caso), ya que la información más el
bit adicional contienen una cantidad par de unos.
Para dos variables booleanas, el or exclusivo de ellas es cero si el número de unos es par; y uno si es impar.

Para las n variables, la forma de computar (generar) el bit de paridad es mediante la siguiente ecuación
lógica:
bn = b0 b1 b2 ...bn-1

Si los datos se disponen en paralelo (todos al mismo tiempo) puede determinarse la paridad mediante un árbol
combinacional mediante xors. Si los datos se tienen en serie, basta una compuerta xor y un registro(o
memoria) de un bit.

Para verificar la paridad, en el receptor se recalcula:


R = b0 b1 b2 ...bn-1 bn

Si (R = =1) se detecta un error simple en un bit, y se toma alguna medida.


Se emplea paridad en algunas situaciones, por ejemplo: en transmisión serial, en arreglos de memoria donde
cada bit de los n, se almacena en un chip diferente.
Corrección de un error simple.
Se envían n bits: b0, b1, b2, ..., bn-1. Se desea encontrar el modo de detectar y corregir un error en un bit.

Códigos de Hamming (1950).


Se describe el procedimiento desarrollado por Hamming.

Se toman subconjuntos traslapables de b0, b1, b2, ..., bn-1.


Se calcula un bit de paridad para cada subconjunto.
Se envían m bits, n de datos y k de paridad.
Con suficientes bits de paridad puede identificarse el bit errado; ya que el receptor calcula una palabra de
chequeo, tal que si es cero, no hay errores; en caso de existir un error, el valor de la palabra de chequeo indica
la posición del bit errado. Para corregir el error, se complementa el bit en la posición indicada por la palabra
de chequeo.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 27
Se tienen:
n bits de datos: b0, b1, b2, ..., bn-1.
k de paridad: p0, p1, p2, ..., pk-1.
m en total: c1, c2, ..., cm. Nótese que los bits ci se enumeran a partir de uno.

Primera etapa: Asignar los bi y pi con ci .


Se asigna cada bi y cada pi una sola vez. Primero se asigna c1, luego c2 y así sucesivamente.
Se asigna ci a un bit de paridad si i es una potencia de dos; en caso contrario se asigna el ci a un bit de dato. El
proceso se detiene cuando no quedan más bits bi que asignar.

Ejemplo con n = 4. Se tienen b0, b1, b2, b3


Se asigna: c1 = p0 Ya que 20 = 1.
Luego: c2 = p1 Ya que 21 = 2.
c3 = b0 Ya que i = 3 no es una potencia de dos.
c4 = p2 Ya que 22 = 4.
c5 = b1
c6 = b2
c7 = b3 En este paso no quedan más bits que asignar.

En este caso resulta k = 3, y m = 7. Deben enviarse tres bits adicionales para detectar y corregir un error
simple. Si n es elevado se tendrá que k es aproximadamente igual a log2(n).
Cuatro bits de paridad permiten un máximo de m = 16, con 12 de datos.
Cinco bits de paridad permiten un máximo de m = 32, con 27 de datos.

Segunda etapa: Cálculo de los bits de paridad.


La determinación de los subconjuntos de c1, c2, ..., cm. debe permitir encontrar la posición del bit errado. Para
ello se escriben los ci en binario, y se forma un subconjunto con todos los bits que tengan un uno en
determinada posición de la secuencia binaria. Debido a la elección de los pi, sólo estará presente un pi en cada
subconjunto. Se calcula el pi del subconjunto como el xor de los bits de datos del subconjunto.

En el ejemplo con m = 7, se tienen: b0


c1 = c001 = p0 Los subconjuntos, resultan: Los bits de paridad se b1 p0
c2 = c010 = p1 b3
(c1, c3, c5, c7) = (p0, b0, b1, b3) calculan según:
c3 = c011 = b0 (c2, c3, c6, c7) = (p1, b0, b2, b3) p0 = b0 b1 b3 b0
c4 = c100 = p2 (c4, c5, c6, c7) = (p2, b1, b2, b3) b2 p1
p1 = b0 b2 b3 b3
c5 = c101 = b1 p2 = b1 b2 b3
c6 = c110 = b2 b1
c7 = c111 = b3 b2 p2
b3

Figura P5.14. Generación bits de paridad

Tercera etapa: Corregir el error de un bit en recepción:


Se separan los datos recibidos en subconjuntos, se calcula wi, el xor de todos los elementos de cada
subconjunto (incluidos los bits de paridad). Se calcula el valor de chequeo, mediante:

chequeo = w0 + 2* w1 + 4* w2 + ....

Si el valor de chequeo no es cero, un bit debe ser erróneo. Cada wi = 0 remueve la duda sobre algunos bits.
Cualquier bit puede tener un error (solo un bit), incluso uno de los de paridad puede haberse contaminado en
la transmisión o lectura. Si un bit está errado existe sólo una forma de corregirlo.

Si chequeo es cero, no hay error simple. En caso contrario se complementa el bit cchequeo

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales

Para m = 7 se calculan los wi, a partir de los ci:


w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3)
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3)
w2 = (c4 c5 c6 c7) = (p2 b1 b2 b3)

c2
c3 w
c1 c6
c3 w c7 1
c
c5 7 0
c4
c5 w
c6
c7 2

Figura P5.15. Cálculo de los wi.

El valor de chequeo resulta: chequeo = w0 + 2* w1 + 4* w2

La siguiente tabla muestra los valores binarios de los wi posibles, y asumiendo que sólo un bit del
subconjunto puede estar errado si wi es uno; y que si wi es cero, los elementos del subconjunto asociado están
correctos.

Estudiemos el segundo renglón: Con w2 igual a cero, no pueden estar errados: p2, b1, b2, b3; y si además w1
es cero: p1, b0, b2, b3 llegan correctamente; y si w0 es 1 podría existir un error en p0, b0, b1, b3. Pero de las
listas anteriores: b0, b1, b2 y b3 llegaron correctamente; por lo tanto se determina que en este caso p0 llegó
errado.

w2 w1 w0 chequeo Pueden tener error No están errados Bit errado:


0 0 0 0 ninguno todos ninguno
0 0 1 1 p0, b0, b1, b3 p1, b0, b2, b3, p2, b1 p0
0 1 0 2 p1, b0, b2, b3 p0, b0, b1, b3, p2, b2 p1
0 1 1 3 p0, b0, b1, b3, p1, b2 p2, b1, b2, b3 b0
1 0 0 4 p2, b1, b2, b3 p0, b0, b1, b3, p1, b2 p2
1 0 1 5 p0, b0, b1, b3, p2, b2 p1, b0, b2, b3 b1
1 1 0 6 p1, b0, b2, b3, p2, b1 p0, b0, b1, b3 b2
1 1 1 7 b3 b3

Figura P5.16. Interpretación tabla de valores de wi

En la siguiente red, si w0 y w1 son unos y w2 es cero, se tendrá que f0 es b0'; en caso contrario es b0.
w0 w0 w'0
w1
w'2 f0 w'1 f1 w1
f2
w2 w2
c3 c5 c6
w0
w1
w2 f3
c7

Figura P5.17. Corrección empleando wi

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 29
Ejemplo código Hamming de 7 bits.
A partir de los valores de los bits de información se calculan los de paridad.
Con: b0 = 0; b1 = 1; b2= 0; b3 = 1 c1 = c001 = p0 = 0
Los bits de paridad se calculan según: c2 = c010 = p1 = 1
p0 = b0 b1 b3 = 0 1 1 = 0 c3 = c011 = b0 = 0
p1 = b0 b2 b3 = 0 0 1 = 1 c4 = c100 = p2 = 0
p2 = b1 b2 b3 = 1 0 1 = 0 c5 = c101 = b1 = 1
c6 = c110 = b2 = 0
c7 = c111 = b3 = 1
a) Se calculan los wi, a partir de los ci , recibidos sin errores, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (0 0 1 1) = 0
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 0 0 1) = 0
w2 = (c4 c5 c6 c7) = (p2 b1 b2 b3) = (0 1 0 1) = 0
El valor de chequeo resulta: chequeo = w0 + 2* w1 + 4* w2 = 0

b) Se calculan los wi, a partir de los ci , asumiendo que c3 llega errado, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (0 1 1 1) = 1
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 1 0 1) = 1
w2 = (c 4 c 5 c6
El valor de chequeo resulta: c7) = (p2 b1 b2 b3) = (0 1 0 1) = 0
chequeo = w0 + 2* w1 + 4* w2 = 1 + 2*1 +4 *0 = 3, lo cual implica que debe complementarse c3.

c) Se calculan los wi, a partir de los ci , asumiendo que c5 llega errado, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (0 0 0 1) = 1
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 0 0 1) = 0
w2 = (c4 c5 c6 c7) = (p2 b1 b2 b3) = (0 0 0 1) = 1
El valor de chequeo resulta:
chequeo = w0 + 2* w1 + 4* w2 = 1 + 2*0 +4 *1 = 5, lo cual implica que debe complementarse c5.

d) Se calculan los wi, a partir de los ci , asumiendo que c1 llega errado, según:
w0 = (c1 c3 c5 c7) = (p0 b0 b1 b3) = (1 0 1 1) = 1
w1 = (c2 c3 c6 c7) = (p1 b0 b2 b3) = (1 0 0 1) = 0
w2 = (c4 c5 c6 c7) = (p2 b1 b2 b3) = (0 1 0 1) = 0
El valor de chequeo resulta:
chequeo = w0 + 2* w1 + 4* w2 = 1 + 2*0 +4 *0 = 1, lo cual implica que debe complementarse c1.

Problema 5.7.

Se tiene un número binario de cuatro bits: A3A2A1A0, donde A3 es la cifra más significativa, sea n el
equivalente decimal de este número.

Diseñar un sistema que acepte a n como entrada y que produzca en la salida el equivalente binario del número
decimal: ( n*4 +1).

Solución.
El mayor n que puede escribirse con cuatro bits es 15, por lo tanto la salida mayor será 61, lo cual requiere 6
cifras binarias para representarla. Sean éstas: S5S4S3S2S1S0.

La siguiente tabla de verdad ilustra la situación:

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales

n A3A2A1A0 n*4 +1 S5S4S3S2S1S0


0 0000 1 000001
1 0001 5 000101
2 0010 9 001001
3 0011 13 001101
4 0100 17 010001
5 0101 21 010101
6 0110 25 011001
7 0111 29 011101
8 1000 33 100001
9 1001 37 100101
10 1010 41 101001
11 1011 45 101101
12 1100 49 110001
13 1101 53 110101
14 1110 57 111001
15 1111 61 111101

Figura P5.18. Tabla de verdad Problema 5.7

Observando la tabla, se determina que S1= 0 y S0 = 1 son constantes, y que:


S5 = A3, S4 = A2, S3 = A1, y S2 = A0

El diseño mínimo no requiere compuertas, y se muestra a continuación:


A3 S5
S1
A2 S4 VCC
A1 S3
S0
A0 S2
S1
tierra
S0
VCC

Figura P5.19. Red Problema 5.7

A la derecha se muestra un diseño donde las señales S1 y S0 son salidas de compuertas.

Problema 5.8.

Se tiene un circuito digital de 4 entradas (A, B, C, D) y cuatro salidas (f1, f2, f3, f4).
a) Determinar como suma de mintérminos, la función f1 que es verdadera cuando exactamente dos de las
entradas sean verdaderas.
b) Determinar como producto de maxtérminos, la función f2 que es verdadera cuando exactamente tres de las
entradas sean verdaderas.
c) Determinar mediante un circuito lógico en base a AND, OR y NOT, la función f3, que es verdadera cuando
exactamente cuatro de las entradas sean verdaderas.
d) Determinar mediante una expresión booleana, la función f4, que es verdadera cuando exactamente cuatro
de las entradas sean falsas.

Solución.
Se tienen las siguientes tablas de verdad.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 31

A B C D f1 f2 f3 f4 Código
0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 1
0 0 1 0 0 0 0 0 2
0 0 1 1 1 0 0 0 3
0 1 0 0 0 0 0 0 4
0 1 0 1 1 0 0 0 5
0 1 1 0 1 0 0 0 6
0 1 1 1 0 1 0 0 7
1 0 0 0 0 0 0 0 8
1 0 0 1 1 0 0 0 9
1 0 1 0 1 0 0 0 10
1 0 1 1 0 1 0 0 11
1 1 0 0 1 0 0 0 12
1 1 0 1 0 1 0 0 13
1 1 1 0 0 1 0 0 14
1 1 1 1 0 0 1 0 15

Figura P5.20. Tabla de verdad Problema 5.8

Entonces:
a) f1 = m(3, 5, 6, 9, 10, 12)
b) f2 = M(0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15)
c) f3 = m(15) = ABCD
A
B f3
C
D
d) f4 = m(0) = A'B'C'D'

Problema 5.9.

Se tiene una función booleana:


f(a, b, c, d) = m(7, 13, 14) + d(1, 3, 4, 5, 6, 9, 10)

a) Encontrar los implicantes primos e implicantes primos esenciales, fundamentando la respuesta.


b) Encontrar todos los diseños que implementen la función mínima en su forma suma de productos y
producto de sumas.

Solución.
a) Para la forma suma de productos se tiene el siguiente mapa de Karnaugh:

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales

ab
cd 00 01 11 10
0 4 12 8
00 d
1 5 13 9
01 d d 1 d
3 7 15 11
11 d 1
2 6 14 10
10 d 1 d

f(a, b, c, d)= m(7, 13, 14) + d(1, 3, 4, 5, 6, 9, 10)


Figura P5.21. Suma de productos Problema 5.9

Observando el mapa o aplicando método de Quine o Quine-McCluskey, y empleando las condiciones


superfluas, se pueden formar: 3 implicantes primos de 4 mintérminos cada uno; y dos implicantes primos de
dos mintérminos cada uno. La siguiente tabla de implicantes, muestra que c’d es implicante primo esencial,
ya que es el único que contiene al mintérmino 13.

Implicantes 7 13 14
primos
a’b x
c’d
a’d x
acd’ x
bcd’ x

Figura P5.22. Tabla de implicantes. Problema 5.9

Se tienen 4 diseños alternativos con mínimo costo. Con 10 entradas cada uno.
f(a, b, c, d) = c’d + a’b + acd’
f(a, b, c, d) = c’d + a’b + bcd’
f(a, b, c, d) = c’d + a’d + acd’
f(a, b, c, d) = c’d + a’d + bcd’

b) Para la forma producto de sumas se tiene el siguiente mapa de Karnaugh:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 33

ab
cd 00 01 11 10
0 4 12 8
00 1 d 1 1
1 5 13 9
01 d d d
3 7 15 11
11 d 1 1
2 6 14 10
10 1 d d

f ’(a, b, c, d)

Figura P5.23. Mapa para suma de productos. Problema 5.9

Observando el mapa o aplicando método de Quine o Quine-McCluskey y empleando las condiciones


superfluas se pueden formar: Un implicante primo de 8 mintérminos; 3 implicantes primos de 4 mintérminos
cada uno; y un implicante primo de dos mintérminos cada uno.

La siguiente tabla de implicantes, muestra que c’d’ y acd son implicantes primos esenciales.

Implicantes 0 2 8 11 12 15
primos
b’ x x x x
c’d’ x x
a’c’ x
a’d’ x x
acd x

Figura P5.24. Tabla de implicantes de f’. Problema 5.9

La cobertura del mintérmino 2 se logra seleccionando el implicante b’ que cubre a a’d’.


Entonces la (única) función mínima es: f ’(a, b, c, d) = c’d’ + acd + b’, que en la forma pedida es:
f( a, b, c, d) = (c + d)(a’ + c’ + d’)(b) de 9 entradas.

Problema 5.10.

Se tiene el diseño mínimo como suma de productos para la siguiente función:

f(a, b, c, d) = abd + b’c’ + a’d’

Se conoce: que el mintérmino a’bcd’ es superfluo, que el maxtérmino (a’ + b + c + d’) es superfluo, y que el
implicante a’b’c’ es superfluo.

a) Determinar el mapa de Karnaugh para f, indicando los unos, ceros y condiciones superfluas.
b) Obtener el diseño mínimo como producto de sumas, indicando en un mapa los implicantes seleccionados.

Solución:
a1) Se ubican los mintérminos superfluos, y se los dibuja en el mapa:

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales
a’bcd’ = m6 ; a’b’c’ = m0 + m1

Que el maxtérmino (a’ +b +c +d’) = M9 sea superfluo, indica que m9’ es superfluo.

a2) Se ubican los implicantes de f:


abd = m(13, 15); b’c’ = m(0, 1, 8, 9); a’d’ = m(0, 4, 2, 6)

Esto permite determinar los unos de la función como m(2, 4, 8, 13, 15); y también los ceros de la función
como M(3, 5, 7, 10, 11, 12, 14)
ab
cd 00 01 11 10
0 4 12 8
00 d 1 0 1
1 5 13 9
01 d 0 1 d
3 7 15 11
11 0 0 1 0
2 6 14 10
10 1 d 0 0

f(a, b, c, d)= abd + b’c’ + a’d’

Figura P5.25. Mapa Problema 5.10

El mapa ilustra el diseño de la función mínima, con condiciones superfluas, expresada como suma de
productos:
f(a, b, c, d) = m(2, 4, 8, 13, 15) + d(0, 1, 6, 9) = abd + b’c’ + a’d’

Método 1(agrupando los ceros)


b1) Se desea diseñar f, según:
f(a, b, c, d) = M(3, 5, 7, 10, 11, 12, 14) Md(0, 1, 6, 9)

El grupo M(1, 3, 5, 7) debe incluirse ya que es el mayor y único grupo que cubre a 5 y 7.
El grupo M(12, 14) es el mayor y único grupo que cubre a 12, y debe estar presente.

Sólo resta cubrir a M(10, 11), lo cual puede hacerse incluyendo a dicho grupo. La incorporación del grupo
mayor M(1, 3, 9, 11) que cubre al 11, requiere otro grupo para cubrir al 10, ya sea M(10, 14) o M(10, 11).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 35
ab
cd 00 01 11 10
0 4 12 8
00 d 1 0 1
1 5 13 9
01 d 0 1 d
3 7 15 11
11 0 0 1 0
2 6 14 10
10 1 d 0 0

f(a, b, c, d)= (a + d’)( a’+ b’ +d) (a’ + b +c’)

Figura P5.26. Mapa suma productos. Problema 5.10

Para un diseño libre de perturbaciones debería incluirse a los grupos M(10, 14) y M(3, 11)

Método 2(agrupando los 1 de f ’)


b2) Se desea diseñar f, según:

f ’(a, b, c, d) = m(3, 5, 7, 10, 11, 12, 14) + d(0, 1, 6, 9)


Se tiene el mapa:
ab
cd 00 01 11 10
0 4 12 8
00 d 0 1 0
1 5 13 9
01 d 1 0 d
3 7 15 11
11 1 1 0 1
2 6 14 10
10 0 d 1 1

f ’(a, b, c, d) = a’d + abd’ + ab’c

Figura P5.27. Mapa producto de sumas. Problema 5.10

En la tabla de implicantes se muestran sólo los mintérminos; no se requiere cubrir los superfluos. De la tabla
se advierte que a’d es implicante primo esencial, ya que agrupa al 5 y 7 que sólo él contiene. También abd’ es
implicante primo esencial ya que es el único grupo que contiene al mintérmino 12.

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales

3 5 7 10 11 12 14
a’d x x x
abd’ x x
ab’c x x
acd’ x x
b’d x x
bcd’ x
Figura P5.28. Tabla implicante. Mapa de la Figura P5.27

Para cubrir m10 y m11, la mejor opción es ab’c, lo cual puede deducirse de la tabla reducida.
10 11
ab’c x x
acd’ x
b’d x

Figura P5.29. Tabla reducida de la Figura P5.28

Se obtiene: f ’(a, b, c, d) = a’d + abd’ + ab’c y complementándola, se logra:

f(a, b, c, d)= (a + d’)( a’+ b’ +d) (a’ + b +c’)

Problema 5.11.

Se tiene f(a, b, c, d) formada por los siguientes mintérminos: 4, 5, 6, 8, 9, 10, 13.


Además se conoce que las variables de entrada nunca toman los valores lógicos que hacen verdadera a la
expresión: bcd + a’b’c’d’

a) Dibujar el mapa para la función f.


b) Minimizar como producto de sumas, en dos niveles.
c) Minimizar como suma de productos, en dos niveles.

Solución:
a) Considerando las condiciones superfluas y los mintérminos, en un mapa rotulado según notación de
conjuntos, resulta:
a

d 1 0 1

0 1 1 1
d
0 d d 0
c
0 1 0 1

b
Figura P5.30. Mapa con condiciones superfluas.

b) Se muestran los grupos de mintérminos en el mapa de la Figura 5.30.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 37

d 1 1

1 1 1
d
d d
c

1 1
b
Figura P5.31. Implicantes de la Figura P5.30.

Resulta: f = a b’ d’ + a d c’ + a’ b
a
c) El mapa para f’ resulta:
d 1

1
d
1 d d 1
c

1 1
b
Figura P5.32. Mapa del complemento de f.

Encontrando los implicantes, se obtiene:


f ‘ = a b d’ + d c + a’ b’

Aplicando De Morgan.
f = ( a’ + b’ + d)(d’ + c’)(a + b)

Problema 5.12.

La función f(A, B, C, D) está formada por los mintérminos 5, 9, 15.

a) Si se puede escoger un mintérmino cualquiera como superfluo, cuál o cuáles son las funciones mínimas
(todas las que encuentre); indicando, en cada caso, el mintérmino superfluo elegido.
b) Si se pueden escoger dos mintérminos cualesquiera como superfluos, cuál o cuáles son las funciones
mínimas (todas las que encuentre); indicando, en cada caso, los mintérminos superfluos elegidos.
c) Si se pueden escoger tres mintérminos cualesquiera como superfluos, cuál o cuáles son las funciones
mínimas (todas las que encuentre); indicando, en cada caso, los mintérminos superfluos elegidos.

Solución:
a) La Figura P5.33 muestra la elección conveniente de un mintérmino superfluo.

Profesor Leopoldo Silva Bijit 19-01-2010


38 Sistemas Digitales

AB
CD 00 01 11 10
0 4 12 8
00

1 5 13 9
01 1 d 1 Se elige m13. Resulta:
f = AC’D + BC’D + ABD
3 7 15 11
11 1
2 6 14 10
10

f(A, B, C, D)

Figura P5.33. Elección de un mintérmino superfluo.

b1)
AB
CD 00 01 11 10
0 4 12 8
00 Se elige m13 y m11.
f = AD + BC’D
1 5 13 9
01 1 d 1

3 7 15 11
11 1 d
2 6 14 10
10

f(A, B, C, D)

Figura P5.34. Elección de dos mintérminos superfluos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 39
b2)
AB
CD 00 01 11 10
0 4 12 8 Se elige m13 y m7.
00
f = BD + AC’D

1 5 13 9
01 1 d 1

3 7 15 11
11 d 1
2 6 14 10
10

f(A, B, C, D)

Figura P5.35. Elección de dos mintérminos superfluos b2).

b3)
AB
CD 00 01 11 10
0 4 12 8 Se elige m13 y m1.
00 f = ABD + C’D

1 5 13 9
01 d 1 d 1

3 7 15 11
11 1
2 6 14 10
10

f(A, B, C, D)

Figura P5.36. Elección de dos mintérminos superfluos b3).

Profesor Leopoldo Silva Bijit 19-01-2010


40 Sistemas Digitales
c1) AB
CD 00 01 11 10
0 4 12 8 Se elige m13, m11 y m7.
00 f = BD + AD

1 5 13 9
01 1 d 1

3 7 15 11
11 d 1 d
2 6 14 10
10

Figura P5.37. Elección de tres mintérminos superfluos c1).

c2)
AB
CD 00 01 11 10
0 4 12 8 Se elige m13, m11 y m1.
00 f = C’D + AD

1 5 13 9
01 d 1 d 1

3 7 15 11
11 1 d
2 6 14 10
10

Figura P5.38. Elección de tres mintérminos superfluos c2).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 41
c3)
AB
CD 00 01 11 10
0 4 12 8 Se elige m13, m7 y m1.
00
f = C’D + BD

1 5 13 9
01 d 1 d 1

3 7 15 11
11 d 1
2 6 14 10
10

Figura P5.39. Elección de tres mintérminos superfluos c3).

Problema 5.13.

Se tiene un circuito digital de 5 entradas (A, B, C, D, E)


Determinar sólo las expresiones booleanas que contienen el literal A, para los 3-cubos incrustados en el 5-
cubo.

Solución.
En un 5-cubo un 3-cubo puede expresarse con dos literales. Las combinaciones de dos letras de un conjunto
de 5 son: AB, AC, AD, AE, BC, BD, BE, CD, CE, DE. Para cada combinación pueden tenerse 4 expresiones;
por ejemplo para AB se tienen: A'B', A'B, AB', AB. En total se tienen cuarenta 3-cubos inscritos en un 5-cubo.

Entonces los 3-cubos pedidos son: AB, AB', AC, AC', AD, AD', AE, AE'.

Problema 5.14.

Representar en un mapa de Karnaugh de 5 variables, la expresión booleana:

C'D'E + B'C
Solución:
Los míntérminos asociados a B'C se encuentran en las columnas 001 y 101,
Resulta B'C = m(4, 5, 6, 7, 20, 21, 22, 23) son 8.
Los mintérminos asociados a C'D'E son m(1, 9, 17, 25) son 4, con C=0, D=0 y E=1.

Profesor Leopoldo Silva Bijit 19-01-2010


42 Sistemas Digitales

ABC
000 001 011 010 100 101 111 110
DE
0 4 12 8 16 20 28 24
00 1 0 1
1 5 13 9 17 21 29 25
01 1 1 1 1 1 1

3 7 15 11 19 23 31 27
11 1 1
2 6 14 10 18 22 30 26
10 1 1

Figura P5.40. Mapa para Problema 5.14.

Problema 5.15.

Graficar los mapas de Karnaugh de las funciones de cuatro variables:

f1=(AB+C)(ABC+D') +A'B'D' y f2=(A'+B'+D)(B'+D')

Solución:
f1=ABABC+ABD'+CABC+CD'+A'B'D' ; P6
=ABC+ABD'+CD' +A'B'D' ; P4, T8
= m(14,15) +m(12,14)+m(2,6,10,14)+m(0,2) ; T14
= m(0, 2, 6, 10, 12, 14, 15); T8
AB
CD 00 01 11 10
0 4 12 8
00 1 1
1 5 13 9
01

3 7 15 11
11 1
2 6 14 10
10 1 1 1 1

f1(A, B, C, D)
Figura P5.41. Mapa de f1.

f2 = A'B'+A'D'+B'B'+B'D'+B'D+DD'; P6, P4
= A'B'+A'D'+B'+B'(D'+D)+0 ;T8, P6, P7
= A'B' +A'D'+B' ; P3,P7, T8
= m(0, 1, 2, 3) + m(0, 2, 4, 6) + m(0, 1, 2 , 3, 8, 9, 10, 11) ; T14
= m(0, 1, 2, 3, 4, 6, 8, 9, 10, 11) ;T8

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 43

AB
CD 00 01 11 10
0 4 12 8
00 1 1 1
1 5 13 9
01 1 1

3 7 15 11
11 1 1
2 6 14 10
10 1 1 1

f2(A, B, C, D)

Figura P5.42. Mapa de f2.

Referencias.

Karnaugh M. “The map method for synthesis of combinatorial logic circuits”, Trans. AIEE Comm.
Electron.,Vol. 72, No. 4, pp. 593–598. 1953.

Profesor Leopoldo Silva Bijit 19-01-2010


44 Sistemas Digitales

Índice general.

CAPÍTULO 5 ..................................................................................................................................................................... 1
MAPAS DE KARNAUGH ................................................................................................................................................ 1
5.1. CONCEPTOS ............................................................................................................................................................... 1
5.2. FORMAS DE MAPAS ................................................................................................................................................... 4
5.3. MANEJO DE MAPAS ................................................................................................................................................... 7
5.4. USO DE MAPAS........................................................................................................................................................... 9
Ejemplo 5.1. Mapa a partir de los mintérminos. ........................................................................................................ 9
Ejemplo 5.2. Mapa a partir de expresión. ................................................................................................................ 10
Ejemplo 5.3. Uso de mapas en la demostración de teoremas. .................................................................................. 11
5.5. MINIMIZACIÓN USANDO MAPAS DE KARNAUGH. ..................................................................................................... 12
5.5.1. Minimización como suma de productos. ......................................................................................................... 12
Ejemplo 5.4. Minimización a partir de los mintérminos .......................................................................................................... 12
Ejemplo 5.5. Formación de grupos de mintérminos en minimización basada en mapas.......................................................... 13
Ejemplo 5.6. ............................................................................................................................................................................. 14
Ejemplo 5.7. ............................................................................................................................................................................. 15
5.5.2. Minimización en forma de producto de sumas. ............................................................................................... 15
Ejemplo 5.8.............................................................................................................................................................................. 15
Ejemplo 5.9. ............................................................................................................................................................................. 16
5.5.3. Condiciones superfluas (don't care) ................................................................................................................ 17
Ejemplo 5.10. ........................................................................................................................................................................... 18
Ejemplo 5.11. ........................................................................................................................................................................... 19
Ejemplo 5.12. ........................................................................................................................................................................... 19
PROBLEMAS RESUELTOS. ................................................................................................................................................ 21
Problema 5.1. Comparador binario. ......................................................................................................................... 21
Problema 5.2. Multiplicador de dos números binarios de dos cifras cada uno. ....................................................... 22
Problema 5.3. Incrementador en uno de cifra BCD. ................................................................................................. 22
Problema 5.4. Semisumador binario. ........................................................................................................................ 23
Problema 5.5. Sumador completo. ............................................................................................................................ 24
Problema 5.6. Detección y corrección de errores en bits. Hamming........................................................................ 25
Detección de un error simple. .................................................................................................................................................. 26
Corrección de un error simple.................................................................................................................................................. 26
Ejemplo código Hamming de 7 bits. ........................................................................................................................................ 29
Problema 5.7. ............................................................................................................................................................ 29
Problema 5.8. ............................................................................................................................................................ 30
Problema 5.9. ............................................................................................................................................................ 31
Problema 5.10. .......................................................................................................................................................... 33
Problema 5.11. .......................................................................................................................................................... 36
Problema 5.12. .......................................................................................................................................................... 37
Problema 5.13. .......................................................................................................................................................... 41
Problema 5.14. .......................................................................................................................................................... 41
Problema 5.15. .......................................................................................................................................................... 42
REFERENCIAS. ................................................................................................................................................................ 43
ÍNDICE GENERAL. ........................................................................................................................................................... 44
ÍNDICE DE FIGURAS. ....................................................................................................................................................... 45

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 5. Mapas de Karnaugh 45

Índice de Figuras.

Figura 5.1 Mintérminos de dos variables en un diagrama de Venn. ...................................................................1


Figura 5.2 Códigos decimales de mintérminos en un diagrama de Venn. ..........................................................1
Figura 5.3 Mintérminos de dos variables en un 2-cubo. .....................................................................................2
Figura 5.4 Mintérminos de dos variables en un mapa de Karnaugh. ..................................................................2
Figura 5.5 Número decimal de los mintérminos y el orden de las variables. ......................................................2
Figura 5.6 Representación de funciones de dos variables en un mapa................................................................3
Figura 5.7 Diagrama de Venn para tres variables y un 3-cubo. ..........................................................................3
Figura 5.8 Del 3-cubo al mapa de Karnaugh de tres variables. ...........................................................................4
Figura 5.9 Mapa de Karnaugh de tres variables y un 3-cubo. .............................................................................4
Figura 5.10 Bordes en un mapa de Karnaugh. ....................................................................................................4
Figura 5.11 Mapas de Karnaugh para tres y cuatro variables. ...........................................................................5
Figura 5.12 Mapa de Karnaugh para tres variables. ...........................................................................................5
Figura 5.13 Mapa de Karnaugh de cinco variables, codificado en Gray............................................................6
Figura 5.14 Mapa de Karnaugh apilable de cinco variables. .............................................................................7
Figura 5.15 Agrupaciones de 8 y 4 mintérminos en un Mapa de Karnaugh de cuatro variables. ......................8
Figura 5.16. 2-cubo y mintérmino en un Mapa de Karnaugh de cuatro variables. ............................................8
Figura 5.17. Mapa de Karnaugh a partir de lista de mintérminos. ...................................................................10
Figura 5.18. Un mapa de Karnaugh por producto. ...........................................................................................10
Figura 5.19. Mapa de Karnaugh de un mintérmino y de la función completa. ................................................11
Figura 5.20. Mapas de Karnaugh en la demostración de teoremas. .................................................................11
Figura 5.21. Mapa de Karnaugh a partir de los mintérminos. ..........................................................................12
Figura 5.22. Agrupaciones en el Mapa de Karnaugh. .......................................................................................13
Figura 5.23. Mapa de Karnaugh con los mintérminos. .....................................................................................13
Figura 5.24. Mínimo número de grupos. ...........................................................................................................14
Figura 5.25. Solución ejemplo 5.6. ...................................................................................................................14
Figura 5.26. Solución ejemplo 5.7. ...................................................................................................................15
Figura 5.27. Solución ejemplo 5.8. ...................................................................................................................16
Figura 5.28. Mapa con los mintérminos de ejemplo 5.9 ...................................................................................16
Figura 5.29. Mapa con los mintérminos de f’....................................................................................................17
Figura 5.30. Mapa con condiciones superfluas. ................................................................................................18
Figura 5.31. Mapa con condiciones superfluas de f’ .........................................................................................18
Figura 5.32. Tabla traductor BCD a Exceso-3. .................................................................................................19
Figura 5.33. Mapa de las condiciones superfluas del ejemplo 5.13. .................................................................20
Figura P5.1 Diagrama funcional comparador. .................................................................................................21
Figura P5.2. Tabla del comparador. ..................................................................................................................21
Figura P5.3. Diagrama funcional multiplicador. ..............................................................................................22
Figura P5.4. Tabla de verdad de multiplicador. ................................................................................................22
Figura P5.5. Diagrama funcional incrementador BCD. ....................................................................................23
Figura P5.6. Tabla de verdad del incrementador BCD......................................................................................23
Figura P5.7. Tabla de verdad del semisumador ................................................................................................24
Figura P5.8. Implementación semisumador. .....................................................................................................24
Figura P5.9. Diagrama funcional sumador completo de un bit. ........................................................................24
Figura P5.10. Tabla de verdad del sumador completo de un bit. ......................................................................24
Figura P5.11. Diagrama funcional sumador completo de cuatro bits. ..............................................................25
Figura P5.12. Red para sumador completo. ......................................................................................................25
Figura P5.13. Sumador completo mediante dos semisumadores. .....................................................................25
Figura P5.14. Generación bits de paridad .........................................................................................................27
Figura P5.15. Cálculo de los wi. ........................................................................................................................28
Figura P5.16. Interpretación tabla de valores de wi...........................................................................................28

Profesor Leopoldo Silva Bijit 19-01-2010


46 Sistemas Digitales
Figura P5.17. Corrección empleando wi ...........................................................................................................28
Figura P5.18. Tabla de verdad Problema 5.7 ....................................................................................................30
Figura P5.19. Red Problema 5.7........................................................................................................................30
Figura P5.20. Tabla de verdad Problema 5.8 ....................................................................................................31
Figura P5.21. Suma de productos Problema 5.9 ...............................................................................................32
Figura P5.22. Tabla de implicantes. Problema 5.9 ............................................................................................32
Figura P5.23. Mapa para suma de productos. Problema 5.9 .............................................................................33
Figura P5.24. Tabla de implicantes de f’. Problema 5.9 ...................................................................................33
Figura P5.25. Mapa Problema 5.10 ...................................................................................................................34
Figura P5.26. Mapa suma productos. Problema 5.10 ........................................................................................35
Figura P5.27. Mapa producto de sumas. Problema 5.10 ...................................................................................35
Figura P5.28. Tabla implicante. Mapa de la Figura P5.27 ................................................................................36
Figura P5.29. Tabla reducida de la Figura P5.28 ..............................................................................................36
Figura P5.30. Mapa con condiciones superfluas. ..............................................................................................36
Figura P5.31. Implicantes de la Figura P5.30. ..................................................................................................37
Figura P5.32. Mapa del complemento de f. .......................................................................................................37
Figura P5.33. Elección de un mintérmino superfluo. ........................................................................................38
Figura P5.34. Elección de dos mintérminos superfluos. ...................................................................................38
Figura P5.35. Elección de dos mintérminos superfluos b2). .............................................................................39
Figura P5.36. Elección de dos mintérminos superfluos b3). .............................................................................39
Figura P5.37. Elección de tres mintérminos superfluos c1). .............................................................................40
Figura P5.38. Elección de tres mintérminos superfluos c2). .............................................................................40
Figura P5.39. Elección de tres mintérminos superfluos c3). .............................................................................41
Figura P5.40. Mapa para Problema 5.14. ..........................................................................................................42
Figura P5.41. Mapa de f1. .................................................................................................................................42
Figura P5.42. Mapa de f2. .................................................................................................................................43

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 6

Algoritmos de minimización

Durante 40 años el algoritmo de minimización conocido como método de Quine-McCluskey


permaneció prácticamente sin cambios. En 1992 aparecen dos métodos, fundamentalmente
nuevos, que permiten desarrollar algoritmos más eficientes para encontrar soluciones exactas.

El método de minimización de Quine-McCluskey, consiste en encontrar los implicantes primos


y luego seleccionar un conjunto de éstos que cubran la función; esto último se efectúa mediante
la reducción de la tabla de implicantes.
Como alternativa se describe el método de Tison, de consenso reiterado, para determinar los
implicantes primos.

La tabla de implicantes tiene como columnas los mintérminos y como renglones los cubos que
son implicantes primos. Para n variables, se tienen 2 n mintérminos o columnas; y se dispone de
3n
un resultado que establece que se pueden tener del orden de implicantes primos. Con lo cual
n
los algoritmos para reducir la tabla, en forma exacta, tienen un costo exponencial.

Por esta razón se han desarrollado heurísticas de minimización que están basadas en
propiedades de las funciones booleanas y que producen resultados bastante satisfactorios, desde
un punto de vista de ingeniería. Un excelente ejemplo de estos programas es espresso, que se
trata en el Apéndice 3.

6.1. Implicación

Un implicante es un mintérmino o un grupo de éstos que formen un sub-cubo.

Una expresión X implica la función f, si y solamente si f=1 para cualquier combinación de


valores para los cuales X=1.

Se anota la implicación de la siguiente forma: X  f

f X

Figura 6.1 Implicación.

Puede verse que si X  f, con g una función booleana, puede anotarse: f = X + g.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Es decir, X es un término o parte de f. También suele decirse que f cubre a X.

En un mapa de f, si X corresponde a un grupo de mintérminos, g corresponderá al resto de los


mintérminos de f, no considerados en X, si la intersección de g y X es vacía; si la intersección no
es vacía, pueden existir algunos mintérminos comunes a X y g.

Se desea ahora definir las componentes de f que sean más primitivas.

6.2. Implicantes primos

Un implicante primo es un implicante que no puede ser agrupado con otros implicantes, para
formar un sub-cubo de mayor dimensión.

Se dice que X (producto de literales) es un implicante primo de f si y sólo si:


 Xf
 No existe y tal que X  y  f, donde el número de literales de y es menor que el número de
literales de X. No puede encontrarse un grupo mayor que X. Si existe y; entonces y es un
implicante primo.
Básicamente, un implicante primo es un producto de literales que no puede ser combinado con
otros para obtener un término con menos literales. Se dice primo o primitivo en el sentido de ser
componente básica o elemental de una función.

Algunas propiedades de un implicante primo:


 No contiene literales repetidos.
 No contiene a una variable y a su complemento.
 No contiene variables redundantes. Es decir, si se descarta un literal del implicante, el resto
no será implicante.
 Si x e y son implicantes primos de f, entonces: x no cubre a y; y viceversa.

Encontrar los implicantes primos es determinar los grupos de mintérminos que pueden
escribirse con menos literales.

Pasar de un implicante a un implicante primo está asociado a un proceso de crecimiento; es


decir, a encontrar un grupo de mintérminos que forman el sub-cubo mayor posible.

6.3. Implicante primo esencial

Es aquél que cubre a lo menos un mintérmino de la función que no es cubierto por otros
implicantes primos. Deben estar presentes en la forma mínima.

Los mintérminos superfluos pueden emplearse para formar implicantes primos; pero no deben
considerarse para los implicantes primos esenciales.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 3
Ejemplo 6.1.

Para una función de 4 variables, cuyo mapa es de la figura 6.2, se tienen los siguientes
implicantes primos:
A'B'D, BC', AC, A'C'D, AB, B'CD

De los 6 implicantes primos, sólo AC es esencial, ya que contiene al mintérmino: AB'CD' que
no es cubierto por ningún otro implicante primo.
A

0 d 1 0

1 1 1 0
D
1 0 1 1
C
0 0 1 1
B
Figura 6.2 Implicantes primos

Puede comprobarse que se logra una mínima cobertura de la función con:


AC + BC' + A'B'D

Para un diseño libre de perturbaciones deben agregarse: AB, A’C’D y B’CD.

Ejemplo 6.2.

Minimizar, determinando implicantes, observando el mapa de la Figura 6.3.


A

0 0 1 0

1 1 1 0
D
0 1 1 1
C
0 1 0 0
B
Figura 6.3 Implicantes primos ejemplo 6.2

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales
Para la función de 4 variables, cuyo mapa es el de la figura 6.3, se tienen los siguientes
implicantes primos:
BD, ABC', ACD, A'BC, A'C'D

Sólo BD es no esencial, ya que los demás contienen un mintérmino no cubierto por los otros
implicantes primos.
La función mínima debe contener los esenciales, y con éstos se logra cubrir completamente a la
función:
f = ABC' + ACD + A'BC + A'C'D

Para un diseño libre de perturbaciones debe agregarse el cubo BD.

6.4. Método de Quine (1952)

Es un método sistemático para encontrar la expresión mínima de una función, que no depende
de la habilidad para reconocer agrupaciones en un mapa de Karnaugh.

Básicamente, es una búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la
función, mediante la aplicación sistemática del teorema de fusión ( a  ab  ab ) a todos los
términos de la forma canónica.

6.4.1. Obtención de implicantes primos

 Se forma una primera columna con los mintérminos de la función.


 Se forma la siguiente columna según:
 Se revisa el primer elemento de la columna con todos los siguientes; si se encuentra
un término que sólo difiera en una variable, se lo anota en la nueva columna,
omitiendo el literal correspondiente; se marcan los términos en la columna actual.
 Se repite el proceso para todos los elementos de la columna.
 Se vuelve a repetir el paso anterior hasta que no se puedan formar nuevas columnas.

Los términos que originan nuevas entradas, en la próxima columna, sólo necesitan marcarse una
vez. Pero pueden usarse las veces que sea necesario.

Nótese que la segunda columna lista todos los grupos de dos mintérminos. La tercera, lista
grupos de cuatro mintérminos adyacentes, y así sucesivamente. Al finalizar el proceso anterior,
los elementos no marcados en las columnas, corresponden a los implicantes primos.

Ejemplo 6.3.
Obtener los implicantes primos de: f (a, b, c)   m(0, 2,5, 6, 7)

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 5

Primera columna Segunda columna


m min. marcas Grupos Implicantes
0 a'b'c'  (0,2) a'c'
2 a'bc'   (2,6) bc'
5 ab'c  (5,7) ac
6 abc'   (6,7) ab
7 abc  

Figura 6.4 Obtención de implicantes primos

No se pueden formar nuevas columnas, por lo tanto los implicantes primos son:

a'c', bc', ac, ab

Nótese que en la segunda columna, se han identificado los renglones con los grupos de
mintérminos.

Cuando se escribe, en la segunda columna: a'c', se marcan con  el 0 y el 2 en la primera


columna.
Cuando se escribe, en la segunda columna: bc', se marcan con  los mintérminos 2 y 6.

6.4.2. Tabla de implicantes

La tabla de implicantes se forma empleando los implicantes primos en los renglones y los
mintérminos de la función en las columnas. Luego, en cada renglón, se marca con valor 1 las
columnas de los mintérminos pertenecientes al implicante considerado.

Aquellas columnas que tengan sólo una marca, permiten detectar a los implicantes primos
esenciales. En esta tabla debe escogerse el menor número de implicantes primos que cubran
todos los mintérminos de la función. Evidentemente, deben estar presentes todos los implicantes
primitivos esenciales en la expresión mínima de una función.
Ejemplo 6.4.
La tabla de implicantes, para el ejemplo anterior:

0 2 5 6 7
a'c' 1 1
bc' 1 1
ac 1 1
ab 1 1

Figura 6.5 Tabla de implicantes primos

La columna 0, por tener sólo un renglón marcado, permite identificar a: a'c' como implicante
primo esencial.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
Igualmente la columna 5 indica que el implicante ac también es esencial.

Se acostumbra encerrar con un círculo las marcas en las columnas que definen los implicantes
primos esenciales.

Nótese que sólo resta cubrir el mintérmino 6, lo que puede lograrse eligiendo: bc' o ab.

Finalmente, la forma mínima es: f = a'c' + ac + bc'

o, alternativamente: f = a'c' + ac + ab

6.4.3. Reducción de tablas

En caso de tener tablas complejas, éstas pueden reducirse mediante el siguiente método.

Cada vez que se selecciona un implicante para formar la función, se remueve el renglón
correspondiente.

Cuando se remueve un renglón, también se eliminan las columnas que tienen marcas en dicho
renglón.

Se comienza eliminando los implicantes primos esenciales. Luego la tabla puede seguir
reduciéndose, aplicando las siguientes reglas:

 Un renglón cubierto por otro, puede eliminarse (sólo el renglón).


 Una columna que cubre a otra puede eliminarse (sólo la columna).

Un renglón cubre a otro, si tiene marcas en las columnas marcadas del otro, pudiendo además
tener columnas adicionales marcadas. Podría decirse que el renglón eliminado es menos
importante, debido a su menor cobertura de la función.
Una columna cubre a otra, si contiene marcas en cada renglón que esa otra columna tiene
marcas, pudiendo además tener renglones adicionales marcados.
Ejemplo 6.5.
En la Figura 6.6, el implicante primo ipa cubre al implicante primo ipb. Puede eliminarse
renglón ipb; ya que si luego se eligiese ipa, m1 y m3 quedarían considerados en la función.

Si se elimina ipa, en lugar de ipb, no queda garantizada la cobertura de m2.

m1 m2 m3
ipa 1 1 1
ipb 1 1

Figura 6.6 Renglón cubierto por otro.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 7
Para la función: f(A, B, C, D) = m(0, 4, 5, 11, 13, 15) según el mapa de la Figura 6.7, se tienen
los siguientes implicantes primos: A’C’D’ (0, 4) , A’BC’ (4, 5), BC’D (5, 13), ABD (13, 15),
ACD (11, 15). Todos ellos deben considerarse para un diseño libre de perturbaciones.
AB
CD 00 01 11 10
0 4 12 8
00 1 1

1 5 13 9
01 1 1

3 7 15 11
11 1 1

2 6 14 10
10

f(A, B, C, D)=m(0,4,5,11,13,15)
Figura 6.7 Mapa con implicantes.

La tabla de implicantes resulta:

0 4 5 11 13 15
A‟C‟D‟ 1 1
A‟BC‟ 1 1
BC‟D 1 1
ABD 1 1
ACD 1 1

Figura 6.8 Tabla de implicantes.

Se tiene que A’C’D’ y ACD son implicantes primos esenciales. Reduciendo la tabla de la Figura
6.8, se obtiene:

5 13
A‟BC‟ 1
BC‟D 1 1
ABD 1

Figura 6.9 Tabla de implicantes reducida.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
El cubo BC’D cubre a los implicantes A’BC’ y ABD. Si se eliminan los renglones cubiertos, sólo
queda el renglón dominante BC’D; luego de esto queda una tabla con un solo implicante. La
función mínima resulta:
f(A, B, C, D) = A’C’D’ + ACD + BC’D
Ejemplo 6.6.
m1 m2 m3
ipa 1 1
ipb 1 1
ipc 1 1
ipd 1

Figura 6.10 Columna cubierta por otra.

La columna m2 cubre a la columna m1; puede eliminarse la columna m2.

El mintérmino de la columna eliminada tiene asegurada su consideración.

Si se elimina columna m2, para cubrir al mintérmino m1 debe seleccionarse uno de los cubos:
ipb o ipc; y como cualquiera de éstos contiene a m2, se considera automáticamente a m2 en la
cobertura.

No es correcta la eliminación de columna m1, ya que si se eliminara la columna m1, en lugar de


m2, quedarían para seleccionar los implicantes ipa, ipb e ipc; pero si luego se eligiera a ipa, no
se incluiría a m1 en la función.

Para la función: f(A, B, C, D) = m(1, 2, 3, 5, 7) +d(0, 6, 9, 13) según el mapa de la Figura


6.11, se tienen los siguientes implicantes primos: A’B’ (1, 2, 3), C’D (1, 5), A’D (1, 3, 5, 7), A’C
(2, 3, 7).
AB
CD 00 01 11 10
0 4 12 8
00 d

1 5 13 9
01 1 1 d d

3 7 15 11
11 1 1

2 6 14 10
10 1 d

Figura 6.11 Mapa con implicantes.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 9
La tabla de implicantes de la Figura 6.12, muestra que no hay implicantes primos esenciales. En
la tabla de implicantes no se colocan los mintérminos superfluos.

1 2 3 5 7
A‟B‟ 1 1 1
C‟D 1 1
A‟D 1 1 1 1
A‟C 1 1 1

Figura 6.12 Tabla implicantes con columnas cubiertas por otras.

La columna 1 cubre a la columna 5; la columna 3 cubre a las columnas 2 y 7. Pueden eliminarse


las columnas 1 y 3.
Si se elimina la columna 1, dejando la 5; si se eligen cualquiera de los implicantes marcados en
la columna 5, es decir: C’D o A’D, se estará cubriendo al mintérmino 1.

2 5 7
A‟B‟ 1
C‟D 1
A‟D 1 1
A‟C 1 1

Figura 6.13. Tabla reducida, por eliminación de columnas.

En la Figura 6.13, se tiene que el cubo A’D cubre al cubo C’D; y que el implicante A’C cubre al
implicante A’B’. Eliminando los renglones cubiertos, resulta:

2 5 7
A‟D 1 1
A‟C 1 1

Figura 6.14. Tabla reducida, por eliminación de renglones.

En la tabla reducida de la Figura 6.14, los cubos A’D y A’C deben formar parte de la función ya
que tienen una columna con una sola marca; éstos podría denominarse implicantes primos
esenciales secundarios. Resulta:

f(A, B, C, D) = A’D + A’C

También se tiene, observando la Figura 6.13, las coberturas:

f(A, B, C, D) = A’D + A’B’


f(A, B, C, D) = A’C + C’D

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
6.5. Tabla reducida cíclica.

Se repite la aplicación de las reglas hasta agotar la tabla. Siempre se remueven aquellos
renglones que contengan columnas con una sola marca; se tratan en la tabla reducida, en forma
similar a los implicantes primos esenciales en la tabla completa.

La función se forma con los implicantes de los renglones removidos por contener columnas con
una sola marca.

En determinados casos, luego de remover los implicantes primos esenciales, los renglones
cubiertos por otros, y las columnas que cubren a otras, no puede seguir reduciéndose la tabla.
Se denominan tablas reducidas cíclicas, aquéllas que no pueden reducirse según el método
recién planteado.

Para resolver tablas cíclicas se tienen varios métodos; uno es una heurística conocida como
“bifurcación y acotamiento”, otro es el algoritmo o método exacto de Petrick.

Cuando se tienen condiciones superfluas, el método es similar, excepto que en la tabla no se


consideran las columnas de mintérminos superfluos, debido a que éstos no requieren ser
cubiertos.

El método anterior es adecuado para un número reducido de variables.

6.5.1. Bifurcación.

En la heurística de bifurcación se elige un implicante primo Pi.


Se resuelve la tabla cíclica considerando que Pi forma parte de la cobertura final y también
considerando que no forma parte; se escoge entre las dos, la solución con mínimo costo. Se
almacena el costo y se varía la elección del implicante primo; se vuelve a realizar el proceso
anterior y se compara costos almacenados hasta encontrar el menor.
Puede escogerse el implicante que tenga menos literales, es decir el que cubra la mayor cantidad
de mintérminos; también es buen candidato el cubo que contenga un mintérmino que es cubierto
por el menor número de implicantes, es decir un implicante que sea “casi un implicante primo
esencial”. Existen en la literatura otras heurísticas para escoger al implicante primo que permite
resolver una tabla cíclica.
Ejemplo 6.7.
Costo m1 m2 m3
Ip1 2 1 1
Ip2 4 1 1
Ip3 2 1 1

Figura 6.15. Método de bifurcación (branching).

La columna costo puede ser el número de literales del implicante primo. Se escoge,
tentativamente, uno de los implicantes, removiéndolo junto a los mintérminos que cubre; se

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 11
resuelve el subproblema y se calcula el costo. Finalmente se escoge la bifurcación que conduzca
al costo menor.

Para el caso de la tabla cíclica de la Figura 6.15, se escoge en primer lugar Ip1, con costo 2,
queda, luego de la reducción:
Costo m3
Ip2 4 1
Ip3 2 1

Figura 6.16. Bifurcación con Ip1.

Se escoge Ip3, por ser de menor costo, resulta un costo total de (2 + 2) = 4.

Luego, en segundo lugar, se escoge Ip2, resultando:

Costo m1
Ip1 2 1
Ip3 2 1

Figura 6.17. Bifurcación con Ip2.

Puede elegirse, luego Ip1 o Ip3, resultando un costo total de ( 4 + 2) = 6.


Podría haberse descartado la elección de Ip2, ya que tendría mayor costo que la anterior.

Finalmente, en este ejemplo, se escoge Ip3, resultando:

Costo m2
Ip1 2 1
Ip2 4 1

Figura 6.18. Bifurcación con Ip3.

Se escoge Ip1, con un costo total de: (2 + 2) = 4.

Entonces tenemos dos soluciones con costo total 4, para la solución de la tabla cíclica. A este
costo habría que sumarle el debido a la selección de implicantes primos antes de la tabla cíclica.
Si el subproblema resulta cíclico, debe repetirse el procedimiento en forma recursiva.

6.5.2. Petrick (1956).

Se plantea una expresión booleana P, como producto de sumas, que garantice que la cobertura
considera todos los mintérminos de la tabla, sea ésta cíclica o no, y que a la vez entregue todas
las soluciones de cobertura posibles.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
En la Figura 6.19 se han identificado los implicantes primos y los mintérminos de una tabla
cíclica.
m1 m2 m3 m4
Ip1 1 1
Ip2 1 1
Ip3 1 1
Ip4 1 1

Figura 6.19. Tabla cíclica.

Si definimos Pi como verdadera si el implicante primo Ipi está presente en la cobertura; y falsa
si no está presente, podemos plantear, observando la Figura 6.19, que para que el mintérmino
m1 esté presente en la cobertura, debe cumplirse que debe estar presente el implicante Ip1 o el
implicante Ip4; es decir: (P1+P4).

Que estén presentes todos los mintérminos, puede escribirse:

P = (P1+P4)(P2+P3)(P1+P3)(P2+P4)

La proposición anterior debe satisfacerse, lo cual se logra con P=1.


Puede expresarse P, como una suma de productos. Cada producto es una posible solución.

En el caso del ejemplo, efectuando los productos y empleando el teorema de idempotencia:


P= (P1P2+P1P3+P2P4+P3P4)(P1P2+P1P4+P2P3+P3P4)
P=P1P2+P1P2P4+P1P2P3+P1P2P3P4+P1P3P4+P2P3P4+P3P4
P=P1P2(1+P4+P3+P3P4) +P3P4(1+P1+P2)
P=P1P2 + P3P4.

Conviene emplear: (X + Y)(X + Z) = X + YZ, en la reducción a suma de productos.

Se tienen dos soluciones, que resuelven la tabla cíclica: los implicantes Ip1 e Ip2, o bien los
implicantes Ip3 e Ip4. Puede verificarse que ambas son coberturas, con la tabla de la Figura
6.19.
Se elige la de menor costo.
Ejemplo 6.8.
Si una columna cubre a otra, puede eliminarse la columna que cubre a las otras. Por ejemplo si
un mintérmino tiene garantizada su inclusión, si (P6 + P7 + P8) y si otro mintérmino tiene
asegurada su cobertura si: (P6 + P7); entonces puede comprobarse que:

(P6 + P7 + P8) (P6 + P7) = (P6 + P7) usando (a+b) a = a.

Esto implica conservar el mintérmino con menos marcas en las columnas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 13
El método de Petrick puede aplicarse a tablas de implicantes primos, incluidos los esenciales.
En caso de estar presentes, estos últimos, la expresión que debe satisfacerse, para incluir todos
los mintérminos, tendrá la forma:

P= (Pp1)(...)(Ppm)(Pa+Pb)(…)

Donde (Pp1)(…)( Ppm) son los m implicantes primos esenciales. El resto de las sumas deben
garantizar la inclusión de los mintérminos no esenciales en la cobertura de la función. De esta
forma el tratamiento algebraico para reducir los productos de sumas a suma de productos se
complica un tanto, pero se obtienen todas las formas de implementación posibles. En todas éstas
deben estar presentes los m implicantes primos esenciales.

Ejemplo 6.9.
Si se toma la tabla de la Figura 6.13, y se enumeran los implicantes según:

2 5 7
IP1 A‟B‟ 1
IP2 C‟D 1
IP3 A‟D 1 1
IP4 A‟C 1 1

Figura 6.20. Implicantes primos de Ejemplo 6.6.

Que estén presentes todos los mintérminos, puede escribirse:

P = (P1+P4)(P2+P3)(P3+P4)

Efectuando los productos, se obtiene:


P = P1P3+P2P4+P3P4

Generando las tres soluciones con dos productos:


f1(A, B, C, D) = A’B’ + A’D
f2(A, B, C, D) = C’D + A’C
f3(A, B, C, D) = A’D + A’C’

Lo cual muestra que el método de Petrick obtiene todas las soluciones posibles.
Debe notarse que si se eliminan los renglones que son cubiertos por otros, no se obtienen todas
las soluciones. En el caso del ejemplo de la Figura 6.20, deberían eliminarse el renglón IP1, que
es cubierto por IP4; y el implicante primo IP2 que es cubierto por el renglón IP3.
Ejemplo 6.10.
Reducir la tabla de implicantes de la función f(a,b,c,d) que se muestra en la Figura 6.21.
Notar que el costo de todos los implicantes primos es similar, ya que todos contienen dos
mintérminos.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales

1 3 4 6 7 9 13 15
ipa 1 1
ipb 1 1
ipc 1 1
ipd 1 1
ipe 1 1
ipf 1 1
ipg 1 1
iph 1 1

Figura 6.21. Tabla de implicantes Ejemplo 6.10.

Observar que el implicante primo b es esencial. Removiendo el renglón asociado a b, deben


también removerse columnas asociadas a los mintérminos 4 y 6.

Queda la siguiente tabla reducida:

1 3 7 9 13 15
ipa 1 1
ipc 1 1
ipd 1
ipe 1 1
ipf 1 1
ipg 1 1
iph 1 1

Figura 6.22 Remoción implicante primo esencial

El renglón ipc cubre a ipd; por lo tanto, puede eliminarse el renglón ipd.

1 3 7 9 13 15
ipa 1 1
ipc 1 1
ipe 1 1
ipf 1 1
ipg 1 1
iph 1 1

Figura 6.23. Remoción renglón ipd

La tabla resultante es cíclica.


Una heurística simple es seleccionar a uno de los implicantes de la tabla reducida cíclica,
posiblemente el que tenga mayor número de marcas en las columnas. Este procedimiento no
obtiene todas las soluciones posibles.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 15
Se escoge arbitrariamente al primitivo ipa para formar la función, esto elimina columnas 1 y 3,
quedando:
7 9 13 15
ipc 1
ipe 1 1
ipf 1 1
ipg 1 1
iph 1

Figura 6.24. Remoción implicante primo ipa, en tabla cíclica.

Ahora, ipe cubre a ipc; e ipg cubre a iph, queda eliminando a ipc e iph:

7 9 13 15
ipe 1 1
ipf 1 1
ipg 1 1

Figura 6.25 Remoción renglones ipc e iph.

ipe e ipg deben formar parte de la función; pues contienen a las columnas 7 y 9, que en la tabla
reducida sólo tienen una marca. Luego de esto, la tabla queda vacía.
Finalmente:
f = ipb + ipa + ipe + ipg

Entonces, se tiene, en términos de las variables:

f=a’bd’+a’b’d+bcd+ac’d

Solución con 12 literales y 16 entradas.

Existen otras formas posibles. Éstas se obtienen eliminando otro implicante cuando la tabla
resultó cíclica. Por ejemplo, eliminando ipc, en la Figura 6.18, resulta:

1 9 13 15
ipa 1
ipe 1
ipf 1 1
ipg 1 1
iph 1 1

Figura 6.26 Remoción implicante primo ipc, en tabla cíclica.

ipf cubre a ipe. iph cubre a ipa.

Eliminando ipa e ipe, se obtiene:

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales

1 9 13 15
ipf 1 1
ipg 1 1
iph 1 1

Figura 6.27 Remoción implicantes primos ipa e ipe.

En la cual deben escogerse: ipf e iph.

Entonces resulta otra función mínima:

f = ipb +ipc + ipf + iph

En términos de las variables:


f=a’bd’+b’c’d+a’cd+abd

Solución con 12 literales y 16 entradas.

Aplicando el método de Petrick a la tabla de la Figura 6.21, se debe satisfacer p, para cubrir
todos los mintérminos:

p= (pa+ph)*(pa+pc)*(pb)*(pb+pd)*(pc+pd+pe)*(pg+ph)*(pf+pg)*(pe+pf);

Expresando como suma de productos, se obtienen siete soluciones, debe notarse que pb, está
presente en todos los productos, ya que es esencial. A continuación debe evaluarse el costo de
cada una de las soluciones para seleccionar cuales son mínimas.

p = pb*pc*pe*pg*ph + pa*pb*pe*pf*ph + pa*pb*pd*pf*ph + pa*pb*pd*pf*pg +


pa*pb*pc*pf*pg + pb*pc*pf*ph + pa*pb*pe*pg;

Los dos últimos productos, formados por cuatro implicantes primos son las dos soluciones
obtenidas antes, con 16 entradas. Los primeros cuatro productos del método de Petrick,
conducen a soluciones con 15 literales y 20 entradas, por lo cual no son considerados soluciones
mínimas.

Adicionalmente debe resolverse para la forma producto de sumas, considerando la función:


f '(a, b, c, d )   m(0, 2,5,8,10,11,12,14)
En la cual se encuentran cuatro implicantes primos, todos esenciales. Lo cual conduce a una
solución:
f’= b’d’+ad’+ab’c+a’bc’d

Obteniéndose la expresión con 11 literales y 15 entradas, la cual es la solución mínima:

f= (b+d)(a’+d)(a’+b+c’)(a+b’+c+d’)

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 17
6.6. Método de Quine-McCluskey (1956)

Es una variante para encontrar los implicantes primos, representando en forma digital el método
de Quine, y es adecuado para ser programado en un computador.
Su complejidad, de tipo exponencial, lo convierte en un problema intratable para elevados
valores de variables.

Se forma la columna de mintérminos, codificada en binario o decimal, en grupos, de acuerdo al


número de unos. De esta forma sólo será necesario comparar los mintérminos de grupos
adyacentes, disminuyendo significativamente las comparaciones que deben realizarse para
formar las columnas con cubos mayores. Por ejemplo: el grupo que contiene un uno no puede
ser adyacente a los mintérminos que contengan tres unos; no pueden estar a distancia uno.

Se comparan los elementos de cada grupo, buscando adyacencias, y se forman las siguientes
columnas en forma similar al método de Quine. Notando que en la representación decimal,
diferencias de 1, 2, 4, 8 y, en general, de una potencia de 2, indican una diferencia en un bit.
También se mantiene la separación en grupos en las nuevas columnas.

Es posible encontrar una función que entregue el número de unos en representación binaria de
un número decimal. La cual facilita la formación de los grupos.
La segunda columna representa todas las agrupaciones posibles de dos mintérminos. La tercera
columna representa grupos de cuatro mintérminos, y así sucesivamente.

El algoritmo permite trabajar con dígitos decimales o binarios. Se anotan en los ejemplos
columnas binarias y decimales.
En la segunda y siguientes columnas, las variables eliminadas se denotarán con un guión
(también es posible anotar la posición del guión con un número decimal potencia de dos).

Pueden combinarse dos términos si ellos difieren solamente en un literal; por esta razón, no
podrán combinarse dos términos en un mismo grupo. Los miembros de un grupo de un solo "1",
difieren en dos variables por lo menos; lo mismo puede establecerse para los otros grupos. Esta
observación organiza la búsqueda de adyacencias, ya que sólo es preciso comparar entre grupos
adyacentes.

Ejemplo 6.11.

Aplicar método de Quine-McCluskey para minimizar la siguiente función:

g(a, b, c, d, e, f) =  m(0,2,6,7,8,10,12,14,15,41)

Considerando la equivalencia binaria de los mintérminos decimales, se tienen:

m0 = 000000 m12 = 001100


m2 = 000010 m7 = 000111
m8 = 001000 m14 = 001110
m6 = 000110 m41 = 101001
m10 = 001010 m15 = 001111

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales

Formando grupos, de acuerdo al número de unos, se obtiene la siguiente tabla:

Decimal Binario
mintérmino a b c d e f Número de unos
0 0 0 0 0 0 0 0
2 0 0 0 0 1 0 1
8 0 0 1 0 0 0
6 0 0 0 1 1 0 2
10 0 0 1 0 1 0
12 0 0 1 1 0 0
7 0 0 0 1 1 1 3
14 0 0 1 1 1 0
41 1 0 1 0 0 1
15 0 0 1 1 1 1 4

Figura 6.28 Agrupación según número de unos.

Los mintérminos del grupo con n unos, se comparan con todos los del grupo con (n+1) unos.

En la representación decimal se buscan diferencias de potencias de dos; en binario, se busca la


diferencia en un bit. Puede formarse la siguiente tabla, que contiene los implicantes formados
por dos mintérminos:

Decimal Binario
Grupo Posición a b c d e f Número de unos
0,2 2 0 0 0 0 - 0 0
0.8 8 0 0 - 0 0 0
2,6 4 0 0 0 - 1 0 1
2,10 8 0 0 - 0 1 0
8,10 2 0 0 1 0 - 0
8,12 4 0 0 1 - 0 0
6,7 1 0 0 0 1 1 - 2
6,14 8 0 0 - 1 1 0
10,14 4 0 0 1 - 1 0
12,14 2 0 0 1 1 - 0
7,15 8 0 0 - 1 1 1 3
14,15 1 0 0 1 1 1 -

Figura 6.29 Grupos de dos mintérminos adyacentes.

En la notación decimal, se anota la lista de mintérminos y la posición de la variable eliminada se


registra con una potencia de dos entre paréntesis. Nótese que se mantiene el concepto de grupos,
mediante líneas horizontales. A medida que se forma la segunda tabla, se van marcando los
mintérminos utilizados en la primera tabla.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 19
En el ejemplo no queda marcado el 41, ya que no puede agruparse con ningún otro mintérmino;
en este caso el mintérmino 41 es implicante primo esencial.
Para formar la tercera tabla, que contendrá grupos de cuatro mintérminos; se buscan diferencias
de potencias de dos entre grupos adyacentes, pero además deben tener igual diferencia (o
posición de variable eliminada). Por ejemplo la componente del grupo „0,2‟ es necesario
compararla solamente con „8,10‟ del segundo grupo, debido a la diferencia común (2).

No importa el orden de las listas de mintérminos, sólo se anotan una vez. Por ejemplo, entre los
primeros grupos se tiene:

0, 2 (2)
8, 10 (2)
Diferencia: 8, 8 generando: 0, 2, 8, 10 (2,8)

0, 8 (8)
2, 10 (8)
Diferencia: 2, 2 generando: 0, 8, 2, 10 (8,2)

Estas dos agrupaciones se consideran iguales. Desarrollando en forma similar, se genera la


siguiente tabla:

Decimal Binario
Grupo Posición a b c d e f Número de unos
0, 2, 8, 10 2,8 0 0 - 0 - 0 0
2, 6, 10, 14 4,8 0 0 - - 1 0 1
8, 10,12,14 2,4 0 0 1 - - 0
6, 7, 14, 15 1,8 0 0 - 1 1 - 2

Figura 6.30. Grupos de cuatro mintérminos agrupables.

De este modo quedan marcados todos los grupos de la segunda lista.


Nótese que, en la tabla anterior, no hay diferencias comunes entre grupos, por lo tanto, no puede
formarse una siguiente tabla. Es decir, no hay implicantes formados por 8 mintérminos que
estén formando un 3-cubo.
La tabla de implicantes resulta:

Implicantes 0 2 8 6 10 12 7 14 41 15
primos
41 1
0, 2, 8, 10 1 1 1 1
2, 6, 10, 14 1 1 1 1
8, 10, 12, 14 1 1 1 1
6, 7, 14, 15 1 1 1 1

Figura 6.31. Tabla de implicantes ejemplo 6.8.

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales
Removiendo los implicantes primos esenciales, la función mínima queda:

g = ab'cd'e'f + a'b'd'f' + a'b'cf' + a'b'de

Es conveniente realizar el ejemplo, desarrollando agrupaciones en un mapa de Karnaugh, a


medida que se forman las tablas.

Nótese que todo el proceso podría haberse realizado sólo considerando la información binaria, o
solamente la información decimal.

6.7. Método de Tison (1965) para encontrar implicantes primos. Consenso


reiterado.

6.7.1. Fundamentos.

Se tiene una función f, definida por una suma de productos:

f  p1  p2  ... pk
Si se tiene:
pi  a  p j con a  1 , siendo a una de las variables de f .
Se puede descartar pi de f.
Esto debido a que:
pi  p j  a  p j  p j  (a  1) p j  p j
Lo cual puede anotarse:
pi  p j

El método consiste en introducir términos implicados, de tal manera de eliminar los términos
que los implican. Es decir, se introduce p j , en la suma de productos, y se elimina pi .

Si por ejemplo, se tiene:


f  xT  x ' yT

Debido a que yT es el término de consenso entre x ' yT y xT , puede escribirse:

f  xT  x ' yT  yT
Como se tiene que:
x ' yT  yT

Entonces, se puede cambiar el producto x ' yT por el implicado yT , resultando:

f  xT  yT

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 21
Logrando, de este modo, una suma de productos con menos literales.

La formación de implicantes basada en el teorema de fusión, sobre la que está basado el método
de Quine, también puede verse como la eliminación de productos que implican a otros
productos:
f  xT  x ' T

El consenso de xT y x ' T es T . Y se tiene que: xT  T y que x 'T  T , con lo cual puede


escribirse: f  T .

Los productos S y R tienen consenso S0 R0 , si existe una variable x tal que S  xS0 y R  x ' R0 ;
y no existe una variable y , en el producto S 0 , que aparezca como y ' en R0 . Si existe la variable
y , el término S0 R0 es cero, y no hay consenso. Se dice que la variable x es biforme en el
conjunto: S , R . Los productos S y R están formados por conjuntos disjuntos de mintérminos.
El consenso es el implicante primo de los mintérminos de S y R , y es la máxima cobertura entre
las fronteras de la exclusión mutua entre S y R .

AB S AB
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 1 00 1 1
1 5 13 9 1 5 13 9
01 1 01 1 1
3 7 15 11 3 7 15 11
11 1 1 1 1 11 1 1 1 1
2 6 14 10 2 6 14 10
10 10

S0R0=A‟BD R S0R0=A‟D

Figura 6.32. Término de consenso.

6.7.2. Algoritmo de Tison.

Sea una función f, definida por una suma de productos:

f  p1  p2  ... pk
Sea el conjunto:
L   p1 , p2 ,..., pk 

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

El algoritmo de Tison, encuentra todos los implicantes primos de f.

Para cada variable biforme x de f:


{
Para (cada par pi , p j de L: )
{ Si (existe consenso q, para x) L  L  Q ; }
Para (cada pi de L: )
{ Si (existe p j de L, tal que: pi  p j ) L  L   pi  ; }
}
Ejemplo 6.12.
Sea una función f, definida por sus mintérminos.
AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
15 11
11 13 17 1
2 6 14 10
10 1 1

Figura 6.33. Mintérminos de f.

Si se inicia L con los mintérminos de la función:

L  0000, 0001, 0011, 0101, 0110, 0111,1110,1111

La variable C es biforme, se tiene consenso A’B’D entre: (0001,0011) ; y A’BD entre


(0101,0111).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 23

AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
15 11
11 13 17 1
2 6 14 10
10 1 1

Figura 6.34. Productos de consenso para variable C.

Agregando los términos de consenso a L, queda:


L  0000, 0001, 0011, 0101, 0110, 0111,1110,1111, 00 _1, 01_1
Eliminando los que implican el consenso:
L  0000, 0110,1110,1111, 00 _1, 01_1

D es biforme, se tiene consenso A’B’C’ entre (0000, 00_1), A’BC entre (0110, 01_1) y ABC
entre (1110, 1111).
AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
3 7 15 11
11 1 1 1
2 6 14 10
10 1 1

Figura 6.35. Productos de consenso para variable D.

Agregándolos a L:
L  0000, 0110,1110,1111, 00 _1, 01_1, 000 _, 011_,111_
Eliminando los que implican consensos:
L  00 _1, 01_1, 000 _, 011_,111_ 

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales

A es biforme, se tiene consenso BC entre (011_, 111_).


AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
3 7 15 11
11 1 1 1
2 6 14 10
10 1 1

Figura 6.36. Productos de consenso para variable A.

Agregando (_11_) a L:
L  00 _1, 01_1, 000 _, 011_,111_, _11_
Eliminando los que implican consenso:
L  00 _1, 01_1, 000 _, _11_ 
Finalmente B, es biforme, se tiene consenso A’D entre (00_1,01_1),
AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
15 11
11 13 17 1
2 6 14 10
10 1 1

Figura 6.37. Productos de consenso para variable B.

Agregando (0__1) a L:
L  00 _1, 01_1, 000 _, _11_, 0 __1
Eliminando los que implican consenso, se obtienen los implicantes primos:
L  000 _, _11_, 0 __1

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 25

AB
CD 00 01 11 10
0 4 12 8
00 1
1 5 13 9
01 1 1
3 7 15 11
11 1 1 1
2 6 14 10
10 1 1

Figura 6.38. Implicantes primos para f.

Finalmente, debido a que todos son implicantes primos esenciales:

f  A ' B ' C ' BC  A ' D

6.7.3. Operaciones para desarrollar el algoritmo,

La elaboración de algoritmos está basada en desarrollar funciones que determinen:


a) Obtener términos de consenso.
Para encontrar la idea general, puede observarse el siguiente ejemplo:
S    10  1  0   0
R    11    0   
Sólo la cuarta variable es biforme, y no existe otra que presente conflicto binario.

Entonces:
S0 R0    1   1  0   0

Debido a que el producto de una variable o su complemento en S, cuando no está presente esa
variable en R, deja la variable en el término de consenso.

Lo anterior puede comprobarse en el siguiente ejemplo. El producto: (ab ' e ')(ab ' cde)  ab ' cd
Puede representarse, empleando notación de cubos, por:

S  10--0
R =10111
S0 R0  1011-

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales
Considerando un cubo como una secuencia de caracteres, pueden compararse uno a uno los
caracteres de dos cubos.

Para obtener el término de consenso:


Si los caracteres son iguales, queda el carácter; si son diferentes en binario queda  ; si uno de
los caracteres es  , queda el otro carácter.
b) Un producto que implica otro: pi  p j

El código, con notación de subcubo, para pi , sintoniza con todos los caracteres binarios de p j ;
y pi tiene unos o ceros en posiciones donde p j tiene  .
Ejemplo: 1011  1  1  1  1

Ejemplo 6.13.

Aplicando las operaciones binarias anteriores, pueden determinarse los implicantes primos de f,
debe observarse que L puede estar formado por productos, no necesariamente mintérminos.

Para: f ( x1 , x2 , x3 , x4 , x5 , x6 ) , se tiene:
L  0  11  1, 0  0  1,1  11  0,1  1  1

x1 es biforme en L, en  0  11  1,1  1  1 con consenso:    11  1


L  0  11  1, 0  0  1,1  11  0,1  1  1,   11  1

Se tiene la única implicación: 0  11  1    11  1 .


Entonces L queda:
L  0  0  1,1  11  0,1  1  1,   11  1
x2 no es biforme en L.
x3 es biforme en L, en  0  0  1,1  11  1 con consenso:  0  1  1
L  0  0  1,1  11  0,1  1  1,   11  1, 0  1  1
No se encuentran implicaciones. L conserva sus valores.

x4 y x5 no son biformes en L.
x6 es biforme en L, en 1  11  0,1  1  1 con consenso: 1  11    y también en:
1  11  0,   11  1 con consenso: 1  11   
L  0  0  1,1  11  0,1  1  1,   11  1, 0  1  1,1  11  
Se tiene la única implicación: 1  11  0  1  11   .

Se tienen entonces los implicantes primos:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 27

L  0  0  1,1  1  1,   11  1, 0  1  1,1  11  

Ejemplo 6.14.

Minimizar: be’f+acde’fgh+b’gh

Se tiene una función de ocho variables, para la cual es difícil emplear mapas de Karnaugh.
Con b biforme, el consenso entre el primer y último término es: e’fgh.
Pero acde’fgh implica e’fgh. A su vez e’fgh es término de consenso, e implica a be’f y b’gh.
Entonces resulta: be’f + b’gh

Ejemplo 6.15.

Minimizar: ac’de+d’+e’+c.

c es biforme, el consenso es ade, y ac’de implica a ade. Queda ade+d’+e’+c.


d es biforme, el consenso entre ade y d’ es ae. Pero ade implica a ae. Queda ae+d’+e’+c.
e es biforme, el consenso entre ae y e’ es a; pero ae implica a e, queda finalmente: a+d’+e’+c.

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales

Problemas resueltos.

Problema 6.1.

Se tiene la función g(A, B, C, D, E, F) =  m( 8, 10, 24, 26, 42, 58, 59 )


a) Determinar los implicantes primos aplicando el método de Quine McCluskey.
b) Indicar cuáles son esenciales, justificando su respuesta.
c) Minimizar la función g.

Solución.
Se ordena según número de unos de los mintérminos. En la primera columna quedan todos los
mintérminos marcados, en el proceso de formar la siguiente columna de 1-cubos.
un uno
8 001000 
10 001010  dos unos
24 011000 
26 011010  tres unos
42 101010 
58 111010  cuatro unos
59 111011 
cinco unos

Figura P6.1. Ordenamiento según número de unos.

En la segunda columna, de 1-cubos, queda sin marcar el grupo 58,59.

8,10 0010_0 
8,24 0_1000 
10,26 0_1010 
10,42 _01010 
24,26 0110_0 
26,58 _11010 
42,58 1_1010 
58,59 11101_ ip1 queda sin marcar

Figura P6.2. Implicantes formados por dos mintérminos.

La tercera columna, de los 2-cubos, es la última que puede formarse. Y por lo tanto los
renglones quedan sin marcar.

8,10,24,26 0 _10_0 ip2


10,26,42,58 _ _1010 ip3

Figura P6.3. 2 cubos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 29
Finalmente los implicantes son: ip1 = ABCD'E ; ip2 = A'CD'F' ; ip3 = CD'EF'

Determinación de los implicantes primos.


ip1 es esencial porque es el único que contiene al 8 y 24.
ip2 es esencial porque es el único que contiene al 42.
ip3 es esencial porque es el único que contiene al 59.

Resultando la siguiente función mínima: g = ABCD'E + A'CD'F' + CD'EF'

Problema 6.2.

En el proceso de reducción de tablas se tiene la siguiente tabla reducida.

2 3 4 5 8 10
ip1 x x x
ip2 x x x x
ip3 x x
ip4 x x x x
ip5 x x

Figura P6.4. Tabla Problema 6.2.

a) Determinar cuáles renglones pueden eliminarse por estar cubiertos por otro.
b) Determinar cuáles columnas pueden eliminarse.
c) Explicar la razón por la que ip2 e ip4 figuran con los mismos mintérminos.

Solución.
a) ip1 cubre a ip3 y también a ip5. Podrían eliminarse renglones asociados a ip3 e ip5.
ip2 cubre a ip4 y viceversa; puede eliminarse uno de ellos.
b) Columna 3 puede eliminarse, ya que está cubierta por la columna 2. (el mintérmino 3 tiene
asegurada su consideración)
Columna 4 puede eliminarse, ya que está cubierta por las columnas 5, 8 y 10. (el mintérmino 4
tiene asegurada su consideración)
Columnas 5, 8 y 10 se cubren entre sí. Pueden eliminarse dos cualesquiera.
c) ip2 e ip4 tienen iguales mintérminos, se diferencian en implicantes superfluos; los cuáles no
se indican en la tabla.

Ejercicios propuestos.

Ejercicio 6.1.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:


f(a, b, c, d) = m(0, 2, 5, 6, 7, 8, 10, 12, 13, 14, 15) resulta:
f(a, b, c, d) = b’d’ + bd + cd’ + ad’

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales
Ejercicio 6.2.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:


f(a, b, c, d) = m(0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) tiene las siguientes soluciones:
f1(a, b, c, d) =a’b + ac’ + b’c + a’d’ P3*P5*P7*P8
f2(a, b, c, d) =ab’ + bc’ + a’c + a’d’ P2*P4*P6*P8
f3(a, b, c, d) =ab’ + bc’ + a’c + b’d’ P2*P4*P6*P9
f4(a, b, c, d) =c’d’ + a’b + ac’ + b’c P1*P3*P5*P7
f5(a, b, c, d) =c’d’ + ab’ + bc’ + a’c P1*P2*P4*P6
f6(a, b, c, d) =a’b + ac’ + b’c + b’d’ P3*P5*P7*P9

Todas de 12 entradas y 8 literales.

Pero el diseño mínimo se obtiene con la forma producto de sumas:


f(a, b, c , d)= (a’ + b’+ c’)(a + b + c + d’) con 8 entradas y 7 literales.

Verificar que se tienen 9 implicantes primos, todos de igual costo en literales:

IP1 IP2 IP3 IP4 IP5 IP6 IP7 IP8 IP9


c‟d‟ ab‟ a‟b bc‟ ac‟ a‟c b‟c a‟d‟ b‟d‟

Y para que estén presentes todos los mintérminos, debe cumplirse, aplicando el método de
Petrick:

P = (P1+P8+P9)*(P6+P7+P8+P9)*(P6+P7)*(P1+P3+P4+P9)*(P3+P4)*(P3+P6+P9)*
(P3+P6)* (P1+P2+P5+P8)*(P2+P5)*(P2+P7+P8)*(P2+P7)*(P1+P4+P5)*(P4+P5);

Lo cual entrega 15 soluciones, seis de ellas formadas por cuatro implicantes, que resultan las
formas mínimas.

P = P4*P5*P6*P7*P9 + P2*P3*P4*P7*P9 + P2*P3*P5*P6*P9 + P4*P5*P6*P7*P8 +


P2*P3*P4*P7*P8 + P2*P3*P5*P6*P8 + P1*P4*P5*P6*P7 + P1*P2*P3*P4*P7 +
P1*P2*P3*P5*P6 + P3*P5*P7*P9 +P2*P4*P6*P9 +P3*P5*P7*P8 +P2*P4*P6*P8 +
P1*P3*P5*P7 + P1*P2*P4*P6;

La reducción a producto de sumas puede lograrse escribiendo en un archivo eq.eqn, el


contenido:

INORDER = P1 P2 P3 P4 P5 P6 P7 P8 P9;
OUTORDER = P;
P = (P1+P8+P9)*(P6+P7+P8+P9)*(P6+P7)*(P1+P3+P4+P9)*(P3+P4)*(P3+P6+P9)*(P3+P6)*
(P1+P2+P5+P8)*(P2+P5)*(P2+P7+P8)*(P2+P7)*(P1+P4+P5)*(P4+P5);

Luego empleando sis (ver Apéndice 6), se ejecutan los comandos:


sis> read_eqn eq.eqn
sis> write_eqn res.eqn

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 31

Lo cual produce el archivo res.eqn, con los productos:


INORDER = P1 P2 P3 P4 P5 P6 P7 P8 P9;
OUTORDER = P;
P = P4*P5*P6*P7*P9 + P2*P3*P4*P7*P9 + P2*P3*P5*P6*P9 + P4*P5*P6*P7*P8 +
P2*P3*P4*P7*P8 + P2*P3*P5*P6*P8 + P1*P4*P5*P6*P7 + P1*P2*P3*P4*P7 +
P1*P2*P3*P5*P6 + P3*P5*P7*P9 + P2*P4*P6*P9 + P3*P5*P7*P8 + P2*P4*P6*P8 +
P1*P3*P5*P7 + P1*P2*P4*P6;

Los últimos seis productos son las formas mínimas, y se han anotado a la derecha de las
funciones en el enunciado del problema.

Ejercicio 6.3.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:


f(a, b, c, d) = m(2, 3, 7, 9, 11, 13) +d(1, 10, 15) resulta:
f(a, b, c, d) = ad + b’c + cd
Con implicantes primos: ad , b’c , cd, b’d

Ejercicio 6.4.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:


f(a, b, c, d) = Σ m(1, 5, 7, 8, 9, 13, 15) + Σ d(4, 12, 14) resulta:
f(a, b, c, d) = ab + ac’+ c’d

Ejercicio 6.5.

Verificar que el diseño mínimo de:


f(a, b, c) = Σ m(0, 1, 2, 5, 6, 7)
resulta: f(a, b, c) = a'b'+ bc'+ ac = a'c'+ b'c + ab

Ejercicio 6.6.

Verificar que el diseño mínimo de:


f(a, b, c, d) = Σ m(2, 5, 6, 11, 12, 14, 15) + Σ d(0, 3, 4)
resulta: f(a, b, c, d) = a'bc' + bd' + acd + a'd'

Ejercicio 6.7.

Demostrar
f  g  f  g  g y f g  f
f  g  ( f  g) y (g  f )

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales
Referencias.

W.V. Quine. "The problem of simplifying truth functions." American Mathematical Monthly
Vol. 59. Octubre 1952. págs 521-531.
W.V. Quine. "A way to simplify truth functions." American Mathematical Monthly Vol. 62.
Noviembre 1955. págs 627-631.

E.J. McCluskey. "Minimization of Boolean Functions". Bell Syst. Tech. Journal N°6,
Noviembre 1956. págs. 1417-1444.

P. Tison. "Théorie des consensus.” These présentée à La Faculte des Sciences de L'Universite
de Grenoble. Junio 1965.
P. Tison, "Generalization of consensus theory and application to the minimization of Boolean
functions," IEEE Trans. Electron. Comput., vol. EC-16, pp. 446-456, Aug. 1967.

Petrick, S. R. “A Direct Determination of the Irredundant Forms of a Boolean Function from the
Set of Prime Implicants”. Technical Report AFCRC-TR-56-110, Air Force Cambridge Research
Center, Cambridge, MA, USA. 1956.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 33

Índice general.

CAPÍTULO 6 ............................................................................................................................................. 1
ALGORITMOS DE MINIMIZACIÓN ................................................................................................... 1
6.1. IMPLICACIÓN ..................................................................................................................................... 1
6.2. IMPLICANTES PRIMOS ........................................................................................................................ 2
6.3. IMPLICANTE PRIMO ESENCIAL ............................................................................................................ 2
Ejemplo 6.1. ........................................................................................................................................ 3
Ejemplo 6.2. ........................................................................................................................................ 3
6.4. MÉTODO DE QUINE (1952) ................................................................................................................ 4
6.4.1. Obtención de implicantes primos .............................................................................................. 4
Ejemplo 6.3. ..................................................................................................................................................... 4
6.4.2. Tabla de implicantes ................................................................................................................. 5
Ejemplo 6.4. ..................................................................................................................................................... 5
6.4.3. Reducción de tablas................................................................................................................... 6
Ejemplo 6.5. ..................................................................................................................................................... 6
Ejemplo 6.6. ..................................................................................................................................................... 8
6.5. TABLA REDUCIDA CÍCLICA. ............................................................................................................. 10
6.5.1. Bifurcación. ............................................................................................................................. 10
Ejemplo 6.7. ................................................................................................................................................... 10
6.5.2. Petrick (1956). ......................................................................................................................... 11
Ejemplo 6.8. ................................................................................................................................................... 12
Ejemplo 6.9. ................................................................................................................................................... 13
Ejemplo 6.10. ................................................................................................................................................. 13
6.6. MÉTODO DE QUINE-MCCLUSKEY (1956) ........................................................................................ 17
Ejemplo 6.11...................................................................................................................................... 17
6.7. MÉTODO DE TISON (1965) PARA ENCONTRAR IMPLICANTES PRIMOS. CONSENSO REITERADO. ........ 20
6.7.1. Fundamentos. .......................................................................................................................... 20
6.7.2. Algoritmo de Tison. ................................................................................................................. 21
Ejemplo 6.12. ................................................................................................................................................. 22
6.7.3. Operaciones para desarrollar el algoritmo, ........................................................................... 25
a) Obtener términos de consenso. .................................................................................................................. 25
b) Un producto que implica otro: pi  p j ............................................................................................... 26
Ejemplo 6.13...................................................................................................................................... 26
Ejemplo 6.14...................................................................................................................................... 27
Ejemplo 6.15...................................................................................................................................... 27
PROBLEMAS RESUELTOS. ........................................................................................................................ 28
Problema 6.1. .................................................................................................................................... 28
Problema 6.2. .................................................................................................................................... 29
EJERCICIOS PROPUESTOS. ....................................................................................................................... 29
Ejercicio 6.1. ..................................................................................................................................... 29
Ejercicio 6.2. ..................................................................................................................................... 30
Ejercicio 6.3. ..................................................................................................................................... 31
Ejercicio 6.4. ..................................................................................................................................... 31
Ejercicio 6.5. ..................................................................................................................................... 31

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales
Ejercicio 6.6. ......................................................................................................................................31
Ejercicio 6.7. ......................................................................................................................................31
REFERENCIAS. .........................................................................................................................................32
ÍNDICE GENERAL. ....................................................................................................................................33
ÍNDICE DE FIGURAS .................................................................................................................................35

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 6. Algoritmos de minimización 35

Índice de figuras

Figura 6.1 Implicación. ................................................................................................................. 1


Figura 6.2 Implicantes primos ....................................................................................................... 3
Figura 6.3 Implicantes primos ejemplo 6.2 ................................................................................... 3
Figura 6.4 Obtención de implicantes primos ................................................................................. 5
Figura 6.5 Tabla de implicantes primos ........................................................................................ 5
Figura 6.6 Renglón cubierto por otro. .......................................................................................... 6
Figura 6.7 Mapa con implicantes. ................................................................................................ 7
Figura 6.8 Tabla de implicantes. ................................................................................................... 7
Figura 6.9 Tabla de implicantes reducida...................................................................................... 7
Figura 6.10 Columna cubierta por otra.......................................................................................... 8
Figura 6.11 Mapa con implicantes. ............................................................................................... 8
Figura 6.12 Tabla implicantes con columnas cubiertas por otras.................................................. 9
Figura 6.13. Tabla reducida, por eliminación de columnas........................................................... 9
Figura 6.14. Tabla reducida, por eliminación de renglones. ......................................................... 9
Figura 6.15. Método de bifurcación (branching)......................................................................... 10
Figura 6.16. Bifurcación con Ip1................................................................................................. 11
Figura 6.17. Bifurcación con Ip2................................................................................................. 11
Figura 6.18. Bifurcación con Ip3................................................................................................. 11
Figura 6.19. Tabla cíclica. ........................................................................................................... 12
Figura 6.20. Implicantes primos de Ejemplo 6.6......................................................................... 13
Figura 6.21. Tabla de implicantes Ejemplo 6.10. ........................................................................ 14
Figura 6.22 Remoción implicante primo esencial ....................................................................... 14
Figura 6.23. Remoción renglón ipd ............................................................................................. 14
Figura 6.24. Remoción implicante primo ipa, en tabla cíclica. ................................................... 15
Figura 6.25 Remoción renglones ipc e iph. ................................................................................. 15
Figura 6.26 Remoción implicante primo ipc, en tabla cíclica. .................................................... 15
Figura 6.27 Remoción implicantes primos ipa e ipe. .................................................................. 16
Figura 6.28 Agrupación según número de unos. ......................................................................... 18
Figura 6.29 Grupos de dos mintérminos adyacentes. .................................................................. 18
Figura 6.30. Grupos de cuatro mintérminos agrupables.............................................................. 19
Figura 6.31. Tabla de implicantes ejemplo 6.8. .......................................................................... 19
Figura 6.32. Término de consenso. ............................................................................................ 21
Figura 6.33. Mintérminos de f. ................................................................................................... 22
Figura 6.34. Productos de consenso para variable C. ................................................................. 23
Figura 6.35. Productos de consenso para variable D.................................................................. 23
Figura 6.36. Productos de consenso para variable A. ................................................................. 24
Figura 6.37. Productos de consenso para variable B. ................................................................. 24
Figura 6.38. Implicantes primos para f. ...................................................................................... 25
Figura P6.1. Ordenamiento según número de unos. .................................................................... 28
Figura P6.2. Implicantes formados por dos mintérminos............................................................ 28
Figura P6.3. 2 cubos. ................................................................................................................... 28
Figura P6.4. Tabla Problema 6.2. ................................................................................................ 29

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 7

Sistemas Combinacionales

7.1. Componentes básicos.

Las componentes digitales electrónicas han evolucionado rápidamente. Se han logrado elevados
niveles de integración; es decir gran número de compuertas y flip-flops en un solo dispositivo.

Para manejar el nivel de complejidad, de un proyecto que emplee elevado número de


componentes, se han desarrollado herramientas de apoyo al diseño, las cuales también han
evolucionado con las nuevas metodologías de diseño de software.

Debido a que los problemas computacionales que deben ser resueltos son de gran complejidad,
y a menudo de costo exponencial, se han desarrollado heurísticas y nuevos conceptos para
describir sistemas digitales.

Históricamente las compuertas y flip-flops se disponían en pastillas con integración en pequeña


escala; ver Figura 1.15. Luego se dispuso de componentes integrados en mediana y gran escala;
MSI y LSI, respectivamente (Medium and Large Scale Integration). En esta segunda etapa se
introdujeron primitivas fijas, que implementan una función específica como: contadores,
registros, multiplexores, decodificadores, codificadores, etc. El disponer de primitivas más
poderosas que las compuertas lógicas básicas, hizo necesario métodos adecuados de diseño;
comenzaron los lenguajes de descripción de hardware (HDL).

Posteriormente los procesos de fabricación permitieron obtener memorias más baratas, y


comienzan a emplearse en el diseño digital memorias: PROM, EPROM, EEPROM, FLASH. Al
mismo tiempo aparecen los primeros dispositivos programables: PAL, PLA, PLD, los cuales
evolucionaron a los sistemas programables actuales: CPLD y FPGA.

Estudiaremos algunos bloques constructivos básicos: Veremos que ellos pueden implementarse
en base a compuertas, o bien existen como dispositivos de mediana integración, o son partes o
bloques que se pueden agregar a esquemáticos, o son elementos básicos de los dispositivos
programables, o son módulos de software de los lenguajes descriptivos de hardware.

Estudiaremos los siguientes bloques básicos: Multiplexores, decodificadores, demultiplexores.


A éstos pueden agregarse comparadores y bloques aritméticos.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
7.2. Multiplexor. Mux.

Mediante señales de control se selecciona una de las 2 n entradas y se la dirige hacia una salida
única. Se tienen n señales de control que, al ser decodificadas internamente, permiten establecer
la única vía hacia el canal de salida. El dispositivo puede emplearse para convertir una entrada
paralela en una salida en serie.

Un diagrama funcional se muestra en la Figura 7.1:


x
0
x
1
x
2 . z
. n
.
x control
2n-1

Figura 7.1 Esquema funcional multiplexor.

Suele existir una señal de habilitación (enable) que permite el control del multiplexor. Cuando,
por razones que se verán más adelante, se autoriza el ingreso del control en un breve lapso de
tiempo, la señal de habilitación toma la forma de un pulso angosto. Este pulso de control, se
denomina STROBE, en inglés.

La Figura 7.2, muestra un símbolo lógico para un multiplexor de dos vías a una. El símbolo
representa la ecuación: f (c, x0 , x1 ) c ' x0 cx1
c

x0
0
f
x1
1

Figura 7.2 Multiplexor dos vías a una.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 3

x0 f

x1

Figura 7.2.a. Multiplexor basado en compuertas.

La Figura 7.3, muestra la realización o síntesis de un mux de 4 vías a una, mediante tres muxs
de 2 vías a una. La descomposición aumenta el número de niveles.

c1
c0

x0 0
x1 1

0
1
f

x2 0
x3 1

Figura 7.3 Multiplexor 4 a 1.

Para el mux de la Figura 7.3, se tiene la siguiente ecuación de salida:

f(c1, c0, x3, x2, x1, x0) = c1c0 x3 + c1c0' x2 + c1'c0 x1 + c1'c0' x0

Si se desea disminuir el número de niveles, la Figura 7.4, muestra un MUX (multiplexor) de 4


vías a una, implementado con dos niveles de compuertas. Los puntos donde existe conexión se
han destacado con un punto grueso (soldadura).

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

x0

x1 f

x2

x3

c1 c0

Figura 7.4 Diseño combinacional de multiplexor 4 a 1.

La Figura 7.5, muestra dos símbolos equivalentes para el mux 4 a 1.


c0
c1 c

x0 00 0
x1 01 x 1
x2 f f
10 2
x3 11 3

Figura 7.5 Símbolo mux 4 a 1.

La Figura 7.5 derecha, muestra conjuntos de señales con notación de buses o arreglos de
alambres.

Mediante el teorema de expansión de Shannon pueden implementarse funciones lógicas


mediante multiplexores.

Ejemplo 7.1.

Desarrollar mediante multiplexores la siguiente función:

f x1 x2 x1 x3 x1 x3

Aplicando expansión, respecto a x1 , mediante un mux de 2 a 1, se obtiene:

f ( x1 , x2 , x3 ) x1 f (1, x2 , x3 ) x1 f (0, x2 , x3 ) x1 ( x2 x3 ) x1 ( x3 )

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 5

x1

x3’ = f(0,x2,x3 ) 0
f
x2+x3 = f(1,x2,x3 ) 1

Figura 7.6 Implementación con mux 2 a 1.

Aplicando nuevamente la expansión a las funciones de dos variables, en x2 , x3 , se obtiene:

f ( x1 , x2 , x3 ) x1 f (1, x2 , x3 ) x1 f (0, x2 , x3 )
x1 ( x2 f (1,1, x3 ) x2 f (1, 0, x3 )) x1 ( x2 f (0,1, x3 ) x2 f (0, 0, x3 ))
x1 x2 f (1,1, x3 ) x1 x2 f (1, 0, x3 ) x1 x2 f (0,1, x3 ) x1 x2 f (0, 0, x3 )

La Figura 7.7, muestra el desarrollo mediante tres muxs 2 a 1.


x2 x1

x3’=f(0,0,x3 ) 0

x3’=f(0,1,x3 ) 1
0
f
x2 1

x3=f(1,0,x3 ) 0

1=f(1,1,x3 ) 1

Figura 7.7 Implementación con muxs 2 a 1.

Expandiendo la función, del Ejemplo 7.1, se obtiene:

f x1 x2 x1 x3 x1 x3 x1 x2 x1 x2 x3 x1 x2 x3 x1 x2 x3 x1 x2 x3

Simplificando, se obtiene:
f x1 x21 x1 x2 x3 x1 x2 x3 x1 x2 x3

Comparando coeficientes con la expansión realizada para tres variables, se obtienen las
funciones de x3 , que se indican en la Figura 7.7.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
Alternativamente, si se desea un diseño de menos niveles, puede emplearse un mux de 4 a 1,
como se indica en la Figura 7.8.
x1
x2
x3’ 00
x3 01
f
x3’ 10
1 11

Figura 7.8 Desarrollo basado en mux 4 a 1.

Del diseño anterior puede verse que un mux de 4 a 1, permite implementar cualquier función de
tres variables.
Un multiplexor de 8 vías a una, cuyo diagrama se muestra en la Figura 7.9, implementado en
dos niveles, está disponible en la familia TTL, se tienen los dispositivos: 74151, 74152.

Un mux de 8 a 1, permite implementar cualquier función de cuatro variables.


Las señales de control: c2, c1 y c0, representan a 3 de las 4 variables. La cuarta variable o su
complemento se conecta en algunas de las entradas formando los mintérminos. Algunas de las
entradas también pueden conectarse a 1 (Vcc) ó 0 (tierra), dependiendo de los mintérminos que
deben cubrirse.

f=c2c1c0I7+c2c1c0'I6+c2c1'c0I5+c2c1'c0'I4+c2'c1c0I3+c2'c1c0'I2+c2'c1'c0I1+c2'c1'c0'I0

I0
I1
I2 Mux
I3 8:1
I4 f
I5
I6 8:1
I7 mu
x
c2c1c0

Figura 7.9. Multiplexor de 8 vías a una.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 7

El 74150 implementa un mux de 16 vías a una; este mux permite implementar cualquier función
de cinco variables.

Una alternativa electrónica es dotar a estos multiplexores de una salida de tercer estado. En este
caso la compuerta de salida además de los valores lógicos 1 y 0, puede quedar en un estado de
alta impedancia. En caso de TTL, se disponen conexiones para que ambos transistores del
totem-pole de salida queden cortados. Este control adicional, permite conectar las salidas de dos
multiplexores a un mismo alambre, ya que sólo uno de los multiplexores impone valores lógicos
en la salida; el otro, está en tercer estado.
Esto permite componer un mux de 2n vías a partir de dos muxs de n vías.
control de tercer estado

x0

x1 z

x2

x3

c1 c0

Figura 7.10. Multiplexor con salida de tercer estado.

Ejemplos de estas configuraciones de tercer estado son: 74251, 74253, 74257

7.3. Tercer Estado. Alta Impedancia.

Además de los valores lógicos 0 y 1, hemos visto el valor superfluo (usualmente X o d), sin
embargo estos valores no aparecen una vez que se ha realizado un diseño ya que éstos se han
empleado para minimizar, y han sido reemplazados por unos o ceros según convenga.

Suele encontrarse un tercer estado en el cual puede estar una variable booleana, este valor es de
alta impedancia, y se lo denomina corrientemente Z. Cuando una salida está en tercer estado,
puede considerársela desconectada.

Las compuertas que pueden proveer esta salida tienen una entrada adicional, denominada
habilitación de la salida (output enable). Cuando esta señal de control está desactivada la salida
está en tercer estado; cuando está activa, la salida puede tomar valores lógicos, de acuerdo a las
entradas.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales

El siguiente diagrama ilustra un buffer de tercer estado (amortiguador entre etapas), junto a su
tabla de verdad, en la cual aparecen los estados X (superfluo) y Z (de tercer estado):

OE E OE S
X 0 Z
0 1 0
E S
1 1 1

Figura 7.11. Buffer de tercer estado.

Empleando buffers de tercer estado puede diseñarse un multiplexor, según se ilustra en el


diagrama de la Figura 7.12.
OE

E1 OE S
1 E1
OE' S
0 E2

E2

Figura 7.12. Multiplexor mediante buffers de tercer estado.

En numerosos circuitos se proveen buffers de tercer estado que activan la salida cuando su nivel
es bajo. En estos casos la señal de control, antes de ingresar al buffer, tiene un pequeño círculo,
que se interpreta como un inversor. En estos casos de activación del control mediante nivel
bajo, el nombre de la señal suele definirse como una señal negada, según se ilustra, en el
siguiente diagrama:

OE ' E OE ' S
X 1 Z
0 0 0
E S
1 0 1
Figura 7.13. Buffer con salida activada por señal de lógica negativa.

7.4. Decodificadores.

Permiten seleccionar una de las N salidas de un circuito que tiene n entradas.


En decodificadores binarios se cumple la relación: N 2n .

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 9
Ejemplo 7.2

Para un decodificador de dos líneas de entradas, se tendrán cuatro salidas. Pueden denominarse
decodificadores de 2 entradas a 4 salidas, anotando 2 : 4; o bien, una salida de las cuatro, lo que
se anota: 1 de 4.
E

Dec 3 z3
2a4 2 z2
1 z1
1 0 0 z0

c1 c0

Figura 7.14. Decodificador binario.

Dependiendo de la combinación presente en la entrada, se tendrá una de las salidas en alto; el


resto de las salidas serán bajas.
En caso de tener: c1 = 0 y c0 = 1, se tendrá que: z1 = 1, z0 = z2 = z3 = 0.

El circuito de la Figura 7.15, implementa un decodificador binario, 2:4, en base a compuertas, y


en dos niveles. Se dispone de la señal E, que habilita al decodificador.

z0 E c1 c0 z3 z2 z1 z0
1 0 0 0 0 0 1
z1 1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
z2
0 X X 0 0 0 0

z3 z0 = c1' c0' E
z1 = c1' c0 E
z2 = c1 c0' E
z3 = c1 c0 E
c0 E
c1
Figura 7.15. Diseño en base a compuertas

Existen decodificadores que no están basados en el sistema binario; por ejemplo, un


decodificador muy usado es el BCD a decimal. En él, la entrada corresponde a un dígito BCD,
en paralelo, es decir 4 entradas; y se tienen 10 salidas, una por cada dígito decimal. Un ejemplo
de este decodificador es el 74145.

En toda memoria existe un decodificador del bus de direcciones, cuyas salidas activan sólo una
de las palabras de la memoria.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
Si en las entradas del decodificador se ingresan las variables, en las salidas se tendrán los
mintérminos. Con un decodificador binario de n entradas se tendrán 2 n salidas. Con esta
componente se pueden implementar todas las funciones de n variables. Para esto se conectan
las señales asociadas a las variables en las entradas de control; la entrada (gate) se habilita en
uno lógico, con esto se tendrán en las salidas los mintérminos de la función. Finalmente para
implementar la función se efectúa un or de los mintérminos presentes en la función.

Pueden conectarse decodificadores en estructura de árbol, para formar decodificadores de


mayores órdenes. En la Figura 7.15.a, se muestra un decodificador de 4 a 16, la configuración
produce los 16 mintérminos asociados a las 4 variables.
E=1
3
2
1 3
1 0 0 2
1
1 0 0
ab
cd

3
2
1
1 0 0
cd

3
2
1
1 0 0
cd

3
2
1
1 0 0
cd

Figura 7.15.a. Decodificador binario 4 a 16

7.5. Demultiplexer, Distribuidor.

Una variante de los circuitos decodificadores es el demultiplexer, que esquemáticamente puede


representarse por:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 11

z
0
z
1
x . z
2
.
.
control z
2n-1
Figura 7.16. Esquema funcional de Demultiplexor

Permite dirigir la información que fluye desde x, por una (y sólo una) de las 2 n salidas, de
acuerdo a una entrada de control codificada, en n líneas. La señal de control selecciona la vía
por la que fluirá la única información de entrada.

La Figura 7.17 muestra el diseño de un demultiplexor en base a compuertas:

z0
z0 = c1' c0' x
z1 z1 = c1' c0 x
x z2 = c1 c0' x
z2 z3 = c1 c0 x

z3

c1 c0

Figura 7.17. Diseño demultiplexor en base a compuertas.

La señal x fluye hacia la salida z3, si las señales de control toman valores: c1 = 1, c0 = 1. El
resto de las salidas: z0, z1 y z2 toman valor cero.

En los decodificadores, la señal x suele llamarse habilitadora (Gate o Enable).

En el caso de un demultiplexer x es la señal de entrada. En forma de bloques, suele emplearse


la siguiente notación:

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales

c x

Figura 7.18. Símbolo demultiplexor.

Para un demultiplexor con una entrada, tres señales de control y 8 salidas, se tienen las
ecuaciones:

z0 = c2' c1' c0' x z4 = c2 c1' c0' x


z1 = c2' c1' c0 x z5 = c2 c1' c0 x
z2 = c2' c1 c0' x z6 = c2 c1 c0' x
z3 = c2' c1 c0 x z7 = c2 c1 c0 x

El siguiente esquema ilustra la confección de un switch, en base a un multiplexor y un


demultiplexor:
x
cmux

y
cdemux

Figura 7.19. Diseño switch empleando multiplexor y demultiplexor.

Pueden usarse para resolver la interconexión entre múltiples fuentes y múltiples destinos.

Una aplicación importante es seleccionar los operandos de entrada a una unidad aritmética, y la
posibilidad de llevar el resultado por diferentes rutas. La Figura 7.20 ilustra la posibilidad de
escoger dos valores diferentes para cada operando de la unidad aritmética.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 13

A0 A1 B0 B1

Ca MUX MUX Cb

A B
Sumador

Cs DEMUX

S0 S1

Figura 7.20. Operandos de entrada y salida de unidad aritmética.

En el diseño del camino de datos de un procesador suelen emplearse muxes para movilizar la
información. En un caso práctico, A0, A1, B0, B1, S0 y S1 son buses formados por 16 ó 32
señales.

7.6. Primitivas programables

En circuitos con funciones cada vez más complejas, los diseños lógicos mediante componentes
SSI, o primitivas fijas MSI/LSI ya no resultaron convenientes.
Comenzaron a emplearse componentes programables, por la disminución del tiempo de diseño y
verificación; y además la posibilidad de reprogramación en caso de modificaciones al diseño.
Esto estuvo ligado a la aparición de herramientas computacionales de apoyo al diseño.

Los primeros dispositivos programables fueron: PROM, memoria programable sólo de lectura
(Programable Read Only Memory); PLA, arreglos lógicos programables (Programable Logic
Arrays); PAL arreglo de and programable (Programable Array Logic).
Estos dispositivos poseen, como parte importante, una matriz de diodos.

7.6.1. Matriz de diodos

Básicamente el problema de las memorias es tener varias palabras almacenadas, y que el


contenido de éstas esté disponible en los mismos cables de salida, de acuerdo a cuál palabra sea
seleccionada o direccionada.

Supongamos que deseamos tener dos palabras de 3 bits cada una. Una de ellas debe ser 101 y la
otra, 001. En la Figura 7.21 se tienen dos líneas horizontales o de palabras que pueden estar
conectadas a voltajes altos o bajos. Se conectan diodos entre las líneas de palabra y las tres
líneas verticales o de contenidos.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
Si la línea p1 se coloca en un voltaje alto, y la línea p0 está en cero volts, se tendrá 101 en la
salida. Es decir, C2 y C0 serán voltajes altos y C1 será voltaje bajo.

Debe recordarse que un diodo abierto representa una alta impedancia; en el caso anterior, la
línea de palabra p0 queda físicamente desconectada de las líneas de salida.

Asumimos que los diodos que conducen dejan un voltaje igual al voltaje de la línea palabra
menos 0,7 V, en las líneas de contenido.

p1

Línea palabra
p0

Línea de salida

C2 C1 C0

Figura 7.21. Matriz de diodos.

Para construir una memoria, sólo resta activar las líneas de palabras, de acuerdo al código
binario de la dirección. Esto puede implementarse simplemente mediante un decodificador.

Se ilustra un esquema de una memoria de 2m palabras con n bits cada una, con salidas
de tercer estados controladas por la señal leer. En cada casilla de la matriz se tiene un
diodo, que conecta la línea de palabra con la columna de salida, en caso de tener
almacenado un uno; y no se tiene diodo, en caso de almacenar un cero.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 15

Sel 0
0/1 0/1 0/1

Sel 1
0/1 0/1 0/1
Deco-
a Sel 2
0 dificador 0/1 0/1 0/1
a
1
Dirección ma2
m

a

m-1

m
Sel 2
– 0/1 0/1 0/1

Leer

Datos d d d
n– n-1 0

Figura 7.22. Memoria.

7.6.2. ROM

En una ROM, los datos quedan permanentemente almacenados. Esto se logra colocando o no
diodos, mediante métodos fotográficos, al construir el circuito integrado. Otra posibilidad es
construir el circuito con todos los diodos de la matriz; luego se aplica un voltaje adecuado de
programación que rompe aquellos diodos asociados a los ceros de la palabra. El voltaje de
programación se introduce por las líneas de salida.
La elección de una de estas técnicas de programación de ROM, dependen de la cantidad de
dispositivos que se deseen programar. Estos dispositivos pueden tener diferentes usos, por
ejemplo pueden usarse para: almacenar secuencias de control en un microprograma, generar
caracteres, traductor de códigos usuales, etc.

En lo sucesivo, se empleará la siguiente notación para describir una matriz de diodos. La Figura
7.23 muestra una memoria de 4 palabras de 4 bits cada una, se ilustra el decodificador y luego
la matriz de diodos.
No se dibujan las resistencias de terminación, y los diodos conectados se simbolizan por puntos
gruesos:

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales

0
a0
1
2
a1 3

C3 C2 C1 C0

Figura 7.23. Representación simbólica de una matriz de diodos.

En la Figura 7.24 se muestran las direcciones y contenidos de la memoria que se representa


simplificadamente en la Figura 7.23.

Dirección Contenido
a1 a0 c3 c2 c1 c0
0 0 0 0 1 0
0 1 1 1 0 1
1 0 1 0 0 1
1 1 0 1 0 0

Figura 7.24. Mapa de memoria de matriz de diodos de la figura 7.23.

7.6.3. PROM, EPROM.

El esquema en que se puede programar, pero sólo una vez, a través de la ruptura de algunos
diodos del arreglo se clasificó como ROM. En las memorias PROM, puede colocarse
información en la memoria, la P inicial recuerda que el dispositivo es programable.

Se emplean transistores MOSFET con la base aislada, en lugar de diodos. Mediante el efecto
de avalancha se deposita carga en la base, quedando una baja impedancia o un '1' almacenado.

Para liberar la carga de la compuerta se aplica luz ultravioleta a través de una pequeña ventana
que posee la PROM, dejándola con puros unos. Suele denominarse EPROM a las memorias de
este tipo, donde la "E" simboliza "Erasable" (borrable).

Si se tienen n líneas para establecer la dirección, y si se tienen m líneas de contenido o salida, la


capacidad total de la PROM queda dada por:

2n m [bits]

En la práctica, suele especificarse el número de direcciones, expresada en Kilos, multiplicado


por el número de bits de salida o largo de palabra. Por ejemplo: 4 K * 8.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 17
De tecnología más moderna son las EEPROM, cuya primera E indica que son electrónicamente
borrables. Más recientemente se dispone de tecnología flash, la que tiene la ventaja que sus
dispositivos pueden ser reprogramadas estando conectadas dentro de un circuito.

7.6.4. Usos de PROM en circuitos combinacionales.

a) Conversión de códigos.
La programación de la PROM está basada en la asignación de un contenido a cada dirección; es
decir, se programa por palabras.

Un caso especial de traductor de código es una tabla de búsqueda. En éstas pueden almacenarse
valores de funciones trigonométricas, logaritmos, etc. Además, todas las operaciones aritméticas
que pueden ser planteadas con tablas, como la suma, resta y multiplicación, también pueden ser
implementadas usando PROM.
Ejemplo 7.3. Conversión de BCD a exceso 3.
La tabla de conversión:

Dirección Palabra Contenido


0 0 0 0 0 0 0 1 1
0 0 0 1 1 0 1 0 0
0 0 1 0 2 0 1 0 1
0 0 1 1 3 0 1 1 0
0 1 0 0 4 0 1 1 1
0 1 0 1 5 1 0 0 0
0 1 1 0 6 1 0 0 1
0 1 1 1 7 1 0 1 0
1 0 0 0 8 1 0 1 1
1 0 0 1 9 1 1 0 0

Figura 7.25. Mapa de memoria del cambiador de códigos.

El resto de las combinaciones debe ser llenado con ceros. Nótese que se programa por palabras;
es decir, se le asocia un significado al contenido de cada dirección. Se tiene una visión
horizontal de la tabla.
b) Generadores de funciones.
En este caso se tiene una visión vertical de la tabla. Se asigna los valores de la tabla de verdad
de la función, a una columna de contenido de la PROM.
Lo usual es generar varias funciones de las variables con la misma PROM.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
Ejemplo 7.4.
La siguiente función, puede implementarse en una PROM de 8 por 1.
ab
c 00 01 11 10
0 2 6 4
0 1
1 3 7 5
1 1 1 1

f(a, b, c)=abc + ab’c’ + a’b’c + a’bc

Figura 7.26. Diseño de funciones mediante PROM.

Nótese que cada mintérmino de la función corresponde a un diodo conectado.

DEC 3:8 0
1
2
a A2
3
b A1
4
c A0
5
6
7
f

Figura 7.27. Esquema funcional del diseño de una función en base a PROM.

c) Extensión. Estructura de memorias.


Con una adecuada combinación de EPROM, es posible extender el largo de la palabra de salida
y el número de direcciones.
Ejemplo 7.5
Obtener una PROM de 16 bytes por 6 a partir de dos PROM de 16 bytes por 3. Esto expande
el largo de la palabra de salida.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 19

0
1 16x3
2
3

0
1 16x3
2
3

Figura 7.28 Extensión del largo de la palabra.

d) Descripción de archivos con código hexadecimal Intel.


Los archivos con extensión .hex se emplean para describir mapas binarios de contenidos
asociados a direcciones.
Su principal uso es describir el contenido de una ROM, mediante un archivo de texto, formado
por líneas. Normalmente es generado, en forma automática por una aplicación, por ejemplo un
compilador.

El formato del archivo es el siguiente:


Cada línea debe cumplir el siguiente formato:
:10001000FE352FCD454BAEFFE43E5D55AAE435EEEF

:
El primer carácter de la línea es el símbolo dos puntos (colon en inglés).

: 10
Los siguientes dos caracteres especifican, en hexadecimal, el número de bytes de datos
presentes en la línea. (En el ejemplo que se ilustra, el número de bytes es 10H, es decir: 16 en
decimal.)

:10 0010
Los siguientes cuatro caracteres, especifican la dirección del primer byte de datos de la línea
(0010H equivale a la dirección 16 en decimal). Esto implica que el mayor tamaño de la
memoria es FFFFH, es decir una memoria de 64 KB. Existen formatos de archivos para
especificar memorias mayores a 64KB, entre ellos los registros S de Motorola y los archivos
con formato Textronix.

:100010 00
Los siguientes dos caracteres indican el tipo de línea o registro. El tipo 00 indica un registro
normal de datos; es decir, una línea que no es la última del archivo. El tipo de la última línea
del archivo debe ser 01.

:10001000 FE352FCD454BAEFFE43E5D55AAE435EE

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales
Los siguientes caracteres representan los datos, en forma de bytes, que se almacenaran en
posiciones secuenciales a partir de la dirección inicial de la línea. Los 16 bytes de datos de la
línea que se describe en el ejemplo son: FE, 35, 2F, CD, 45, 4B, AE, FF, E4, 3E, 5D, 55, AA,
E4, 35, y EE.

:10001000FE352FCD454BAEFFE43E5D55AAE435EE EF
Los últimos dos caracteres son una suma de chequeo para la línea. Se denomina byte de paridad.
Y se define como el valor que al ser agregado a la suma de los bytes anteriores (los bytes
después del dos puntos, hasta el penúltimo) de la línea da como resultado cero. Puede decirse
que es el negativo de la suma, descrita antes, expresada en complemento dos.
La suma se realiza en módulo 100H (módulo 256 en decimal).
Ejemplo 7.6
Las siguientes dos líneas son el contenido de un archivo en formato hexadecimal de Intel. El
cual se emplea para grabar eprom. El archivo es de texto (puede editarse con notepad); es decir,
está formado por caracteres imprimibles del código ASCII, organizado en líneas separadas por
0D, 0A (CR, LF carriage return y line feed)

:070100002402FDEC3400FCB9
:00000001FF

La última línea tiene tipo 01, que es la última línea del archivo.
Se cargan 7 bytes a partir de la dirección 0100H.

Si se visualiza el archivo de texto (hex) con un editor hexadecimal, se tendrá el siguiente


contenido.
3A 30 37 30 31 30 30 30 30 32 34 30 32 46 44 45
43 33 34 30 30 46 43 42 39 0D 0A 3A 30 30 30 30
30 30 30 31 46 46

El código hexadecimal para el carácter dos puntos es 3A. Para el carácter 0 es 30 hexadecimal,
y así sucesivamente. Existe una aplicación Windows llamada mapa de caracteres donde pueden
visualizarse los símbolos disponibles en una fuente y su valor en hex.

Todos los cargadores de PROM aceptan directamente el formato Intel.


Existen programas que toman como entrada un archivo hexadecimal y lo transforman a una
imagen binaria.

Si se transforma el archivo anterior, en formato Intel hex a binario, la información del archivo
binario, vista con un editor hexadecimal se vería como sigue:

00000000 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000010 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000020 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000030 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000040 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000050 0000 0000 0000 0000 0000 0000 0000 0000 ................

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 21
00000060 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000070 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000080 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000090 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000A0 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000B0 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000C0 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000D0 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000E0 0000 0000 0000 0000 0000 0000 0000 0000 ................
000000F0 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000100 2402 FDEC 3400 FC $...4..

La primera columna indica la dirección inicial, en hexadecimal. Las siguientes columnas


(exceptuando la última) contienen los datos asociados a las direcciones. Se tienen 16 bytes de
datos por línea; por esta razón las direcciones de la primera columna terminan en 0. La última
columna es la zona ASCII, donde se colocan los 16 símbolos del código ASCII asociados a los
bytes.

Note que en la zona ASCII, los caracteres que no son gráficos o imprimibles (del 00 a 31
decimal, y los mayores que 7FH) se visualizan con puntos; y que también se rellenan con ceros
las zonas donde no se han especificado datos; este es el caso desde la dirección 00000000 hasta
000000FF. Y sólo se cargan en este mapa de memoria los siete valores especificados, a partir
de la dirección 00000100.
No puede verse un archivo binario, con un editor de texto.

Note que la fuente para ver alineadas las columnas debe ser de espacio no proporcional, como
courier o similar.

Existe una aplicación, normalmente denominada dump, que pasa un archivo binario a un
archivo de texto, con la información similar a la desplegada por un editor binario (o
hexadecimal).

7.6.5. PLA. Arreglos Lógicos Programables.

En una EPROM, todos los mintérminos son generados por un decodificador fijo, luego los
mintérminos requeridos para producir la función, son combinados mediante otro arreglo
programable con el papel de un OR.

Sin embargo, para ciertos diseños lógicos, sólo se usa una pequeña fracción de los mintérminos
generados por el decodificador.

La estructura arreglos lógicos programables (PLA) contiene un decodificador programable


(arreglo lógico AND), y un arreglo lógico OR programable. De esta forma pueden
implementarse funciones a partir de términos de mayor nivel que los mintérminos; es decir, a
partir de los implicantes primos.

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

• •
entradas

Arreglo
Arreglo
de
de productos
OR
AND

salidas
• • •

Figura 7.29. PLA Arreglos lógicos programables.

Ejemplo 7.7.
Implementar, mediante PLA , las siguientes funciones:

f0 ABCD DE DE
f1 AB BCDE DE
f2 ABCD BCDE

Se reconocen 5 productos diferentes, que serán generados por el decodificador programable:

P0 ABCD
P1 DE
P2 DE
P3 AB
P4 BCDE

La Figura 7.30 ilustra los detalles.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 23

Línea de variable

Línea de producto
B

C
Arreglo de AND

D
Líneas de salida

P4 P3 P2 P1 P0
f0

Arreglo de OR f1
f2

Figura 7.30. Esquema del diseño empleando PLA.

Las variables complementadas se generan internamente. El tamaño del arreglo de AND es


proporcional al producto de las variables por el número de productos lógicos a generar.

Además, el tamaño del arreglo OR es proporcional al producto del número de funciones


implementadas por el número de productos. Reduciendo los parámetros anteriores a través de
los métodos de minimización, se logrará un diseño con una PLA de menor costo.

Como se verá más adelante, las ROM y PLA se emplean también en diseños de máquinas
secuenciales.
Detalle arreglo de AND.
En la Figura 7.31, si a o b o ambas tienen voltaje cero, en f se tendrá el voltaje de conducción
del (o de los) diodos. Este voltaje es cercano a los 0,7 [V] y corresponde a un cero lógico. Si
ambos diodos están abiertos, con a y b altos, se tendrá un voltaje alto, proporcionando por la
fuente y la resistencia, en la salida f.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales
Vcc

a b f
a 0 0 0
0 1 0
1 0 0
b
1 1 1

f =ab
f

Figura 7.31 Arreglo de AND.

La combinación fuente-resistencia se denomina Pull-up, y fija el voltaje alto en la salida.


Detalle arreglo OR.
-Vcc
a b f
0 0 0
0 1 1
a 1 0 1
1 1 1
f
b f =a+b

Figura 7.32 Arreglo de OR.

En la Figura 7.32, basta que una (o ambas) de las entradas estén altas, para que en la salida f
se tenga un voltaje alto, (Vin - 0,7), al cual se asocia un 1 lógico.

Si ambas entradas están bajas, la salida toma un voltaje de -0,7; al cual se asocia el 0 lógico.

Los circuitos que se ilustran en las Figuras 7.31 y 7.32, no son los únicos posibles. Las
explicaciones simplificadas del funcionamiento de los arreglos, en base a diodos, son con fines
ilustrativos de conceptos solamente.

La tecnología implementa los fusibles programables (diodos) empleando MOSFET.


Ver Apéndice 4.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 25

Diagrama simplificado PLA.


El siguiente diagrama ilustra una PLA, en base a compuertas. En la práctica todas las
compuertas son NAND (o NOR). Se muestran todas las conexiones antes de programar el
dispositivo.

Figura 7.33 PLA en esquema de compuertas lógicas.

Luego las conexiones no deseadas se abren.

Existen dos modalidades, una denominada fusible (fuse) en la que las vías están normalmente
conectadas, y se funden o abren las conexiones que no se desean.

Otra modalidad, llamada Antifusible (Anti-fuse), en la cual las conexiones están normalmente
desconectadas, y la programación crea las conexiones.

Si se abren algunas conexiones, como se muestra en el diagrama de la Figura 7.34, pueden


implementarse las funciones:

f1 = abc + a'bc' + b'c


f2 = a'bc' + a b + a
f3 = a + b'c
f4 = a'bc'

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales
a b c

a’bc’

ab

b’c

f1 f2 f3 f4

Figura 7.34 PLA programada. Se muestran abiertas las conexiones.

Cuando la densidad aumenta, se suele emplear la siguiente notación para las matrices de diodos:
Se dibuja una sola línea de entrada a las compuertas, y se dibuja una marca cuando existe
conexión entre las líneas perpendiculares. El siguiente diagrama ilustra una PLA de cuatro
entradas y cuatro salidas, cuando todas las conexiones aún no han sido programadas.

Figura 7.35 Esquema de compuertas simplificado de una PLA.

Usando este convenio, la programación de f1= a'b + b'a y f2 = a'b'c'd' + abcd puede
representarse según:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 27

a b c
d
a'b
ab'
a'b'c'd'
abcd

f1 f2

Figura 7.36 Esquema simplificado PLA, con conexiones abiertas.

Sin embargo cuando el número de fusibles es elevado, se han estandarizado formatos de


archivos para describir las conexiones. Ver A4.9. Formato Jedec, en Apéndice 4.

7.6.6. PAL arreglo lógico (de and) programable (Programable Array Logic).

El arreglo de or es fijo. El número de productos lógicos que entran a un OR puede variar,


usualmente de 2, 4, 8 y 16.

En la Figura 7.37, se ilustra un solo or con tres líneas de producto, y tres entradas. Note que en
las entradas al arreglo de and se disponen de la señal y su complemento.

Líneas de entrada Línea de producto

Figura 7.37. Esquema PAL

En cada línea de producto se puede programar un implicante de la función. En cada intersección


de una línea de entrada con una línea de producto se tiene un fusible programable (diodo).

Existen PAL con lógica activa alta en la salida (Ejemplo P16H8) y con lógica activa baja en la
salida (P16L8).

También suele proveerse una realimentación de la salida en las líneas de producto, esto permite
programar realimentaciones, y puede emplearse para diseños asincrónicos.

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales

Figura 7.38. Esquema PAL con realimentaciones.

Si se está diseñando un conjunto de funciones, y existen productos que puedan ser compartidos
las PLA son más eficientes que las PAL. Pero debido a que las conexiones basadas en fusibles
tienen mayor resistencia que las conexiones físicas, las PLA son más lentas que las PAL.

7.6.7. PLD (Programable Logic Device).

El siguiente paso en la evolución de las PALs fue agregar un bloque reconfigurable


(macrocelda) mediante fusibles en la salida del OR. La macrocelda contiene un flip-flop tipo D,
que puede capturar la salida del OR; un buffer de tercer estado; y lógica para proveer
realimentación a las líneas de producto de la salida del OR o del flip-flop. Entre los PLD, uno de
los más conocidos es la GAL22V10 (Generic Array Logic). Estos dispositivos reemplazaron a
las diferentes formas de las PAL.

clock
enable
reset Q.AR
AR Q.OE

D Q
clk
Q.C
x1
Q.FB Q.PIN
x2

Figura 7.39. PLD con macrocelda.

En la Figura 7.39, la macrocelda muestra el flip-flop D, permanentemente conectado a la salida


del or; sin embargo puede programarse que la macrocelda sea estrictamente combinacional,
conectado la salida del or directamente a la salida. Se muestran dos entradas: x1 y x2.
Las líneas de productos de cada OR son fijas, pero se diseñan algunos OR con más líneas de
productos que otros.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 29
7.6.8. Comparaciones entre dispositivos programables.

Una ventaja de emplear ROM es que no se requiere minimizar las funciones de salida, y
conviene emplearlas cuando se requieren muchas combinaciones de las entradas (por ejemplo,
en cambiadores de código); las dificultades de su empleo es que por cada entrada adicional se
duplica el tamaño de la ROM, y no puede emplearse minimización debida a condiciones
superfluas. En una ROM puede implementarse cualquier función, y su costo es relativamente
bajo, debido a los altos niveles de producción; pero su velocidad es baja relativa a las otras
estructuras programables.

Los arreglos lógicos programables (PLA) comparten los productos entre varias funciones y su
empleo es ventajoso si las funciones no tienen presentes mintérminos aislados. La mayor
ventaja es que existen aplicaciones que permiten minimizar diseños de múltiples funciones. Es
de mayor costo y menor velocidad que una PAL.

La principal desventaja del arreglo lógico programable (PAL) es que existen restricciones de
fan-in en las entradas de los or fijos, cuestión que se ha superado en los diseños de las
arquitecturas de los CPLD; su ventaja es la mayor rapidez relativa a PLA y ROM. En el diseño
de funciones complejas, puede emplearse una salida como entrada, a la misma PAL, lo cual
aumenta el número de niveles.

7.6.9. CPLD ( Complex Programable Logic Device).

Se denomina CPLD al siguiente nivel de la tecnología. Tienen mayor nivel de integración (cerca
de 6500 compuertas y 288 registros, lo cual es un elevado incremento comparado con los 10
registros de la GAL22V10). Se caracterizan por tener programable el número de líneas de
producto que pueden sumarse en un or, y por la incorporación de un bloque de entrada-salida
independiente de la macrocelda.

Suelen tener memoria flash, lo que permite reprogramarlos ya conectados al resto del circuito, y
además conservan su programación al desconectarles la polarización.

El nivel de complejidad de las componentes actuales requiere de programas de apoyo al diseño.


Además se han incorporado nuevos lenguajes para la descripción del hardware.

7.6.10. FPGA

Se denominan FPGA (Field Programmable Gate Array) a dispositivos basadas en arreglos


bidimensionales de bloques lógicos y flip-flops, con programabilidad de las interconexiones y
de las funciones lógicas y del control. Se las debe reconfigurar al aplicarles la polarización.

A medida que han ido aumentando el número de compuertas y flip-flops dentro del chip,
también ha ido variando su estructura interna, actualmente algunas de ellas tienen memoria y
procesadores incorporados.

Algunos fabricantes proporcionan el código HDL de microprocesadores de 16 y 32 bits, de


unidades de multiplicación y acumulación para implementar filtros digitales, etc.

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales
Algunos diseños comerciales de FPGA consideran como bloques lógicos: pares de transistores,
compuertas nand de dos entradas, compuertas and con compuertas xor, multiplexores y tablas
de búsqueda.

Si los bloques son muy simples, lo más probable es que se utilicen completamente, pero
requieren un elevado número de alambres y switches programables; la programación de las
interconexiones puede requerir mucho espacio en el área del chip o tener gran retardo.
Celdas basadas en multiplexores.
La celda de la Figura 7.40 tiene 8 entradas y una salida.

s0
s1
sA

A0 0

A1 1

0
sB f
1

B0 0
B1 1

Figura 7.40. Celda basada en multiplexores.

La ecuación de la celda es:


f ( s0 s1 )( s A A0 s A A1 ) ( s0 s1 )( sB B0 sB B1 )

Esta celda puede implementar todas las funciones de dos variables, todas las de tres variables
con al menos una entrada sin complementar, muchas de cuatro variables y hasta algunas de ocho
variables.
Celdas basadas en tablas de búsqueda.
Pueden emplearse Tablas de Búsqueda para implementar funciones booleanas. Se denominan
LUT (look-up table) en inglés. Están basadas en un registro cuya salida alimenta a un
multiplexor.

La Figura 7.41 muestra una tabla de búsqueda de 4 variables de entrada, la cual permite
implementar cualquier función de cuatro variables.

El principio de funcionamiento es el siguiente: primero se graba la tabla, para esto se direcciona


un latch, el decodificador habilita para escritura sólo uno de los 16 latchs del registro, que tienen
común la entrada D, y se almacena el 1 ó 0 que le corresponde en la tabla de verdad de la
función; y así sucesivamente hasta grabar toda la tabla.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 31
Una vez configurada la tabla de búsqueda, se procede a la lectura de ella; para ello basta
direccionar el multiplexor con la combinación de las variables de entrada y en la salida se tendrá
el bit correspondiente, que está almacenado en uno de los latchs del registro.
Decodificador Registro
Multiplexor
4 a 16 16 bits
D 16 a 1

a, b, c, d f(a, b, c, d)

clk

Figura 7.41. Celda basada en Tabla de búsqueda.

Un módulo básico conecta dos o tres tablas de búsqueda con multiplexores y flip-flops.

Figura 7.42. Bloque lógico configurable xilinx.

Ejemplo 7.8.
Diseñar la función de cuatro variables, empleando LUT:
f ( x1 , x2 , x3 , x4 ) x2 x3 x1 x2 x3 x2 x3 x4 x1 x2 x4

Si se dispone de una tabla de búsqueda de 4 variables solo es necesario almacenar la tabla de


verdad de la función.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales
Si el bloque constructivo es una LUT de 3 variables, puede expandirse la función en torno a la
variable x1 , empleando el teorema de Shannon; de esta manera quedan dos funciones cofactores
que dependen de tres variables, las cuales pueden ser directamente mapeadas en LUTs de 3.

f ( x1 , x2 , x3 , x4 ) x1 f x1 x1 f x1
f x1 f (0, x2 , x3 , x4 ) x2 x3 x2 x3 x2 x3 x4 x2 x3 x2 x3
f x1 f (1, x2 , x3 , x4 ) x2 x3 x2 x3 x4 x2 x4
En la Figura 7.43 se muestra que, en este caso, la función cofactor f x , depende de dos variables.
1
x1

0 Lut 3 Lut 3 f
x2
x3 f x1

Lut 3

x4 f x1

Figura 7.43. Implementación en LUTs de 3 variables.

Etapas o fases de diseño.


Trabajando con este tipo de componentes es preciso crear un proyecto e ingresar el diseño, ya
sea usando diagramas esquemáticos o empleando un lenguaje de alto nivel como VHDL o
Verilog. Esta etapa se denomina de codificación RTL, y consiste en la descripción estructural o
de la conducta de un diseño.

Luego viene una fase de compilación y simulación funcional del diseño, en la que pueden
corregirse errores. Puede verificarse el diseño lógico y el flujo de los datos.

A continuación se realiza la síntesis, que traslada el diseño a compuertas básicas, minimizando


las ecuaciones.

Posteriormente se efectúa el mapeo tecnológico que implementa las ecuaciones con los
elementos lógicos disponibles. En esta fase además de especificar las localizaciones que se
emplearán también se efectúa los enrutamientos y conexiones entre los bloques lógicos (Place
and route).

A continuación se efectúan simulaciones temporales considerando las compuertas y niveles del


diseño.
Finalmente se genera un archivo binario de programación, el cual se graba en el dispositivo.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 33
7.6.11. ASIC.

En algunas herramientas CAD, una vez verificado un diseño basado en FPGA y evaluado
experimentalmente, puede migrarse el diseño a dispositivos ASIC; en los cuales se eliminan
todos los circuitos de configuración y programación, de esta forma se puede diseñar un circuito
integrado que opere a mayor velocidad y que consuma menos energía que el diseño basado en
FPGA.

Por su menor costo de fabricación en elevados volúmenes y tener un comportamiento más


rápido que los dispositivos programables, se suelen emplear dispositivos ASIC (Application
Specific Integrated Circuit) cuando se tenga una producción en gran escala.

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales

Problemas resueltos.

Problema 7.1. Expansión. Conexión cascada.

Un mux puede expandirse, si es combinado con otra componente del mismo tipo. Por ejemplo,
puede formarse un MUX de 8 hacia 1, mediante dos MUX de 4 a 1 y uno de 2 vías a una.

I0 Mux 8:1
I1 4:1
I2 mux
I3 2:1
mux f
I4
I5 4:1
I6 mux
I7

C1 C0 C2

Figura P7.1. Conexión cascada de multiplexores.

En forma alternativa se muestra un mux de 8 vías a una, implementado con cuatro mux de 2
vías a una, y un mux de 4 vías a una. Ambos diseños difieren en el número de entradas.

I0 mux 2:1 Mux 8:1


I1
I2 mux 2:1
I3
4:1 f
I4 mux 2:1 mux
I5
I6 mux 2:1
I7

C0 C2 C1

Figura P7.2. Conexión cascada de multiplexores.

Problema 7.2. Realización de funciones booleanas, mediante mux.

Mediante un multiplexor, pueden implementarse funciones lógicas. Consideremos el mux de 4


a 1, con enable =1, resulta:
f (c1, c0) = x3 c1c0 + x2 c1c0' + x1 c1'c0 + x0 c1'c0'

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 35
La expresión anterior muestra que, con un mux de 4 a 1, pueden implementarse todas las
funciones booleanas de 2 variables. Para ello, basta hacer '1' ó '0' las entradas xi, de acuerdo a
los mintérminos de la función que se desee implementar.

Con un mux de 8 vías a 1, pueden obtenerse las 256 funciones booleanas de 3 variables,
programando las entradas del mux con unos o ceros.

Si en las entradas de control del mux se aplican todas las variables de entrada menos una; y si se
aplican en las entradas del mux: la variable de entrada restante o su complemento o unos y
ceros, puede verse que con un mux de 4 vías a 1, pueden implementarse funciones booleanas de
3 variables, como se estudiará en el siguiente ejemplo.

Problema 7.3. Diseño de lógica combinacional empleando mux.

Programar un mux de 4 a 1 para implementar una función de tres variables:

f(x, y, z) = x'y'z + yz' +xz' + xy

Los mintérminos de f pueden dibujarse en un mapa:


xy
z 00 01 11 10
0 x1 2 x3 6 x2 4
x0
0 1 1 1
1 3 7 5
1 1 1

f(x, y, z)=xy x3 + xy' x2 + x'y x1 + x'y' x0

Figura P7.3. Diseño empleando mux.

Asumiendo la señal enable en 1, y eligiendo x como la señal de control más significativa y la


señal y como la línea de control menos significativa, la ecuación del mux muestra cómo es
posible seleccionar los mintérminos de la función.

Por ejemplo, cuando y = 0 y x = 0:


si la entrada x0 se alimenta con el valor 1 lógico, se tendrán los mintérminos 0 y 1
presentes en la función;
si x0 se conecta a tierra, los mintérminos 0 y 1 no estarán presentes en la ecuación de la
función;
si la entrada x0 se alimenta con la señal z, f tendrá sólo el mintérmino 1;
si la entrada x0 se alimenta con la señal z', se tendrá, presente en f, el mintérmino 0;

Puede verse, en forma similar, que la señal x3 controla la presencia de los mintérminos 6 y 7 en
la función. Entonces se programa el multiplexor mediante: x3 = 1; x2 = z'; x1 = z'; x0 = z.

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales
En el mapa se han marcado los grupos de mintérminos con los números de las señales de datos
del mux.

El diseño anterior puede resumirse según:


y 0
x 1
1 E f
z 0 Mux
z' 1 4 a 1
z' 2
1 3

Figura P7.4 Esquema del diseño en base a mux.

Nótese que la variable z se introduce en las entradas de datos del mux, y las variables x, e y
como entradas de control.

Con un diseño tradicional SSI se necesitan 2 pastillas: Cuatro compuertas NAND de fan-in 2, y
una compuerta OR de fan-in 4; el mux de 4 vías a una viene integrado en una sola pastilla.

Otra implementación para: f = x'y'z + yz' +xz' + xy es considerar la señal enable en 1, y


eligiendo z como la señal de control más significativa y la señal x como la línea de control
menos significativa. La ecuación del mux resulta, en estas variables:

f(z, x, y) = zx x3 + zx' x2 + z'x x1 + z'x' x0.

Si se dibuja un mapa, y se marcan los mintérminos presentes de f, se logra:


zx
y 00 01 11 10 x 0
0 2 6 4 z
0 1 1 1
1 E f
y 0 Mux
1 3 7 5
1 1 1 1 1 4 a 1
1 y' 2
y 3
f(z, x, y)=zx x3 + zx' x2 + z'x x1 + z'x' x0

Figura P7.5. Otra implementación en base a mux.

Generalizando un mux de 8 vías a una, permite implementar todas las funciones de 4 variables.
Basta elegir tres variables como entradas de control, y la cuarta se emplea en las entradas de
datos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 37
Problema 7.4. Diseño empleando mux de 8:1

El mapa de 4 variables, de la Figura P7.6 define los unos de la función f.


A
I0 I2 I6 I4
1 0 1 1

1 0 0 0
D
I1 I3 I7 I5
1 1 0 1
C

0 1 1 0
B

Figura P7.6. Grupos en en mapa de f.

La ecuación de un mux 8 a 1, es la siguiente:

f=c2c1c0I7+c2c1c0'I6+c2c1'c0 I5+c2c1'c0'I4+c2'c1c0I3+c2'c1c0' I2+c2'c1'c0 I1+c2'c1'c0' I0

Empleando A, B y C como entradas de control (A la más significativa), se obtiene:

f = ABC I7+ ABC' I6 + AB'C I5 + AB'C' I4 + A'BC I3 +A'BC' I2 + A'B'C I1 + A'B'C' I0

Luego se identifican las funciones de D, como entradas de datos. En el mapa se identifican pares
de mintérminos asociados a un determinado valor de las entradas de control.

La Figura P7.7 resume el diseño:

1 0
D 1
0 2
1 3
D' 4 8:1 MUX
D 5
D' 6
D' 7
C2 C1 C0

A B C

Figura P7.7. Diseño empleando multiplexor de 8 vías a una.

Profesor Leopoldo Silva Bijit 19-01-2010


38 Sistemas Digitales
Problema 7.5. Mal uso de muxs

No siempre es conveniente diseñar con un mux. Por ejemplo, para la función de siete variables:
f x1 x2 x3 x4 x5 x6 x7
Se requiere un mux de 128 vías a 1, o bien uno de 64 vías a una. También pueden emplearse 3
mux de 4 vías a 1, como se muestra en el siguiente ejemplo.

X2 0 X4 0 X6 0
X3 1 X5 1 X7 1
E Mux E Mux E Mux
X1 0 4a1 0 0 4a1 0 0 4a1 f
1 1 1
2 2 2
0 3 0 3 0 3

f3 = X1 * X2 * X3 f2 = f3 * X4 * X5 f1 = f2 * X6 * X7

Figura P7.8. Diseño con exceso de muxs.

Con las señales enable (E) en uno.


La programación de los mux es por el alambrado (hardwired).

Nótese que en cada mux se utiliza solamente un mintérmino. Esto implica una mala utilización
de las capacidades de cada mux. Un diseño SSI, mucho más simple, conveniente y directo es:

X1
X2’
X3’
X4 f
X5’
X6
X7’

Figura P7.9. Diseño empleando compuertas en lugar de muxes.

En este caso se requiere sólo una pastilla, ya que se dispone comercialmente de un NAND de 8
entradas. En la implementación se conecta una de las entradas a Vcc, para disponer de un
NAND de 7 entradas.

Problema 7.6. Diseño multifunción con decodificador.

Se desea diseñar las siguientes tres funciones de cuatro variables (diseño multifunción),
empleando un decodificador 4: 16.
f1 = A' B' C D +A' B C' D + A B C D
f2 = A B C' D’ + A B C
f3 = (A' + B' + C' + D')

Se descomponen las funciones en suma de mintérminos, y luego se suman. El caso de f3, se


resuelve por De Morgan según: f3' = ABCD

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 39

0 A'B'C'D'
1 A'B'C'D
2 A'B'CD' f1
3 A'B'CD
4 A'BC'D'
5 A'BC'D
6 A'BCD'
4:16 7 A'BCD
Enable = 1
DEC 8 AB'C'D' f2
9 AB'C'D
10 AB'CD'
11 AB'CD
12 ABC'D'
13 ABC'D
14 ABCD'
15 ABCD f3

A B C D

Figura P7.10. Diseño combinacional empleando decodificadores.

Problema 7.7. Diseño con decodificadores en base a mintérminos.

En la figura P7.11, se tiene un decodificador de 5:32, implementado en base a cuatro


decodificadores 3: 8 y un decodificador de 2: 4. Con este decodificador es posible diseñar todos
los mintérminos para funciones de cinco variables.

El primer decodificador genera, con E = 1, los grupos: AB, AB', A'B, A'B'.
Cada uno de los decodificadores 3:8, generan los ocho productos de la línea de entrada, con los
mintérminos de las variables CDE.

Profesor Leopoldo Silva Bijit 19-01-2010


40 Sistemas Digitales

A’B’C’D’E’

0 0
1 1
2 2 AB’C’DE’
3 3
4 4
5 5
6 6
012 7 012 7

0
E=1 1 CDE
CDE
2
01 3
0 0 AB’C’D’E’
1 1
AB
2 2
3 3
4 4
5 5
6 6
012 7 012 7 AB’CDE
ABCDE
CDE CDE

Figura P7.11. Diseño combinacional empleando decodificadores 3:8.

Problema 7.8. If then else anidados.

Un programador ha diseñado el siguiente diagrama de flujo, donde C1, C2 y C3 son condiciones


y a, b, y c son grupos de acciones.

V F
C1

V F V F
C2 C3

a b a c

Figura P7.12. Diagrama de flujo Problema 7.8.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 41
a) Determinar un nuevo diagrama de flujo, en el cual el grupo de acciones, denominado a, esté
presente sólo una vez. Las condiciones del nuevo diagrama deben formularse en términos de
C1, C2 y C3. Indicar soluciones alternativas si existen varias.

b) Si analizando las variables, antes del ingresar al diagrama que se muestra, se conoce que la
acción c nunca se realizará, determinar las condiciones para que se realicen las acciones a y b.

Solución.
a) Del diagrama se obtienen:
La acción a se realiza cuando la condición: C1C2 + C1’ C3 es verdadera.
La acción b se realiza cuando la condición: C1C2’ es verdadera.
La acción c se realiza cuando la condición: C1’C3’ es verdadera.

Existen seis soluciones, en las cuales cada acción está presente una vez:

V F V F
C3 C5 V F
C7

a V F b V F
C4 C6 c V F
C8

b c a c a b

Diagrama 1. Diagrama 2. Diagrama 3.

Figura P7.13. Soluciones 1, 2 y 3.

C3 = C1C2 + C1’ C3 C4 = C1 C2’


C5 = C1 C2’ C6 = C1C2 + C1’ C3
C7 = C1’ C3’ C8 = C1C2 + C1’ C3

V F V F
V F C11 C13
C9

V F c V F
a V F b C12 C14
C10

c b a
c b a

Diagrama 4. Diagrama 5. Diagrama 6.

Figura P7.14. Soluciones 4, 5 y 6.

Profesor Leopoldo Silva Bijit 19-01-2010


42 Sistemas Digitales
C9 = C1C2 + C1’ C3 C10 = C1’ C3’
C11 = C1 C2’ C12 = C1’ C3’
C13 = C1’ C3’ C14 = C1 C2’

Las condiciones más simples, de plantear, corresponden a los diagramas 5 y 6.


El código en C, para el diagrama 6 es:

if ( !C1 && !C3) { c;}


else
if(C1 && !C2) {b;} else {a;}

El siguiente mapa ilustra las condiciones para realizar las tres acciones: a, b y c, que son
mutuamente excluyentes, ya que cubren todo el mapa.
C1C2
C3 AB 00 01 11 10
0 2 6 4
0 1 1 1 1
1 3 7 5
1 1 1 1 1

a: C1C2 + C1’ C3
b: C1C2’
c: C1’C3’

Figura P7.15. Condiciones para realización de a, b o c.

b) Si la acción c nunca se realiza, los mintérminos 0 y 2, se tratan como condiciones superfluas.


En este caso la condición para la realización de la acción a, se simplifica a: C1’+C2. La
condición para la realización de la acción b es: C1C2’, que resulta ser la negación de la anterior.

C1C2
C3 00 01 11 10 V
C1’+C2
F
0 2 6 4
0 d d 1 1

1 3 7 5 a b
1 1 1 1 1

a: C1’ + C2
b: C1C2’

Figura P7.16. Condiciones para realización de a, b.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 43
if(!C1 || C2) {a;} else {b;}

o bien:

if(C1 && !C2) {b;} else {a;}

Si el grupo de acciones alternativas que deben realizarse, están condicionadas por un reducido
número de mintérminos es conveniente emplear la sentencia switch, en lugar de sentencias
anidadas if-then-else.

Problema 7.9. Diseño con PROM.

Se tiene una PROM de 32*8[bits], como se muestra en el esquema del circuito U1. Se entrega el
mapa de memoria, tanto la dirección como el contenido se entregan en hexadecimal.

Dirección Contenido Dirección Contenido


00 F3 10 00 U1
01 15 11 65 PROM32
d CS
02 D4 12 88 c O7 f3
b O6
03 59 13 77 O5 f2
a A4 O4 f1
04 46 14 91 A3 O3
A2 O2 f0
05 6B 15 8D A1 O1
A0 O0
06 01 16 F9
07 C2 17 55
08 33 18 48 Esquemático
09 44 19 DD
0A 57 1A 64
0B 0F 1B 13
0C 15 1C 66
0D 9C 1D 88
0E 23 1E 80
0F 27 1F 22

Figura P7.17. Mapa de Memoria.

a) Dibujar el Mapa de Karnaugh para f2(a, b, c, d).


b) Determinar implicantes primos esenciales para f2.
c) Obtener la función mínima que permita una implementación de menor costo en base a
compuertas para f2.

Solución.
Según el esquemático, A0 y O0 son los bits menos significativos de la dirección y el contenido
respectivamente.

Profesor Leopoldo Silva Bijit 19-01-2010


44 Sistemas Digitales
Se dibuja una tabla de verdad, con las direcciones pares de la memoria, identificando las
posiciones de las variables a, b, c y d.

Se agrega en la tabla la columna H, que es la cifra hexadecimal menos significativa del


contenido, y se expresa en binario en la cuarta columna, representando los bits de f3 f2 f1 f0.
Entonces la tabla de verdad de f2 corresponde al bit en la tercera posición, lo cual se agrega
como última columna de la tabla.

Se dibuja un mapa para f2. Como el orden de las variables es (a, b, c, d) resultan los siguientes
mintérminos para f2: 4, 6, 7, 8, 10, 11.

Dirección dcba H binario f2


0 0000 3 0011 0 ab
cd 00 01 11 10
2 0001 4 0100 1
4 0010 6 0110 1 0 4 12 8
00 0 1 0 1
6 0011 1 0001 0
8 0100 3 0011 0 1 5 13 9
A 0101 7 0111 1 01 0 0 0 0
C 0110 5 0101 1
E 0111 3 0011 0 3 7 15 11
10 1000 0 0000 0 11 0 1 0 1
12 1001 8 1000 0
14 1010 1 0001 0 2 6 14 10
16 1011 9 1001 0 10 0 1 0 1
18 1100 8 1000 0
1a 1101 4 0100 1
1c 1110 6 0110 1 f2(a, b, c, d) = a’bd’ + a’bc+ ab’d’ + ab’c
1e 1111 0 0000 0

Figura P7.18. Mapa de f2.

b) Según el mapa:
a’bd’ es implicante primo esencial ya que es el único que contiene al mintérmino 4.
a’bc es implicante primo esencial ya que es el único que contiene al mintérmino 7.
ab’d’ es implicante primo esencial ya que es el único que contiene al mintérmino 8.
ab’c es implicante primo esencial ya que es el único que contiene al mintérmino 11.

c) El diseño como suma de productos es: f(a, b, c, d) = a’bd’ + a’bc + ab’d’ + ab’c
Y tiene un costo de 16 entradas (12 literales).

El diseño como producto de sumas es, se obtiene agrupando los ceros de f2.
Se obtiene: f(a, b, c, d) = (a +b)(a’ + b’)(c + d’), la cual tiene un costo de 9 entradas (6
literales), éste es el diseño mínimo.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 45
Problema 7.10. Diseño con multiplexor.

Se ha diseñado la función f, empleando un multiplexor de 8 vías a una, cuyo esquema se


muestra en la Figura P7.19 izquierda.
La siguiente tabla muestra las conexiones de las variables y constantes a las señales del
multiplexor:
Señales Variables
C2 a
I0
C1 b
I1
Mux C0 c
I2
I3 8:1 I0 d
I4 f I1 d’
I5 I2 ad
I6 8:1 I3 b’d’
I7 mu I4 0
I5 cd
x I6 c’
C2C1C0 I7 1

Figura P7.19. Mux Problema 7.10.

a) Determinar el mapa de Karnaugh para f.


b) Determinar implicantes primos esenciales de f(a, b, c, d).
c) Expresión lógica mínima para f como producto de sumas.

Solución:
a) Se tiene la siguiente ecuación para el multiplexor:
f = c2c1c0 I7+ c2c1c0' I6 + c2c1'c0 I5 + c2c1'c0' I4 + c2'c1c0 I3 + c2'c1c0' I2 + c2'c1'c0 I1
+c2'c1'c0' I0

Reemplazando las señales por las variables y constantes de la tabla, resulta:


f = abc1+ abc’ c’ + ab’c dc + ab’c’ 0 + a’bc b’d’ + a’bc’ ad + a’b’c d’ + a’b’c’ d

Simplificando, se logra:
f = abc + abc’ + ab’cd + a’b’c d’ + a’b’c’d

Puede dibujarse el mapa, y minimizando, se obtiene:


f(a, b, c, d) = ab + acd + a’b’c’d + a’b’cd

Profesor Leopoldo Silva Bijit 19-01-2010


46 Sistemas Digitales

ab
cd 00 01 11 10
0 4 12 8
00 0 0 1 0
1 5 13 9
01 1 0 1 0
3 7 15 11
11 0 0 1 1
2 6 14 10
10 1 0 1 0

f(a, b, c, d) = ab + acd + a’b’c’d + a’b’cd’

Figura P7.20. Minimización Problema 7.10.

b) Se construye la tabla de implicantes:

1 2 11 12 13 14 15
ab x x x x
acd x x
a’b’c’d x x
a’b’cd’ x x

Figura P7.21. Tabla implicantes Problema 7.10.

Se tiene que el implicante ab es el mayor y único grupo que contiene a los mintérminos: 12, 13,
y 14, por lo tanto es esencial.
El implicante acd es el único que contiene al mintérmino 11, por lo tanto es esencial.
Los mintérminos 1 y 2 no pueden agruparse y por lo tanto son implicantes primos esenciales.
La función mínima debe contener a los cuatros implicantes primos esenciales. Lo cual justifica
el diseño de la parte a).

c) Para lograr la expresión lógica mínima para f como producto de sumas, debe agruparse los
ceros de la función f (o los unos de la función f ’, y luego complementar).

Para la tabla de implicantes de f ’ se tiene que:


a’b es implicante primo esencial(único grupo que contiene a los mintérminos 5 y 6);
a’cd es implicante primo esencial(único grupo que contiene al mintérmino 3);
ab’c’ es implicante primo esencial(único grupo que contiene al mintérmino 9);
ab’d’ es implicante primo esencial(único grupo que contiene al mintérmino 10);

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 47
Los implicantes primos b’c’d’ y a’c’d’ no son esenciales. Como en f’, deben estar presentes los
implicantes primos esenciales, la tabla muestra que sólo resta cubrir al mintérmino 0; lo cual
puede lograrse con el implicante primo b’c’d’ o a’c’d’. Resultan las funciones f1’ y f2’ que se
ilustran en el mapa.
ab
cd 00 01 11 10
0 4 12 8
00 1 1 0 1
0 3 4 5 6 7 8 9 10
1 5 13 9 a’b x x x x
01 0 1 0 1 a’cd x x
ab’c’ x x
3 7 15 11 ab’d’ x x
11 1 1 0 0 b’c’d’ x x
a’c’d’ x x
2 6 14 10
10 0 1 0 1

f1’(a, b, c, d) = a’b+a’cd+ab’c’+ab’d’+b’c’d’

f2’(a, b, c, d) = a’b+a’cd+ab’c’+ab’d’+a’c’d’

Figura P7.22. Mapa y Tabla implicantes producto de sumas.

Finalmente, complementando f1’ y f2’ (y aplicando De Morgan) se obtienen las dos


soluciones mínimas como producto de sumas:

f1(a, b, c, d) = (a + b’)(a + c’ + d’)(a’ +b + c)(a’ + b +d)(b + c + d)


f2(a, b, c, d) = (a + b’)(a + c’ + d’)(a’ +b + c)(a’ + b +d)(a + c + d)

Ambas de 14 literales y de 19 entradas.

Problema 7.11. Multiplexor

Programar las entradas I7 a I0 del multiplexor para tener en la salida:

f(a, b, c, d) = m(1, 3, 10, 11, 12, 15) + d( 5, 7, 13)

Profesor Leopoldo Silva Bijit 19-01-2010


48 Sistemas Digitales

I0
I1
I2 Mux
I3 8:1
f = c2c1c0 I7+ c2c1c0' I6 + c2c1'c0 I5 + c2c1'c0' I4 + c2'c1c0 I3 +
I4 c2'c1c0' I2 + c2'c1'c0 I1 + c2'c1'c0' I0
I5 8:1
I6
I7 mu
x
C2C1C0

a b c
Figura P7.23. Mux Problema 7.11.

Indicar las diferentes soluciones, dependiendo de la elección del valor dado a las condiciones
superfluas.

Solución:
En la ecuación del multiplexor, reemplazando C2, C1 y C0 por a, b y c respectivamente, se
tiene:
f = abc I7+abc’I6+ab’c I5+ab’c’ I4+a’bcI3+a’bc’ I2+a’b’c I1+a’b’c’ I0

Para cada una de las entradas Ii podemos aplicar d, d’, 0 ó 1. Cada entrada permite incorporar
distintas combinaciones de dos mintérminos (uno o el otro, o ambos o ninguno).

Ubicando los mintérminos y las condiciones superfluas en un mapa de cuatro variables, donde
a, b y c, se han hecho equivalentes a C2, C1 y C0 respectivamente, se tiene:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 49

C2C1
I2 I6
ab
C0v
cd 00 01 11 10
0 4 12 8
00 0 0 1 0 I4
I0
1 5 13 9
01 1 0
3 7 15 11
11 1 1 1
I5
I1
2 6 14 10
10 0 0 0 1

I3 I7
f(a, b, c, d)= m(1, 3, 10, 11, 12, 15)+ d( 5, 7, 13)
Figura P7.24. Mapa Problema 7.11.

Si consideramos como ejemplo el término: T = a’b’c’ I0


Con I0=d se tendrá T = a’b’c’d (m1). Con I0=d’ se tendrá T = a’b’c’d’ (m0).
Con I0=1, se tendrá T=a’b’c’ (m0 +m1). Con I0=0, no estarán presentes m0 ni m1, o dicho de
otra forma se aseguran los maxtérminos M0 y M1.

Deben escogerse: I0 = d, I1 = d, I4 = 0, I5 = 1, I7 = d
Si d5 se escoge 0, entonces I2=0. Si d5 se escoge 1, entonces I2=d.
Si d7 se escoge 0, entonces I3=0. Si d7 se escoge 1, entonces I3=d.
Si d13 se escoge 0, entonces I6=d’. Si d13 se escoge 1, entonces I6=1.

Problema 7.12. Mux 74151

Se tiene los siguientes datos para un multiplexor 74151.


8-to-1 line data selector/multiplexer with complementary outputs.

C B A EN Y +---+--+---+
X X X H L D3 |1 +--+ 16| VCC
L L L L D0 D2 |2 15| D4
L L H L D1 D1 |3 14| D5
L H L L D2 D0 |4 74 13| D6
L H H L D3 Y |5 151 12| D7
H L L L D4 /Y |6 11| A
H L H L D5 /EN |7 10| B
H H L L D6 GND |8 9| C
H H H L D7 +----------+

Profesor Leopoldo Silva Bijit 19-01-2010


50 Sistemas Digitales

a) Explicar brevemente el funcionamiento del multiplexor.


b) Diseñar la función f(w,x,y,z)=x(y'+w) +w'(y'+x'z') empleando un 74151.
Escoger x = A, y = B, z = C.
c) Se tiene un contador 74LS93 conectado al multiplexor 74LS151.
¿Qué relación existe entre los nombres de las señales de los pines del esquemático del 74LS151
y los de la hoja de datos?

Dibujar las formas de ondas en TP1 y TP2. Asumir para el dibujo que los circuitos no tienen
retardos de propagación. Indicar función que realiza el sistema.
V3
0V

TP2
V1
CP1 Q1 U1
CP2 Q2 74LS93
MR1 Q3
MR2 Q2 V2
CP0 Q1 0V
CP1 Q0

U3 TP1
74LS151
I7 E
I6 S2
I5 S1
I4 S0
I3
I2
I1 Y
I0 YN

Figura P7.25. Conexiones Problema 7.12.

Solución.
a) Con EN' (enable) alto se tiene la salida Y en bajo. Es decir con EN' = 0 se habilitan la salida
del mux.
En el manual TTL de TEXAS, la señal EN´se denomina S (strobe). Con S = 0 se habilita el
mux.

Con i = 22 C + 21 B + A se tiene Y = Di ( i = 0 ..7) La entrada de control C es la más


significativa.

Es decir:
Y =( D0 C'B'A' +D1 C'B'A+D2 C'BA'+D3 C'BA+D4 CB'A'+D5 CB'A+D6 CBA'+D7 CBA) S'

b) Se desea diseñar f(w,A,B,C) = B'A + wA + w'B' + w'C'A'

Si se dibuja un mapa de 4 variables con la función pedida, se tiene:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 51

w/CBA 000 001 011 010 110 111 101 100


0 1 1 0 1 0 0 1 1
1 0 1 1 0 0 1 1 0
D0 = w' D1 = 1 D3= w D2 = w' D6 = 0 D7 = w D5 = 1 D4 = w'

En el mapa se empleó código Gray, y se tiene que cada columna corresponde a una
combinación de las señales de control del mux que activan una línea de datos de entrada. Para
generar dicho mapa con el mux se deben efectuar las conexiones indicadas, es decir: en D0 se
conecta la entrada w', en D1 se efectúa conexión a Vcc, etc.

Otra solución es expandir la función


f(w,A,B,C) = (C'B'A+CB'A)+(wB'A+wBA)+(w'C'B'+w'CB')+(w'C'B'A'+w'C'BA') y luego
volver a expandir

f(w,A,B,C)=(C'B'A+CB'A)+(wC'B'A+wCB'A+wC'BA+wCBA)+(w'C'B'A'+ w'C'B'A+w'CB'A'+
w'CB'A)+(w'C'B'A'+w'C'BA')

y ordenando, queda:
f(w,A,B,C) = w'C'B'A'+ w'C'B'A'+ w'C'B'A+ wC'B'A+ C'B'A+w'C'BA'+ wC'BA+w'CB'A'+
w'CB'A+ wCB'A+CB'A+ wCBA

Eliminando términos redundantes:


f(w,A,B,C) = w'C'B'A' + C'B'A+w'C'BA'+ wC'BA+w'CB'A'+ CB'A+ wCBA

Agregando algunos términos:


f(w,A,B,C) = w'C'B'A' + 1C'B'A+w'C'BA'+ wC'BA+w'CB'A'+ 1CB'A+0CBA'+ wCBA

Comparando con la ecuación del mux vista en 1, se logra identificar las funciones asociadas a
los Di.

c) El contador genera la secuencia de valores 000, 001, 010, 011, 100, 101, 110, 111 que se
aplican a las entradas de control del mux (es un contador módulo 8 en binario). Cuando se
aplica en S0, S1 y S2 los valores 000, el mux saca en la salida Y el valor que esté conectado a
I0, que en el ejemplo es 0; luego saca I1 y así sucesivamente hasta sacar I7; y luego, la
secuencia se repite.

Resumen: Genera la secuencia sincrónica de niveles: 01010001.

Se muestran las formas de ondas obtenidas con un simulador, la forma de onda TP1 muestra un
retardo de propagación relativa al canto de bajada de TP2; este retardo contempla el del
contador y del circuito combinacional del mux (se ilustra en el diagrama). Se ha destacado un
ciclo completo de la salida.

Profesor Leopoldo Silva Bijit 19-01-2010


52 Sistemas Digitales

retardo

0 20 40 60 80 100 120 140 160 180


TP2

TP1

0 1 0 1 0 0 0 1
D0 D1 D2 D3 D4 D5 D6 D7

Figura P7.26. Formas de ondas. Problema 7.12.

Problema 7.13. Mux 8 a 1.

Determinar los valores con que deben programarse las entradas del mux para tener en la salida
la función f.
I7 1
I0 I6 0
I1
I5 1
I2 Mux
8:1 I4 0
I3
f (a, b, c, d) = ac + a’d’ I3 d’
I4
I5 I2 d’
I6 8:1 I1 d’
I7 C2mu
C1 C0 I0 d’
Solución.
x
a b c
Figura P7.27. Mux Problema 7.13.

Solución:
Se tiene:
f=c2c1c0 I7+c2c1c0' I6+c2c1'c0 I5+c2c1'c0' I4+c2'c1c0 I3+c2'c1c0' I2+c2'c1'c0 I1+c2'c1'c0' I0
Si se conectan las variables de entrada: a, b y c, según se indica en el diagrama, se tiene:
f = abc I7+ abc’ I6+ ab’c I5+ ab’c’ I4+ a’bcI3+ a’bc’ I2+ a’b’c I1+ a’b’c’ I0
Por otra parte pueden escribirse:
ac = abc + ab’c
a’d’= a’bd’+a’b’d’= a’bcd’+a’bc’d’+ a’b’cd’+a’b’c’d’
Es decir:
f (a, b, c, d) = ac + a’d’= abc + ab’c + a’bcd’ + a’bc’d’ + a’b’cd’ + a’b’c’d’
Comparando coeficientes, resultan:
I7 = 1; I6 = 0; I5 = 1; I4 = 0; I3 = d’; I2 = d’; I1 = d’; I0= d’

Solución mediante mapas:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 53

ab
cd 00 01 11 10
0 0 2 4 6 12 4 8 f (a, b, c, d) = m( 0, 2, 4, 6, 10, 11, 14, 15)
00 1 1
1 5 13 9 Se identifican los pares de mintérminos
01 controlados por las entradas al multiplexor.

1 3 3 7 7 15 5 11 Luego se obtienen los valores de las


11 1 1 entradas al multiplexor, en función de la
variable d.
2 6 14 10
10 1 1 1 1

f(a, b, c, d)
Figura P7.28 Mapa Problema 7.13.

Problema 7.14. Programa en EPROM

Determinar el contenido de la EPROM, que implementa las funciones combinacionales: f0, f1, y
f2, en función de las entradas a, b, c, d.

Add0 a
Add1 b
Add2 c EPROM D0 = f0(a, b, c, d) = ac + a’d’
Add3 d
Add4 D1 = f1(a, b, c, d) = m( 0, 2, 14 ) + d(13 )
Add5
8:1 D2 = f2(a, b, c, d) = M(0, 2, 4, 12)
Add6
Add7 mu D3

x
Figura P7.29 EPROM Problema 7.14.

Mostrar el contenido de la EEPROM según un mapa de direcciones versus contenidos.


Cómo deben conectarse las líneas de dirección que no se empleen. Valores que deben grabarse
en D3.

Solución:
En una memoria sólo se pueden escribir unos o ceros.
Como no existe función asociada a la línea de datos D3, esta columna debe llenarse con
cualquier secuencia de unos o ceros.

Para el caso del diseño de la función f1:

Profesor Leopoldo Silva Bijit 19-01-2010


54 Sistemas Digitales
Puede escogerse que el mintérmino 13 esté presente en el conjunto on. Es decir se elige como 1
de la función. En este caso, la función resulta:
f1(a, b, c, d) = m( 0, 2, 14 ) + d(13 ) = a’b’c’d’ + a’b’cd’ + abcd’ +abc’d
En caso de escoger el término superfluo como cero, se tendrá:
f1(a, b, c, d) = a’b’c’d’ + a’b’cd’ + abcd’

La función f2 establece los ceros de D2. También puede escribirse en función de los unos de f2,
según: f2(a, b, c, d) = m( 1, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15)

Obtenidas las funciones deben escribirse las columnas de datos de la EPROM. Puede
considerarse que cada dirección está asociada a un mintérmino; el número del mintérmino
depende del ordenamiento dado a la función. En el caso propuesto, el orden es a, b, c, d; es
decir, a es la variable más significativa para la numeración decimal de los mintérminos. Se ha
colocado el número del mintérmino asociado a la tabla de contenidos versus direcciones.
Las líneas de dirección que no se empleen(add4, add5, add6 y add7) deben ser conectadas a
tierra.

El siguiente es un mapa completo de la memoria.


# Add7 Add6 Add5 Add4 Add3 Add2 Add1 Add0 D3 D2 D1 D0
d c b a f2 f1 f0
0 0 0 0 0 0 0 0 0 1ó0 0 1 1
8 0 0 0 0 0 0 0 1 1ó0 1 0 0
4 0 0 0 0 0 0 1 0 1ó0 0 0 1
12 0 0 0 0 0 0 1 1 1ó0 0 0 0
2 0 0 0 0 0 1 0 0 1ó0 0 1 1
10 0 0 0 0 0 1 0 1 1ó0 1 0 1
6 0 0 0 0 0 1 1 0 1ó0 1 0 1
14 0 0 0 0 0 1 1 1 1ó0 1 1 1
1 0 0 0 0 1 0 0 0 1ó0 1 0 0
9 0 0 0 0 1 0 0 1 1ó0 1 0 0
5 0 0 0 0 1 0 1 0 1ó0 1 0 0
13 0 0 0 0 1 0 1 1 1ó0 1 1ó0 0
3 0 0 0 0 1 1 0 0 1ó0 1 0 0
11 0 0 0 0 1 1 0 1 1ó0 1 0 1
7 0 0 0 0 1 1 1 0 1ó0 1 0 0
15 0 0 0 0 1 1 1 1 1ó0 1 0 1

Figura P7.30 Mapa EPROM Problema 7.14.

Problema 7.15. Programar EPROM.

Se tiene una EPROM de 16 palabras de 4 bits cada una.


Se desea generar las siguientes funciones:
f0(a, b, c, d) = m( 2, 4 , 8, 15) + d( 3, 5)

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 55
f1(d, c, a, b) = m( 2, 4 , 8, 15) + d( 3, 5)
f2(a, b, c, d) = M( 2, 4 , 8, 15) D( 3, 5)
b Add0 D0 f1
f3 = f0 + f1
d Add1 D1 f2
a Add2 D2 f0
c Add3 D3 f3

Figura P7.31 Variables y direcciones EPROM Problema 7.15.

a) Determinar las funciones en términos de las variables de entrada.


b) Determinar el mapa de la EPROM con las asociaciones entre las variables de entrada y
las direcciones que se muestran en el diagrama; y con las funciones en las líneas de
datos que se muestran en el diagrama. La tabla debe estar ordenada por direcciones
ascendentes, y los contenidos el más significativo a la extrema derecha.

Solución:
Pueden dibujarse los mapas para f0 y f1.
ab dc
cd 00 01 11 10 ab 00 01 11 10
0 4 12 8 0 4 12 8
00 1 1 00 1 1

1 5 13 9 1 5 13 9
01 01

3 7 15 11 3 7 15 11
11 1 11 1
2 6 14 10 2 6 14 10
10 1 10 1

f0(a,b,c,d) = a’bc’ + a’b’c + ab’c’d’ + abcd f1(a,b,c,d) = ac’d’ + a’cd’ + a’b’c’d + abcd

Figura P7.32 Mapas f0 y f1 Problema 7.15.

Para f2:
f2 = f0’ = (a + b’ + c)(a +b +c’)(a’ + b + c + d)(a’ + b’ + c’ + d’)
f2 = a’b’c’ + c’d’ + abc’ + a’bc + bcd’ + ab’c

Profesor Leopoldo Silva Bijit 19-01-2010


56 Sistemas Digitales

ab
cd 00 01 11 10
0 4 12 8
00 1 1
1 5 13 9
01 1 1 1

3 7 15 11
11 1 1
2 6 14 10
10 1 1 1

f2(a,b,c,d) = c’d + a’b’c’ + ab’c + abd’ +a’bc

Figura P7.33 Mapas f2 Problema 7.15.

Finalmente f3, resulta:


f3 = f0 + f1 = a’b’cd’ + a’bc’d’ + ab’c’d’ + a’b’c’d + abcd

c a d b f3 f0 f2 f1
dirección add3 add2 add1 add0 D3 D2 D1 D0
0 0 0 0 0 0 0 1 0
1 0 0 0 1 1 1 0 0
2 0 0 1 0 1 0 1 1
3 0 0 1 1 0 0 1 0
4 0 1 0 0 1 1 0 1
5 0 1 0 1 0 0 1 0
6 0 1 1 0 0 0 1 0
7 0 1 1 1 0 0 1 0
8 1 0 0 0 1 1 0 1
9 1 0 0 1 0 0 1 0
10 1 0 1 0 0 0 1 0
11 1 0 1 1 0 0 1 0
12 1 1 0 0 0 0 1 0
13 1 1 0 1 0 0 1 0
14 1 1 1 0 0 0 1 0
15 1 1 1 1 1 1 0 1

Figura P7.34 Mapas EPROM Problema 7.15.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 57
Problema 7.16. Diseño con condiciones superfluas.

Se tiene que la función expresada como producto de sumas, considerando las condiciones
superfluas con valores iguales a uno es: f (a, b, c, d) = (a + c)(a’ + b + c + d)
Se tiene que la función mínima expresada como suma de productos, considerando las
condiciones superfluas con valores iguales a cero es: f (a, b, c, d) = abd + abc+ bcd + acd

a) Determinar los mintérminos superfluos para f.


b) Determinar el producto de sumas mínimo usando las condiciones superfluas.
c) Determinar la suma de productos mínima usando las condiciones superfluas.

Solución:
a) La primera proposición nos permite determinar los ceros de la función. La segunda determina
los unos de la función. Dibujando en un mapa, pueden encontrarse las condiciones superfluas de
f, como los mintérminos: 2, 3, 6, 9, 10, 12.

ab
cd 00 01 11 10
0 4 12 8
00 0 0 d 0
1 5 13 9
01 0 0 1 d
3 7 15 11
11 d 1 1 1
2 6 14 10
10 d d 1 d

f(a, b, c, d) = abd + abc+ bcd + acd con Cond. Superfluas iguales a 0


f(a, b, c, d) = (a + c)(a’ + b + c + d) con Cond. Superfluas iguales a 1
Figura P7.35 Mapas Problema 7.16.

b) Agrupando los unos de la función complementada y considerando las condiciones


superfluas, se obtienen los siguientes implicantes primos: a’c’, c’d’, b’c’, a’b’, b’d’.

0 1 4 5 8
a’c’ x x x x
c’d’ x x x
b’c’ x x x
a’b’ x x
b’d’ x x

Figura P7.36 Implicantes Problema 7.16.

Profesor Leopoldo Silva Bijit 19-01-2010


58 Sistemas Digitales
Confeccionando una tabla de implicantes (donde no se anotan los superfluos), se obtiene que
a’c’ es esencial. Entonces sólo resta cubrir el mintérmino 8; esto es posible de tres formas,
eligiendo: (c’d’), (b’c’) o (b’d’). Se tienen entonces:

f 1‘(a, b, c, d) = a’c’ +c’d’


f 2‘(a, b, c, d) = a’c’ +b’c’
f 3‘(a, b, c, d) = a’c’ +b’d’

Complementado y aplicando De Morgan, se obtienen las tres soluciones, de igual costo (6


entradas, 4 literales):
f 1(a, b, c, d) = (a + c)(c + d)
f 2(a, b, c, d) = (a + c)(b + c)
f 3(a, b, c, d) = (a + c)(b + d)

c) Agrupando los unos de la función y considerando las condiciones superfluas, se obtienen los
siguientes implicantes primos: c, ab, ad. Confeccionando una tabla de implicantes (donde no
se anotan los superfluos), se obtiene que c es implicante primo esencial. Sólo resta cubrir al
mintérmino 13, lo cual puede lograrse de dos formas; eligiendo (ab) o (ad). Se tienen entonces,
dos soluciones:

7 11 13 14 15
c x x x x
ab x x x
ad x x x

Figura P7.37 Implicantes Problema 7.16, parte c.

f 1(a, b, c, d) = c + ab
f 2(a, b, c, d) = c + ad

Ambas de igual costo (4 entradas, 3 literales).

El método de minimización empleado, está basado en:


obtener los implicantes primos (por inspección del mapa, o aplicando método de Quine
McCluskey);
luego se plantea la tabla de implicantes (se omiten las columnas asociadas a
mintérminos superfluos, si existieren), y mediante ella se determinan los implicantes
primos esenciales, que deben estar presentes en la función.
Luego se reduce la tabla y se determinan todas las soluciones posibles. Se elige la de
menor costo.

Problema 7.17. Diseño combinacional

Un sistema digital tiene cuatro entradas: a, b, c, d y una salida z, que debe colocarse alta cuando
se cumplan las siguientes condiciones:
i) Si la entrada, en binario, es múltiplo de 3 ó 7.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 59
Múltiplo está definido como el número que contiene a otro una o más veces exactamente.
Considere que a es el bit más significativo y que d es el menos significativo.
ii) Si se activa a, no debe activarse b.
iii) Si no se activa a, entonces debe activarse c o d o ambos.

a) Expresar la condición i) como suma de mintérminos.


b) Expresar la condición ii) como producto de maxtérminos.
c) Expresar la condición iii) mediante un mapa de Karnaugh.
d) Minimizar la función z.

Solución:
a) El cero no se considera, con la definición dada, como múltiplo de 3 ó 7.
Condición i) = m(3, 6, 7, 9, 12, 14, 15)
# a b c d i) ii) iii) z
0 0 0 0 0 0 1 0 0
1 0 0 0 1 0 1 1 0
2 0 0 1 0 0 1 1 0
3 0 0 1 1 1 1 1 1
4 0 1 0 0 0 1 0 0
5 0 1 0 1 0 1 1 0
6 0 1 1 0 1 1 1 1
7 0 1 1 1 1 1 1 1
8 1 0 0 0 0 1 1 0
9 1 0 0 1 1 1 1 1
10 1 0 1 0 0 1 1 0
11 1 0 1 1 0 1 1 0
12 1 1 0 0 1 0 1 0
13 1 1 0 1 0 0 1 0
14 1 1 1 0 1 0 1 0
15 1 1 1 1 1 0 1 0

Figura P7.38 Tablas de verdad. Problema 7.17.

b) Condición ii)
a b’ = a’+ b’
= (a’ +b’)(c + c’)
= (a’ +b’ + c’)(a’ +b’ + c)(d +d’)
= (a’ + b’ + c’ + d) (a’ + b’ + c’ + d’) (a’ + b’ + c + d) (a’ + b’ + c + d’)
= M14 M15 M12 M13
= M(12,13,14,15).

c) Condición iii)
a’ (c +d) = a + c + d

Profesor Leopoldo Silva Bijit 19-01-2010


60 Sistemas Digitales
El mapa resulta:
ab
cd n 00 01 11 10
0 4 12 8
00 1 1
1 5 13 9
01 1 1 1 1
3 7 15 11
11 1 1 1 1
2 6 14 10
10 1 1 1 1

Condición iii) = a +c +d

Figura P7.39 Mapa condición iii). Problema 7.17.

d) Cuando se cumplan las siguientes condiciones se interpreta como el and de las condiciones
i), ii) y iii).
ab
cd 00 01 11 10
0 4 12 8
00

1 5 13 9
01 1

3 7 15 11
11 1 1
2 6 14 10
10 1

z = m(3, 6, 7, 9)

Figura P7.40 Mapa con minimización de z. Problema 7.17.

Como suma de productos: z = a’b’c’d + a’cd +a’bc 10 literales, 13 entradas.


Dos pastillas de baja integración: Un nand de tres entradas y un nand de 4 entradas.

Como producto de sumas: z’ = b’d’ +a’c’ +ac + ab


z = (b + d)(a + c)(a’ + c’)(a’ + b’) 8 literales, 12 entradas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 61
Dos pastillas de baja integración: Un nor de dos entradas y un nor de 4 entradas.
Entonces el diseño mínimo para z es mediante la forma producto de sumas.

Problema 7.18. Diseño de control de un display.

Se desea diseñar un circuito combinacional minimizado de 4 entradas (A, B, C, D) que produzca


las señales que controlen un display de 4 segmentos. El display tiene 4 líneas de control (C0,
C1, C2, C3) tales que cuando la línea de control está activada (es 1 lógico) se enciende el LED
correspondiente; en caso contrario el segmento del LED permanece apagado.
Se sabe que las entradas no pueden estar todas en cero, y que tampoco pueden estar altas más de
dos entradas simultáneamente. El diagrama ilustra el segmento que activa cada señal de control.
C0

C3
5 C1

C2

Figura P7.41 Esquema display. Problema 7.18.

Se asume que las entradas ABCD representan un número binario, donde A es la cifra más
significativa.
A continuación se ilustran los siguientes símbolos ordenados de izquierda a derecha. El ubicado
más a la izquierda debe representar al número binario menor (dado por ABCD), y así
sucesivamente hasta el número binario mayor que pueda representarse.

Solución.
Se puede confeccionar la siguiente tabla de verdad:

Las salidas del sistema combinacional (las señales que controlan los LEDs) se consideran
condiciones superfluas para el primer renglón de la tabla, debido a que las entradas no pueden
estar todas en cero. Y como no pueden existir más de dos entradas altas, también se consideran
superfluos los mintérminos: 7, 11, 13, 14 y 15.

Luego se van llenando los valores de las señales C0, C1, C2 y C3, renglón por renglón,
considerando los segmentos que deben encenderse, de acuerdo al orden de los símbolos.

Profesor Leopoldo Silva Bijit 19-01-2010


62 Sistemas Digitales

AB
A B C D C0 C1 C2 C3
CD 00 01 11 10
0 0 0 0 d d d d
0 0 0 1 1 1 0 4 12 8
00 d 1 1
0 0 1 0 1 1
0 0 1 1 1 1
0 1 0 0 1 1 1 5 13 9
0 1 0 1 1 1 1 01 d 1
0 1 1 0 1 1 1
0 1 1 1 d d d d 3 7 15 11
1 0 0 0 1 1 1 11 1 d d d
1 0 0 1 1 1 1
1 0 1 0 1 2 6 14 10
1 0 1 1 d d d d 10 1 d
1 1 0 0 1
1 1 0 1 d d d d
1 1 1 0 d d d d
1 1 1 1 d d d d C0=A'BD'+AB'C'+CD

Figura P7.42 Tabla de verdad y Mapa de C0.

AB AB
CD 00 01 11 10 CD 00 01 11 10
0 4 12 8 0 4 12 8
00 d 1 1 00 d
1 5 13 9 1 5 13 9
01 1 d 01 1 1 d 1

3 7 15 11 3 7 15 11
11 1 d d d 11 d d d
2 6 14 10 2 6 14 10
10 1 1 d 10 1 1 d 1

C1=AC'D'+BD+A'C C2=C'D+CD'
Figura P7.43 Mapas de C1 y C2.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 63

AB
CD 00 01 11 10
0 4 12 8
00 d 1 1
1 5 13 9
01 1 1 d 1

3 7 15 11
11 d d d
2 6 14 10
10 d

C3=A'C'+ B'C'

Figura P7.44 Mapa de C3.

Observaciones respecto a las minimizaciones.


Los implicantes primos de C0 son: A'BD' (4,6), AB'C' (8,9), A'C'D'(4,0), BCD'(6,14),
AC'D(9,13), A'BC(6,7), ABC(14,15), ABD(13,15), AB'D(9,11), B'C'D'(8,0), AD(9,11,13,15),
BC(6,7,14,15), CD(4,7,11,15).
Entonces CD debe estar presente ya que es el único que cubre al 3.
Se puede escoger A'BD' o A'C'D'+BC para cubrir el 4 y el 6. Obviamente es de menor costo
A'BD'.
Se puede escoger AB'C' o B'C'D'+AD para cubrir el 8 y el 9. Obviamente es de menor costo
AB'C'.

Los implicantes primos de C1 son: AC'D', A'B'D', B'C'D', AB, A'C, BD, CD, BC.
BD debe estar presente ya que es esencial (el único que cubre al 3).
AC'D' cubre al 8 y 12. Igual cobertura se logra con mayor costo: B'C'D'+AB
A'C cubre al 2, 3 y 6. Mucho mayor costo para igual cobertura es: CD+BC+A'B'D

Los implicantes primos de C2 son: A'B'C', A'B'D', AD, BC, CD', C'D, BD
La única minimización razonable que se considera es: C'D+CD'

Los implicantes primos de C3 son: A'C', B'C', AD, BD, C'D.


La única minimización razonable que se considera es: B'C'+A'C'

No se requería emplear reducción de tablas de implicantes. Pero es un buen ejercicio practicar


con las cuatro tablas anteriores, recordando que no deben considerarse los mintérminos
superfluos en las tablas.

Profesor Leopoldo Silva Bijit 19-01-2010


64 Sistemas Digitales

Ejercicios propuestos.

Ejercicio 7.1.

Diseñar con un multiplexor 8 a 1, la función: f(a, b, c, d) = m(0, 2, 4, 6)

Ejercicio 7.2.

Diseñar con un decodificador 3 a 8, y compuertas or, la función: f(a, b, c, d) = m(0, 2, 4, 6)

Ejercicio 7.3.

Desarrollar la función f=ab+c’ en la celda de la Figura 7.40.

Ejercicio 7.4.

Desarrollar la función del ejemplo 7.8 empleando LUTs de 2 variables.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 65

Índice general.

CAPÍTULO 7 ............................................................................................................................................. 1
SISTEMAS COMBINACIONALES ........................................................................................................ 1
7.1. COMPONENTES BÁSICOS. ................................................................................................................... 1
7.2. MULTIPLEXOR. MUX. ........................................................................................................................ 2
Ejemplo 7.1. ........................................................................................................................................ 4
7.3. TERCER ESTADO. ALTA IMPEDANCIA. .............................................................................................. 7
7.4. DECODIFICADORES. ........................................................................................................................... 8
Ejemplo 7.2 ......................................................................................................................................... 9
7.5. DEMULTIPLEXER, DISTRIBUIDOR. .................................................................................................... 10
7.6. PRIMITIVAS PROGRAMABLES ........................................................................................................... 13
7.6.1. Matriz de diodos ...................................................................................................................... 13
7.6.2. ROM ........................................................................................................................................ 15
7.6.3. PROM, EPROM. ..................................................................................................................... 16
7.6.4. Usos de PROM en circuitos combinacionales. ........................................................................ 17
a) Conversión de códigos. .............................................................................................................................. 17
Ejemplo 7.3. Conversión de BCD a exceso 3. .......................................................................................... 17
b) Generadores de funciones. ......................................................................................................................... 17
Ejemplo 7.4. .............................................................................................................................................. 18
c) Extensión. Estructura de memorias. .......................................................................................................... 18
Ejemplo 7.5 ............................................................................................................................................... 18
d) Descripción de archivos con código hexadecimal Intel. ............................................................................ 19
Ejemplo 7.6 ............................................................................................................................................... 20
7.6.5. PLA. Arreglos Lógicos Programables. .................................................................................... 21
Ejemplo 7.7. ................................................................................................................................................... 22
Detalle arreglo de AND. ................................................................................................................................ 23
Detalle arreglo OR. ........................................................................................................................................ 24
Diagrama simplificado PLA. ......................................................................................................................... 25
7.6.6. PAL arreglo lógico (de and) programable (Programable Array Logic). ................................ 27
7.6.7. PLD (Programable Logic Device). ......................................................................................... 28
7.6.8. Comparaciones entre dispositivos programables. .................................................................. 29
7.6.9. CPLD ( Complex Programable Logic Device). ....................................................................... 29
7.6.10. FPGA..................................................................................................................................... 29
Celdas basadas en multiplexores.................................................................................................................... 30
Celdas basadas en tablas de búsqueda. .......................................................................................................... 30
Ejemplo 7.8. ................................................................................................................................................... 31
Etapas o fases de diseño................................................................................................................................. 32
7.6.11. ASIC. ..................................................................................................................................... 33
PROBLEMAS RESUELTOS. ........................................................................................................................ 34
Problema 7.1. Expansión. Conexión cascada. .................................................................................. 34
Problema 7.2. Realización de funciones booleanas, mediante mux. ................................................. 34
Problema 7.3. Diseño de lógica combinacional empleando mux. ..................................................... 35
Problema 7.4. Diseño empleando mux de 8:1 ................................................................................... 37
Problema 7.5. Mal uso de muxs ........................................................................................................ 38
Problema 7.6. Diseño multifunción con decodificador. .................................................................... 38

Profesor Leopoldo Silva Bijit 19-01-2010


66 Sistemas Digitales
Problema 7.7. Diseño con decodificadores en base a mintérminos. ..................................................39
Problema 7.8. If then else anidados. ..................................................................................................40
Problema 7.9. Diseño con PROM. .....................................................................................................43
Problema 7.10. Diseño con multiplexor.............................................................................................45
Problema 7.11. Multiplexor ...............................................................................................................47
Problema 7.12. Mux 74151 ................................................................................................................49
Problema 7.13. Mux 8 a 1. .................................................................................................................52
Problema 7.14. Programa en EPROM ..............................................................................................53
Problema 7.15. Programar EPROM. ................................................................................................54
Problema 7.16. Diseño con condiciones superfluas. .........................................................................57
Problema 7.17. Diseño combinacional ..............................................................................................58
Problema 7.18. Diseño de control de un display. ..............................................................................61
EJERCICIOS PROPUESTOS. ........................................................................................................................64
Ejercicio 7.1. ......................................................................................................................................64
Ejercicio 7.2. ......................................................................................................................................64
Ejercicio 7.3. ......................................................................................................................................64
Ejercicio 7.4. ......................................................................................................................................64
ÍNDICE GENERAL. ....................................................................................................................................65
ÍNDICE DE FIGURAS .................................................................................................................................67

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 7. Sistemas Combinacionales 67

Índice de figuras

Figura 7.1 Esquema funcional multiplexor. .................................................................................. 2


Figura 7.2 Multiplexor dos vías a una. .......................................................................................... 2
Figura 7.2.a. Multiplexor basado en compuertas. ......................................................................... 3
Figura 7.3 Multiplexor 4 a 1. ......................................................................................................... 3
Figura 7.4 Diseño combinacional de multiplexor 4 a 1................................................................. 4
Figura 7.5 Símbolo mux 4 a 1. ...................................................................................................... 4
Figura 7.6 Implementación con mux 2 a 1. ................................................................................... 5
Figura 7.7 Implementación con muxs 2 a 1. ................................................................................. 5
Figura 7.8 Desarrollo basado en mux 4 a 1. .................................................................................. 6
Figura 7.9. Multiplexor de 8 vías a una. ........................................................................................ 6
Figura 7.10. Multiplexor con salida de tercer estado. ................................................................... 7
Figura 7.11. Buffer de tercer estado. ............................................................................................. 8
Figura 7.12. Multiplexor mediante buffers de tercer estado......................................................... 8
Figura 7.13. Buffer con salida activada por señal de lógica negativa. .......................................... 8
Figura 7.14. Decodificador binario. .............................................................................................. 9
Figura 7.15. Diseño en base a compuertas .................................................................................... 9
Figura 7.15.a. Decodificador binario 4 a 16 ................................................................................ 10
Figura 7.16. Esquema funcional de Demultiplexor ..................................................................... 11
Figura 7.17. Diseño demultiplexor en base a compuertas. .......................................................... 11
Figura 7.18. Símbolo demultiplexor............................................................................................ 12
Figura 7.19. Diseño switch empleando multiplexor y demultiplexor. ....................................... 12
Figura 7.20. Operandos de entrada y salida de unidad aritmética. ............................................. 13
Figura 7.21. Matriz de diodos. .................................................................................................... 14
Figura 7.22. Memoria. ................................................................................................................. 15
Figura 7.23. Representación simbólica de una matriz de diodos. .............................................. 16
Figura 7.24. Mapa de memoria de matriz de diodos de la figura 7.23. ...................................... 16
Figura 7.25. Mapa de memoria del cambiador de códigos. ........................................................ 17
Figura 7.26. Diseño de funciones mediante PROM. .................................................................. 18
Figura 7.27. Esquema funcional del diseño de una función en base a PROM. .......................... 18
Figura 7.28 Extensión del largo de la palabra. ............................................................................ 19
Figura 7.29. PLA Arreglos lógicos programables. ..................................................................... 22
Figura 7.30. Esquema del diseño empleando PLA...................................................................... 23
Figura 7.31 Arreglo de AND. ...................................................................................................... 24
Figura 7.32 Arreglo de OR. ......................................................................................................... 24
Figura 7.33 PLA en esquema de compuertas lógicas. ................................................................. 25
Figura 7.34 PLA programada. Se muestran abiertas las conexiones........................................... 26
Figura 7.35 Esquema de compuertas simplificado de una PLA. ................................................. 26
Figura 7.36 Esquema simplificado PLA, con conexiones abiertas. ............................................ 27
Figura 7.37. Esquema PAL ......................................................................................................... 27
Figura 7.38. Esquema PAL con realimentaciones....................................................................... 28
Figura 7.39. PLD con macrocelda. .............................................................................................. 28
Figura 7.40. Celda basada en multiplexores................................................................................ 30
Figura 7.41. Celda basada en Tabla de búsqueda. ....................................................................... 31

Profesor Leopoldo Silva Bijit 19-01-2010


68 Sistemas Digitales
Figura 7.42. Bloque lógico configurable xilinx. .......................................................................... 31
Figura 7.43. Implementación en LUTs de 3 variables................................................................. 32
Figura P7.1. Conexión cascada de multiplexores. ...................................................................... 34
Figura P7.2. Conexión cascada de multiplexores. ...................................................................... 34
Figura P7.3. Diseño empleando mux........................................................................................... 35
Figura P7.4 Esquema del diseño en base a mux. ......................................................................... 36
Figura P7.5. Otra implementación en base a mux. ...................................................................... 36
Figura P7.6. Grupos en en mapa de f. ......................................................................................... 37
Figura P7.7. Diseño empleando multiplexor de 8 vías a una. .................................................... 37
Figura P7.8. Diseño con exceso de muxs. ................................................................................... 38
Figura P7.9. Diseño empleando compuertas en lugar de muxes. ............................................... 38
Figura P7.10. Diseño combinacional empleando decodificadores. ............................................. 39
Figura P7.11. Diseño combinacional empleando decodificadores 3:8. ...................................... 40
Figura P7.12. Diagrama de flujo Problema 7.8. ......................................................................... 40
Figura P7.13. Soluciones 1, 2 y 3. .............................................................................................. 41
Figura P7.14. Soluciones 4, 5 y 6. .............................................................................................. 41
Figura P7.15. Condiciones para realización de a, b o c. ............................................................. 42
Figura P7.16. Condiciones para realización de a, b. ................................................................... 42
Figura P7.17. Mapa de Memoria. ............................................................................................... 43
Figura P7.18. Mapa de f2. .......................................................................................................... 44
Figura P7.19. Mux Problema 7.10.............................................................................................. 45
Figura P7.20. Minimización Problema 7.10. .............................................................................. 46
Figura P7.21. Tabla implicantes Problema 7.10. ........................................................................ 46
Figura P7.22. Mapa y Tabla implicantes producto de sumas. .................................................... 47
Figura P7.23. Mux Problema 7.11.............................................................................................. 48
Figura P7.24. Mapa Problema 7.11. ........................................................................................... 49
Figura P7.25. Conexiones Problema 7.12. ................................................................................. 50
Figura P7.26. Formas de ondas. Problema 7.12. ........................................................................ 52
Figura P7.27. Mux Problema 7.13.............................................................................................. 52
Figura P7.28 Mapa Problema 7.13. ............................................................................................ 53
Figura P7.29 EPROM Problema 7.14. ....................................................................................... 53
Figura P7.30 Mapa EPROM Problema 7.14. ............................................................................. 54
Figura P7.31 Variables y direcciones EPROM Problema 7.15. ................................................. 55
Figura P7.32 Mapas f0 y f1 Problema 7.15. ............................................................................... 55
Figura P7.33 Mapas f2 Problema 7.15. ...................................................................................... 56
Figura P7.34 Mapas EPROM Problema 7.15. ............................................................................ 56
Figura P7.35 Mapas Problema 7.16............................................................................................ 57
Figura P7.36 Implicantes Problema 7.16.................................................................................... 57
Figura P7.37 Implicantes Problema 7.16, parte c. ...................................................................... 58
Figura P7.38 Tablas de verdad. Problema 7.17. ......................................................................... 59
Figura P7.39 Mapa condición iii). Problema 7.17. ..................................................................... 60
Figura P7.40 Mapa con minimización de z. Problema 7.17. ...................................................... 60
Figura P7.41 Esquema display. Problema 7.18. ......................................................................... 61
Figura P7.42 Tabla de verdad y Mapa de C0. ............................................................................ 62
Figura P7.43 Mapas de C1 y C2. ................................................................................................ 62
Figura P7.44 Mapa de C3. .......................................................................................................... 63

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 8

Descomposición

La descomposición de un problema complejo en un número de subproblemas más simples de


resolver es una actividad usual en ingeniería.

En síntesis lógica es una actividad fundamental, ya que separa un sistema lógico de un número
elevado de entradas en un conjunto de subsistemas interconectados con un número menor de
variables de entrada.

En la actualidad los dispositivos programables están basados en unidades que pueden


implementar funciones con un número reducido de entradas y salidas. Por ejemplo en FPGAs
basadas en tablas de búsquedas de k entradas se pueden representar funciones boolenas con k
variables de entrada y una salida. Entonces la tarea es descomponer los nodos de una red
boolena que tengan más de k entradas en subredes funcionalmente equivalentes que estén
formadas solamente por nodos con k o menos entradas.

Figura 8.1. Descomposición paralela y serial.

La Figura 8.1, a la izquierda, muestra la descomposición paralela, que separa la red en varias
redes con menor número de entradas y salidas. La ubicada a la derecha ilustra la
descomposición en serie.

La descomposición funcional de los circuitos combinacionales influye poderosamente en la


disminución de costos de implementación de los sistemas digitales. Y tiene su fundamento en
que las tablas de verdad de funciones combinacionales, de un número elevado de variables,
pueden contener redundancias, las que pueden ser eliminadas por la descomposición de la
función en varias funciones independientes con menos variables de entrada.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Esta descomposición no sólo reduce la complejidad sino que aumenta la escalabilidad y la
realizabilidad de los sistemas.

Desde un punto de vista matemático la descomposición es el proceso de expresar una función de


n variables como una función de funciones con variables menores que n.

Se exponen los principales resultados de la teoría de descomposición, ilustrando los diferentes


ejemplos mediante mapas, lo cual es posible para un número reducido de variables. Sin embargo
en problemas reales con un número elevado de variables, para resolver cada uno de los
subproblemas asociados a la descomposición existen heurísticas, que han permitido desarrollar
aplicaciones computacionales que resuelven el problema. Su exposición tiene mayor relación
con cursos de estructuras de datos y algoritmos.

8.1. Descomposición trivial. Teorema de Shannon.

8.1.1. Extracción de una variable.

Una función de n variables puede ser descompuesta, aplicando el teorema de expansión de


Shanonn, según:

f ( x1 , x2 ,.., xn 1 , xn ) xn ' f ( x1 , x2 ,.., xn 1 , 0) xn f ( x1 , x2 ,.., xn 1 ,1)

Xn f f(Xn)

Figura 8.2 Función de n variables.

En la Figura 8.1. se ha definido: X n x1 , x2 ,.., xn 1 , xn

Si definimos las funciones de (n-1) variables, según:

g 0 ( x1 , x2 ,.., xn 1 ) f ( x1 , x2 ,.., xn 1 , 0)
g1 ( x1 , x2 ,.., xn 1 ) f ( x1 , x2 ,.., xn 1 ,1)
Podremos expresar:
f ( x1 , x2 ,.., xn 1 , xn ) F ( g 0 , g1 , xn )
Con:
F ( g0 , g1 , xn ) xn ' g 0 xn g1

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 3

g0
Xn-1 F(g0, g1, xn) f(Xn)
g1
xn

Figura 8.3 Descomposición trivial.

Donde: X n 1 x1 , x2 ,.., xn 1

La descomposición consiste en encontrar las funciones: g0, g1 y F. Las funciones gi se


denominan funciones predecesoras o auxiliares; y la descomposición se denomina serial o en
red lógica de tipo árbol.

La función F, puede ser implementada usando un multiplexor.

g0 0
Xn-1 f(Xn)
g1 1

xn

Figura 8.4 Implementación con multiplexor.

Si se escribe la tabla de verdad de f como una matriz, similar a un mapa de Karnaugh, donde los
renglones representan los valores de xn, y las columnas asociadas a los valores de las
combinaciones del resto de las (n-1) variables, se tiene la Figura 8.5, la que representa una
función de 4 variables:

x4/x1x2x3 000 001 011 010 110 111 101 100


0 1 1 1 1 1
1 1 1 1

Figura 8.5. Tabla de verdad de una función de 4 variables.

Entonces el primer renglón es la tabla de verdad de la función g0; el segundo corresponde al


mapa de g1.

La función g0, puede minimizarse empleando el siguiente mapa de tres variables:

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

x3/x1x2 00 01 11 10
0 1 1 1
1 1 1
g0=x2’+x1’x3’

Figura 8.6 Mapa de g0.

La función g1, puede minimizarse empleando el siguiente mapa de tres variables:

x3/x1x2 00 01 11 10
0 1 1
1 1
g1=x1x2+x2x3’

Figura 8.7 Mapa de g1.

Resultando:
F ( g0 , g1 , x3 ) x3 ' g 0 x3 g1 x3 '( x2 ' x1 ' x3 ') x3 ( x1 x2 x2 x3 ')

8.1.2. Extracción de dos variables.

Del mismo modo pueden disminuirse las entradas a las funciones auxiliares, generando
funciones con un número menor de variables de entrada. La Figura 8.8 muestra las funciones
cofactores cuando se han extraído las variables xn y xn-1.

g0

g1
Xn-2
g2 F(g0, g1, g2, g3, xn-1, xn) f(Xn)

g3
xn-1, xn

Figura 8.8. Descomposición en 4 subfunciones.

Las funciones de (n-2) variables se obtienen a partir de la función f, según:

g 0 ( x1 , x2 ,.., xn 2 ) f ( x1 , x2 ,.., xn 2 , 0, 0)
g1 ( x1 , x2 ,.., xn 2 ) f ( x1 , x2 ,.., xn 2 , 0,1)
g 2 ( x1 , x2 ,.., xn 2 ) f ( x1 , x2 ,.., xn 2 ,1, 0)
g3 ( x1 , x2 ,.., xn 2 ) f ( x1 , x2 ,.., xn 2 ,1,1)

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 5

La función F, queda dada por:

F ( g0 , g1 , g 2 , g3 , xn 1 , xn ) xn 1 ' xn ' g0 xn 1 ' xn g1 xn 1 xn ' g 2 xn 1 xn g3

La cual puede ser implementada mediante un mux de 4 vías a una, según se muestra en la
Figura 8.9.
g0
0

g1 1
Xn-2 f(Xn)
g2 2

g3 3
xn-1, xn

Figura 8.9. Multiplexor de 4 vías.

La identificación de las funciones auxiliares o cofactores pueden visualizarse como los


renglones del mapa de Karnaugh, cuando en los renglones se ubican los valores de las
combinaciones de las variables que controlan el multiplexor, que podríamos llamar variables
libres. La Figura 8.10, ilustra el caso de una función de 5 variables.

x4x5/x1x2x3 000 001 011 010 110 111 101 100


00 1 1 1 1 1
01 1 1 1
11 1 1 1
10 1 1 1 1

Figura 8.10. Tabla de verdad de una función de 5 variables.

Donde las funciones gi, se pueden minimizar empleando mapas de tres variables.

8.2. Descomposición de Ashenhurst.

En 1952 Ashenhurst demuestra las condiciones en que una función f puede ser descompuesta
en la forma:
f ( x1 , x2 ,.., xn 1 , xn ) h( x1 , x2 ,..xk , g ( xk 1 , xk 2 ,.., xn ))

Se define el conjunto de k variables libres, según: X l x1 , x2 ,.., xk , y el conjunto de variables


acotado según: X a xk 1 , xk 2 ,.., xn . Debe notarse que el número de variables de entrada

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
que tiene la subfunción g es (n-k), y que el número de variables de entrada del bloque h es de
(k+1) variables, ambos menores que n.

El módulo g debe poder ser implementado en un dispositivo en el cual se pueda programar una
función de (n-k) variables de entrada y una salida.

Si la función h tiene más de (n-k) entradas puede ser descompuesta de manera similar.
Generando una red multinivel con estructura de árbol. Si resultan en el proceso dos funciones
iguales, basta utilizar una instancia, y generar múltiples salidas de este bloque; en este caso la
estructura deja de ser de tipo árbol para convertirse en un grafo dirigido acíclico.

Se dice que la descomposición es disjunta ya que el conjunto de variables de entrada es partido


en dos subconjuntos con intersección vacía.

Xa g
h(g, Xl) f(Xn)
Xl

Figura 8.11. Descomposición de Ashenhurst.

8.2.1. Compactando las columnas.

Si se dibuja la tabla de verdad, colocando en los renglones las combinaciones de los valores de
las variables libres, y en las columnas los valores de las combinaciones del conjunto acotado, se
tiene una matriz denominada de descomposición.

La condición para que pueda aplicarse la descomposición de Ashenhurst, es que las columnas
de este arreglo tengan a lo más dos valores diferentes. Uno de los valores de las columnas estará
asociado a g ( xk 1 , xk 2 ,.., xn ) 0 ; el otro a g ( xk 1 , xk 2 ,.., xn ) 1 .

Consideremos el siguiente ejemplo de 5 variables.

x1x2/x3x4x5 000 001 010 011 100 101 110 111


00
01 1 1 1 1
10 1 1 1 1
11 1 1 1 1 1 1 1 1

Figura 8.12. Matriz de descomposición con dos columnas con valores diferentes.

Se tienen dos posibles elecciones para la función h, dependiendo de la columna que se asocie al
valor de g=0. La Figura 8.13 ilustra una de las elecciones posibles.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 7

x1x2/g(x3,x4,x5) 0 1
00
01 1
10 1
11 1 1
h

Figura 8.13. Tabla de verdad de h(g,Xa).

Resulta, minimizando: h x1 x2 ( x1 x2 ) g

Si se elige la otra columna asociada al valor de g=0, resulta una función de igual costo, salvo
que aparece g’ en la expresión. Nótese que se efectúa una minimización o reducción de
columnas equivalentes.

Las cuatro columnas asociadas a g=1, permiten determinar la función g ( x3 , x4 , x5 ) .


Corresponden a los valores equivalentes decimales del conjunto x3 , x4 , x5 3,5, 6, 7 .

x5/x3x4 00 01 11 10
0 1
1 1 1 1
g=x3x4+x3x5+x4x5

Figura 8.14. Tabla de verdad de g(Xa).

Debe notarse que tanto h como g pueden implementarse con bloques que tengan un número de
entradas acotado a 3. Si se efectúa el diseño con compuertas tradicionales, se obtiene un diseño
en cuatro niveles con 17 entradas.

Un diseño mínimo en dos niveles permite obtener la expresión con 27 entradas:

f x1 x2 x1 x3 x4 x2 x3 x4 x1 x3 x5 x2 x3 x5 x1 x4 x5 x2 x4 x5

La cual al ser factorizada, permite obtener:

f x1 x2 ( x1 x2 )( x3 x4 x3 x5 x4 x5 )

Expresión en la cual pueden reconocerse las funciones g y h, obtenidas mediante


descomposición.

Esta descomposición disjunta se basa en la mezcla de las columnas equivalentes con el objetivo
de remover las redundancias de la tabla de verdad de n variables.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
8.2.2. Redundancia de renglones.

Otra forma de encontrar las condiciones suficientes y necesarias para que exista la
descomposición de Ashenhurst es observar los renglones de la matriz, que representan las
combinaciones de valores que puede tomar el conjunto libre de variables de entrada.

Observando las Figuras 8.3 y 8.8, se puede generalizar el resultado para la extracción de k
variables, notando que la función f puede descomponerse en 2 k funciones gi ( X l ) , una por cada
renglón. Con m 2k el número de funciones auxiliares, se tiene:

g0
0

g1 1
Xa f(Xn)
… …

gm-1 2k-1
Xl

Figura 8.15. Multiplexor de m entradas, controlado por variables libres.

Pero como la descomposición de Ashenhurst sólo tiene una función g, las diferentes funciones
cofactores deben ser constantes (formadas por solamente ceros o unos), o poder ser expresadas
en términos de una sola función o su complemento.

Dicho de otro modo: no considerando los renglones formados por solamente ceros o unos, o
aquellos que son complementos de otros renglones, sólo puede existir un y solo un renglón
diferente, el cual estará asociado a la función g de la Figura 8.11.

La Figura 8.16, muestra la estructura interna de la función h: un bloque C, que solamente


interconecta sus cuatro posibles entradas con las 2 k entradas del mux; observando el diagrama
en bloques la función combinacional h depende de g y X l , que es la forma deseada de
descomposición.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 9

Xa g C 1
f(Xn)
0 …

1 2k-1
Xl

h(g,Xl)

Figura 8.16. La función h es el multiplexor más red combinacional.

En el caso del ejemplo de la Figura 8.12, esto se cumple, ya que existe un solo renglón diferente
en la matriz, además de las constantes. En este ejemplo no existe un renglón que sea
complemento de otro. Observando la tabla de la Figura 8.12, la función h puede escribirse:

h x1 x2 ( x1 ' x2 x1 x2 ') g

La que minimizada en el espacio de las variables libres y g, tres variables en este caso, permite
obtener:
h x1 x2 ( x1 x2 ) g

La función g, se determina obteniendo la tabla de verdad del segundo o tercer renglón, en


términos de las variables acotadas, lo que se muestra en la Figura 8.14.

Esta descomposición disjunta se basa en la extracción de los renglones equivalentes con el


objetivo de remover las redundancias de la tabla de verdad de n variables.

8.2.3. Complejidad de la descomposición.

La dificultad computacional de la descomposición está en la revisión de las diferentes


particiones de la tabla de verdad que pueden realizarse.

Como existen C(n, a) combinaciones de a variables de un conjunto de n, que es el número de


formas de escoger a elementos de un total de n, donde C(n, a) es el coeficiente binomial; se
tendrá ese número de particiones posibles. Además cada tabla tendrá 2 n valores. Esto implica
que el método descrito es no polinomial, debido al crecimiento exponencial.

Si lo que interesa es obtener todas las particiones posibles, aceptando que tanto las variables
acotadas como las libres puedan ser cero, se tendrá un número total de particiones igual a 2 n ,
ya que se tiene que:

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
n n n n
... 2n
0 1 n 1 n

Para el caso del ejemplo descrito en la tabla de la Figura 8.11, se tienen 10 particiones,
considerando que el número de variables del conjunto acotado es 3. Se enumeran a continuación
los conjuntos de los índices de las variables acotadas: {1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 4},
{1, 3, 5}, {1, 4, 5}, {2, 3, 4}, {2, 3, 5}, {2, 4, 5}, {3, 4, 5}. En el ejemplo visto antes sólo se
analizó el último conjunto.

Pero no todas las particiones permiten obtener una descomposición disjunta de Ashenhurst.

La partición, en la cual las variables acotadas son x2x3x4, se muestra en la Figura 8.17, en la cual
hay 5 columnas diferentes, lo cual implica que no existe la descomposición de Ashenhurst. Lo
mismo puede concluirse al observar que existen cuatro renglones diferentes.

x1x5/ x2x3x4 000 001 010 011 100 101 110 111
00 1
01 1 1 1
10 1 1 1 1 1
11 1 1 1 1 1 1

Figura 8.17. Partición {2, 3, 4}.

La tabla se construyó con el mapa de la expresión mínima en dos niveles de f.


f x1 x2 x1 x3 x4 x2 x3 x4 x1 x3 x5 x2 x3 x5 x1 x4 x5 x2 x4 x5

Entonces la descomposición es de complejidad no polinomial y para su implementación


práctica, deben resolverse los subproblemas: la generación de particiones, la determinación de
cuales columnas o renglones son equivalentes y los métodos para determinar las subfunciones.

Existen numerosas contribuciones para resolver estos problemas: Algunas basadas en grafos
coloreados, otras en cálculo con cubos, otras en diagramas de decisión binarios. Todas ellas
escapan a un curso introductorio de sistemas digitales.

8.3. Descomposición de Curtis.

Lo primero que debe explorarse es si existe la descomposición de Ashenhurst, ya que ésta


descompone de manera significativa el problema. Sin embargo en muchos casos esta
descomposición no existe, en esta situación puede continuarse aplicando la descomposición de
Curtis.

Si en la Figura 8.3, consideramos un conjunto limitado de (n-k) variables de entrada, en las


funciones auxiliares, asumiendo que las funciones gi, se implementarán con bloques que tienen
también un número acotado de entradas y una salida, podemos considerar el resto de las
variables como un conjunto de k variables que denominaremos libre.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 11

Para el caso tratado antes de extracción de una variable, que se muestra en la Figura 8.3, se tiene
que k=1 y por lo tanto: (n-k)=n-1, este caso se denomina descomposición simple o trivial.

8.3.1. Descomposición de Curtis, con dos funciones auxiliares.

Interesa la situación en que los bloques gi tienen acotado el número de variables de entrada. El
esquema general de las funciones, con la notación introducida, se muestra en la Figura 8.18,
para el caso de dos funciones seriales.

g0
Xa F(g0, g1, Xl) f(Xn)
g1
Xl

Figura 8.18. Descomposición disjunta de Curtis.

Si los dos conjuntos de variables tienen intersección vacía, se denomina disjunta a la


descomposición. Una vez encontradas las funciones g0, g1, y F, puede volver a aplicarse
descomposición a la función F, hasta que todos los bloques seriales gi tengan no más de (n-k)
entradas.

Demostraremos las condiciones necesarias y suficientes para que pueda encontrarse la


descomposición anterior.

Si se dibuja la tabla de verdad, colocando en los renglones las combinaciones de los valores de
las variables libres, y en las columnas los valores de las combinaciones del conjunto acotado, la
condición para que pueda aplicarse la descomposición de Curtis, con dos funciones auxiliares,
es que las columnas de este arreglo tengan a lo más cuatro valores diferentes. Las cuatro
columnas no redundantes quedarán asociadas a los siguientes valores:

g1 , g 0 00, 01,10,11

El mapa formado por 4 columnas y 2 k renglones, define la función F, en términos de Xl, g1 y


g0.

Las mezclas de las columnas equivalentes, permiten determinar las funciones auxiliares en
términos de las variables del conjunto acotado.

Nótese que en este caso el número de columnas equivalentes debe ser mayor que 2; ya que si
sólo fueran dos podría aplicarse la descomposición de Ashenhurst. Puede decirse que la
descomposición simple de Curtis, cuando sólo se tienen dos columnas diferentes, es la
descomposición de Ashenhurst.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
Si las columnas equivalentes fueran solamente 3, la determinación de la función F, se ve
simplificada por la introducción de una columna con valores superfluos.

El análisis de los renglones permite establecer que existe la descomposición de Curtis, con dos
funciones seriales, si se tienen dos renglones diferentes, una vez eliminados los renglones
constantes y los renglones que son el complemento de otros.

8.3.2. Descomposición de Curtis, con m funciones auxiliares.

El resultado anterior puede generalizarse cuando se tienen a lo más 2m columnas diferentes. En


este caso se tendrán m funciones auxiliares. Si a es el número de variables que forman el
conjunto acotado, la descomposición se aplica si m < a; notar que si m=a, el número de entradas
a la función F, no disminuye.

Alternativamente se tiene una descomposición general de Curtis: si se tienen m renglones


diferentes, una vez eliminados los renglones constantes y los renglones que son el complemento
de otros.
g0

g1
Xa
… F(g0, g1, …, gm-1, Xl) f(Xn)

gm-1
Xl

Figura 8.19. Descomposición disjunta de Curtis.

Entonces para n variables, con k variables libres, y m columnas equivalentes en la tabla de


verdad de 2k 2n k se tiene la descomposición de Curtis, si y solamente si:
1 k
2 m n k

Nótese que los bloques g, representan una codificación de las variables del conjunto acotado, y
existe compactación si: m < n-k.

Algunas funciones pueden descomponerse por compactación de renglones y no por mezcla de


columnas y también ocurre lo opuesto. Debido a esto pueden considerarse métodos de
descomposición diferentes.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 13
8.3.3. Fundamentos.

Si se escribe la tabla de verdad de la función f de n variables, pero en la cual se colocan en los


renglones las combinaciones de las k variables libres y en las columnas las combinaciones de las
a variables acotadas; y se rotulan las columnas de acuerdo al valor decimal equivalente se
obtiene la matriz de descomposición de r 2k renglones y c 2a columnas. Esta matriz es
similar a un mapa de Karnaugh, pero sin emplear codificación Gray para enumerar renglones y
columnas.

Por ejemplo para la función completamente especificada, de cinco variables:

f ( x1 , x2 , x3 , x4 , x5 ) m(0, 6, 7,8,13,15,17,19, 22, 23, 24, 25, 27, 28)

Con el conjunto de variables acotado A x1 , x2 , x3 y el conjunto de variables libres:


L x4 , x5

La matriz de descomposición resulta:

A 0 1 2 3 4 5 6 7
L x4x5\x1x2x3 000 001 010 011 100 101 110 111
0 00 1 1 1 1
1 01 1 1 1
2 10 1 1
3 11 1 1 1 1 1
f(A, L)=f(x1,x2,x3,x4,x5)

Figura 8.20. Matriz de descomposición.

Si descomponemos las variables en términos de los subconjuntos A y L, podemos escribir:

f ( x1 , x2 , x3 , x4 , x5 ) f ( A, L)

La cual puede escribirse en términos de los renglones, en lugar de los mintérminos:

f ( A, L) f ( A, 0) x4 ' x5 ' f ( A,1) x4 ' x5 f ( A, 2) x4 x5 ' f ( A,3) x4 x5

El primer renglón de f, es una función de tres variables, que representa los mintérminos de ese
renglón, lo cual puede anotarse:

f ( A, 0) f ( x1 , x2 , x3 , 0, 0) x1 ' x2 ' x3 ' x1 ' x2 x3 ' x1 x2 x3 ' x1 x2 x3

Existiendo definiciones similares para el resto de los renglones.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
Si además definimos el producto de las variables de L, con el subíndice decimal equivalente del
mintérmino asociado a esas dos variables, como pi ( L) . Se tienen:
p0 ( L) x4 ' x5 ' , p1 ( L) x4 ' x5 y así sucesivamente.

Empleando estas definiciones, puede escribirse:

f ( A, L) f ( A, 0) p0 ( L) f ( A,1) p1 ( L) f ( A, 2) p2 ( L) f ( A,3) p3 ( L)

Y empleando notación con sumatorias, resulta:


i 3
f ( A, L) f ( A, i ) pi ( L)
i 0

De manera similar la expansión por columnas, puede anotarse:

i 7
f ( A, L) f (i, L) pi ( A)
i 0

En un caso general de n variables, la expansión por columnas, resulta con c igual al número de
columnas de la matriz:
i c
f ( x1 , x2 ,..., xn ) f ( A, L) f (i, L) pi ( A)
i 0
En la Figura 8.21, se muestra una implementación con multiplexor, controlado por las variables
acotadas de la expansión. Notar que las entradas al mux son funciones de las variables libres,
que representan los unos presentes de la función en cada columna. Existe simplificación en la
descomposición si varias de estas funciones son iguales entre sí, o bien si unas son el
complemento de otras, o si son constantes. La generación de una entrada lógica uno o cero, no
requiere electrónica para ser implementada; si una función es el complemento de otra, basta un
inversor para generarla.
f(0,L)
0

f(1,L) 1
L ….. f(A,L)
.
f(i,L) i
…..
.
f(c,L) c

Figura 8.21. Expansión por columnas.

La expansión por renglones, para un caso general con r igual al número de renglones, resulta:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 15
i r
f ( x1 , x2 ,..., xn ) f ( A, L) f ( A, i) pi ( L)
i 0
En la Figura 8.22, se muestra una implementación con multiplexor, controlado por las variables
libres, de la expansión. Notar que las entradas al mux son funciones de las variables acotadas,
que representan los unos presentes de la función en cada renglón. Existe simplificación en la
descomposición si varias de estas funciones son iguales entre sí, o bien si unas son el
complemento de otras, o si son constantes.

f(A,0)
0

f(A,1) 1
A ….. f(A,L)
.
f(A,i) i
…..
.
f(A,r) r

Figura 8.22. Expansión por renglones.

Estas representaciones son únicas, ya que en ambos casos se están representando los
mintérminos de la función f. En un caso se expande por columnas, en el otro por renglones.

i c i r
f ( x1 , x2 ,..., xn ) f (i, L) pi ( A) f ( A, i ) pi ( L)
i 0 i 0

Una vez introducida la notación, nos interesa descomponer f en las funciones g y h, según:

f ( A, L) h( g ( A), L)

Lo cual representa analíticamente a la descomposición serial, que se muestra en la Figura 8.23.


En la cual interesa determinar las funciones h y g.

A g
h( g(A), L) f(A,L)
L

Figura 8.23. Descomposición serial disjunta.

Si cg es el número de columnas de la matriz que representa a la función h, se tiene la siguiente


representación por columnas:

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales
i cg
h( g , L ) h( g i, L) pi ( g )
i 0
El mínimo número de columnas es dos, es decir cg=2. Lo cual implica que la salida del bloque
g, está formado por una variable. Una de las columnas de la matriz de h está asociada a g=0, la
otra a g=1. Corresponde a la descomposición de Ashenhurst.

El número de columnas debe ser una potencia de dos, si cg=4, entonces el bloque g tiene dos
salidas, que podemos denominar g1 y g0, las que serían las variables, cuyos mintérminos
identificarían a las columnas.

Si cg=2m, entonces g tiene m salidas. Que podemos denominar: g0, g1, …, gm. Este es el caso
general de la descomposición disjunta de Curtis.

Si c=cg, es decir si A y g tienen el mismo número de columnas, no se reduce el número de


entradas a la función h, será el mismo número de entradas de la función f. Entonces para que la
descomposición sea de interés debe tenerse: c > cg.

Entonces la función f, puede descomponerse en las funciones g y h:

f ( x1 , x2 ,..., xn ) f ( A, L) h( g ( A), L)

si y solamente si se cumple la igualdad de:

i c i cg
f (i, L) pi ( A) h( g i, L) pi ( g )
i 0 i 0

Para el caso de cg=4, se tiene que cumplir:


i c
f (i, L) pi ( A) h(0, L) g1 ' g 0 ' h(1, L) g1 ' g 0 h(2, L) g1 g 0 ' h(3, L) g1g 0
i 0

Donde el lado izquierdo es conocido, y el objetivo es determinar las subfunciones: h, g1 y g0.


Debe notarse que h(i,L) y f(i,L) son solamente funciones de las variables libres.

Si c es mayor que cg, por ejemplo 8, ya que tiene que ser una potencia de dos, existirán 8
columnas en f y 4 columnas en h. Esto implica tres variables acotadas.

Entonces se requiere que a lo más f tenga 4 columnas diferentes, incluidas los valores de
columnas con puros ceros o puros unos; los valores de esas columnas serán los valores de las
columnas de h. Existen 4! formas de escoger las columnas de h, a partir de las columnas
diferentes de f.

Si f tiene 3 columnas diferentes, una de las columnas de h puede escogerse con solamente
valores superfluos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 17
Si f tiene sólo dos columnas diferentes, entonces debe escogerse una función h que tenga dos
columnas, y sólo basta una función g, es el caso de la descomposición Ashenhurst.

Si f tiene 5 columnas diferentes, no es posible satisfacer la igualdad, en este caso es preciso que
h tenga también 8 columnas, de las cuales 3 pueden ser fijadas en condiciones superfluas. Sin
embargo en este caso se requieren 3 funciones g, lo cual implica que h tendrá igual número de
entradas que la función f. Razón por la cual este caso no es de interés en descomposición.

Una vez seleccionadas las columnas de f que representarán a las de h, esta función puede
determinarse. Además la determinación de las funciones g puede realizarse con las siguientes
cuatro ecuaciones:

pi ( A) p0 ( g ) g1 ' g 0 '
i f ( i , L ) h (0, L )

pi ( A) p1 ( g ) g1 ' g 0
i f ( i , L ) h (1, L )

pi ( A) p2 ( g ) g1 g 0 '
i f ( i , L ) h (2, L )

pi ( A) p3 ( g ) g1 g 0
i f ( i , L ) h (3, L )

Las cuales permiten escribir las tablas de verdad de las funciones g1 y g0, en términos de las
variables acotadas, ya que los pi ( A) sólo dependen de las variables acotadas.

En la tabla de la Figura 8.20, se han agregado dos renglones que identifican la selección
realizada de las columnas de h, y los valores binarios correspondientes de las salidas g1 y g0.

g1g0 00 01 00 10 10 01 11 00
h(0,L) h(1,L) h(0,L) h(2,L) h(2,L) h(1,L) h(3,L) h(0,L)
A 0 1 2 3 4 5 6 7
L x4x5\x1x2x3 000 001 010 011 100 101 110 111
0 00 1 1 1 1
1 01 1 1 1
2 10 1 1
3 11 1 1 1 1 1
f(A, L)=h(g(A),L)

Figura 8.24. Descomposición serial disjunta.

La selección realizada para las columnas de h puede anotarse:


h(0, L) f (0, L) f (2, L) f (7, L) x4 ' x5 '
h(1, L) f (1, L) f (5, L) x4 x5 ' x4 x5 x4
h(2, L) f (3, L) f (4, L) x4 ' x5 x4 x5 x5

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
h(3, L) f (6, L) x4 ' x5 ' x4 ' x5 x4 x5 x4 ' x5

Las que reemplazadas en la siguiente ecuación, nos permiten obtener h.


i cg
h( g , L ) h( g i, L) pi ( g )
i 0

h( g , L ) x4 ' x5 ' g1 ' g 0 ' x4 g1 ' g 0 x5 g1 g 0 ' ( x4 ' x5 ) g1 g 0

Para determinar las funciones g1 y g0, realizamos las sumatorias:

g1 ' g 0 ' pi ( A) p0 ( A) p2 ( A) p7 ( A) x1 ' x2 ' x3 ' x1 ' x2 x3 ' x1 x2 x3


i 0,2,7

g1 ' g 0 pi ( A) p1 ( A) p5 ( A) x1 ' x2 ' x3 x1 x2 ' x3


i 1,5

g1 g 0 ' pi ( A) p3 ( A) p4 ( A) x1 ' x2 x3 x1 x2 ' x3 '


i 3,4

g1 g 0 pi ( A) p6 ( A) x1 x2 x3 '
i 6

Si se suman las dos últimas ecuaciones, se tiene:

g1 x1 ' x2 x3 x1 x2 ' x3 ' x1 x2 x3 ' x1 ' x2 x3 x1 x3 '

Si se suman la segunda y la cuarta, se obtiene:

g0 x1 ' x2 ' x3 x1 x2 ' x3 x1 x2 x3 ' x2 ' x3 x1 x2 x3 '

La determinación de las funciones también puede obtenerse empleando la información de la


matriz de descomposición. Eliminando las columnas duplicadas de la Figura 8.24. y los
renglones asociados a las variables acotadas, resulta la Figura 8.25; donde se puede determinar
la función sucesora h.
h(0,L) h(1,L) h(2,L) h(3,L)
L x4x5\ g1g0 00 01 10 11
0 00 1 1
1 01 1 1
2 10 1
3 11 1 1 1
h(g,L)

Figura 8.25. Función h(g,L).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 19
Si en la Figura 8.24, se eliminan los renglones asociados a las variables libres, y sólo se dejan
los renglones asociados a las tablas de verdad de las funciones g1 y g0, se obtiene la Figura
8.26.

g1g0 00 01 00 10 10 01 11 00
x1x2x3 000 001 010 011 100 101 110 111

Figura 8.26. Tablas de verdad de las funciones g1 y g0.

Funciones que pueden ser minimizadas, redibujando las tablas de verdad como mapas de
Karnaugh.
x4x5\ g1g0 00 01 11 10
00 1 1
01 1 1
11 1 1 1
10 1
h(g, x4, x5)

Figura 8.27. Mapa de Karnaugh de h.

h( g1 , g0 , x4 , x5 ) g1 x5 g1 g 0 x4 ' g1 ' g 0 x4 g1 ' g 0 ' x4 ' x5 '

Para las funciones antecesoras:

x3\ x1 x2 00 01 11 10
0 00 00 11 10
1 01 10 00 01
g1g0

Figura 8.28. Mapa de Karnaugh de g1 y g0.

Resultan:
g1 ( x1 , x2 , x3 ) x1 x3 ' x1 ' x2 x3
g0 ( x1 , x2 , x3 ) x2 ' x3 x1 x2 x3 '

8.4. Descomposición de funciones incompletamente especificadas.

Cuando la tabla de verdad tiene condiciones superfluas se dice que dos columnas i, j son
compatibles si cada elemento en la columna i es igual al correspondiente elemento de j, o si el
elemento en i o en j no está especificado.

Dicho de otra forma: Dos columnas, Cr y Cs, son compatibles, si no existe un renglón i, para el
cual los correspondientes elementos Cir y Cis sean diferentes, cuando ambos están
especificados.

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales
La descomposición de estas funciones está gobernada por las mismas reglas anteriores, excepto
que existen varias combinaciones alternativas para mezclar las columnas compatibles. En estos
casos la solución puede no ser única.

Un conjunto de columnas para el cual cada par de columnas son compatibles se denomina clase
compatible. Las clases compatibles que no son subconjuntos de otras clases compatibles se
denominan clases de compatibilidad máxima.
Finalmente se selecciona un subconjunto de mínima cardinalidad de las clases máximas, tal que
cada columna esté al menos en una de clases de compatibilidad máxima que se empleen.

8.4.1. Ejemplo.

Veremos a través de un ejemplo la forma de compactar las columnas de la tabla de la función f


incompletamente especificada. Variables libres: (a,b), variables acotadas: (c,d,e).

ab/ cde 000 001 010 011 100 101 110 111
00 1 - 0 1 - 0 1 0
01 - - - - 1 1 - -
10 - 0 1 0 0 - 0 1
11 0 1 - - - - - -
C0 C1 C2 C3 C4 C5 C6 C7
f(a,b,c,d,e)

Figura 8.29. Descomposición de función con condiciones superfluas.

Como ejemplo, los siguientes pares son incompatibles: (C0, C1), (C0, C2), (C0, C5), (C0, C7).

Para formar las clases, es preciso disponer de los pares de columnas compatibles. En la
siguiente tabla de la Figura 8.30, en la primera columna se anotan los pares indicando los
índices de las columnas.
Para formar la segunda columna, se recorren los pares para detectar los tríos de columnas
compatibles entre sí. Por ejemplo se tienen los pares: (0,3), (0,4) y (3,4), entonces se forma el
trío de columnas compatibles entre sí: (0, 3, 4). En la Figura 8.30, no se muestran todos los
vínculos que permiten construir la segunda columna. Como se usan todos los pares al formar la
columna de tríos, no se tiene una clase máxima formada por dos columnas.

Luego de la columna de tríos se forma una clase compatible de cuatro columnas entre sí. De este
modo puede formarse la clase (0,3,4,6) ya que se tienen: (0,3,4), (0,3,6), (0,4,6) y (3,4,6). Se
procede de igual forma hasta que no se puedan generar clases con un número mayor de
columnas compatibles entre sí.

Nótese que en la tercera columna quedan dos clases con cuatro columnas compatibles entre sí, y
en la segunda quedan dos con tres columnas compatibles entre sí. Éstas son las clases de
compatibilidad máxima.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 21

0,3
0,4
0,6 0,3,4
1,3 0,3,6
1,4 0,4,6
1,5 1,3,4 0,3,4,6
1,6 1,3,6 1,3,4,6
2,5 1,4,5
2,7 1,4,6
3,4 2,5,7
3,6 3,4,6
4,5
4,6
5,7

Figura 8.30. Formación de clases de compatibilidad máxima.

Ahora debe efectuarse una selección de las clases, de tal modo que cada una de las columnas
esté incluida en alguna de las clases seleccionadas. Por ejemplo, pueden escogerse las clases:
(0,3,4,6), (1,4,5), (2,5,7). Finalmente los elementos múltiples deben eliminarse, resultando las
siguientes clases: (0,3,4,6), (1,5), (2,7).

La mezcla de las columnas de cada clase, que en el caso del ejemplo son tres, se asocian a los
valores de las funciones seriales g1 y g0. Nótese que se agrega una columna con valores
superfluos, lo que permite un nivel adicional de minimización de la función: h(g1, g0, (a,b))

La codificación de las columnas influye en la minimización.

ab/ g1g0 00 01 10 11
00 1 0 0 -
01 1 1 - -
10 0 0 1 -
11 0 1 - -
C0,C3,C4,C6 C1,C5 C2,C7 -
h

Figura 8.31. Mezcla de columnas de clases compatibles.

Para la determinación de las funciones g, en términos de las variables acotadas, se tienen:

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

cde 000 001 010 011 100 101 110 111


g1g0 00 01 10 00 00 01 00 10
C0 C1 C2 C3 C4 C5 C6 C7

Figura 8.32. Tablas de las funciones predecesoras.

Resultan, luego de la minimización:


c
d g
e h f
h a ' g1 ' g 0 ' bg 0 ag1 a
b
g1 c ' de ' cde
g0 d 'e

Figura 8.33. Resultado de la descomposición.

8.5. Descomposiciones no disjuntas.

Cuando no se cumplen las condiciones para descomposiciones disjuntas, puede encontrarse


descomposiciones no disjuntas, agregando al conjunto acotado una de las variables libres.

Si A C son las variables acotadas y L C son las variables libres y C es no vacío se tiene
una descomposición no disjunta.
A
g
C
F f

Figura 8.34. Descomposición no disjunta.

El uso de mapas con variables repetidas, permite generalizar el caso de las descomposiciones
disjuntas al tratamiento de las no disjuntas.

El mapa con variables repetidas es incompletamente especificado aunque la función original sea
completamente especificada. Cada variable repetida crea un mapa de una dimensión mayor en el
cual las nuevas celdas introducidas son condiciones superfluas.

8.5.1. Ejemplo.

La función f, de la Figura 8.35, no tiene descomposición disjunta de Curtis, no hay 4 columnas


diferentes; ni Ashenhurst, ya que no hay sólo 2. Puede verificarse que no existe

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 23
descomposiciones eligiendo los seis conjuntos libres posibles en este caso: ab, cd, ac, bd, ad,
bc.

Diseño en dos niveles: f = bcd+acd+a’c’d’+b’c’d’+a’b’d’ con 20 entradas.


AB
CD 00 01 11 10
0 4 12 8
00 1 1 0 1
1 5 13 9
01 0 0 0 0
3 7 15 11
11 0 1 1 1
2 6 14 10
10 1 0 0 0

f(A, B, C, D)

Figura 8.35. Descomposición no disjunta.

Si se introducen las variables C1 = C2 = C, aparecen numerosas condiciones superfluas, ya que


si C es la misma variable, no se pueden producir los casos en que C1 y C2 sean diferentes.
C1AB
C2D 000 001 011 010 100 101 111 110
0 4 12 8
00 1 1 0 1 - - - -
1 5 13 9
01 0 0 0 0 - - - -
3 7 15 11
11 - - - - 0 1 1 1
2 6 14 10
10 - - - - 1 0 0 0

f(A, B, C, D)

Figura 8.36. Mapa con variable C repetida.

a) Diseño mezclando columnas.


Eligiendo valores para las casillas superfluas, pueden tenerse los siguientes conjuntos de
columnas compatibles: (0,1,2,4) (3,5,6,7), se ha empleado el decimal equivalente para
identificar la columna. Puede notarse que las columnas 1 y 2 no son compatibles, ya que para el
renglón 0, una tiene valor uno y la otra valor cero.
Existen otras elecciones posibles de las condiciones superfluas, que permiten seleccionar otros
conjuntos de columnas compatibles.

Entonces mezclando las columnas compatibles, puede verse que existe la descomposición de
Ashenhurst no disjunta.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales

cd\g 0 1
00 1 0
01 0 0
11 0 1
10 1 0
h=d’g’+cdg

Figura 8.37. Ashenhurst no disjunta.

La determinación de la función g, puede obtenerse considerando que g será uno cuando las
variables acotadas CAB toman las combinaciones: 011, 101, 111, 110, con el mapa:

c\ab 00 01 11 10
0 1
1 1 1 1
g=ab + ac+ bc

Figura 8.38. Función predecesora g.

Evaluando el costo con compuertas elementales, resulta de 17 entradas y 5 niveles. Sin embargo
este cálculo no es relevante si las funciones g y h pueden implementarse en un bloque básico.
b) Diseño compactando renglones.
Eligiendo valores para las condiciones superfluas, pueden formarse dos renglones
complementarios
C1AB
C2D 000 001 011 010 100 101 111 110
0 4 12 8
00 1 1 0 1 1 0 0 0
1 5 13 9
01 0 0 0 0 - - - -
3 7 15 11
11 0 0 1 0 0 1 1 1
2 6 14 10
10 1 1 0 1 1 0 0 0

f(A, B, C, D)

Figura 8.39. Formación de renglones compatibles.

La ecuación para la función sucesora, se obtiene con la ecuación del multiplexor gobernado por
las variables libres.
h= gc’d’+0c’d+ g’cd + gcd’
La cual puede ser minimizada:
h= cdg’+d’g

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 25
La función antecesora, resulta del mapa del primer renglón:

c\ab 00 01 11 10
0 1 1 1
1 1
g=a’b’ + a’c’+ b’c’

Figura 8.40. Mapa para obtener función g.

Que para fines de comparación, implementada con compuertas tradicionales, resulta de 17


entradas y 5 niveles

Factorizando con SIS, que emplea cálculo con cubos, se obtiene la red booleana:
g1 = ab, g2=a’+b’ h= d’g1’+cdg1+c’d’g2 con 16 entradas, 4 niveles

8.6. Descomposición paralela.

En caso de tener sistemas con múltiples salidas debe aplicarse la descomposición en paralelo.
En la descomposición paralela el conjunto de variables de salida f, es particionado en dos
subconjuntos fG y fH, y la función f en las funciones G y H correspondientes. De tal modo que
los conjuntos XG y XH, de variables de entrada a los bloques G y H respectivamente, contengan
menos variables que el conjunto X de variables de entrada a la función f.

X XG XH

f fG fH

Figura 8.41. Descomposición paralela.

Si los conjuntos XG y XH son disjuntos, se dice que la descomposición paralela es disjunta; si la


intersección es no vacía se dice que es no disjunta.

Se denomina descomposición balanceada al proceso de partir una función mediante


descomposición paralela o serial en cada fase del proceso de síntesis.

8.7. Síntesis multinivel

8.7.1. Redes lógicas booleanas.

La minimización como suma de productos es un proceso de síntesis lógica realizada en dos


niveles de compuertas. Estos diseños tienen mínimo retardo para la propagación de los cambios
entre las entradas y las salidas, pero a costa de compuertas con gran número de entradas.

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales
Compuertas con muchas entradas requieren mayor superficie para ubicar los transistores dentro
del proceso de integración; por lo cual debido al compromiso área versus tiempo de retardo, los
diseños de sistemas complejos suelen tener más de dos niveles.

La estructura de dispositivos CPLD permite naturalmente la implementación de lógica en dos


niveles. La estructura interna de los dispositivos FPGA, basada en la interconexión de pequeñas
celdas estándares, está más orientada a la implementación de lógica multinivel.

Los sistemas computacionales de ayuda al diseño (CAD) que permiten la optimización de lógica
multinivel, modelan las ecuaciones mediante una red lógica booleana, que es una
generalización de un netlist o un esquemático basado en compuertas.

La Figura 8.42 muestra un esquemático simple, basado en compuertas.

A x1
B
x2
C
D

Figura 8.42. Esquemático basado en compuertas.

La Figura 8.43 representa una red lógica booleana, en la cual las salidas de los bloques,
denominados vértices internos o nodos, son funciones booleanas. Es decir un netlist de
componentes conectadas, pero éstas pueden ser ahora funciones booleanas arbitrarias.

La estructura resultante es un grafo dirigido acíclico.

En un caso general puede suponerse que las entradas a la red, provienen de salidas de latchs o
flip-flops, que almacenan los valores de las variables; y que las salidas de la red son
almacenadas en registros.

A
x1
B
x2
C
D

Figura 8.43. Red lógica booleana.

Los métodos de minimización están basados en transformaciones locales o globales de la red.

Las transformaciones locales apuntan a reducir el área y el tiempo de propagación asociados al


nodo o bien a mapear la función del nodo a determinada interconexión de celdas básicas. Las

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 27
transformaciones globales reestructuran la red, por ejemplo: uniendo nodos, o separando un
nodo en dos, o cambiando las conexiones entre nodos.

Si las funciones de cada nodo se representan en forma suma de productos, el costo de la red
puede calcularse como la suma de los literales de cada nodo.

No se dispone, por el momento, de herramientas que logren la optimización de sistemas


complejos multinivel; a cambio se dispone de operaciones que se realizan sobre la red,
intentando un cambio; en caso de disminuir el costo de la red, se acepta el cambio, en caso
contrario se intenta otra modificación, esto puede repetirse hasta que no se logren nuevas
reducciones del costo.

Se entiende por optimización multinivel al proceso de encontrar factores lógicos que sean
comunes, lo cual reduce el fan in pero aumenta el número de niveles. Luego debe mapearse
estas formas factorizadas en alguna de las formas que estén disponibles en una biblioteca.

8.7.2. Operaciones.

Eliminación de un nodo.
Se elimina un nodo interno mediante el reemplazo de la función que lo describe en todos los
nodos que éste alimenta. Se elimina un nodo de pequeño costo, el cual es absorbido por el
resto. También se denomina colapsamiento del nodo x. Esta operación disminuye el tiempo de
propagación de la red pero aumenta los costos de los nodos.

La Figura 8.44 muestra la eliminación del nodo con salida x.

C S=x+C C S=A’+B+C
A
A
B
x=A’+B
B
T=xD A T=(A’+B)D
B
D D

Figura 8.44. Eliminación nodo x.

Creación de un nodo.
Se agrega un nuevo vértice que contiene una subexpresión que es común a dos o más nodos;
luego la salida del nuevo nodo substituye el término común en los nodos.
Se disminuye el tamaño de algunos nodos, agregando un nodo factor; de este modo los nodos
resultantes son de costos menores.

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales
C S=(A+B)C C S=xC
A
A
B
x=A+B
B
A T=(A+B)D T=xD
B
D D

Figura 8.45. Creación nodo x.

Esta operación también se denomina extracción, ya que obtiene un factor que es común a varias
funciones. Esta operación aumenta el tiempo de propagación de la red pero disminuye los costos
de los nodos.

Las siguientes son operaciones que se realizan sobre un nodo.


Descomposición.
Una función puede descomponerse en partes.
Por ejemplo la función que tiene asociado el nodo: f = abc+abd
Puede descomponerse en tres nodos: f, x e y, con las siguientes funciones para cada nodo:
f = xy x = ab y = c+d
Factorización.
Una función puede descomponerse en sus factores.
Por ejemplo la función que tiene asociado el nodo: f = ac + ad + bc + bd
Puede factorizarse según: f = (a+b)(c+d)

Encontrar métodos para obtener factores adecuados ha sido posible gracias al desarrollo de
nuevos conceptos teóricos: Para lograr disponer del operador división no se definen algunos
postulados del algebra de Boole, de este modo una expresión booleana se comporta como un
polinomio de números reales.
Específicamente no se definen: a+a’=1, aa’=0, aa=a, a+a=a, a+1=1, a+(b+c) =(a+b)(a+c).
Con esto podemos usar para expresiones las reglas algebraicas empleadas con reales. Nótese
que en este ambiente una variable y su complemento no tienen ninguna relación.
Simplificación.
Puede aplicarse un método de simplificación, del tipo minimización en forma de suma de
productos, a la función asociada a un nodo. Si no se eliminan variables se tiene una
minimización local; sin embargo si se elimina una o más variables, se dice que la simplificación
es global ya que cambia la red.
SIS
La forma de efectuar minimizaciones multinivel es a través de herramientas CAD de ayuda al
diseño. Éstas suelen venir incorporadas en el software provisto por los fabricantes de
dispositivos programables, o bien se producen en forma comercial. Por otra parte se puede usar
software libre como sis, que fue desarrollado por la Universidad de Berkeley. Ver Apéndice 6,

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 29
sobre uso de sis. Más recientemente está en desarrollo el sistema abc, también en la Universidad
de Berkeley, éste último acepta entradas en verilog estructural.

8.7.3. Formas factorizadas.

Una expresión booleana puede representarse mediante una forma factorizada.

Estas formas podían describirse según:


Es un producto de sumas de productos o una suma de producto de sumas.

Las siguientes son formas factorizadas: x, y’, abc’, a+b’c, ((a’+b)cd+e)(a+b’)+e’


Pero: (a+b)’c no es una forma factorizada ya que la complementación de una expresión no
está permitida, salvo sobre literales.

Puede definirse recursivamente según:


Una forma factorizada es un producto o una suma, donde:
El producto es un literal simple o un producto de formas factorizadas.
La suma es un literal simple o una suma de formas factorizadas.

Las formas factorizadas no son únicas. La siguientes tres formas son equivalentes:
ab+c(a+b) bc+a(b+c) ac+b(a+c)

Una forma suma de productos es una forma factorizada pero seguramente no es una buena
factorización considerando el costo espacial.

La expresión en forma de suma de productos: f = ae+af+bce+bcf+bde+bdf tiene un costo de


16 literales. La forma factorizada equivalente f = (a+b(c+d))(e+f), tiene un costo de 6 literales.

Esto implica que una forma “bien” factorizada es bastante más compacta que la cobertura
mínima formada por la suma de implicantes primos.

La forma suma de productos de la función de 10 variables, func1 tiene 42 literales, con 54


entradas en total, en dos niveles. El or final de esta implementación tiene 12 entradas.
func1=ac+ade+adfg+adfh+adfi+adfj+bc+bde+bdfg+ bdfh+bdfi+bdfj
Esto considerando que func1 está minimizada.

La forma factorizada equivalente func2, tiene 10 literales y 6 niveles. Con 16 entradas en total.
En este diseño todas las compuertas son de dos entradas, salvo una que es de 4.
func2=(a+b)(c+d(e+f(g+h+i+j)))

A través de los ejemplos anteriores se comprueba que las formas factorizadas son útiles en la
reducción del costo de una red multinivel.

En diseños de funciones integradas CMOS, las redes de pull-up y pull down corresponden a la
forma factorizada de la función.

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales

Problemas resueltos.

P8.1. Descomposición.

Se tiene la siguiente función de cuatro variables.


a b c d f
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 1
1 0 0 1 1
1 0 1 0 1
1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 0

Figura P8.1. Función de cuatro variables.

Se efectúa la descomposición, empleando como variables libres: a, b. LO primero que se realiza


es determinar la matriz de descomposición.

ab\cd 00 01 10 11
00 0 1 1 0
01 1 0 0 1
10 1 1 1 1
11 0 0 0 0

Figura P8.2. Matriz de descomposición.

Luego se buscan columnas equivalentes. Se encuentran dos columnas diferentes, lo que implica
que la red tiene descomposición de Ashenhurst.

Luego se escogen las columnas de h.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 31

ab\g 0 1
00 0 1
01 1 0
10 1 1
11 0 0
h=ab’+b’g+a’bg’

Figura P8.3. Función sucesora.

Finalmente se determina la función g.


a\b 0 1
0 1 0
1 1 0
g=b’

Figura P8.4. Función predecesora.

La solución alternativa es compactando los renglones. El primer y segundo renglón son


complementarios, los otros dos renglones son constantes, lo cual implica que existe
descomposición de Ashenhurst:

f ga ' b ' g ' a ' b 1ab ' 0ab


g c ' d cd '

P8.2. Factorización.

La función de 5 variables: f AC AD BE BF es de la forma suma de productos, y no


puede ser reducida por simplificación. Su implementación tiene un costo total de:
2+2+2+2+4 = 12 entradas, y 8 literales.

Se desea obtener una forma factorizada implementada mediante NANDs,

Sin embargo, mediante factorización puede escribirse: f A(C D) B( E F ) , la cual


requiere 2+2+2+2+2 = 10 entradas, y 6 literales según puede apreciarse en la Figura P8.5. Esta
expresión no es suma de productos pura; pero su implementación es directa, empleando AND y
OR e implica tres niveles.
C
D
A
f
B
E
F

Figura P8.5. Forma factorizada en tres niveles.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales
Las formas factorizadas también pueden mapearse con compuertas nand.

El teorema de De Morgan indica que la siguiente compuerta es equivalente a un NAND.

Figura P8.6. Nand según De Morgan.

Se complementan las variables de entrada y se insertan burbujas inversoras en las entradas de


las compuertas or de primer nivel. Luego se insertan dobles burbujas inversoras a la salida de
los ands del segundo nivel, formando un nand y desplazando la burbuja hacia las entradas de los
or del tercer nivel. Resulta la red de la Figura P8.7.

C’
D A
f
E’ B
F’

Figura P8.7. Diseño en base a NANDs

Luego se representan todas las compuertas, usando el símbolo de los NAND. El diseño se logra
empleando 5 compuertas nand y con 10 entradas. Debe notarse que este método asume que se
dispone de las entradas y sus complementos.

Ejercicios propuestos.

E8.1.

Efectuar la descomposición, si es posible, del problema P8.1, para los siguientes juegos de
variables libres: (a,c), (a,d), (b,c), (b,d) y (c,d). Comparando los resultados, y seleccionando la
mejor descomposición.

E8.2.

Dada la forma factorizada: (a + b + c)(d + e) f+g expandirla a suma de productos.


Comparar las formas respecto del: número de niveles, de entradas y de literales.
Efectuar el diseño empleando solamente compuertas nand.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 33
Referencias.

R. L. Ashenhurst, “The decomposition of switching functions”, Bell Laboratories, Tech. Rep.


BL-1(11), 1952.

H. Allen Curtis, “Generalized Tree Circuit”, Lewis Research Center. NASA. 1961.

Marek A. Perkowski, Tadeusz Luba, et al, “Unified approach to functional decompositions of


switching functions”, Portland State University, 1995.

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales

Índice general.

CAPÍTULO 8 ..............................................................................................................................................1
DESCOMPOSICIÓN .................................................................................................................................1
8.1. DESCOMPOSICIÓN TRIVIAL. TEOREMA DE SHANNON..........................................................................2
8.1.1. Extracción de una variable. .......................................................................................................2
8.1.2. Extracción de dos variables. ......................................................................................................4
8.2. DESCOMPOSICIÓN DE ASHENHURST. ..................................................................................................5
8.2.1. Compactando las columnas. ......................................................................................................6
8.2.2. Redundancia de renglones. ........................................................................................................8
8.2.3. Complejidad de la descomposición. ...........................................................................................9
8.3. DESCOMPOSICIÓN DE CURTIS. ..........................................................................................................10
8.3.1. Descomposición de Curtis, con dos funciones auxiliares. .......................................................11
8.3.2. Descomposición de Curtis, con m funciones auxiliares. ..........................................................12
8.3.3. Fundamentos. ...........................................................................................................................13
8.4. DESCOMPOSICIÓN DE FUNCIONES INCOMPLETAMENTE ESPECIFICADAS. ...........................................19
8.4.1. Ejemplo. ...................................................................................................................................20
8.5. DESCOMPOSICIONES NO DISJUNTAS. .................................................................................................22
8.5.1. Ejemplo. ...................................................................................................................................22
a) Diseño mezclando columnas. ..................................................................................................................... 23
b) Diseño compactando renglones. ................................................................................................................ 24
8.6. DESCOMPOSICIÓN PARALELA. ..........................................................................................................25
8.7. SÍNTESIS MULTINIVEL.......................................................................................................................25
8.7.1. Redes lógicas booleanas. .........................................................................................................25
8.7.2. Operaciones. ............................................................................................................................27
Eliminación de un nodo. ................................................................................................................................ 27
Creación de un nodo. ..................................................................................................................................... 27
Descomposición. ............................................................................................................................................ 28
Factorización. ................................................................................................................................................. 28
Simplificación. ............................................................................................................................................... 28
SIS.................................................................................................................................................................. 28
8.7.3. Formas factorizadas. ...............................................................................................................29
PROBLEMAS RESUELTOS. ........................................................................................................................30
P8.1. Descomposición. .......................................................................................................................30
P8.2. Factorización. ...........................................................................................................................31
EJERCICIOS PROPUESTOS. ........................................................................................................................32
E8.1. ...................................................................................................................................................32
E8.2. ...................................................................................................................................................32
REFERENCIAS. .........................................................................................................................................33
ÍNDICE GENERAL. ....................................................................................................................................34
ÍNDICE DE FIGURAS .................................................................................................................................35

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 8. Descomposición 35

Índice de figuras

Figura 8.1. Descomposición paralela y serial. ............................................................................... 1


Figura 8.2 Función de n variables. ................................................................................................ 2
Figura 8.3 Descomposición trivial. ............................................................................................... 3
Figura 8.4 Implementación con multiplexor. ................................................................................ 3
Figura 8.5. Tabla de verdad de una función de 4 variables. .......................................................... 3
Figura 8.6 Mapa de g0. .................................................................................................................. 4
Figura 8.7 Mapa de g1. .................................................................................................................. 4
Figura 8.8. Descomposición en 4 subfunciones. ........................................................................... 4
Figura 8.9. Multiplexor de 4 vías. ................................................................................................. 5
Figura 8.10. Tabla de verdad de una función de 5 variables. ........................................................ 5
Figura 8.11. Descomposición de Ashenhurst. ............................................................................... 6
Figura 8.12. Matriz de descomposición con dos columnas con valores diferentes. ...................... 6
Figura 8.13. Tabla de verdad de h(g,Xa). ...................................................................................... 7
Figura 8.14. Tabla de verdad de g(Xa). ......................................................................................... 7
Figura 8.15. Multiplexor de m entradas, controlado por variables libres. ..................................... 8
Figura 8.16. La función h es el multiplexor más red combinacional. ........................................... 9
Figura 8.17. Partición {2, 3, 4}. .................................................................................................. 10
Figura 8.18. Descomposición disjunta de Curtis. ........................................................................ 11
Figura 8.19. Descomposición disjunta de Curtis. ........................................................................ 12
Figura 8.20. Matriz de descomposición. ..................................................................................... 13
Figura 8.21. Expansión por columnas. ........................................................................................ 14
Figura 8.22. Expansión por renglones. ........................................................................................ 15
Figura 8.23. Descomposición serial disjunta............................................................................... 15
Figura 8.24. Descomposición serial disjunta. .............................................................................. 17
Figura 8.25. Función h(g,L)......................................................................................................... 18
Figura 8.26. Tablas de verdad de las funciones g1 y g0.............................................................. 19
Figura 8.27. Mapa de Karnaugh de h. ......................................................................................... 19
Figura 8.28. Mapa de Karnaugh de g1 y g0. ............................................................................... 19
Figura 8.29. Descomposición de función con condiciones superfluas. ....................................... 20
Figura 8.30. Formación de clases de compatibilidad máxima. ................................................... 21
Figura 8.31. Mezcla de columnas de clases compatibles. ........................................................... 21
Figura 8.32. Tablas de las funciones predecesoras...................................................................... 22
Figura 8.33. Resultado de la descomposición. ............................................................................ 22
Figura 8.34. Descomposición no disjunta. .................................................................................. 22
Figura 8.35. Descomposición no disjunta. .................................................................................. 23
Figura 8.36. Mapa con variable C repetida. ................................................................................ 23
Figura 8.37. Ashenhurst no disjunta. ........................................................................................... 24
Figura 8.38. Función predecesora g. ........................................................................................... 24
Figura 8.39. Formación de renglones compatibles. ..................................................................... 24
Figura 8.40. Mapa para obtener función g. ................................................................................. 25
Figura 8.41. Descomposición paralela. ....................................................................................... 25
Figura 8.42. Esquemático basado en compuertas. ...................................................................... 26
Figura 8.43. Red lógica booleana. .............................................................................................. 26

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales
Figura 8.44. Eliminación nodo x. ............................................................................................... 27
Figura 8.45. Creación nodo x. .................................................................................................... 28
Figura P8.1. Función de cuatro variables. .................................................................................. 30
Figura P8.2. Matriz de descomposición. .................................................................................... 30
Figura P8.3. Función sucesora.................................................................................................... 31
Figura P8.4. Función predecesora. ............................................................................................. 31
Figura P8.5. Forma factorizada en tres niveles............................................................................ 31
Figura P8.6. Nand según De Morgan. ......................................................................................... 32
Figura P8.7. Diseño en base a NANDs ....................................................................................... 32

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 9

Sistemas secuenciales

9.1. Definiciones

Evento

Se denomina evento al cambio de valor de una señal en un instante de tiempo. Pasar de nivel
lógico 1 a 0 se denomina canto de bajada. Un canto de subida se produce cuando la señal pasa
de nivel lógico 0 a 1.

A un evento también se lo denomina mensaje; en un caso más general cuando se tienen varias
señales, los valores que toman los eventos suelen interpretarse como símbolos pertenecientes a
un alfabeto.

Máquina abstracta.

Una máquina abstracta es un modelo de computación que establece cómo se generan las
acciones, o eventos de salida, a partir de los mensajes o eventos de entrada.

Mensajes Acciones
Máquina

Figura 9.1 Máquina abstracta.

Existen sistemas o máquinas que pueden cambiar sus atributos en función del tiempo, se
denominan dinámicos.

Estado.

Se denomina estado al conjunto de atributos que representan las propiedades de un sistema u


objeto en un determinado instante de tiempo.
En el caso de componentes digitales que tienen dispositivos que pueden almacenar valores, se
denomina estado al contenido de la memoria.

El estado refleja la condición en que se encuentra el sistema o máquina digital.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Máquinas de estados.

Se denominan máquinas de estados a aquellas cuyas salidas, en un instante de tiempo,


dependen de los valores que toman las entradas y el estado en ese instante de tiempo. Lo cual
puede describirse por una función de transición que especifique los valores de las salidas y del
próximo estado para cada una de las combinaciones posibles de las entradas y del estado
presente. Las computaciones comienzan a partir de un estado inicial y de una secuencia de
valores de la entrada.

Transición.

Se denomina transición al cambio de estado del sistema, y ésta debe indicar cómo se pasa de un
estado a otro.
Un modelo matemático adecuado para la función de transición es una matriz, en la cual los
renglones y columnas representan los diferentes estados internos y los eventos de entrada,
respectivamente. El contenido de la matriz especifica el próximo estado.

Diagrama de estados.

Se denomina diagrama de estados a una representación gráfica de la matriz de transiciones, en


la cual los estados se representan como círculos (o rectángulos) y las transiciones como líneas
orientadas, que conectan los estados, y que representan los eventos de entrada.

Si puede describirse un sistema mediante un diagrama de estados o a través de las matrices de


transiciones y de salida se dice que el sistema es secuencial. En un sistema secuencial las
salidas dependen de las entradas presentes y de los valores de las entradas anteriores, mientras
que en un sistema combinacional las salidas sólo dependen de las entradas presentes o actuales.

Autómata de estados finitos determinista.

Si el número de estados es finito, se denominan máquinas de estados finitos. Si el próximo


estado queda unívocamente determinado por un solo evento se denominan determinísticas.
Si hay transiciones sin un evento de entrada o más de una transición para un par determinado
entrada-estado, se denominan no determinísticas.

Es posible generar un autómata de estados finitos determinista que tenga las mismas salidas,
para iguales entradas, que uno no determinista.

Tipos de máquinas.

Existen varios tipos de máquinas. Se denominan de Mealy aquéllas cuyas salidas se producen
en las transiciones entre estados; y Moore a aquéllas en las cuales las salidas están asociadas al
estado. Existen procedimientos para convertir un modelo de Mealy en uno de Moore.
Un diagrama de la estructura interna de la máquina abstracta que se ilustra en la Figura 9.1, se
muestra en la Figura 9.2.

Una máquina de estados finitos puede definirse según:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 3

MEF(x, y, z, FPE, FS)


Donde:
x es el conjunto finito de valores que puede tomar la entrada, que se define como el alfabeto de
entrada.
y es el conjunto de estados internos,
z es el alfabeto de salida. El conjunto finito de valores que puede tomar la salida,
FPE es la función de próximo estado, determina mediante una matriz el próximo estado Y,
dependiendo del valor que tenga la entrada x, y el estado presente y. Los renglones suelen ser
los diferentes estados internos y las columnas los diferentes valores que puede tomar la entrada.

Y = FPE(x, y)

FS es la función de salida. En el caso de máquinas de Moore: z=FS(y), este caso se ilustra en la


Figura 9.2; en el modelo de Mealy: z=FS(x, y).
Reset

x FPE M FS

Y y z

Figura 9.2 Modelo de Moore.

Las funciones de próximo estado y de salida son funciones combinacionales. La Figura 9.2,
muestra un bloque de memoria M, que sostiene durante un tiempo el valor del estado presente y,
una vez calculado el próximo estado Y, éste se registra como el nuevo estado actual.

Reloj.

Si las transiciones ocurren en determinados instantes de tiempo se denominan sincrónicas. Los


instantes en que se producen los cambios de estado están asociados al canto de subida, o al de
bajada, de una señal denominada reloj.

Máquinas secuenciales.

Las máquinas de estados finitos suelen denominarse máquinas secuenciales ya que a partir de
un estado inicial y de una secuencia ordenada de eventos de entrada, generan una secuencia de
estados por los que pasa la máquina, y a su vez una secuencia de acciones de salida.

Las máquinas secuenciales son un poderoso modelo para implementar esquemas de control
secuencial (dependientes de la historia pasada), tanto en hardware como en software. El modelo

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales
de máquina secuencial también facilita el diseño de la programación de sistemas multitareas, en
tiempo real, utilizando microcontroladores.

El modelo de máquina secuencial se emplea en Teoría de lenguajes formales y tiene importantes


aplicaciones en reconocimiento de patrones y analizadores léxicos y sintácticos, por mencionar
algunas.

Máquinas secuenciales sincrónicas.

Si la memoria está formada por un conjunto de flip-flops comandados por el mismo reloj, la
actualización del estado se produce en instantes sincronizados por el reloj. La Figura 9.3
muestra el diagrama general de Moore de una máquina secuencial sincrónica.
Reset’

x FPE M FS

Y y z
D Q

Clk

Figura 9.3 Modelo de Moore sincrónico.

Si en la Figura 9.2, el bloque de memoria M, está formado por unidades de retardo se tiene un
modelo de representación de máquinas secuenciales asincrónicas.

Síntesis lógica.

Se denomina síntesis lógica al procedimiento por el cual a partir de la descripción de una


máquina de estados finitos: MEF(x, y, z, FPE, FS) se obtiene un circuito digital C(G, W), donde
G es un conjunto de compuertas y flip-flops y W es un conjunto de alambres que interconectan
las componentes de G. El circuito C también se denomina red booleana.

Figura 9.4 Circuito digital C(G, W).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 5
9.2. Secuencias.

En caso de existir múltiples variables lógicas de entrada, al valor de la combinación (o vector)


se lo denomina palabra de entrada; y más simplemente: entrada.
Los distintos valores que toma la entrada, a medida que transcurre el tiempo, se denomina
secuencia temporal de entrada. En forma análoga se define una secuencia temporal de salida y
de estados internos.

Una secuencia de valores puede anotarse:


xi (t ) = xi (t0 ), xi (t1 ), xi (t2 ), ..., xi (tk ),... xi (tn )...

Con: tk t0 k t , los valores de la secuencia temporal se asocian a una secuencia de enteros.


Si t es constante, se denomina secuencia sincrónica al caso anterior.
Si t es variable, entonces tk describe los valores que toma una variable aleatoria; en este caso se
dice que la secuencia es asincrónica.
Las variables xi , toman valores discretos (0 y 1); el tiempo también puede considerarse una
variable discreta. Por ejemplo, podría ser de interés conocer el tiempo cuando se producen
cambios (en secuencias asincrónicas) o a intervalos regulares (intervalos de reloj, en secuencias
sincrónicas).
Una manera simplificada de anotar una secuencia es identificar sus valores en los diferentes
tiempos de interés.
xi (k ) xi (0), xi (1), xi (2), ..., xi ( k ),... xi ( n)...

Ejemplos de secuencias.

a) Sincrónica de nivel.

0 1 2 3 4 5 6 7 8 9 (valores de k)

t0
...
xn = { 0 1 0 0 1 1 0 1 0 0 ... }

Figura 9.5. Secuencia sincrónica de niveles.

Se dice que la señal xn es una secuencia sincrónica de niveles, con respecto a un reloj, ya que
ésta sólo cambia en cantos de bajada (o de subida) del reloj, y además permanece constante el
nivel de la señal entre cantos de bajada (o de subida) del reloj.
La Figura 9.5, muestra una secuencia sincronizada por los cantos de bajada del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales

b) Sincrónica de pulsos

reloj

xp = { 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, ... }

Figura 9.6. Secuencia sincrónica de pulsos.

xp es una secuencia sincrónica de pulsos. Los valores de la secuencia se interpretan cuando el


reloj está alto. No toma valores entre pulsos.
c) Asincrónica de nivel

t0 t1 t2 t3 t4 t5

xa = { 0 1 0 1 0 1 ...}

Figura 9.7. Secuencia asincrónica de niveles.

Los intervalos ti tienen una duración aleatoria.


d) Asincrónica de pulsos.

t t t t t t t
0 1 2 3 4 5 6

Figura 9.8. Secuencia asincrónica de pulsos.

Los pulsos, de igual ancho, se presentan con intervalo aleatorio.

9.3. Modelo Secuencial

En un sistema combinacional, la salida es generada simultáneamente; es decir, en forma


concurrente o paralela y sólo depende de la entrada. Los cambios individuales de cada una de
las señales se producen en una secuencia temporal, también se dice serial en el tiempo, y pueden
contener perturbaciones antes de estacionarse en valores estables. Las redes combinacionales se
dice que no tienen memoria, y no deben tener realimentaciones; es decir que algunas salidas
estén conectadas a las entradas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 7
En un sistema secuencial, para poder generar la salida en un tiempo dado, es preciso conocer
valores previos de algunas variables. No bastan los valores presentes de la entrada. Es decir,
debe almacenarse información concerniente a los valores de las entradas pasadas, para poder
generar la salida a partir de la entrada presente y los valores almacenados. La información
anteriormente mencionada, se almacena en estados internos.

Los valores que deben registrarse para recordar la situación, debida a los valores de las entradas
pasadas, se almacenan en variables de estado. Podemos considerar que las variables de estado
son salidas de elementos con memoria (flip-flops, registros, latches, retardos).

En cualquier instante, una máquina secuencial está en uno de un número finito de estados; éstos
quedan determinados por el valor de las variables de estado. Por ejemplo, si hay cuatro estados,
se requieren 2 variables de estado para registrar que el sistema se encuentra en uno de los cuatro
estados posibles: 00, 01, 10, 11.

La secuencia de estados internos resume la historia temporal del sistema secuencial.


A veces se emplea el término: estado total, para referirse a la combinación de los estados
internos con la entrada.

Si se aplica una secuencia de entrada, la máquina generará una secuencia de salida, y pasará por
una secuencia de estados internos.

En la Figura 9.2, la memoria puede ser modelada por:


 
y (t t ) Y (t )

Es decir, en un intervalo de tiempo después, la salida de la memoria y tomará el valor actual de


la entrada a la memoria Y. Puede representarse la secuencia de valores temporales, de cada uno
de los estados, en términos de números enteros, según:

y j (k 1) = Y j (k )

La memoria debe ser capaz de almacenar los Yj (k) y sostener estos valores durante el intervalo
(k+1). Debe notarse que los valores y j (k 1) son estables, pero los valores Y j (k ) , en el
intervalo anterior, pueden presentar perturbaciones al inicio para estabilizarse hacia el final del
intervalo. En el intervalo k-ésimo, la entrada a la memoria j-ésima es Y j (k ) ; la salida de esa
memoria, en el mismo intervalo, es y j (k ) .

Y(k) y(k+1)
Y(k) y(k)

k k+1

Figura 9.8. a. Modelo de memoria.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
En el modelo planteado, la salida y el próximo estado interno son funciones del estado total. A
estas máquinas se las denomina determinísticas.

Es decir, con n entradas, m variables de estado, y p variables de salida, se tienen:

zi FSi ( x1 ,.., xn , y1 ,.. ym ) i (1.. p)


Yj FPE j ( x1 ,.., xn , y1 ,.. ym ) j (1..m)

Ecuaciones que indican que tanto la salida como el próximo estado dependen de la entrada y el
estado actual.

Empleando el modelo de memoria, puede eliminarse la variable Y, se logra:

y j (k 1) FPE j ( x1 (k ),...xn (k ), y1 (k ),... ym (k ))

Ecuación de recurrencia que permite determinar el próximo estado, a partir de la entrada y el


estado presente.

Para resolverla, es preciso conocer el valor del estado inicial y la secuencia de entrada a partir
del tiempo inicial.

Gráficamente:
y (0) y (1) y (2) y (3)
....... ..
x (0) x (1) x (2) x (3)

Para conocer y(1) se requiere conocer y(0) y x(0). Para conocer y(2) se requiere conocer y(1) y
x(1). Para conocer y(3) se requiere conocer y(2) y x(2). Y así sucesivamente.

Si el próximo estado es igual al actual, se dice que es un estado estable:

y (k 1) = y (k )

Si el próximo estado es diferente al actual, se dice que habrá una transición o cambio de estado.
Ese estado actual se denomina inestable:

y(k 1) y (k )

Lo anterior implica que una de las variables de estado conmuta, o cambia, su valor lógico.

Los elementos de almacenamiento pueden ser simplemente líneas de realimentación, las que
tienen asociado un retardo entre la entrada y la salida, en este caso se tienen sistemas
secuenciales asincrónicos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 9
En sistemas secuenciales sincrónicos los elementos de almacenamiento serán flip-flops,
comandados por un reloj.

9.4. Representación de máquinas secuenciales

Se entiende por representación la descripción de cómo se pasa de un estado a otro, debido a los
cambios de las entradas. Las representaciones deben describir en forma precisa y completa a la
máquina. Además, deben ser adecuadas para una manipulación formal.

9.4.1. Modelo de Mealy

Es un modelo secuencial en el cual la salida está asociada a las transiciones entre estados. Las
salidas cambian instantáneamente con los cambios de las entradas; el cambio de estado, se
produce sincronizadamente con el reloj. El diagrama se muestra en la Figura 9.9.
Reset’

x z
M
FS
Y y
FPE DQ

Clk

Figura 9.9. Modelo de Mealy.

i) Diagrama de estados
Un diagrama de estados es un grafo en el cual, los estados se representan mediante círculos, y
por líneas rotuladas y orientadas las transiciones. El rótulo indica la entrada y la salida que
provoca la transición. Se separan con una pequeña barra diagonal (slash, en inglés).
En general:
y2
x/z

y1

Figura 9.10. Diagrama de estados de Mealy.

El diagrama anterior puede leerse: Estando en el estado y1 , cuando llega la entrada x se pasa al
estado y2 , con salida z.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
Si el sistema es sincrónico la transición entre estados se produce en el instante en el cual se
produce el canto sincronizante del reloj.
Si el sistema es asincrónico, la transición se produce debida a un evento de la entrada; por
ejemplo cuando ocurre un canto de subida o de bajada de alguna de las entradas.
ii) Tabla de transición de estados
A esta tabla también se la llama matriz de transiciones.
En las columnas se indican los diferentes valores que puede tomar la entrada. En los renglones
se indican los estados internos actuales. En cada casillero de la matriz, se indica el próximo
estado y la salida asociada. La matriz suele representarse como un mapa de Karnaugh.

Esquemáticamente:
x

y Y/z

Figura 9.11. Tabla de transición de estados de Mealy. FPE.

Las representaciones son equivalentes, puede lograrse una a partir de la otra. Es decir, la matriz
de transiciones y el diagrama de estado suministran la misma información.

Pueden emplearse tablas separadas para la salida z y para el próximo estado Y.


x x

y Y y z

Y(x,y) Matriz Transiciones z(x,y) Matriz de salida

Figura 9.12. Matriz de transiciones y matriz de salida.

9.4.2. Modelo de Moore

Modelo secuencial en el cual la salida sólo está asociada al estado presente. Las salidas y el
estado cambian sólo en los cantos de sincronización del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 11
Reset’

x(k) FPE M FS

y(k+1) y(k) z(k)


D Q

Clk

Figura 9.13. Modelo de Moore

i) Diagrama de estados

y2/z2

x
y1/z1

Figura 9.14. Diagrama de estados de Moore.

El diagrama anterior, puede leerse: Estando en estado y1 , con salida z1 ; cuando ocurre la entrada
x se pasa al estado y2 , con salida z2 .
La salida no cambia en la transición; por esta razón, las salidas se asocian a los estados.
ii) Tabla de transiciones x

y Y y z

Figura 9.15. Tabla de transiciones modelo de Moore.

El modelo de Mealy es más general que el de Moore. Este último es un caso particular del
primero.

Las representaciones anteriores permiten analizar una máquina dada.


Entendemos por análisis, al proceso de determinar el funcionamiento de la máquina a partir del
diagrama de estados o de su tabla de transiciones.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
El análisis de una máquina secuencial permite obtener la secuencia de salida a partir de la
secuencia de entrada; y también determinar la secuencia de estados internos.

Ejemplo 9.1

Determinar la secuencia de salida para la siguiente matriz de transiciones:

X
0 1
Estado
A D/0 C/1 Secuencia de Entrada ={0,1,1,0,1,0,1,1,0,0,0,...}
B B/1 A/0
Estado inicial = A
C C/1 D/0
D A/0 B/1
Próximo estado/z

Figura 9.16. Matriz de transiciones ejemplo 9.1.

La lectura de algunas transiciones:


Estando en A, con entrada 0, se pasa al estado D con salida 0.
Estando en D, con entrada 1, se pasa al estado B con salida 1.

Procediendo en forma similar, se logra:

Secuencia 0 1 2 3 4 5 6 7 8 9 10
Entrada 0 1 1 0 1 0 1 1 0 0 0
Estado actual A D B A D B B A C C C
Próximo estado D B A D B B A C C C C
Salida 0 1 0 0 1 1 0 1 1 1 1

Figura 9.17. Secuencia de salida y de estados.

La máquina de Mealy anterior, se comporta como un generador de secuencias.

x z

... ...
0123.. 012...

Figura 9.18. Esquema generador de secuencias.

Se ingresa la secuencia de valores: x0, x1, x2,… y se genera la secuencia de valores de salida: z0,
z1, z2, ...

Puede obtenerse el diagrama de estados, a partir de la matriz de transiciones:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 13
1/1
0/1
A C
0/0
1/0 0/0 1/0

B D
0/1 1/1

Figura 9.19. Diagrama de Estados ejemplo 9.1.

Ejemplo 9.2.

Determinar la secuencia de estados para la siguiente máquina de Moore:


1
0
C/0 A/1

0 1
1 0

B/0

Figura 9.20. Diagrama de estados de Ejemplo 9.2.

Con estado inicial C y secuencia de entrada: {0, 0, 0, 1, 1, 1,...}


Se obtiene:

i 0 1 2 3 4 5
Entrada 0 0 0 1 1 1
Estado presente C B A A B C
Estado próximo B A A B C A
Salida 0 0 1 1 0 0

Figura 9.21. Secuencia de salida Ejemplo 9.2.

Las máquinas de Moore suelen emplearse como reconocedores de secuencias. Es decir, que
entreguen una salida cuando ocurre una determinada secuencia en la entrada.

Pueden obtenerse la tabla de transiciones y la tabla con la lógica de salida, a partir del diagrama
de estados:

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales

Estado Entrada x Estado Salida


actual 0 1 A 1
A A B B 0
B A C C 0
C B A
Próximo
Estado

Figura 9.22. Tabla de transiciones Ejemplo 9.2

Existen procedimientos sistemáticos para representar un diagrama de Mealy mediante uno de


Moore. Debe considerarse la representación de Mealy como más general que la de Moore.

Ejemplo 9.3.

Obtener el diagrama de estados de un sistema secuencial sincrónico que es capaz de detectar


la secuencia 110 cada vez que ésta se presente. Determinar la secuencia de salida, cuando se
aplica en la entrada la secuencia: 011011..

Como puede observarse en la Figura 9.23, el diagrama de Moore, requiere 4 estados:


1 1 0
0

Inicio Estado0 Estado1 Estado2


0 0 0 1
0 1

1
reset
0

Figura 9.23. Diagrama de Moore Ejemplo 9.3.

Moore 0 1 2 3 4 5
Entrada 0 1 1 0 1 1
Estado presente Inicio Inicio Est0 Est1 Est2 Est0
Estado próximo Inicio Est0 Est1 Est2 Est0 Est1
Salida 0 0 0 0 1 0

Figura 9.23a. Secuencia de salida modelo de Moore Ejemplo 9.3.

El diagrama de Mealy requiere tres estados:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 15

1/0 1/0
0/0 1/0

Inicio Estado 0 Estado 1


0/0

0/1
reset
Figura 9.24 Diagrama de Mealy Ejemplo 9.3.

Mealy 0 1 2 3 4 5
Entrada 0 1 1 0 1 1
Estado presente Inicio Inicio Est0 Est1 Inicio Est0
Estado próximo Inicio Est0 Est1 Inicio Est0 Est1
Salida 0 0 0 1 0 0

Figura 9.24a. Secuencia de salida modelo de Mealy Ejemplo 9.3.

Algunas observaciones sobre las representaciones:


Las salidas de Moore son sincrónicas con el reloj, las de Mealy son asincrónicas; es decir,
apenas ocurre una transición en la entrada, se genera el próximo estado y se produce la salida
sin esperar el canto del reloj.

En general los modelos de Mealy pueden generar las mismas secuencias de salidas que una
máquina de Moore, pero con menos estados. Nótese que las salidas de Mealy ocurren un
intervalo de tiempo antes que las de Moore.

En las máquinas de Mealy, las salidas z pueden cambiar inmediatamente cuando ocurre un
cambio en las entradas, y éstas pueden cambiar entre pulsos del reloj. Si esto no se desea,
pueden sincronizarse las salidas asincrónicas, de una máquina de Mealy, pasándolas por un flip-
flop. Esto se muestra en la Figura 9.24b, donde la salida zr , tiene sus cambios sincronizados por
el reloj. Esto aumenta el número de flip-flops requeridos para la implementación y además se
posterga la salida hasta el próximo canto del reloj. Ver Capítulo 11.9.

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales
Reset’

x(k) z(k+1) zr(k)


M
FS
y(k+1) y(k)
FPE D Q

Clk

Figura 9.24b. Salidas registradas en modelo de Mealy.

En el modelo de Moore, el circuito combinacional de salida puede generar perturbaciones, éstas


pueden evitarse si las salidas se generan en función del estado próximo. Ver Capítulo 11.9.
Reset’

x(k) zr(k)
M
FS
y(k+1) y(k)
FPE DQ

Clk

Figura 9.24c. Modelo de Moore. Salida registrada.

En diseños de máquinas secuenciales de estados finitos completamente sincrónicas, debe


preferirse el modelo de Moore. Así también cuando se empleen dispositivos lógicos
programables (PLD o FPGA) para la implementación.

Ejemplo 9.4.

Los siguientes diagramas ilustran la diferencia entre el número de estados, requeridos para cada
uno de los modelos de máquina, para un detector de la secuencia de dos unos seguidos, cada vez
que ésta se presente.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 17

reset
0 reset
S0/0
0/0
S0
0 1
0/0 1/0
S1/0 0
S1
1
1
S2/1 1/1

Figura 9.25. Diagramas de Mealy y Moore ejemplo 9.4.

Ejemplo 9.5. Modelado de diagrama de estados. Lavadora.

En situaciones reales puede concebirse el funcionamiento de un sistema mediante la elaboración


de un diagrama de estados.

Supongamos que disponemos de una lavadora, que externamente tiene tres botones: Encender,
Detener, Lavar; de un indicador luminoso L, y de un interruptor ubicado en la puerta.
La Figura 9.26 ilustra un esquema de los controles e indicadores de la máquina lavadora.

encender detener lavar L

puerta

Figura 9.26. Lavadora.

Se consideran eventos (entradas) la activación de los botones de la consola y del interruptor de


la puerta. El indicador luminoso es una acción (salida) que debe ejecutarse.
Se visualizan tres estados asociados a la lavadora: apagada, detenida y lavando. La detección de
cuáles son los estados, está basada en la visualización de situaciones distinguibles que se
mantienen un determinado tiempo.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales

Los eventos producen cambios de estado.

Estando apagada, el evento encender dispara una transición al estado detenida (o encendida).
Estando en el estado detenida, la ocurrencia del evento lavar produce la transición al estado
lavando.
Si está lavando, la presión del botón detener gatilla la conmutación al estado detenida.
Al producirse el evento abrir la puerta, la lavadora debe pasar al estado apagada.

La luz L debe encenderse cuando hay potencia aplicada a la lavadora. Es decir, desde que se
pasa de apagada a encendida y mantenerse iluminada hasta que se abra la puerta, cuando se pasa
a apagada.

Las especificaciones anteriores permiten dibujar un diagrama de estados, el que se muestra en la


Figura 9.27.

Los eventos producen cambios de estado. Cada transición o cambio de estado, está asociada a
un (y sólo un) evento. Un evento puede desencadenar varias transiciones, en el ejemplo, la
entrada o evento puerta produce dos transiciones, dependiendo del estado en que se encuentra la
lavadora.
La única acción de salida L se ilustra asociada a las transiciones (Mealy). También es posible
asociarla a los estados (Moore): la luz L debe estar encendida mientras la lavadora esté
encendida o lavando; debe apagarse cuando esté en el estado apagada.
Encender/ L Lavar/ L

Apagada Encendida Lavando

Puerta/ L’ Detener/ L

Puerta/ L’

Figura 9.27. Diagrama de estados de la Lavadora.

El estado inicial para esta máquina es el estado apagada.

Sub-máquinas.
La descripción de la lavadora puede seguir especificándose con mayor detalle, si se define con
mayor precisión el estado lavando. Esto significa observar señales internas de la lavadora.
Si se define el evento rotar, que produce que el motor de una vuelta, y de la señal de salida giro
(G=1 a la izquierda, y G=0 a la derecha) y se define que el proceso de lavar sea dar dos vueltas
a la izquierda seguidas por dos vueltas a la derecha, en el diagrama aparecen cuatro nuevos
estados para describir el estado lavando.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 19

Apagada

Puerta/ L’ Encender/ L
Puerta/ L’
Puerta/ L’
Encendida
Lavar/ L Detener/ L

Rotar
Izquierda/ G Derecha 1/ G’

Puerta/ L’ Puerta/ L’
Rotar Rotar

Izquierda 1/ G Derecha/ G’
Rotar

Figura 9.28. Diagrama de estados ampliado de la Lavadora.

La descripción permite diferentes niveles de abstracción, en el ejemplo, lavando se ha descrito


como una sub-máquina digital.

9.4.3. Transformación de Mealy a Moore.

a) En el diagrama de Mealy deben separarse aquellos estados, para los cuáles existan
transiciones con diferentes valores de salida, para igual entrada:

x/0
x/0 Sa0
Sa

x/1 Sa1
x/1
Figura 9.29. Separación de estados.

Luego cada estado tendrá sólo un valor de salida asociado, y se transforma a representación de
Moore, según:

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales

x Sa0/0

Sa1/1
x

Figura 9.30. Conversión a Moore.

b) Una vez agotado el paso a), para el estado inicial pueden presentarse dos casos:
b1) Estado inicial con salida 0. No requiere modificación.

reset S/0

Figura 9.31. Estado inicial con salida cero.

b2) Estado inicial con salida diferente de cero.

S/1
reset

Figura 9.32. Estado inicial con salida uno.

En este caso debería haber salida, sin haber aplicado una entrada. Se corrige agregando un
estado adicional:

S/1

Si/0
reset

Figura 9.33. Agregar estado inicial.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 21
Ejemplo 9.6.Transformación para el reconocedor de dos unos seguidos.
Al modificarse el estado S1 del diagrama de Mealy, resulta:

reset
reset 0/0
S0
0/0
S0
0/0 1/0

0/0 1/0 0/0


S10
S1
1/1
1/1
1/1 S11

Figura 9.34. Separación de estado S1.

No es necesario corregir el estado inicial. Luego puede asociarse la salida al estado y no a la


transición hacia el estado.

reset
0/0
S0

0/0 1/0

S10 0/0

1/1
1/1
S11

Figura 9.35. No es necesario corregir S0.

Finalmente puede plantearse:

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

reset
0
S0/0

0 1

S10/0 0

1
1
S11/1

Figura 9.36. Diagrama de Moore ejemplo 9.6.

Que resulta igual al diagrama de Moore planteado antes, en el ejemplo 9.4.

El proceso de transformación explica el mayor número de estados que tiene generalmente un


diagrama de Moore, respecto a uno de Mealy.
Ejemplo 9.7.
Detector de las secuencias 01 ó 10, cada vez que se presenten.

Para un modelo de Moore, se especifican las salidas asociadas al estado.

0
reset entrada estado próximo salida
actual estado
B/0 1 D/1 1 - A - 0
0 0 A B 0
0 0 1 A C 0
0
reset 0 0 B B 0
A/0 0 1 B D 0
1 0
0 0 C E 0
1 0 1 C C 0
1
0 0 D E 1
C/0 E/1 0 1 D C 1
0
0 0 E B 1
0 1 E D 1
1

Figura 9.37. Representación de Moore Ejemplo 9.7.

En un diagrama de Mealy, se especifican las salidas asociadas a las transiciones.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 23

0/0
reset entrada Estado próximo salida
B actual estado
0/0 1 - A - -
0 0 A B 0
reset 0 1 A C 0
A 0/1 1/1
0 0 B B 0
0 1 B C 1
1/0
0 0 C B 1
C 0 1 C C 0

1/0

Figura 9.38. Representación de Mealy Ejemplo 9.7.

9.5. Tipos de máquinas secuenciales

Si bien existen innumerables formas que pueden tomar los diagramas de estados, pueden
describirse algunos tipos que se presentan frecuentemente.

Máquinas que analizan secuencias de largo fijo con un recorrido fijo. Por ejemplo:
adquirir 5 valores de la secuencia y tomar una acción, de acuerdo a los valores.
Máquinas que analizan secuencias de largo fijo con un recorrido fijo, con reintento en
caso de falla. Si una subsecuencia no es correcta, vuelven al estado inicial; o a un estado
previo.
Reconocedores continuos. Se genera una salida cada vez que se detecta una secuencia
dada. En estas máquinas, cada estado recuerda una secuencia previa de la entrada. En
este caso, se habla de estado inicial sólo cuando la máquina comienza a funcionar.

9.6 Síntesis de Diagramas de Estado. Modelado

Se desea obtener el diagrama de estados a partir de una descripción en lenguaje natural.

Nuestro lenguaje común suele ser impreciso y a veces redundante. Por esta razón es conveniente
emplear las construcciones estructuradas de los lenguajes de programación. Ver Apéndice 5,
sobre Uso de Verilog.

En general, el paso de una descripción en lenguaje natural a la tabla de estados, se efectúa por
pasos tentativos, hasta asegurar que el modelo formal obtenido cumple las especificaciones
dadas.

Veremos algunos ejemplos.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales
9.6.1 Reconocedor de secuencias de largo fijo. Verificador BCD

La máquina reconoce si una secuencia de cuatro bits, en serie, es BCD.


Tenemos una máquina con una entrada y una salida:

x M.S. z

Figura 9.39 Diagrama en bloque verificador BCD.

Tenemos que interpretar cuando se genera la salida. Como para cada valor i de la secuencia de
entrada debe existir un valor de la secuencia de salida; debemos decidir qué salida generar
cuando han llegado uno, dos o tres valores de la entrada. En estos casos asumiremos salida cero,
dejando salida uno si los cuatro bits no pertenecen al código BCD. El bit más significativo es el
primero.
Estado Inicial

0/0 1/0
b c
0/0 1/0 0/0 1/0

d e f g
0/0 1/0 0/0 1/0 0/0 1/0 0/0 1/0

h i j k l m n o
0/0 1/0 0/0 1/0 0/0 1/0 0/0 1/0 0/0 1/0 0/1 1/1 0/1 1/1 0/1 1/1

Figura 9.40 Diagrama de estados verificador BCD.

Cada estado representa una subsecuencia previa de la entrada. Por ejemplo, en el estado l se ha
recibido la secuencia 100. En el estado d se ha recibido 00.

Este primer diseño es muy sistemático; se forma un árbol de decisión. De cada estado, se pasa a
dos próximos con entrada cero y uno respectivamente.

Estos problemas no tienen una solución única. Puede encontrarse un diagrama de estados más
simple. Por ejemplo:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 25

a
1/0
0/0

b e 1/0
/0 0/0

c f g
1/0
/0
/0
/0 /0
0/0
d h
/0 /1

Figura 9.41 Diagrama de estados reducido del verificador BCD.

Se emplea para indicar que con entrada cero o uno, se pasa al próximo estado. Este segundo
diagrama requiere tres flip-flops para representar los siete estados. El anterior requiere 4 flip-
flops para identificar 15 estados.
Existen procedimientos sistemáticos para encontrar estados equivalentes y removerlos de los
diagramas, esto se desarrolla en el Capítulo 12.

9.6.2. Reconocedor continuo.

Se desea obtener el diagrama de estados de una máquina secuencial que produzca una salida alta
cada vez que se detecta la secuencia 0101 en la entrada; la salida debe ser cero en el resto de los
casos.

Si por ejemplo la entrada es: 0, 1, 0, 1, 0, 1, ...


la salida debe ser: 0, 0, 0, 1, 0, 1, ...

A partir de un estado inicial A, se plantea el diagrama para la secuencia que se desea reconocer:

A B C D
0/0 1/0 0/0

1/1

Figura 9.42 Reconocedor de secuencia 0101.

Luego, lo que resta es completar las transiciones que faltan. Desde cada estado deben salir dos
transiciones; en este caso, sólo hay una entrada, y ésta puede tomar valores 0 y 1.

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales

Es recomendable conceptualizar el significado de los estados, del siguiente modo:

A: inicial, se espera un cero.


B: después de haber aceptado un cero.
C: después de haber aceptado la secuencia 01.
D: después de haber aceptado la secuencia 010.

Observaciones:

Estando en D, si llega un cero, debe ir al estado B, pues ya tendría el primer cero de la


secuencia.
Estando en B, debe permanecer en B mientras lleguen ceros.
Permanece en A, mientras lleguen unos.
Estando en C, si llega un uno, debe ir al estado inicial.
Estando en D, si llega un uno, se reconoce secuencia correcta; y debe ir a C. Ya que tiene los
dos primeros bits reconocidos.

Resulta el siguiente diagrama de estados:


1/0

0/0
1/0 0/0
A B
B C D
0/0 1/0
1/1
0/0
Figura 9.43 Diagrama de estados completo del reconocedor continuo.

9.6.3. Reconocedor continuo con reintento en caso de falla

Diseñar máquina secuencial que reconozca con salida uno, cada vez que se presente en la
entrada, la secuencia de exactamente dos ceros, seguida de 10. En caso contrario debe generar
salida cero.

La siguiente secuencia de entrada: 001001000010010...


debe generar la siguiente salida: 000100100000001...

Un esquema de la “columna vertebral” del diagrama es:


0/0 1/0
1/0 A B C D
0/0

0/1

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 27
Figura 9.44 Diagrama de estados inicial.

A, es el estado inicial: en él se espera por un cero.


Si en B o D falla la secuencia se retorna al estado inicial.
Estando en C, si llega un cero debe pasarse a un estado E; en el cual deben descartarse todos los
ceros que lleguen.

El diagrama completo:
1/0 0/0
E
1/0 0/0
0/0 1/0
1/0 A B C D
0/0
0/1
1/0

Figura 9.45 Diagrama de estados completo.

9.6.4. Reconocedor continuo de códigos BCD válidos.

En este ejemplo se ilustra la importancia de darle un nombre simbólico adecuado a cada estado.

Si la entrada presente y las tres anteriores forman un código válido BCD, entonces la salida
permanece en 0; en caso contrario la salida debe ser uno.

Si asignamos el nombre del estado tal que éste sea la secuencia previa de 3 bits de la entrada,
para construir el diagrama basta obtener los estados próximos a cualquier estado.
Por ejemplo, a partir del 001, se llega a los estados 011 y 010, con entradas uno y cero
respectivamente.

Esto se ilustra en el siguiente diagrama:

001
1 0

011 010

Figura 9.46 Estados siguientes al estado 001.

Los dos últimos bits de 001, forman los dos primeros de 011 y 010.
De esta forma es sencillo plantear, el diagrama completo, que se muestra en la Figura 9.47.

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales

000
1 0
1
001 100
0
0
010

1 1 0 0

101
1 1
011 110
0
1 0
111

Figura 9.47 Diagrama de estados completo, sin salida.

Para completar el diagrama deben indicarse las salidas asociadas a las transiciones.
Las secuencias: 1010, 1011, 1100, 1101, 1110, 1111 son las que tienen asociada una salida uno.
La función de salida puede describirse por la siguiente tabla de verdad, y con ésta completar el
diagrama.
Estado x
0 1
000 0 0
001 0 0
010 0 0
011 0 0
100 0 0
101 1 1
110 1 1
111 1 1
z

Figura 9.48 Tabla de verdad de la función de salida.

9.6.5. Del diagrama a la especificación.

Dado el siguiente diagrama de estados, describir qué efectúa la máquina.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 29
Asumir estado 1 como estado inicial.
0/0
1/0 1/0
1 2 1/0 5
3 4
0/0 1/0
0/0
0/0
0/1, 1/1

Figura 9.49 Diagrama de estados Ejemplo 9.6.5.

Observando que en 1 se espera un cero; y que 2 simboliza que ha llegado un cero.


Se tiene que es un reconocedor continuo de las secuencias 01110 y 01111 con salida uno.
La salida es cero en el resto de los casos.
Cuando reconoce una de las secuencias anteriores vuelve a comenzar de nuevo.

9.6.6. Determinar conducta de la máquina secuencial

0/0 1/0
1/0 0/0

1/1 B C
1/0 /0
/0
0/0
D E
1/0 /0

0/0
F G

Figura 9.50 Diagrama de estados ejemplo 9.6.6.

Asumiendo que el estado inicial es el A, y observando cuando se produce la única salida con
valor 1, y que además después de cuatro transiciones se retorna al estado inicial: se obtiene que
analiza secuencias de largo cuatro. Si la secuencia es 1111 genera salida 1; en el resto de las
secuencias la salida es cero.

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales

Problemas resueltos.

Problema 9.1. Cerebro de Hormiga. (Ant Brain. Propuesto en el MIT).

Se desea diseñar una máquina secuencial cuyo objetivo es permitir a la hormiga encontrar la
salida del laberinto.

La hormiga dispone de dos sensores en las antenas izquierda y derecha (I y D), que están en 1 si
la antena respectiva entra en contacto con las paredes del laberinto; y se colocan en cero si dejan
de estar en contacto. Son las entradas a la máquina de estados finitos.

La hormiga también dispone de tres señales de actuación, que son las salidas de la máquina, una
señal para avanzar hacia delante A; otra para doblar levemente hacia la izquierda DI; y otra para
doblar levemente hacia la derecha DD.
La estrategia para diseñar el cerebro de la hormiga es mantener la pared a la derecha de la
hormiga.

Figura P9.1 Laberinto.

Para desarrollar el diagrama de estados, se elige emplear el modelo de Moore. Es decir, las
salidas estarán asociadas al estado.

Se definen los estados posibles, y en cada uno de éstos debe observarse los valores de las
entradas que llevan a otros estados. Debe notarse que se tienen cuatro combinaciones posibles
para los valores permitidos a las entradas, esto implica dibujar 4 transiciones a estados
próximos. Sin embargo es posible simplificar el diagrama rotulando las transiciones como una
expresión lógica de las entradas.

Ejemplos:
Si debe pasarse a cierto estado cuando cualesquiera de las antenas tocan una pared, la transición
puede rotularse ( I + D).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 31
Si debe pasarse a cierto estado cuando ambas antenas no tocan a alguna pared, la transición
puede rotularse ( I ' D'). Es decir, que ambas no toquen. Si la transición es cuando la izquierda
no toque y la derecha entre en contacto con la pared, la transición se anota: (I' D).

Para encontrar los estados debe analizarse las diversas situaciones en que se puede encontrar la
hormiga en su recorrido del laberinto. Observando las entradas, y las acciones que ésta puede
realizar, a continuación se plantean algunas de las situaciones:

A: Siguiendo la muralla y tocándola:


Avanzar, doblando levemente a la izquierda, hasta llegar a B:

B: Siguiendo la muralla y no tocándola:


Avanzar, doblando levemente a la derecha. O se vuelve a A, o se pasa a C.

C: Se acaba la pared:
Avanzar, doblando levemente a la derecha, hasta llegar a D:

D: Vuelve a tocar la muralla, con la Antena derecha:


Es la situación A.

E: Pared al frente: Mientras toque con alguna antena:


Doblar levemente a la izquierda hasta pasar a F:

F: Igual situación que en el estado B.

G: Tocando la pared con la izquierda.


Doblar a la derecha hasta no tocar la pared. Es la situación B.

H:Perdido:
Avanzar hasta tocar algo.

Figura P9.2 Esquema de situaciones. Definición de estados.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales
No se encuentran otras situaciones que no se hayan planteado, entonces se procede a conectar
los diferentes estados, mediante el siguiente diagrama:

I+D I’ D

Perdido I+D E/G I A


(A) (DI) (DI, A)

I’ D’ D
I’ D’ D
I’ D’

B C
(DD, A) (DD, A) D’
D’

Figura P9.3 Diagrama de estados para el cerebro de la hormiga.

Nótese que los estados E y G se tratan como si fuera un solo estado. En ambos se toca con la
antena izquierda, y el objetivo (local, para cumplir la estrategia) es dejar de tocar la pared.

El diagrama muestra que los estados B y C podrían tratarse como uno solo (son equivalentes).
Ya que tienen iguales salidas; y para iguales entradas, se pasa a igual estado próximo (más
adelante, en el Capítulo 12, se verán algoritmos para determinar estados equivalentes).
Si se funden los estados B y C se llega al siguiente diagrama, que representa el cerebro de la
hormiga:

I+D

Perdido I+D E/G I A


(A) (DI) (DI, A)
I’ D

L’ D’ D
I’ D’
I’ D’

B/C
D’ (DD,
A)

Figura P9.4 Reducción de estados equivalentes.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 33
Problema 9.2. Contador sincrónico con control de modo M.

Si M = 0 el contador es binario ascendente; si M = 1 el contador avanza según código Gray. A


continuación se indican las secuencias:
binario: 000, 001, 010, 011, 100, 101, 110, 111
Gray: 000, 001, 011, 010, 110, 111, 101, 100
El diagrama de estados se construye para la secuencia binaria, con transiciones con entrada de
control igual a cero. Luego, se marcan las transiciones para contar en Gray:

S0 S1 S2 S3 S4 S5 S6 S7
reset 0 0 0 0 0 0 0
[000] [001] [010] [011] [100] [101] [110] [111]

Figura P9.5 Contador binario ascendente.

reset S0 0 S1 0 S2 0 S3 0 S4 0 S5 0 S6 0 S7
[000] [001] [010] [011] [100] [101] [110] [111]
1
1 1 1
1

1 1 1

Figura P9.6 Contador Gray.

Problema 9.3. Reconocedor de un patrón finito.

Sean: entrada x y salida z. La salida se activa cada vez que se presenta la secuencia 010, y
mientras que la secuencia 100 no se haya presentado, en cuyo caso la salida se desactiva
permanentemente.

Ejemplos de secuencias, y columna vertebral del diagrama de estados:


X: 0 0 1 0 1 0 1 0 0 1 0 …
Z: 0 0 0 1 0 1 0 1 0 0 0 …
X: 1 1 0 1 1 0 1 0 0 1 0 …
Z: 0 0 0 0 0 0 0 1 0 0 0 …

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales

reset E0
[0]
0 1

E1 E4
[0] [0]

1 0

E2 E5
[0] [0]

0 0

E3 E6
0,1
[1] [0]

Figura P9.7 Diagrama de estados inicial.

Luego deben completarse las transiciones que faltan.


Si en E5 llega un cero, debe ir al estado permanente E6, ya que habría reconocido la secuencia
100. Si estando en E3 (los últimos 3 bits de la secuencia son 010) llega un 1, los últimos dos
serán ahora 01, esto implica pasar al estado E2.

En E1 debe permanecer si llegan secuencias de ceros. En E4 debe permanecer si llegan


secuencias de unos.

Si estando en E2 llega un uno, se tendrán dos unos seguidos, entonces debe pasarse al estado
E4.

Si estando en E5 llega un uno, se tendrá hasta ese momento, que los dos últimos de la secuencia
son 01, entonces debe pasarse al estado E2.

El diagrama final se muestra a continuación:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 35

reset E0
[0]
0 1

E1 E4
0 1
[0] [0]
...0 ...1

1 0
1

E2 1 E5
...10
[0] [0]
...01

0 1 0

E3 E6
0, 1
[1] [0]
...010 ...100

Figura P9.8 Diagrama de estados final.

Si denominamos X a la entrada, el diagrama puede describirse, según el pseudo código:


While (1)
{if (reset) estado = E0;
else
switch (estado)
{ case E0: if (X) estado = E4 else estado = E1;
case E1: if (X) estado = E2 else estado = E1;
case E2: if (X) estado = E4 else estado = E3;
case E3: if (X) estado = E2 else estado = E6;
case E4: if (X) estado = E4 else estado = E5;
case E5: if (X) estado = E2 else estado = E6;
case E6: estado = E6;
}
}

Problema 9.4. Diseñar el control de una máquina de lavar ropa. Uso de temporizadores.

El funcionamiento de la lavadora es el siguiente:


Cuando se oprime el botón “Partida”, después de colocar las prendas, la máquina determina
el tamaño de la carga (Mediano / Grande) y de acuerdo al tamaño dispensa la cantidad de
agua y detergente.
Luego de esto, la máquina lava la ropa por 10 minutos.

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales
Después del ciclo anterior, la máquina enjuaga las ropas por 10 minutos. Detecta si el
líquido de salida está sucio, al final del enjuague; en caso de estarlo, repite el ciclo (lavado +
enjuague), pero no más de 3 repeticiones.
Luego centrifuga las ropas hasta que no detecta descarga de agua, pero por no más de 20
minutos.
Las duraciones de los ciclos se logran con temporizadores. Los cuales pueden modelarse con
una entrada que inicia la cuenta del tiempo, y una salida que indica que ya transcurrió el tiempo
programado.

Entradas Salidas
Descripción Variable Descripción Variable
Botón de Partida SP Dispensador mediano AM
Sensor carga mediana SM Dispensador Grande AG
Sensor carga grande SG Actuador lavado AL
Sensor salida sucia SS Actuador enjuague AE
Sensor descarga salida SD Actuador centrífuga AC
Timeout 60 min O60 Inicio timer 60 min I60
Timeout 10 min O10 Inicio timer 10 min I10

Figura P9.9 Especificaciones de variables.

reset

SP’ SD’ # O10


Inicio
(SP&SM) / AM, AL, I10, I60 SD’
# Centrífuga
(SP&SG) / AG, AL, I10, I60 2
O10’&SD / AC
Lavado O10&SD / I10
O10’ / AL
O10&SS&O60’&SM / AM, AL, I10
O10 / I10 #
O10&SS&O60’&SG / AG, AL, I10

Enjuage Centrífuga
O10’ / AE
O10&SS’ # O60 / I10 1

O10’&SD / AC

Figura P9.10 Diagrama de estados control lavadora.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 37
Problema 9.5. Detector secuencia 0101.

Determinar el diagrama de estados de una máquina secuencial (Modelo de Mealy) que produce
una salida alta cada vez que se detecta la secuencia 0101 en la entrada; y salida cero en el resto
de los casos. Determinar la secuencia de salida y de estados para la siguiente secuencia de
entrada: 010110011…
Solución.
1/0

0/0
1/0 0/0
A B
B C D
0/0 1/0
1/1
0/0

Figura P9.11 Diagrama de estados detector secuencia 0101.

La siguiente secuencia de entrada produce las siguientes secuencias de salida y de transiciones


de estados.

Entrada 0 1 0 1 1 0 0 1 1 ....
Salida 0 0 0 1 0 0 0 0 0 ....
Pxo. Estado B C D C A B B C A ….

Figura P9.12 Secuencias de entrada, salida y de estados.

Problema 9.6. Máquina con dos salidas.

Un sistema secuencial tiene una entrada x, y dos salidas: z1 y z2.


Con x = 1, las salidas recorren las siguientes secuencias periódicas:

z1 0 1 1 0 1 0
z2 1 1 1 1 0 1

Con x = 0, las salidas recorren las siguientes secuencias periódicas:

z1 0 1 1 0 0 1
z2 1 1 0 1 1 1

a) Determinar la tabla o matriz de transiciones, de un modelo de Moore. Los estados se


identifican con letras mayúsculas y A es el estado inicial.
b) Dibujar el diagrama de estados.
c) Determinar las salidas para la siguiente secuencia de entrada: 000110010

Profesor Leopoldo Silva Bijit 19-01-2010


38 Sistemas Digitales

Solución:
a) Una posible solución es elegir la secuencia de x = 1 para asignar los nombres a los estados y
a partir de esta asignación completar la matriz de transición de tal manera que se cumpla con la
secuencia para x = 0.
En ambas secuencias las salidas pasan por seis estados, teniendo estados con iguales salidas las
soluciones pueden ser combinaciones de elecciones de estos estados, pero deben tenerse los seis
estados

Son posibles otras soluciones de acuerdo a la asignación de los nombres de los estados.

x 0 1 Salida z2z1
Estado Estado
A C B A 10
B A C B 11
C E D C 11
D B E D 10
E F F E 01
F D A F 10

Figura P9.13 Matrices de transiciones y de salida.

b) Diagrama de estados de acuerdo a la matriz de transición en a)

0
A
1 10 1

F B
10 11
0
1
1 0

0
E C
01 11 0

0
1 D 1
10

Figura P9.14 Diagrama de estados Problema 9.6.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 39
c) Determinar las salidas para la siguiente secuencia de entrada: 000110010

Entrada Reset 0 0 0 1 1 0 0 1 0 -
Estado Actual - A C E F A B A C D B
Próximo Estado A C E F A B A C D B -
Salida (z2z1) 10 10 11 01 10 10 11 10 11 10 11

Problema 9.7. Máquina con dos entradas.

Para una máquina secuencial con dos entradas c1 y c0. A es el estado inicial.
Se tienen:
Con c1 = 0 y c0 = 0 el sistema recorre la siguiente secuencia periódica de estados: ABCD.
Con c1 = 1 y c0 = 1 el sistema recorre la siguiente secuencia periódica de estados: ADCB.
Con c1 = 1 y c0 = 0 el sistema recorre la siguiente secuencia periódica de estados: ADBC.
Con c1 = 0 y c0 = 1 el sistema recorre la siguiente secuencia periódica de estados: ABD. Y
si está en estado C, permanece en él.
a) Determinar la tabla o matriz de excitaciones.
b) Determinar la secuencia de estados para la siguiente secuencia de entradas:

c1 0 0 1 0 0 1
c0 0 0 0 1 1 1

Solución:
Se asume que al cambiar las entradas, mientras se genera una secuencia, se continúa con el
próximo estado de acuerdo a las entradas. Es decir no se retorna a un estado inicial.
reset A
0 0
C1C0
1 11
10
D B
10

11
11
00 0
C

01
01

Figura P9.15 Diagrama de estados Problema 9.7.

Profesor Leopoldo Silva Bijit 19-01-2010


40 Sistemas Digitales

a)
Entradas c1c0
Estado 00 01 11 10
A B B D D
B C D A C
C D C B A
D A A C B
Próximo estado

Figura P9.16 Matriz de transiciones Problema 9.7.

b)
c1 0 0 1 0 0 1 ..
c0 0 0 0 1 1 1 ..
Estado Actual A B C A B D C
Próximo estado B C A B D C

Figura P9.17. Secuencias de estados Problema 9.7.

Estado inicial A. (se está en A y las entradas son 00)


Los cambios de estado ocurren en un canto del reloj.
Se inspeccionan las entradas antes de cada canto del reloj.

La secuencia de estados es: ABCABDC....

Problema 9.8. Máquina de estados finitos. Tres salidas.

Se tiene una máquina secuencial de Moore, con una entrada x, y tres salidas: z1, z2 y z3.
Cada vez que se presenta la secuencia 01 en la entrada, las salidas toman valores:
z1=1, z2=0 y z3=0.
Cada vez que se presenta la secuencia 10 en la entrada, las salidas toman valores:
z1=0, z2=1 y z3=0.
Cuando se presenta la secuencia 00 en la entrada, vuelve al estado inicial, con salidas: z1=0,
z2=0 y z3=0; y desde allí reanuda el análisis de las secuencias; es decir, vuelve a comenzar.
Cuando se presenta la secuencia 11 en la entrada, permanece en el estado al cual llegó, con
salidas: z1=0, z2=0 y z3=1.
En el resto de los casos las salidas toman valores: z1=0, z2=0 y z3=0.

Determinar:
a) El diagrama de estados.
b) La tabla de transiciones entre estados.
c) Diseño de ecuaciones para las salidas, mediante un mapa de Karnaugh. Indicar el nombre
elegido para las variables de estado y los nombres binarios elegidos para los estados lógicos.

Solución.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 41
a) Si los estados se denominan por xx, con significado: “los dos últimos de la secuencia son
xx”, esta interpretación vale para los nombres: 01, 10 y 11. Se usa el símbolo _ _ para indicar el
estado inicial, en el cual aún no han llegado entradas, o al que se llega después de recibir una
secuencia 00.

El nombre _0 se usa para el estado al que pasa la máquina cuando ha llegado un cero, estando
en el inicial. Y _1 se usa para el estado al que pasa la máquina cuando ha llegado un uno,
estando en el inicial.

b) A partir del diagrama de estados se obtienen las matrices de transición y de salida.

reset
x Estado z1 z2 z3
Estado 0 1 lógico
__
__ _0 _1 __ 0 0 0
0 000
1 _0 __ _1 _0 0 0 0
0 _1 10 11 _1 0 0 0
_0 _1 01 10 11 01 1 0 0
0 10 __ 01 10 0 1 0
000 000
11 11 11 11 0 0 1
1 0
0 Próximo Est.
01 10
100 010
1

1
11
1 001

Figura P9.18. Diagrama de estados y tabla transiciones Problema 9.8.

c) Si el estado es Q2Q1Q0, y se escoge la siguiente asignación:


Estado Estado z1 z2 z3
lógico Físico
Q2Q1Q0
__ 000 0 0 0
11 001 0 0 1
011
10 010 0 1 0
_0 110 0 0 0
_1 111 0 0 0
101
01 100 1 0 0

Figura P9.19. Asignación de estados Problema 9.8.

Resultan:

Profesor Leopoldo Silva Bijit 19-01-2010


42 Sistemas Digitales
z1 = Q2Q1’
z2 = Q2’Q1
z3 = Q2’Q0 y también Q1’Q0

Observaciones.
Estando en el estado inicial, cuando llega un uno o un cero, no pueden activarse las salidas z1,
z2 y z3. Ya que éstas reconocen las secuencias 01, 10 y 11 respectivamente; y no la presencia de
un cero o de un uno.
La frase: “Cuando se presenta...” es imperativa. Y tiene precedencia sobre las frases: “Cada vez
que se presente...”.
Por ejemplo, si llega la secuencia 001..., después de los dos ceros debe ir al estado inicial, y
volver a analizar. El estado inicial representa la situación en que aún no han llegado entradas, o
después de que llegó la secuencia 00.
Otro ejemplo, si llega la secuencia 1101...., va inmediatamente al estado 11, y no reconoce la
secuencia 01 que la sigue; tampoco debe reconocer la secuencia 10 que está también presente en
1101....

Con las especificaciones dadas, y la designación de los nombres dados antes, el diagrama queda
como sigue.
reset
No ha llegado nada
__
0 000 1
?
?
0

Llegó 00 1 0 Llegó 10
0
01 10
Llegó 01 100 010
1
11
1 001

Llegó 11

Figura P9.20. Diagrama de estados Problema 9.8.

Para completar el diagrama hay que agregar estados adicionales, entre el inicial y los estados
denominados 01 y 10. Aparecen los estados _0 y _1.
Si desde el estado inicial, con entrada cero, fuera al estado 10, detectaría la secuencia 10 cuando
sólo ha llegado un cero.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 43
Si desde el estado inicial, con entrada uno, fuera al estado 01, detectaría la secuencia 01 cuando
sólo ha llegado un uno.
Ir al estado inicial implica comenzar de nuevo. Al estado inicial se llega después de aplicar
energía, o después de una activación de la señal reset.

El mismo diseño empleando un modelo de Mealy:


reset

Estado Estado x=0 x=1


A Lógico Físico
presente Q1Q0
1/000 A 00 B/000 C/000
0/000 B 10 A/000 C/100
0/000 C 01 B/010 D/001
D 11 D/001 D/001
1/100 Próximo estado/z1z2z3
B C
1/001
/001
0/010
D

Figura P9.21. Modelo de Mealy Problema 9.8.

z1 = Q1Q0’x
z2= Q1’Q0 x’
z3= Q1Q0 + Q0 x

Problema 9.9.

Si x es una entrada, se tienen las ecuaciones que programan tres flip-flops Ds.
D2 = Q2’Q1Q0’x, D1= Q2’Q0 + Q1Q0 + Q2’Q1x, D0 = Q2’x + Q1Q0x
Y las siguientes ecuaciones para las salidas: z1 = Q2’Q1Q0, z0 = Q2Q1Q0
En funcionamiento normal, un pulso en la entrada reset, deja al sistema en el estado binario 000.
Determinar:
a) Si la máquina es de Mealy o de Moore. En qué basa su respuesta.
b) Matriz de transiciones.
c) Diagrama de estados. Indicar los estados que no participan en el trabajo normal del sistema
secuencial.
d) Acciones que realiza la máquina de estados, considerando que el estado binario 000 es el
estado inicial.
e) Indicar secuencias de estado y de salida para la secuencia de entrada:

Profesor Leopoldo Silva Bijit 19-01-2010


44 Sistemas Digitales

Número 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
secuencia
x 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 .
Estado actual 000
Z1
Z0

Solución:
a) Las salidas sólo dependen del estado. Puede aplicarse el modelo de Moore.
b) Matriz de transiciones.

Q2Q1Q0 x = 0 x = 1 Salidas
000 000 001 00
001 010 011 00
011 010 011 01
010 000 111 00
110 000 000 00
111 010 011 10
101 000 000 00
100 000 000 00
Q2+Q1+Q0+ z0z1
Figura P9.22. Matriz de transiciones Problema 9.9.

c) Diagrama de estados.
En funcionamiento normal no se pasa por los estados 110, 101 y 100.
No se puede llegar a ellos si la máquina parte en el estado inicial. Sin embargo están definidos
sus estados próximos como el estado inicial.

Q2Q1Q0 1 011
01
Z0Z1 1
reset
1 0

0 000 1 001 0 010 1 111


_00_ _00_ _00_ 10

0 0
110 101 100
00 00 00

Figura P9.23. Diagrama de estados Problema 9.9.

d) Acciones.
Reconoce la secuencia 101 cada vez que se presente, con salida z1=1 y z0 = 0.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 45
Reconoce las secuencias de dos a más unos seguidos cada vez que se presenten, con salida z1=1
y z0 = 0.
Cuando llega la secuencia 100 vuelve al estado inicial con salida z1 = 0 y z0 = 0.
e) Secuencias de estados y de salida.

Número 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
secuencia
x 1 0 1 1 1 0 1 0 1 1 1 1 0 0 1 1 .
Est. actual 000 001 010 111 011 011 010 111 010 111 011 011 011 010 000 001 011
Z0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0
Z1 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 1

Figura P9.24. Secuencias Problema 9.9.

Problema 9.10. Sensores

Se tienen dos sensores i y d (izquierda y derecha) ubicados a cierta distancia sobre el suelo de
un pasillo y cuyo objetivo es detectar la dirección del paso de personas por el pasillo.
Estando la persona ubicada en la zona izquierda, con ambos sensores en cero, si la persona
avanza hacia la derecha y llega a la zona donde nuevamente ambos sensores son cero, debe
indicarse con la señal z1 =1.
Estando la persona ubicada en la zona derecha, con ambos sensores en cero, si la persona
avanza hacia la izquierda y llega a la zona donde nuevamente ambos sensores son cero, debe
indicarse con la señal z0 =1.
En el resto de los casos, las salidas deben ser ceros.
Las personas pueden quedarse detenidas o retroceder, pero sólo deben generarse las salidas
cuando se cumplen las condiciones anteriores.
Se ilustran los valores de los sensores cuando un objeto ocupa total o parcialmente las zonas
indicadas. Hacia la extrema izquierda y derecha los sensores marcan cero.
i d

11

10 01 id

00 00

Figura P9.25. Diagrama sensores Problema 9.10.

Profesor Leopoldo Silva Bijit 19-01-2010


46 Sistemas Digitales

Determinar el diagrama de estados (modelo de Mealy) que modela el sistema. Indicar el estado
inicial, y la señal de reset.

Solución.
Todas las salidas son cero, excepto las de los estados F y G, con entradas 00.
De cada estado deben especificarse las transiciones que físicamente son permitidas. Por ejemplo
estando en el estado A, no puede presentarse el evento de que ambas entradas estén un uno. Si
por ejemplo la persona está ubicada en la zona con los dos sensores activos, es decir en los
estados D y E, las transiciones que deben especificarse son las correspondientes a las
combinaciones 11, 01 y 10 de las entradas; no puede presentarse, en esta situación, el evento de
que ambas entradas estén en cero.

En F con entradas 00 se activa la salida z1.


En G con entradas 00 se activa la salida z0.
reset

00
A
10 01
00 00
10 B C 01
10 01
11 11
00/10 00/01

11 D E 11
01 10
11 11

01 F G 10

Figura P9.26. Diagrama de estados Problema 9.10.

Problema 9.11. Formas de ondas.

Se tiene un un sistema secuencial con entrada x y salidas y, z.


La señal reset deja al sistema en su estado inicial, con ambas salidas iguales a cero.
Se activa z cada vez que llega la secuencia 010 en la entrada y mientras no llegue la secuencia
100. Cuando llega esta última se activa la salida y, y la máquina permanece en ese estado.

Se tienen las siguientes formas de ondas:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 47

clk
reset
x
z
y

Figura P9.27. Formas de ondas Problema 9.11.

1. Observando las formas de ondas:


a). Indicar si el evento sincronizante es el canto de subida o el de bajada.
b). Determinar si la secuencia temporal de entrada es sincrónica con el reloj.
c). Determinar si la secuencia de entrada garantiza un funcionamiento seguro de los flip-flops.
d). Determinar si la máquina puede ser representada por un diagrama de Mealy o de Moore,
indicando si las salidas dependen de la entrada.
e). Determinar si lo que lleva al estado inicial es el canto de subida o de bajada de reset.
f). Determinar las secuencias sincrónicas de valores que toman: x, y, z.

2. Determinar el diagrama de estados.

Solución. t1 > ts t2 > th

Figura P9.28. Análisis de formas de ondas Problema 9.11.

a) Observando las salidas y, z se advierte que el evento sincronizante es el canto de subida, ya


que los cambios de éstas ocurren con el canto de subida del reloj.
b) La entrada x no tiene sus cambios asociados a los cantos del reloj, por lo tanto no es señal
sincrónica con el reloj.
c) Los cambios de las entradas ocurren un tiempo antes del canto del reloj y permanecen
estables después de un tiempo del canto de bajada. En la gráfica se requiere que t1 > ts y que
t2>th.

Profesor Leopoldo Silva Bijit 19-01-2010


48 Sistemas Digitales
d) Se advierte que las salidas no son función de la entrada, por lo tanto puede usarse el modelo
de Moore.
e) El canto de subida de reset lleva al estado inicial.

f) Secuencias de valores de la entrada y las salidas. Debe inspeccionarse los niveles en el canto
de subida del reloj de las señales x, z, y. Existe un valor por cada canto de subida del reloj. Se
logran:

entrada x 0010101001011011010010100
salida z 0001010100000000001000000
salida y 0000000011100000000111111

2. Diagrama de estados. Se activa z cada vez que llega la secuencia 010 en la entrada y mientras
no llegue la secuencia 100. Cuando llega esta última se activa la salida y, y la máquina
permanece en ese estado.

Se forman los reconocedores de 010 y 100. Y se establecen las salidas asociadas al estado 3 y 6,
con z=1 e y=1 respectivamente.
Luego se completan las transiciones para cumplir generar salida z=1 para cada vez que se
presente la secuencia 010.
Luego se completan las transiciones para recocer la secuencia 100, apenas se presente.
Finalmente se completa las transiciones para permanecer en el estado 6 con salida y = 1.

reset
Si/

x= S0/00
1
0 0
/yz
S1/0 S4/00
0 1
1
1 0

S2/00 S5/00
1
1 0 0

S3/01 S6/10
0

Figura P9.29. Diagrama de estados Problema 9.11.

El diagrama de Moore se interpreta: En la etapa k, el estado es Si; es decir, estando en Si, en la


etapa k, se analiza la entrada x(k) y se pasa al próximo estado en k+1.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 49
Otras soluciones:

Diagrama de Mealy:
reset
Si

S0
x /yz 1/0
0/00 0/00 00
S1 S4
1/00
1/00
1/00 0/0
0
S2 S5
1/00
1/00 0/01 0/10
/10
S3 S6
0/10

Figura P9.30. Diagrama de estados de Mealy Problema 9.11.

S3 y S5 son equivalentes, ya que las transiciones que salen de S5, para iguales valores de las
entradas van con las mismas salidas a iguales estados próximos. Eliminando S5 se logra:

reset
Si

S0
x /yz 1/0
0/00 0/00 00
S1 S4
1/00
1/00
1/00
S2
0/0
0
1/00 0/01
/10
S3 S6
0/10

Figura P9.31. Diagrama de estados equivalente Problema 9.11.

Profesor Leopoldo Silva Bijit 19-01-2010


50 Sistemas Digitales
Referencias.

G. H. Mealy. A method for synthesizing sequential circuits, Bell System Technical Journal 34
(1955), 1045-1079.

E. F. Moore. Gedanken-Experiments on sequential machines, in Automata studies (editors C. E.


Shannon, J. McCarthy), Princeton University Press, 1956, 129-153.

Índice general.

CAPÍTULO 9 ..............................................................................................................................................1
SISTEMAS SECUENCIALES ..................................................................................................................1
9.1. DEFINICIONES ....................................................................................................................................1
Evento ..................................................................................................................................................1
Máquina abstracta. ..............................................................................................................................1
Estado. .................................................................................................................................................1
Máquinas de estados. ...........................................................................................................................2
Transición. ...........................................................................................................................................2
Diagrama de estados. ..........................................................................................................................2
Autómata de estados finitos determinista.............................................................................................2
Tipos de máquinas. ..............................................................................................................................2
Reloj. ....................................................................................................................................................3
Máquinas secuenciales. .......................................................................................................................3
Máquinas secuenciales sincrónicas. ....................................................................................................4
Síntesis lógica. .....................................................................................................................................4
9.2. SECUENCIAS. ......................................................................................................................................5
Ejemplos de secuencias. .......................................................................................................................5
a) Sincrónica de nivel. ...................................................................................................................................... 5
b) Sincrónica de pulsos .................................................................................................................................... 6
c) Asincrónica de nivel .................................................................................................................................... 6
d) Asincrónica de pulsos. ................................................................................................................................. 6
9.3. MODELO SECUENCIAL ........................................................................................................................6
9.4. REPRESENTACIÓN DE MÁQUINAS SECUENCIALES ...............................................................................9
9.4.1. Modelo de Mealy ........................................................................................................................9
i) Diagrama de estados ..................................................................................................................................... 9
ii) Tabla de transición de estados ................................................................................................................... 10
9.4.2. Modelo de Moore .....................................................................................................................10
i) Diagrama de estados ............................................................................................................................. 11
ii) Tabla de transiciones ................................................................................................................................. 11
Ejemplo 9.1 ........................................................................................................................................12
Ejemplo 9.2. .......................................................................................................................................13
Ejemplo 9.3. .......................................................................................................................................14
Algunas observaciones sobre las representaciones: ....................................................................................... 15
Ejemplo 9.4. .......................................................................................................................................16
Ejemplo 9.5. Modelado de diagrama de estados. Lavadora. .............................................................17
9.4.3. Transformación de Mealy a Moore. ........................................................................................19

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 51
Ejemplo 9.6.Transformación para el reconocedor de dos unos seguidos. ...................................................... 21
Ejemplo 9.7. ................................................................................................................................................... 22
9.5. TIPOS DE MÁQUINAS SECUENCIALES ................................................................................................ 23
9.6 SÍNTESIS DE DIAGRAMAS DE ESTADO. MODELADO ......................................................................... 23
9.6.1 Reconocedor de secuencias de largo fijo. Verificador BCD ................................................... 24
9.6.2. Reconocedor continuo. ............................................................................................................ 25
9.6.3. Reconocedor continuo con reintento en caso de falla ............................................................. 26
9.6.4. Reconocedor continuo de códigos BCD válidos. .................................................................... 27
9.6.5. Del diagrama a la especificación. ........................................................................................... 28
9.6.6. Determinar conducta de la máquina secuencial ..................................................................... 29
PROBLEMAS RESUELTOS. ........................................................................................................................ 30
Problema 9.1. Cerebro de Hormiga. (Ant Brain. Propuesto en el MIT). ......................................... 30
Problema 9.2. Contador sincrónico con control de modo M. ........................................................... 33
Problema 9.3. Reconocedor de un patrón finito. .............................................................................. 33
Problema 9.4. Diseñar el control de una máquina de lavar ropa. Uso de temporizadores. ............. 35
Problema 9.5. Detector secuencia 0101. ........................................................................................... 37
Problema 9.6. Máquina con dos salidas. .......................................................................................... 37
Problema 9.7. Máquina con dos entradas. ........................................................................................ 39
Problema 9.8. Máquina de estados finitos. Tres salidas. .................................................................. 40
Problema 9.9. .................................................................................................................................... 43
Problema 9.10. Sensores ................................................................................................................... 45
Problema 9.11. Formas de ondas...................................................................................................... 46
REFERENCIAS. ........................................................................................................................................ 50
ÍNDICE GENERAL. ................................................................................................................................... 50
ÍNDICE DE FIGURAS................................................................................................................................. 52

Profesor Leopoldo Silva Bijit 19-01-2010


52 Sistemas Digitales

Índice de figuras

Figura 9.1 Máquina abstracta. ....................................................................................................... 1


Figura 9.2 Modelo de Moore. ........................................................................................................ 3
Figura 9.3 Modelo de Moore sincrónico. ...................................................................................... 4
Figura 9.4 Circuito digital C(G, W). .............................................................................................. 4
Figura 9.5. Secuencia sincrónica de niveles. ................................................................................. 5
Figura 9.6. Secuencia sincrónica de pulsos. .................................................................................. 6
Figura 9.7. Secuencia asincrónica de niveles. ............................................................................... 6
Figura 9.8. Secuencia asincrónica de pulsos. ................................................................................ 6
Figura 9.8. a. Modelo de memoria................................................................................................. 7
Figura 9.9. Modelo de Mealy. ....................................................................................................... 9
Figura 9.10. Diagrama de estados de Mealy. ................................................................................ 9
Figura 9.11. Tabla de transición de estados de Mealy. FPE. ....................................................... 10
Figura 9.12. Matriz de transiciones y matriz de salida. ............................................................... 10
Figura 9.13. Modelo de Moore .................................................................................................... 11
Figura 9.14. Diagrama de estados de Moore. .............................................................................. 11
Figura 9.15. Tabla de transiciones modelo de Moore. ................................................................ 11
Figura 9.16. Matriz de transiciones ejemplo 9.1. ........................................................................ 12
Figura 9.17. Secuencia de salida y de estados. ............................................................................ 12
Figura 9.18. Esquema generador de secuencias. ......................................................................... 12
Figura 9.19. Diagrama de Estados ejemplo 9.1. .......................................................................... 13
Figura 9.20. Diagrama de estados de Ejemplo 9.2. ..................................................................... 13
Figura 9.21. Secuencia de salida Ejemplo 9.2. ............................................................................ 13
Figura 9.22. Tabla de transiciones Ejemplo 9.2 .......................................................................... 14
Figura 9.23. Diagrama de Moore Ejemplo 9.3. ........................................................................... 14
Figura 9.23a. Secuencia de salida modelo de Moore Ejemplo 9.3. ............................................. 14
Figura 9.24 Diagrama de Mealy Ejemplo 9.3. ............................................................................ 15
Figura 9.24a. Secuencia de salida modelo de Mealy Ejemplo 9.3. ............................................. 15
Figura 9.24b. Salidas registradas en modelo de Mealy. .............................................................. 16
Figura 9.24c. Modelo de Moore. Salida registrada. .................................................................... 16
Figura 9.25. Diagramas de Mealy y Moore ejemplo 9.4. ............................................................ 17
Figura 9.26. Lavadora.................................................................................................................. 17
Figura 9.27. Diagrama de estados de la Lavadora. ...................................................................... 18
Figura 9.28. Diagrama de estados ampliado de la Lavadora. ...................................................... 19
Figura 9.29. Separación de estados. ............................................................................................ 19
Figura 9.30. Conversión a Moore. ............................................................................................... 20
Figura 9.31. Estado inicial con salida cero. ................................................................................. 20
Figura 9.32. Estado inicial con salida uno. .................................................................................. 20
Figura 9.33. Agregar estado inicial. ............................................................................................ 20
Figura 9.34. Separación de estado S1. ......................................................................................... 21
Figura 9.35. No es necesario corregir S0..................................................................................... 21
Figura 9.36. Diagrama de Moore ejemplo 9.6. ............................................................................ 22
Figura 9.37. Representación de Moore Ejemplo 9.7. .................................................................. 22
Figura 9.38. Representación de Mealy Ejemplo 9.7. ................................................................... 23

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 9. Sistemas secuenciales 53
Figura 9.39 Diagrama en bloque verificador BCD. .................................................................... 24
Figura 9.40 Diagrama de estados verificador BCD..................................................................... 24
Figura 9.41 Diagrama de estados reducido del verificador BCD. ............................................... 25
Figura 9.42 Reconocedor de secuencia 0101. ............................................................................. 25
Figura 9.43 Diagrama de estados completo del reconocedor continuo. ...................................... 26
Figura 9.44 Diagrama de estados inicial. .................................................................................... 27
Figura 9.45 Diagrama de estados completo. ............................................................................... 27
Figura 9.46 Estados siguientes al estado 001. ............................................................................. 27
Figura 9.47 Diagrama de estados completo, sin salida. .............................................................. 28
Figura 9.48 Tabla de verdad de la función de salida. .................................................................. 28
Figura 9.49 Diagrama de estados Ejemplo 9.6.5. ........................................................................ 29
Figura 9.50 Diagrama de estados ejemplo 9.6.6. ........................................................................ 29
Figura P9.1 Laberinto. ................................................................................................................. 30
Figura P9.2 Esquema de situaciones. Definición de estados....................................................... 31
Figura P9.3 Diagrama de estados para el cerebro de la hormiga. ............................................... 32
Figura P9.4 Reducción de estados equivalentes. ......................................................................... 32
Figura P9.5 Contador binario ascendente.................................................................................... 33
Figura P9.6 Contador Gray. ........................................................................................................ 33
Figura P9.7 Diagrama de estados inicial. .................................................................................... 34
Figura P9.8 Diagrama de estados final. ....................................................................................... 35
Figura P9.9 Especificaciones de variables. ................................................................................. 36
Figura P9.10 Diagrama de estados control lavadora. .................................................................. 36
Figura P9.11 Diagrama de estados detector secuencia 0101. ...................................................... 37
Figura P9.12 Secuencias de entrada, salida y de estados. ........................................................... 37
Figura P9.13 Matrices de transiciones y de salida. ..................................................................... 38
Figura P9.14 Diagrama de estados Problema 9.6. ....................................................................... 38
Figura P9.15 Diagrama de estados Problema 9.7. ....................................................................... 39
Figura P9.16 Matriz de transiciones Problema 9.7...................................................................... 40
Figura P9.17. Secuencias de estados Problema 9.7. .................................................................... 40
Figura P9.18. Diagrama de estados y tabla transiciones Problema 9.8. ...................................... 41
Figura P9.19. Asignación de estados Problema 9.8. ................................................................... 41
Figura P9.20. Diagrama de estados Problema 9.8. ...................................................................... 42
Figura P9.21. Modelo de Mealy Problema 9.8. ........................................................................... 43
Figura P9.22. Matriz de transiciones Problema 9.9..................................................................... 44
Figura P9.23. Diagrama de estados Problema 9.9. ...................................................................... 44
Figura P9.24. Secuencias Problema 9.9. ..................................................................................... 45
Figura P9.25. Diagrama sensores Problema 9.10. ....................................................................... 45
Figura P9.26. Diagrama de estados Problema 9.10. .................................................................... 46
Figura P9.27. Formas de ondas Problema 9.11. .......................................................................... 47
Figura P9.28. Análisis de formas de ondas Problema 9.11. ........................................................ 47
Figura P9.29. Diagrama de estados Problema 9.11. .................................................................... 48
Figura P9.30. Diagrama de estados de Mealy Problema 9.11. .................................................... 49
Figura P9.31. Diagrama de estados equivalente Problema 9.11. ................................................ 49

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 10

Memorias primitivas sincrónicas.

Se estudiarán algunos dispositivos capaces de almacenar un bit de información, desde un punto


de vista lógico. Es decir, qué hace la componente; sin explicar cómo lo realiza internamente.
Esto último se verá más adelante, en el Capítulo 14.

Este tipo de memoria se denomina flip-flop, y se tienen tres tipos, denominados: JK, T y D.
Todos ellos operan con una señal periódica, denominada reloj.

10.1. Reloj

Los cambios de estado ocurren solamente en determinados instantes de tiempo; esos instantes
están sincronizados con el reloj.

Figura 10.1. Señal periódica de reloj.

En algunos casos se emplea el canto de subida del reloj para marcar los instantes de cambio; en
otros, se emplea el canto de bajada. El canto que define el instante de tiempo es el evento
sincronizante.

En los flip-flops disparados por cantos, se requiere una determinada pendiente para el reloj; no
importando el ancho. En general, el tiempo que la señal está en cero es mucho mayor que el
intervalo en que el reloj está alto. Se define el ciclo de trabajo de la señal periódica de un reloj,
como el porcentaje del tiempo que la señal está alta entre cantos de sincronización. Si la señal es
cuadrada el ciclo de trabajo es igual al 50%.

Para cambios con canto de bajada:


Durante el tiempo que el reloj está en uno se habilitan las entradas hacia el interior del flip-flop.
Y se requiere que las entradas no cambien durante cierto período previo y posterior al instante
en que ocurren los cambios de las salidas, esto se muestra en la Figura 10.2.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales

tsu th

Figura 10.2. Entrada estable en el momento de sincronización.

Con: tsu : tiempo de set-up, y th: tiempo de hold.

En el siguiente diagrama, donde el evento sincronizante es el canto de subida, se ilustra la forma


de indicar una variación de las señales de entrada, en caso de ser éstas un conjunto de señales.
La Figura 10.3, muestra que las señales pueden cambiar, tomar valores 0 ó 1, desde el instante
en que ocurren las líneas inclinadas, que representan cantos. La figura se interpreta: tsu
segundos antes del canto de subida, las señales de entrada deben estar estables, y deben
mantenerse estables th segundos después del canto de subida. Debe existir una ventana
alrededor del evento sincronizante, durante la cual las entradas deben permanecer estables, sin
cambios, para ser correctamente reconocidas por el flip-flop.

th
tsu

tsu : tiempo de set-up. entrada

th: tiempo de hold.

clock

Figura 10.3. Entradas estables en el momento de sincronización.

Los fabricantes especifican el valor promedio y de peor caso para los tiempos de preparación
(set-up) y de sostenimiento (hold), durante los cuales las entradas no pueden cambiar.

Desde un punto de vista lógico, podemos pensar que el reloj es un tren de impulsos.

t t t ...
0 1 2

Figura 10.4. Instantes de sincronización.

Considerando un intervalo constante, entre cantos de sincronización, puede asociarse los


instantes de tiempos con números enteros, según:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 3
tk = t  k

Las variables en el tiempo, se consideran discretas; es decir, asumen valores sólo en


determinados valores de t. Se define:

v(tk) = v(kt) = v(k)

v(k-1) v(k) v(k+1)


t
k t (k+1)t

Figura 10.5. Instantes de sincronización.

Entonces: v(k) define una secuencia de valores sincrónicos con el reloj. Existe una
correspondencia biunívoca, entre { 0, 1, 2, 3, ...., k, ....} y { vo, v1, v2, ...., vk, .... }.

10.2. Secuencias sincrónicas.

Existen dos tipos de señales sincrónicas. Las de niveles sincrónicos se caracterizan porque los
valores de la secuencia permanecen constantes entre pulsos del reloj, y sólo cambian con los
cantos de subida o bajada del reloj.

En secuencias sincrónicas de pulsos, solamente hay valores de la secuencia, durante los pulsos
del reloj.

Reloj

Sincrónica
nivel

Sincrónica
pulsos

Figura 10.6. Secuencias sincrónicas.

En ambos casos, la secuencia de valores lógicos es: { 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0 ... }

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

10.3. Flip-flop JK

Es una máquina secuencial de Moore, en la cual, la salida es igual al estado.

Se suelen usar los siguientes símbolos lógicos:

S R S’ R’

J Q J Q
datos salida datos salida
K K

reloj reloj

Figura 10.7. Flip-flop JK disparados por cantos.

Las señales S y R son set y reset asincrónicos, y se verán después, en el Capítulo 14. El
diagrama de la izquierda ilustra un flip-flop que opera con cantos de bajada del reloj, se utiliza
un pequeño triángulo para mostrar que el flip-flop está sincronizado, o es disparado por cantos.
Si es disparado por cantos de bajada, se dibuja un pequeño círculo en la base del triángulo.

Cuando es sincronizado por un pulso (master slave), en lugar del triángulo se dibuja un pulso,
como se muestra en la Figura 10.8.

J Q
datos salida

K
reloj
Figura 10.8. Flip-flop master slave.

Se suele proveer dos salidas complementarias. Esto implica que internamente se almacenan dos
bits; como se verá más adelante, esto requiere tener dos variables de estado internas. Desde un
punto de vista externo, sólo basta especificar las secuencias de las entradas para tener
transiciones del estado Q= 0, al estado Q = 1 y viceversa.

En un lenguaje no formal, cuando se pasa de Q = 0 a Q = 1, se dice que se setea el flip-flop; en


caso contrario, se resetea.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 5
10.3.1. Diagrama de estados

El JK queda definido, de manera formal, por un diagrama de estados:

1

0
0
JK = 11, 10

00, 01 Q=0 Q=1


reset set 00, 10

01, 11
1
Figura 10.9. Diagrama de estados Flip-flop JK.

El par de entradas asociada a cada transición puede anotarse empleando notación de bit
superfluo ; es decir, su ocurrencia indica que esa posición puede ser 0 ó 1. Ejemplo de esto es
el par: {01, 11} que se puede anotar: 1.

Existen diferentes formas alternativas de representar la información anterior, cada una aporta la
misma información desde un punto de vista diferente.

10.3.2. Tabla de transiciones

Los renglones son los valores que puede tomar el estado presente, las columnas están asociadas
a los diferentes valores que pueden tomar las entradas. Las casillas de la matriz muestran los
valores del próximo estado.

JK
00 01 11 10
Q(k)
0 0 0 1 1
1 1 0 0 1
Q(k+1)
Figura 10.10. Tabla de transiciones en Flip-flop JK.

La primera columna, con J = K = 0, indica que no hay cambio de estado.


La segunda, muestra cuando el próximo estado es reset.
La tercera, muestra un complemento del estado presente.
La cuarta, indica condiciones para quedar en estado set.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
10.3.3. Ecuación característica

Leyendo la tabla de transiciones, como mapa de Karnaugh, se obtiene:

Q(k  1)  J (k ) Q(k )  K (k ) Q(k )

que describe el próximo estado, mediante una expresión booleana del estado presente y las
entradas.

10.3.4. Tabla característica

Para analizar circuitos que empleen flip-flops, se suele emplear la siguiente tabla:

J K Q(k+1)

0 0 Q(k)
0 1 0
1 0 1
_
1 1 Q(k)

Figura 10.11. Tabla característica Flip-flop JK.

La tabla característica puede obtenerse mediante la ecuación característica, dándole valores a las
entradas. También puede derivarse a partir de la interpretación de las columnas de la tabla de
transiciones.
La tabla característica describe cómo deben ser las entradas para tener un determinado estado en
la salida.

10.3.5. Tabla de excitaciones

Describe las transiciones de la salida, en términos de las entradas. Suele usarse para diseñar
circuitos que empleen flip-flops JK.

Q(k) => Q(k+1) J K

0 0 0 
0 1 1 
1 0  1
1 1  0

Figura 10.12. Tabla de excitaciones Flip-flop JK.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 7
La tabla de excitaciones puede obtenerse, observando las transiciones en el diagrama de estados.

10.3.6. Descripción HDL.

En Verilog pueden describirse flip-flops JK, mediante:

module flipflopJK(input J, K, clk, reset, output Q);


reg Q;
always @(posedge clk)
if (reset) Q<=0; else Q<=(J&~Q)|(~K&Q); //reset sincrónico
endmodule

10.4. Flip-flop D

La Figura 10.13 resume la información asociada a un flip-flop D.

D=1
Q
D=0 D=1
D
Q=0 Q=1

reset set
D=0
clk

D
Q(k) 0 1 Ecuación característica
0 0 1
Q(k  1)  D(k )
1 0 1
Q(k+1)
Tabla característica Tabla de excitaciones
Q(k+1) Q(k) _
D > Q(k+1) D

0 0 0 0 0
0 1 1
1 1 1 0 0
1 1 1

Figura 10.13. Flip-flop D.

La D proviene de Datos, ya que la principal función de este flip-flop, es capturar la información


que está en el cable conectado a la entrada. También la D se interpreta como Delay, ya que la
salida está un pulso de reloj retrasada respecto a la entrada.

En Verilog, puede describirse un flip-flop D, según:

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales

module flipflopD(input D, clk, reset, output Q);


reg Q;
always @(posedge clk)
if (reset) Q<=0; else Q<=D; //reset sincrónico
endmodule

El esquema de la Figura 10.14, ilustra el diseño de un flip-flop D en base a un JK.


Si en la ecuación característica del JK, se reemplazan J y K en función de D, se obtiene:

Q(k  1)  J (k )Q '(k )  K '(k ) Q(k )  D(k )Q '(k )  ( D '(k )) ' Q(k )

Aplicando involución y fusión, se obtiene, la ecuación característica de un D:


Q(k  1)  D(k )

D J Q

K Q'

clk
Figura 10.14. Flip-flop D mediante JK.

El esquema de la Figura 10.14.a, ilustra el diseño de un flip-flop JK en base a un D.


Si en la ecuación característica del D, se reemplaza D en función de J y K, se obtiene:

Q(k  1)  D(k )  J (k )Q '(k )  K '(k )Q(k )

La cual es la ecuación característica de un JK.

Q Q
J
D
K
Q'

reloj

Figura 10.14.a. Flip-flop JK mediante D.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 9
10.5. Flip-flop T

En forma similar a la desarrollada para los flip-flops JK y D, se resume la información para un


T.

T=1
T=0
T Q Q=0 Q=1 T=0

reset set
T=1
reloj
T
Q(k) 0 1
0 0 1 Q(k  1)  T (k )Q(k )  T (k )Q(k )  T (k )  Q(k )
1 1 0
Q(k+1)

Q(k+1) Q(k) _ T
T > Q(k+1)

0 Q(k) 0 0 0
0 1 1
1 Q(k) 1 0 1
1 1 0

Figura 10.15. Flip-flop T.

La T proviene de Toggle, que describe un tipo de interruptores de presión de una posición (se
oprime y queda en un estado; se vuelve a oprimir y cambia de estado).

A partir de un flip-flop JK puede obtenerse un T, según se ilustra en la Figura 10.16. Si en la


ecuación característica del JK, se reemplazan J y K en función de T, se obtiene:

Q(k  1)  J (k )Q '(k )  K '(k ) Q(k )  T (k )Q '(k )  T '(k )Q(k )


La cual es la ecuación característica de un flip-flop T.

D J Q

K Q'

clk
Figura 10.16. Flip-flop T mediante un JK.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
El esquema de la Figura 10.16.a, ilustra el diseño de un flip-flop T en base a un D.
Si en la ecuación característica del D, se reemplaza D en función de T, se obtiene:

Q(k  1)  D(k )  T (k )Q '(k )  T '(k )Q(k )

La cual es la ecuación característica de un T.

Q Q
T D
Q'

reloj

Figura 10.16.a. Flip-flop T mediante D.

Un uso típico de un flip-flop T es dividir por dos la frecuencia de entrada. Ya que en cada canto
activo cambia el estado del flip-flop T, permaneciendo la salida constante entre dos cantos
activos. La Figura 10.17 muestra un flip-flop T, disparado por canto de subida, y alimentado
con un uno lógico en la entrada; la salida divide por dos la frecuencia del reloj.

clk 1 Q
T
T=1
Q reloj

Figura 10.17. Divisor de frecuencia con Flip-flop T.

10.6 Requerimientos Temporales.

La descripción del funcionamiento lógico de un flip-flop real especifica los requerimientos


temporales que deben cumplirse para que las funciones del flip-flop operen correctamente.
Básicamente son tres: los tiempos de set-up y hold (Tsu y Th); duración mínima del reloj (Tw);
tiempos de propagación desde el canto del reloj hasta que se tiene salida estable: Tplh describe
cuánto tarda la salida en pasar de low (nivel bajo) a un nivel alto (high); y Tphl es el tiempo de
propagación de high a low. Estos tiempos se describen como valores máximos (peor caso) y
típicos. Debe notarse que Tplh y Tphl suelen ser distintos.

La siguiente gráfica muestra dichos tiempos para un flip-flop disparado por cantos de subida
(positive edge triggered); la señal de entrada D, cumple los requerimientos de Tsu y Th.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 11

Th Tsu Th
D Tsu
20ns 5ns 20ns 5ns

CLK Tw 25ns

Tplh Tphl
25ns máx. 40ns máx.
13ns típico 25ns típico

Figura 10.18. Especificaciones de tiempos en flip-flops.

Todos los tiempos se miden desde el canto activo del reloj (el de subida, en el ejemplo).

Las siguientes formas de ondas ilustran relaciones temporales para flip-flops disparados por
cantos de subida y de bajada. En flip-flops disparados por canto de subida (positive edge
triggered) las entradas se muestrean en el canto de subida (en realidad requiere valor estable tsu
segundos antes) y las salidas (Qp y Q’p) cambian un tiempo de propagación después, relativa al
canto de subida. Debe notarse que las salidas complementarias (Q y Q') no cambian
instantáneamente; esto se justificará después.
En flip-flops disparados por canto de bajada, se muestrean las entradas en el canto de bajada, y
las salidas (Qn Q’n) cambian después del canto de bajada.

Clk

Qp

Q'p

Qn

Q'n

Figura 10.19. Flip-flops disparados por cantos de subida y bajada.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
Comparaciones.

En la actualidad el flip-flop más importante es el de tipo D, suele emplearse en registros para


almacenar datos y es el flip-flop que se emplea en dispositivos lógicos programables (en su
forma de disparo por cantos). Debido a que se puede implementar con un número reducido de
interruptores CMOS, suele emplearse en circuitos integrados que requieran flip-flops.

El flip-flop JK fue sumamente empleado en los inicios debido a que tiene conducta determinada
cuando ambas entradas son unos (a diferencia del flip-flop SR). Es el flip-flop típico de la
familia TTL y de circuitos integrados en pequeña escala (SSI), permite construir fácilmente flip-
flops de tipo D y T. En la actualidad prácticamente no se usa. No está presente en las
configuraciones internas de los dispositivos lógicos programables, pero en estos casos se lo
puede construir en base a los flip-flops de tipo D, que éstos poseen.

El flip-flop de tipo T, prácticamente no está disponible como elemento; sin embargo puede ser
fácilmente implementado en base a los existentes (tipo D o JK).

En los flip-flops son necesarias entradas que permitan dejar al flip-flop en un estado
determinado. Clear o reset deja la salida Q en cero; y preset deja la salida alta. En el caso de
flip-flops de integración en pequeña escala estas señales suelen ser de naturaleza asincrónica
(como se verá más adelante); es decir, que se permite a estas entradas cambiar en cualquier
instante, respecto del reloj. Como se verá estas señales permiten dejar a un sistema secuencial
en un estado determinado. Sin embargo en diseños basados en dispositivos programables es
preferible dejar a los flip-flops en un determinado estado en forma sincrónica.

10.7. Metodologías de temporización.

Se denomina así a las reglas para interconectar compuertas y flip-flops de tal forma de
garantizar que el sistema completo funcionará correctamente. Las metodologías dependerán del
tipo de elemento que se emplee para implementar la memoria, ya sean flip-flops disparados por
cantos (que suelen emplearse en dispositivos lógicos programables) o bien latchs transparentes
que suelen emplearse en la confección de registros en procesadores.
Las reglas básicas para la correcta temporización son: proporcionar entradas que cumplan los
tiempos de set-up y hold relativas al reloj, y que las salidas no cambien su estado más de una
vez por evento sincronizante.

La figura 10.20 ilustra las formas de ondas de las salidas de un flip-flop D, disparado por canto
de subida y un latch transparente de tipo D. Note que en el latch la salida cambia entre pulsos
del reloj, copiando los cambios de la entrada hacia la salida apenas ocurren cambios de ésta,
estando alto el reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 13

D Q Clk
E

QClk Qcanto

Qlatch

Figura 10.20. Conmutación Flip-flop D y latch transparente.

En el latch transparente (o sensible al nivel), estando el reloj en alto, la salida cambia de acuerdo
al valor de la entrada (después del tiempo de propagación); el canto de bajada del reloj del latch
captura el valor que tenga la entrada en ese tiempo (el latch, también requiere cumplir
especificaciones de set-up y hold, alrededor del canto de bajada del reloj).
También existe un tiempo de propagación desde un cambio de la entrada o del canto de subida
reloj (el evento que ocurra más tarde).

La estructura interna de los flip-flops disparados por cantos y el latch se verá más adelante.

CP

modo captura
Qlatch

modo transparente

Figura 10.21. Modos de funcionamiento de un latch transparente.

Ejemplo de temporización.

La Figura 10.22, ilustra los requerimientos de las entradas de dos flip-flops D, disparados por
cantos de subida.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales

dato

D0 Q0 D1 Q1

clock

entrada estable

dato

clock

Figura 10.22. Entradas y reloj en flip-flops D.

Las entradas D0 y D1 deben ser estables un tiempo antes y después del canto de subida del
reloj.

Consideremos ahora la conexión cascada que se ilustra en la gráfica a continuación. La salida


del primer flip-flop se conecta a la entrada del segundo.

Se asume que D0 cumple los requerimientos.

Analizaremos las exigencias de sincronización para D1.


a) Si el tiempo de propagación desde el reloj hasta la salida Q0 es mayor que el tiempo de hold
del flip-flop 1, éste último cumple con entrada estable durante el tiempo de hold.
b) El período del reloj debe ser mayor que la suma de la propagación desde el reloj hasta Q0 con
el tiempo de set-up del flip-flop 1, para que la entrada del flip-flop 1 no cambie durante su
tiempo de set-up.

dato
D0 Q0 D1 Q1

clock

Figura 10.23. Conexión cascada.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 15

D0
Tsu Tsu
4ns 4ns
Q0=D1
Tp Tp
3ns 3ns
Q1

CLK
Th Th
2ns 2ns

Figura 10.23.a. Señales conexión cascada.

Si se cumplen las exigencias de temporización, se garantiza la correcta operación de la conexión


cascada. De este modo el flip-flop 1 capturará el valor actual del flip-flop Q0.

Todos los flip-flops deben determinar su próximo estado en el mismo instante, bajo la condición
de las entradas permanezcan estables tsu antes del reloj y thold después.

La conexión anterior asume que todos los flip-flops tienen el mismo reloj. Sin embargo, en
sistemas que funcionan con relojes de altas frecuencias, el tiempo de retardo de propagación a
través del sistema digital es comparable al que requiere el reloj para llegar a los diferentes flip-
flops. La diferencia entre cantos de reloj, en diferentes flip-flops se denomina desfasamiento (o
desplazamiento, skew en inglés).

Previo al primer canto de subida se está en estado Q0 = 0 y Q1 = 0. Después el estado será:


Q0=1 y Q1 = 0, previo al segundo canto de subida del reloj.

D0 Q1
dato Q0 D1
clk0 clk1

reloj

Figura 10.24. Consideración del tiempo de desplazamiento del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales

D0
Tsu Ts
4ns 4ns
Q0=D1
Tp Tp
3ns 3ns
Q1

Clk0

Tp 3ns Th Tp 3ns
Th
2ns 2ns
Clk1
Tsu Th Tsu Th
4ns 2ns 4ns 2ns

Figura 10.24.a. Consideración del tiempo de desplazamiento del reloj.

Se advierte que D1, no cumple la especificación de permanecer estable (Tsu antes y Th después
del canto de subida de clk1). Debido a esto la salida Q1 será indeterminada. Asumiendo que
conmuta y que se muestrea el valor de la entrada en el canto de subida, se muestra la forma de
Q1, Tp segundos después del canto de subida de clk1.

Más adelante podrá determinarse que la conexión cascada de los flip-flops se comporta como un
registro de desplazamiento. Debido al desfase podría dejar de ser un registro de desplazamiento.

Previo al primer canto de subida de clk0, se está en estado Q0 = 0 y Q1 = 0. Después el estado


será: Q0 = 1 y Q1 = 1, previo al segundo canto de subida del reloj clk0. Lo cual no da una
conducta predecible, ésta depende del tiempo de desfasamiento entre los diferentes relojes
aplicados a los flip-flops.
Más adelante se desarrollará más sobre este problema y cómo garantizar el funcionamiento de
los sistemas digitales sincrónicos, considerando los tiempos de propagación y de desfase entre
relojes.

Sincronización.

El análisis anterior nos lleva a uno más general y es cómo tratar entradas asincrónicas a sistemas
sincrónicos. En esta situación las entradas pueden cambiar en cualquier instante y puede que no
satisfagan los requerimientos de set-up y hold de los flip-flops del sistema sincrónico. Esta
dificultad no puede evitarse en algunas situaciones, como por ejemplo, en caso de una entrada
generada por un operador (y también cuando se emplean memorias en forma asincrónica).
Debido a lo anterior es preferible diseñar con entradas sincrónicas (si las entradas son salidas de

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 17
otros flip-flops, esto se produce naturalmente) y también muestra que son preferibles los
circuitos generados por modelos de Moore, ya que los de Mealy generan salidas asincrónicas.

La Figura 10.26, muestra un interruptor manual, a través del cual se introduce un pequeño
pulso, de ancho variable y posiblemente con rebotes mecánicos, que finalmente coloca una de
las entradas en nivel bajo momentáneamente; esto asume que la entrada, en alta impedancia,
está en nivel alto.

clk

Figura 10.25. Pulsador como entrada de sistema sincrónico.

Cuando las entradas a un flip-flop cambian muy cercanas al canto del reloj, éste puede tener
inestabilidades internas que no permiten asegurar que se cumplan las ecuaciones del flip-flop.
En estos casos puede reducirse la probabilidad de falla aumentando la frecuencia del reloj,
relativa a la frecuencia de la entrada, o empleando compuertas más rápidas, o empleando un
sincronizador. La mejor solución es agregando un sincronizador, ya que no se depende de la
entrada. Un sincronizador es simplemente un flip-flop, cuya salida cambia sólo en los cantos del
reloj.

D Q

clk

Figura 10.25. Sincronizador de entrada asincrónica.

El empleo de sincronizadores garantiza que el resto del sistema tendrá entradas sincrónicas, pero
no se puede garantizar que el sincronizador no tendrá fallas.
Normalmente basta agregar un flip-flop adicional para aumentar las probabilidades de lograr la
sincronización.

D1 Q1 D2 Q2

clk

Figura 10.25. Sincronizador con dos flip-flops.

Debe asegurarse que las entradas cumplan los requerimientos de set-up y hold de los flip-flops
del sistema sincrónico. A través de mediciones puede determinarse el funcionamiento confiable
del sincronizador, y de los niveles requeridos.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
No es recomendable conectar una entrada asincrónica a dos entradas de flip-flops, sin
previamente haber sincronizado la entrada, ya que uno de los flip-flops podría no capturar la
entrada, por violar ésta los requerimientos de set-up o hold.
Vcc
D1 Q1
clk

D2 Q2

clk

Figura 10.26. Entrada asincrónica conectada a dos flip-flops.

El siguiente diagrama ilustra que Q1 registra el cambio de la entrada, pero no así Q2.

Entrada

Q1

Q2

CLK

Figura 10.27. Violación de tiempos de hold o setup en D2.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 10. Memorias primitivas sincrónicas 19

Índice general.

CAPÍTULO 10 ........................................................................................................................................... 1
MEMORIAS PRIMITIVAS SINCRÓNICAS. ........................................................................................ 1
10.1. RELOJ .............................................................................................................................................. 1
10.2. SECUENCIAS SINCRÓNICAS. ............................................................................................................. 3
10.3. FLIP-FLOP JK ................................................................................................................................... 4
10.3.1. Diagrama de estados ............................................................................................................... 5
10.3.2. Tabla de transiciones .............................................................................................................. 5
10.3.3. Ecuación característica ........................................................................................................... 6
10.3.4. Tabla característica ................................................................................................................ 6
10.3.5. Tabla de excitaciones .............................................................................................................. 6
10.3.6. Descripción HDL. ................................................................................................................... 7
10.4. FLIP-FLOP D..................................................................................................................................... 7
10.5. FLIP-FLOP T ..................................................................................................................................... 9
10.6 REQUERIMIENTOS TEMPORALES. .................................................................................................... 10
COMPARACIONES. .................................................................................................................................. 12
10.7. METODOLOGÍAS DE TEMPORIZACIÓN............................................................................................. 12
Ejemplo de temporización. ................................................................................................................ 13
Sincronización. .................................................................................................................................. 16
ÍNDICE GENERAL. ................................................................................................................................... 19
ÍNDICE DE FIGURAS................................................................................................................................. 20

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales

Índice de figuras

Figura 10.1. Señal periódica de reloj. ............................................................................................ 1


Figura 10.2. Entrada estable en el momento de sincronización. ................................................... 2
Figura 10.3. Entradas estables en el momento de sincronización. ................................................ 2
Figura 10.4. Instantes de sincronización. ...................................................................................... 2
Figura 10.5. Instantes de sincronización. ...................................................................................... 3
Figura 10.6. Secuencias sincrónicas. ............................................................................................. 3
Figura 10.7. Flip-flop JK disparados por cantos. .......................................................................... 4
Figura 10.8. Flip-flop master slave................................................................................................ 4
Figura 10.9. Diagrama de estados Flip-flop JK. ............................................................................ 5
Figura 10.10. Tabla de transiciones en Flip-flop JK. .................................................................... 5
Figura 10.11. Tabla característica Flip-flop JK. ............................................................................ 6
Figura 10.12. Tabla de excitaciones Flip-flop JK.......................................................................... 6
Figura 10.13. Flip-flop D............................................................................................................... 7
Figura 10.14. Flip-flop D mediante JK.......................................................................................... 8
Figura 10.14.a. Flip-flop JK mediante D. ...................................................................................... 8
Figura 10.15. Flip-flop T. .............................................................................................................. 9
Figura 10.16. Flip-flop T mediante un JK. .................................................................................... 9
Figura 10.16.a. Flip-flop T mediante D. ...................................................................................... 10
Figura 10.17. Divisor de frecuencia con Flip-flop T. .................................................................. 10
Figura 10.18. Especificaciones de tiempos en flip-flops. ............................................................ 11
Figura 10.19. Flip-flops disparados por cantos de subida y bajada. ............................................ 11
Figura 10.20. Conmutación Flip-flop D y latch transparente. ..................................................... 13
Figura 10.21. Modos de funcionamiento de un latch transparente. ............................................. 13
Figura 10.22. Entradas y reloj en flip-flops D. ............................................................................ 14
Figura 10.23. Conexión cascada. ................................................................................................. 14
Figura 10.23.a. Señales conexión cascada. .................................................................................. 15
Figura 10.24. Consideración del tiempo de desplazamiento del reloj. ........................................ 15
Figura 10.24.a. Consideración del tiempo de desplazamiento del reloj. ..................................... 16
Figura 10.25. Pulsador como entrada de sistema sincrónico. ...................................................... 17
Figura 10.25. Sincronizador de entrada asincrónica.................................................................... 17
Figura 10.25. Sincronizador con dos flip-flops. .......................................................................... 17
Figura 10.26. Entrada asincrónica conectada a dos flip-flops. .................................................... 18
Figura 10.27. Violación de tiempos de hold o setup en D2. ........................................................ 18

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 11

Análisis y Diseño de máquinas


secuenciales sincrónicas

11.1. Análisis

Dado el esquemático de una red secuencial sincrónica se desea obtener el diagrama de estados;
y a partir de éste, inferir el funcionamiento de la máquina. Este procedimiento se suele llamar
reingeniería.

A continuación se resume el funcionamiento de una máquina secuencial; en el esquemático de


la Figura 11.1, los elementos de memoria pueden ser flip-flops Ds o JKs.

Reset’

x(k) P1 z(k) P2

y(k)
Q
y(k+1)

Clk

Figura 11.1. Esquema de máquina secuencial.

El estado actual y (k ) es sostenido en las salidas Q(k ) de los flip-flops, durante el intervalo de
tiempo k. En este intervalo, se generan z (k ) e y (k 1) a partir de y (k ) y x(k ) , en la red
combinacional. El próximo estado, y (k 1) , se lleva a las entradas de los flip-flops, de tal
manera que en el instante (k +1) las salidas de los flip-flops, almacenaran los valores y (k 1) .

Para esto es indispensable que las entradas a los flip-flops sean estables en el momento de
aplicar el canto del reloj que efectuará la conmutación, o cambio de estado, que implica pasar
del intervalo k al intervalo (k+1).

Para n entradas, m estados y p salidas se tienen, los vectores booleanos:

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
x ( x0 , x1 ,..., xn )
y ( y0 , y1 ,..., ym )
z ( z0 , z1 ,..., z p )

Programas de los flip-flops. Matrices de programación.

A partir del esquemático de la red booleana pueden escribirse las funciones de las entradas de
los flip-flops en función de la entrada y el estado presente, se denominan programas de los flip-
flops, o ecuaciones de excitación de éstos.

En caso de flip-flops JKs, se tienen las ecuaciones:


Ji f i ( y, x)
Ki gi ( y, x)
En caso de flip-flops Ds, se tienen las ecuaciones:
Di f i ( y, x)

Las representaciones de estas ecuaciones en un mapa de Karnaugh se denominan: Matrices de


Programación.

11.2. Método de análisis tabular

El método de análisis tabular está basado en obtener la matriz de transiciones a partir de las
matrices de programación. En cada casilla, de cada una de las (m+1) matrices de programación,
mediante las tablas características, se determinan las (m+1) componentes del vector de próximo
estado de cada casilla de la matriz de transición.

El siguiente esquema muestra el proceso para obtener la matriz de transiciones:

x x
y y
J K y(k+1)
0 0 y(k)
0 1 0
1 0 1
Ji, Ki 1 1 y’(k) y(k+1)

Figura 11.2. Esquema análisis tabular

Se muestra sólo la matriz de programación del flip-flop i-ésimo, que se asume del tipo JK. Para
cada par ( J i , Ki ) de la matriz de programación i-ésima, mediante la tabla característica, se
encuentra el próximo estado yi (k 1) asociado; componiendo de este modo el vector y(k+1).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 3
A partir de la tabla de transiciones, resulta sencillo dibujar el diagrama de estados, y a partir de
éste determinar el funcionamiento u operación de la máquina secuencial.

11.3. Método analítico.

Las ecuaciones de los programas de los flip-flops, que se asumen del tipo JK:

Ji f i ( y, x)
Ki gi ( y, x)

Se reemplazan en las ecuaciones características de los (m+1) flip-flops:

yi (k 1) J i yi ' Ki ' yi

De esta forma se eliminan las variables J i y K i , quedando las (m+1) ecuaciones:

yi (k 1) fi ( y(k ), x(k ))
Las que representadas en un mapa de Karnaugh, forman la matriz de transiciones.

11.4. Ejemplo método tabular

Se tiene el siguiente esquemático:


clk
C
C
P1
P2

A
J Q S
J
x K Q’
C
clk K
P
1
reset
B
S
J Q
C _
K Q
P z

C
S
J
C _
K Q
P

Figura 11.3. Ejemplo de máquina secuencial empleando flip-flops JK

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales
Nótese que se tiene una señal de reset común para los tres flip-flops. Esto implica que el estado
inicial será el 000.
Los cambios ocurren con el canto de subida del reloj.
Se asume que la entrada x es una secuencia sincrónica con el mismo reloj (clk) del sistema.

Leyendo las ecuaciones de las entradas de los flip-flops, directamente del esquemático, se
obtienen:
JA ( B ' C B ' x '); K A B
JB ( AB ' B ' C ); K B B
JC A ' x; K C B x'

Para obtener la matriz de programación del flip-flop A: Se debe establecer JA y KA para cada
combinación posible del estado presente y la entrada. Se procede en forma análoga para los
flip-flops B y C.

Este proceso de ilustra en la Figura 11.4, para cada uno de los flip-flops, se obtienen las
siguientes matrices de programación:

x x x
ABC 0 1 ABC 0 1 ABC 0 1
000 10 00 000 00 00 000 01 10
001 10 10 001 10 10 001 01 10
011 01 01 011 01 01 011 01 11
010 01 01 010 01 01 010 01 11
110 01 01 110 01 01 110 01 01
111 01 01 111 01 01 111 01 01
101 10 10 101 10 10 101 01 00
100 10 00 100 10 10 100 01 00
J , K J , K J , K
A A B B C C
A A A

Figura 11.4. Matrices de Programación

Usando la tabla característica del flip-flop JK se logra, la matriz de transiciones, de la Figura


11.5. Además se ha empleado la ecuación de salida: z xBC .

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 5
x
ABC
0 1
000 100/0 001/0
001 110/0 111/0
011 000/0 000/1
010 000/0 001/0
110 000/0 000/0
111 000/0 000/1
101 110/0 111/0
100 110/0 110/0
A(k+1) B(k+1) C(k+1)/z

Figura 11.5. Matriz de transiciones del Ejemplo 11.4.

Para todas las ocurrencias de (J,K) igual a (1,0) en las tablas de la Figura 11.4, se coloca un 1 en
la columna correspondiente de la Figura 11.5; se coloca 0 para (J, K) igual a (0,1).

Para (J, K) igual a (0,0) en las tablas de la Figura 11.4, se coloca el valor actual de la variable en
la columna correspondiente de la Figura 11.5.
Para (J, K) igual a (1,1) en las tablas de la Figura 11.4, se coloca el valor complementado de la
variable actual en la columna correspondiente de la Figura 11.5.

Si colocamos la cifra decimal, equivalente del nombre binario del estado, se logra la matriz de
transiciones, empleando nombres simbólicos para los estados. Se obtiene la Figura 11.6,
izquierda. Y de esta matriz se obtiene el diagrama de estados que se ilustra a la derecha en la
Figura 11.6.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales

3
0/0 2
Estado x 0/0
actual 0 1 1/1
0 1/0
0 4/0 1/0
1 6/0 7/0 0/0 1/0
3 0/0 0/1
2 0/0 1/0 4 /0 1 1/1
6 0/0 0/0 0/0
7 0/0 0/1 /0 0/0 1/0
5 6/0 7/0
4 6/0 6/0 6 7
Estado próximo/z
0/0 1/0
5

Figura 11.6. Diagrama de estados ejemplo 11.3

Se observa que los estados 2, 3 y 5 sólo pueden ser estados iniciales y no participan de la
naturaleza secuencial del resto. Si no se dibujan, resulta la Figura 11.7.

reset
0
0/0
0/0
1/0
1/1

4 /0 1

1/0
/0
0/0
7
6

Figura 11.7. Diagrama de estados reducido.

En la Figura 11.7, con estado inicial igual a cero, puede concluirse que el circuito es un
reconocedor de secuencia de largo fijo igual a 3. A partir del estado inicial acepta tres valores de
la entrada y luego toma una decisión.

La máquina analiza grupos de 3 bits de la secuencia de entrada, y si ésta es 111, genera un uno
en la salida; cero en el resto de los casos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 7
11.5. Ejemplos del método analítico.

a) Para la Figura 11.3, se tienen las siguientes ecuaciones:

JA ( B ' C B ' x '); K A B


JB ( AB ' B ' C ); K B B
JC A ' x; K C B x'
z xBC

Las ecuaciones anteriores representan el esquemático de la Figura 11.3.

Para los flip-flops JK se tienen las siguientes ecuaciones características:

A(k 1) JA A KAA
B(k 1) JB B KBB
C (k 1) JC C KCC

Donde se han reemplazado las salidas Q de los flip-flops, por las variables de estado: A, B y C.

Eliminando las variables J y K de los tres flip-flops, reemplazándolas en las ecuaciones


características, se obtienen:
A(k 1) ( B C B x) A BA
B (k 1) ( AB BC ) B BB
C (k 1) AxC ( B x ) C
Las ecuaciones anteriores permiten obtener directamente la matriz de transición, para esto basta
representarlas en un mapa de Karnaugh:
x
ABC
0 1
000 100/0 001/0
001 110/0 111/0
011 000/0 000/1
010 000/0 001/0
110 000/0 000/0
111 000/0 000/1
101 110/0 111/0
100 110/0 110/0
A(k+1) B(k+1) C(k+1)/z

Figura 11.8. Matriz de transiciones, empleando método analítico.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
Que resulta ser igual a la obtenida antes, por el método tabular. Luego se continúa en forma
similar al ejemplo anterior, desarrollado en 11.4.

b) Analizar la máquina secuencial descrita por el diagrama de bloques, de la Figura 11.9, y las
ecuaciones siguientes:
z1
x M.S.S. z 2
z3

clk
Figura 11.9. Entradas y salidas de máquina secuencial.

J1 xy2 ; K1 x z1 y1 y2
z2 xy1 y2
J2 xy1 ; K2 x z3 y1 y2

Las ecuaciones del próximo estado de los flip-flops:

Y1 J1 y1 K1 y1
Y2 J 2 y2 K 2 y2

Reemplazando las ecuaciones de programación de los flip-flops en las ecuaciones anteriores,


resultan:
Y1 xy2 y1 xy1
Y2 xy1 y2 xy2

Que permite escribir la siguiente tabla de transiciones:


x
y1 y2 0 1
0 0 00 01
0 1 01 10
1 1 11 00
1 0 10 00
Y1Y2

Figura 11.10. Tabla de transiciones ejemplo 11.5.b

Las ecuaciones de las salidas pueden escribirse, empleando el mapa de Karnaugh, de la Figura
11.11:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 9
x
y1 y2 0 1
00 100 100
01 000 000
11 001 001
10 000 010
z1 z2 z3

Figura 11.11. Ecuaciones de salidas.

Con la asignación de estados, de la Figura 11.12, en la que se emplea como nombre lógico el
equivalente decimal del nombre físico o binario, se obtiene el diagrama de estados que se
muestra en la Figura 11.13.
x
Estado 0 1
0 0 1
1 1 2
3 3 0
2 2 0
Est. próximo

Figura 11.12. Asignación de estados simbólicos.

0/100
1/100 0/000
0 1

1/001
1/100 x/z1z2z3
1/010
0/001 2 0/000
3

Figura 11.13. Diagrama de estados de Mealy

Observando el diagrama, de la Figura 11.13, se obtienen:


El estado 3 sólo puede ser estado inicial.
La salida z3 indica que se está en estado 3.
La salida z1 indica que se está en estado 0.
Si se parte del estado cero, se cuentan 3 niveles altos de la entrada, y se lo indica en salida z2
mediante un pulso.

Notar que debido a que z2 depende de x, se modeló mediante una máquina de Mealy.

11.6. Frecuencia máxima de operación del reloj.

Para un flip-flop sincronizado por cantos de bajada:

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales

Red J
Combinacional Q
K

tp tf
reloj

Figura 11.14. Definición de tiempos de propagación.

a) Se puede calcular el retardo de propagación, a través de los circuitos combinacionales, por la


vía más larga. Es decir, por aquella vía de realimentación que produzca el mayor retardo, está
vía suele denominarse ruta crítica. Sea este tiempo: tp.
b) Desde el canto de bajada del reloj, hasta que la salida de un flip-flop cambie de estado, se
tiene el tiempo de propagación en el flip-flop. Sea este tiempo: tf.
c) Se tiene además el tiempo de setup, tsu, que es aquel durante el cual las entradas de los flip-
flops no deben cambiar, antes del canto.
d) El período del reloj puede cambiar debido a que la frecuencia puede experimentar
variaciones debidas a cambios de la temperatura. También la señal del reloj en diferentes puntos
del circuito puede tener variaciones por el tiempo de propagación a través de los cables. Sea el
máximo tiempo de variación tskew.

Si tenemos un reloj:

t0 t1 t

Figura 11.15. Ciclos del reloj

Por las condiciones a, b, c y d, se debe cumplir: to + t1 > tf + tp+ tsu+ tskew.

Sea tpmin el mínimo tiempo que tardan los cambios de las señales en atravesar la red
combinacional, y tfmin el mínimo tiempo en que cambian las salidas de los flip-flops,
después del canto; entonces debe cumplirse: tpmin + tfmin + tskew > thold

Si puede asegurarse que las entradas no cambian tsu antes del canto y thold después del canto, el
flip-flop funcionará confiablemente. Esta verificación debe efectuarse para cada uno de los flip-
flops de la red booleana.

Entonces el período mínimo del reloj, debe cumplir:

Tmín = tf + tp + tsu+ tskew.

Obteniéndose una frecuencia máxima:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 11
1
f máx
tf tp tsu t skew

Algunos valores típicos, de la familia TTL:


tf =20 ns ; tsu =20 ns ; tp =15 ns que dan frecuencias de operación menores que 18 [Mhz] sin
considerar tskew. Los dispositivos CPLD y FPGA tienen frecuencias de funcionamiento mucho
mayores.

11.7. Síntesis o diseño de máquinas secuenciales sincrónicas, a partir del diagrama


de estados.

El problema que deseamos resolver es obtener las redes combinacionales que programan los
flip-flops de una red secuencial, a partir del diagrama de estados, reducido y con asignación de
estados. De estas ecuaciones puede obtenerse el esquemático, o el programa verilog para la
implementación física.

11.7.1. Procedimiento de síntesis tabular.

A partir de la tabla de transiciones, con la ayuda de la tabla de excitaciones de los flip-flops, se


obtienen las (m+1) matrices de control de los flip-flops. Y mediante éstas, se determinan los
programas de los flip-flops. En el esquema de la Figura 11.16, se muestra la generación del
programa del flip-flop JK i-ésimo solamente.

Esquemáticamente:

Matriz de control Programas


x(k)
y(k) x
y
Ji f i ( y, x)
Ki gi ( y, x)
y(k+1)

Ji, Ki
y(k) y(k+1) JK

Figura 11.16. Esquema general de síntesis

Si se tienen (n+1) entradas y (m+1) flip-flops, los vectores booleanos de la entrada y el estado
quedan representados por:

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
x ( x0 , x1 ,..., xn )
y ( y0 , y1 ,..., ym )

En el esquema anterior se ilustra empleando flip-flops de tipo JK, se procede en forma similar si
los flip-flops son de otro tipo. Se eliminan las variables de próximo estado, obteniéndose las
matrices de programación.

Resumen de las tablas de excitaciones para diversos flip-flops.

Q(k) Q(k+1) D J K T S R
0 0 0 0 0 0
0 1 1 1 1 1 0
1 0 0 1 1 0 1
1 1 1 0 0 0

Figura 11.17. Tablas de excitaciones para diferentes flip-flops.

Luego, en el Capítulo 14, se verán los flip-flops SR, cuyas tablas se indican en las últimas dos
columnas de la Figura 11.17.

11.7.2. Procedimiento de síntesis analítico.

Se escriben las ecuaciones características de los flip-flops; y se escriben las ecuaciones de


próximos estados, a partir de la tabla de transiciones.

Por comparación de coeficientes se determinan las funciones Ji y Ki, si se emplean flip-flops de


este tipo. Lo que se efectúa es la eliminación de las variables de próximo estado.

11.8. Ejemplos de síntesis.

Ejemplo 11.8.1.

Para el detector de secuencia 110 cada vez que ésta se presente, se tiene:
1/0 1/0
0/0 1/0

START Estado 0 Estado 1


0/0

reset
0/1

Figura 11.18. Detector de secuencia 110.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 13
Con la siguiente asignación de estados, se obtiene la matriz de transiciones:

x
Estado Q1 Q0 Q1 Q0 0 1
Start 0 0 0 0 00/0 01/0
Estado 0 0 1 0 1 00/0 11/0
Estado 1 1 1 1 1 00/1 11/0
1 0 dd/d dd/d
Q1+Q0+/z
Figura 11.19. Asignación de estados y matriz de transiciones.

Notar la elección de condiciones superfluas para el estado 10, que no se emplea en el diseño. Se
escogió el estado de start como el 00, para simplificar el diseño de la señal reset; en este caso
basta activar la señal clear asincrónico del flip-flop que se emplee para lograr la función reset.

La elección de condiciones superfluas simplifican las redes combinacionales que efectúan los
programas de los flip-flops.
a) Procedimiento tabular empleando flip-flops Ds:
Usando la tabla de transiciones de flip-flops Ds, se logra:
x
Q1 Q0 0 1
0 0 00 01
0 1 00 11
1 1 00 11
1 0 dd dd
D1D0

Figura 11.20. Programas de flip-flops D

Con programas: D1 = Q0 x
D0 = x

Debe notarse que cuando se emplean flip-flops D, los programas de éstos pueden obtenerse
directamente de la matriz de transiciones, cambiando Q1+ por D1 y Q0+ por D0.
b) Método analítico empleando flip-flops Ds:
De la matriz de transiciones se tienen:
z = Q1 x'
Q0+ = x
Q1+ = Q0 x

De los flip-flops Ds:


Q1+ = D1
Q0+ = D0

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales

Comparando coeficientes se logra igual resultado que el anterior.


c) Procedimiento tabular empleando flip-flops JKs:
Empleando flip-flops JK, de la matriz de transiciones de la Figura 11.19, se obtienen:

x x
Q1 Q0 0 1 Q1 Q0 0 1
0 0 0 0 0 0 0 1
0 1 0 1 0 1 1 0
1 1 1 0 1 1 1 0
1 0 1 0
J1K1 J0K0
Figura 11.21. Programas de flip-flops JK

Leyendo los mapas, considerando las condiciones superfluas, resultan:


J1 = Q0 x; K1 = x'; J0 = x; K0 = x'

Notar que K1 también se podría haber expresado, como: K1 = x' +Q0' agrupando los ceros, o
bien: K1 = x’Q0 agrupando los unos; sin aprovechar completamente las condiciones superfluas.
d) Método analítico empleando flip-flops JKs:
De la matriz de transiciones de la Figura 11.19, y aplicando el teorema de expansión, para tener
presente a la derecha la variable correspondiente, que figura a la izquierda de cada ecuación, se
logra:
z = Q1 x'
Q1+ = Q0 x = Q0xQ1' + Q0xQ1 (se expande en Q1)
Q0+ = x = xQ0' + xQ0 (se expande en Q0)

De los flip-flops JKs, se tienen las siguientes ecuaciones:

Q1+ = J1Q1' +K1'Q1


Q0+ = J0Q0' +K0'Q0

Comparando los coeficientes, se obtienen:


J1 = Q0 x ; K1 = Q0' + x'; J0 = x; K0 = x'

Notar que el método analítico, en este caso, agrega el término Q0' que resulta superfluo.

Como se puede apreciar en el ejemplo anterior, el procedimiento tabular es capaz de generar


expresiones más reducidas que el procedimiento analítico. Esto se debe a que en este último la
reducción se efectúa empleando las ecuaciones características y no se pueden aprovechar las
condiciones superfluas que aparecen en las tablas de excitaciones de los flip-flops JKs.

En caso de diseñar empleando flip-flops JK y si la tabla de transiciones tiene condiciones


superfluas, debido a estados no empleados, conviene usar el método tabular.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 15

La matriz de transiciones de la Figura 11.20, puede plantearse como una tabla de verdad, entre
las entradas (estado presente y entradas) y las salidas (próximo estado y salidas), según se
muestra en la Figura 11.22.

Entradas Salidas
Q0 Q1 x Q1+ Q2+ z
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 0
0 1 1 1 1 0
1 0 0 d d d
1 0 1 d d d
1 1 0 1 0 1
1 1 1 1 1 0

Figura 11.22. Matriz de transiciones.

e) Descripción del diseño en Verilog.


Una vez realizado el diseño, pueden describirse las redes combinacionales mediante su
estructura de compuertas, empleando el comando assign; y los flip-flops con un proceso
activado por los cantos del reloj. Los nombres de los procesos se definen en la Figura 11.1.

// detector de secuencia 110 cada vez que ésta se presente.


module mealy110 (input clk, resetn, x, output z);
reg Q1, Q0;
wire D1, D0;
// Redes combinacionales de próximo estado y de salida. Proceso P1
assign D1 = Q0&x;
assign D0 = x;
assign z = Q1&(~x); //salida asincrónica
// Proceso registro. P2
always @(negedge resetn or posedge clk)
if (resetn == 0) begin Q1=0; Q0=0; end
else begin Q1<= D1; Q0 <= D0; end
endmodule

Si se desea eliminar la salida asincrónica z, característica de las máquinas de Mealy, suele


registrarse la salida en un flip-flop. Esto agrega un elemento de memoria a la red booleana.

// detector de secuencia 110 cada vez que ésta se presente. Salida registrada.
module mealy110 (input clk, resetn, x, output zs);
reg Q1, Q0, zs;
wire D1, D0;
// Redes combinacionales de próximo estado. P1

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales
assign D1 = Q0&x;
assign D0 = x;
// Proceso registro. P2. Salida sincronizada.
always @(negedge resetn or posedge clk)
if (resetn == 0) begin Q1=0; Q0=0; end
else begin Q1<= D1; Q0 <= D0; zs<=Q1&(~x); end
endmodule

Figura 11.22a. Salida asincrónica z, y salida sincrónica zs.

La Figura 11.22a, muestra la diferencia entre z y zs.

Ejemplo 11.8.2.

Determinar los programas de los flip-flops JK, para la siguiente matriz de transiciones.
AB
x 00 01 11 10
0 2 6 4
0 00 00 11 10
1 3 7 5
1 11 11 10 01

A+B+
Figura 11.23. Matriz de transiciones ejemplo 11.8.2.

Se tienen, de la matriz:
A+ = A'x + AB +Ax' = ( x )A' + (B + x') A
B+ = A'x + ABx' +B'x = A'xB' + A'xB + ABx' +B'x = (A'x + x) B' + (A'x + Ax')B
Se han factorizado las ecuaciones, en términos de Qi y Qi’ para cada uno de los flip-flops Qi.

De los flip-flops, se tienen:


A+ = JaA' +Ka'A
B+ = JbB' +Kb'B

Comparando coeficientes, de los dos conjuntos de ecuaciones anteriores, resultan:


Ja = x ; Ka = (B + x')' = B'x ;
Jb = A'x +x = x ; Kb = (A'x +Ax')' = A'x' + Ax

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 17
Ejemplo 11.8.3.

Diseñar máquina secuencial, que implemente la siguiente matriz de transiciones, empleando un


flip-flop D, para la variable A; y un JK para B.

AB
x 00 01 11 10
0 2 6 4
0 010 001 101 000
1 3 7 5
1 000 110 111 011

A+ B+ z

Figura 11.24. Matriz de transiciones ejemplo 11.8.3

Es una máquina de Mealy, ya que: z = Ax +B x' (la salida depende de la entrada)

Con flip-flop D para el estado A, se obtiene:


A+ = Da = AB + Bx (directamente del mapa)

Con flip-flop JK para la variable B, se logra:


B+ = JbB' +Kb'B ecuación del flip-flop JK.
Del mapa se tiene:
B+ = B x + Ax + A'B'x' = B x + ABx + AB'x +A'B'x' = (Ax+A'x') B' +(x + Ax) B
B+ = ( A' x) B' + xB
Comparando coeficientes, se logra:
Jb = A' x Kb = x'

Ejemplo 11.8.4.

Diseñar un flip-flop JK empleando compuertas y un flip-flop D.

Es preciso especificar el diagrama de estados o la matriz de transiciones de lo que se desea


diseñar; en este caso representaremos al flip-flop JK por su ecuación característica.

De la matriz de transiciones del flip-flop JK se tiene la siguiente ecuación:


Q+ = JQ' + K'Q

El programa del flip-flop D, resulta efectuando Q+=D:


D = JQ' + K'Q

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales

Q Q
J
D
K
Q'

reloj

Figura 11.25. JK basado en flip-flop D

Este diseño se emplea en dispositivos programables que no disponen en las macroceldas de flip-
flops JKs, pero que generalmente disponen de flip-flops Ds.

El diagrama de la Figura 11.26, muestra la implementación de un JK, mediante un dispositivo


lógico programable, que sólo tiene flip-flops de tipo D en su estructura interna:

Q
D
DQ

J Q.f
b
K reloj

Figura 11.26. Implementación de JK en CPLD

11.9 Resumen y observaciones.

Se analiza una máquina sencilla, mostrando y resumiendo una metodología de diseño.

11.9.1. Convertidor de cambio de nivel en un pulso.

Se desea convertir un canto de subida en un pulso de ancho fijo. Se trata de un detector


sincrónico de cantos de subida, que no dependa de cuánto tiempo permanezca alta la señal de
entrada. La salida genera un pulso simple de ancho igual al período del reloj, y que puede
alimentar con seguridad a un contador.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 19

n p

clk

Figura 11.27. De cantos de subida a pulsos.

Consideramos que a la señal n, que resulta de oprimir un botón, se le han suprimido los rebotes,
y que además está sincronizada, es decir el canto de subida se produce después de que ha
transcurrido un tiempo mayor que el thold de los flip-flops.
Los rebotes pueden filtrarse con un latch, y la sincronización se logra haciendo pasar la señal a
través de uno o dos flip-flops Ds alimentados con el mismo reloj.

11.9.2. Modelo de Moore.

Si la salida está asociada al estado, tendremos tres situaciones distinguibles. La primera cuando
se espera un canto de subida con salida cero, la segunda cuando llega un canto de subida con
salida uno, y la tercera cuando se espera un canto de bajada con salida cero.

Si agregamos las condiciones bajo las cuales se cambia de estado, podemos describir que:
Mientras la señal de nivel n, está baja, se permanece en el estado ECS, esperando un canto de
subida, con salida p=0. Cuando en n se presenta un canto de subida se pasa al estado CS, llegó
un canto de subida, con salida p=1.
Estando en CS, si la señal n baja a cero, vuelve a esperar otro canto de subida; es decir pasa al
estado ECS; pero si la señal permanece en nivel alto, pasa a un tercer estado ECB, en el cual se
espera un canto de bajada.
Estando en ECB con salida p=0, se permanece en ese estado mientras la señal n esté alta, y se
pasa a ECS cuando llega un canto de bajada en n.

La descripción anterior puede formalizarse con el siguiente diagrama de estados.

reset n=1 n=1

n=0 ECS CS ECB


n=1
p=0 p=1 p=0
n=0
n=0

Figura 11.28. Modelo de Moore, convertidor de cantos.

Con la siguiente codificación binaria de los estados:

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales
Estado Q1 Q0
ECS 0 0
CS 0 1
ECB 1 1

Figura 11.29. Asignación de estados.

Se logra la siguiente matriz de transiciones:

Estado Próximo
actual estado
Q1 Q0 n Q1+ Q0+ p
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 0 1
0 1 1 1 1 1
1 1 0 0 0 0
1 1 1 1 1 0
1 0 0 x x x
1 0 1 x x x

Figura 11.30. Matriz de transiciones.

De la cual pueden obtenerse las ecuaciones de la red combinacional:


Q1+=nQ0 Q0+=n p=Q1’Q0

Empleando flip-flops Ds, se tienen:


D1=Q1+, D0=Q0+

Con las cuales resulta el siguiente diseño:

D1=nQ0 D0=n p=Q1’Q0

reset’

Q1 Q0
D D p
n
Q1’

clk

Figura 11.31. Diseño de Moore.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 21
11.9.3. Modelo de Mealy.

Si la salida está asociada a los cambios de entrada podemos conceptualizar dos estados: uno en
el que se espera un canto de subida, y el otro cuando se espera el canto de bajada.

Estando en ECS: Mientras la entrada esté baja, la salida también debe estar baja y debe
permanecer en ECS; cuando en la entrada se presenta un canto de subida la salida debe activarse
a uno y cambiar al estado ECB.

Estando en ECB: Mientras la entrada esté alta, la salida también debe estar baja y permanecer
en ECB; cuando en la entrada se presenta un canto de bajada la salida debe permanecer baja y
cambiar al estado ECB.

Una descripción formal, de lo anterior se muestra en el siguiente diagrama de estados:


reset n=1/p=1

n=0/p=0 ECS ECB n=1/p=0

n=0/p=0

Figura 11.32. Diagrama de estados de Mealy.

Si denominamos con 0 al estado ECS y con 1 al estado ECB, se obtiene:

Q n Q+ p
0 0 0 0
0 1 1 1
1 0 0 0
1 1 1 0

Figura 11.33. Matriz de transiciones de Mealy.

De la matriz de transiciones, se obtiene:


Q+=n, p=Q’n

Empleando un flip-flop D, se tiene: D= Q+

Con lo cual se obtiene el siguiente diseño:

D=n, p=Q’n

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

reset’

Q
n D p
Q’

clk

Figura 11.34. Diseño de Mealy.

11.9.4. Análisis de transiciones.

a) Estado inicial. Reset.


En el diseño de la Figura 11.31, se lleva al estado inicial, mediante un pulso asincrónico de
reset, el cual se aplica a ambos flip-flops, ya que el estado inicial es Q1=0 y Q0=0.

En un circuito físico, cuando se aplica un canto de bajada a la señal reset’, las salidas de los
flop-flops van a cero, llevando la máquina al estado inicial.
reset’

clk
tr
Q0
Q1
p
n

Figura 11.35. Activación de señal reset.

La salida, en el caso de Moore, tomará el valor correspondiente al estado inicial. Las entradas
son ignoradas hasta el primer canto del reloj, luego que se levante la señal de reset, lo cual se
indica con el instante tr, en la Figura 11.35. Se ilustra con una discontinuidad el tiempo que
dura la señal reset en nivel bajo, mostrando que esta situación puede durar varios períodos del
reloj.
En el instante tr, se muestrean las entradas y de acuerdo a éstas se producen los cambios de
estado. En la Figura 11.35 se asumió un nivel bajo de la entrada n, de este modo la máquina
permanece en estado inicial, esperando un canto de subida.

En un modelo de Mealy, la situación es similar para los estados de los flip-flops, pero la salida
dependerá de la entrada, mientras la señal de reset esté baja.

En caso de señales sincrónicas, la situación es similar, salvo que los cambios en los flip-flops se
producen en el siguiente pulso del reloj después de la activación del reset.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 23

En simulación, deben generarse un pulso de reset, para que los flip-flops y las salidas tomen
valores. En caso de no hacerlo, puede que los flip-flops tomen valores desconocidos y no se
generen las secuencias que se desea simular. En un circuito físico, los flip-flops siempre estarán
en algún valor, después de aplicar la polarización.
b) Modelo de Moore.
Para un canto de subida en n, que cumpla con los requerimientos de hold, se tienen:
Q0 cambia un tiempo de propagación de flip-flop, después del canto de subida del reloj.
La salida p, cambia un tiempo de propagación de una compuerta AND, después de cambios en
Q1 o Q0.
El cambio de p se produce en el primer canto del reloj en el cual se tenga la entrada n en alto.

clk

Q0
Q1

Figura 11.36. Transiciones modelo de Moore.

c) Modelo de Mealy.
En el modelo de Mealy, la salida cambia cuando cambia la entrada, y suele producirse un ciclo
antes que en el modelo de Moore.
El cambio de estado se produce, un tiempo de propagación de flip-flop, después del canto de
subida del reloj.
n

clk

Q
p

Figura 11.37. Transiciones modelo de Mealy.

En el modelo de Mealy suelen requerirse menos flip-flops, y genera la salida un tiempo antes
que en modelo de Moore. Sin embargo la salida no es sincrónica con el reloj.
d) Modelo de Mealy, con salida registrada.
Para resolver esta dificultad suele sincronizarse la salida de la máquina de Mealy, registrando la
salida en un flip-flop adicional.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales

reset’
ps
Q Q
n D p
Q’ D Q’

clk

Figura 11.38. Diseño Mealy con salida sincrónica.

Lo cual retrasa la activación de la salida ps, pero la deja sincrónica.

clk

Q
p
ps

Figura 11.39. Transiciones Mealy con salida sincrónica.

e) Modelo de Moore, con salida registrada.


En la Figura 11.31, la salida p es generada a través de un circuito combinacional, que es
alimentado por las salidas de los flip-flops. Debido a que los tiempos de propagación desde el
canto hasta la salida de los flip-flops pueden tener pequeñas variaciones, el diseño presentará
glitches o perturbaciones, debido a las carreras de las entradas al circuito combinacional.
Se denomina glitch (del alemán glitschen, con el significado de deslizar) a un pulso de corta
duración, que generalmente es el resultado de una falla en el diseño. También se denominan
spikes (del inglés, punta delgada), pero este término es más adecuado a la generación de
pequeños pulsos no deseados, debidos a interferencias.

La salida puede generarse con las condiciones del estado próximo, y empleando un flip-flop
para sincronizar la salida.
Antes teníamos: Q1+=nQ0 Q0+=n p=Q1’Q0

Entonces se genera p+ según:

p+=(Q1+)’(Q0+) = (nQ0)’n = (n’+Q0’)n= nQ0’

El diseño se representa en la Figura 11.40.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 25

reset’
ps
Q1 Q0 Q
p+
n D D D
Q1’ Q0’ Q’

clk

Figura 11.40. Modelo de Moore. Salida registrada.

La salida ps, se produce en los mismos tiempos que en el modelo de Moore de la Figura 11.31,
pero se requiere un flip-flop adicional. Debe notarse que ps será sincrónica y no tendrá
perturbaciones.

En la Figura 11.41, se muestran las señales p+ y ps. Se ha dejado la señal p, del diseño anterior,
para comparar los casos.
n

clk

Q0
Q1

p
p+

ps

Figura 11.41. Formas de ondas modelo de Moore. Salida registrada.

Problemas resueltos.

Problema 11.1.

Generar la señal s0 a partir de la señal CLK.

a) Determinar la matriz de transiciones.


b) Determinar las ecuaciones minimizadas de próximo estado.
c) Determinar los programas de los flip-flops, asumiendo que Q0 y Q1 son de tipo D,
y que Q2 y Q3 son de tipo JK.
d) Determinar la ecuación minimizada de la salida s0.

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales

CLK
Q0
Q1
Q2
Q3
s0
Período

0 1 2 3 4 5 6 7 8 9 10 0

Figura P11.1. Formas de ondas Problema 11.1

Solución.
a) Las señales Q3, Q2, Q1 y Q0 corresponden a un contador módulo 11. Con Q3 el bit
más significativo.
Q3Q2
Q1Q0 00 01 11 10
0 4 12 8
00 0001 0101 dddd 1001

1 5 13 9
01 0010 0110 dddd 1010

3 7 15 11
11 0100 1000 dddd dddd

2 6 14 10
10 0011 0111 dddd 0000

Q3+ Q2+ Q1+ Q0+

Figura P11.2. Matriz de transiciones Problema 11.1.

b) Q3+ = (Q2 Q1 Q0) + (Q3 Q1’)


Q2+ = (Q2’ Q1 Q0) + (Q2 Q1’) + (Q2 Q0’)
Q1+ = (Q3’ Q1 Q0’) + (Q1’ Q0)
Q0+ = (Q1’Q0’) + (Q3’Q0’)
Se han agrupado considerando las condiciones superfluas.

Arreglando las ecuaciones de próximo estado se obtiene para cada tipo de flip-flop:
c) Q3 + = (Q2 Q1 Q0) + (Q3 Q1’) = Q3(Q2Q1Q0 + Q1’) + Q3’Q2Q1Q0
Q3+ = Q3’ J3 + Q3 K3’
Comparando coeficientes, se obtiene:
J3 = Q2Q1Q0 K3 = (Q2Q1Q0 + Q1’) ’ = Q1 (Q2’ +Q1’ +Q0’) = Q1Q2’ +Q1Q0’

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 27

Q2+ = (Q1 Q2’Q0) + (Q1’ Q2) + (Q2 Q0’) = Q2’(Q1Q0) +Q2(Q1’ +Q0’)
Q2+ = Q2’ J2 +Q2 K2’

Comparando coeficientes, se obtiene:


J2 = Q1Q0 K2 = (Q1’ +Q0’)’ = Q1Q0
Si el flip-flop 2 hubiese sido de tipo T, se tendría: T2 = Q1Q0

Q1+ = D1 D1 = (Q3’ Q1 Q0’) + (Q1’ Q0)


Q0+ = D0 D0 = (Q1’Q0’) + (Q3’Q0’)

d) La salida es alta en los tiempos 2, 8 y 9. Se obtiene el mapa:

Q3Q2
Q1Q0 00 01 11 10
0 4 12 8
00 0 0 d 1
1 5 13 9
01 0 0 d 1
3 7 15 11
11 0 0 d d
2 6 14 10
10 1 0 d 0

s0
Figura P11.3. Mapa de la salida s0, Problema 11.1

Empleando las condiciones superfluas en la minimización, se logra:


s0 = (Q3’Q2’Q1Q0’) + (Q3 Q1’)

Problema 11.2.

Se tiene el siguiente esquemático:

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales

V3
TP1 5V

CP1
U2A
A
S U4A
U3A J Q
TP2 TP3
CP _
DS1 K Q
R
Data
Seq U3C
z

CP1 x B U4B
U3B S
J Q
CP _
K Q
R
Reset
0V

Figura P11.4. Esquemático Problema 11.2.

a) Obtener las ecuaciones de entradas de los flip-flops.


b) Obtener la matrices de programación de cada flip-flop
c) Obtener la matriz de transiciones.
d) Obtener el diagrama de estados. Usar la asignación:

Estado AB
0 00
1 01
2 10
3 11

e) Qué realiza la máquina secuencial.


f) Determinar la secuencia de salida para la siguiente secuencia de entrada:
0100110011100101 con estado inicial A=0 y B=0.
Solución:
a) Ecuaciones de entrada de los flip-flops:
JA x KA x B
JB x KB x A z Ax B ABx (Mealy)

b) Matrices de programación:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 29

x x
AB 0 1 AB 0 1
00 11 00 00 00 11
01 11 01 01 00 11
11 11 01 11 01 11
10 11 00 10 01 11
Ja, Ka Jb, Kb

Figura P11.5. Matrices de programación Problema 11.2.

c) Tabla característica y Matriz de transiciones:

x
J K Q(k+1) AB 0 1
0 0 Q(k ) 00 10/0 01/0
0 1 0 01 11/0 00/1
1 0 1 11 00/0 00/0
1 1 Q(k ) 10 00/1 11/0
A(k+1) B(k+1)/z

Figura P11.6. Matriz de transiciones Problema 11.2.

Usando las asignaciones de estados, se obtiene:

x
AB 0 1
0 2/0 1/0
1 3/0 0/1
3 0/0 0/0
2 0/1 3/0
Próximo Estado/z

Figura P11.7. Matriz de transiciones Problema 11.2.

d) Diagrama de estados:

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales

0/1 0 1/1

0/0 1/0

2 /0 1

1/0 0/0

Figura P11.8. Diagrama de estados Problema 11.2.

e) Funcionamiento:
Salida z = 1 cuando llegan secuencias: 00 ó 11 a partir de estado inicial.
Salida z = 0 cuando llegan las secuencias: 010, 011, 100, 101 a partir del estado inicial.
Estando en estado 0, si llegan las secuencias 01 y 10 se descarta el bit siguiente.
f) Secuencia de salida:
x = 0100110011100101
z = 0000000101000000

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 31

Ejercicios propuestos.

Ejercicio 11.1

Rediseñar el diagrama de estados de la Figura 11.6 considerando que los estados inalcanzables
(2, 3, 5) son superfluos. Realizar el diseño con flip-flops JKs y comparar el costo de las nuevas
redes combinacionales.
x
Estado actual 0 1
0 4/0 1/0
1 6/0 7/0
3 / /
2 / /
6 0/0 0/0
7 0/0 0/1
5 / /
4 6/0 6/0
Estado próximo/z

Figura E11.1. Matriz de transiciones Ejercicio 11.1.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales

Índice general.

CAPÍTULO 11 ............................................................................................................................................1
ANÁLISIS Y DISEÑO DE MÁQUINAS SECUENCIALES SINCRÓNICAS .....................................1
11.1. ANÁLISIS ..........................................................................................................................................1
Programas de los flip-flops. Matrices de programación .....................................................................2
11.2. MÉTODO DE ANÁLISIS TABULAR.......................................................................................................2
11.3. MÉTODO ANALÍTICO.........................................................................................................................3
11.4. EJEMPLO MÉTODO TABULAR ............................................................................................................3
11.5. EJEMPLOS DEL MÉTODO ANALÍTICO. ................................................................................................7
11.6. FRECUENCIA MÁXIMA DE OPERACIÓN DEL RELOJ. ............................................................................9
11.7. SÍNTESIS O DISEÑO DE MÁQUINAS SECUENCIALES SINCRÓNICAS, A PARTIR DEL DIAGRAMA DE
ESTADOS. ................................................................................................................................................ 11
11.7.1. PROCEDIMIENTO DE SÍNTESIS TABULAR. .....................................................................................11
11.7.2. PROCEDIMIENTO DE SÍNTESIS ANALÍTICO. ...................................................................................12
11.8. EJEMPLOS DE SÍNTESIS. ..................................................................................................................12
Ejemplo 11.8.1. ..................................................................................................................................12
a) Procedimiento tabular empleando flip-flops Ds: ........................................................................................ 13
b) Método analítico empleando flip-flops Ds:................................................................................................ 13
c) Procedimiento tabular empleando flip-flops JKs: ...................................................................................... 14
d) Método analítico empleando flip-flops JKs: .............................................................................................. 14
e) Descripción del diseño en Verilog. ............................................................................................................ 15
Ejemplo 11.8.2. ..................................................................................................................................16
Ejemplo 11.8.3. ..................................................................................................................................17
Ejemplo 11.8.4. ..................................................................................................................................17
11.9 RESUMEN Y OBSERVACIONES. .........................................................................................................18
11.9.1. Convertidor de cambio de nivel en un pulso. .........................................................................18
11.9.2. Modelo de Moore. ..................................................................................................................19
11.9.3. Modelo de Mealy. ...................................................................................................................21
11.9.4. Análisis de transiciones..........................................................................................................22
a) Estado inicial. Reset. .................................................................................................................................. 22
b) Modelo de Moore. ..................................................................................................................................... 23
c) Modelo de Mealy. ...................................................................................................................................... 23
d) Modelo de Mealy, con salida registrada. ................................................................................................... 23
e) Modelo de Moore, con salida registrada. ................................................................................................... 24
PROBLEMAS RESUELTOS. ........................................................................................................................25
Problema 11.1. ...................................................................................................................................25
Problema 11.2. ...................................................................................................................................27
EJERCICIOS PROPUESTOS. ........................................................................................................................31
Ejercicio 11.1 .....................................................................................................................................31
ÍNDICE GENERAL. ....................................................................................................................................32
ÍNDICE DE FIGURAS .................................................................................................................................33

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 11. Análisis y Diseño de máquinas secuenciales sincrónicas 33

Índice de figuras

Figura 11.1. Esquema de máquina secuencial. .............................................................................. 1


Figura 11.2. Esquema análisis tabular ........................................................................................... 2
Figura 11.3. Ejemplo de máquina secuencial empleando flip-flops JK ........................................ 3
Figura 11.4. Matrices de Programación ........................................................................................ 4
Figura 11.5. Matriz de transiciones del Ejemplo 11.4. .................................................................. 5
Figura 11.6. Diagrama de estados ejemplo 11.3 ........................................................................... 6
Figura 11.7. Diagrama de estados reducido. ................................................................................. 6
Figura 11.8. Matriz de transiciones, empleando método analítico. ............................................... 7
Figura 11.9. Entradas y salidas de máquina secuencial................................................................. 8
Figura 11.10. Tabla de transiciones ejemplo 11.5.b ...................................................................... 8
Figura 11.11. Ecuaciones de salidas. ............................................................................................. 9
Figura 11.12. Asignación de estados simbólicos........................................................................... 9
Figura 11.13. Diagrama de estados de Mealy ............................................................................... 9
Figura 11.14. Definición de tiempos de propagación.................................................................. 10
Figura 11.15. Ciclos del reloj ...................................................................................................... 10
Figura 11.16. Esquema general de síntesis.................................................................................. 11
Figura 11.17. Tablas de excitaciones para diferentes flip-flops. ................................................. 12
Figura 11.18. Detector de secuencia 110..................................................................................... 12
Figura 11.19. Asignación de estados y matriz de transiciones. ................................................... 13
Figura 11.20. Programas de flip-flops D ..................................................................................... 13
Figura 11.21. Programas de flip-flops JK ................................................................................... 14
Figura 11.22. Matriz de transiciones. .......................................................................................... 15
Figura 11.22a. Salida asincrónica z, y salida sincrónica zs. ........................................................ 16
Figura 11.23. Matriz de transiciones ejemplo 11.8.2. ................................................................. 16
Figura 11.24. Matriz de transiciones ejemplo 11.8.3 .................................................................. 17
Figura 11.25. JK basado en flip-flop D ....................................................................................... 18
Figura 11.26. Implementación de JK en CPLD .......................................................................... 18
Figura 11.27. De cantos de subida a pulsos................................................................................. 19
Figura 11.28. Modelo de Moore, convertidor de cantos. ............................................................ 19
Figura 11.29. Asignación de estados. .......................................................................................... 20
Figura 11.30. Matriz de transiciones. .......................................................................................... 20
Figura 11.31. Diseño de Moore. .................................................................................................. 20
Figura 11.32. Diagrama de estados de Mealy. ............................................................................ 21
Figura 11.33. Matriz de transiciones de Mealy. .......................................................................... 21
Figura 11.34. Diseño de Mealy. .................................................................................................. 22
Figura 11.35. Activación de señal reset....................................................................................... 22
Figura 11.36. Transiciones modelo de Moore. ............................................................................ 23
Figura 11.37. Transiciones modelo de Mealy. ............................................................................ 23
Figura 11.38. Diseño Mealy con salida sincrónica...................................................................... 24
Figura 11.39. Transiciones Mealy con salida sincrónica. ........................................................... 24
Figura 11.40. Modelo de Moore. Salida registrada. .................................................................... 25
Figura 11.41. Formas de ondas modelo de Moore. Salida registrada. ........................................ 25
Figura P11.1. Formas de ondas Problema 11.1 ........................................................................... 26

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales
Figura P11.2. Matriz de transiciones Problema 11.1. .................................................................. 26
Figura P11.3. Mapa de la salida s0, Problema 11.1 ..................................................................... 27
Figura P11.4. Esquemático Problema 11.2.................................................................................. 28
Figura P11.5. Matrices de programación Problema 11.2. ........................................................... 29
Figura P11.6. Matriz de transiciones Problema 11.2. .................................................................. 29
Figura P11.7. Matriz de transiciones Problema 11.2. .................................................................. 29
Figura P11.8. Diagrama de estados Problema 11.2. .................................................................... 30
Figura E11.1. Matriz de transiciones Ejercicio 11.1. .................................................................. 31

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 12

Equivalencia y Asignación de Estados.

12.1. Estados equivalentes.

Dos máquinas secuenciales son equivalentes si la relación entre la entrada y la salida son
idénticas para todas las posibles secuencias de entrada.

Un diseño en particular puede ser representado por varios diagramas de estado equivalentes. Los
costos de implementación pueden ser diferentes; en general los diagramas que tengan más estados
requieren más elementos de memoria y por lo tanto también necesitan mas redes combinacionales
para determinar el próximo estado.

Dos estados son equivalentes si no puede distinguirse entre ellos. Esto implica que si se aplica
cualquier secuencia de entrada, a partir de esos estados, se observan iguales secuencias de salida.
Puede determinarse, por inspección, que dos estados son equivalentes si tienen iguales renglones
en la matriz de transiciones. Es decir, para iguales entradas van a iguales estados próximos o
futuros, con salidas iguales.
Uno de estos estados puede removerse sin alterar la conducta de la máquina. Esto se logra
modificando la tabla de modo que no se invoque el estado eliminado sino a su equivalente.

La reducción de estados puede disminuir el número de flip-flops necesarios y a la vez puede


introducir más estado superfluos, lo cual simplifica el diseño combinacional para determinar el
próximo estado. Una lógica más simple implica, en general, menor complejidad de conexiones y
menores tiempos de propagación.

Veremos algunos algoritmos para determinar estados equivalentes cuando la matriz de


transiciones está completamente especificada.

12.2 Método de Reducción de Estados por Inspección.

Ejemplo: Se tiene la siguiente matriz de transiciones:

Estado/Entrada 0 1
A B/0 C/1
B C/0 A/1
C D/1 B/0
D C/0 A/1

Figura 12.1. Matriz de transiciones

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Se observa que los renglones asociados a B y D son iguales. Iguales estados próximos e iguales
salidas. Por lo tanto B y D son equivalentes. Si se considera a D redundante se tendrá:

Estado/Entrada 0 1
A B/0 C/1
B C/0 A/1
C B/1 B/0

Figura 12.2. Matriz de transiciones reducida.

Donde se elimina el renglón asociado al estado D y se reemplaza la ocurrencia de D por B.

El método sólo puede aplicarse a casos sencillos.

12.3. Reducción de estados en máquinas completamente especificadas.

12.3.1. Método de Reducción de Moore. Método de las Particiones.

Se aplican secuencias de entrada de diverso largo.


Se irá aplicando el método al ejemplo propuesto en el método anterior.

Se define una partición o conjunto de estados equivalentes P0, formada por todos los estados del
diagrama. Esto refleja la ignorancia del próximo estado cuando aún no se ha aplicado una entrada.
Se tiene entonces:
P0 = {A, B, C, D}

Se agrupan los estados con igual salida para iguales entradas:


Se tiene que A, B y D para entrada 0 y 1, tienen salida 0 y 1 respectivamente.
Se tiene que C para entrada 0 y 1, tiene salida 1 y 0 respectivamente. La formación de P1 tiene
que ver con las salidas.

Entonces se forma la partición P1, según:


P1 = {A, B, D}, { C }

Las partes de P1 tienen igual salida para una secuencia de largo 1. Es decir, si se aplica cualquier
secuencia de largo 1 (hay dos) los estados de las partes no pueden distinguirse. Se dice que son 1-
equivalentes.

Luego para cada parte se definen los sucesores 0 y 1, que son los estados que siguen para entrada
0 y 1 respectivamente.
En el ejemplo:
Sucesores 0 de (ABD) son (BCC)
Sucesores 1 de (ABD) son (CAA).

Si los sucesores de un grupo no pertenecen a un grupo de equivalencia previo, debe efectuarse


una partición que deje sucesores en grupos de equivalencia. En el ejemplo debe partirse {A, B,
D}, ya que el sucesor 0 de A, y los sucesores 0 de B y D, no pertenecen al mismo grupo de

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 3
equivalencia en P1. Lo mismo puede observarse en los sucesores 1 de A y los sucesores 1 de B y
D.

Entonces A no puede ser 2-equivalente con B y D, se tiene:


P2 = {A}, {B, D}, { C }

Ahora: sucesores 0 de (BD) son (CC) y sucesores 1 de (BD) son (AA). En ambos casos los
sucesores pertenecen a una de las clases anteriores.
Los estados sucesores 0 y 1, pertenecen a un mismo grupo en P2, por lo tanto: P3 = P2

Como no pueden generarse nuevas particiones se tendrá que B y D son equivalentes.


La razón por la cual P2 está formado por conjuntos de estados equivalentes, es que partiendo de
cualquier estado, de un conjunto determinado y para cualquier entrada de largo 2, se llega siempre
a un mismo conjunto. Y como los estados de un mismo conjunto generan igual salida para igual
entrada, se deduce que dichos estados son equivalentes.
Ejemplo 12.1
El siguiente ejemplo, ilustra con más detalle el método de reducción.

La siguiente tabla muestra la salida z0 para una entrada x0 de una secuencia de un bit, partiendo
de cada uno de los estados. Por ejemplo, estando en C, si llega un 0, la salida es 1.

1/1

0/0
A B
x0 A B C D
0 0 0 1 0
1/1 0/0 1/0 1 1 1 0 1
1/1
z0

0/1
D C

0/0

Figura 12.3. Diagrama de estados Ejemplo 12.1

Las secuencia de salida, respecto a la de entrada, para los estados A, B y D, son iguales; no así
para el estado C. Lo cual muestra que C no puede ser equivalente con A, B o D. Esto justifica la
formación de la partición P1. Entonces C no es 1-equivalente con A, B o D.

La siguiente tabla muestra la secuencia de salida (z0z1) para una entrada de una secuencia de dos
bits (x0x1), partiendo de cada uno de los estados. Por ejemplo, estando inicialmente en A, si llega
la secuencia de entrada 10, en la salida se tiene la secuencia 11, y se recorren los estados C y D.

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

x0x1 A B C D
00 00 01 10 01
01 01 00 11 00
10 11 10 00 10
11 10 11 01 11
z0z1

Figura 12.4. Secuencia de salida para entrada de largo dos.

Se advierte que no es necesario plantear la columna a partir del estado C, ya que como ilustraba
la tabla anterior el primer bit será diferente. Se observa que las columnas asociadas a los estados
B y D son idénticas y diferentes de las secuencias de la columna A. Por lo tanto A, no puede ser
equivalente a los estados B y D. Esto implica la partición P2. El estado A no es 2-equivalente con
B o D.

La siguiente tabla muestra la secuencia de salida (z0z1z2) para una entrada de una secuencia de
tres bits (x0x1x2), partiendo de los estados B y D solamente. Por ejemplo, estando inicialmente en
B, si llega la secuencia de entrada 110, en la salida se tiene la secuencia 111, y se recorren la
secuencia de estados ACD. Esto implica la partición P3.

x0x1x2 B D
000 010 010
010 000 000
100 100 100
110 111 111
001 011 011
011 001 001
101 101 101
111 110 110
z0z1z2

Figura 12.5. Secuencia de salida para entrada de largo tres.

Puede decirse que los estados B y D son 3-equivalentes, ya que no puede distinguirse entre ellos
para secuencias de largo tres de entrada, debido a que tienen iguales secuencias de salida. El
procedimiento de Moore permite encontrar los estados n-equivalentes, y cuando no pueden
formarse nuevas particiones determina los estados equivalentes.
Algoritmo de las particiones de Moore.
1. Colocar todos los estados en un conjunto.
2. La partición inicial (P1) está basada en la conducta de la salida.
3. Las particiones sucesivas están basadas en las transiciones al próximo estado.
4. Se repite paso (3) hasta que no se produzcan nuevas particiones.
Los estados que queden en un mismo conjunto son equivalentes.
Puede demostrarse que el algoritmo es de costo polinomial.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 5
Ejemplo 12.2.
Se tiene la siguiente matriz de transiciones:

Estado/Entrada 0 1
A C/1 B/0
B C/1 E/0
C B/1 E/0
D D/0 B/1
E E/0 A/1

Figura 12.6. Matriz de transiciones ejemplo 12.2.

Por inspección, puede verse que B y C son equivalentes.

Por particiones:
Se tienen P0 = {A , B, C, D, E} y P1 = {A, B, C }, {D, E }
Ya que A, B y C tienen salidas 1 y 0 para entrada 0 y 1 respectivamente. Y D y E tienen salidas 0
y 1 para entradas 0 y 1 respectivamente.

Sucesores 0 de (ABC) son (CCB)


Sucesores 1 de (ABC) son (BEE), implica partición.
Sucesores 0 de (DE) son (DE)
Sucesores 1 de (DE) son (BA).
Entonces: P2 = {A } , {B, C } , {D, E }

Sucesores 0 de (BC) son (CB)


Sucesores 1 de (BC) son (EE)
Sucesores 0 de (DE) son (DE)
Sucesores 1 de (DE) son (BA). Implica partición.
Entonces: P3 = { A }, {B, C} , {D}, {E}

Sucesores 0 de (BC) son (CB)


Sucesores 1 de (BC) son (EE).
Entonces: P4 = P3, y se tiene que B y C son equivalentes.

El método puede optimizarse, observando que algunos estados son equivalentes, luego de algunas
iteraciones. De este modo, no se requiere seguir obteniendo los sucesores de dichos estados.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales

Ejemplo 12.3.
Estado/Entrada 0 1
A E/0 D/1
B F/0 D/0
C E/0 B/1 implica partir en:
D F/0 B/0 {BD} y {F}
E C/0 F/1
F B/0 C/0

Figura 12.7. Matriz de transiciones ejemplo 12.3.

Se procede a determinar la secuencia de particiones:


P1 = {ACE} {BDF}
S0(ACE) =(EEC) S1(ACE) =(DBF) S0(BDF)= (FFB) S1(BDF)= (DBC)
P2 = {ACE} {BD} {F}
S0(ACE) =(EEC) S1(ACE) =(DBF) S0(BD )= (FF ) S1(BD )= (DB)
P3 = {AC} {E} {BD} {F}
S0(AC) =(EE ) S1(AC ) =(DB ) S0(BD )= (FF ) S1(BD )= (DB)
P4 = P3
Entonces A y C son equivalentes. B y D son equivalentes.

El método por inspección no permite ver estas equivalencias con sencillez.


Nótese que:
Ha medida que se reducen los conjuntos de equivalencia, también lo hacen los sucesores.
Cuando un estado queda aislado, no se requieren plantear sus sucesores.
Cuando los sucesores 0 y 1 son iguales a un mismo estado, el grupo completo es equivalente.
Ejemplo 12.4.
Reducir el siguiente diagrama de estados de una máquina, que analiza una secuencia de 4 bits de
la entrada, y que genera salida uno si el código no es BCD. La salida debe ser cero en el resto de
los casos. Ver Verificador BCD en 9.6.1.

Estado/Entrada 0 1
a b/0 c/0
b d/0 e/0
c f/0 g/0
d h/0 i/0
e j/0 k/0
f l/0 m/0
g n/0 o/0
h a/0 a/0
i a/0 a/0
j a/0 a/0
k a/0 a/0
l a/0 a/0

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 7
m a/1 a/1
n a/1 a/1
o a/1 a/1

Figura 12.8. Matriz de transiciones ejemplo 12.4.

La partición P1 resulta de observar las diferentes secuencias de salida:


P1 ={a,b,c,d,e,f,g,h,i,j,k,l} {m,n,o}
S0(abcdefghijkl)=(bdfhjlnaaaaa) S1(abcdefghijkl)=(cegikmoaaaaa)

De S0(abcdefghijkl) f no puede estar en la primera partición; y de S1 f y g no pueden estar en el


mismo grupo.
S0(mno)=(aaa) S1(mno)=(aaa) Ya en este paso m, n y o son equivalentes.

Entonces se logra P2:


P2 ={a,b,c,d,e,h,i,j,k,l} {f} {g} {m,n,o}
S0(abcdehijkl)=(bdfhjaaaaa) S1(abcdehijkl)=(cegikaaaaa)

S0(mno)=(aaa) S1(mno)=(aaa) Estos sucesores no requieren considerarse nuevamente.


Debe separarse c.

P3 ={a,b,d,e,h,i,j,k,l}{c} {f} {g} {m,n,o}


S0(abdehijkl)=(bdhjaaaaa) S1(abdehijkl)=(ceikaaaaa)
Debe separarse a.

P4 ={a}{b,d,e,h,i,j,k,l}{c} {f} {g} {m,n,o}


S0(bdehijkl)=(dhjaaaaa) S1(bdehijkl)=(eikaaaaa)
Debe separarse al grupo: h, i, j, k, l

P5 ={a}{b,d,e}{h,i,j,k,l}{c} {f} {g} {m,n,o}


S0(bde)=(dhj) S1(bde)=(eik)
S0(hijkl)=(aaaaa) S1(hijkl)=(aaaaa) En este paso se determina que h,i,j,k y l son equivalentes.
Debe separarse b:

P6 ={a}{b}{d,e}{h,i,j,k,l}{c} {f} {g} {m,n,o}


S0(de)=(hj) S1(de)=(ik)
S0(hijkl)=(aaaaa) S1(hijkl)=(aaaaa)
No hay nuevas particiones que puedan generarse.
P6 = P7

Entonces el estado e es redundante. i,j,k,l se reemplazan por h; también n y o por m.

Queda el siguiente diagrama reducido:

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales

Estado/Entrada 0 1
a b/0 c/0
b d/0 d/0
c f/0 g/0
d h/0 h/0 a
f h/0 m/0 1/0
0/
g m/0 m/0 0
h a/0 a/0 b c 1/0
m a/1 a/1 0/0
/0
d f g
1/0
c
/0
/0
/0 /0
0/0
h m
h
/0 /1

Figura 12.9. Matriz de transiciones reducida y diagrama de estados Ejemplo 12.4.

12.3.2. Método del diagrama de implicación.

Lo veremos a través de un ejemplo.

Determinar estados equivalentes para la siguiente máquina secuencial completamente


especificada.
Entradas x1 x0 Salida
Estado presente 00 01 10 11 z
S0 S0 S1 S2 S3 1
S1 S0 S3 S1 S4 0
S2 S1 S3 S2 S4 1
S3 S1 S0 S4 S5 0
S4 S0 S1 S2 S5 1
S5 S1 S4 S0 S5 0
Próximo estado

Figura 12.9a. Matriz de transiciones.

Se confecciona un diagrama triangular que tenga tantas celdas como posibles pares de estados.
Luego se marcan con diagonales cruzadas las casillas de estados que no puedan ser equivalentes
debido a que tienen salidas diferentes. Observando la tabla anterior, sólo podrían ser equivalentes
los pares: (S0, S2), (S0, S4), (S2, S4) por tener salida 1; y los pares (S1, S3), (S1, S5), (S3, S5)
por tener salida 0.

A las casillas que pueden representar estados equivalentes, por tener iguales salidas, se les
colocan los pares de estados que deben ser equivalentes; por ejemplo: S0 y S2 son equivalentes si

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 9
los siguientes pares son equivalentes: (S0, S1), (S1, S3), (S2, S2) (S3, S4). Esto puede verificarse
observando el primer y tercer renglón, para las diferentes combinaciones de las entradas. Nótese
que se podrían no escribir los pares formados por un solo estado.

Luego en las celdas que tienen pares marcados, se descartan aquellas cuyos pares ya estén
marcados como no equivalentes. Por ejemplo, la celda de la primera columna y segundo renglón
se descarta por tener como condición el par (S0, S1), que ya se conoce que no pueden ser
equivalentes.

Observando las casillas no marcadas se concluye que los pares (S3, S5) y (S0, S4) deben ser
estados equivalentes.

S1

S0,S1
S1,S3
S2 S2,S2
S3,S4
S0,S1
S3,S0
S3 S1,S4
S4,S5
S0,S0 S1,S0
S1,S1 S3,S1
S4
S2,S2 S2,S2
S3,S5 S4,S5
S0,S1 S1,S1
S3,S4 S0,S4
S5 S1,S0 S4,S0
S4,S5 S5,S5

S0 S1 S2 S3 S4

Figura 12.9b. Tabla de implicaciones.

La matriz reducida, eliminando los estados equivalentes, resulta:

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales

Entradas x1 x0 Salida
Estado presente 00 01 10 11 z
S0 S0 S1 S2 S3 1
S1 S0 S3 S1 S0 0
S2 S1 S3 S2 S0 1
S3 S1 S0 S0 S3 0
Próximo estado

Figura 12.9c. Matriz reducida.

12.3.3. Minimización de estados en máquinas incompletamente especificadas.

Cuando la máquina está completamente especificada la equivalencia de estados es una relación


transitiva: Si a es equivalente con b, y b es equivalente con c, entonces a y c son también
equivalentes. Esto refleja que la equivalencia de estados es una relación de equivalencia que
particiona los estados en clases de equivalencia disjuntas.

Pero esto no se cumple si la matriz de transiciones contiene condiciones superfluas.

Estado Salidas
E0 -0
E1 1-
E2 -1

Figura 12.9d. Salidas con condiciones superfluas.

En la tabla anterior el estado E1 es compatible con E0 y E2, pero E0 no es compatible con E2.

En este caso no se dispone de algoritmos, de complejidad polinomial, que determinen las mejores
agrupaciones de estados en conjuntos equivalentes, los cuales permiten reducir el número de
estados. Existen numerosos programas CAD que realizan la minimización en este tipo de
máquinas.

12.4. Asignación de Estados.

12.4.1. Análisis del problema de asignación.

Dado el nombre lógico de un estado se desea formar un nombre físico en binario, dado por los
estados de los flip-flops.

Si se tienen e estados, el número mínimo m de flip-flops necesarios para codificarlos, debe


cumplir:
2m 1
e 2m

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 11
De acuerdo al principio de multiplicación, si una tarea A puede efectuarse de m formas diferentes,
y después de terminada en cualesquiera de estos modos, la tarea B puede ser realizada de n
diferentes modos; entonces la secuencia de tareas A, B puede ser efectuada de m por n modos.

Si de n elementos tomamos k de ellos (sin repetición, sólo puede tomarse una vez a cada
elemento), el primero puede ser elegido de n formas, el siguiente de (n-1) formas; y el k-ésimo de
(n-k+1) formas.

Éste es el número de permutaciones de n elementos tomando k a un tiempo, lo que puede


anotarse:
n(n-1)(n-2)....(n-k+1) = n!/(n-k)!

Entonces el número de asignaciones de estado de e estados con m flip-flops, resulta ser:

2m !
ae
2m e !

Si se tienen 4 estados lógicos A, B, C y D, se requieren dos flip-flops. Con dos flip-flops pueden
establecerse 4 estados binarios: 00, 01, 10, 11. El nombre binario de A, puede ser escogido de 4
formas, el de B de tres formas, el de C de dos formas y el último de una sola forma. Esto produce
24 formas de asignar estados, empleando dos flip-flops.

No todas estas asignaciones implican ecuaciones lógicas diferentes.

a) consideremos dos asignaciones binarias que tengan una variable complementada:

asignación 1: 01001001
asignación 2: 01011001

Cualquier función de próximo estado, puede expresarse usando la asignación 1 según:

f(a,b,c,d,e,f,g,h)

entonces la misma función, empleando la asignación 2 se puede expresar según:

f(a,b,c,d',e,f,g,h)

Es decir, las funciones tendrán estructura similar, salvo la complementación de una variable. Y
como en los flip-flops y PLDs se dispone de las variables y sus complementos, las dos
asignaciones en discusión llevarán a implementaciones de igual costo.

Con dos variables a y b, se tienen las siguientes formas: ab, a'b, ab' a'b'. En general m variables
pueden ser complementarse de 2m formas. Entonces, aplicando el principio inverso de la
multiplicación de las tareas, el número de asignaciones se reduce en el factor 2m.
b) consideremos un intercambio de columnas, para una determinada asignación:

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales

estado 1 ... ... ...


estado 2 ... ... ...
estado 3 ... ... ...
...
...
...
estado e ... ... ...

Figura 12.10. Intercambio de columnas en asignaciones.

Una determinada función de próximo estado puede escribirse:

f (..., yi ,..., y j ,...)


Si se escoge la asignación con el intercambio de columnas, la misma función podrá representarse
por:
f (..., y j ,..., yi ,...)

Nuevamente estas asignaciones llevan a implementaciones de iguales costos.


Si se tiene m columnas, la primera puede escogerse de m formas, la segunda de (m-1) formas, y
así sucesivamente. Es decir existen m! asignaciones que llevan a iguales implementaciones.
Entonces el número de asignaciones de estados que llevan a posibles implementaciones diferentes
son:
2m !
aeu
2m e ! 2m m !
Si bien aeu es mucho menor que ae, el crecimiento es importante a medida que aumenta e.

La siguiente tabla ilustra lo anterior:

e m ae aeu
2 1 1 1
3 2 24 3
4 2 24 3
5 3 6.720 140
6 3 20.160 420
7 3 40.320 840

Figura 12.11. Número de asignaciones de estados.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 13
Puede comprobarse que un conjunto de nombres únicos que pueden llevar a implementaciones
diferentes son, para e = 4:

Nombre lógico asig. 1 asig. 2 asig. 3


A 00 00 00
B 01 11 10
C 11 01 01
D 10 10 11

Figura 12.12. Asignaciones de estado únicas para cuatro estados.

A continuación se ilustran las 24 asignaciones posibles que se pueden efectuar con dos flip-flops.

L 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
A 00 00 10 01 11 10 01 11 00 00 10 01 11 10 01 11 00 00 10 01 11 10 01 11
B 01 10 11 00 10 00 11 01 11 11 01 10 00 01 10 00 10 01 00 11 01 11 00 10
C 11 11 01 10 00 01 10 00 01 10 11 00 10 00 11 01 01 10 11 00 10 00 11 01
D 10 01 00 11 01 11 00 10 10 01 00 11 01 11 00 10 11 11 01 10 00 01 10 00

Figura 12.13. Asignaciones de estado posibles para cuatro estados.

La 2 se genera por intercambio de columnas de la 1.


La 3 complementado la primera columna de la 1.
La 4 complementando la segunda columna de la uno.
La 5 complementado las dos columnas de la uno.
La 6, 7 y 8, complementando la primera, la segunda y ambas variables de la 2.

La 9 es la segunda asignación única.


La 10 se genera por intercambio de columnas de la 9.
La 11, 12 y 13, complementando la primera, la segunda y ambas variables de la 9.
La 14, 15 y 16, complementando la primera, la segunda y ambas variables de la 10.

La 17 es la tercera asignación única.


La 18 se genera por intercambio de columnas de la 17.
La 19, 20 y 21, complementando la primera, la segunda y ambas variables de la 17.
La 22, 23 y 24, complementando la primera, la segunda y ambas variables de la 18.

Debe notarse que cualquiera de las 8 primeras columnas puede ser elegida como asignación única
1. También cualquiera entre las columnas 9 a 16, puede ser la asignación única 2. La elección de
la asignación única 3 puede ser cualquier columna entre la 17 y 24. Se han elegido tres que
establezcan el estado A con nombre 00.

La siguiente tabla genera las 24 permutaciones posibles que se pueden efectuar con dos flip-flops
para colocar nombre binario a 4 estados. Se han mantenido los nombres de las columnas de la
Figura 12.13.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
L 18 1 17 2 9 10 4 23 12 15 7 20 6 19 14 11 22 3 16 13 8 21 5 24
A 00 00 00 00 00 00 01 01 01 01 01 01 10 10 10 10 10 10 11 11 11 11 11 11
B 01 01 10 10 11 11 00 00 10 10 11 11 00 00 01 01 11 11 00 00 01 01 10 10
C 10 11 01 11 01 10 10 11 00 11 10 00 01 11 00 11 00 01 01 10 00 10 00 01
D 11 10 11 01 10 01 11 10 11 00 00 10 11 01 11 00 01 00 10 01 10 00 01 00

Figura 12.13a. Asignaciones de estado generadas por permutaciones.

No es posible, debido al rápido crecimiento de aeu, intentar buscar la solución óptima para la
asignación de estados. Esto debido a que se requerirían realizar aeu diseños y seleccionar el de
costo menor. En lugar de esto se desarrollan métodos que guíen a encontrar una asignación de
estados razonablemente buena.

Ejemplo 12.5.

Asignaciones diferentes conducen a implementaciones diferentes. Por ejemplo considere la


siguiente matriz de transiciones:

Estado/Entrada 0 1
A B/0 E/0
B C/0 G/0
C D/0 F/0
D A/1 A/0
E G/0 C/0
F A/0 A/1
G F/0 D/0

Figura 12.14. Matriz de transiciones ejemplo 12.5.

Se estudian las siguientes dos asignaciones de las 40.320 posibles:

Estado Lógico Estado Físico 1 Estado Físico 2


y1y2y3 y1y2y3
A 000 000
B 001 001
C 011 010
D 010 011
E 101 100
F 110 101
G 111 110

Figura 12.15. Comparación entre dos asignaciones.

Para la asignación 1, por un diseño convencional y usando JK, se logran:


J1 = xy2' + xy3; K1 = x + y3' ; J2 = y3 ; K2 = y3' ; J3 = y2' ; K3 = y2
z = y3'y2y1'x' + y3'y1'x

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 15
Considerando un inversor para formar x'. Pueden contarse 18 entradas a compuertas. Y 8 chips
convencionales SSI.

Para la asignación 2, se obtienen:


J1 = xy3' + xy2' ; K1 = x + y3 ; J2 = y1y3' + y1'y3 ; K2 = x'y1 + xy1' +y3
J3 = x'y1' + y2; K3 = 1; z = xy1y3 + x'y2y3
Se tienen 34 entradas y se requieren 16 chips SSI.

El ejemplo ilustra que no todas las asignaciones conducen a redes combinacionales de bajo costo.
La asignación 2 resulta bastante más costosa que la asignación 1.

12.4.2. Estrategias de asignación.

Si la codificación conduce a un mínimo número de flip-flops las funciones combinacionales de


próximo estado resultan complejas. Esta asignación resulta adecuada cuando la implementación
se realiza mediante CPLD.

La codificación one-hot emplea un flip-flop por estado, de este modo el diseño de las funciones
combinacionales de próximo estado resultan más sencillas. Esta forma de codificación presenta
ventajas cuando se implementa en FPGA, dispositivos que tienen bastantes flip-flops y
generadores de funciones de ancho limitado. Por ejemplo para tres estados, los códigos binarios
serían: 001, 010, 100.

En la codificación de contadores, pueden asociarse los estados a las salidas del dispositivo,
haciendo innecesarias las redes combinacionales de salida.

Debido a que no existen algoritmos polinomiales para enfrentar este problema se han desarrollado
algunas heurísticas.

12.5 Reglas para la asignación de Estados.

La forma tradicional de enfrentar el problema de la codificación binaria de estados es la


aplicación de reglas para efectuar la asignación. Estas reglas o heurísticas son las siguientes:

Regla de Alta prioridad:

Estados que tienen iguales estados próximos, para una entrada dada, se los debe asignar como
lógicamente adyacentes.

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales

Estado/Entradas xi xj Si Sj
Si S
....
Sj S xi xi

Est. Próximo S

Figura 12.16. Regla de Alta prioridad.

Fundamentación de la regla: Las funciones de Estado Próximo pueden simplificarse al disminuir


la distancia entre Si y Sj. De este modo aumentan las adyacencias de los mintérminos de los unos
de S.

Regla de Prioridad Media:

Estados próximos de un estado presente, bajo entradas lógicamente adyacentes (a distancia


unitaria), se los debe asignar como lógicamente adyacentes.

Estado/Entradas xi xj S
S Si Sj
....
xi xj
Est. Próximo
Si Sj

Figura 12.17. Regla de prioridad media.

Fundamentación de la regla: Las funciones de Estado Próximo pueden simplificarse al disminuir


la distancia entre Si y Sj. De este modo aumentan las adyacencias de los mintérminos de los unos
de Si y Sj.

Regla de Baja Prioridad:

Estados con la misma salida para una entrada dada, se los debe asignar como lógicamente
adyacentes.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 17

Estado/Entradas xi xj
Si S1/z
....
Sj S2/z
Est. Próximo/Salidas

Si Sj

xi/z xi/z

S1 S2

Figura 12.18. Regla de prioridad baja.

Fundamentación de la regla: Las funciones de Salida pueden simplificarse al disminuir la


distancia entre Si y Sj. De este modo aumentan las adyacencias de los mintérminos de los unos de
la salida.

Análisis de las reglas.

En la siguiente matriz de transiciones, según la primera regla, debemos asignar los estados S1 y
S2 como adyacentes. Esto debido a que tienen estados próximos iguales para la misma entrada. Si
asignamos S1= 010 y S2= 011, tendremos, asumiendo que el próximo estado tiene nombre binario
101:

Q2Q1Q0 x1x0=01

S1=010 101/0
S2=011 101/0

Q2+,Q1+,Q0+/z

Figura 12.18a. Regla de prioridad alta.

Con lo cual se logra, agrupando solamente los unos que se indican en el diagrama, para las
funciones de próximo estado:

Q2+= x1’x0(Q2’Q1Q0’+Q2’Q1Q0) = x1’x0(Q2’Q1)


Q0+= x1’x0(Q2’Q1Q0’+Q2’Q1Q0) = x1’x0(Q2’Q1)

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
Observamos que siempre se cancelará una de las variables de estado en las expresiones para los
estados próximos. Q0 en el caso del ejemplo.

En la siguiente matriz de transiciones, según la segunda regla, debemos asignar los estados S1 y
S2 como adyacentes. Esto debido a que son estados próximos de un mismo estado S, para
entradas adyacentes. Si asignamos S1= 101 y S2= 100, tendremos, asumiendo que S tiene código
binario 010:

Q2Q1Q0 x1x0=01 x1x0=11

S=010 S1=101/0 S2=100/1

Q2+,Q1+,Q0+/z

Figura 12.18b. Regla de prioridad media.

Con lo cual se logra, agrupando solamente los unos que se indican en el diagrama, para las
funciones de próximo estado:

Q2+= Q2’Q1Q0’(x1’x0+x1x0) = Q2’Q1Q0’(x0)


Q0+= Q2’Q1Q0’(x1’x0)

Observamos que en todos los casos, menos uno, se cancelará una variable de entrada en las
expresiones para los estados próximos. En el caso del ejemplo, la expresión para Q0+ contendrá
las dos variables de entrada; la expresión de Q2+ no contendrá a la variable x1.

De los dos casos particulares anteriores, puede concluirse que la regla de alta prioridad producirá
mayor minimización que la regla de prioridad media. Razón por la cual se les da estos nombres.

Ejemplo 12.6.

Asignar estados para la siguiente matriz de transiciones:

Estado/Entrada 0 1
A C/0 D/0
B C/0 A/0
C B/0 D/0
D A/1 B/1

Figura 12.19. Matriz de transiciones ejemplo 12.6.

Regla de alta prioridad:


a) A y B deben ser adyacentes. Van a C con entrada igual a 0.
b) A y C deben ser adyacentes. Van a D con entrada igual a 1.
Regla de prioridad media.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 19
c) C y D deben ser adyacentes. Estados próximos de A, con x = 0 y x = 1.
d) C y A deben ser adyacentes. Estados próximos de B, con x = 0 y x = 1.
e) B y D deben ser adyacentes. Estados próximos de C, con x = 0 y x = 1.
f) A y B deben ser adyacentes. Estados próximos de D, con x = 0 y x = 1.
Regla de Prioridad Baja.
g) A, B y C deben ser adyacentes. Salida igual a 0 para x = 0.
h) A, B y C deben ser adyacentes. Salida igual a 0 para x = 1

Si se ubican en un mapa los nombres de los estados que deben ser adyacentes, cumpliendo la
primera regla, se tiene:
Q0
Q1 0 1
0 1
0 A
0 B
0

2 3
1 C
0 D
0

Figura 12.20. Asignación de estados ejemplo 12.6.

Del segundo grupo, con la primera regla de asignación, se cumplen: d) y f).


Si se elige la casilla vacante para D, se cumplen: c) y e).

Las reglas g) y h) no pueden satisfacerse. Ya que A es adyacente con B, y A es adyacente con C,


pero es imposible cumplir B adyacente con C.

Reemplazando los estados lógicos por los nombres físicos, se obtiene:

Estado/Entrada 0 1
A = 00 10/0 11/0
B = 01 10/0 00/0
C = 10 01/0 11/0
D = 11 00/1 01/1

Figura 12.21. Matriz de transiciones con asignación de estados.

Ordenando, según código Gray:

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales

Estado Actual x
Q1Q0 0 1
00 10/0 11/0
01 10/0 00/0
11 00/1 01/1
10 01/0 11/0
Q1+Q0+/z

Figura 12.22. Matriz de transiciones con ordenamiento Gray.

Minimizando, y empleando flip-flops Ds:


D1 = Q1+ = x'Q1' + xQ0'
D0 = Q0+ = Q1Q0' + xQ0' + xQ1
z = Q1Q0

Resultan 15 entradas (en dos niveles). Debido a que existe el producto xQ0' que es común a
ambos flip-flops.

Para este caso, puede buscarse la asignación óptima, efectuando los diseños con todas las
asignaciones únicas de estado. Se tienen:

Nombre lógico asig. 1 asig. 2 asig. 3


A 00 00 00
B 01 11 10
C 10 10 11
D 11 01 01

Figura 12.23. Asignaciones óptimas para ejemplo 12.6.

La asignación 1 es la que resulta de aplicar las reglas, y que se vio antes.

Se efectuará el diseño para la asignación 2.

Estado/Entrada 0 1
A = 00 10/0 01/0
B = 11 10/0 00/0
C = 10 11/0 01/0
D = 01 00/1 11/1

Figura 12.24. Matriz de transiciones con asignación 2.

Que ordenando según código Gray, puede escribirse:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 21

Estado/Entrada 0 1
00 10/0 01/0
01 00/1 11/1
11 10/0 00/0
10 11/0 01/0

Figura 12.25. Matriz de transiciones con asignación 2, ordenada en Gray.

Resulta el siguiente diseño, empleando flip-flops Ds:


D1 = Q1+ = x'Q1 + x'Q0' + xQ1'Q0
D0 = Q0+ = Q1Q0' + xQ1'
z = Q1'Q0
Resultan 18 entradas (en dos niveles).

Para la tercera asignación única, se tiene:

Estado/Entrada 0 1
A = 00 11/0 01/0
B = 10 11/0 00/0
C = 11 10/0 01/0
D = 01 00/1 10/1

Figura 12.26. Matriz de transiciones con asignación 3.

Resulta el siguiente diseño, empleando flip-flops Ds:


D1 = Q1+ = x'Q0' + x'Q1 + xQ1'Q0
D0 = Q0+ = x'Q0' + Q1'Q0' + xQ1Q0
z = Q1'Q0
Con 20 entradas, considerando el producto común x'Q0'.

Se comprueba entonces que, en este caso, las reglas para la asignación de estados llevan a una
asignación razonablemente buena. En la situación planteada es la óptima.

A medida que el número de estados aumenta, la asignación de estados requiere el uso de


herramientas de apoyo. Existen programas que facilitan la tarea de asignar estados.

Asignación one-hot.

Para la matriz de transiciones de la Figura 12.19, puede efectuarse la asignación de tipo one-hot,
en la cual cada estado tiene un nombre binario con un solo 1. Esto se muestra en la Figura 12.26a.
Si A es el estado inicial, la operación de reset, es ahora levemente más compleja.
Las variables de estado son las salidas de los flip-flops: Q3, Q2, Q1, Q0.

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

x
Q3Q2Q1Q0 0 1
A=0001 0100/0 1000/0
B=0010 0100/0 0001/0
C=0100 0010/0 1000/0
D=1000 0001/1 0010/1
Q3+Q2+Q1+Q0+/z

Figura 12.26a. Asignación one-hot para ejemplo 12.6.

Deben considerarse superfluas todas las combinaciones que tengan más de un uno en su nombre
binario. En la Figura 12.26b, puede observarse los mapas de Karnaugh de 5 variables, para las
variables de próximo estado Q3+ y Q2+.
Q3Q2
Q3Q2
00 01 11 10 Q1Q0 00 01 11 10
Q1Q0 8
8 4
00 d 1
4
d 00 d d
1 1
01 1 d d d 01 1 d d d

11 d d d d 11 d d d d
2 2
10 d d d 10 1 d d d

Q3+ x=1 Q2+ x=0

Figura 12.26a. Asignación one-hot para ejemplo 12.6.

Minimizando empleando las condiciones superfluas, pero cubriendo sólo los mintérminos
presentes, se obtienen:

Q3+= Q3’Q1’x La cobertura Q3+=Q2x + Q0x es de mayor costo.


Q2+=Q3’Q2’x’ La cobertura Q2+=Q1x’+Q0x’ es de mayor costo.

Procediendo en forma similar para el resto de las funciones, se obtienen:


Q1+=Q2x’+Q3x
Q0+=Q3x’+Q1x
z= Q3

Deben evaluarse los diseños alternativos, basados en producto de sumas. Si se agrupan los ceros
de Q3+ se obtiene: (Q3+)’=Q2’Q0’x’ que equivale a: Q3+=Q2+Q0+x. Existiendo soluciones
similares para el resto de las variables.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 23
Con un poco de práctica, pueden escribirse directamente los resultados a partir de la tabla de
transiciones de la Figura 12.26a.

Ejemplo 12.7.

Asignar estados para un reconocedor de secuencias de largo de tres bits, que tenga salida 1
cuando se tienen en la entrada las secuencias: 010 y 110; y salida cero en el resto de los casos. La
señal externa reset debe llevar la máquina al estado inicial.

Una vez eliminados los estados equivalentes, se obtiene la siguiente matriz de transiciones, con
E0 como el estado inicial:

Estado/Entrada 0 1
E0 E1/0 E1/0
E1 E2/0 E3/0
E2 E0/0 E0/0
E3 E0/1 E0/0

Figura 12.27. Matriz de transiciones ejemplo 12.7.

Estados que tienen iguales estados próximos, para una entrada dada, se los debe asignar como
lógicamente adyacentes. En este caso E2 y E3 debe ser adyacentes, tanto para entrada 0, como
para entrada 1, desde los estados 2 y 3 se va al estado 0.

Estados próximos de un estado presente, bajo entradas lógicamente adyacentes, se los debe
asignar como lógicamente adyacentes. Nuevamente implica asignar E2 y E3 como adyacentes,
ya que estando en E1 va estado 2 con entradas 0 y a E3 con entrada 1.

La regla que intenta minimizar la función de salida implica que E0, E1 y E2 deben ser adyacentes
ya que hay salida 0 para entrada cero. Además E0, E1, E2, E3 debe ser adyacentes ya que se tiene
salida cero para entrada 1.

Para obtener una función simple de reset se escoge el estado inicial E0 como 00.

La figura 12.28 ilustra tres asignaciones posibles.

La asignación 1 deja E0 como estado inicial, cumple E2 a distancia uno de E3, cumpliendo así las
dos primeras reglas en forma completa.

De la tercera regla cumple: E0 con E2, E0 con E1, E1 con E3. No pueden cumplirse: E1 con E2
del grupo con salida y entrada 0; tampoco pueden cumplirse: E0 con E3, y E1 con E2 del grupo
con entrada 1 y salida cero.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales

Q0 Q0 Q0
Q1 0 1 Q1 0 1 Q1 0 1
0 1 0 1 0 1
0 E0
0 E2
0 0 E0
0 E3
0 0 E0
0 E1
0

2 3 2 3 2 3
1 E1
0 E3
0 1 E1
0 E2
0 1 E2
0 E3
0

Asignación 1 Asignación 2 Asignación 3


Figura 12.28. Asignaciones ejemplo 12.7.

La asignación 2 deja E0 como estado inicial, cumple E2 a distancia uno de E3, cumpliendo así las
dos primeras reglas en forma completa.
De la tercera regla cumple: E0 con E3, E0 con E1, E1 con E2. No pueden cumplirse: E1 con E3
del grupo con salida y entrada 0; tampoco pueden cumplirse: E0 con E2, y E1 con E3 del grupo
con entrada 1 y salida cero.

La asignación 3 deja E0 como estado inicial, cumple E2 a distancia uno de E3, cumpliendo así las
dos primeras reglas en forma completa.
De la tercera regla cumple: E0 con E1, E0 con E2, E1 con E3. No pueden cumplirse: E1 con E2
del grupo con salida y entrada 0; tampoco pueden cumplirse: E0 con E3, y E1 con E2 del grupo
con entrada 1 y salida cero. Además esta asignación resulta ser equivalente en costo a la
asignación 1, ya que deviene de ésta por intercambio de columnas.

Lo mismo ocurre con la asignación 4 que se obtiene de la asignación 2 por intercambio de


columnas.
Q0
Q1 0 1
0 1
0 E0
0 E1
0

2 3
1 E3
0 E2
0

Asignación 4

Figura 12.29. Asignación 2 con intercambio de columna.

En resumen cualquiera de las asignaciones 1 a 4 puede ser una elección razonable, ya que
cumplen con las dos primeras reglas: tener E2 adyacente con E3, y el máximo posible de
cumplimiento de la tercera regla.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 25
Ejemplo 12.8.

Reconocedor de secuencias de largo 4. Salida uno cuando llegan: 0110 y 1010; salida cero en el
resto de los casos. El comando externo reset, debe llevar al estado inicial.
El diagrama reducido de estados es el siguiente:

Estado/Entrada 0 1
E0 E1/0 E2/0
E1 E3/0 E4/0
E2 E4/0 E3/0
E3 E5/0 E5/0
E4 E5/0 E6/0
E5 E0/0 E0/0
E6 E0/1 E0/0

Figura 12.30 Matriz de transiciones reducida ejemplo 12.8

Primera regla: E3 adyacente con E4; E5 con E6


Segunda regla: E1 adyacente con E2; E3 con E4; E5 con E6.
Tercera regla: Para entrada 0, estados E0, E1, E2, E3, E4, E5 adyacentes entre sí. E0, E1, E2, E3,
E4, E5, E6 adyacentes entre sí para entrada 1.

Q2Q1
Q0 00 01 11 10
0 E0 E3 E6

1 E1 E4 E5 E2

Figura 12.31. Asignación de estados, aplicando reglas.

Primero asignamos E3 adyacente con E4, y E5 con E6, ya que figuran en la primera y segunda
regla. Después E1 con E2.

Con la asignación anterior se obtiene:

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales

Q2Q1Q0 x=0 x=1


000 001/0 101/0
001 010/0 011/0
101 011/0 010/0
010 111/0 111/0
011 111/0 110/0
111 000/0 000/0
110 000/1 000/0
100 / /
Q2+,Q1+,Q0+/z

Figura 12.32. Matriz de transiciones con asignación de estados de Figura 12.31.

Escribiendo un mapa, se logra:

Q2Q1
Q0x 00 01 11 10
0 4 12 8
00 0010 1110 0001

1 5 13 9
01 1010 1110 0000
3 7 15 11
11 0110 1100 0000 0100
2 6 14 10
10 0100 1110 0000 0110

Q2+,Q1+,Q0+,z

Figura 12.33. Mapa de Karnaugh de Figura 12.32.

Que permite obtener:


Q2+ = Q2'Q1+Q2'Q0'x ; Q1+ = Q2'Q1+Q2'Q0+Q1'Q0 ;
Q0+ = Q2'Q0' +Q2'Q1'x+Q2'Q1x'+Q2Q1'x'; z = Q2Q0'x'

12.6 Descomposición de Máquinas Secuenciales.

Debido a la aparición de componentes programables, puede ocurrir que se requieran demasiadas


entradas o salidas, o que no se tenga macroceldas con los productos necesarios. En estos casos
puede resultar conveniente descomponer una máquina secuencial en dos o más sub-máquinas que
se comuniquen. Este procedimiento está descrito en el libro de R. Katz cap. 9.5.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 27

Problemas resueltos.

Problema 12.1.

Para el siguiente diagrama de estados: Estado Inicial

0/0 1/0
b c
0/0 1/0 0/0 1/0

d e f g
0/0 1/0 0/0 1/1 0/1 1/0 0/0 1/0

Figura P12.1. Diagrama de estados Problema 12.1.

a) Describir la función de la máquina secuencial.


b) Determinar estados equivalentes aplicando el método de las particiones. Reducir el diagrama
eliminando estados equivalentes asociados a letras de mayor orden; por ejemplo, si a y c son
equivalente, se elimina c.
c) Asignar nombres binarios a los estados, aplicando reglas. El estado inicial (a) debe estar
formado por puros ceros. Se deben elegir: b=001, d=010 y e=110, indicando si esta asignación
cumple o no las reglas.
d) Diseñar empleando flip-flops ds y compuertas. No es necesario dibujar el esquemático.
e) Diseñar empleando un registro de desplazamiento y compuertas. Si es necesario puede
agregarse otra componente o subsistema.

Solución.
a) Analiza secuencias de largo tres, determinando con salida 1 la llegada de las secuencias: 011 ó
100; para el resto de las posibles secuencias de tres bits la salida es cero.
b)
P0 = { a, b, c, d, e, f, g}
P1 = {e}, {f}, {a, b, c, d, g}
P2 = {e}, {f}, {b}, {c}, {a, d, g}
P3 = {e}, {f}, {b}, {c}, {a}, {d, g}
P4 = P3
Por lo tanto d es equivalente con g. Se elimina g.

c) Se tiene la siguiente tabla de transiciones:

Por la regla de mayor prioridad:

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales
Deben ser adyacentes entre sí: def. Es decir: d con e, e con f y f con d.
Por la regla de mediana prioridad:
Deben ser adyacentes: b con c (nueva); d con e, y f con d (ya presentes en la regla de alta
prioridad)
Por la tercera regla, de menor prioridad, deben ser adyacentes entre sí: abcde y abcdf. (La función
de salida se minimiza agrupando los ceros, como producto de sumas)

x=0 x=1
Q2Q1
a b/0 c/0 Q0 00 01 11 10
b d/0 e/0 0 2 6 4
c f/0 d/0 0 a d e
d a/0 a/0
e a/0 a/1 1 3 7 5
f a/1 a/0 1 b

Figura P12.2. Asignación de estados Problema 12.1.

Con las asignaciones dadas, que se ilustran en el mapa, se cumplen automáticamente que: d es
adyacente con e, de la primera regla; y d con a y b con a de la tercera regla; y sólo se puede
cumplir una de las dos siguientes: e con f o f con d.
c1) Si se elige f=011, f adyacente con d, no se puede cumplir que e sea adyacente con f; en este
caso a c debe asignarse 101, para cumplir la regla de media prioridad.

c2) Si se elige f=111, f es adyacente con e, y no puede cumplirse que f sea adyacente con d. En
este caso con c=101 se logra c adyacente con b (segunda regla). Es mejor asignar, en este caso c=
011, ya que además logra c adyacente con d, de la tercera regla.

c3) Si se elige f=100, f es adyacente con e, y no puede cumplirse que f sea adyacente con d; en
este caso conviene c=011, ya que logra b con c y además c con d de la tercera regla.
Para c2) quedan dos estados sin asignar, a los cuales pueden colocarse próximo estado y salida
superfluos. Resulta la siguiente tabla de transiciones.

Q2Q1Q0 x=0 x=1


a 000 001/0 011/0
b 001 010/0 110/0
c 011 111/0 010/0
d 010 000/0 000/0
e 110 000/0 000/1
f 111 000/1 000/0
100 / /
101 / /
Q2+Q1+Q0+/z

Figura P12.3. Matriz de transiciones Problema 12.1.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 29
d) Formando un mapa
Q2Q1
Q0x 00 01 11 10
0 4 12 8
001/0 000/0 000/0 ФФФ/Ф
00
1 5 13 9
011/0 000/0 000/1 ФФФ/Ф
01
3 7 15 11
110/0 010/0 000/0 ФФФ/Ф
11
2 6 14 10
010/0 111/0 000/1 ФФФ/Ф
10

Q2+Q1+Q0+/z
Figura P12.4. Mapa de matriz de transiciones Problema 12.1.

Se obtienen:

Q2+ = D2 = Q1’Q0x +Q2’Q1Q0x’


Q1+ = D1 = Q2’Q0 + Q1’x
Q0+ = D0 = Q1’Q0’+ Q2’Q1Q0x’
z = Q2Q0’x + Q2Q0x’

e) Usando un registro de desplazamiento con dos flip-flops.


Es necesario agregar un contador módulo tres.

Se tiene:

Secuencia 0 1 2 3 4 5 6 7
Contador 0 1 2 0 1 2 0 1
Qa 0 1 0 0 1 0 0 1
Qb 0 0 1 0 0 1 0 0
Registro Q1 0 x0 x1 x2 x3 x4 x5 x6
Q0 0 0 x0 x1 x2 x3 x4 x5
Entrada x0 x1 x2 x3 x4 x5 x6 x7

Figura P12.5. Secuencias Problema 12.1.

En la tabla anterior, el número de secuencia indica los cantos de reloj que han ocurrido hasta el
momento.
Después del primer canto del reloj, el contador pasa a la cuenta 1 (Qa=1 y Qb =0).

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales
Después del primer canto, el valor x0 pasa al primer flip-flop del registro.
Cuando la cuenta es dos, en la entrada se tiene x2, en Q1 se tiene x1 y en Q0 se tiene x0. Más
adelante se tiene en la entrada x5, en Q1 se tiene x4 y en Q0 se tiene x3.
Entonces:
Ha llegado la secuencia 011 se logra con Q0’Q1x
Ha llegado la secuencia 100 se logra con Q0Q1’x’

Ha llegado la secuencia 011 o la secuencia 100 en la cuenta dos del contador, se logra con:
z = (Q0’Q1x + Q0Q1’x’)QbQa’

El diseño del contador módulo tres, queda especificado por la siguiente tabla.

QbQa
00 01
01 10
10 00
11
Qb+Qa+

Figura P12.6. Contador módulo tres Problema 12.1.

De la cual se logran: Qb+= Db = Qa y Qa+ = Da = Qb’Qa’

El registro de desplazamiento, queda:

x D1 Q1 D0 Q0

Figura P12.7. Registro desplazamiento Problema 12.1.

Otra solución es mediante un registro de desplazamiento formado por tres flip-flops.

Secuencia 0 1 2 3 4 5 6 7
Contador 0 1 2 0 1 2 0 1
Qa 0 1 0 0 1 0 0 1
Qb 0 0 1 0 0 1 0 0
Registro Q2 0 x0 x1 x2 x3 x4 x5 x6
Q1 0 0 x0 x1 x2 x3 x4 x5
Q0 0 0 0 x0 x1 x2 x3 x4
Entrada x0 x1 x2 x3 x4 x5 x6 x7

Figura P12.8. Registro con tres flip-flops Problema 12.1.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 31
En esta situación, la salida se genera según:
z = Qb’Qa’(Q0’Q1Q2 + Q0Q1’Q2’)

x D2 Q2 D1 Q1 D0 Q0

Figura P12.9. Registro desplazamiento con tres flip-flops. Problema 12.1.

Problema 12.2.

Para el siguiente diagrama:


a) Determinar la matriz de transiciones y la ecuación de salida.
b) Reducir estados equivalentes. Dibujando el diagrama de estados resultante.
c) Dibujar el esquemático de la máquina secuencial más simple que realiza igual función
que el diagrama dado.
x

Q1 z
D1
Q1’

Q0
D0
Q0’

Figura P12.10. Esquemático. Problema 12.2.

Solución.
a) Se tienen: D1 = x’Q1’Q0’ + x Q0; D0 = Q1’ + x’ Q0’; z = Q1Q0’ +Q1’Q0 (Moore)
De los flip-flops Ds se tienen: Q1+ = D1 y Q0+ = D0

Estado x z x
Q1 Q0 0 1 Estado 0 1
0 0 11 01 0 A=00 C B 0
0 1 01 11 1 B=01 B C 1
1 1 00 10 0 C=11 A D 0
1 0 01 00 1 D=10 B A 1
Q1+Q0+ Estado + z

Figura P12.11. Matriz de transiciones. Problema 12.2.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales

b) P1 = {A, C}, {B, D}


Sucesores 0 de AC = CA, Sucesores 1 de AC = BD
Sucesores 0 de BD = BB, Sucesores 1 de BD = CA
Entonces P2 = P1, y se tiene que A es equivalente a C; y que B es equivalente a D.
x z 1
Estado 0 1
A/0 B/1 0
A=0 A B 0 0
B=1 B A 1
Estado + 1

Figura P12.12. Matriz de transiciones reducida. Problema 12.2.

c) Se requiere un flip-flop, sea éste Q.


Para tipo D, se tienen Q+ = D = x’Q + xQ’; z = Q

x z
x Q z Q 0 1
D
Q’ 0 0 1 0
1 1 0 1
Q+

Figura P12.13. Diseño basado en flip-flop D. Problema 12.2.

Observación. La salida genera el bit de paridad de la secuencia de entrada. La salida es uno si


en la secuencia se tiene un número impar de unos.

Con tipo JK: Se tiene xQ’ +x’Q = JQ’ +K’Q con lo que se obtiene: J = x; K = x

J Q
z
x
K Q’

Figura P12.14. Diseño basado en flip-flop JK. Problema 12.2.

Problema 12.3.

Se tiene la siguiente matriz de transiciones:

Determinar si las proposiciones son verdaderas o falsas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 33

Estado x=0 x=1 V F


E3, E4 y E5 son 1-equivalentes.
E0 E1/0 E2/0 V F
E3 y E5 son 2-equivalentes
E1 E3/0 E4/0 V F
E4 y E6 son 3-equivalentes
E2 E5/0 E6/0 V F
E0, E4 y E6 son equivalentes
E3 E0/0 E0/1 V F
El conjunto P3 es igual a P5.
E4 E0/0 E0/0 V F
E1 y E2 son equivalentes
E5 E0/0 E0/1 V F
El diagrama de estados se puede representar
E6 E0/0 E0/0 con 4 estados.
V F El diagrama de estados se puede representar
con 5 estados.

Dos estados son n-equivalentes si pertenecen a un


grupo o partición de Pn.
Figura P12.15. Matriz de transiciones. Problema 12.3.

Solución:
P0 = {E0, E1, E2, E3, E4, E5, E6 }
P1 = {E0, E1, E2, E4, E6 } { E3, E5 }
S0(E0E1E2E4E6)=(E1E3E5E0E0) S0(E3E5)=(E0E0)
S1(E0E1E2E4E6)=(E2E4E6E0E0) S1(E3E5)=(E0E0)

P2={E0, E4, E6 }{ E1, E2 }{ E3, E5 }


S0(E0E4E6)=(E1E0E0) S0(E1E2)=(E3E5) S0(E3E5)=(E0E0)
S1(E0E4E6)=(E2E0E0) S1(E1E2)=(E4E6) S1(E3E5)=(E0E0)

P3={E0} { E4, E6 }{ E1, E2 }{ E3, E5 }


S0(E4E6)=(E0E0) S0(E1E2)=(E3E5) S0(E3E5)=(E0E0)
S1(E4E6)=(E0E0) S1(E1E2)=(E4E6) S1(E3E5)=(E0E0)

P4 = P3
P5 = P4 y así sucesivamente.

Entonces el mínimo número de estados (no equivalentes entre sí) es 4.


E3, E4 y E5 son 1-equivalentes es Falsa ya que E3 y E5 están en un grupo; y E4 en otro.
E3 y E5 son 2-equivalentes es Verdadera ya que E3 y E5 están en un mismo grupo en P2.
E4 y E6 son 3-equivalentes es verdadera, ya que E4 y E6 están en un mismo grupo en P3.
E0, E4 y E6 son equivalentes es Falsa. Ya que E4 es equivalente con E6, E1 con E2 y E3 con E5.
El conjunto P3 es igual a P5 es verdadera, ya que P5 = P4 = P3.
E1 y E2 son equivalentes es verdad.
El diagrama de estados se puede representar con 4 estados. Es verdadera, por ejemplo pueden
emplearse E0, E1, E4, E3.
El diagrama de estados se puede representar con 5 estados. Es verdadera, pero obviamente no es
la mejor solución. Quedarían dos estados equivalentes.

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales

Problema 12.4.

Se tiene el siguiente diagrama de estados y algunas asignaciones de estados.

Estado x=0 x=1 Estado Asig.1 Asig.2 Asig. 3


A A/0 C/0 A 00 00 00
B D/1 B/1 B 10 01 01
C B/1 D/1 C 11 11 10
D A/0 D/0 D 01 10 11

Determinar si las proposiciones son verdaderas o falsas.

V F Asig. 1 y Asig. 2 cumplen todas las reglas y tienen igual costo.


V F Asig. 1 y Asig. 3 cumplen todas las reglas y tienen igual costo.
V F Asig. 1 y Asig. 2 cumplen todas las reglas y tienen diferente costo.
V F Asig. 2 y Asig. 3 no cumplen todas las reglas.
V F A con D y B con C deben estar a distancia uno por regla de mayor prioridad.
V F A con D y B con C deben estar a distancia uno por regla de mediana prioridad.
V F A con D y B con C deben estar a distancia uno por regla de inferior prioridad.
V F A con D deben a estar a distancia uno por las tres reglas.

Figura P12.16. Problema 12.4.

Mayor Prioridad: Estados con estados próximos iguales para igual entrada.
Mediana Prioridad: Próximos Estados para entradas adyacentes
Baja Prioridad: Estados con Iguales salidas para igual entrada.

Solución:
Mayor prioridad:
A adyacente con D, ya que con entrada 0 van al estado A.
C adyacente con D, ya que con entrada 1 van al estado D.
Mediana prioridad:
A adyacente con C, ya que son estados próximos de A, para entrada 0 y 1 respectivamente.
D adyacente con B, ya que son estados próximos de B, para entrada 0 y 1 respectivamente.
B adyacente con D, ya que son estados próximos de C, para entrada 0 y 1 respectivamente.
A adyacente con D, ya que son estados próximos de D, para entrada 0 y 1 respectivamente.
Baja Prioridad.
B adyacente con C, ya que tienen salida 1 para entrada 0 y 1.
A adyacente con D, ya que tienen salida 0 para entrada 0 y 1.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 35

Q0 Q0 Q0
Q1 0 1 Q1 0 1 Q1 0 1
0 1 0 1 0 1
0 A
0 D
0 0 A
0 B
0 0 A
0 B
0
2 3 2 3 2 3
1 B
0 C
0 1 D
0 C
0 1 C
0 D
0

Asig. 1 Asig. 2 Asig. 3

Figura P12.17. Asignaciones Problema 12.4.

Asig. 1 cumple AD, CD, BC. No cumple AC, DB (mediana prioridad).


Asig. 2 cumple AD, CD, BC, AD. No cumple AC, DB (mediana prioridad).
Asig. 3 cumple CD, AC, DB. No cumple: AD (alta), AD (mediana prioridad); BC y AD baja
prioridad.

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales

Índice general.

CAPÍTULO 12 .............................................................................................................................................. 1
EQUIVALENCIA Y ASIGNACIÓN DE ESTADOS. ............................................................................... 1
12.1. ESTADOS EQUIVALENTES. .................................................................................................................. 1
12.2 MÉTODO DE REDUCCIÓN DE ESTADOS POR INSPECCIÓN. .................................................................... 1
12.3. REDUCCIÓN DE ESTADOS EN MÁQUINAS COMPLETAMENTE ESPECIFICADAS. ...................................... 2
12.3.1. Método de Reducción de Moore. Método de las Particiones. .................................................... 2
Ejemplo 12.1 ....................................................................................................................................................... 3
Algoritmo de las particiones de Moore. .............................................................................................................. 4
Ejemplo 12.2. ...................................................................................................................................................... 5
Ejemplo 12.3. ...................................................................................................................................................... 6
Ejemplo 12.4. ...................................................................................................................................................... 6
12.3.2. Método del diagrama de implicación......................................................................................... 8
12.3.3. Minimización de estados en máquinas incompletamente especificadas. ................................. 10
12.4. ASIGNACIÓN DE ESTADOS. ............................................................................................................... 10
12.4.1. Análisis del problema de asignación. ...................................................................................... 10
Ejemplo 12.5. ....................................................................................................................................... 14
12.4.2. Estrategias de asignación. ....................................................................................................... 15
12.5 REGLAS PARA LA ASIGNACIÓN DE ESTADOS...................................................................................... 15
Regla de Alta prioridad: ...................................................................................................................... 15
Regla de Prioridad Media: .................................................................................................................. 16
Regla de Baja Prioridad: ..................................................................................................................... 16
Análisis de las reglas. .......................................................................................................................... 17
Ejemplo 12.6. ....................................................................................................................................... 18
Asignación one-hot. ............................................................................................................................. 21
Ejemplo 12.7. ....................................................................................................................................... 23
Ejemplo 12.8. ....................................................................................................................................... 25
12.6 DESCOMPOSICIÓN DE MÁQUINAS SECUENCIALES. ............................................................................ 26
PROBLEMAS RESUELTOS. .......................................................................................................................... 27
Problema 12.1. ..................................................................................................................................... 27
Problema 12.2. ..................................................................................................................................... 31
Problema 12.3. ..................................................................................................................................... 32
Problema 12.4. ..................................................................................................................................... 34
ÍNDICE GENERAL. ...................................................................................................................................... 36
ÍNDICE DE FIGURAS ................................................................................................................................... 37

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 12. Equivalencia y Asignación de Estados. 37

Índice de figuras

Figura 12.1. Matriz de transiciones.................................................................................................. 1


Figura 12.2. Matriz de transiciones reducida. .................................................................................. 2
Figura 12.3. Diagrama de estados Ejemplo 12.1 ............................................................................. 3
Figura 12.4. Secuencia de salida para entrada de largo dos. ............................................................ 4
Figura 12.5. Secuencia de salida para entrada de largo tres............................................................. 4
Figura 12.6. Matriz de transiciones ejemplo 12.2. ........................................................................... 5
Figura 12.7. Matriz de transiciones ejemplo 12.3. ........................................................................... 6
Figura 12.8. Matriz de transiciones ejemplo 12.4. ........................................................................... 7
Figura 12.9. Matriz de transiciones reducida y diagrama de estados Ejemplo 12.4. ....................... 8
Figura 12.9a. Matriz de transiciones. ............................................................................................... 8
Figura 12.9b. Tabla de implicaciones. ............................................................................................. 9
Figura 12.9c. Matriz reducida. ....................................................................................................... 10
Figura 12.9d. Salidas con condiciones superfluas. ........................................................................ 10
Figura 12.10. Intercambio de columnas en asignaciones. .............................................................. 12
Figura 12.11. Número de asignaciones de estados. ....................................................................... 12
Figura 12.12. Asignaciones de estado únicas para cuatro estados. ................................................ 13
Figura 12.13. Asignaciones de estado posibles para cuatro estados. ............................................. 13
Figura 12.13a. Asignaciones de estado generadas por permutaciones. ......................................... 14
Figura 12.14. Matriz de transiciones ejemplo 12.5. ....................................................................... 14
Figura 12.15. Comparación entre dos asignaciones. ...................................................................... 14
Figura 12.16. Regla de Alta prioridad............................................................................................ 16
Figura 12.17. Regla de prioridad media. ........................................................................................ 16
Figura 12.18. Regla de prioridad baja. ........................................................................................... 17
Figura 12.18a. Regla de prioridad alta. .......................................................................................... 17
Figura 12.18b. Regla de prioridad media....................................................................................... 18
Figura 12.19. Matriz de transiciones ejemplo 12.6. ....................................................................... 18
Figura 12.20. Asignación de estados ejemplo 12.6........................................................................ 19
Figura 12.21. Matriz de transiciones con asignación de estados. ................................................. 19
Figura 12.22. Matriz de transiciones con ordenamiento Gray. ...................................................... 20
Figura 12.23. Asignaciones óptimas para ejemplo 12.6. ............................................................... 20
Figura 12.24. Matriz de transiciones con asignación 2. ................................................................. 20
Figura 12.25. Matriz de transiciones con asignación 2, ordenada en Gray.................................... 21
Figura 12.26. Matriz de transiciones con asignación 3. ................................................................. 21
Figura 12.26a. Asignación one-hot para ejemplo 12.6. ................................................................. 22
Figura 12.26a. Asignación one-hot para ejemplo 12.6. ................................................................. 22
Figura 12.27. Matriz de transiciones ejemplo 12.7. ....................................................................... 23
Figura 12.28. Asignaciones ejemplo 12.7. ..................................................................................... 24
Figura 12.29. Asignación 2 con intercambio de columna. ............................................................. 24
Figura 12.30 Matriz de transiciones reducida ejemplo 12.8 .......................................................... 25
Figura 12.31. Asignación de estados, aplicando reglas. ................................................................ 25
Figura 12.32. Matriz de transiciones con asignación de estados de Figura 12.31. ........................ 26
Figura 12.33. Mapa de Karnaugh de Figura 12.32. ....................................................................... 26
Figura P12.1. Diagrama de estados Problema 12.1. ...................................................................... 27

Profesor Leopoldo Silva Bijit 19-01-2010


38 Sistemas Digitales
Figura P12.2. Asignación de estados Problema 12.1......................................................................28
Figura P12.3. Matriz de transiciones Problema 12.1. .....................................................................28
Figura P12.4. Mapa de matriz de transiciones Problema 12.1. ......................................................29
Figura P12.5. Secuencias Problema 12.1. ......................................................................................29
Figura P12.6. Contador módulo tres Problema 12.1. .....................................................................30
Figura P12.7. Registro desplazamiento Problema 12.1. ................................................................30
Figura P12.8. Registro con tres flip-flops Problema 12.1. .............................................................30
Figura P12.9. Registro desplazamiento con tres flip-flops. Problema 12.1....................................31
Figura P12.10. Esquemático. Problema 12.2..................................................................................31
Figura P12.11. Matriz de transiciones. Problema 12.2. ..................................................................31
Figura P12.12. Matriz de transiciones reducida. Problema 12.2. ...................................................32
Figura P12.13. Diseño basado en flip-flop D. Problema 12.2. .......................................................32
Figura P12.14. Diseño basado en flip-flop JK. Problema 12.2. .....................................................32
Figura P12.15. Matriz de transiciones. Problema 12.3. .................................................................33
Figura P12.16. Problema 12.4. ......................................................................................................34
Figura P12.17. Asignaciones Problema 12.4. ................................................................................35

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 13

Bloques básicos secuenciales.

13.1. Contadores.

Es una de las componentes más utilizada en el diseño de máquinas digitales.

En los diagramas de estados de contadores, no suelen anotarse las entradas, el cambio de estado
se produce con el canto del reloj; es decir, se cuentan los cantos del reloj.

La asignación de estados se elige de tal manera que el estado refleje la cuenta; debido a esto son
máquinas de Moore.
Los diseños pueden efectuarse con JK, y también con D. Las ecuaciones con flip-flops de tipo D
pueden implementarse directamente con lógica programable.

Pueden clasificarse según la forma de contar en contadores binarios, bcd, o en contadores con
secuencias especiales. También pueden ser progresivos o regresivos, si cuentan en forma
ascendente o descendente respectivamente.

Según el tipo de implementación pueden clasificarse en sincrónicos o asincrónicos. En los


primeros, el estado de todos los flip-flops cambia con el reloj; en los segundos todos los flips-
flops no cambian simultáneamente con el reloj. Las señales de clear y reset también pueden ser
sincrónicas con el reloj o asincrónicas.

Se verán a continuación algunos contadores sincrónicos binarios ascendentes módulo potencia


de dos.

13.1.1. Contador sincrónico binario módulo 4.

Especificación a través de una matriz de transiciones:

Estado Presente Próximo estado


00 01
01 10
10 11
11 00

Figura 13.1. Matriz transiciones contador módulo 4.

Efectuando un mapa de la función de próximo estado, se obtiene:

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Q1
Q0 0 1
0 1
0 01 11

2 3
1 10 00

Q1+ Q0+
Figura 13.2. Matriz de transiciones contador módulo 4.

Si la cifra menos significativa es Q0 y la más significativa es Q1, se tienen:


Q1+ = Q0Q1' + Q0'Q1 = J1Q1' +K1'Q1 = D1
Q0+ = Q0' = J0Q0' +K0'Q0 = D0

Las que implican, para flip-flops JKs:


J1 = Q0 K1 = Q0
J0 = 1 K0 = 1

Las ecuaciones anteriores representan al siguiente circuito:


+Vcc

reset’

rst rst
J Q0 J Q1
K K
clk clk

clk

Figura 13.2.a. Esquemático contador módulo 4.

Y para flip-flops Ds, se obtienen:


D1 = Q0Q1' + Q0'Q1
D0 = Q0'

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 3

13.1.2. Contador sincrónico binario módulo 8.

Puede especificarse mediante la siguiente matriz de transiciones:

Estado Presente Próximo estado


000 001
001 010
010 011
011 100
100 101
101 110
110 111
111 000

Figura 13.3. Matriz de transiciones contador módulo 8.

Si la cifra menos significativa es Q0 y la más significativa es Q2, se tienen:

reset
000
Q2Q1
Q0 00 01 11 10 111 001
0 2 6 4
0 001 011 111 101

1 3 7 5 110 010
1 010 100 000 110

Q2+ Q1+ Q0+


101 011
100

Figura 13.4. Matriz de transiciones y diagrama de estados para contador módulo 8.

Notar que en el diagrama de estados, no hay señal de entrada asociada a las transiciones. El
cambio de estado se produce con el canto del reloj. La salida es el estado, y el diagrama
corresponde a un modelo de Moore.

Resultan:
Q2+ = Q1Q0Q2' + Q2(Q1' + Q0') = J2Q2' +K2'Q2 = D2
Q1+ = Q0Q1' + Q0'Q1 = J1Q1' +K1'Q1 = D1
Q0+ = 1Q0' + 0 Q0 = J0Q0' +K0'Q0 = D0

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales

En el caso de emplear flip-flops de tipo D, los programas resultan por simple lectura del mapa
de la matriz de transiciones, ya que: Di = Qi+

Para diseño con JKs, conviene leer los mapas buscando los factores de Qi y Qi'. Y luego
comparar los coeficientes de las ecuaciones características para encontrar los Ji y Ki'.

Se logran:
J2 = Q1Q0 K2 = Q1Q0
J1 = Q0 K1 = Q0
J0 = 1 K0 = 1

Usando flip-flops JKs, el diseño puede representarse por el esquemático de la Figura 13.5:

+Vcc

reset’

rst rst rst


J Q0 J Q1 J Q2
K K K
clk clk clk

clk

Figura 13.5. Esquemático contador módulo 8 mediante JK.

Notar que los flip-flops operan con el canto de bajada del reloj.

Se destaca un reset asincrónico: cuando la señal reset' (de lógica negativa) tiene un canto de
bajada, se activa. Entonces, en ese momento, todos los flip-flops van a cero (ver marcador 1 en
la Figura 13.6), y se tiene al contador en el estado inicial. Permanece en ese estado hasta que se
desactiva la señal reset'; es decir cuando reset' = 1, luego de lo cual, en el próximo canto de
bajada del reloj, se pasará al próximo estado 001. El pequeño círculo que está en la entrada de
reset, indica que es una señal de lógica negativa; y es convencional describirla con el nombre
negado: reset'.

Las formas de ondas muestran el tiempo de propagación de los flip-flops (ver marcador tf en la
Figura 13.6); es decir el tiempo que transcurre desde el canto hasta que se tiene nivel estable en
las salidas Q de los flip-flops.

Nótese que todas las salidas cambian en el mismo momento, y que permanecen estables entre
cantos de bajada del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 5

rst'

clk
Q2
Q1
Q0
1 tf
Figura 13.6. Formas de ondas contador módulo 8.

13.1.3. Contador sincrónico binario módulo 16.

Si la cifra menos significativa es Q0 y la más significativa es Q3, se tienen:


Q3Q2
Q1Q0 00 01 11 10
0 4 12 8
00 0001 0101 1101 1001

1 5 13 9
01 0010 0110 1110 1010

3 7 15 11
11 0100 1000 0000 1100

2 6 14 10
10 0011 0111 1111 1011

Q3+ Q2+ Q1+ Q0+


Figura 13.7. Matriz de transiciones contador módulo 16.

Resultan:
Q3+ = Q1Q0Q2Q3' + (Q2'+ Q1' + Q0') Q3 = J3Q3' +K3'Q3 = D3
Q2+ = Q1Q0Q2' + Q2(Q1' + Q0') = J2Q2' +K2'Q2 = D2
Q1+ = Q0Q1' + Q0'Q1 = J1Q1' +K1'Q1 = D1
Q0+ = Q0' = J0Q0' +K0'Q0 = D0

Las que implican los programas de los flip-flops JK:


J3 = Q2Q1Q0 K3 = Q2Q1Q0
J2 = Q1Q0 K2 = Q1Q0
J1 = Q0 K1 = Q0
J0 = 1 K0 = 1

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
El esquema siguiente ilustra el diseño sincrónico. Debe notarse que aumentan las cargas de Q0 y
que se requiere una compuerta de mayor fan-in en la entrada del flip-flop más significativo.
Con tf, el tiempo de propagación desde el flanco del reloj hasta la salida; tc tiempo de
propagación a través de la compuerta; tsu tiempo de set-up del flip-flop, el período mínimo del
reloj queda dado por: (tf + tc + tsu + tskew), el cual es determinado por los flip-flops Q2 y Q3;
los requerimientos de período del reloj de los flip-flops Q0 y Q1 son menos exigentes.

El requerimiento de hold, de los flip-flops Q0 y Q1, se satisface si el tiempo de propagación,


desde el canto del reloj hasta la salida, es mayor que el tiempo de sostenimiento requerido; los
flip-flops Q2 y Q3 tienen exigencias menores de sostenimiento, ya que existe un tiempo de
propagación de una compuerta. Recuérdese que los requerimientos de hold se evalúan en un
mismo canto del reloj; y los de setp-up, entre dos cantos adyacentes.

+Vcc

reset’

rst rst rst rst


J Q0 J Q1 J Q2 J Q3
K K K K
clk clk clk clk

clk

Figura 13.8. Esquemático contador módulo 8 mediante JK.

Las formas de ondas de Q0, Q1, Q2, Q3, clk y rst se ilustran a continuación:

Q0
Q1
Q2
Q3
clk
rst

Figura 13.9. Formas de ondas contador módulo 16.

Si los períodos del reloj, de Q0, Q1, Q2 y Q3 son: Tc, T0, T1, T2 y T3 respectivamente, se
tienen:
T0 T1 T2 T3
Tc
2 4 8 16

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 7
Puede variarse el diseño, liberando tener un flip-flop (el menos significativo) con mayor fan-
out, y una compuerta de mayor fan-in en la entrada del flip-flop más significativo, del modo
siguiente:

+Vcc

reset’

rst rst rst rst


J Q0 J Q1 J Q2 J Q3
K K K K
clk clk clk clk

clk

Figura 13.10. Disminución fan-out.

Este diseño, sigue siendo sincrónico, pero aumenta el período mínimo que puede tener el reloj
para el funcionamiento correcto de Q3. Ahora se tiene que el período mínimo queda dado por:
(tf +2 tc + tsu+ tskew), el cual implica una frecuencia máxima menor que la del diseño anterior.

13.1.4. Contador binario de ripple, con salida asincrónica.

El siguiente diseño, basado en la experiencia e intuición, es el contador que requiere menos


hardware.
Los flip-flops JK están conectados simulando un flip-flop T, y se emplea la capacidad de este
flip-flop de dividir por dos la frecuencia del reloj. Se muestra un esquema a continuación:

+Vcc +Vcc +Vcc +Vcc

reset’

rst rst rst rst


J Q0 J Q1 J Q2 J Q3
K K K K
clk clk clk clk

clk

Figura 13.11 Contador ondulado o de ripple.

Debido a que las entradas no cambian, se cumplen automáticamente los requerimientos de


sostenimiento y set-up, para los cuatro flip-flops. La propagación de la transición de la cuenta
15 a la cuenta cero, limita el período mínimo del reloj. Ya que en este caso, como se ilustra en la
Figura 13.12 se tiene el menor valor de tiempo en el cual en contador está en una cuenta dada.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
Entonces se tiene para el mínimo período: (4tf +t0min), lo cual implica que la duración del tiempo
en cuenta cero será igual a t0min.

A continuación se muestran las formas de ondas. Los tiempos en que este contador permanece
en cada estado no son regulares.

clk
Q0
Q1
Q2
Q3
rst'
Figura 13.12. Formas de ondas contador ripple.

13.1.5. Contador de anillo (ring counter).

El siguiente esquema ilustra un registro de desplazamiento a la derecha, máquina secuencial que


se verá más adelante, que se emplea como contador.

reset’

set rst rst rst


J Q0 J Q1 J Q2 J Q3
K K K K
clk clk clk clk

clk

Figura 13.13. Contador de anillo.

Debe notarse que el primer flip-flop requiere un set asincrónico para iniciar el funcionamiento
del contador. Además, como puede observarse en las formas de ondas, los estados por los que
pasa el contador están restringidos a una secuencia determinada. Pasa para la configuración de
la Figura 13.13, por: 0001, 0010, 0100, 1000.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 9

Q0
Q1
Q2
Q3
clk
rst

Figura 13.14. Formas de ondas contador de anillo.

Una variación, que permite duplicar los estados del "ring counter", es el contador de Johnson.

13.1.6. Contador de Johnson.

Debe notarse que Q3 se conecta a K0, y que Q3' se conecta a J0. Este contador pasa por ocho
estados:
0000, 0001, 0011, 0111, 1111, 1110, 1100, 1000.

El contador de anillo y el de Johnson tienen salidas sincrónicas. El contador de Johnson tiene


señal de reset común, y no requiere del inicio especial del contador de anillo. Para ambos se
tiene que el período mínimo queda dado por (tf + tsu). Logrando mayores frecuencias de
operación que los contadores anteriores.

reset’

rst rst rst rst


J Q0 J Q1 J Q2 J Q3
K K K K
clk clk clk clk

clk

Figura 13.15. Contador de Johnson.

Con las siguientes formas de ondas:

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales

Q0

Q1

Q2

Q3

clk

rst

Figura 13.16. Formas de ondas contador Johnson.

13.1.7. Contador integrado 74163.

En la familia TTL existen diversos tipos de contadores. Uno muy versátil es el 74163, que tiene
señales de carga y clear sincrónicas. Lo cual permite cargar un valor de cuenta inicial y también
dejar en cero en forma sincrónica con el reloj. También se dispone de una señal que está alta
cuando se está en el estado más alto; es decir cuando el contador pasa al estado 1111, la señal se
denomina RCO (ripple carry output).

Los controles anteriores permiten diseñar contadores especiales. Por ejemplo uno que cuente
desde un valor inicial hasta 1111 (se logra conectando rco a la señal load).
Similar esquema suele emplearse en los temporizadores de procesadores y microcontroladores,
donde además de los recursos habituales de aritmética y lógica se agrega un contador, con
controles sincrónicos, denominado usualmente “timer”.

Otro contador, que puede implementarse con estos controles, es uno que cuente desde 0000
hasta un valor dado; para ello se requiere decodificar el estado y con esto alimentar la señal
clear.

No es recomendable emplear las entradas asincrónicas de los contadores para diseños como los
descritos antes; en este caso debe restringirse el uso de los controles asincrónicos sólo para
establecer el estado inicial.

Un diagrama lógico del contador 74163 se muestra en la Figura 13.17.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 11

load’
PE
TE
clear’

P0 Q0
74163
P1 Q1
P2 Q2
P3 Q3
RCO

clk

Figura 13.17. Esquemático contador 74163.

Los controles clear’ y load’ se definen de lógica negativa, esto implica que la limpieza a cero
del estado del contador se logra con el canto de bajada de clear’. Como este control es
sincrónico, el instante preciso, en que se produce la acción, es el canto de subida del reloj luego
de que clear tiene un canto de subida. La Figura 13.17a, muestra la especificación del contador
mediante una tabla de verdad.

clear’ load’ PE TE Operación


1 0 x x preset
1 1 0 x No cuenta
1 1 x 0 No cuenta
1 1 1 1 cuenta
0 x x x reset

Figura 13.17a. Especificación contador 74163.

La siguiente descripción Verilog, ilustra el funcionamiento del contador.

module C74163(loadn, clearn, PE, TE, clk, P, RCO, Q)


input loadn, clearn, PE, TE, clk;
input [3:0] P;
output [3:0] Q;
output RCO;
reg [3:0] Q;

assign RCO = (&Q) & TE;

always @ (posedge clk)


begin
if (clearn == 0) Q <= 0;
else if (loadn ==0) Q <= P;
else if (PE & TE ) Q <= Q+1;
end
endmodule

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
La expresión &Q es equivalente al AND de cada uno de los bits de Q.

13.1.8. Contador sincrónico binario módulo 32.

De los diseños de los contadores binarios módulos 4, 8 y 16, pueden inducirse las siguientes
ecuaciones, sin efectuar desarrollos. Lo mismo puede decirse para contadores módulo una
potencia de dos: 64, 128, etc.

Las ecuaciones de diseño basadas en flip-flops JKs:


J4 = Q3Q2Q1Q0 K3 = Q3Q2Q1Q0
J3 = Q2Q1Q0 K3 = Q2Q1Q0
J2 = Q1Q0 K2 = Q1Q0
J1 = Q0 K1 = Q0
J0 = 1 K0 = 1

Para diseños basados en flip-flops Ds:


Q4+ = Q1Q0Q2Q3Q4' + Q4(Q3' + Q2'+ Q1' + Q0') = D4
Q3+ = Q1Q0Q2Q3' + Q3(Q2'+ Q1' + Q0') = D3
Q2+ = Q1Q0Q2' + Q2(Q1' + Q0') = D2
Q1+ = Q0Q1' + Q0'Q1 = D1
Q0+ = Q0' = D0

A continuación se ilustran algunos ejemplos de contadores binarios sincrónicos que no son


módulo una potencia de dos.

13.1.9. Contador sincrónico módulo 7.

Si la cifra menos significativa es Q0 y la más significativa es Q2, se tienen:

000
Q2Q1
Q0 00 01 11 10 001
0 2 6 4
0 001 011 000 101
111 010
1 3 7 5 110
1 010 100 110

Q2+ Q1+ Q0+ 101 011


100

Figura 13.18. Contador sincrónico módulo 7.

El estado 111 (7) se trata como superfluo.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 13
Resultan:
Q2+ = Q1Q0Q2'+Q1'Q2 = J2Q2' +K2'Q2 = D2
Q1+ = Q0Q1' + Q2'Q0'Q1 = J1Q1' +K1'Q1 = D1
Q0+ = (Q2'+Q1')Q0' = J0Q0' +K0'Q0 = D0

Las que implican:


J2 = Q1Q0 K2 = Q1
J1 = Q0 K1 = Q2 + Q0
J0 = Q2'+Q1' K0 = 1

13.1.10. Contador sincrónico módulo 6.

Si la cifra menos significativa es Q0 y la más significativa es Q2, se tienen:

Q2Q1 000
Q0 00 01 11 10 001
0 2 6 4
0 001 011 101 111
110 010
1 3 7 5
1 010 100 000
101 011
Q2+ Q1+ Q0+ 100

Figura 13.19. Contador sincrónico módulo 6.

Resultan:
Q2+ = Q1Q0Q2'+Q0'Q2 = J2Q2' +K2'Q2 = D2
Q1+ = Q2'Q0Q1' + Q0'Q1 = J1Q1' +K1'Q1 = D1
Q0+ = Q0' + 0 Q0 = J0Q0' +K0'Q0 = D0

Las que implican:


J2 = Q1Q0 K2 = Q0
J1 = Q2'Q0 K1 = Q0
J0 = 1 K0 = 1

En la familia TTL existen contadores asincrónicos como el 7493 que pueden contar en módulo
8 ó 16. Y el 7490 que puede contar en módulo 5 o por décadas (Módulo 10).

13.2. Registros de desplazamiento.

Se denomina registro a una serie de flip-flops agrupados, con reloj y señales de control común.
En los de desplazamiento se transfiere información de una celda (o flip-flop) hacia la adyacente,
dentro del mismo registro. Esta operación se llama corrimiento (shift). El corrimiento puede ser

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
a la izquierda o a la derecha. Si el contenido representa a un número con signo, los corrimientos
aritméticos pueden ser realizados con extensión de signo.

Debe considerarse en forma especial los bordes. Indicando con qué se llena el hueco que se
produce; y especificando que se hace con el bit que sale del registro.

13.2.1 Usos.

Algunos de sus principales usos son:


a) Operaciones aritméticas. Permite multiplicar y dividir por dos el contenido de un registro
interpretado como número binario. Esta operación puede producir rebalse y también
truncamiento. Esto en caso que el resultado del producto no pueda representarse en el
registro; o en caso de una división de un número impar, respectivamente.
b) Operaciones lógicas. Permite posicionar un bit cualquiera en otra posición del registro. Esto
favorece las operaciones orientadas al bit. Una variante de esta operación es la rotación, en
la cual lo que sale del registro se introduce en el lugar vacante.
c) Conversión serie a paralelo. Permite pasar una información binaria en serie a paralelo y
vice-versa.
d) Generador de secuencias. Si se conecta como registro de rotación, puede generarse una
secuencia de largo n, donde n es el número de celdas.
e) Línea de retardo. Un valor en la entrada, sale n pulsos más tarde en la salida.
f) Reconocedor de secuencias. Si se conecta en las salidas de los flip-flops un decodificador
puede reconocerse una secuencia cada vez que se presente en la entrada.
g) Generador de códigos de chequeo. Se emplean para agregar información de chequeo a
paquetes con información, de tal modo de transmitir la información con datos de control,
que permitan verificar la correcta recepción del paquete.
h) Generador de secuencias binarias pseudoaleatorias (PRBS). Se emplean como generadores
de ruido. También se emplean para generar encriptación, en una configuración denominada
LFSR (Linear feedback shift register).

13.2.2. Ejemplo de diseño.

Se desea efectuar un corrimiento a la derecha. Es decir, con el canto del reloj, el contenido del
flip-flop Q0 pasa a Q1. Alternativamente, lo que se desea es que el próximo estado de Q1 sea el
valor actual de Q0.
J0 Q0 J1 Q1
x
K0 K1
Q0' Q1'
clk

Figura 13.20. Transferencia entre dos flip-flops.

Entonces, se desea que: Q1+ = Q0 = D1

Expandiendo en Q1 se logra: Q1+ = Q0Q1' +Q0Q1

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 15
Comparando con la ecuación característica, se obtiene:

Q1+ = J1Q1' +K1'Q1

Se logran: J1 = Q0; K1 = Q0'

Si se desea ingresar x a Q0, se debe cumplir: Q0+ = x = D0


En este caso se tendrá: Q0+ = xQ0' +xQ0 = J0Q0' +K0' Q0

Se logran: J0 = x; K0 = x'

13.2.3. Registro de desplazamiento a la derecha de largo 4.

A continuación se ilustra un registro de largo 4, en base a JK:

reset’
rst rst rst rst
x
J Q0 J Q1 J Q2 J Q3
K K K K
clk clk clk clk

clk

Figura 13.21. Registro de desplazamiento a la derecha de largo 4.

Se muestran las formas de ondas cuando se aplica, en la entrada, la secuencia x = 01101110.


Debe notarse, en la gráfica, cómo el valor de x pasa a Q0, el valor de Q0 pasa a Q1, el de Q1 a
Q2, etc.

x
rst
clk
Q3
Q2
Q1
Q0

Figura 13.22. Formas de ondas en registro de desplazamiento.

13.2.4. Registros de desplazamiento TTL

La componente 7491 es un 8-bit shift register, serial-in serial out gated input.

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales
El 7494 es un shift register de 4 bits. Entrada paralela y salida serial. Además tiene entrada
serie. EL 7495, es de 4 bits, tiene entrada serial, carga de entrada en paralelo, salida paralela,
además de controles para corrimiento a la izquierda y a la derecha.

Las componentes 74164, 74165, 74166 son registros de 8 bits.


74194, 74195 y 74198 se denominan universales (de 4 y 8 bits) y tienen carga paralela y
corrimiento en ambas direcciones. Algunos de ellos están disponibles en los simuladores.

13.2.5. Registro universal 74194A.

Para el 74194A de Texas Instruments se entrega la siguiente tabla de funcionamiento:

Funciones 74LS194.
CLR S1 S0 CLK SL SR A B C D QA QB QC QD Función
L X X X X X X X X X L L L L Clear
H X X L X X X X X X Qa Qb Qc Qd Hold
H H H ↑ X X a b c d a b c d Load
H L H ↑ X H X X X X H Qa Qb Qc Shift R
H L H ↑ X L X X X X L Qa Qb Qc Shift R
H H L ↑ H X X X X X Qb Qc Qd H Shift L
H H L ↑ L X X X X X Qb Qc Qd L Shift L
H L L ↑ X X X X X X Qa Qb Qc Qd Hold

Con: SR shift right serial input; SL shift left serial input; A, B, C, D entrada paralela; QA,
QB, QC, QD salida paralela. S0 y S1 entradas de control. La señal CLR es un control
asincrónico, que coloca en cero los flip-flops. El evento que sincroniza las transferencias es el
canto de subida de la señal CLK.

De las especificaciones se logra la siguiente descripción funcional.


S0=1 y S1= 1 generan la señal de carga paralela. ( QA+=A, QB+=B, QC+=C, QD+=D )
S0=0 y S1 =1 corrimiento izquierdo ( QA+ = QB, QB+ = QC, QC+ = QD, QD+ = SL )
S0=1 y S1 =0 corrimiento derecho ( QA+ = SR, QB+ = QA, QC+ = QB, QD+ = QC )
S0=0 y S1 =0 se inhibe el reloj, el registro mantiene su estado (hold).

La siguiente descripción Verilog, modifica la especificación anterior, dejando el control CLR


como sincrónico.

module UniversalShiftRegister(CLR, CLK, SL, SR, S, datos, Q);


input CLR, CLK;
input SL, SR;
input [1:0] S;
input [3:0] datos;
output [3:0] Q;
reg [3:0] Q;

always @(posedge CLK)


if (CLR==0) Q<=0;

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 17
else
begin
if (S==2’b11) Q <= datos;
else if (S==2’b10) Q <= { REG[2:0] , SL};
else if (S==2’b01) Q <= { SR, REG[3:1] };
end
endmodule

El esquemático siguiente es la implementación de Texas Instruments para el 74LS194A.

Figura 13.23. Registro universal Texas.

A partir del esquemático de la Figura 13.23, se obtienen las siguientes ecuaciones, asumiendo
flip-flops Ds, en lugar de SRs. Debe notarse que el estado hold se logra pasando por una
compuerta el reloj externo. Las ecuaciones siguientes permiten una descripción a nivel de
compuertas y flip-flops.

DA = (SR S1' +(S0' +S1')' A + QB S0' )


DB = (QA S1' +(S0' +S1')' B + QC S0' )
DC = (QB S1' +(S0' +S1')' C + QD S0' )
DD = (QC S1' +(S0' +S1')' D + SL S0' )
clk = (clk externo + S1’ S0’)’

Philips en su diseño no modifica el reloj, agregando una decodificación adicional, para


cada flip-flop.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales

Figura 13.23a. Registro universal Philips.

13.3. Registros.

Se denomina registro a una colección de flip-flops con lógica y controles similares. Suelen
compartir el reloj, y las líneas asincrónicas de set y clear.

13.3.1. Registro de almacenamiento.

El siguiente esquema, es un registro de almacenamiento, que muestrea 4 bits disponibles en las


líneas de entrada, los captura en un canto del reloj y los mantiene en las salidas hasta el próximo
canto del reloj.
In0 In1 In2 In3
reset’

rst rst rst rst

D Q0 D Q1 D Q2 D Q3

clk clk clk clk

clk

Out0 Out1 Out2 Out3

Figura 13.24. Registro de almacenamiento.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 19
Una variante del registro anterior, es un registro con habilitación de escritura. Se agrega una
señal adicional WE (write enable), cuya activación permite la escritura en el registro.

13.3.2. Registro de desplazamiento.

El siguiente esquema es un registro de desplazamiento a la derecha, implementado con flip-


flops Ds. Almacena los últimos 4 bits de la secuencia de entrada.
reset’

rst rst rst rst

In D Q0 D Q1 D Q2 D Q3

clk clk clk clk

clk

Out0 Out1 Out2 Out3

Figura 13.25. Registro de desplazamiento a la derecha de largo 4.

13.3.3. Diseño de máquinas en base a registros

Si se agrega un decodificador, que tenga como entradas a las salidas del registro de la Figura
13.25, puede generarse un detector de una secuencia de 4 bits, cada vez que ésta se presente.

13.4. Alternativas de Diseño de Máquinas Secuenciales.

13.4.1. Diseño basado en ROM.

Almacenar el estado en un registro, e implementar las funciones de próximo estado en una


ROM.
ROM registro

entradas
direcciones contenidos

clk

Figura 13.26 Diseño basado en EPROM.

Este esquema se emplea para diseñar unidades de control microprogramadas de procesadores.


La información del próximo estado se almacena en la ROM.

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales
13.4.2. Diseño basado en PLD.

Usar un dispositivo programable con salidas de registro; con esta arquitectura, las
realimentaciones del estado son internas.
PLD

entradas salidas

clk

Figura 13.27. Diseño basado en PLD.

Este esquema se emplea para diseñar unidades de control en firmware, o de lógica alambrada.

13.4.3. Secuenciador.

Una variante del esquema basado en ROM, es emplear, para registrar el estado, un contador
sincrónico con funciones de carga paralela, clear e incrementar; y programar la función de
próximo estado en función de estas señales.
Este esquema se denomina de microsecuenciación y se emplea en diseños de la unidad de
control de procesadores.

Las funciones de las señales de control del contador son:

Cero: llevar al estado inicial.


Inc: pasar al estado siguiente.
Load: presetear un estado determinado
i
Cero i
Inc Load
0000
i+1

Figura 13.28. Operaciones del contador.

Ejemplo 13.1.

Diseñar con un secuenciador el siguiente diagrama de estados.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 21

0000

inc

0001
load load
x= 0 load load load x= 4 x= 5
x=1 x= 2x= 3 load
0100 0110 1000 1011 0011 0010

inc inc
inc 1001 1100
inc
inc

0101 0111 1010 Cero


Cero Cero
Cero Cero Cero

Figura 13.29. Diagrama de estados mediante secuenciador.

El contador registra el estado, y sus salidas están conectadas a las direcciones de la memoria. El
contenido de la memoria son los bits: C, I, L que están conectadas a las señales Cero,
Incrementar y Cargar del registro; además pueden grabarse en la memoria, los diversos bits de
salida que se requieran asociados a cada estado (esquema de Moore).

A continuación se presenta la tabla de transiciones, o programa del secuenciador, notando que la


información del próximo estado no se almacena en la memoria, se incorpora en la tabla sólo con
fines aclaratorios del funcionamiento:

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

Estado Próximo C I L Salidas


0000 0001 0 1 0
0001 0 0 1
0010 0000 1 0 0
0011 0000 1 0 0
0100 0101 0 1 0
0110 0111 0 1 0
1000 1001 0 1 0
1011 1100 0 1 0
1001 1010 0 1 0
1100 0000 1 0 0
0101 0000 1 0 0
0111 0000 1 0 0
1010 0000 1 0 0

Figura 13.30. Programa del secuenciador.

Nótese que los nombres binarios de los estados se eligen para ocupar lo más eficientemente que
sea posible la señal de cuenta o incremento del contador.
Al estado 0000, se llega después del reset inicial. Si la naturaleza del proceso secuencial es
repetitiva, al terminar los diferentes recorridos de estados se retorna al estado inicial. Para esto
se emplea la señal Cero.

Estando en el estado 0001, de acuerdo a la entrada se discierne cuál es el próximo estado. En el


ejemplo existe sólo un estado para el cual existen múltiples bifurcaciones. Se requiere
almacenar la información de los próximos estados de acuerdo a los valores de las entradas, y
cuando se active la señal Load. Esta información se denomina Tabla de Despacho.

Entrada x Próximo estado.


000 0100
001 0110
010 1000
011 1011
100 0011
101 0010

Figura 13.31. Tabla de despacho.

Esta información puede codificarse en una ROM pequeña, o implementarse mediante un PLD.
Debe notarse que en la ROM del secuenciador no se almacena el próximo estado. Esto puede
significar un ahorro importante de memoria, si existe un pequeño número de estados con
múltiples bifurcaciones.
En caso de existir varios nodos con bifurcaciones, es preciso definir otras señales de carga, una
por cada nodo con bifurcaciones, y también igual número de tablas de Despacho. La señal Load
del contador es activada por el or de las señales de carga de las tablas de despacho.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 23
Un esquema general de la arquitectura para diseño de máquinas secuenciales en base a un
secuenciador, se ilustra a continuación.
ROM
Próximo Estado
Contador
Tabla de
Despacho Carga Direcciones
Paralela Contenidos

L C Inc I C L Salidas
Entradas

Figura 13.32. Arquitectura para diseño mediante secuenciador.

13.5. Diseño de controladores.

Un uso frecuente de las máquinas secuenciales sincrónicas es ejercer control sobre dispositivos
asincrónicos con los que se desea intercambiar datos. Un ejemplo de esta situación es la
conexión de un sistema sincrónico con memorias o periféricos.

Especificación del dispositivo.

Para ilustrar consideraremos un dispositivo que genera datos. En la Figura 13.33, se muestra un
diagrama de bloques, indicando las señales de entrada y de salida.

comando
habilita datos
ocupado

Figura 13.33. Dispositivo a ser controlado.

Se envía un pulso de comando que inicia la actividad del periférico, luego de un tiempo el
dispositivo indica que está procesando el requerimiento con la señal ocupado; cuando los
nuevos datos generados por el dispositivo están listos para ser usados, se habilita la salida,
permitiendo de este modo que los datos estén disponibles en el bus de salida. Cuando la salida
está deshabilitada el bus de datos está en un estado de alta impedancia, lo cual permite que
varios dispositivos compartan el bus de datos.

El primer paso del diseño consiste en estudiar la hoja de datos del dispositivo, analizando los
requerimientos temporales. En la Figura 13.34 se muestran las formas de ondas con sus
especificaciones de tiempo.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales
Asumiremos algunos valores de los parámetros para ilustrar el ejemplo.
El ancho del pulso del comando que da inicio a la actividad del dispositivo tiene que tener un
ancho mínimo dado por ta = 300 ns.

Luego del canto de bajada del pulso de comando, transcurre un tiempo de retardo hasta que el
dispositivo inicia su actividad, sea tr = 700 ns. Este tiempo es el máximo indicado por el
fabricante.

Posteriormente a tr, el dispositivo indica que comenzó a efectuar el procesamiento, y mantiene


alta la señal ocupado mientras dure el trabajo interno, sea este tiempo tp = 10 μs. Nótese que
este intervalo es mucho mayor que el indicado en el diagrama, lo cual se indica con una línea
quebrada en su parte superior.

Luego del canto de bajada de ocupado, debe habilitarse la salida, pero los datos estarán
disponibles luego de transcurrido el tiempo de acceso al bus, sea este tiempo tb = 250 ns. Luego
de esto se tienen nuevos datos válidos en el bus de salida, y se podría proceder a su captura. Una
vez almacenados los datos se deshabilita el bus, subiendo la señal habilita. El dispositivo aún
mantiene los datos en el bus un tiempo antes de entrar en flotación, sea este tiempo tf = 150 ns.

comando
ta
ocupado

tr tp

habilita
tb tf
datos validos

Figura 13.34. Requerimientos temporales.

Por otro lado se dispone de un sistema sincrónico que opera con un reloj de 5 MHz, lo cual
implica un período de reloj de 200 ns.

Deseamos diseñar una máquina de estados finitos o controlador que:


a) Acepte órdenes sincrónicas para grabar los datos generados por el dispositivo periférico.
b) Genere las señales de control para el dispositivo, cumpliendo las especificaciones temporales.
c) Encueste la respuesta asincrónica.
d) Permita conocer cuando la operación está realizada.

Especificación del sistema sincrónico.

La Figura 13.35, muestra el entorno del controlador. El sistema sincrónico genera las señal de
reset, para colocar en un estado inicial al controlador; la señal lea para iniciar la lectura; y recibe

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 25
la señal capture, que se emplea para grabar los datos en el registro y como notificación de que la
operación se ha completado.

sistema controlador dispositivo


reset comando
lea habilita
capture ocupado

datos

clk

Figura 13.35. Entorno de diseño.

Debe notarse que las señales que interactúan entre el controlador y el sistema si bien están
sincronizadas por el mismo reloj, lo hacen en cantos diferentes. Esta elección se realiza para
garantizar el cumplimiento de las reglas de sincronización de los flip-flops del controlador y del
sistema, tanto en el tiempo de setup como en el de mantenimiento (hold). Lo cual se ilustra en el
diagrama de la Figura 13.36.

A la izquierda se muestran las señales lea o reset como pulsos de un ancho del reloj de
duración, sus cambios ocurren en los cantos de bajada del reloj, de este modo los flip-flops del
controlador tomarán muestras de sus entradas en los cantos de subida del reloj, instante en que
ambas señales estarán estables. A la derecha se ilustra que el registro que almacena los datos
tendrá su habilitación estable en el canto de bajada del reloj, ya que la señal capture, que
proviene del controlador, cambia entre cantos de subida del reloj.

lea o reset capture


clk clk

Figura 13.36. Entorno de diseño.

El dispositivo puede tener internamente un funcionamiento sincrónico, pero se asume que su


reloj es diferente del reloj del sistema, por esto se dice que la señal ocupado es asincrónica
respecto del controlador. Razón por la cual deberá ser sincronizada, esto lo lograremos haciendo
pasar esta señal por dos flip-flops Ds, antes de ser ingresada al controlador.

Diseño del controlador.

Lo primero que enfrentaremos será generar la señal de control comando, cumpliendo el


requisito del ancho mínimo del pulso. Como el reloj tiene un período de 200 ns, podemos crear
un pulso que dure 400 ns, lo cual cumple la especificación. En la Figura 13.37, se muestra la

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales
señal lea, que ha llegado después de un pulso de reset. En el estado inicial E0, debemos iniciar
la señal comando en nivel alto. Estando en E0, permanece en ese estado mientras la señal lea
esté baja. Estando en E0, cuando la señal lea se encuentra en alto, la red combinacional de
próximo estado genera el nuevo estado E1, el que se actualiza en el próximo canto de subida del
reloj, situación que se ilustra en la Figura 13.37, con el marcador a.
a b d

clk
lea

comando
E0 E1 E2 E3

Figura 13.37. Generación de señal de control comando.

Para lograr el requerimiento de ancho mínimo del pulso comando, debemos mantener baja esta
señal dos períodos del reloj, de este modo la señal tendrá un ancho de 400 ns, que es levemente
mayor al requisito de 350 ns como ancho mínimo. Lo anterior implica disponer de dos estados
E1 y E2, durante los cuales la señal comando esté en 0. La Figura 13.38, muestra la parte del
diagrama de estados que controla la generación de la señal comando, la cual se muestra con la
letra c, en el interior del estado del diagrama de Moore.
reset
E0
lea=0 c=1
lea=1
a
E1
c=0 ocupadoS=0
b
E2 E3
c=0 d c=1

Figura 13.38. Diagrama de estados para la señal de control comando.

Los estados E1 y E2 se emplean para temporizar, por esta razón no se requieren cambios de las
entradas para el cambio de estado. Los instantes en que se producen los cambios al estado E2 y
E3, se muestran con los marcadores temporales b y d, en la Figura 13.37.
El estado E0 se usa para esperar el canto de subida de lea; el estado E3 se emplea para esperar el
canto de subida de ocupadoS, donde esta señal representa la sincronización de la señal ocupado,
generada por el dispositivo asincrónico que se desea controlar. La señal ocupadoS en el peor
caso tiene un retardo de dos períodos de reloj respecto de la señal ocupado, ya que para
sincronizarla se la pasa por dos flip-flops Ds.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 27
Para cumplir con los requerimientos de los flip-flops del controlador, la señal ocupadoS debe
ser sincronizada con los cantos de bajada del reloj.

La Figura 13.39 muestra la transición al estado E4, en el canto marcado con el identificador e.
Que corresponde al siguiente canto de subida en el que se ha sensado ocupadoS en alto.
e f g

clk
ocupadoS

habilita
capture
E3 E4 E5 E6 E0

Figura 13.39. Generación de habilita y capture.

Permanece en E4 hasta que llegue el canto de bajada de ocupadoS; luego en el canto de subida
del reloj, se pasa al estado E5, en el cual se genera el control habilita=0. Se decide generar la
señal capture en el estado siguiente E6, ya que como los datos se graban con el canto de bajada
del reloj, esto ocurrirá 300 ns luego del instante denominado f en el diagrama. Lo cual garantiza
que se tendrán datos válidos en el bus de tercer estado del dispositivo. Finalmente se requiere
deshabilitar la salida y terminar el registro de los datos, esto puede lograrse si el estado inicial
produce los controles: capture=0 y habilita =1. Esto permite la especificación del diagrama de
estado completo del controlador, que se muestra en la Figura 13.40.

reset
E0 E6
capture=1
lea=0 c=1 h=0
lea=1 g
a
E5
E1
h=0
ocupadoS=0
c=0
ocupadoS=0 f
b
E2 E3 e E4
c=0 d c=1 ocupadoS=1 h=1

ocupadoS=1

Figura 13.40. Diagrama de estados del controlador.

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales
Descripción del controlador en Verilog.

module controlador(clk, reset, lea, capture, habilita, comando, ocupado);


// Interfaz con el sistema sincrónico
input clk; // reloj del sistema
input reset;
input lea;
// Interfaz con el dispositivo asincrónico
input ocupado;
reg ocupado1, ocupadoS;
output capture, habilita, comando;
reg capture, habilita, comando;

// Estados internos
reg [2:0] estado;
reg [2:0] proximoestado;
// Declaraciones de estado
parameter E0 = 0;
parameter E1 = 1;
parameter E2 = 2;
parameter E3 = 3;
parameter E4 = 4;
parameter E5 = 5;
parameter E6 = 6;

always @ (negedge clk) //sincronización


begin
ocupado1 <= ocupado;
ocupadoS <= ocupado1;
end

always @ (posedge clk or posedge reset) //cambio de estado


begin
if (reset) estado <= E0;
else estado <= proximoestado;
end

always @ (estado or ocupadoS or lea) //Red de salida y próximo estado


begin
case (estado)
E0: begin
capture = 0; habilita = 1; comando=1;
if(lea) proximoestado = E1;
else proximoestado = E0;
end
E1: begin
capture = 0; habilita = 1; comando=0;

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 29
proximoestado = E2;
end
E2: begin
capture = 0; habilita = 1; comando=0;
proximoestado = E3;
end
E3: begin
capture = 0; habilita = 1; comando=1;
if (ocupadoS) proximoestado = E4;
else proximoestado = E3;
end
E4: begin
capture = 0; habilita = 1; comando=1;
if (!ocupadoS) proximoestado = E5;
else proximoestado = E4;
end
E5: begin
capture = 0; habilita = 0; comando=1;
proximoestado = E6;
end
E6: begin
capture = 1; habilita = 0; comando=1;
proximoestado = E0;
end
default: begin
capture = 1; habilita = 0; comando=1;
proximoestado = E0;
end
endcase
end // always @ (estado or ocupadoS or lea)
endmodule // controlador

Simulación del controlador.

El siguiente módulo genera estímulos para simular funcionalmente el módulo controlador.

`timescale 1ns / 1ps

module test_v;
// Inputs
reg clk;
reg reset;
reg lea;
reg ocupado;
// Outputs
wire capture;

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales
wire habilita;
wire comando;
// Instantiate the Unit Under Test (UUT)
controlador uut (
.clk(clk),
.reset(reset),
.lea(lea),
.capture(capture),
.habilita(habilita),
.comando(comando),
.ocupado(ocupado)
);

initial begin
// Initialize Inputs
clk = 0; reset = 0; lea = 0; ocupado = 0;
// Wait 100 ns for global reset to finish
#100;

// Add stimulus here


reset=1; clk=0; #100; clk=1; #100;
reset=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
lea=1; clk=0; #100; clk=1; #100;
lea=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; ocupado=1;clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; ocupado=0;clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
end

endmodule

Se generan las siguientes formas de ondas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 31

Figura 13.41. Simulación funcional del controlador.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales

Problemas resueltos.

Problema 13.1. Contador

Se tiene un contador binario módulo 5 ascendente (Q2Q1Q0) y un contador binario módulo7


descendente (Q5Q4Q3), con Q3 y Q0 las cifras menos significativas.

a) Diseñar las ecuaciones del contador módulo 5 empleando flip-flops Ds.


b) Diseñar las ecuaciones del contador módulo 7 empleando flip-flops JKs.
c) Generar salida z, que se ponga alta cuando el contador módulo 5 pasa por la cuenta decimal
3, y que se ponga baja cuando el contador módulo 7 pase por la cuenta decimal 1. Si se
producen simultáneamente las cuentas anteriores, la salida debe pasar a cero.
d) Indicar mediante un esquema temporal, respecto de los estados de los contadores y del reloj,
cuando cambia la salida z.
Solución.
a) Para el contador binario módulo 5 ascendente:
Q2Q1
Q0 00 01 11 10
0 2 6 4
0 001 011 ΦΦΦ 000

1 3 7 5
1 010 100 ΦΦΦ ΦΦΦ

Q2+Q1+Q0+

Figura P13.1. Contador módulo cinco

D2 = Q2+ = Q1Q0 D1 = Q1+ = Q1Q0’ + Q1’Q0 D0 = Q0+ = Q2’Q0’

b) Para el contador binario módulo 7 descendente:


Q5Q4
Q3 00 01 11 10
0 2 6 4
0 110 001 101 011

1 3 7 5
1 000 010 ΦΦΦ 100

Q5+Q4+Q3+

Figura P13.2. Contador módulo siete

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 33
Q5+ = J5Q5’ + K5’Q5 = Q5Q4 + Q5Q3 + Q5’Q4’Q3’; J5 = Q4’Q3’ K5 = Q4’Q3’
Q4+ = J4Q4’ + K4’Q4 = Q4Q3 + Q4’Q3’; J4 = Q3’ K4 = Q3’
Q3+ = J3Q3’ + K3’Q3 = Q4Q3’ + Q5Q3’; J3 = Q4 + Q5 K3 = 1

c) Las condiciones se obtienen según:


C3 = Cuenta 3 decimal del módulo 5 = Q2’Q1Q0
C1 = Cuenta 1 decimal del módulo 7 = Q5’Q4’Q3

La siguiente tabla muestra el estado de los contadores, los valores de los decodificadores de
cuenta igual a tres (C3), e igual a uno (C1). También se ilustra el estado de la salida,
considerando que desde el canto de subida de C3 la salida Z toma valor 1, y que Z toma valor
cero desde el canto de subida de C1.

Mod5 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3
Mod7 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5
C3 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
C1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
Z 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 1

Figura P13.3. Estados y salidas. Solución 1.

También se considera correcta la siguiente tabla que muestra los cambios de Z con los cantos de
bajada de las señales C3 y C1.

Mod5 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3
Mod7 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5
C3 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
C1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0
Z 0 0 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0

Figura P13.4. Estados y salidas. Solución 2.

La variable z, debe almacenarse en un flip-flop. No puede obtenerse en términos


combinacionales a partir de C1 y C3.

Lo anterior puede determinarse de varias formas, se consideran correctas, cualquiera de las


explicaciones siguientes:

c1) Observando un valor de uno de los contadores (por ejemplo la cuenta 4 del contador módulo
5), se aprecia que Z a veces es uno y otras es cero, ya que depende del valor anterior de Z.

c2) Si puede construirse una matriz de transiciones y Z+ depende del valor actual de Z.
En el caso que Z+ no dependiera de Z se trataría de una situación combinacional.

c3) Si se puede dibujar un diagrama de estados.

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales
Para confeccionar la tabla de transiciones, se asume que inicialmente z es cero. Entonces si C3 y
C1 son ceros, se conserva el estado de la salida z; si ambas son unos, entonces el próximo valor
de z es cero.
Cuando C3 pasa a 1 estando Z en 0, el próximo valor de Z será 1; y si era 1 permanece en ese
valor.
Cuando C1 pasa a 1 estando Z en 1, el próximo valor de Z será 0; y si era 0 permanece en ese
valor.

C3C1
z 00 01 11 10 0 ,11
Z=0
0 2 6 4
0 0 0 0 1

1 3 7 5 1 10
1 1 0 0 1
Z=1
0
z+

Figura P13.5. Matriz de transiciones.

La función secuencial queda: z+ = C3C1’ + C1’ z

Con flip-flop D resulta Dz = (Q2’Q1Q0 + z) (Q5 +Q4 +Q3’)

Con JK, resulta: Jz = C3C1’ = Q2’Q1Q0(Q5 +Q4 +Q3’) Kz = C1 = Q5’Q4’Q3

d) La implementación anterior conduce a las siguientes formas de ondas, donde z cambia con
los cantos de bajada de las señales C3 y C1. El próximo estado se calcula con los valores
actuales y toma su valor después del canto sincronizante.

clk

C3

C1

Figura P13.6. Formas de ondas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 35
Los diagramas se ilustran con flip-flops activados por canto de subida. La salida z, tiene su
canto de subida coincidente con el canto de bajada de C3, y su canto de bajada coincidente con
el canto de bajada de C1. La señal z es sincrónica, y su ancho de pulso es variable.

La implementación de cambios de z con los cantos de subida de C3 y C1, mediante flip-flops


JK o D, debe basarse en generar la señal C3 cuando el contador módulo 5 pase por la cuenta dos
(Q2’Q1Q0’), y la señal C1 cuando el contador módulo siete pasa por la cuenta dos (Q5’Q4Q3’).
También se consideran correctas soluciones basadas en latchs.

Alternativamente las señales C3 y C1 pueden emplearse para comandar un latch de nor (que
opera con cantos de subida), y tal que el comando set sea C3C1’, y el comando reset sea: C1.

clk R
C1 Z
C3

S
C1
C3C1’

Figura P13.7. Latch de nor.

En el largo plazo la señal z es periódica, después de 35 (5*7) pulsos del reloj, ambos contadores
pasan por cero simultáneamente.

Mod5 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0
Mod7 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0 6 5 4 3 2 1 0

Problema 13.2.

Diseño de máquina de estados.


Para el siguiente diagrama de estados, asumir que el estado inicial es el A, al cual se llega
reseteando asincrónicamente los flip-flops.
a) Explicar el objetivo de la máquina secuencial.
b) Determinar matriz de transiciones.
c) Determinar los estados adyacentes de acuerdo a las reglas de asignación. Indicar los nombres
binarios elegidos para cada estado lógico.
d) Determinar las ecuaciones de próximo estado y de salida.
e) Diseñar empleando flip-flops de tipo D, dibujando el esquemático.

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales

inicial 1/1

A 0/0
B
0/0

1/0
0/1

C
1/0

Figura P13.8. Problema 13.2.

Solución.
a) Se genera un uno en la salida después de una secuencia, de cualquier largo, de ceros o de
unos de la entrada.
Más específicamente, se genera salida uno cuando llega un:
uno en secuencias de uno o más ceros seguidos 01, 001, 0001, 00001, ....
cero en secuencias de uno o más unos seguidos 10, 110, 1110, 11110, ....

b) Se tiene
x
Estado 0 1
A B/0 C/0
B B/0 A/1
C A/1 C/0
Estado+

Figura P13.9. Matriz de transiciones Problema 13.2.

c) Regla 1: Deben ser adyacentes A con B; y A con C


Regla 2: Deben ser adyacentes: B con C, A con B, y A con C
Regla 3: Deben ser adyacentes A con B y A con C.
A debe ser el estado 00 para que se llegue a él, al resetear los flip-flops.
Asignación 1: B = 01; C = 10. Asignación 2: B = 10; C = 01.

Existen dos asignaciones posibles, que cumplen todas las reglas, excepto que B y C sean
adyacentes:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 37

Asig 1 x Asig 2 x
Q1Q0 0 1 Q1Q0 0 1
A=00 01/0 10/0 A=00 10/0 01/0
B=01 01/0 00/1 C=01 00/1 01/0
11 dd/d dd/d 11 dd/d dd/d
C=10 00/1 10/0 B=10 10/0 00/1
Q1+Q0+/z Q1+Q0+/z
Q1+ = x Q0’; Q0+ = x’Q1’ Q1+ = x’ Q0’ ; Q0+ = xQ1’
z = x’ Q1 + x Q0 z = x’Q0 +x Q1

Figura P13.10. Asignaciones Problema 13.2.

e) Para el diseño con la asignación 1, se tienen:


D1 = x Q0’ ; D0 = x’Q1’; z = x’ Q1 + x Q0

Se obtiene:
x

Q1
D1
Q1’

Q0
D0
Q0’

Figura P13.11. Esquemático Problema 13.2.

Para el diseño 2, con Q1 = x’ Q0’ ; Q0 = x Q1’ ; z = x’Q0 + x Q1 el esquemático es similar.

Problema 13.3.

Contador binario
Diseñar un contador binario con salidas sincrónicas, que cuente en forma ascendente si
C = 1; y en forma descendente si C = 0. Si M = 0 debe contar en módulo 5; si M = 1, debe
contar en módulo 7.
Si se cambian los controles, debe ir a la cuenta siguiente, en caso que ésta exista; si la cuenta no
existe debe ir a la cuenta 0.

Profesor Leopoldo Silva Bijit 19-01-2010


38 Sistemas Digitales
a) Escribir la matriz de transición para el contador en función de Q2, Q1, Q0, M y C.
b) Diseñar en base a flip-flops D las ecuaciones de próximo estado en función de Q2, Q1, Q0,
M=0 y C=0.
c) Diseñar en base a flip-flops J-K las ecuaciones de próximo estado en función de Q2, Q1, Q0,
M=1 y C=1.
d) Setear un latch de nand cuando el contador pase por la cuenta 3 y resetear el latch cuando el
contador pase por cuenta 0.

Solución:

a)
111 1 , 00
000 1

0, 11 001
0
01 01 1
00 0
10
110 010
10
01
0 1
11
101 0 0 011
11 100
1
Q2Q1Q0
CM

Figura P13.12. Diagrama de estados Problema 13.3.

CM
Q2Q1Q0 00 01 11 10
000 100 110 001 001
001 000 000 010 010
011 010 010 100 100
010 001 001 011 011
110 000 101 000 000
111 000 110 000 000
101 100 100 110 000
100 011 011 101 000
Q2+Q1+Q0+

Figura P13.13. Matriz de transiciones Problema 13.3.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 39
b)
Q2Q1
Q0 00 01 11 10
0 2 6 4 Q2+ = Q2’Q1’Q0’ + Q2Q1’Q0 = D2
0 100 001 000 011
Q1+ = Q2’Q1Q0 + Q2Q1’Q0’ = D1
1 3 7 5
1 000 010 000 100 Q0+ = Q2’Q1Q0’ + Q2Q1’Q0’ = D2

Q2+ Q1+ Q0+

Figura P13.14. Diseño con M=0 y C=0 Problema 13.3.

c)
Q2Q1
Q0 00 01 11 10
0 2 6 4 Q2+ = Q2Q1’ +Q2’Q1Q0 = J2Q2’+K2’Q2
0 001 011 000 101
Q1+ = Q1’Q0 +Q2’Q1Q0’ = J1Q1’+K1’Q1
1 3 7 5
010 100 000 110 Q0+ = Q2’Q0’+Q1’Q0’ = J0Q0’+K0’Q0
1

Q2+ Q1+ Q0+

Figura P13.15. Diseño con M=1 y C=1 Problema 13.3.

J2 = Q1Q0 K2 = Q1
J1 = Q0 K1 = Q2 + Q0
J0 = Q2’ + Q1’ K0 = 1

d) La cuenta tres ocurre cuando Q2’Q1Q0 es 1.


Por lo tanto S’ = Q2 + Q1’ + Q0’ es la negación de la cuenta tres.
Cuando la cuenta tres tiene un canto de subida se desea que S’ tenga un canto de bajada.

La cuenta cero ocurre cuando Q2’Q1’Q0’ es 1. Por lo tanto R’ = Q2 + Q1 + Q0

La implementación con NAND, es: S’ = (Q2’ Q1 Q0)’ y R’ = (Q2’Q1’Q0’)’

Otra solución para d).


Sea L la salida del latch (usualmente denominada Q).

Estando L en cero, sólo pasa a uno cuando llega a la cuenta 3; estando en estado uno el latch
pasa a cero cuando entra a la cuenta cero. Se tiene entonces la matriz de transiciones siguiente:

Profesor Leopoldo Silva Bijit 19-01-2010


40 Sistemas Digitales

Q2Q1Q0
L 000 001 011 010 110 111 101 100
0 0 0 1 0 0 0 0 0
1 0 1 1 1 1 1 1 1
L+

Figura P13.16 Salida del latch Problema 13.3.

Empleando la siguiente tabla de excitaciones:


Q Q+ S’ R’
0 0 1
0 1 0 1
1 0 1 0
1 1 1

Figura P13.17. Tabla excitaciones Problema 13.3.

Se logran los programas para S’ y R’:


Q2Q1Q0
L 000 001 011 010 110 111 101 100
0 1 1 01 1 1 1 1 1
1 10 1 1 1 1 1 1 1
S’R’

Figura P13.18. Programas SR Problema 13.3.

Resultan: S’ = Q2 + Q1’ + Q0’ y R’ = Q2 +Q1 + Q0

Q2’ S’ L
Q1
Q0

Q2’ R’
Q1’
Q0’

Figura P13.19. Latch SR Problema 13.3.

Problema 13.4.

Se tiene el siguiente circuito:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 41

x
T Q1 D Q0
Flip-flop T Flip-flop D

clk

Figura P13.20. Esquemático Problema 13.4.

Si en t = 0 se tienen Q1 = 0 y Q0 = 0, con las siguientes formas de ondas:

clk

t=0

Figura P13.21. Formas de ondas Problema 13.4.

La señal x cumple las condiciones de set-up y hold.


a) Determinar las formas de ondas de Q1, Q0 y Z, relativas al clk y x.
b) Determinar la matriz de transiciones en el formato:
x
Q1Q0 0 1
00
01
11
10
Q1+ Q0+
Figura P13.22. Formato matriz de transición Problema 13.4.

Solución:
Del esquemático, se tienen:
T = X +Q0 ; D = Q1 ; Z = X + Q1
Ecuaciones de los flip-flops: Q1+ = T Q1 ; Q0+ = D
Reemplazando en las ecuaciones de los flip-flops, se obtienen:

Profesor Leopoldo Silva Bijit 19-01-2010


42 Sistemas Digitales
Q1+ = (X+Q0)Q1’ + (X+Q0)’Q1 = Q1’Q0 + Q1Q0’X’ + Q1’ X
Q0+ = Q1

Es un modelo de Meely.
Como los flip-flops operan con cantos de subida, se tiene la siguiente secuencia de entrada:
X = {0, 1, 0, 0, 1, 0 ..}
Se genera la secuencia de estados y salida:
Q1Q0/Z = 00/0, 10/1, 11/1, 01/1, 10/1, 11/1..}

x
Q1Q0 0 1
00 00/0 10/1
01 10/0 10/1
11 01/1 01/1
10 11/1 01/1
Q1+ Q0+/Z

Figura P13.23. Matriz de transición Problema 13.4.

Las formas de ondas de Q1 y Q0 muestran los retardos de propagación a través de los flip-flops.
El cual se considera despreciable respecto del período del reloj.

La forma de Z, ilustra la dependencia de la salida con la entrada, y también asume que el retardo
a través de la compuerta or, es despreciable respecto del período del reloj. Debe notarse que Z
cambia entre cantos de subida del reloj; es decir, no es una señal sincrónica, lo cual es
característico del modelo de Meely.

clk

t=0
Q1

Q0

Figura P13.24. Formas de ondas Problema 13.4.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 43
Problema 13.5.

Se desea diseñar un contador con una entrada de control C, tal que:


Cuando C=0, el contador cuente en la secuencia: 000, 001, 010, 011, 100, 101, 110, 111.
Cuando C=1, el contador cuenta en la secuencia: 000, 001, 011, 010, 110, 111, 101, 100
El flip-flop más significativo es Q2; el menos significativo es Q0.
Q2 y Q1 son flip-flops Ds; y Q0 es flip-flop JK.
Las secuencias deben repetirse. Si cambia C durante la ejecución debe seguir contando según el
nuevo valor, no retorna al estado inicial. Estado inicial: 000
Determinar las ecuaciones para programar los flip-flops. No dibujar circuito.

Solución.
Matriz de transiciones:
Q2Q1
Q0C 00 01 11 10
0 4 12 8
00 001 011 111 101

1 5 13 9
01 001 110 111 000

3 7 15 11
11 011 010 101 100

2 6 14 10
10 010 100 000 110

Q2+, Q1+, Q0+


Figura P13.25. Matriz de transiciones Problema 13.5.

Hay dos diseños para D2:


Q2+ = Q2'Q1Q0C'+Q1Q0'C+Q2Q0'C'+Q2Q0C+Q2Q1'Q0 (o Q2Q1'C') =D2

Para D1:
Q1+ = Q1Q0'+Q2'Q0C+Q1'Q0C' =D1

Para el JK, se tiene:


Q0+=Q0'C'+Q2'Q1'C+Q2Q1C=Q0'(C'+Q2'Q1'C+Q2Q1C)+Q0( Q2'Q1'C+Q2Q1C)
Comparando coeficientes:
J0 = C'+Q2'Q1'C+Q2Q1C
K0 = ( Q2'Q1'C + Q2Q1C)'
Arreglando:
K0 = ( Q2+Q1+C')( Q2'+Q1'+C')

Profesor Leopoldo Silva Bijit 19-01-2010


44 Sistemas Digitales

Índice general.

CAPÍTULO 13 ............................................................................................................................................1
BLOQUES BÁSICOS SECUENCIALES.................................................................................................1
13.1. CONTADORES. ..................................................................................................................................1
13.1.1. Contador sincrónico binario módulo 4. ...................................................................................1
13.1.2. Contador sincrónico binario módulo 8. ...................................................................................3
13.1.3. Contador sincrónico binario módulo 16. .................................................................................5
13.1.4. Contador binario de ripple, con salida asincrónica. ...............................................................7
13.1.5. Contador de anillo (ring counter). ...........................................................................................8
13.1.6. Contador de Johnson. ..............................................................................................................9
13.1.7. Contador integrado 74163. ....................................................................................................10
13.1.8. Contador sincrónico binario módulo 32. ...............................................................................12
13.1.9. Contador sincrónico módulo 7. ..............................................................................................12
13.1.10. Contador sincrónico módulo 6. ............................................................................................13
13.2. REGISTROS DE DESPLAZAMIENTO. ..................................................................................................13
13.2.1 Usos. .......................................................................................................................................14
13.2.2. Ejemplo de diseño. .................................................................................................................14
13.2.3. Registro de desplazamiento a la derecha de largo 4. ............................................................15
13.2.4. Registros de desplazamiento TTL ..........................................................................................15
13.2.5. Registro universal 74194A. ...................................................................................................16
13.3. REGISTROS. ....................................................................................................................................18
13.3.1. Registro de almacenamiento. .................................................................................................18
13.3.2. Registro de desplazamiento....................................................................................................19
13.3.3. Diseño de máquinas en base a registros ................................................................................19
13.4. ALTERNATIVAS DE DISEÑO DE MÁQUINAS SECUENCIALES. ...........................................................19
13.4.1. Diseño basado en ROM. ........................................................................................................19
13.4.2. Diseño basado en PLD...........................................................................................................20
13.4.3. Secuenciador. .........................................................................................................................20
Ejemplo 13.1. .....................................................................................................................................20
13.5. DISEÑO DE CONTROLADORES. ........................................................................................................23
Especificación del dispositivo. ...........................................................................................................23
Especificación del sistema sincrónico................................................................................................24
Diseño del controlador. .....................................................................................................................25
Descripción del controlador en Verilog.............................................................................................28
Simulación del controlador. ...............................................................................................................29
PROBLEMAS RESUELTOS. ........................................................................................................................32
Problema 13.1. Contador...................................................................................................................32
Problema 13.2. ...................................................................................................................................35
Problema 13.3. ...................................................................................................................................37
Problema 13.4. ...................................................................................................................................40
Problema 13.5. ...................................................................................................................................43
ÍNDICE GENERAL. ....................................................................................................................................44
ÍNDICE DE FIGURAS .................................................................................................................................45

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 13. Bloques básicos secuenciales 45

Índice de figuras

Figura 13.1. Matriz transiciones contador módulo 4. .................................................................... 1


Figura 13.2. Matriz de transiciones contador módulo 4. ............................................................... 2
Figura 13.2.a. Esquemático contador módulo 4. ........................................................................... 2
Figura 13.3. Matriz de transiciones contador módulo 8. ............................................................... 3
Figura 13.4. Matriz de transiciones y diagrama de estados para contador módulo 8. ................... 3
Figura 13.5. Esquemático contador módulo 8 mediante JK. ......................................................... 4
Figura 13.6. Formas de ondas contador módulo 8. ....................................................................... 5
Figura 13.7. Matriz de transiciones contador módulo 16. ............................................................. 5
Figura 13.8. Esquemático contador módulo 8 mediante JK. ......................................................... 6
Figura 13.9. Formas de ondas contador módulo 16. ..................................................................... 6
Figura 13.10. Disminución fan-out. .............................................................................................. 7
Figura 13.11 Contador ondulado o de ripple. ................................................................................ 7
Figura 13.12. Formas de ondas contador ripple. ........................................................................... 8
Figura 13.13. Contador de anillo. .................................................................................................. 8
Figura 13.14. Formas de ondas contador de anillo. ....................................................................... 9
Figura 13.15. Contador de Johnson. .............................................................................................. 9
Figura 13.16. Formas de ondas contador Johnson. ..................................................................... 10
Figura 13.17. Esquemático contador 74163. ............................................................................... 11
Figura 13.17a. Especificación contador 74163. .......................................................................... 11
Figura 13.18. Contador sincrónico módulo 7. ............................................................................. 12
Figura 13.19. Contador sincrónico módulo 6. ............................................................................. 13
Figura 13.20. Transferencia entre dos flip-flops. ........................................................................ 14
Figura 13.21. Registro de desplazamiento a la derecha de largo 4. ............................................ 15
Figura 13.22. Formas de ondas en registro de desplazamiento. .................................................. 15
Figura 13.23. Registro universal Texas. ...................................................................................... 17
Figura 13.23a. Registro universal Philips.................................................................................... 18
Figura 13.24. Registro de almacenamiento. ................................................................................ 18
Figura 13.25. Registro de desplazamiento a la derecha de largo 4. ............................................ 19
Figura 13.26 Diseño basado en EPROM..................................................................................... 19
Figura 13.27. Diseño basado en PLD. ......................................................................................... 20
Figura 13.28. Operaciones del contador. ..................................................................................... 20
Figura 13.29. Diagrama de estados mediante secuenciador. ....................................................... 21
Figura 13.30. Programa del secuenciador. .................................................................................. 22
Figura 13.31. Tabla de despacho. ................................................................................................ 22
Figura 13.32. Arquitectura para diseño mediante secuenciador.................................................. 23
Figura 13.33. Dispositivo a ser controlado.................................................................................. 23
Figura 13.34. Requerimientos temporales. .................................................................................. 24
Figura 13.35. Entorno de diseño. ................................................................................................ 25
Figura 13.36. Entorno de diseño. ................................................................................................ 25
Figura 13.37. Generación de señal de control comando. ............................................................ 26
Figura 13.38. Diagrama de estados para la señal de control comando. ....................................... 26
Figura 13.39. Generación de habilita y capture. ......................................................................... 27
Figura 13.40. Diagrama de estados del controlador. ................................................................... 27

Profesor Leopoldo Silva Bijit 19-01-2010


46 Sistemas Digitales
Figura 13.41. Simulación funcional del controlador. .................................................................. 31
Figura P13.1. Contador módulo cinco ......................................................................................... 32
Figura P13.2. Contador módulo siete .......................................................................................... 32
Figura P13.3. Estados y salidas. Solución 1. ............................................................................... 33
Figura P13.4. Estados y salidas. Solución 2. ............................................................................... 33
Figura P13.5. Matriz de transiciones. .......................................................................................... 34
Figura P13.6. Formas de ondas. .................................................................................................. 34
Figura P13.7. Latch de nor. ......................................................................................................... 35
Figura P13.8. Problema 13.2. ...................................................................................................... 36
Figura P13.9. Matriz de transiciones Problema 13.2. .................................................................. 36
Figura P13.10. Asignaciones Problema 13.2. .............................................................................. 37
Figura P13.11. Esquemático Problema 13.2................................................................................ 37
Figura P13.12. Diagrama de estados Problema 13.3. .................................................................. 38
Figura P13.13. Matriz de transiciones Problema 13.3. ................................................................ 38
Figura P13.14. Diseño con M=0 y C=0 Problema 13.3. ............................................................. 39
Figura P13.15. Diseño con M=1 y C=1 Problema 13.3. ............................................................. 39
Figura P13.16 Salida del latch Problema 13.3............................................................................. 40
Figura P13.17. Tabla excitaciones Problema 13.3. ..................................................................... 40
Figura P13.18. Programas SR Problema 13.3. ............................................................................ 40
Figura P13.19. Latch SR Problema 13.3. .................................................................................... 40
Figura P13.20. Esquemático Problema 13.4................................................................................ 41
Figura P13.21. Formas de ondas Problema 13.4. ........................................................................ 41
Figura P13.22. Formato matriz de transición Problema 13.4. ..................................................... 41
Figura P13.23. Matriz de transición Problema 13.4. ................................................................... 42
Figura P13.24. Formas de ondas Problema 13.4. ........................................................................ 42
Figura P13.25. Matriz de transiciones Problema 13.5. ................................................................ 43

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 14

Máquinas secuenciales asincrónicas.

Se estudiarán algunos circuitos asincrónicos simples que son la base para construir los
diferentes tipos de flip-flops; mostrando las técnicas para lograr la sincronización mediante una
señal de reloj. Luego se analizan los multivibradores aestable y monoestable.
Se analizan en mayor profundidad las carreras y la forma de evitarlas; para finalmente ilustrar
las técnicas de diseño asincrónico basadas en diagramas de flujo y de estado.

14.1 Bases electrónicas para almacenar bits.

Puede almacenarse un nivel lógico como carga en un condensador. El transistor nmos permite
cargar y descargar el condensador, el esquema tiene la ventaja de usar un solo transistor, pero
debido a las fugas (por no ser el dieléctrico ideal) se requiere refrescar la carga cada cierto
tiempo. Es la configuración que se emplea como base de las memorias dinámicas (DRAM).

Vin
C

Vref

Figura 14.1 Almacenamiento en memorias dinámicas.

Para mantener el almacenamiento de un bit en forma permanente (mientras se tenga fuentes


aplicadas) se emplea la siguiente configuración:

Figura 14.2 Almacenamiento estático.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
Que es un elemento de almacenamiento biestable. El empleo de compuertas restaura los niveles,
lo cual permite el almacenamiento estático. La siguiente configuración ilustra que se requieren
cuatro transistores para almacenar un bit (dos por cada inversor), por esta razón las memorias
estáticas SRAM son de mayor costo que las dinámicas.

VDD

Vin1 Vout1 Vout2


Vin2

Figura 14.3 Inversores CMOS realimentados.

La característica de transferencia de los dos inversores en cascada se muestra junto a la recta


que debe satisfacerse por la restricción que impone la conexión de la realimentación. El
amplificador, no inversor, tiene tres puntos de equilibrio posibles, el del centro es inestable; los
otros son estables (por esto se dice biestable) y se emplean para almacenar los estados lógicos.
Una pequeña diferencia entre la recta y la curva, en torno al punto inestable, llevan rápidamente
a una de las situaciones estables. Se producen “saltos” entre las curvas para mantener voltajes
iguales en la entrada y salida; éstos se ilustran con pequeñas flechas entre las curvas, en la
Figura 14.3a.
Vin = Vout
Vout

Vin

Figura 14.3a. Puntos de equilibrio.

Otra forma de analizar los inversores realimentados puede lograrse dibujando las características
de transferencia de cada transistor, en un solo par de ejes coordenados.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 3

Vin2 Vout1

Vout2

Vin1

Figura 14.3b. Características de transferencia individuales.

La probabilidad de que en una transición se llegue exactamente al estado inestable es muy baja.

14.1.1. Metaestabilidad.

Calcularemos la probabilidad de no llegar a un estado estable en un determinado tiempo.


Asumiendo un amplificador lineal, con saturación, las ecuaciones para el siguiente circuito son:
Vout = A Vin; Vout - Vin = Ri; i = C (dVin/dt), esto considerando que la corriente de salida del
amplificador sólo circula por el condensador, como se ilustra en la siguiente figura:

Vout
V
Vout Vin Vin
R
A C
t
Con Vin(0) diferente de cero. T
lineal

Figura 14.4 Análisis metaestabilidad.

Cuya solución es: Vin(t) = Vin(0) e t/ con = RC/(A-1). Además, en general Vout será mayor
que Vin, debido a la amplificación. Por esta razón si el voltaje de entrada aumenta, también lo
hará el de salida y se tendrá que después de un tiempo la tensión de salida satura al
amplificador.

A pesar que el circuito tiene realimentación positiva podría suceder que una determinada
conmutación no se produzca en un tiempo predeterminado. Para estudiar esto suponemos un
modelo simplificado lineal, antes que se sature el amplificador. En ese caso, tendremos:
Vin(T) = Vin(0) e T/
Vout(T) = A Vin(0) e T/ = V es decir, la salida se satura en T = ln( V/( AVin(0) ).

Con Vin(0) < V e -T/ /A, la salida Vout se saturará en un tiempo mayor que T. Entonces la
probabilidad de no llegar a un estado estable en un tiempo T, es el cuociente entre las

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales
situaciones que cumplen la condición dividido por todos los casos independientes que puedan
presentarse. Es decir:
p(no estable en T) = (V e -T/ /A ) / V = e -T/ /A

Se asume que Vin(0) tiene una distribución de probabilidad uniforme entre 0 y V. Puede
imaginarse un gran número de experimentos, algunos de ellos comenzarán con un valor menor
del voltaje inicial que el calculado antes y tomará un tiempo mayor que T para que la salida se
sature en un valor estable, esto se considera un ensayo fallido; los experimentos que comienzan
con un valor mayor se consideran exitosos.
Por otra parte, en un determinado intervalo las conmutaciones se producen en una fracción del
tiempo; esto contempla que no todo el tiempo se están efectuando transiciones. Sea f la fracción
del período del reloj durante la cual el voltaje de entrada esté sufriendo una transición. f se
expresa como el cuociente de lo que dura una transición, dividido por el intervalo entre
transiciones, y es la probabilidad que el voltaje de entrada esté efectuando una transición.
Entonces la probabilidad que en una transición, no se llegue a estado estable en un tiempo T,
queda dada por: p(transición no estable en T) = f e -T/ /A

Con los siguientes valores: A = 10 (una ganancia razonable), con una constante de tiempo de 1
nseg, con f = 0,1; y una frecuencia de cambios de 100MHz puede calcularse el valor de T para
cumplir con cierta probabilidad.
Si asumimos un caso en un año, en que no se alcance el estado estable en T, podremos calcular
el tiempo T. Se asume 100*106 cambios por segundo (sólo cantos de subida o de bajada), en
un año se tendrán: 365*24*60*60 segundos, y por lo tanto:
p = 1/ (3,15 *1015) resulta T = 31 ns.
Con una frecuencia de 100 MHz, y esperando 100 ns, se puede calcular que habrá un caso en
que no se llegue a estabilidad en 1030 años. Puede concluirse que con "buena" probabilidad no
se entra al estado inestable.

14.1.2. Latchs.

Entonces tenemos que dos inversores forman una celda de memoria estática, lo que resta es un
método para almacenar valores lógicos en la celda:
El siguiente esquema ilustra la forma de hacer llegar valores y guardarlos en una celda estática.

cargar
dato valor almacenado

grabar
Figura 14.5 Lectura y escritura.

Existen dos circuitos que cumplen los requerimientos anteriores, y se denominan latch (cerrojo,
picaporte, pasador); uno en base a NAND , el otro en base a NOR. La denominación de las
entradas se explicará más adelante.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 5

S' R
Q Q

Q' Q'
R' S

Figura 14.6 Latch mediante NANDs y NORs.

Los siguientes diagramas muestran valores estables almacenados en las celdas estáticas de 1 bit,
o latchs.
1 1 1 0 0 0
1 0

0 1 1 0 0 1
1 0

Figura 14.7 Valores estáticos almacenados.

14.2. Latch asincrónico S-R. (Latch de NAND)

14.2.1. Esquemático.

Se tiene el siguiente circuito:


Q
S' q
S
qn
R'
R

Qn

Figura 14.8 Variables en latch de NANDs.

Se emplea el nombre latch para referirse a una memoria de un bit, y cuando no existe una señal
de reloj. En éstos, las salidas cambian cuando las entradas cambian. En flip-flops las salidas
cambian respecto al reloj.

Las compuertas se asumen ideales. Y se modela el retardo de propagación, mediante una


componente externa.

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales
14.2.2. Variables.

Apenas ocurran cambios en las entradas de las compuertas (R', S', q y qn) se producirán
simultáneamente los cambios en las salidas Q o Qn, ya que se asume que estas compuertas no
tienen retardo.
El próximo valor que toma q, después de S, será el valor de Q. Dicho de otra forma: el valor
presente de Q será el próximo valor que tome q. Análogamente para Qn.

Analíticamente: Gráficamente:
Q(t)
Q(t) = q(t + S)

Qn(t) = qn(t + R) to t
q(t)

Se tienen: q(t) = Q(t - S)


qn(t) = Qn(t - R) to t

Figura 14.9 Valores presente y próximo, en el tiempo.

Denominaremos:
estado presente al conjunto: {q, qn}
estado próximo al conjunto: {Q, Qn}
Salida al estado presente (máquina de Moore).

Debido a que, como se verá, los eventos que inician los cambios están asociados a los cantos de
bajada de las señales de entrada, se las denomina S´ y R´, siguiendo el convenio general para
identificar a señales de lógica negativa.
En el esquema general de máquina secuencial:

x FPE FS

Y y z

Figura 14.10 Retardos como memorias de corto plazo.

Se destaca que los retardos pueden considerarse como una memoria de corto plazo.
Memorizan el valor anterior de una entrada al bloque de retardo, durante segundos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 7
Para estudiar el circuito secuencial se emplea un diagrama de estados o una matriz de
transiciones.

14.2.3. Ecuaciones.

En el caso del latch de nand, se tienen las siguientes ecuaciones asociadas a la red
combinacional ideal:
Q = (S' qn)' = S''+qn' = S + qn'

Qn = (R' q)' = R'' +q' = R + q’

14.2.4. Matriz de transiciones.

Representándolas en un mapa, se logra la matriz de transiciones siguiente:


S'R'
q qn 00 01 11 10
0 4 12 8
00 11 11 11 11
1 5 13 9
01 11 11 01 01

3 7 15 11
11 11 10 00 01
2 6 14 10
10 11 10 10 11

Q, Qn
Figura 14.11 Matriz de transiciones del latch de NAND.

En la matriz de excitaciones o tabla de transiciones está toda la información para analizar el


latch. Se denomina de excitaciones, notando que las columnas describen las señales de entrada o
estímulos. Matriz de transiciones hace referencia al hecho de que el contenido de cada columna
muestra las transiciones al estado próximo.

Si las entradas no cambian, se está en una de las columnas. Un cambio de una de las entradas
implica un cambio de columna. En una determinada columna, si el próximo estado es igual al
estado presente, se dice que ese estado es estable. En caso contrario, se produce una transición
o cambio de estado.

Suelen encerrarse, con círculos, los estados estables.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
En el diagrama se aprecian tres estados estables. Si el objetivo es usar el circuito para emplearlo
como memoria de un bit (flip-flop), no deberá usarse el estado estable 11; para lo cual basta
restringir que ambas entradas puedan ser cero simultáneamente.

14.2.5. Modo fundamental de operación.

Para simplificar el análisis se define un modo fundamental de operación. En el cual, las


entradas pueden cambiarse sólo cuando se está en estado estable; y sólo un cambio de una
entrada por vez. Otra forma de plantearlo es que los cambios ocurran con una separación
mínima en el tiempo; pero no concurrentes.

Si el próximo estado es inestable ocurre una transición, o cambio de estado.

Si dos o más variables de estado deben cambiar, se dice que se produce una “carrera”.

Se denomina “ciclo” a la ocurrencia de una secuencia de dos o más estados inestables.

Si la carrera origina diferentes transiciones (dependiendo de qué entrada cambia primero), pero
finalmente se llega a un mismo estado estable, la carrera se denomina no crítica. Si se llega a
estados estables diferentes es una carrera crítica.

Si nunca se llega a estados estables, se denomina oscilación.

14.2.6. Diagrama de estados.

La información de la matriz de transiciones puede verse también con un diagrama de estados:


11,10
11/01
10 01

01 00,10 00,01
10
11
00
11,10,01,00
11

00

Figura 14.12. Diagrama de estados del latch de NAND.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 9
14.2.7. Secuencias de interés

Con la condición S'+R'=1, el sistema sólo puede estar en uno de los dos estados estables, que
llamaremos set y reset. En este caso, y una vez terminadas las transiciones, se cumple que qn es
q'.
set = {q = 1, qn = 0}

reset = {q = 0, qn = 1}

Nos interesa estudiar secuencias de las entradas, que llevan de un estado estable al otro. Y que
no se ocupe el estado estable 11, ya que en este caso qn no es la negación lógica de q.
a) Transición set a reset

Entradas en S'=1, R'=1; estado inicial: q=1, qn=0.


Se analiza cuando ocurre un canto de bajada en R':

S'R' S' t
q qn 00 01 11 10
0 4 12 8
00 11 11 11 11 R' t

1 5 13 9
01 11 11 01 01 Q
t
3 7 15 11
11 11 10 00 01 Qn t
S
2 6 14 10 q
10 11 10 10 11 t

qn
R t
Q, Qn
R S
set | | reset
.
Figura 14.13 De set a reset.

Las salidas Q, Qn pasan por la secuencia: 10, 11, 01


El estado q, qn pasa por la misma secuencia, pero con retardo: 10, 11, 01

Después de R más S se produce el cambio a reset.


Durante un corto tiempo, S, se pasa por estado 11. Que no es set ni reset.
Las entradas no pueden cambiar, cuando se están produciendo cambios en el estado interno; es
decir cuando están cambiando las señales q y qn.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales

Estando en reset, un canto de subida en R', no produce cambios. Tampoco se producen cambios
de estado con pulsos en R'. Sólo responde al primer canto de bajada en R', estando en set.
b) Transición de reset a set
Estado inicial: q=0, qn=1. Entradas en S' = 1, R' = 1. Se analiza cuando ocurre un canto de
bajada en S'.
R'
S'R' t
q qn 00 01 11 10
0 4 12 8 S'
00 11 11 11 11 t

1 5 13 9
01 11 11 01 Qn
01 t

3 7 15 11 Q
11 11 10 00 01 t
S
2 6 14 10 qn
t
10 11 10 10 11 R
q
t
Q, Qn
S R

reset | | set
Figura 14.14 De set a reset.

Cuando ocurre canto de bajada de S', estando en reset, después de un tiempo ( S + R) se


llega al estado set.
Estando en set, un canto de subida en S', no produce cambios. Tampoco pulsos en S',
cambian el estado.
Análisis del estado 11 en latch S-R
Con entradas S'=0 y R'=0, después de un tiempo el sistema permanece en estado estable q=1,
qn=1. Pero no es set, ni reset.

a) Si ocurre un canto de subida en S'.


Se tiene S' = 1, R' = 0 y se pasa en forma confiable a reset. Ya que cambia una variable de
estado por vez.

b) Si ocurre un canto de subida en R'.


Se tiene S' = 0, R' = 1 y se pasa en forma confiable a estado set.

c) Si cambian simultáneamente S' y R' a 1.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 11
Pueden suceder 3 casos, considerando “carreras” en las entradas.
c1) S'R' pasa por secuencia: 00, 10, 11
Se llega a reset. S'

R'

mayor que S

Figura 14.15 S’ adelanta a R’.

c2) S'R' pasa por secuencia: 00,01, 11


Se llega a set. S'

R'

mayor que R

Figura 14.16 R’ adelanta a S’.

c3) Cambio simultáneo: 00, 11


S'
Se produce oscilación.

R'

Figura 14.17. S’ y R’ llegan juntas.

Si se excitan ambas variables de estado a la vez, dependiendo de los retardos de las compuertas
puede que una u otra cambie primero, (pero no se queda en un estado estable) ya que
inevitablemente se producirá el cambio de la más lenta. En cualquier caso se llega a un estado
inestable en que ambas variables de estado vuelven a excitarse, generando una oscilación.

En los casos c1 y c2 (con tiempo entre cantos de subida menores que los retardos) también se
producen problemas; ya que las entradas cambian durante las transiciones internas. Para evitar
esta incertidumbre, se suele evitar el estado 11. Esto se logra con la condición S'+R'=1. (Es
decir, que ambas entradas no estén simultáneamente en cero). Además, en estas circunstancias
(caso c), el latch cambia con cantos de subida.
Normalmente se ocupan 8 de los 16 casilleros de la matriz de transición. Las transiciones de set
a reset y viceversa que se analizaron antes.

14.2.8. Funcionamiento restringido.

Si se cumple la condición para funcionamiento confiable, Qn se puede anotar como Q'.


Las casillas del mapa por las que nunca se pase, pueden ser consideradas superfluas.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
Entonces puede escribirse: Q = S'' + q R' + q qn'
El último término sólo interviene cuando q = 1, qn = 0, S' = 1 y R' =0; pero esta situación es
transitoria, en forma estable queda q = 0 y qn = 1, por esta razón puede no considerarse al
plantear la ecuación del próximo estado. De este modo resulta, usando notación abreviada,
reemplazando q por Q y Q por Q+:
Q+ = SQ' + R' Q, formando los grupos: (0, 1, 4, 5) y (6, 7, 14, 15).

S'R'
q qn 00 01 11 10
0 4 12 8
00
1 5 13 9
01 11 01 01
3 7 15 11
11 10 01
2 6 14 10
10 10 10 11

Q, Qn
Figura 14.18. Matriz de transiciones en modo confiable.

Nótese que también puede escribirse, agrupando (0,1,2,3,4,5,6,7) y (6,7,14,15): Q+ = S + R'Q


Tanto las tablas como la ecuación característica, pueden obtenerse conceptualmente a través del
funcionamiento normal del circuito, sin usar la matriz de transiciones.

La ecuación característica puede plantearse según:

Q(k+1) = S(k) + R'(k)Q(k)

Nótese que esta expresión puede obtenerse a partir de: Q = S + qn’ y Qn = R + q’ deducidas
anteriormente, si se hace Qn = qn, y se eliminan estas variables.

La tabla característica, para el latch SR, pueden plantearse:

S' R' Q(k+1)


1 1 Q(k)
1 0 0
0 1 1
0 0 ?

Figura 14.19. Tabla característica S-R.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 13
Con S' + R' = 1:
No cambia de estado con entradas altas. Pasa a reset con canto de bajada en R'.
Pasa a set con canto de bajada en S'. Entradas bajas causan indeterminación.

La tabla de excitaciones, para el latch SR, puede plantearse:


Q(k) Q(k+1) S' R'
0 0 1
0 1 0 1
1 0 1 0
1 1 1

Figura 14.20. Tabla de excitaciones parta S-R.

Si está en reset: permanece en reset si ocurren pulsos en R'; pasa a set con canto de bajada de S'.
Si está en set: permanece en set si ocurren pulsos en S'; pasa a reset con canto de bajada de R'.

Resumen Latch de NAND:


Con: S'+R' = 1
a
S' Q S'

b a >

Q' R'
b >
R’
Q = S+ R

Figura 14.21 Resumen funcionamiento latch de NANDs..

Normalmente S' y R' están en uno lógico, un pulso de corta duración en una de las entradas
produce el correspondiente cambio de estado. La duración del pulso debe ser mayor que el
retardo de ambas compuertas. El evento que inicia la conmutación es el canto de bajada.
Ambas entradas no pueden ser ceros.

El latch de NAND recuerda la última entrada que tuvo un canto de bajada.

14.2.9. Análisis simplificado.

Puede inferirse el funcionamiento del latch de NAND, mediante un análisis simplificado, éste
consiste en asumir una sola variable de estado:

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales

R' S'
Q

S
R
q

Figura 14.22 Análisis con un retardo.

Se tiene para el próximo estado, asumiendo ambas compuertas ideales, que:


Q + = ((R' q)' S')' = S + R' q
Nótese que el retardo de q, respecto de Q, es ahora ( S + R).
La matriz de transiciones resulta:
S'R'
q 00 01 11 10
0 3 6 4
0 1 1 0 0

1 2 7 5
1 1 1 1 0

Q+
Figura 14.23. Matriz de transiciones con un solo retardo.

Y el diagrama de estados asociado se muestra a continuación:

11,01,00
11/10
0 00,01 1

10
Figura 14.24. Diagrama de estados simplificado.

Sin embargo esta simplificación no muestra los problemas del estado 11, y los riesgos de
oscilación al tener ambas entradas bajas. Esto se debe a que el efecto de la carrera entre las
entradas no se puede observar con un modelo obtenido con sólo un retardo de propagación, en
el cual sólo puede observarse Q. Puede restringirse la columna 00, y colocar próximos estados
superfluos.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 15
14.2.10. Simulación de circuitos asincrónicos.

La simulación de estos circuitos, presenta problemas a los programas simuladores. Pero puede
emplearse el siguiente esquema:

V1
Init
S' Q
V2
1

Qn
V3 R'
1

Figura 14.25. Diagrama para simular un latch.

Si se marca el cuadro de mostrar el estado de las líneas, se verán todas no iniciadas o en tercer
estado, esto en el simulador. Si se hiciera correr la simulación, mostraría una oscilación en el
estado.

Para evitar un estado inicial indeterminado, se emplea un nand de tres entradas.


Donde el switch V1 se emplea para dejar en un estado inicial, para esto basta comenzar la
simulación con V1 = 0, y luego de algunos ticks (basta uno) se pasa V1 a uno. El flip-flop queda
en set (1).

Init
Qn
Q
R'
S'
1 2 3 4 5
Figura 14.26. Formas de ondas generadas en la simulación.

Si se generaran pequeños pulsos en S, mediante V2, no se producen cambios de estado.

Un pulso en R, inicia el cambio de estado (2). La simulación muestra los retardos entre las
señales que conmutan. Posteriores pulsos en R, no modifican el estado. No importa la duración
de estos pulsos.
Un canto de bajada en S', inicia el cambio a set (3). Posteriores pulsos en S, no modifican el
estado. No importa la duración de estos pulsos (4).

Estando en set, un pulso angosto de reset (5), en el caso de la figura de un tic, que también es la
propagación de una compuerta, confunden al simulador y se inicia una oscilación. Sucede que

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales
se efectúa un cambio en las entradas antes de que hayan ocurrido todas las transiciones
asociadas al cambio de las entradas; es decir, no se cumple la condición para trabajar en modo
fundamental de operación.

Las siguientes formas de ondas ilustran el funcionamiento no deseado del latch:

Init
Qn
Q
R'
S'
1 2 3
Figura 14.27. Oscilación en latch de NAND.

Si se excita con R'=0 y S'= 0, pasa a estado 11 (1).


Se muestra el efecto de un canto de subida en S' (2). En estas condiciones habría cambio de
estado con canto de bajada y también de subida, lo cual no es deseable.
Un cambio simultáneo de ambas entradas a uno (3), produce oscilación.

14.2 Elimina rebotes (debounce)

Una aplicación común del latch de NAND es eliminar los rebotes mecánicos que se producen
en un interruptor. El siguiente circuito ilustra el funcionamiento.
5V

S'
2.2k

1 Q
S1 5V

2.2k Qn
R'
1

Figura 14.28. Elimina rebotes.

Se colocan resistencias de pull-up para fijar un uno lógico en las entradas al aire. Se emplea un
interruptor de dos posiciones. Se denomina SPDT (polo simple, doble garganta), es decir existe
un punto común, por donde se ingresa la señal, y normalmente un contacto está cerrado
(obviamente el otro está abierto). Se marcan NO (normaly open) y NC (normaly closed).

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 17
Al operar el interruptor se produce un movimiento mecánico que impactará al conector en la
otra posición. En forma microscópica, y debido a choques semi-elásticos, se producen rebotes.
Pueden ser varios rebotes, el proceso mecánico termina después de 5 mseg aproximadamente.

El contacto móvil no produce problemas al despegarse del otro contacto.


La forma de onda en el interruptor, al hacer contacto, exhibe un canto de bajada seguido de
varios pequeños pulsos hasta que se estabiliza en un valor cero, esto debido a que el interruptor
ha dejado de moverse. Entre el primer canto de bajada y el primer canto de subida debido a los
rebotes transcurren 500 nanosegundos aproximadamente. Pero este tiempo es mucho mayor que
el de propagación a través de dos compuertas. En la figura anterior se está en set, al cambiar el
interruptor, el latch conmuta y permanece en reset, ya que absorbe múltiples pulsos en reset.
Igual cosa sucede al volver a operar el interruptor, se cambiará de estado a pesar de los rebotes.
Las salidas Q y Qn están libres de rebotes.

Este elimina rebotes requiere un interruptor de tres terminales, que suele denominarse SPDT.
Existen otros diseños, basados en interruptores de dos terminales (SPST simple polo, simple
throat), que pueden conectar o desconectar dos puntos.

14.3 Sincronización de un S-R

El esquema siguiente ilustra cómo se agrega un reloj a un latch SR, en base a NAND.
Mientras enable esté bajo, las señales S' y R' estarán en uno, por lo que cumplen las condiciones
para funcionamiento normal del latch.
Se ilustran señales de preset' y clear', de lógica negativa, que permiten dejar en un estado inicial
al latch. Su operación sobrepasa a las excitaciones S' y R', en este sentido se dicen que son
asincrónicas con ellas, apenas ocurra un canto de bajada en estas señales, el latch permanecerá
en un estado determinado hasta liberar el control asincrónico, llevándolo a uno. Al igual que con
las señales R’ y S’, debe evitarse mantener preset’ y clear’ en cero al mismo tiempo.

preset'
Set
S'
Q

enable
Q'
R'

clear'
Reset

Figura 14.29. Sincronización. Empleo de señal de reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales
Ahora cuando enable tenga un canto de subida dejará pasar las excitaciones externas Set y
Reset, hacia las entradas del latch S' y R'.

También puede pensarse que enable es una señal de reloj, que sincroniza al latch. En esta
situación, las entradas Set y Reset deben ser estables antes de un canto de subida del reloj. En el
canto de subida se inspeccionan las entradas y después de un tiempo de propagación, ocurre el
canto de bajada en S' o R'. Lo cual implica que para funcionamiento determinístico, no pueden
estar altas ambas entradas externas. Si se cumplen estas condiciones, sólo podrá existir un canto
de bajada en S' o R', garantizando la operación del latch SR.

Se ilustran las formas de ondas para un funcionamiento normal:

clk

Set

S'

Figura 14.30 Funcionamiento normal.

La señal S’ es sincrónica con clk; Set es asincrónica con respecto a clk.

14.4. Latch asincrónico S-R. (Latch de NOR)

14.4.1. Esquemático.

Se tiene el siguiente circuito:


R
Q
qn

q
Qn
S

Figura 14.31. Latch de NOR.

Las compuertas se asumen ideales. Y se modela el retardo de propagación, mediante


componentes externas, ubicadas en el lazo de realimentación.
Apenas ocurran cambios en las entradas R, S, q y qn se producirán simultáneamente los cambios
en las salidas Q o Qn, estas compuertas no tienen retardo.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 19
14.4.2. Variables.

Denominaremos:
estado presente al conjunto: {q, qn}
estado próximo al conjunto: {Q, Qn}
Salida al estado presente (máquina de Moore).

14.4.3. Ecuaciones.

En el caso del latch de NOR, se tienen:


Q = (R + qn )' = R'qn'

Qn = (S + q )' = S'q'

14.4.4. Matriz de transiciones.

Representando en un mapa, se logra la matriz de transiciones siguiente:

SR
q qn 00 01 11 10
0 4 12 8
00 11 01 00 10
1 5 13 9
01 01 01 00 00
3 7 15 11
11 00 00 00 00
2 6 14 10
10 10 00 00 10

Q, Qn
Figura 14.32. Matriz de transiciones latch de nor.

En el diagrama se aprecian tres estados estables. Si el objetivo es usar el circuito para emplearlo
como elemento de memoria, y por lo tanto que q y qn sean el complemento la una de la otra, no
deberá usarse el estado estable 00; para lo cual basta restringir que ambas entradas puedan ser
uno simultáneamente.

14.4.5. Diagrama de estados.

La información de la matriz de transiciones puede verse también con un diagrama de estados:

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales

00,01
00/10
10 01

10 11,01 11,10
01
00
11

11,10,01,00
00

11

Figura 14.33. Diagrama de estados latch de nor.

Con la condición SR=0, el sistema sólo puede estar en uno de dos estados estables, que
llamaremos set y reset. En este caso, y una vez terminadas las transiciones, se cumple que qn es
q'.
set = {q = 1, qn = 0}
reset = {q = 0, qn = 1}

14.4.6. Secuencias de interés.

Nos interesa estudiar secuencias de las entradas, que llevan de un estado estable al otro. Y que
no se ocupe el estado estable 00, ya que en este caso qn no es la negación lógica de q.
La figura ilustra algunas secuencias:

S
R
Q'
Q

1 4 5
2 3

Figura 14.34. Secuencias de interés en latch de nor.

El canto de subida en S (1), inicia el cambio de estado de reset a set.


Luego entre (1) y (2) ocurre una entrada a la columna 11, lo que lleva al estado 00, que no es
adecuado para utilizar el circuito como flip-flop.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 21
En esta situación un canto de bajada (2) también conmuta el latch. No es deseable tener
conmutaciones con cantos de subida y de bajada.

Luego se vuelve a condiciones normales de operación, ambas excitaciones en cero, y se tiene


una conmutación normal a set, en (3).

Estando en estado 00, un cambio simultáneo de las entradas a cero, produce una oscilación (4),
la cual se detiene al llevar el latch a reset. Finalmente en (5) se coloca en modo normal.

14.4.7. Funcionamiento simplificado.

El diagrama de transiciones, marcando como superfluas los estados por los cuales nunca se
pasará, si se cumplen las restricciones para operación normal, se indica a continuación:
SR
q qn 00 01 11 10
0 4 12 8
00 01 10
1 5 13 9
01 01 01 00
3 7 15 11
11

2 6 14 10
10 10 00 10

Q, Qn

Figura 14.35. Funcionamiento simplificado, latch de NORs.

Formando grupos: (8, 10, 12, 14) y (2, 3, 10, 11), se logra:
Q+ = Sqn' + R' q
El mintérmino 8, que cubre la expresión que contiene qn', ocurre sólo durante la transición. En
estado estacionario se tiene qn = 0, por lo tanto, la ecuación característica puede plantearse
según:

Q(k+1) = S(k) + R'(k)Q(k)

La tabla característica, para el latch SR en base a nor, pueden plantearse:

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales

S R Q(k+1)
0 0 Q(k)
1 0 1
0 1 0
1 1 ?
Figura 14.36. Tabla característica, latch de NOR.

Con SR = 0
No cambia estado con entradas bajas. Pasa a set con canto de subida en S.
Pasa a reset con canto de subida en R. Entradas altas causan indeterminación.

La tabla de excitaciones, para el latch SR en base a nor, puede plantearse:

Q(k) Q(k+1) S R
0 0 0
0 1 1 0
1 0 0 1
1 1 0

Figura 14.37. Tabla de excitaciones, latch de NORs.

Si está en reset: permanece en reset si ocurren pulsos en R, pasa a set con canto de subida de S.
Si está en set: permanece en set si ocurren pulsos en S; pasa a reset con canto de subida de R.

14.4.8. Resumen Latch de NOR.

Normalmente S y R están en cero lógico, un pulso de corta duración en una de las entradas
produce el correspondiente cambio de estado. La duración del pulso debe ser mayor que el
retardo de ambas compuertas. Ambas entradas no pueden estar altas. El evento que inicia la
conmutación es el canto de subida. Este latch recuerda la última entrada que tuvo un canto de
subida.

14.4.9. Análisis simplificado, con un retardo.

Puede inferirse el funcionamiento del latch de NOR, mediante un análisis simplificado, éste
consiste en asumir una sola variable de estado:

Se tiene: Q += ((S +q)' + R )'


Entonces: Q+ = R’( S + Q) que es la ecuación característica. El retardo entre Q' y q' es la suma
del retardo de las componentes individuales.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 23

R S Q

Figura 14.38. Esquema con solo una variable de estado.

El siguiente circuito elimina rebotes empleando un latch de nor:


+V
R

0.33k
S1 S Q'

0.33k

Figura 14.39. Elimina rebotes con latch de nor.

Puede verse un diseño de este tipo en el chip 7475.

14.9.10. Latch positivo D

La señal G (por gate) habilita la entrada de cantos de subida hacia el latch de nor, y garantiza el
funcionamiento normal de éste. La entrada D se copia hacia la salida Q cuando G, que actúa
como reloj, está en nivel alto. Cuando G está en nivel cero, el latch mantiene el estado
almacenado. Se dice también que es un latch sensible al nivel.

R Q

G
D
Q'
S

Figura 14.39a. Latch positivo D.

Puede operarse con cantos de bajada de G, si se coloca un inversor en la puerta habilitadora.

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales
14.5. Diseño de latch JK en base a Latch de NOR

Diseño de JK en base a SR:


Se tiene la tabla de transiciones de un JK. Que es la matriz que se desea diseñar.
JK
Q(k) 00 01 11 10
0 0 0 1 1
1 1 0 0 1
Q(k+1)

Figura 14.40 Matriz de transiciones JK.

Y la tabla de transiciones del SR, que es el flip-flop que se empleará:

Q(k) Q(k+1) S R
0 0 0
0 1 1 0
1 0 0 1
1 1 0

Figura 14.41. Tabla de transiciones SR.

Empleando el método tabular, se logra el programa del SR:


JK
Q(k) 00 01 11 10
0 0 0 10 10
1 0 01 01 0
S, R
Figura 14.42. Programa del SR.

Leyendo del mapa se logra: S = JQ' ; R = KQ

El siguiente circuito implementa un JK en base a un SR.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 25

K R
Q

J Q'
S

Figura 14.43. Latch JK basado en SR.

Se tienen las siguientes formas de ondas:

J
K
S
R
Q
Q'

1 2 3 4

Figura 14.44. Formas de ondas en latch JK.

El latch de nor inicialmente está en set. En (1) llega un canto de subida en K, el cual origina un
canto de subida en el control interno del latch de NOR, llevando a uno la excitación R; lo cual
hace cambiar a Q y luego a Q'. El cambio de Q también origina un canto de bajada en R, lo cual
deja en condiciones normales al latch de NOR.
En (2) se aprecia una orden de set, en J. Lo cual lleva a excitar S, que inicia la conmutación del
latch interno; y el cambio de Q' lleva a cero a S, dejando en condiciones predecibles al latch.
En el instante (3) se inicia el modo toggle, que se detiene al llevar a modo hold al JK, en (4)

En el modo toggle, con J y K iguales a uno, se puede dejar pasar sólo una de las entradas hacia
el latch. Esto puede lograrse dejando pasar K si Q=1, ya que esto implica resetear el flip-flop.
Y dejar "pasar" J si Q=0.

14.6. Diseño de un flip-flop JK sincrónico.

Al circuito del punto anterior se le agrega un reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales

K R
Q
K
R
clk
Q'
J S
J S

Figura 14.45. Sincronización de flip-flop JK

Este diseño tiene restricciones del ancho de pulso del reloj. Como puede comprobarse esta
restricción se produce en el modo toggle; es decir con J y K iguales a uno. Para el análisis se
asume que el flip-flop está en modo reset.

Cuando el reloj sube, habilita la excitación S, después de J. A su vez este cambio desencadena
la conmutación del latch, bajando Q' después de S, y luego subiendo Q después de R. Al
mismo tiempo que se levanta Q, se inicia la propagación, a través de la compuerta habilitada por
K y el reloj de un canto de subida en R, lo cual ocurre después de K. Si se llega a producir la
excitación R, el latch volverá a conmutar; salvo que el reloj sea angosto y baje antes que Q suba.
Es decir ancho del pulso del reloj debe ser menor que : S + J+ R

ancho máximo del reloj.


clk

Q'

J
S R K
Figura 14.46. Formas de ondas conmutación JK.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 27
El problema de este diseño es que al cambiar de estado, necesariamente se pasa por estado 00;
es decir los cambios se producen con el reloj en alto.
Para mantener conducta predecible, las entradas no deben cambiar estando el reloj en alto. Y si
dichas entradas provienen de otro flip-flop similar (es decir son salidas de éste), se llega a la
conclusión que para un flip-flop cualquiera: No se pueden cambiar entradas y salidas, de un
mismo flip-flop, en el mismo pulso de reloj.

Para disolver estas restricciones hay dos soluciones.

14.7. Flip-flops disparados por cantos

En estos flip-flops, pueden cambiarse las entradas y salidas en el mismo pulso del reloj.

El pulso angosto del reloj se obtiene mediante redes de disparo; que básicamente derivan un
pulso de entrada. En estos circuitos, se requiere buena pendiente del reloj (no un pulso angosto),
para operación correcta.
Diseños de este tipo se encuentran en el chip 7470.

También puede explicarse el funcionamiento de los disparados por canto mediante un circuito
que genera un reloj muy angosto, que se produce asociado a un canto. El ancho del reloj
generado debe ser de menor ancho que S+ J+ R; si esto es así, cuando ya haya pasado por
estado 00 el reloj comenzará a estar en bajo, y no se activará R.

Con fines didácticos se muestra cómo puede lograrse un reloj angosto con una perturbación:

clk
cp
Generador

1
1

Figura 14.47. Reloj angosto.

Y las formas de ondas:

clk
cp
Figura 14.48. Formas de ondas.

El reloj cp (clock pulse) tiene un ancho de pulso igual a un retardo de compuerta.

Una variante de la idea anterior, es generar un pulso angosto asociado al canto de bajada del
reloj, luego de producirse el evento: canto de subida en J.
En este caso, con J=1, S’=clk + clk’, con clk’ atrasada respecto de clk; se produce perturbación a
la salida del OR, en el canto de bajada del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


28 Sistemas Digitales

J J
S’
clk
J
J
clk
J
J’+clk’
S’

Figura 14.48a. Generación de pulso angosto.

De este modo pueden generarse pulsos adecuados para el latch de nand, que registra los
cambios.

J S’ Q’
J
S
clk

Q
K R
K
R’

Figura 14.48b. JK, disparado por cantos de bajada del reloj.

Los flip-flops JK suelen tener entradas asincrónicas de set y reset, que sobrepasan las entradas
sincrónicas. De esta forma la ecuación característica para un JK:

Q(k+1) = J(k)Q'(k) + K'(k)Q(k)

Con S y R controles asincrónicos de lógica positiva, la ecuación resulta:

Q(k+1) = S + R' ( J(k)Q'(k)+K'(k)Q(k) )

14.8. Master Slave. Maestro-esclavo.

Una solución al problema de sincronización, mediante un pulso angosto, de un flip-flop JK, es


la estructura master-slave, que consiste en dos latchs que operan con dos relojes; uno el
complemento del otro. El latch maestro, captura las entradas con el canto de subida del reloj. El
esclavo inspecciona sus entradas con el canto de bajada del clk, es el reloj clk' en la Figura
14.49. De esta forma el master-slave cambia sus salidas cuando ya ha almacenado
confiablemente las entradas registradas por el maestro.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 29

init
J Rmt Rsl
r v Q

Ssl Q'
K Smt
r v
clk clk'

Figura 14.49. Flip-flop JK master-slave.

Se ilustra la señal init, que inicia los latch, para la simulación, puede considerarse como una
señal asincrónica de preset.

A continuación se ilustran algunas secuencias de valores:


La señal de inicio setea a ambos latch, en el punto (1) se inicia la simulación con valores
iniciales correctos. Como K está inicialmente alto, el primer canto de subida del clock, produce
Smtr, que setea el master. Ese nivel es inspeccionado en el canto de subida de clk' (2), lo que
origina el canto de subida de Rslv, el que a su vez origina la conmutación del latch esclavo. El
flip -flop cambia sus salidas, quedando en estado reset. De esta forma se deshabilita la entrada
K.
J
K
clk
Smt
r
Rmt
r
clk'
Sslv
Rslv
Q
Q'

1 3 4 5
2
a

Figura 14.50. Formas de ondas en flip-flop master-slave.

Profesor Leopoldo Silva Bijit 19-01-2010


30 Sistemas Digitales
En (3) se cambia las entradas J =1 y K = 0. J puede pasar, habilitado por Q', y se genera con el
canto de subida de clk, la señal Rmtr que resetea el master. Ese cambio sólo es tomado en cuenta
por el slave en el canto de subida de clk' (que es el canto de bajada de clk) que genera el set del
esclavo (a); lo que a su vez inicia la conmutación del segundo latch, conmutando la salida.

En (4) se ingresa a modo hold, donde se advierte que no cambia el latch maestro, y que en el
latch esclavo se generan pulsos de set, que no cambian las salidas.
Desde (5) se inicia modo toggle. Donde se aprecian las secuencias de set, reset, set y reset del
maestro y las correlativas reset, set, reset, y set en el esclavo.

Los flip-flops de tipo maestro esclavo tienen asociado un pequeño pulso en la señal clock en la
tabla de funcionamiento. Algunos ejemplos: 7471, 7472, 7473, 7476.

Puede comprobarse que si una señal de entrada está alta durante el reloj será interpretada como
uno en la salida, cuando los latch son en base a NOR. (se denomina captura de unos). Estos
flip-flops no pueden ser alimentados con salidas que tengan perturbaciones de cero. Lo dual
ocurre para latch en base a NAND, en que se capturan ceros.
J
K
clk
Smtr
Rmt
r
clk'
Sslv
Rslv
Q
Q'
2
1

Figura 14.51. Captura de unos.

En (1), estando el reloj alto y en modo set, se captura un uno en la entrada K. Esto podría ser
una perturbación en cero de dicha entrada. Esto ocasiona la conmutación del flip-flop master-
slave.

Nótese que el latch maestro puede estar en cero o en uno, por esta razón en cada canto de subida
de clk' se origina un cambio de estado del latch esclavo.

En (2) se aprecia una captura de un uno en la entrada J, estando en reset la perturbación que
viene en la entrada J hace conmutar al flip-flop.
Para un correcto uso de este tipo de flip-flops las entradas no deben tener perturbaciones en
cero, si son en base a latch de NOR, y en uno si los latchs son de NAND. Los flip-flops
maestro-esclavo no tienen requerimiento de pulsos angostos, ni de pendiente del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 31

Los flip-flops disparados por cantos no tienen la dificultad de los anteriores, pero requieren que
el tiempo de levantamiento (en los disparados por cantos de subida) o el de bajada (en los
disparados por canto de bajada) cumpla cierta pendiente mínima; en caso contrario la derivada
no genera un pulso de suficiente magnitud para comandar los cambios internos.

Master Slave de tipo D.

Tiene la ventaja de no capturar unos o ceros. Ver: Paul Horowitz. “The Art of Electronics”.
1989.

init
D
Rmt Rsl
r v Q

Ssl Q'
Smt
r v
clk clk'

Figura 14.52. Master-slave de tipo D.

14.9. Flip-Flop Sincrónico D.

El siguiente circuito implementa un flip-flop sincrónico tipo D en base a tres latch de NAND.
Este diagrama es la descripción lógica del 7474, su diseño interno es en base a redes de disparo.

Profesor Leopoldo Silva Bijit 19-01-2010


32 Sistemas Digitales

preset’ Dset
t
1

S Q
clear’
1
1

QN
clk
R
1
1

Dclr
D
1

Figura 19.53. Flip-flop sincrónico D.

Se tienen las siguientes formas de ondas que ilustran las conmutaciones internas:

preset
clea
clkr
D
Dset
Dcl
Sr
R
Q
QN
1 2 7
3 4 5 6

Figura 19.54. Formas de ondas. Conmutación flip flop sincrónico D.

El control asincrónico clear deja en estado inicial reset al flip-flop D. En (1).


Los cambios de D son registrados en el latch superior e inferior. En (2) y (5)
Los cantos del reloj provocan la conmutación del latch de salida. Entre (3) y (4) se tiene una
secuencia de set; en (6) y (7) se tiene una secuencia reset.
Puede efectuarse un análisis más detallado de la configuración de entrada de este flip-flop, para
esto se consideran en estado alto, las entradas preset y clear. De este modo la red simplificada
puede verse a continuación:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 33
Dset
1

S
Q
1
1

clk Q
R N
1
1

Dclr
D
1

Figura 19.55. Análisis esquema simplificado.

Se consideran D y clk como entradas. Las salidas serán S y R. No se contempla en el análisis el


latch de salida. Su comportamiento queda determinado por los cantos de bajada de R y S, y que
se asume que no se presentará la situación en que ambas estén bajas.

Se tienen las siguientes ecuaciones, considerando como variables de estado a las señales: s, r,
dset, dclr, que se producen después de un retardo, respecto de las salidas de las compuertas que
se asumen ideales:
S = (dset clk )' R = ( clk dclr s )'
Dset = ( dclr s )' Dclr = ( D r)'

Las cuales implican la siguiente matriz de transiciones:

Profesor Leopoldo Silva Bijit 19-01-2010


34 Sistemas Digitales

clk D
s r dset dclr 00 01 11 10
0000 1111 1111 1111 1111
0001 1111 1111 1111 1111
0011 1111 1111 0111 0111
0010 1111 1111 0111 0111
0110 1111 1110 0110 0111
0111 1111 1110 0110 0111
0101 1111 1110 1110 1111
0100 1111 1110 1110 1111
1100 1111 1110 1110 1111
1101 1101 1100 1000 1001
1111 1101 1100 0000 0001
1110 1111 1110 0110 0111
1010 1111 1111 0111 0111
1011 1101 1101 0001 0001
1001 1101 1101 1001 1001
1000 1111 1111 1111 1111

S, R, Dset, Dclr

Figura 19.56. Matriz de transiciones flip-flop sincrónico D.

Observando la matriz, puede concluirse que:

Cuando el reloj está bajo, las órdenes S y R al latch de salida están en 1, y por lo tanto éste está
en hold.
Con el reloj en bajo, existen dos estados estables, uno asociado a la entrada D=0 y el otro a
D=1. Lo cual establece los valores de los latchs de entrada; si la entrada D está en 0, se tienen
Dset=0 y Dclr=1. Con D=1 se tienen Dset= 1 y Dclr=0.
Si con el reloj bajo, cambia la entrada D, se cambia del estado 1101 al 1110 y viceversa. El
cambio de estado dura dos tiempos de propagación.

Activación del reloj.


Se puede pasar de entradas D=0, clk=0 a D=0 y clk=1.
La entrada D debe estar estable el tiempo de setup (puede haber un cambio de 1 a 0 en D, pero
tiene que permitir estabilizar los latch de entrada en estado 1101, lo cual puede durar dos
propagaciones), antes de que suba el reloj. Lo cual implica pasar del estado 1101 al 1001,
activando un canto de bajada en R, lo cual captura en el latch de salida el valor 0 de D. Mientras
dura esta transición (un tiempo de propagación), no puede cambiarse D. Este requerimiento es el
tiempo de hold.

Se puede pasar de entradas D=1, clk=0 a D=1 y clk=1.


La entrada D debe estar estable el tiempo de setup (puede haber un cambio de 0 a 1 en D, pero
tiene que permitir estabilizar los latch de entrada en estado 1110, lo cual puede durar dos
propagaciones), antes de que suba el reloj. Lo cual implica pasar del estado 1110 al 0110,

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 35
activando un canto de bajada en S, lo cual captura en el latch de salida el valor 1 de D. Mientras
dura esta transición (un tiempo de propagación), no puede cambiarse D. Este requerimiento es el
tiempo de hold.

Estando el reloj alto, D puede cambiar, esto no afecta al valor ya registrado, ya que no se
activan ni S ni R. En caso que D cambie de 0 a 1, habiendo grabado previamente un cero,
permanece en estado 1001. Si se hubiera grabado en la salida un uno, se cambia de 0110 a 0111,
activando un cambio en Dclr.

Luego de los posibles cambios anteriores, el reloj debe volver a cero, lo cual reestablece
valores normales, en uno lógico, para R y S. Quedando en estado 1101 ó 1110 según sea el
valor de D.

14.10. Latch transparente.

Se denomina latch a un elemento de almacenamiento de un bit. Puede conceptualizarse como


un mux realimentado. Apenas G se active (en 1), inmediatamente en Q se copia el valor de D.
Cuando G se desactiva (va a 0) la salida Q se mantiene capturada (latch) mediante la vía de
realimentación.

D
1 Q D Q

0
G

Figura 14.57. Latch transparente.

Una implementación directa mediante compuertas es la siguiente:


D
G
S
Q
P
R

Figura 14.58. Latch transparente mediante compuertas.

Cuando G está alto: Q sigue a D, en forma transparente; en caso contrario, Q permanece estable.
El circuito se denomina Latch D estático, ya que mantiene el dato en Q, mientras G esté
inactivo, no importando cuánto tiempo permanezca bajo (siempre y cuando las fuentes
permanezcan aplicadas).

Profesor Leopoldo Silva Bijit 19-01-2010


36 Sistemas Digitales

Cuando D está alto (y después de un tiempo, Q también estará alto), al ocurrir un canto de
bajada en G, se produce una perturbación (un falso cero) en Q. Esto debido a que las señales R y
S conmutan en tiempos diferentes. Esta perturbación puede afectar a los circuitos conectados a
la salida del latch.

Sin embargo existen dos dificultades importantes, una de ellas es si el ancho del pulso G es
demasiado angosto, esto implicaría que el latch no alcanzaría a setearse. Otra dificultad, y más
importante, es si D cambia casi al mismo tiempo que el latch (candado) se cierra, con el canto
de bajada de G. En este caso no puede determinarse cual será el valor que será capturado.

El siguiente análisis permite determinar el tipo de transiciones cuando se cambian las entradas.
Para esto se plantean las ecuaciones a las salidas de las compuertas:

P=G’; Q=r+s; R=pq; S=GD

Luego se representan las ecuaciones en una tabla de transiciones. Después se procede a estudiar,
a partir de un estado estable, las transiciones que se producen cuando cambia una sola de las
entradas.

Si G y D están largo tiempo en 1, se llega al estado estable 0101.

a) Al llegar un canto de bajada en G se produce una carrera entre p y s, lo cual origina una
oscilación en q y en r, o dependiendo de los retardos podría estabilizarse en uno de los dos
estados estables de la columna. Esta transición es conflictiva.

b) Al llegar un canto de bajada en D, se pasa transitoriamente por el estado 0100 y luego se


estabiliza en 0000.

Con GD=10, con un canto de subida en D, se producen las transiciones: 0001, 0101. Si se
produce canto de bajada en G, se pasa por 1000, y queda estable.
Con GD=00, al cambiar las entradas a 01 ó 10, se producen transiciones a estados estables.
Con GD=01, al cambiar entradas a 00 permanece en estado estable; al cambiar a 11, se
presentan carreras en p y s; pero no es una carrera crítica, y finalmente se llega al estable 0101.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 37

pqrs GD
00 01 11 10
0000 1000 1000 0001 0000
0001 1100 1100 0101 0100
0011 1100 1100 0101 0100
0010 1100 1100 0101 0100
0110 1100 1100 0101 0100
0111 1100 1100 0101 0100
0101 1100 1100 0101 0100
0100 1000 1000 0001 0000
1100 1010 1010 0011 0010
1101 1110 1110 0111 0110
1111 1110 1110 0111 0110
1110 1110 1110 0111 0110
1010 1100 1100 0101 0100
1011 1100 1100 0101 0100
1001 1100 1100 0101 0100
1000 1000 1000 0001 0000
PQRS

Figura 14.58a. Tabla de transiciones latch transparente.

Por estas razones, el diseño de dispositivos secuenciales debe garantizar que las entradas sean
válidas y estables durante los períodos en que éstas pueden influir sobre el cambio de estado.
Para el circuito analizado, estas restricciones son:
ancho pulso
G

set-up hold
Figura 14.59. Restricciones temporales.

La señal G debe permanecer activa por el tiempo que sea suficiente para que el latch pueda
capturar el dato. Esto requiere un ancho mínimo para el pulso G.
El tiempo de set-up debe garantizar que el valor de D se haya propagado a través del lazo de
realimentación antes de que se cierre el latch.
El tiempo de hold debe garantizar que el latch esté cerrado y Q estable antes de permitir
cambios en la entrada D.

Profesor Leopoldo Silva Bijit 19-01-2010


38 Sistemas Digitales
Un mejor diseño del latch consiste en eliminar la perturbación y la posibilidad de carreras
críticas. Esto puede lograrse agregando una compuerta de dos entradas, como se muestra en la
Figura 14.59a.
D
G
S
Q
P
R

Figura 14.59a. Latch sin perturbaciones.

Las ecuaciones se modifican levemente. Se simplifica el análisis no considerando una variable


de estado adicional a la salida del inversor.

P=G’+D; Q=r+s; R=pq; S=GD

La tabla de transiciones resulta ahora:

pqrs GD
00 01 11 10
0000 1000 1000 1001 0000
0001 1100 1100 1101 0100
0011 1100 1100 1101 0100
0010 1100 1100 1101 0100
0110 1100 1100 1101 0100
0111 1100 1100 1101 0100
0101 1100 1100 1101 0100
0100 1000 1000 1001 0000
1100 1010 1010 1011 0010
1101 1110 1110 1111 0110
1111 1110 1110 1111 0110
1110 1110 1110 1111 0110
1010 1100 1100 1101 0100
1011 1100 1100 1101 0100
1001 1100 1100 1101 0100
1000 1000 1000 1001 0000
PQRS

Figura 14.59b. Transiciones latch transparente. Carreras no críticas.

Se producen carreras con GD=11 al pasar las entradas a 10, pero no es crítica. También estando
con GD=10, al cambiar las entradas a 11 se produce una carrera no crítica.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 39
Un latch transparente basado en un latch de NAND se ilustra en la Figura 14.60. Un ejemplo de
éstos es el 74LS373.
D
S Q
D
S
QN
R
I Dn R

Enable

Figura 14.60. Esquema latch 74LS373.

Su principio de funcionamiento se ilustra a través de algunas señales:


captura

Enable
D
S
R
Q
QN
1 2 3 4 5
transparente
Figura 14.61. Formas de ondas latch figura 19.60.

En (1) queda en reset.


Se observa entre (2) y (3) que cambios de D con Enable = 0, no generan cambios.
Los cantos de subida y bajada de Enable generan las correspondientes conmutaciones del latch.
Estando Enable = 1, apenas ocurren cambios en la entrada se producen las conmutaciones del
latch que producen salida. En (4) comienza la conmutación y hasta (5) hay salida "nueva" antes
de la captura del dato con el canto de bajada del Enable. Por esto se denomina transparente a
este latch, permite anticipar la salida del nuevo dato.
Se dice modo captura, ya que al bajar la señal Enable, la salida no puede cambiar.

Registros en base a flip-flops disparados por cantos (por ejemplo: 74LS374) cambian sus salidas
con el canto del reloj, y no anticipan como el latch que se acaba de explicar.

El ancho mínimo del pulso Enable debe ser mayor que S + R. Esto para esperar que hayan
terminado las transiciones de estados internos.

Profesor Leopoldo Silva Bijit 19-01-2010


40 Sistemas Digitales
D no puede cambiar I antes del canto de subida de Enable. De esta forma se generan las
señales S o R, según corresponda, en forma confiable.
D no puede cambiar D+ S+ R, antes del canto de bajada de Enable, para no cambiar las
entradas mientras ocurren transiciones internas. Equivale a un tiempo de set-up. El tiempo de
hold es 0, pues con el canto de bajada de Enable, S y R quedan en 1, luego de un tiempo
mín( D , Dn).

La Figura 14.61a, muestra un latch activado por cantos de bajada del control G.

D
0 Q D Q

1
G

G
Figura 14.61a. Latch transparente negativo.

La Figura 14.61b, muestra un flip-flop de tipo maestro esclavo, implementado con un par de
latchs. El canto de subida del primer latch, deja pasar o muestrea la entrada. Con el canto de
subida del reloj, se toma una muestra de la salida del primer latch (el maestro) que se encuentra
estable, y se la copia al esclavo; capturándola en el canto de bajada, en el segundo latch.

D
0 Qm
1 Qs
1
0

clk clk

Figura 14.61b. Master Slave basado en latchs

14.11. Análisis de Multivibrador aestable.

El circuito de la Figura 14.62 opera como un oscilador elemental.

El análisis comienza identificando las variables de estado: x, y, z. Se identifican X, Y, Z como las


salidas de circuitos combinacionales ideales.

Se tienen: X = (z Init)' ; Y = x' ; Z = y'

La señal Init se ha agregado para dejar en un estado inicial al multivibrador. Esto es importante
para simular en diseño. En un armado de laboratorio, al aplicar la polarización, se producirá una
oscilación naturalmente.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 41

Init X Y Z

x y

Figura 14.62. Oscilador elemental, mediante compuertas.

Puede entonces escribirse la matriz de transiciones:


Init
xyz 0 1
000 111 111
001 111 011
010 110 110
011 110 010
100 101 101
101 101 001
110 100 100
111 100 000
X,Y,Z

Figura 14.63. Matriz de transiciones, oscilador asincrónico figura 14.62.

Donde se aprecia un solo estado estable (101), con Init = 0. Si Init está en cero, después de
algún tiempo, no importando cual es el estado inicial, el sistema queda en estado 101.

Cuando llega un canto de subida en Init, se pasa a próximo estado 001 (sin carreras, ya que sólo
cambia una variable de estado), debe ir a cero la variable x. Esto se produce después de x.

Habiéndose establecido el estado 001, debe efectuarse la transición a 011, nuevamente sin
carreras y después de y debe subir a uno la variable y. Y así sucesivamente hasta llegar al
estado 101, donde el ciclo de transiciones inestables vuelve a repetirse.

Profesor Leopoldo Silva Bijit 19-01-2010


42 Sistemas Digitales

Init
Z
Y
X

Figura 14.64. Formas de ondas multivibrador aestable.

Se muestra un período de la oscilación. En el ciclo ocurre tpHL y tpLH para cada compuerta. Si
las compuertas son iguales, el período resulta: T = 3 ( tpHL + tpLH) .

Similares comportamientos tienen un número impar de inversores, donde la salida del último es
la entrada del primero. En el caso de desear simular el circuito, es preciso colocar una señal de
Init, de tal modo de, después de algunos ticks, llevar todas las salidas a valores lógicos estables.

Los flip-flops se clasifican como multivibradores biestables.

14.12. Multivibrador monoestable.

Este dispositivo permite generar un pulso de ancho programable. Se suele emplear para generar
temporizadores, que desencadenen eventos después de un tiempo dado.
Consisten en incorporar un retardo, generalmente mayor que el de propagación, pudiendo ser el
ancho del pulso generado del orden de los microsegundos. (ver circuito 74LS123).

El siguiente circuito ilustra un diseño posible:

R
Q

Q'
S

Figura 14.65. Multivibrador monoestable.

Con la señal R se inicia el multivibrador. La componente que genera el retardo, suele ser una red
RC, que se intercala después del inversor (y en forma externa al chip). Para fines de simulación
se agrandó el tiempo de propagación del inversor.

Se obtienen las siguientes formas de ondas:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 43

S
R
Q'
Q

1 2 Disparo 3 4

Figura 14.66. Formas de ondas para figura 14.65.

La orden para iniciar la medición de tiempo es el canto de subida de R.


Cuando ocurre un canto de subida en R (1) comienza una conmutación del latch de NOR.
Después que ocurre el canto de bajada de Q, pasa el tiempo del retardo hasta que S sube (2).
Cuando S sube deja Q' en cero.

El tiempo que el multivibrador genera es la señal Q'. Este tiempo se muestra entre los
marcadores (3) y (4), el evento que dispara al multivibrador es el canto de subida de R.
Para operar correctamente debe reponerse a cero la señal R.

Algunos multivibradores son redisparables, esto implica que si existen pulsos en R, mientras se
está generando la banda de tiempo, que es propia del multivibrador (entre (3) y (4)), vuelve a
comenzar la medición del tiempo. Los no redisparables, imponen que hasta que Q' no haya
bajado, no tienen efectos los pulsos en R.

El análisis anterior está basado en usar los conceptos del latch. Sin embargo, puede efectuarse
un análisis asincrónico, como se verá a continuación.

Análisis:

Si se denomina Y a la salida del inversor; se tendrá una nueva variable de estado, se tendrán:

Q+ = (R+qn)' ; Qn+ = (S+q)' ; Y = q' ; S = y

Eliminando la variable interna S, se logra:

Q+ = R' qn'; Qn+ = y' q' ; Y = q'

Con la siguiente tabla de transiciones:

Profesor Leopoldo Silva Bijit 19-01-2010


44 Sistemas Digitales

R
q qn y 0 1
000 111 011
001 101 001
010 011 011
011 001 001
100 100 000
101 100 000
110 000 000
111 000 000
Q+, Qn+, Y

Figura 14.67. Tabla de transiciones de Figura 14.65.

Con estado inicial 100, y entrada R = 0. El canto de subida inicia la transición a 000 sin
carreras. Luego del retardo R pasa a estado inestable 000, el que inicia otra transición; esta
vez con carreras de las variables qn e y. En el caso del multivibrador, se asume Y mucho
mayor que S. Debido a esto llega primero al estado 010, el cual sostiene la transición de y que
aún está en curso; llegando finalmente después de Y (a partir del canto de bajada de q) al
estado, también inestable: 011.
Lo cual excita a la variable qn que baja a cero después de S. Lo cual lleva al estado estable
001. Finalizando el ciclo del monoestable.
La entrada es R, la salida es qn. En R se aplica un canto de subida, y se inicia una ventana de
tiempo, de largo Y, en qn.

El armado del multivibrador consiste en reponer la entrada R a cero, lo cual después de algunas
transiciones coloca a la máquina en estado 100. Y puede volver a emplearse el temporizador,
para ello, debe esperarse un tiempo algo mayor que Y.

Un circuito más sencillo es el siguiente:

Figura 14.68. Otro esquema para multivibrador monoestable.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 45
14.13. Carreras.

El cambio de dos o más variables de estado se denomina carrera; los cambios dentro de una
columna de la tabla de transiciones se propagan por vías alternativas. Los cambios de dos o más
señales a través de redes combinacionales; dependiendo de la duración de los retardos de
propagación, ocasionan diferentes transiciones a través de estados inestables. Si finalmente se
llega a un mismo estado estable, se dice que la carrera no es crítica; en caso contrario se tiene
una carrera crítica, lo cual introduce incertidumbre. En algunos casos esto puede evitarse
efectuando una asignación binaria de los estados que esté libre de carreras; en otros pueden
agregarse estados intermedios que den confiabilidad al diseño.

Si una red asincrónica tiene múltiples entradas, pueden ocurrir carreras entre éstas. En estos
casos, para realizar el análisis, se requiere restringir los cambios de las entradas. No se aceptan
cambios de las entradas cuando están ocurriendo transiciones de estados, y además deben tener
una mínima separación temporal, de tal modo que se logre determinar con certeza los cambios
de estado.

14.13.1. Carrera no crítica.

La siguiente red tiene carreras no críticas.

d
a

x
c
b

Figura 14.69. Carrera no crítica.

Considerando un retardo individual para cada compuerta se tienen cuatro variables de estado.

a+ = d + b; b+ = x + c; c+ = ba’; d+ = xa’

A partir de las ecuaciones se desarrolla la tabla de transiciones, se marcan en ésta los estados
estables. Se tienen los estados estables: 0000 y 1100, uno en cada columna. Se observa que
estando en el estado estable 0000, al cambiar la entrada x a uno, se excitan cambios en b y d, lo
cual implica una carrera entre esas variables.

Profesor Leopoldo Silva Bijit 19-01-2010


46 Sistemas Digitales

x
abcd 0 1
0000 0000 0101
0001 1000 1101
0010 0100 0101
0011 1100 1101
0100 1010 1111
0101 1010 1111
0110 1110 1111
0111 1110 1111
1000 0000 0100
1001 1000 1100
1010 0100 0100
1011 1100 1100
1100 1000 1100
1101 1000 1100
1110 1100 1100
1111 1100 1100
a+b+c+d+

Figura 14.70. Tabla de transiciones. Carrera no crítica.

En la Figura 14.69 se ha agregado la señal r que permite dejar en cero la señal c, y a su vez dejar
en cero la salida b, cuando x=0. De este modo, con x=0 y r=0 puede dejarse, al sistema en
estado 0000.
El siguiente módulo permite simular las transiciones. Se simula primero una propagación lenta
de la señal que genera b.

module ej(x, r, a, b, c, d);


input x, r;
output a, b, c, d;
wire ap;
or #2 G2 (a, d, b);
or #5 G4 (b, c, x); //b se propaga más lentamente que d
and #2 G1 (d, x, ap);
and #2 G3 (c, b, ap, r);
not #1 G5 (ap, a);
endmodule

Con orden para el estado dado por (a, b, c, d) se tienen las siguientes transiciones: 0000, 0001,
1001, 1101, 1100, con los retardos asignados a cada compuerta, que se muestran en el módulo
anterior. En la simulación, luego del reset se tiene un tiempo hasta quedar en estado inicial
0000.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 47

Figura 14.71. Transiciones. Carrera no crítica, gana d.

Con los retardos del módulo que se muestra a continuación, d se propaga más lento que b, se
tienen las siguientes transiciones: 0000, 0100, 1110, 1111, 1101, 1100.

module ej(x, r, a, b, c, d);


input x, r;
output a, b, c, d;
wire ap;

or #2 G2 (a, d, b);
or #2 G4 (b, c, x);
and #5 G1 (d, x, ap); //d se propaga más lentamente
and #2 G3 (c, b, ap, r);
not #1 G5 (ap, a);

endmodule

Figura 14.72. Transiciones. Carrera no crítica, gana b.

En ambas situaciones se llega finalmente al estado estable: 1100, mostrando que la carrera no es
crítica.
Cuando se baja x a cero, se retorna al estado 0000, sin carreras. Se pasa de 1100 a 1000,
cambiando sólo b, y luego a 0000 cambiando a.

Profesor Leopoldo Silva Bijit 19-01-2010


48 Sistemas Digitales
14.13.2. Carrera crítica.

La siguiente matriz de transiciones ilustra una carrera crítica. Se tienen tres estados estables: 00
en la columna con x=0, y dos estados estables en la columna con x=1: 11 y 10. Se tienen las
ecuaciones: a+ = ax + bx; b+ = abx + a’b’x.

x
ab 0 1
00 00 01
01 00 10
11 00 11
10 00 10
a+b+

Figura 14.73. Carrera crítica.

Cuando x es cero, se tiene el estado estable 00, no es necesaria ahora una señal de reset. Cuando
x pasa a 1, después del retardo de propagación de la señal b, se pasa al estado inestable 01, en
este estado inestable se excitan cambios simultáneos en a y b, generándose una carrera.

El siguiente módulo genera, mediante compuertas, las ecuaciones anteriores. Se ha elegido un


retardo mayor para la generación de la señal b.
module ej(x, a, b, c, d, e, f);
input x;
output a, b, c, d, e, f;
wire ap, bp;

not #1 G1 (ap, a);


not #1 G2 (bp, b);
and #2 G3 (c, a, b, x);
and #2 G4 (d, ap, bp, x);
or #6 G5 (b, d, c); //Si b más lento => llega a estado 11

and #3 G6 (e, a, x);


and #3 G7 (f, b, x);
or #2 G8 (a, e, f); //Cambiado este retardo con a más lento => llega a estado 10

endmodule

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 49

Figura 14.74. Carrera crítica. Llegando a 11.

Cambiando el retardo de G5 a 2, y el de G8 a 6, se obtienen:

Figura 14.75. Carrera crítica. Llegando a 10.

Las carreras pueden evitarse con una adecuada asignación de estados. Si en la tabla de
transiciones de la Figura 14.73, se reemplazan los códigos binarios por símbolos se obtiene:

x
ab 0 1
A A B
B A D
C A C
D A D
a+b+

Figura 14.76. Transiciones simbólicas.

Luego de cada estado estable se marcan las transiciones en un diagrama de transiciones entre
estados, cuando se cambia sólo una de las entradas. Estando en estado estable A, con entrada
x=0, se cambia x a 1, desde A se pasa a B, y de B al estable D. Del estado estable C, cuando x

Profesor Leopoldo Silva Bijit 19-01-2010


50 Sistemas Digitales
pasa de 1 a 0, se tiene transición al estado A. Del estado estable D, cuando x pasa de 1 a 0, se
tiene transición al estado A.

B C

Figura 14.77. Transiciones entre estados.

No se producirán carreras si los estados adyacentes tienen codificaciones binarias a distancia


uno. En el caso de la Figura 14.77, no es posible asignar los tres estados A, B y D, que forman
un triángulo, de tal modo que cumplan lo anterior. Es preciso agregar estados intermedios, una
solución se muestra en la Figura 14.78, agregando el estado E.
A

B C
E

Figura 14.78. Estados intermedios.

La tabla de transiciones agregando c, una variable de estado adicional, ya que ahora se tienen
más de 4 estados:
x
abc 0 1
A A B
B A D
C A C
D E D
E A -
a+b+c+

Figura 14.79. Transiciones simbólicas.

Asignando estados binarios de tal modo que estén a distancia uno: A con B; B con D; D con E;
A con E; y finalmente C con A, se obtiene:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 51

x
abc 0 1
000 000 001
001 000 011
100 000 100
011 010 011
010 000 -
a+b+c+

Figura 14.80. Transiciones libres de carreras.

Se obtienen, para el diseño de la red asincrónica libre de carreras:


a+ = ax; b+ = bc + cx; c+ = a’x.

14.14. Diseño de sistema asincrónico basado en diagrama de flujo.

Se desea diseñar un sistema asincrónico que produzca en las salidas, en forma alternada un
pulso de reloj.
f1
clk
Distribuidor
f2

Figura 14.81. Generación de fases de reloj.

clk
f1

f2

Figura 14.82. Formas de ondas de fases de reloj.

Se identifican los estados estables, como los intervalos en los cuales no se producen
transiciones. Se tienen cuatro estados, que se han identificado con las letras A, B, C y D.

clk

f1

f2
A B C D A

Figura 14.83. Estados estables y transiciones.

Profesor Leopoldo Silva Bijit 19-01-2010


52 Sistemas Digitales
Se resume la información anterior en una tabla de flujo de las transiciones. Se destacan los
estados estables, y se asocian las salidas al estado actual.

clk
Presente 0 1 f1f2
A A B 00
B C B 10
C C D 00
D A D 01
Próximo

Figura 14.84. Tabla de flujo de transiciones.

Se describen las transiciones entre estados, mediante un diagrama de transiciones. Se anotan las
transiciones, desde un estado estable a otro, cuando se cambia una de las entradas. Los estados
entre los cuales existe una transición deben codificarse adyacentes, es decir a distancia uno. De
esta manera al producirse la transición sólo se excitará una variable de estado, y no se
producirán carreras.
A

B D

Figura 14.85. Diagrama de transiciones.

En este caso bastan 4 estados.

Código binario
Estado ab
A 00
B 10
C 11
D 01

Figura 14.86. Codificación libre de carreras.

Con la codificación binaria, se escribe la tabla de transiciones, en términos de las variables de


estado: a y b.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 53

clk
ab 0 1 f1f2
00 00 10 00
10 11 10 10
11 11 01 00
01 00 01 01
a+b+

Figura 14.87. Tabla de transiciones.

Se diseñan las redes combinacionales libres de perturbaciones, para esto se cubren implicantes
adyacentes con términos de consenso.

a+ = a clk’ + b’ clk + ab’


b+ = a clk’ + b clk + ab
f1 = ab’
f2 = a’b

14.15. Diseño de sistema asincrónico basado en diagrama de estados.

Diseñar un contador binario asincrónico ascendente, módulo 3, en base a compuertas (sin


emplear flip-flops), el diseño debe estar libre de perturbaciones y carreras. Con z1 la cifra más
significativa y z0 la menos significativa. Se cuentan los cantos de subida de la señal de entrada
x. Asignar estado con puros ceros a aquél en que se encuentra la máquina cuando la entrada
está baja y la cuenta es cero.
a) Determinar diagrama de estados.
b) Asignación de estados libres de carreras
c) Expresar el diseño mediante ecuaciones, indicando cómo elimina las posibles perturbaciones.

Un diagrama de estados, modelo de Moore, de un contador asincrónico módulo 3 se ilustra en la


Figura14.88. La transición entre estados se produce en los cantos de subida y bajada de la señal
de entrada x. Se requieren 6 estados, lo cual implica tres variables de estado, sean éstas: q2, q1 y
q0.
0
0 A F 1
00 00
1 1
1 B E 0
01 10
0 0
0 C D 1
01 1 10

Figura 14.88. Diagrama de estados contador módulo 3.

Profesor Leopoldo Silva Bijit 19-01-2010


54 Sistemas Digitales
La asignación de estados se efectúa de tal modo que los estados adyacentes en la Figura 14.88
estén a distancia 1, la asignación se muestra en la Figura 14.89. Se elige arbitrariamente que el
estado A esté asociado al código 000.

q2q1

q0 00 01 11 10

0 A F E

1 B C D

Figura 14.89. Asignación de estados sin carreras.

Con la asignación de la Figura 14.89, se construye la tabla de transiciones de la Figura 14.90,


donde se han marcado los estados estables, y se agrega la función de salida en las variables z1 y
z0.

x
q2q1q0 0 1
A 000 000 001 00
B 001 011 001 01
C 011 011 111 01
D 111 110 111 10
E 110 110 010 10
F 010 000 010 00
- 101
- 100
q2+q1+q0+ z1z0

Figura 14.90. Tabla de transiciones contador módulo 3.

Mediante un mapa del próximo estado, que se muestra en la Figura 14.91, se efectúa la
minimización considerando las condiciones superfluas y de tal modo que no se produzcan
perturbaciones.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 55

xq2

q1q0 00 01 11 10

00 000 --- --- 001

01 011 --- --- 001

11 011 110 111 111

10 000 110 010 010

q2+q1+q0+

Figura 14.91. Minimización empleando condiciones superfluas.

Las funciones de próximo estado, resultan:

q2+ = x’q2 + x q1q0 + q2q0


q1+ =q2 + x’q0 + xq1 + q1q0
q0+ = q2’q0 + xq1’ + xq0

El término q2q0 en q2+, cubre los implicantes anteriores, cuando ocurre un evento en la
entrada. En la función para q1+, se emplea el término q1q0 para eliminar perturbaciones,
cubriendo implicantes adyacentes.

Mediante el mapa de las funciones de salida, de la Figura 14.92, se obtienen:


z1 = q2
z0 = q2’q0
q2q1

q0 00 01 11 10

0 00 00 10

1 01 01 10

z1z0

Figura 14.92. Minimización de salidas.

Profesor Leopoldo Silva Bijit 19-01-2010


56 Sistemas Digitales
Solución alternativa.
La asignación de estados puede realizarse de múltiples maneras. Se muestra a continuación una
alternativa de diseño, que ilustra la técnica de emplear estados internos inestables, para evitar
carreras.

La asignación de estados se efectúa empleando código Gray, de tal modo que los estados
adyacentes en la Figura 14.93, estén a distancia 1. Se elige que el estado A esté asociado al
código 000; en el ejemplo, F queda con código binario 111, y debe pasar al estado A; esto
implica cambio de tres variables. Se emplean los estados inestables G y H para transitar sin
carreras desde estado F hasta el estado A.

La Figura 14.93 muestra un diagrama de estados para el contador asincrónico módulo 3.

H 1
00
G
00
1 1
1 A F 0
00 10
0 0
0 B E 1
00 10
1 1
1 C D 0
01 0 01

Figura 14.93. Diagrama de estados contador módulo 3.

El método de emplear estados inestables, se visualiza mejor en la tabla de transiciones de la


Figura 14.94, la cual muestra que estando en F, al llegar un canto de subida, se pasa por la
secuencia de estados: 111, 101, 100, 000. En cada transición solo cambia una variable interna;
y los desplazamientos son dentro de la columna con x igual a 1.

Se dejan dos estados próximos sin especificar: estando en G con entrada 0, y estando en H con
entrada 0, que pueden emplearse como condiciones superfluas.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 57

x
q2q1q0 0 1
A 000 001 000 00
B 001 001 011 00
C 011 010 011 01
D 010 010 110 01
E 110 111 110 10
F 111 111 101 10
G 101 - 100 00
H 100 - 000 00
q2+q1+q0+ z1z0

Figura 14.94. Tabla de transiciones contador módulo 3.

La Figura 14.95 muestra un mapa del próximo estado, construido a partir de la tabla de la Figura
14.94. Minimizando las funciones de próximo estado, libres de perturbaciones, se obtienen:

q2+ = xq1q0’ + q2q1 + q2q0


q1+ = xq2’q0 + q1q0’+ x’q1 + q2’q1
q0+ = q2q1q0+ q2'q1'q0 + xq2'q0 + x'q1' + x'q2 + xq1q0
Con lógica de mayor costo que el diseño anterior.

xq2
00 01 11 10
q1q0

00 001 --- 000 000

01 001 --- 100 011

11 010 111 101 011

10 010 111 110 110

q2+q1+q0+

Figura 14.95. Mapa de próximos estados de contador módulo 3.

Las funciones de salida, se representan en el mapa de la Figura 14.96, a partir de la tabla de la


Figura 14.94.

Profesor Leopoldo Silva Bijit 19-01-2010


58 Sistemas Digitales

q2q1
00 01 11 10
q0

0 00 01 10 00

1 00 01 10 00

z1z0

Figura 14.96. Mapa de funciones de salida de contador módulo 3.

Se obtienen:
z1 = q2q1; z0 = q2’q1

La Figura 14.97 muestra las formas de ondas de los cambios de estado relativas a los pulsos
asincrónicos de la entrada x. Se han enumerado los diferentes cambios de las señales, x y q0, en
un período.

C D E F G H A B

x 1 2 3

q2

q1

q0 1 2

z1
z0

Figura 14.97. Relaciones causa-efecto contador módulo 3.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 59
Problemas resueltos.

Problema 14.1.

Para el siguiente circuito secuencial asincrónico:


X
Q

Qn
Y

Figura P14.1.

Determinar:

a) Matriz de transiciones y estados estables.


b) Dibujar las formas de ondas de q y qn (estado actual), relativas a X e Y, asumiendo retardos
x y y para las compuertas.
c) Indicar las restricciones de T1 y T2, respecto a los retardos de las compuertas para tener
modo fundamental de operación. Indicar el tipo de transición, si hay o no carreras, períodos de
oscilación si los hubiera.

T1 T2
Figura P14.2.

Solución.

a) Q = (Xqn)’ = X’ + qn’; Qn = Y + q

Profesor Leopoldo Silva Bijit 19-01-2010


60 Sistemas Digitales
b

x
a

Figura P14.3.

b) El estado inicial se obtiene considerando que luego de un tiempo de tener aplicada las
entradas XY = 00, se llega al estado estable qqn = 11.

c) Cuando ocurre el canto de subida de Y, XY = 01, permanece en qqn = 11. Por lo cual no hay
restricciones para T1 (salvo que sea mayor que cero), tiempo que debe transcurrir antes de
cambiar la entrada X a 1. No hay transiciones.

Luego cuando se produce XY = 11, se excita sólo la variable q (no hay carreras), la cual pasa a
cero después de x; llegando al estado estable qqn = 01.
Por lo tanto se requiere T2 > x para modo fundamental de operación; es decir, el cambio de la
entrada Y se efectúa luego de haberse realizado las transiciones de estado, que demoran x en
este caso.

Y
x
T1 T2

qn

período
y

Figura P14.4.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 61
Después cuando XY = 10, se produce oscilación; pasando por la siguiente secuencia de estados
inestables: 00, 10, 11, 01, la que se repite periódicamente.

No hay carreras, ya que se excita una variable en cada transición.

El período de la oscilación es: 2( x + y). Se asume que los retardos de propagación para
cambios de la salida de alto a bajo y viceversa son iguales.

Problema 14.2.

Para el siguiente circuito secuencial asincrónico:


a) Determinar la matriz de transiciones empleando código Gray, para el estado presente xyzq
(en ese orden las variables)
b) Determinar estados estables.
c) Para las siguientes formas de ondas de las entradas, dibujar la salida Q.
A
B

d) Indicar los retardos entre los cambios de Q con respecto al evento que los produce.

x
A
y
Q
B
z

Figura P14.5.

Solución.
a) Ecuaciones: X = Aq ; Y = AB ; Z = Bq ; Q = x + y + z

Profesor Leopoldo Silva Bijit 19-01-2010


62 Sistemas Digitales

Estado AB
xyzq 00 01 11 10
0000 0000 0000 0100 0000
0001 0000 0010 1110 1000
0011 0001 0011 1111 1001
0010 0001 0001 0101 0001
0110 0001 0001 0101 0001
0111 0001 0011 1111 1001
0101 0001 0011 1111 1001
0100 0001 0001 0101 0001
1100 0001 0001 0101 0001
1101 0001 0011 1111 1001
1111 0001 0011 1111 1001
1110 0001 0001 0101 0001
1010 0001 0001 0101 0001
1011 0001 0011 1111 1001
1001 0001 0011 1111 1001
1000 0001 0001 0101 0001
XYZQ

Figura P14.6.

b) Estados estables 0000, 0011, 1001, 1111

c) Si ambas entradas están en cero, luego de un tiempo se estará en estado estable 0000.
Las entradas (AB) siguen la secuencia: 00, 10, 11, 01, 00, 01, 11, 10, 00

De 00 a 10 no cambia de estado, queda en 0000.


De 10 a 11: pasa por la secuencia de estados: 0100(después de y), 0101(después de q), luego
se produce carrera entre las variables x y z; pudiendo pasar por la secuencia 1101, 1111; o bien
0111, 1111. La carrera no es crítica, ya que en ambos casos se llega al estado estable
1111(después de x o z, según cual sea el retardo mayor).
De 11 a 01: se produce carrera entre las variables x e y. Pasa por los estados 0111, 0011 o bien
1011, 0011. La carrera no es crítica y llega al estado estable 0011 después de x o y, según
cual sea el retardo mayor.
De 01 a 00: Pasa por la secuencia: 0001(después de z) y luego al estable 0000(después de q).
De 00 a 01: Permanece en estado 0000
De 01 a 11: Pasa a 0100(después de y), luego a 0101(después de q), luego se produce carrera
no crítica entre x y z; pasando por 1101, 1111(si x es menor que z) o bien pasa por 0111,
1111(si z es menor que x). Finalmente llega al estable 1111.
De 11 a 10: se produce carrera no crítica entre las variables y y z. Pasa por 1101, 1001(si y es
menor que z) o bien por la secuencia 1011, 1001(si z es menor que y) llegando finalmente
al estable 1001 después de un retardo (el mayor de entre z y y).
De 10 a 00: Después de x pasa a 0001, y luego de q pasa a 0000.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 63

A
B
Q
y+ q z+ q y+ q x+ q

Figura P14.7.

d) se han indicado en el diagrama los retardos correspondientes

Observación: El circuito se conoce como Elemento C de Muller. Cambia a uno sólo cuando
ambas entradas son unos y permanece en ese estado hasta que ambas entradas son cero, instante
en el que va a cero; y permanece en cero hasta que ambas entradas sean iguales a uno.
Detecta la igualdad de las entradas.
A B Q+
0 0 0
0 1 Q
1 0 Q
1 1 1

Figura P14.8.

Problema 14.3.

Para un sistema secuencial asincrónico se tiene la siguiente matriz de transiciones:


AB
xyz 00 01 11 10
000 001 001 001 001
001 001 011 111 101
010 001 001 001 001
011 001 011 111 101
111 000 010 110 100
110 000 000 000 000
101 001 011 111 101
100 001 001 001 001
XYZ

Figura P14.9.

Determinar:
a) Ecuaciones para X, Y, Z
b) Circuito
c) Estados Estables

Profesor Leopoldo Silva Bijit 19-01-2010


64 Sistemas Digitales
d) Estando las entradas (bastante tiempo) en 00, se produce canto de subida en B, determinar la
secuencia de estados.
e) Estando las entradas (bastante tiempo) en 10, se produce canto de bajada en A, determinar
la secuencia de estados.
f) Estando las entradas (bastante tiempo) en 00, se produce canto de subida en B, luego de
llegar a un estado estable se produce un canto de subida en A, determinar la secuencia de
estados.
g) Estando las entradas (bastante tiempo) en 00, se produce canto de subida en A, luego de
llegar a un estado estable se produce un canto de subida en B, determinar la secuencia de
estados.

Solución:
a) Deben plantearse tres ecuaciones, y la implementación debe realizarse con tres compuertas,
ya que cada compuerta aporta una variable de estado.

X = x’zA +xzA = Az
Y = x’zB + xzB = Bz
Z = x’ + y’ = (xy)’
b)
A
X x
X
Z z
Z
B Y Y
y

Figura P14.10.

c) Estados estables: 001, 011, 101


d) Si las entradas están en A = 0 y B = 0, se está en estado 001.
Al ocurrir un canto de subida en B, Y tiene un canto de subida instantáneamente y luego de Y
se pasa al estado 011 que también es estable y permanece en él, si no hay cambio de las
entradas.
e) Si las entradas están en A = 1 y B = 0, se está en estado 101.
Al ocurrir un canto de bajada en A, X tiene un canto de bajada instantáneamente y luego de X
se pasa al estado 001 que también es estable y permanece en él, si no hay cambio de las
entradas.
f) Si las entradas están en A = 0 y B = 0, se está en estado 001.
Al ocurrir un canto de subida en B, Y tiene un canto de subida instantáneamente y luego de Y
se pasa al estado 011 que también es estable; luego se produce un canto de subida en A.
Entonces X pasa instantáneamente a 1, y luego de X se llega a 111. Después de Z se llega a
110. A continuación se produce una carrera entre x e y; después de la cual se pasa a 000(si
ambas cambian simultáneamente) o a 100(si x es más rápida que y) o a 010(si y es más rápida

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 65
que x). En fin, puede decirse que se producirá una oscilación ya que en la columna 11 no se
encuentran estados estables.

001 011 111 110 000 001 111 ......

g) Las tres variables de estado oscilan. Se producen carreras entre las variables x e y.
001 101 111 110 000 001 111 ......

Problema 14.4.

Se dispone de un contador ascendente binario módulo 9, con Q0 la cifra menos significativa.


Diseñar circuito empleando un latch de nand, cuya salida se ponga alta desde la cuenta 3 hasta
la cuenta 8 (ambas inclusive).

Solución.
El latch de nand opera con cantos de bajada de las señales S’ y R’, además debe cuidarse que
ambos controles no queden simultáneamente en cero.
Se tienen, las salidas de los circuitos combinacionales, que detectan cuando el contador módulo
nueve pasa por las cuentas 8, 3 y 0, respectivamente:

C8=Q3
C3 = Q3’Q2’Q1Q0
C0 = Q3’Q2’Q1’Q0’

En la Figura P14.11, se advierte que se puede emplear C3’, tal que su canto de bajada setee el
latch. Para resetear el latch no puede emplearse el canto de bajada de la señal C8, ya que se
viola la condición para funcionamiento confiable del latch. Puede notarse que la señal C0’
cumple las especificaciones de funcionamiento del latch y además establece correctamente la
duración de la salida z.
C3

C8
C0

C3’
C0’

Figura P14.11. Formas de ondas de decodificadores y controles del latch.

Finalmente:

Profesor Leopoldo Silva Bijit 19-01-2010


66 Sistemas Digitales

S’=C3’ z

R’=C0’

Figura 14.12. Latch de nand.

Ejercicios propuestos.

Ejercicio 14.1.

Se tiene el siguiente circuito asincrónico

B z

x
A

Figura E14.1.

a) Determinar tabla de transiciones e indicar estados estables.


b) Determinar las condiciones que deben cumplir los intervalos T1, T2 y T3 para que las
entradas no cambien mientras ocurran transiciones de estados.

Considere la siguiente de secuencia de las entradas:

T1 T2 T3

A
B
x
y
z
Figura E14.2.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 67
Asumir: X = 2 ; Y = 1 ; Z = 4 Con el tiempo de propagación.
Dibujar las formas de ondas de las salidas x, y, z; dada la secuencia de entradas que se muestra.

Ejercicio 14.2.

Analizar la siguiente red:


b

x
a

Figura E14.3.

Ejercicio 14.3.

Para el siguiente módulo descrito en Verilog, identificar el tipo de carreras. Si son críticas,
eliminarlas mediante rediseño de la codificación binaria de los estados.

module ej(x,r,a,b,c,d,e);
input x,r;
output a,b,c,d,e;
wire ap,bp;

not #1 G1 (ap,a);
not #1 G2 (bp,b);
and #2 G3 (c,ap,x);
and #2 G4 (d,a,b,r);
or #6 G5 (b,d,c); //G8=2 G5=6. b más lento => llega a 11
and #3 G6 (e,bp,x);
or #2 G8 (a,e,d); //G8=6 G5=2. a más lento => llega a 01

endmodule

Ejercicio 14.4.

Se tiene el siguiente circuito asincrónico:


X a

b
Y

Figura E14.4.

Profesor Leopoldo Silva Bijit 19-01-2010


68 Sistemas Digitales
a) Determinar tabla de transiciones.
b) Determinar estados Estables.
c) Con Estado1 = { a = 0, b = 0 } y Estado2 = { a = 1, b = 1 } determinar secuencias de las
entradas para pasar del Estado1 al Estado2 en forma confiable y viceversa.
Indicando cuál es el evento que inicia el cambio de estado
d) Qué combinación de las entradas debe evitarse para que no se presenten oscilaciones. Cómo
podría presentarse oscilación?.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 69

Índice general.

CAPÍTULO 14 ........................................................................................................................................... 1
MÁQUINAS SECUENCIALES ASINCRÓNICAS. ............................................................................... 1
14.1 BASES ELECTRÓNICAS PARA ALMACENAR BITS. ............................................................................... 1
14.1.1. Metaestabilidad. ...................................................................................................................... 3
14.1.2. Latchs. ..................................................................................................................................... 4
14.2. LATCH ASINCRÓNICO S-R. (LATCH DE NAND) .............................................................................. 5
14.2.1. Esquemático. ........................................................................................................................... 5
14.2.2. Variables. ................................................................................................................................ 6
14.2.3. Ecuaciones. ............................................................................................................................. 7
14.2.4. Matriz de transiciones. ............................................................................................................ 7
14.2.5. Modo fundamental de operación. ............................................................................................ 8
14.2.6. Diagrama de estados. .............................................................................................................. 8
14.2.7. Secuencias de interés ............................................................................................................... 9
a) Transición set a reset ................................................................................................................................... 9
b) Transición de reset a set............................................................................................................................. 10
Análisis del estado 11 en latch S-R ................................................................................................................ 10
14.2.8. Funcionamiento restringido. ................................................................................................. 11
14.2.9. Análisis simplificado. ............................................................................................................ 13
14.2.10. Simulación de circuitos asincrónicos. ................................................................................. 15
14.2 ELIMINA REBOTES (DEBOUNCE) ...................................................................................................... 16
14.3 SINCRONIZACIÓN DE UN S-R .......................................................................................................... 17
14.4. LATCH ASINCRÓNICO S-R. (LATCH DE NOR) ............................................................................... 18
14.4.1. Esquemático. ......................................................................................................................... 18
14.4.2. Variables. .............................................................................................................................. 19
14.4.3. Ecuaciones. ........................................................................................................................... 19
14.4.4. Matriz de transiciones. .......................................................................................................... 19
14.4.5. Diagrama de estados. ............................................................................................................ 19
14.4.6. Secuencias de interés. ............................................................................................................ 20
14.4.7. Funcionamiento simplificado. ............................................................................................... 21
14.4.8. Resumen Latch de NOR. ........................................................................................................ 22
14.4.9. Análisis simplificado, con un retardo. ................................................................................... 22
14.9.10. Latch positivo D .................................................................................................................. 23
14.5. DISEÑO DE LATCH JK EN BASE A LATCH DE NOR......................................................................... 24
14.6. DISEÑO DE UN FLIP-FLOP JK SINCRÓNICO. ..................................................................................... 25
14.7. FLIP-FLOPS DISPARADOS POR CANTOS ........................................................................................... 27
14.8. MASTER SLAVE. MAESTRO-ESCLAVO............................................................................................ 28
Master Slave de tipo D. ..................................................................................................................... 31
14.9. FLIP-FLOP SINCRÓNICO D. ............................................................................................................ 31
14.10. LATCH TRANSPARENTE. ............................................................................................................... 35
14.11. ANÁLISIS DE MULTIVIBRADOR AESTABLE. .................................................................................. 40
14.12. MULTIVIBRADOR MONOESTABLE................................................................................................. 42
Análisis:............................................................................................................................................. 43
14.13. CARRERAS. .................................................................................................................................. 45
14.13.1. Carrera no crítica. .............................................................................................................. 45

Profesor Leopoldo Silva Bijit 19-01-2010


70 Sistemas Digitales
14.13.2. Carrera crítica. ....................................................................................................................48
14.14. DISEÑO DE SISTEMA ASINCRÓNICO BASADO EN DIAGRAMA DE FLUJO. .........................................51
14.15. DISEÑO DE SISTEMA ASINCRÓNICO BASADO EN DIAGRAMA DE ESTADOS......................................53
PROBLEMAS RESUELTOS. ........................................................................................................................59
Problema 14.1. ...................................................................................................................................59
Problema 14.2. ...................................................................................................................................61
Problema 14.3. ...................................................................................................................................63
Problema 14.4. ...................................................................................................................................65
EJERCICIOS PROPUESTOS. ........................................................................................................................66
Ejercicio 14.1. ....................................................................................................................................66
Ejercicio 14.2. ....................................................................................................................................67
Ejercicio 14.3. ....................................................................................................................................67
Ejercicio 14.4. ....................................................................................................................................67
ÍNDICE GENERAL. ....................................................................................................................................69
ÍNDICE DE FIGURAS .................................................................................................................................71

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 71

Índice de figuras

Figura 14.1 Almacenamiento en memorias dinámicas.................................................................. 1


Figura 14.2 Almacenamiento estático. .......................................................................................... 1
Figura 14.3 Inversores CMOS realimentados. .............................................................................. 2
Figura 14.3a. Puntos de equilibrio................................................................................................ 2
Figura 14.3b. Características de transferencia individuales. ......................................................... 3
Figura 14.4 Análisis metaestabilidad. ........................................................................................... 3
Figura 14.5 Lectura y escritura...................................................................................................... 4
Figura 14.6 Latch mediante NANDs y NORs. ............................................................................. 5
Figura 14.7 Valores estáticos almacenados. .................................................................................. 5
Figura 14.8 Variables en latch de NANDs. ................................................................................... 5
Figura 14.9 Valores presente y próximo, en el tiempo.................................................................. 6
Figura 14.10 Retardos como memorias de corto plazo. ................................................................ 6
Figura 14.11 Matriz de transiciones del latch de NAND. ............................................................. 7
Figura 14.12. Diagrama de estados del latch de NAND. .............................................................. 8
Figura 14.13 De set a reset. ........................................................................................................... 9
Figura 14.14 De set a reset. ......................................................................................................... 10
Figura 14.15 S’ adelanta a R’. ..................................................................................................... 11
Figura 14.16 R’ adelanta a S’. ..................................................................................................... 11
Figura 14.17. S’ y R’ llegan juntas. ............................................................................................. 11
Figura 14.18. Matriz de transiciones en modo confiable. ........................................................... 12
Figura 14.19. Tabla característica S-R. ....................................................................................... 12
Figura 14.20. Tabla de excitaciones parta S-R. ........................................................................... 13
Figura 14.21 Resumen funcionamiento latch de NANDs.. ......................................................... 13
Figura 14.22 Análisis con un retardo. ......................................................................................... 14
Figura 14.23. Matriz de transiciones con un solo retardo. .......................................................... 14
Figura 14.24. Diagrama de estados simplificado. ....................................................................... 14
Figura 14.25. Diagrama para simular un latch. ........................................................................... 15
Figura 14.26. Formas de ondas generadas en la simulación. ..................................................... 15
Figura 14.27. Oscilación en latch de NAND. .............................................................................. 16
Figura 14.28. Elimina rebotes. .................................................................................................... 16
Figura 14.29. Sincronización. Empleo de señal de reloj. ............................................................ 17
Figura 14.30 Funcionamiento normal. ........................................................................................ 18
Figura 14.31. Latch de NOR. ...................................................................................................... 18
Figura 14.32. Matriz de transiciones latch de nor. ...................................................................... 19
Figura 14.33. Diagrama de estados latch de nor. ........................................................................ 20
Figura 14.34. Secuencias de interés en latch de nor. ................................................................... 20
Figura 14.35. Funcionamiento simplificado, latch de NORs. .................................................... 21
Figura 14.36. Tabla característica, latch de NOR. ...................................................................... 22
Figura 14.37. Tabla de excitaciones, latch de NORs. ................................................................. 22
Figura 14.38. Esquema con solo una variable de estado. ............................................................ 23
Figura 14.39. Elimina rebotes con latch de nor. .......................................................................... 23
Figura 14.39a. Latch positivo D. ................................................................................................. 23
Figura 14.40 Matriz de transiciones JK....................................................................................... 24

Profesor Leopoldo Silva Bijit 19-01-2010


72 Sistemas Digitales
Figura 14.41. Tabla de transiciones SR. ...................................................................................... 24
Figura 14.42. Programa del SR. .................................................................................................. 24
Figura 14.43. Latch JK basado en SR. ........................................................................................ 25
Figura 14.44. Formas de ondas en latch JK. ............................................................................... 25
Figura 14.45. Sincronización de flip-flop JK .............................................................................. 26
Figura 14.46. Formas de ondas conmutación JK......................................................................... 26
Figura 14.47. Reloj angosto......................................................................................................... 27
Figura 14.48. Formas de ondas.................................................................................................... 27
Figura 14.48a. Generación de pulso angosto. .............................................................................. 28
Figura 14.48b. JK, disparado por cantos de bajada del reloj. ...................................................... 28
Figura 14.49. Flip-flop JK master-slave. ..................................................................................... 29
Figura 14.50. Formas de ondas en flip-flop master-slave. .......................................................... 29
Figura 14.51. Captura de unos. .................................................................................................... 30
Figura 14.52. Master-slave de tipo D. ......................................................................................... 31
Figura 19.53. Flip-flop sincrónico D. .......................................................................................... 32
Figura 19.54. Formas de ondas. Conmutación flip flop sincrónico D. ........................................ 32
Figura 19.55. Análisis esquema simplificado. ............................................................................. 33
Figura 19.56. Matriz de transiciones flip-flop sincrónico D. ...................................................... 34
Figura 14.57. Latch transparente. ................................................................................................ 35
Figura 14.58. Latch transparente mediante compuertas. ............................................................. 35
Figura 14.58a. Tabla de transiciones latch transparente. ............................................................. 37
Figura 14.59. Restricciones temporales. ...................................................................................... 37
Figura 14.59a. Latch sin perturbaciones. ..................................................................................... 38
Figura 14.59b. Transiciones latch transparente. Carreras no críticas. ......................................... 38
Figura 14.60. Esquema latch 74LS373........................................................................................ 39
Figura 14.61. Formas de ondas latch figura 19.60. ..................................................................... 39
Figura 14.61a. Latch transparente negativo................................................................................. 40
Figura 14.61b. Master Slave basado en latchs............................................................................. 40
Figura 14.62. Oscilador elemental, mediante compuertas. .......................................................... 41
Figura 14.63. Matriz de transiciones, oscilador asincrónico figura 14.62. .................................. 41
Figura 14.64. Formas de ondas multivibrador aestable. .............................................................. 42
Figura 14.65. Multivibrador monoestable. .................................................................................. 42
Figura 14.66. Formas de ondas para figura 14.65. ...................................................................... 43
Figura 14.67. Tabla de transiciones de Figura 14.65. .................................................................. 44
Figura 14.68. Otro esquema para multivibrador monoestable. ................................................... 44
Figura 14.69. Carrera no crítica. .................................................................................................. 45
Figura 14.70. Tabla de transiciones. Carrera no crítica. .............................................................. 46
Figura 14.71. Transiciones. Carrera no crítica, gana d. ............................................................... 47
Figura 14.72. Transiciones. Carrera no crítica, gana b. ............................................................... 47
Figura 14.73. Carrera crítica. ....................................................................................................... 48
Figura 14.74. Carrera crítica. Llegando a 11. .............................................................................. 49
Figura 14.75. Carrera crítica. Llegando a 10. .............................................................................. 49
Figura 14.76. Transiciones simbólicas. ....................................................................................... 49
Figura 14.77. Transiciones entre estados..................................................................................... 50
Figura 14.78. Estados intermedios. ............................................................................................. 50
Figura 14.79. Transiciones simbólicas. ....................................................................................... 50
Figura 14.80. Transiciones libres de carreras. ............................................................................. 51

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 14. Máquinas secuenciales asincrónicas 73
Figura 14.81. Generación de fases de reloj. ................................................................................ 51
Figura 14.82. Formas de ondas de fases de reloj. ........................................................................ 51
Figura 14.83. Estados estables y transiciones. ............................................................................ 51
Figura 14.84. Tabla de flujo de transiciones. .............................................................................. 52
Figura 14.85. Diagrama de transiciones. ..................................................................................... 52
Figura 14.86. Codificación libre de carreras. .............................................................................. 52
Figura 14.87. Tabla de transiciones............................................................................................. 53
Figura 14.88. Diagrama de estados contador módulo 3. ............................................................. 53
Figura 14.89. Asignación de estados sin carreras........................................................................ 54
Figura 14.90. Tabla de transiciones contador módulo 3. ............................................................ 54
Figura 14.91. Minimización empleando condiciones superfluas. ............................................... 55
Figura 14.92. Minimización de salidas. ...................................................................................... 55
Figura 14.93. Diagrama de estados contador módulo 3. ............................................................. 56
Figura 14.94. Tabla de transiciones contador módulo 3. ............................................................ 57
Figura 14.95. Mapa de próximos estados de contador módulo 3. ............................................... 57
Figura 14.96. Mapa de funciones de salida de contador módulo 3. ............................................ 58
Figura 14.97. Relaciones causa-efecto contador módulo 3. ........................................................ 58
Figura P14.1. ............................................................................................................................... 59
Figura P14.2. ............................................................................................................................... 59
Figura P14.3. ............................................................................................................................... 60
Figura P14.4. ............................................................................................................................... 60
Figura P14.5. ............................................................................................................................... 61
Figura P14.6. ............................................................................................................................... 62
Figura P14.7. ............................................................................................................................... 63
Figura P14.8. ............................................................................................................................... 63
Figura P14.9. ............................................................................................................................... 63
Figura P14.10. ............................................................................................................................. 64
Figura P14.11. Formas de ondas de decodificadores y controles del latch. ................................ 65
Figura 14.12. Latch de nand. ....................................................................................................... 66
Figura E14.1. ............................................................................................................................... 66
Figura E14.2. ............................................................................................................................... 66
Figura E14.3. ............................................................................................................................... 67
Figura E14.4. ............................................................................................................................... 67

Profesor Leopoldo Silva Bijit 19-01-2010


1

Capítulo 15

Registros. Buses. Memorias.

15.1. Registros.

Se denomina registro a una serie de flip-flops agrupados y con señales de control común. Se
considera que se leerán o escribirán como una unidad.

Se muestra a continuación un registro de largo 4, con controles de preset y reset (o clear)


asincrónicos, y con reloj común. Se asume que el grupo es disparado por canto de subida.

S
D Q
_
CP Q
R

S
D Q
_
CP Q
R

S
clk D Q
_
CP Q
R

Reset
S
D Q
_
CP Q
R

Set

Figura 15.1. Registro de cuatro bits.

15.2. Registro con habilitación de escritura.

Un esquema de un registro con habilitación de escritura, dispositivo muy empleado para


almacenar variables locales en un procesador, se muestra en la figura 15.2.

Profesor Leopoldo Silva Bijit 19-01-2010


2 Sistemas Digitales
La señal de control Write Enable habilita el registro para escritura. Con el canto de subida del
reloj, estando WE = 1, se escribe (o carga) el registro con los datos de entrada. Cuando WE = 0,
el registro conserva su valor (queda en modo hold). Un diseño comercial similar al que se
muestra, es el 74LS173, que además tiene salida de tercer estado. La celda básica del registro
resulta más simple si el flip-flop es JK, ya que naturalmente éste permanece en modo hold con
J=0 y K = 0.

Puede anotarse la transferencia como:


WE: Q = D;
también suele usarse:
WE: D Q o bien: WE: Q D.

La señal de control que produce la transferencia es WE.

D3
Q3

D Q
_
CP Q’

D2
Q2

D Q
CP Q’

D1
Q1

Q
D
_
Q’
CP

D0
Q0

D Q
_
CP Q’

WE

clk

Figura 15.2. Registro con habilitación de escritura.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 3
La señal WE debe estar estable durante el tiempo de setup del registro.

En la práctica las señales de control de los registros son generados en una máquina de estados
con modelo de Moore.

En este caso, se ingresa a un estado con el canto del reloj, y se mantienen las salidas asociadas
al estado hasta el próximo canto de subida del reloj.

Estado 1
WE=1

Estado 2
WE=0

Figura 15.3. Estados que generan la señal de control WE.

Durante el estado 1, la máquina de estados habilita la escritura del registro, activando WE.
Notar que la señal efectivamente se activa después del canto de subida del reloj, y es sincrónica
con el reloj.

En el estado 1, las señales Di se propagan a través de las compuertas y llegan a niveles estables
en las entradas de los flip-flops.
En el estado 2, se captura la información en el registro y permanecerá hasta que se inicie otro
ciclo de escritura en el registro.

Nótese que antes y durante el Estado 1, la salida del registro contiene la información que se
haya escrito anteriormente. A partir del estado 2, tiene nueva información.

clk

WE

Habilitación Escritura
Estado 1 Estado 2

Figura 15.4. Control del registro con WE.

Profesor Leopoldo Silva Bijit 19-01-2010


4 Sistemas Digitales
Si el registro se hubiera formado con latchs transparentes, habrían salidas nuevas durante el
estado 1. Es decir se puede comenzar a usar la nueva información un ciclo de reloj antes,
relativo al caso de registros disparados por cantos.

Un registro puede anotarse simbólicamente como se muestra en la Figura 15.5:

A la derecha del esquema para el registro, se indica la descripción de la transferencia.

Que se interpreta así: Cuando WE esté alto y cuando llegue el canto del reloj, entonces capture
en el registro R, lo que esté estable en A, tsetup antes del canto del reloj. Suele no indicarse el
reloj, en la ecuación RTL (Register Transfer Level).

WE

WE: R = A
A

clk

Figura 15.5. Representación simbólica de registro con habilitación de escritura.

15.3 Funcionamiento Sincrónico. Transferencias entre Registros.

Se tienen los siguientes registros:


WE WE WE
1 2 3

R1 R2 R3
Red Com- R. Comb.
binacional.
Tc1 Tc2
A Tm1 Tm2

clk clk clk

Figura 15.6. Transferencia entre registros.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 5
Consideremos que las redes combinacionales tienen un tiempo mínimo de propagación y un
tiempo máximo o crítico, desde que se le aplican entradas hasta que se tienen salidas.

El esquema simboliza la capacidad de efectuar acciones u operaciones monádicas de una red


combinacional. Se ilustra: R2 = f(R1) y R3 = g(R2), con un ingreso de datos simbolizado por
la transferencia R1 = A.

En el esquema se ilustra la composición de funciones, ya que globalmente puede escribirse:


R3 = g(f(A)).

15.3.1. Requerimientos de tiempo.

Se considera el tiempo de variabilidad del reloj, o tiempo de corrimiento (skew), debido a que
en dos lugares distintos no puede tenerse la misma señal. Éstas viajan a través de cables y
debería asumirse que el reloj que llega al registro 2, puede estar adelantado (clk2a) respecto a
clk1 o atrasado (clk2b) respecto de él, como se muestra en la gráfica a continuación.

clk1
clk2a
clk2b
Corrimiento clk. ( tskew)

Figura 15.7. Corrimientos del reloj (skew).

Con:
Tf1 = Tiempo desde el canto de subida de clk1 hasta tener salidas estables en las salidas de R1.
Tc1 = tiempo de propagación a través de la ruta crítica en la red combinacional 1. Es decir,
cuando haya tomado nivel estable la señal que se propaga más lentamente a través de la red, a la
salida de R1.
Tm1 = tiempo mínimo de propagación a través de la red combinacional 1. Es decir, cuando
haya tomado nivel estable la señal que se propaga más rápidamente a través de la red que
alimenta a R2.
Tsu2 = Tiempo de setup-up de los flip-flops del registro R2.
Thold2 = Tiempo de sostenimiento de los flip-flops del registro R2.

Para que la captura de información sea confiable en el registro 2 debe cumplirse que el período
del reloj debe ser mayor que: T(clk2 ) > Tskew + Tf1 + Tc1 + Tsu2

Profesor Leopoldo Silva Bijit 19-01-2010


6 Sistemas Digitales

T(clk2)

clk2
clk1

Tsu2
Tskew Tf Tc
1 1

Figura 15.8. Requerimientos de setup del registro 2.

Se considera el peor caso, ya que se asume que clk1 está atrasado respecto de clk2. En caso de
estar adelantado, se podría tener una frecuencia de funcionamiento sincrónica mayor, ya que en
este caso se requiere un T(clk2) menor.

Para que las entradas permanezcan estables un poco después del canto de subida en el registro 2,
debe cumplirse: Thold2 < Tf1 +Tm1 + Tskew

Thold
2

clk2
clk1

Tskew
Tf Tm1
1
Figura 15.9. Requerimientos de hold para el registro 2.

También se ha considerado el peor caso para determinar que se cumpla el requerimiento del
tiempo de sostenimiento de las entradas después del canto; se asume que el clk1 está atrasado
respecto del clk2. En general este requerimiento es más fácil de cumplir que el de tiempo de
setup.

Si se desea usar el mismo reloj, para efectuar transferencias entre registros, deben cumplirse los
requerimientos de estableciemiento (setup) y sostenimiento (hold) de todos los registros del
sistema. Esto implica que la etapa más lenta es la que determina la frecuencia del reloj.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 7
15.3.2. Operaciones posibles.

Asumiendo que las señales WE1, WE2 y WE3 son salidas de una máquina secuencial de
Moore, controlada por el mismo reloj, se tendrá que es posible efectuar concurrentemente las
operaciones:

R1 = A; R2 = f1(R1); R3 = f2(R2)

Durante el ciclo en que están habilitadas las señales WE, los valores de A, R1 y R2 permanecen
estables (son los que figuran a la derecha en las ecuaciones anteriores). Al terminar dicho ciclo,
se establecen los nuevos contenidos de estos registros; los nuevos valores serán asignados a las
variables que figuran a la izquierda en las ecuaciones anteriores.

Si se omite el registro R2, la misma operación anterior puede plantearse:

R1 = A; R3 = f2(f1(R1))

Con ello se tiene una red combinacional más compleja, y posiblemente resulte una frecuencia
sincrónica menor, debido a que aumentan los tiempos de propagación, si las funciones
combinacionales deben efectuarse en secuencia. No obstante, el tiempo de propagación entre A
y la salida de R3 se reduce.

15.3.3. Operaciones combinacionales alternativas.

Si las funciones combinacionales son alternativas, puede expresarse:

R1 = A; if ( C ) then R3 = f1(R1) ; else R3 = f2(R1);

Lo cual puede lograrse con un multiplexor, comandado por la señal de control C, la cual
también es generada por la máquina secuencial que genera los WE. En este caso la frecuencia
máxima queda determinada por la función combinacional que tenga propagación más lenta.
Obviamente debe agregarse al tiempo que toma realizar las acciones, el tiempo que adiciona el
multiplexor.

WE C WE
1 3
R1 f1( ) R3
1
A

f2( ) 0

Figura 15.10. Funciones combinacionales alternativas.

Profesor Leopoldo Silva Bijit 19-01-2010


8 Sistemas Digitales
Hasta el momento se ha estado desarrollando cómo efectuar operaciones y depositar los
resultados en registros. Los recursos planteados permiten implementar la asignación a una
variable del resultado de una operación monádica. Otra cuestión que es de interés es el poder
mover los datos entre registros, ya sea para memorizar un resultado parcial, o para intercambiar
el contenido de éstos, o para copiar una variable en otra. Es decir deseamos estudiar un
conjunto de registros y las conexiones entre ellos para posibilitar dichas transferencias.

15.4. Camino de Datos.

Se denomina así a las formas empleadas para conectar los recursos, en este caso los registros.
Existen varias estrategias que se diferencian entre sí por los recursos empleados y el tiempo que
demoran en efectuarse las transferencias.

Cuando el camino de datos soporta transferencias simultáneas se requerirán menos estados para
realizar las acciones requeridas.

15.4.1. Conexiones punto a punto.

Esta estrategia requiere conexiones entre cada registro fuente y cada registro destino. Es decir si
deseamos conectar punto a punto a tres registros, se requiere que las tres salidas estén
conectadas con las tres entradas.

En el desarrollo actual los registros suelen ser de 32 bits, y se dispone de un número elevado
de ellos, sobre 32.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 9
M0 WE0

R
0
0
1
2

M1 WE1

R
0 1
1
2

M2 WE2

R
0 2
1
2

Figura 15.11. Conexiones punto a punto entre 3 registros.

La transferencia R1 = R2 se logra activando en un mismo ciclo a: WE1 y M1 = 2


En este caso la señal M1 está formada por dos líneas que llevan el control M1[1]=1 y M1[0] =0,
al multiplexor que alimenta la entrada del registro R1.

La conexión también permite la transferencia simultánea: R0 = R1 y R2 = R1.


Se logra en el mismo ciclo de reloj, que activa las salidas: WE0 =1, WE2 = 1, M0 =1, M2 =1
Nótese que se está leyendo el registro R1 y escribiendo en R0 y R2. Durante el ciclo de reloj, la
salida de R1 está estable y viaja a través del camino de datos, y se propaga a través de los
circuitos combinacionales que forman los multiplexores 0 y 2, y llega a las entradas de los
registros R0 y R2 antes del próximo canto de subida del reloj. En este mismo ciclo, los valores
de R0 y R2 conservan los valores que tenían desde la última vez que fueron escritos. Los
nuevos valores de R0 y R2 son capturados al terminar el ciclo, justo cuando vuelve a subir el
reloj.

Las transferencias R0 = R1, R1 = R2 también pueden realizarse. Nóte que en ésta, se lee R1 y
se escribe R1 en el mismo ciclo.

Profesor Leopoldo Silva Bijit 19-01-2010


10 Sistemas Digitales
Se activan: WE0, WE1, M0 = 1, M1 = 2. En el ciclo que se activan estas salidas desde el
controlador, el contenido de R1 no cambia. Permitiendo así mantener el valor en la entrada de
R0. Por otro lado, como R2 no cambia su valor, posibilita que éste llegue en forma estable a las
entradas de R1, pasando por el multiplexor 1. Al llegar el próximo canto de subida del reloj, se
captura el nuevo valor de R1 y de R0.

La operación de intercambio de dos registros puede también efectuarse en un mismo ciclo. Esto
puede verse analizando el caso anterior, con: R0 = R1, R1 = R0.

La estructura permite R1 = R1.

La transferencia R1 = R2, R1 =R0 en la cual se escribe dos cosas diferentes en el mismo


registro, no puede efectuarse, ya que el multiplexor 1 sólo acepta un valor. Excluyendo así estas
operaciones ilegales.

La versatilidad y rapidez con que se pueden realizar transferencias en el esquema anterior se


debe a la gran cantidad de recursos destinados al camino de datos.

15.4.2. Bus simple.

Se emplea bus para un grupo de cables que efectúa determinados recorridos, transportando los
datos, y que son compartidos por varias fuentes de datos.

La siguiente estructura emplea un bus de escritura que es compartido por las erntradas de los
registros. Ahora se tiene un solo multiplexor. Si se considera el costo de un multiplexor de 3
vías de 32 bits cada una; más aún si se tienen 32 registros, ya que en este caso debería ser un
mux de 32 vías de entrada con 32 bits cada una, podrá estimarse que esta configuración emplea
menos recursos de hardware que la conexión punto a punto( es decir, mucho menos compuertas
o productos).

Al existir el bus, éste solo puede ser empleado para una transferencia por ciclo. Se estudiarán
transferencias similares a las vistas antes, para poder comparar los aumentos de tiempo que
derivan de ocupar menos espacio de silicio.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 11
WE0

R
0
Bus

B WE1

R
0 1
1
2

WE2

R
2

Figura 15.12. Bus simple.

La transferencia R1 = R2 se logra activando: WE1 = 1, B = 2. En un ciclo.


La transferencia simultánea: R0 = R1 y R2 = R1, se logra en un ciclo.
Se activan WE0 = 1, WE2 = 1 y B=1, logrando al finalizar el ciclo la captura simultánea del
valor de R1 en R0 y R2. Esto es posible ya que el bus queda ocupado con la información que
proviene de la salida de R1.

Las transferencias R0 = R1, R1 = R2 demandan dos ciclos, pero importa el orden en que se
activen los controles. Ya que primero debe leerse R1 y escribirse en R0; luego puede
sobreescribirse R1 con el contenido de R2. Lo cual se logra con los controles: WE0 = 1, B = 1
en el primer ciclo; luego: WE1 = 1, B = 2 en el segundo ciclo de reloj.

En general en esta estructura sólo puede efectuarse una escritura en un registro por ciclo de
reloj. Debe compartirse el bus.

Profesor Leopoldo Silva Bijit 19-01-2010


12 Sistemas Digitales
La operación de intercambio de dos registros: R0 = R1, R1 = R0, resulta más compleja en esta
estructura. Su realización requiere de un registro temporal, en caso de arreglos de 32 registros
suele haber un grupo dedicado a estas funciones; en el caso muy simplificado que se estudia se
empleará el registro R2 como temporal.
Entonces, en un primer ciclo: R2 = R0 salvando el contenido de R0. En el siguiente R0=R1,
sobreescribe R0, cambiando su contenido original que ya está salvado en R2. Finalmente
R0=R2.

En lugar del multiplexor puede emplearse registros que tengan habilitación de la salida en tercer
estado, suele denominarse OE (output enable) a esta señal. Entonces un simple decodificador
de 2 a tres vías, en este caso, permite alimentar a una y sólo una señal habilitadora de tercer
estado. Ver por ejemplo el 74LS173.

15.4.3. Estructura multibus.

Para implementar operaciones diádicas resulta útil disponer de salida dual del arreglo de
registros. Es decir que cada registro puede alimentar dos buses diferentes, sean éstos los buses
de salida A y B. Los buses A y B suelen alimentar una red combinacional que es capaz de
realizar operaciones diádicas; es decir con dos operandos. Dicha red combinacional se
denomina unidad aritmética.

Además para escribir en el arreglo de registros puede disponerse de un bus de escritura, sea éste
el bus C. Esta arquitectura limita la escritura a un solo registro por ciclo. Lo que esté
alimentando al bus C, en el esquema la señal WReg, se escribe en un registro del arreglo.

En un mismo ciclo pueden realizarse transferencias simultáneas a los buses de salida, y una
escritura, por ejemplo:

bus A = R0; bus B = R2; R1 = WReg;

Transferencias que pueden lograrse con los controles:

A = 0 ; B = 2; WE1 =1;

Incluso puede escribirse en un registro que se esté leyendo. Esto es posible, ya que la señal WEi
habilita el camino desde el bus C hasta la entrada del registro i, pero el contenido de éste no
cambia hasta el próximo canto del reloj. Y en el mismo ciclo, puede estarse leyendo en forma
estable la salida actual del registro i.

Si el registro estuviera implementado con latchs transparentes, cuando se habilita el WEi, se


dispone a la salida del registro i-ésimo el valor que se tenga en el bus C. es decir: Ri = WReg

Si las señales WE se implementan con un decodificador, se asegura que sólo una de ellas estará
activa. Esto en el caso que se desee escribir solamente en un registro.
El esquema de buses múltiples se muestra a continuación:

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 13
WE0

A
R
0

Bus C 0
1
2 Bus A

WE1 f(A,B)

R
1
WReg
B

Bus B
0
WE2 1
2
R
2

Figura 15.13. Camino de datos con tres buses.

Profesor Leopoldo Silva Bijit 19-01-2010


14 Sistemas Digitales
15.5. Memoria RAM Estática.

Desde un punto de vista lógico una memoria tiene un bus unidireccional de direcciones, un bus
bidireccional de datos y señales de control. En general se asume una comunicación asincrónica
entre la memoria y los registros del sistema sincrónico; esto permite adaptarse a memorias con
diferentes tiempos de acceso.

Desde que se coloca la dirección en el bus de direcciones, transcurre un tiempo hasta que en la
salida se tiene datos válidos en el bus de datos, esto en una operación de lectura; también
transcurre un tiempo para que, lo que se ha colocado en el bus de datos, sea grabado en la
dirección de memoria, esto en una operación de escritura. Ese tiempo se denomina de acceso.

Las memorias estáticas asincrónicas no necesitan que se les suministre un reloj, y para su
control disponen de tres señales que las manejan:

Chip Enable (E’): Con esta señal en nivel bajo se habilita la memoria.

Write Enable (W’): Cuando está baja (y la memoria está habilitada), los valores en el bus de
datos son escritos en la localización seleccionada por el bus de direcciones.

Output Enable (G’): Cuando está baja (y la memoria está habilitada), el bus de datos es
alimentado con el valor de la localización de memoria seleccionada por el bus de direcciones.
Cuando está alta, el bus de datos interno de salida queda en un estado de alta impedancia.

Memoria
ADD[n..0]
Estática
E’ D[m..0]
W’
G’

Figura 15.14. Control asincrónico de memoria estática.

Para una memoria de 8KB, se tiene que m es 7, y n es 12. Es decir 8 bits de datos y 13 de
direcciones, ya que 8K equivale a 8x1024=213.

15.5.1. Ciclo de lectura.

Los fabricantes establecen los requerimientos temporales de las señales de control. Indicando
las secuencias que deben cumplir las formas de ondas de las señales de control, y una tabla con
valores mínimos y máximos para los parámetros.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 15

Figura 15.15. Ciclo de lectura.

Las formas de ondas para el ciclo de lectura son con W’=1.

Parámetro Símbolo mín máx


Tiempo de ciclo de lectura tAVAV 12 -
Tiempo acceso dirección tAVQV - 12
Tiempo acceso luego de habilitación de chip tELQV - 12
Tiempo acceso luego de habilitación de salida tGLQV - 6
Mantenimiento desde cambio de dirección tAXQX 4 -
De chip enable bajo a salida activa tELQX 4 -
De chip enable alto a salida alta impedancia tEHQZ 0 6
De output enable bajo a salida activa tGLQX 0 -
De output enable alto a salida alta impedancia tGHQZ 0 6
Tiempo de encendido tELICCH 0 -
Tiempo de apagado tEHICCL - 12

Figura 15.16. Parámetros de lectura.

Los valores corresponden a una memoria con tiempo de acceso igual a 12 ns, que suele
indicarse al final de las siglas que identifican la memoria.

El ciclo de lectura comienza cuando E’ y G’ están bajas. Los datos son válidos luego del tiempo
de acceso en lectura. Luego de que E’ o G’ suben, los datos se mantienen en la salida, hasta que
ésta entra en flotación.

El tiempo de ciclo es el tiempo mínimo que debe transcurrir entre dos requerimientos a la
memoria. Esto implica que no se puede cambiar el bus de direcciones durante una operación.

Profesor Leopoldo Silva Bijit 19-01-2010


16 Sistemas Digitales

tc

direcciones
ta
Chip enable E’
tae

Output enable G’ tag

tb tf
datos validos

Figura 15.17. Requerimientos temporales lectura.

Se actualiza el bus de direcciones.


Luego de un tiempo se activan: chip enable y output enable.
Luego del tiempo de acceso desde el cambio de dirección (ta), o del canto de bajada de chip
enable (tae), o del tiempo de acceso desde la habilitación de la salida (tag), el tiempo que sea
mayor, los datos quedan disponibles para ser capturados en el bus de datos. El tiempo de acceso
al bus, luego de activar la salida se indica con tb.
Luego de esto puede deshabilitarse la salida y la señal chip enable. Los datos se mantienen en la
salida un breve lapso (tf).
El bus de direcciones debe permanecer estable durante el tiempo de ciclo, antes de proceder a
un nuevo acceso a la memoria (tc).

15.5.2. Ciclo de escritura.

Las formas de ondas para el ciclo de escritura son con G’=1.

Figura 15.18. Ciclo de escritura.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 17
Parámetro Símbolo mín máx
Tiempo de ciclo de escritura tAVAV 12 -
Tiempo de setup de la dirección tAVWL 0 -
Dirección válida hasta el fin de la escritura tAVWH 10 -
Ancho de pulso de escritura tWLWH 10 -
Ancho de pulso de escritura hasta enable tWLEH 10 -
Datos válidos hasta fin de escritura tDVWH 6 -
Tiempo de mantenimiento de datos (hold) tWHDX 0 -
De write bajo hasta alta impedancia tWLQZ 0 6
De write alto hasta salida activa tWHQX 4 -
Tiempo de recuperación escritura tWHAX 0 -

Figura 15.19. Parámetros de escritura.

Los datos son capturados en la celda de memoria cuando W’ tiene un canto de subida, en ese
momento los datos del bus deben estar estables. Además el bus de direcciones debe estar estable
antes del canto de bajada de W’ (setup), y luego del canto de subida de W’ (hold). Los glitches
en el bus de direcciones pueden producir cambios de estado no deseados en la memoria.
tc

direcciones
tas tah
Chip enable E’

tw
Write enable W’
th
ts
datos validos

Figura 15.20. Requerimientos temporales escritura.

Luego de establecida la nueva dirección, no puede activarse el canto de bajada de write enable
hasta tas segundos después. El ancho del pulso de escritura debe tener un mínimo de tw. Los
datos que serán escritos en la celda, no deben cambiar durante el tiempo de setup, ts segundos
antes del canto de subida del pulso de escritura, y deben mantenerse th segundos después del
canto de subida del pulso de escritura. También no puede cambiarse el bus de dirección,
debiendo mantenerlo estable tah segundos luego del canto de subida del pulso de escritura.

15.5.3. Control de memoria ram estática.

Se desea diseñar un controlador que permita conectar una memoria a un sistema sincrónico. Los
controles read y write, sincronizados por cantos de bajada, desencadenan las secuencias de
señales de control, que permiten leer y escribir en la memoria. La Figura 15.21, muestra el
ambiente de diseño.

Profesor Leopoldo Silva Bijit 19-01-2010


18 Sistemas Digitales

add direcciones

la Memoria
reset E’
W’
read
controlador
G’
write

ld cd doe’
datos
Din
dw

Dout

clk

Figura 15.21. Entorno de diseño.

La operación de lectura, puede describirse por la transferencia:

Dout = M[add]

La operación de escritura, puede escribirse:

M[add] = Din

Un diagrama de bloques simplificado se muestra en la Figura 15.22.


read write add

Din
Memoria Dout
Controlador

clk clk

Figura 15.22. Entorno de diseño.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 19
Las señales de lógica negativa: E’, G’, W’ y doe’, se identifican con: Ep, Gp, Wp y doep.
Las órdenes: reset, read y write se consideran pulsos de un ancho de pulso del reloj, y
sincronizadas por cantos de bajada. Todas las salidas del controlador serán señales
sincronizadas por cantos de subida, por lo cual las habilitaciones de escritura en los registros se
efectúan con cantos de bajada del reloj.
Se emplean: la por load address, ld por load data, cd por captura datos.

Para cumplir con los requerimientos temporales de la memoria, basta que dos períodos del reloj
sean mayores que el tiempo de acceso. Esto puede comprobarse, en el esquema de las señales de
control de la Figura 15.23, ya que transcurren dos ciclos desde que se tiene una nueva dirección
hasta que se graba en el registro de lectura.
clk

read
la
Ep
aGp

Cd
E0 E4 E5 E6 E0

Figura 15.23. Secuencia de lectura.

La Figura 15.24, desarrolla las secuencias de escritura en tres ciclos del reloj.
clk

write

ld la
Ep
aWp

doep
E0 E1 E2 E3 E0

Figura 15.24. Secuencia de escritura.

La Figura 15.25 ilustra el diagrama de estados del controlador. Sólo se muestran las señales la y
cd asociadas a los estados del diagrama de Moore; el resto de los valores se ilustran en las
Figuras 15.23 y 15.24.

Profesor Leopoldo Silva Bijit 19-01-2010


20 Sistemas Digitales

E4 E5 E6
la=1 cd=1
reset
read=1

E0
read=0
write=0
write=1

E1 E2 E3
la=1

Figura 15.25. Diagrama de estados del controlador.

Mediante las especificaciones de las Figuras 15.23, 15.24 y 15.25, resulta sencillo especificar el
diseño en Verilog.

module MSE(clk, reset, read, write, Din, Dout, add, direcciones, Ep, Wp, Gp, doep, la, ld, cd,
datos);
input clk, reset, read, write;
input [7:0] Din;
output [7:0] Dout;
input [12:0] add;
output [12:0] direcciones;
output Ep, Gp, Wp, doep, la, ld, cd;
inout [7:0] datos;

reg [7:0] Dout;


reg [7:0] dw;
reg [12:0] direcciones;
reg [2:0] estado, next;
reg Ep, Gp, Wp, doep, la, ld, cd;
wire [7:0] datos;

assign datos = doep ? 8'hz : dw; //doep=1 alta impedancia.

// Asignación de estados
parameter IDLE = 0;
parameter write1 = 1;
parameter write2 = 2;
parameter write3 = 3;
parameter read1 = 4;
parameter read2 = 5;
parameter read3 = 6;

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 21

always @ (posedge clk)


begin
if (reset) estado <= IDLE;
else estado <= next;
end
always @ (negedge clk)
begin
if (la) direcciones <= add;
if (cd) Dout <= datos;
if (ld) dw <= Din;
end

// Bloque combinacional. Genera próximo estado y las señales de control.


always @ (estado or read or write)
begin
case (estado)
IDLE:
begin
Ep= 1; Wp= 1; Gp= 1; doep=1; la= 0; ld= 0; cd= 0;
if (write) next = write1;
else if (read) next = read1;
else next = IDLE;
end
write1:
begin
Ep= 1; Wp= 1; Gp= 1; doep=0; la= 1; ld= 1; cd= 0;
next = write2;
end
write2:
begin
Ep= 0; Wp= 0; Gp= 1; doep=0; la= 0; ld= 0; cd= 0;
next = write3;
end
write3:
begin
Ep= 1; Wp= 1; Gp= 1; doep=0; la= 0; ld= 0; cd= 0;
next = IDLE;
end
read1:
begin
Ep= 1; Wp= 1; Gp= 1; doep=1; la= 1; ld= 0; cd= 0;
next = read2;
end
read2:
begin
Ep= 0; Wp= 1; Gp= 0; doep=1; la= 0; ld= 0; cd= 0;

Profesor Leopoldo Silva Bijit 19-01-2010


22 Sistemas Digitales
next = read3;
end
read3:
begin
Ep= 0; Wp= 1; Gp= 0; doep=1; la= 0; ld= 0; cd= 1;
next = IDLE;
end
default:
begin
Ep= 1; Wp= 1; Gp= 1; doep=1; la= 0; ld= 0; cd= 0;
next = IDLE;
end
endcase
end //always
endmodule

El siguiente módulo efectúa una simulación del controlador.

`timescale 1ns / 1ps


module test_v;
// Inputs
reg clk;
reg reset;
reg read;
reg write;
reg [7:0] Din;
reg [12:0] add;

// Outputs
wire [7:0] Dout;
wire [12:0] direcciones;
wire Ep;
wire Wp;
wire Gp;
wire doep;
wire la;
wire ld;
wire cd;

// Bidirs
wire [7:0] datos;

// Instantiate the Unit Under Test (UUT)


MSE uut (
.clk(clk),
.reset(reset),
.read(read),

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 23
.write(write),
.Din(Din),
.Dout(Dout),
.add(add),
.direcciones(direcciones),
.Ep(Ep),
.Wp(Wp),
.Gp(Gp),
.doep(doep),
.la(la),
.ld(ld),
.cd(cd),
.datos(datos)
);

initial begin
// Initialize Inputs
clk = 0; reset = 0; read = 0; write = 0; Din = 0; add = 0;
// Wait 100 ns for global reset to finish
#100;

// Add stimulus here


reset=1; clk=0; #100; clk=1; #100;
reset=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
add=13'b0000000000001;
read=1; clk=0; #100; clk=1; #100;
read=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;

add=13'b0000000000111;
Din=8'b00001111;
write=1; clk=0; #100; clk=1; #100;
write=0; clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
clk=0; #100; clk=1; #100;
end
endmodule

Profesor Leopoldo Silva Bijit 19-01-2010


24 Sistemas Digitales

Figura 15.26. Formas de ondas generadas por la simulación.

15.3.4. Memorias flash o EEPROM.

El procedimiento de lectura de memorias flash o EEPROM es el mismo que para las memorias
estáticas SRAM. Estas memorias disponen de un circuito interno que genera el voltaje de
programación de tipo 12 V, y además tienen una máquina secuencial de estados internas que
permite escribirlas. Las señales de escritura deben cumplir los requerimientos temporales de la
máquina de estados, y usan las mismas señales de control.

15.3.5. Memorias sincrónicas.

En la actualidad se dispone de memorias estáticas sincrónicas que logran velocidades de acceso


mayores.

Profesor Leopoldo Silva Bijit 19-01-2010


Capítulo 15. Registros. Camino de datos. Memorias. 25
Índice general.

CAPÍTULO 15 ........................................................................................................................................... 1
REGISTROS. BUSES. MEMORIAS. ...................................................................................................... 1
15.1. REGISTROS. ..................................................................................................................................... 1
15.2. REGISTRO CON HABILITACIÓN DE ESCRITURA. ................................................................................. 1
15.3 FUNCIONAMIENTO SINCRÓNICO. TRANSFERENCIAS ENTRE REGISTROS. ........................................... 4
15.3.1. Requerimientos de tiempo. ...................................................................................................... 5
15.3.2. Operaciones posibles. ............................................................................................................. 7
15.3.3. Operaciones combinacionales alternativas. ............................................................................ 7
15.4. CAMINO DE DATOS. ......................................................................................................................... 8
15.4.1. Conexiones punto a punto. ...................................................................................................... 8
15.4.2. Bus simple. ............................................................................................................................ 10
15.4.3. Estructura multibus. .............................................................................................................. 12
15.5. MEMORIA RAM ESTÁTICA. ........................................................................................................... 14
15.5.1. Ciclo de lectura. .................................................................................................................... 14
15.5.2. Ciclo de escritura. ................................................................................................................. 16
15.5.3. Control de memoria ram estática. ......................................................................................... 17
15.3.4. Memorias flash o EEPROM. ................................................................................................. 24
15.3.5. Memorias sincrónicas. .......................................................................................................... 24
ÍNDICE GENERAL. ................................................................................................................................... 25
ÍNDICE DE FIGURAS................................................................................................................................. 26

Profesor Leopoldo Silva Bijit 19-01-2010


26 Sistemas Digitales
Índice de figuras

Figura 15.1. Registro de cuatro bits.............................................................................................. 1


Figura 15.2. Registro con habilitación de escritura. ..................................................................... 2
Figura 15.3. Estados que generan la señal de control WE............................................................ 3
Figura 15.4. Control del registro con WE. ................................................................................... 3
Figura 15.5. Representación simbólica de registro con habilitación de escritura......................... 4
Figura 15.6. Transferencia entre registros. ................................................................................... 4
Figura 15.7. Corrimientos del reloj (skew)................................................................................... 5
Figura 15.8. Requerimientos de setup del registro 2. ................................................................... 6
Figura 15.9. Requerimientos de hold para el registro 2. ............................................................... 6
Figura 15.10. Funciones combinacionales alternativas. ............................................................... 7
Figura 15.11. Conexiones punto a punto entre 3 registros. .......................................................... 9
Figura 15.12. Bus simple. ........................................................................................................... 11
Figura 15.13. Camino de datos con tres buses. .......................................................................... 13
Figura 15.14. Control asincrónico de memoria estática. ............................................................ 14
Figura 15.15. Ciclo de lectura. ................................................................................................... 15
Figura 15.16. Parámetros de lectura. .......................................................................................... 15
Figura 15.17. Requerimientos temporales lectura. ...................................................................... 16
Figura 15.18. Ciclo de escritura.................................................................................................. 16
Figura 15.19. Parámetros de escritura. ....................................................................................... 17
Figura 15.20. Requerimientos temporales escritura. ................................................................... 17
Figura 15.21. Entorno de diseño.................................................................................................. 18
Figura 15.22. Entorno de diseño.................................................................................................. 18
Figura 15.23. Secuencia de lectura. ............................................................................................. 19
Figura 15.24. Secuencia de escritura. .......................................................................................... 19
Figura 15.25. Diagrama de estados del controlador. ................................................................... 20
Figura 15.26. Formas de ondas generadas por la simulación. ..................................................... 24

Profesor Leopoldo Silva Bijit 19-01-2010

También podría gustarte