Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Circuitos Electronicos Digitales
Circuitos Electronicos Digitales
Sistemas Digitales
Dpto. Electrónica, E.T.S.I.T.
Programa
Página 1
Sistemas Digitales
Bibliografía
• Herbert Taub, “Circuitos Digitales y Microprocesadores”. McGraw-Hill 1982,
Madrid.
• Enrique Mandado, “Sistemas electrónicos digitales”. Marcombo, Boixareu
Editores.
• Thomas L. Floyd, “Fundamentos de Sistemas Digitales”. 7º Edición, Prentice-
Hall 2000.
Página 2
Sistemas Digitales
TEMA 1
Una función es una regla por la que determinamos el valor de una variable,
llamada “dependiente”, y, a partir de otra variable, llamada “independiente”, x. La
dependencia de y respecto de x puede escribirse y = f(x).
x y = f(x)
0 7
1 9
2 15
3 25
Este es el caso de las funciones lógicas que se definirán a través de una tabla denominada
“tabla de verdad”.
Las funciones y las variables no tienen por qué ser numéricas. Por ejemplo, podemos
asignar:
x: “colores de las luces de un semáforo”
y: “comportamiento esperado de un conductor”
x y = f(x)
Verde Continúa
Amarillo Frena
Rojo Stop
Por ejemplo, si simplificamos el caso del semáforo de forma que sólo pudiese estar en rojo
o en verde, en este caso x sería una variable lógica. Además, por la mutua exclusión de los
posibles valores, podemos decir que si x no está en verde, entonces x estará en rojo. En una
notación más simplificada se escribe:
Página 3
Sistemas Digitales
Así:
A Z1 Z2 Z3 Z4
F F F T T
T F T F T
Tenemos entonces:
Caso especial de funciones de dos variables lógicas, las funciones AND y OR:
Hay un total de 16 funciones lógicas de 2 variables lógicas, ya que las 2 variables pueden
combinarse de 4 formas posibles, con lo que 24 = 16. Aunque posteriormente haremos un
estudio de todas, vamos a estudiar ahora dos de ellas:
Página 4
Sistemas Digitales
A B Z = A AND B
F F F
F T F
T F F
T T T
Propiedades:
• Conmutativa:
Z = AB = BA, se deduce intercambiando las columnas A y B de la tabla
de verdad.
• Asociativa:
Z = A(BC) = (AB)C
A B C AB (AB)C BC A(BC)
F F F F F F F
F F T F F F F
F T F F F F F
F T T F F T F
T F F F F F F
T F T F F F F
T T F T F F F
T T T T T T T
Vemos que coinciden los valores en ambas columnas luego podremos escribir:
A B Z = A OR B
F F F
F T T
T F T
T T T
Página 5
Sistemas Digitales
Propiedades:
• Conmutativa:
Z = A+B = B+A, se deduce intercambiando las columnas A y B de la
tabla de verdad.
• Asociativa:
Z = A+(B+C) = (A+B)+C
Vemos que coinciden los valores en ambas columnas luego podremos escribir:
La notación 0, 1:
Vamos a introducir una notación alternativa:
A = 0 como alternativa a A = F
A = 1 como alternativa a A = T
Hay que prestar especial atención para no confundir el 0 y el 1 que vamos a utilizar con los
números que representan. Para nosotros serán los posibles valores que puede tomar una
variable lógica. Esta notación aporta muchas ventajas como veremos a continuación.
Volvamos a escribir las tablas de verdad de las funciones AND y OR con esta nueva notación:
A B Z = A·B A B Z = A+B
0 0 0 0 0 0
0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
Página 6
Sistemas Digitales
Vamos a dar un carácter más formal a todo lo visto anteriormente. El concepto de variable
lógica fue introducido por George Boole en 1850 en relación con sus estudios sobre el
pensamiento humano. Fue Claude Shannon de The Bell Laboratories quien lo adaptó a los
sistemas digitales.
Definición y postulados:
“Un Álgebra de Boole B es toda clase o conjunto de elementos que pueden tomar dos
valores perfectamente diferenciados, que designaremos por 0 y 1, y que están relacionados
por dos operaciones binarias, denominadas suma (+) y producto (·) lógicos, que cumplen los
siguientes postulados (5):
A A
0 1
1 0
Página 7
Sistemas Digitales
B A+B
hay corriente cuando A está cerrado, cuando B está cerrado o cuando lo están ambos.
a) Conmutatividad: evidentemente
A B
B A
A+B B+A
y además
A B B A
A·B B·A
b) Asociatividad: se cumple,
A
A
B
B
C
C
A+(B+C) (A+B)+C
y además,
A B C A B C
A·(B·C) (A·B)·C
c) Elemento neutro:
A
A
Página 8
0
A+0
Sistemas Digitales
d) Elemento complementario:
A
1
A
A+A
y también
A A 0
A·A
e) Propiedades distributivas:
B A B
A
C A C
A A A
B C B C
A+(B·C) (A+B)·(A+C)
Página 9
Sistemas Digitales
AND OR
A B A·B Cambiando A B A+B
0 0 0 (·) por (+) y 0 1 1 1
0 1 0 por 1, 1 0 1
1 0 0 obtenemos la 0 1 1
1 1 1 función OR 0 0 0
Teorema 2: ∀A ∈ B, se verifica : A + 1 = 1 y A ⋅ 0 = 0
Si demostramos la primera, la segunda quedará demostrada por el principio de dualidad:
1 = A + A = A + A ⋅ 1 = ( A + A) ⋅ ( A + 1) = 1 ⋅ ( A + 1) = A + 1
donde hemos aplicado:
La demostración puede hacerse de forma más sencilla a partir de las respectivas tablas de
verdad.
A B A+B A B A·B
0 0 0 0 0 0
0 1 1 0 1 0
1 0 1 1 0 0
1 1 1 1 1 1
De esta forma hemos obtenido las tablas de verdad de las funciones AND y OR a partir de
un teorema derivado de los postulados fundamentales.
Teorema 3: ∀A ∈ B, se verifica : A + A = A y A ⋅ A = A
Demostremos la primera igualdad y de nuevo la segunda quedará demostrada por dualidad:
A = A + 0 = A + A ⋅ A = ( A + A) ⋅ ( A + A) = ( A + A) ⋅ 1 = A + A
donde hemos aplicado:
Página 10
Sistemas Digitales
Igual que en el teorema 2, la demostración puede hacerse de forma más sencilla a partir de
las respectivas tablas de verdad.
Teorema 6: ∀A ∈ B, se verifica : A = A
Podemos demostrarlo a través de la tabla de verdad:
A A A
0 1 0
1 0 1
a) A1 + A2 + A3 + ⋅ ⋅ ⋅ + An = A1 ⋅ A2 ⋅ A3 ⋅ ⋅ ⋅ ⋅ An
b) A1 ⋅ A2 ⋅ A3 ⋅ ⋅ ⋅ ⋅ ⋅ An = A1 + A2 + A3 + ⋅ ⋅ ⋅ ⋅ + An
Demostraremos la a) aplicando el principio de inducción sobre n, con lo que la b) quedará
demostrada por dualidad. Lo demostramos en primer lugar para n=2 a partir de la tabla de
verdad:
Página 11
Sistemas Digitales
A B A+ B A+ B A B A⋅ B
0 0 0 1 1 1 1
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 0
A1 + A2 + A3 + ⋅ ⋅ ⋅ + An −1 = A1 ⋅ A2 ⋅ A3 ⋅ ⋅ ⋅ ⋅ An −1
A1 + A2 + A3 + ⋅ ⋅ ⋅ + An −1 + An = ( A1 + A2 + A3 + ⋅ ⋅ ⋅ + An −1 ) + An = A1 + A2 + A3 + ⋅ ⋅ ⋅ + An −1 ⋅ An =
Hemos visto como podía implementarse una variable lógica a través de un conmutador.
Actualmente lo más usual en los circuitos digitales es representar los valores lógicos de una
variable por tensiones eléctricas.
Por ejemplo, podemos convenir que cuando una variable lógica A se represente por una
tensión V, la variable A es F cuando V = 0v y A es T cuando V = 5v . En la práctica mantener
una tensión fija es bastante difícil porque siempre hay cierta tolerancia. Por ello, es más usual
tomar, por ejemplo:
Pueden tomarse las dos tensiones positivas, las dos negativas o bien de signos contrarios.
Dependiendo de la asignación de tensiones tendremos dos tipos de lógicas:
• Lógica positiva: la tensión mayor representa el valor lógico T y la menor el valor F.
• Lógica negativa: la tensión mayor representa el valor lógico F y la menor el valor T.
Es indiferente en principio usar una u otra, aunque, por razones históricas y psicológicas, se
usa preferentemente la lógica positiva.
El símbolo del dispositivo que puede realizar el producto lógico Z = A ⋅ B de dos variables
A y B es:
A
Z=A·B
B
El símbolo del dispositivo que puede realizar la suma lógica Z = A + B de dos variables A
y B es:
A
Z=A+B
B
Página 12
Sistemas Digitales
dado que tanto la función AND como la función OR son conmutativas y asociativas, los
dispositivos que realizan el producto y la suma lógica de muchas variables se pueden
representar por:
A A
B Z=A·B·C·… B
C C Z=A+B+C+...
En general cualquier estructura de una función lógica se conoce como “puerta lógica”. Así,
hemos representado una puerta AND y una puerta OR. Las variables A, B, C,... son las
entradas a la puerta y Z la salida de la misma. La naturaleza de los dispositivos electrónicos
que constituyen las puertas AND y OR permite añadir nuevas entradas con relativamente
poca complicación, por ello se dispone fácilmente de puertas AND y OR de entradas
múltiples.
A Z=A
A
A·B
A
Z= A·B
B
Familias lógicas
Una familia lógica representa la forma de implementar internamente las puertas lógicas.
Cada familia lógica se basa en distintos tipos de componentes electrónicos. Las más comunes
son:
El término “familia” también se emplea para designar grupos de circuitos integrados que
pertenecen a la misma categoría o que poseen características comunes. La familia 74 está
fabricada en su mayor parte con lógica TTL y engloba a la mayoría de circuitos digitales de
uso común. Los integrados de esta familia se numeran como 74xx00 y sucesivos, donde xx
son letras que indican la subfamilia a la que pertenecen
Página 13
Sistemas Digitales
Ej. 74LS04: 6 inversores (NOT) pertenecientes a la familia 74, subfamilia LS fabricado con
lógica TTL.
Habíamos visto que en el caso de dos variables lógicas teníamos 24=16 posibles funciones.
De ellas hemos estudiado ya las que hemos denominado AND y OR. Si construimos la tabla
de verdad de todas ellas tendríamos:
f6 = A ⊕ B = A ⊕ B = A ⊕ B = A ⊕ B
como se comprueba fácilmente a través de las respectivas tablas de verdad:
Página 14
Sistemas Digitales
A B A⊕ B B A A⊕ B A⊕ B A⊕ B A⊕ B A⊕ B
0 0 0 1 1 1 0 1 0 0
0 1 1 0 1 0 1 0 1 1
1 0 1 1 0 0 1 0 1 1
1 1 0 0 0 1 0 1 0 0
A
Z = A⊕ B
B
La puerta XOR es una de las más difíciles de fabricar, no siendo fácil modificar su
estructura para acomodar entradas adicionales. Así, para realizar una puerta XOR de tres
entradas lo más sencillo es hacer:
A
A⊕ B
B
A⊕ B⊕C
C
• f 9 = A ⊕ B , es la función NOR-Exclusiva o XNOR. Esta función se llama también
“equivalencia”, ya que mantiene en la salida un 1 lógico solamente cuando A=B, como se
observa en su tabla de verdad:
A B A⊕ B
0 0 1 A
Z = A⊕ B
0 1 0
1 0 0 B
1 1 1
A B A⋅ B
0 0 1
0 1 1
1 0 1
1 1 0
Página 15
Sistemas Digitales
por tanto, si generásemos una función que realizase la operación NAND con más de dos
variables, se necesitaría especificar el orden en que se va a efectuar esta operación. Como esto
es algo incómodo, cuando se manejan más de dos variables, el término NAND aplicado a n
variables se interpreta como A1 ⋅ A2 ⋅ ... ⋅ An , es decir, aplicamos primero la función AND y
luego la complementamos. Su representación es:
A1
A2 Z = A1 ·A2 ·A3 ·...·An
A3
An
A B A+ B
0 0 1
0 1 0
1 0 0
1 1 0
por ello, para más de dos variables la función NOR se interpreta como el complemento de la
OR aplicado a dichas variables. Su representación es:
A1
A2
A3 Z = A1 + A2 + A3 + ... + An
An
• f13 , es la denominada “función de implicación”. Se escribe f13 = A ⊃ B y se lee “A
implica B”. Significa que siempre que A sea cierto implica que B también lo ha de ser.
Página 16
Sistemas Digitales
A B A⊃B
0 0 1
0 1 1
1 0 0
1 1 1
Por tanto, podemos concluir nuestro ejemplo diciendo que “ser salmantino implica ser
español”.
f0 = 0 = A ⋅ A = B ⋅ B f1 = A ⋅ B f2 = A ⊃ B = A ⋅ B
f3 = A f4 = B ⊃ A = A ⋅ B f5 = B
f6 = A ⊕ B = A ⋅ B + A ⋅ B f7 = A + B f8 = A ↓ B = A + B = A ⋅ B
f9 = A ⊕ B = A ⋅ B + A ⋅ B f10 = B f11 = B ⊃ A = A + B
f12 = A f13 = A ⊃ B = A + B f14 = A ↑ B = A ⋅ B = A + B
f15 = 1 = A + A = B + B
Las demostraciones son sencillas en todos los casos. Veamos por ejemplo:
f6 = A ⊕ B = A ⋅ B + A ⋅ B
A B A B A⋅ B A⋅ B A⋅ B + A⋅ B A⊕ B
0 0 1 1 0 0 0 0
0 1 1 0 0 1 1 1
1 0 0 1 1 0 1 1
1 1 0 0 0 0 0 0
Página 17
Sistemas Digitales
Para el caso de funciones con más de dos variables, se generan aplicando repetidamente
operaciones que relacionan dos variables. Entonces podemos expresar cualquier función
lógica por medio de las operaciones AND, OR y NOT. Además AND, OR y NOT son
funciones cómodas de manejar al ser conmutativas y asociativas para dos variables.
Así, cuando queramos diseñar un circuito usando un solo tipo de puerta (función) lógica,
recurriremos bien a puertas NAND o a puertas NOR, pues con cualquiera de ellas se pueden
generar todas las funciones lógicas.
Página 18
Sistemas Digitales
Vimos que simplificar expresiones lógicas aplicando los teoremas del álgebra de Boole era
demasiado engorroso. Ahora veremos procedimientos más sistemáticos y efectivos para
realizar simplificaciones.
Se llama “término canónico” de una función lógica a todo producto o suma en el cual
aparecen todas las variables de las que depende, ya sea en forma directa o complementada.
Cuando una función se expresa como una suma de productos canónicos o como producto de
sumas canónicas se dice que se encuentra en “forma canónica”.
Teorema: toda función de un álgebra de Boole se puede expresar de las siguientes formas:
f (a, b, c,...) = a ⋅ f (1, b, c,...) + a ⋅ f (0, b, c,...) o bien
[
f (a, b, c,...) = [a + f (0 , b, c,...)] ⋅ a + f (1,b,c,...) ]
Demostremos la primera y la segunda quedará demostrada por dualidad. Para ello basta
con comprobar la igualdad para a = 0 y a = 1 .
• Si a = 0 ⇒ a = 1, luego f (a, b, c,...) = 0 ⋅ f (1, b, c,...) + 1 ⋅ f (0, b, c,...) = f (0, b, c)
• Si a = 1 ⇒ a = 0, luego f (a, b, c,...) = 1 ⋅ f (1, b, c,...) + 0 ⋅ f (0, b, c,...) = f (1, b, c)
con lo que queda demostrado.
Corolario: Toda función lógica puede expresarse como suma de todos sus productos
canónicos cada uno de ellos multiplicado por un coeficiente. Este coeficiente es igual al valor
que toma la función al sustituir cada variable por 1 o por 0 según aparezca en el producto
canónico en forma directa o complementada, respectivamente.
Análogamente toda función lógica puede expresarse como producto de todas sus sumas
canónicas cada una de ellas con un sumando igual al valor que toma la función al sustituir
cada variable por 0 o por 1 (al contrario que como suma de productos) según aparezca en la
suma canónica en forma directa o complementada, respectivamente.
Página 19
Sistemas Digitales
f (a, b, c,...) = a ⋅ b ⋅ f (1,1, c,...) + a ⋅ b ⋅ f (1,0, c,...) + a ⋅ b ⋅ f (0,1, c,...) + a ⋅ b ⋅ f (0,0, c,...)
a b c f
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1 Tendremos 23=8 términos canónicos. En el caso de los
1 0 0 0 productos, si los colocamos en el orden que nos indica la tabla de
1 0 1 1 verdad, obtenemos:
1 1 0 1
1 1 1 1
f (a, b, c, ) = a ⋅ b ⋅ c + a ⋅ b ⋅ c + a ⋅ b ⋅ c + a ⋅ b ⋅ c + a ⋅ b ⋅ c
Página 20
Sistemas Digitales
f (a, b, c) = (a + b + c) ⋅ (a + b + c) ⋅ (a + b + c)
Hay que tener cuidado con el orden en que se toman las variables. Éste es arbitrario, pero
una vez que se ha escogido un criterio se debe ser consecuente con él.
Así, numerando productos y sumas canónicas podemos escribir, volviendo al ejemplo
anterior:
f (a, b, c) = a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c = ∑ (0, 3, 5, 6, 7 )
0 3 5 6 7
que son las combinaciones de variables para las que f vale uno.
Análogamente:
f (a, b, c) = (a + b + c) ⋅ (a + b + c) ⋅ (a + b + c) = ∏ (1, 2, 4 )
1 2 4
que son las combinaciones de variables para las que f vale cero. Vemos que son justamente
los términos que faltan en la suma de productos canónicos, ya que si para una combinación de
variables f no es uno, deberá ser cero.
Dada una función expresada en forma canónica es muy fácil hallar su complemento.
Veámoslo con el ejemplo anterior:
f ( a , b, c , ) = a ⋅ b ⋅ c + a ⋅ b ⋅ c + a ⋅ b ⋅ c + a ⋅ b ⋅ c + a ⋅ b ⋅ c =
= (a ⋅ b ⋅ c) ⋅ (a ⋅ b ⋅ c) ⋅ (a ⋅ b ⋅ c) ⋅ (a ⋅ b ⋅ c) ⋅ (a ⋅ b ⋅ c) =
= (a + b + c ) ⋅ (a + b + c) ⋅ (a + b + c) ⋅ (a + b + c) ⋅ (a + b + c) = ∏ (0, 3, 5, 6, 7 )
Página 21
Sistemas Digitales
En el apartado anterior hemos visto como expresar funciones lógicas en su forma canónica
a partir de la tabla de verdad. Ahora veremos como hacerlo a partir de su expresión lógica.
f = a ⋅ b ⋅ (c + c) + a ⋅ c ⋅ (b + b) + c ⋅ (a + a ) ⋅ (b + b)
volviendo a aplicar la correspondiente distributiva obtenemos:
f = a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c + a⋅
b⋅ c = ∑ (1, 3, 4, 5, 6, 7 )
5 4 6 7 3 1
f = (a + c) ⋅ (b + c
+ c) = (a + c) ⋅ (b + 1) = a + c
1
De acuerdo con lo explicado sumamos b ⋅ b , que como vale cero no cambia el valor de la
expresión, con lo que obtenemos: f = a + c + b ⋅ b . Volviendo a aplicar la correspondiente
distributiva obtenemos finalmente:
f = (a
+
b+c) ⋅ (a
+
b+c) = ∏ (0, 2)
0 2
como cabía esperar.
Página 22
Sistemas Digitales
Para obtener una expresión mínima de suma de productos o producto de sumas partiremos
de la forma canónica correspondiente. En general se han de obtener ambas expresiones y
utilizar la más sencilla de ellas para realizar la función en la práctica.
Esta propiedad algebraica de simplificación se puede usar también de una forma numérica,
usando los equivalentes numéricos de las combinaciones binarias tal y como ya hemos
indicado.
15 7 8 = 15-7
Página 23
Sistemas Digitales
13 5 8 = 13-5
Se observa que los números difieren en una potencia de dos igual al peso de la variable
binaria que desaparece. A su vez:
+ c) ⋅ d = b ⋅ d
b ⋅ c ⋅ d + b ⋅ c ⋅ d = b ⋅ (c
1
Numéricamente:
b⋅c⋅d + b⋅c⋅d = ⋅b⋅ ⋅d
faltan las variables de pesos 2 y 8
2 2
15-7 13-5 15-13-7-5
15
-7 13
-5
8 8
por tanto: f (a, b, c, d ) = b ⋅ d
Sea g (a, b, c, d ) = (a + b + c + d ) ⋅ (a + b + c + d ) ⋅ (a + b + c + d ) ⋅ (a + b + c + d )
⋅a +b+c + d = b+c + d
(a + b + c + d ) ⋅ (a + b + c + d ) = a
0
⋅a +b+c + d = b+c + d
(a + b + c + d ) ⋅ (a + b + c + d ) = a
0
Numéricamente:
(a + b + c + d ) ⋅ (a + b + c + d ) = +b+c+d
1010
0010
falta la variable de peso 8
10 2 8 = 10-2
(a + b + c + d ) ⋅ (a + b + c + d ) = +b+c+d
1110
0110
falta la variable de peso 8
14 6 8 = 14-6
De nuevo: g = (b + c + d ) ⋅ (b + c + d ) = b
⋅b + c + d = c + d
0
y numéricamente:
Página 24
Sistemas Digitales
(b + c + d ) ⋅ (b + c + d ) = ++c+d
faltan las variables de pesos 4 y 8
4
4
10-2 14-6 14-10-6-2
14
-6 10
-2
8 8
Aplicando estas propiedades se logra reducir al mínimo cualquier expresión lógica en
forma de producto de sumas o de suma de productos. La expresión final, en la que no se
puede suprimir ningún término ni eliminar variables de ellos, se denomina “expresión
irreducible”. Obsérvese que el número de términos canónicos adyacentes que se pueden
agrupar es siempre una potencia de 2. Combinando los términos de distintas maneras para su
simplificación, se obtienen a veces varias expresiones irreducibles diferentes. De todas ellas
es necesario elegir la menos compleja para su realización.
Diagramas de Karnaugh:
1
1 3
ab
00 01 11 10
c
0
0 2 6 4
1
1 3 7 5
Página 25
Sistemas Digitales
ab
00 01 11 10
cd
00
0 4 12 8
01
1 5 13 9
11
3 7 15 11
10
2 6 14 10
bc bc
00 01 11 10 00 01 11 10
de de
00 00
0 4 12 8 16 20 28 24
01 01
1 5 13 9 17 21 29 25
11 11
3 7 15 11 19 23 31 27
10 10
2 6 14 10 18 22 30 26
a=0 a=1
Página 26
Sistemas Digitales
• Se toman todos los “unos” que no se puedan combinar con ningún otro.
• Se forman los grupos de dos “unos” que no puedan formar un grupo de cuatro.
• Se forman los grupos de cuatro “unos” que no puedan formar un grupo de ocho.
• Cuando se hayan cubierto todos los “unos” se detiene el proceso.
Notas:
- Un mismo 1 ( o “0” como producto de sumas) puede pertenecer a varios grupos.
- Los cuatro vértices pueden agruparse entre si (0, 8, 10, 2).
- Dos vértices solos no pueden agruparse entre si (0-10, 2-8).
En la práctica es necesario realizar este proceso de todas las formas que sea posible y
elegir la expresión canónica más sencilla de las resultantes. La expresión canónica más
sencilla, en el sentido de un menor coste, es la que tiene menos puertas.
1.- Sea la función: f (a, b, c, d ) = ∑ (2, 3, 5, 7, 10, 11, 12,15) . Para expresarla como suma
de productos formamos el diagrama de Karnaugh para cuatro variables.
a·b·c·d
ab
cd 00 01 11 10
00 0
1
4 12 8
01 1
1 5 13 9
11 1 1 1 1
3 7 15 11
10 1 1
2 6 14 10
Página 27
Sistemas Digitales
a+c+d
b+c
ab
cd 00 01 11 10
00 0 0 0
0 4 12 8 a+c+d
01 0 0 0
1 5 13 9
11
3 7 15 11
10 0 0
2 6 14 10
a+b+d b+c+d
a b c f(a,b,c)
0 0 0 0 1
1 0 0 1 0
2 0 1 0 1
3 0 1 1 1
4 1 0 0 0
5 1 0 1 0
6 1 1 0 1
7 1 1 1 1
ab ab
c 00 01 11 10 c 00 01 11 10
0 1 1 1 0 0
0 2 6 4 0 2 6 4
1 1 1 1 0 0
1 3 7 5 1 3 7 5
b+c a+b
a·c b
Página 28
Sistemas Digitales
a a·c a a+b
c f = (a + b)·(b + c)
f = b + a·c b
b
c b+c
Por tanto es más sencilla la realización en puertas AND-OR (suma de productos), ya que en
este caso sólo se necesitan dos puertas y en el otro tres.
Hasta ahora hemos estudiado funciones lógicas en las cuales para cada combinación de
entradas se define un valor lógico (uno o cero) de la función. Estas funciones se denominan
“completamente especificadas”.
Por ejemplo, sea la función: f (a, b, c, d ) = ∑ (1, 3, 6, 8, 10, 11) + ∑ (0, 2, 4, 12, 13)
φ
Página 29
Sistemas Digitales
a b c d f
0 0 0 0 0 * Su función complementaria será:
1 0 0 0 1 1
2 0 0 1 0 * f (a, b, c, d ) = ∏ (1,3,6,8,10,11)·∏ (0,2,4,12,13)
3 0 0 1 1 1 φ
4 0 1 0 0 * es decir, en f y en f los términos irrelevantes son los mismos.
5 0 1 0 1 0
6 0 1 1 0 1 Poniendo f como producto de sumas tenemos:
7 0 1 1 1 0
8 1 0 0 0 1
f (a, b, c, d ) = ∑ (1, 3, 6, 8, 10, 11) + ∑ (0, 2, 4, 12, 13) =
9 1 0 0 1 0 φ
10 1 0 1 0 1
11 1 0 1 1 1 = ∏ (5, 7, 9, 14, 15) ⋅ ∏ (0, 2, 4, 12, 13)
φ
12 1 1 0 0 *
13 1 1 0 1 * donde vemos que los términos irrelevantes son los mismos.
14 1 1 1 0 0
15 1 1 1 1 0
ab
cd 00 01 11 10
00 * * * 12 1
0 4 8 b·d
01 1 *
1 5 13 9
a·b 11 1 1
3 7 15 11
b·c
10 * 1 1
2 6 14 10
a·d
Página 30
Sistemas Digitales
ab
cd 00 01 11 10
00 * * * 1 c·d
0 4 12 8
01 1 *
1 5 13 9
a·b 11 1 1
3 7 15 11
b·c
10 * 1 1
2 6 14 10
a·d
Las ventajas del método de Karnaugh son que es sencillo e intuitivo. Visualmente pueden
obtenerse las asociaciones de adyacencias que hay que hacer para simplificar las funciones. El
inconveniente es que es impracticable para funciones lógicas de más de cinco variables.
Página 31
Sistemas Digitales
TEMA 2
5802 = 5 ⋅ 10 3 + 8 ⋅ 10 2 + 0 ⋅ 101 + 2 ⋅ 10 0
En sistemas descritos por variables lógicas resulta muy conveniente utilizar el sistema de
base 2 o “binario”. Este sistema utiliza sólo dos dígitos que serán el 0 y el 1. De hecho,
podemos establecer una equivalencia entre estos dos dígitos (números) y los valores lógicos
(no números) 0 y 1. Esta asociación es tan íntima y conveniente que a veces se pierde de vista
la distinción.
Un número expresado en binario consiste en una sucesión de ceros y unos. Por ejemplo:
10010. Análogamente al caso decimal debemos interpretar:
10010 = 1 ⋅ 2 4 + 0 ⋅ 2 3 + 0 ⋅ 2 2 + 1 ⋅ 21 + 0 ⋅ 2 0 = 16 + 0 + 0 + 2 + 0 = 18
Vemos que si realizamos las operaciones indicadas utilizando las reglas de sumar y
multiplicar de la base 10, se obtiene el número en dicha base.
1,8125 = 1 ⋅ 10 0 + 8 ⋅ 10 −1 + 1 ⋅ 10 −2 + 2 ⋅ 10 −3 + 5 ⋅ 10 −4
Página 32
Sistemas Digitales
Caso de número decimal menor que la unidad (multiplicación sucesiva por 2). Por
ejemplo, expresar 0,423 en binario:
138 2
18 69 2 0,375 x 2 = 0,750
0 09 34 2
1 14 17 2 0,750 x 2 = 1,500
0,500 x 2 = 1,000
0 1 8 2
0 4 2
0 2 2
0 1
Por lo tanto: 138,375 = 10001010,011
• Suma de pesos
Otra forma alternativa de convertir un número decimal a binario es el método de la suma de
pesos. Se busca el conjunto de pesos binarios o potencias de 2 cuya suma es igual al
número decimal. Es fácil acordarse de los distintos pesos binarios si partimos de 20 (1) y
vamos multiplicando por 2: 1, 2, 4, 8, 16, 32....En primer lugar buscamos la potencia de 2
Página 33
Sistemas Digitales
inmediatamente inferior al número decimal que queremos convertir. Restamos ese valor al
número decimal y repetimos el proceso con el resto sucesivamente hasta que el resto sea cero.
Para obtener el número binario colocamos unos en las posiciones correspondientes a los
pesos binarios que hemos utilizado.
Aritmética binaria
La suma aritmética de dos bits resulta muy sencilla porque éstos sólo pueden tomar el valor
cero y uno. La tabla de verdad de la suma en el sistema de base dos es:
0 0 1 1 Acarreo
9 1 0 0 1
3 + 0 0 1 1
12 0 1 1 0 0
Página 34
Sistemas Digitales
0 1 0 1
Signo Magnitud
y el –5 como:
1 1 0 1
Signo Magnitud
Este método de representación de los números negativos tiene el inconveniente de que para
la realización de la resta es necesario utilizar un circuito restador diferente del sumador.
Con la notación “complemento a 2” (CA2) se resuelve este problema, pues las sumas y
las restas se realizan de la misma manera. Dado un número expresado en binario, su
complemento a dos se halla complementándolo bit a bit (sustituyendo unos por ceros y
ceros por unos) (lo que se denomina complemento a 1) y sumándole posteriormente una
unidad. Por ejemplo, para hallar el complemento a dos del número 5 que en binario es 0101,
su complemento a 1 será 1010 y sumándole una unidad obtenemos 1011. Este número será
entonces el –5.
Otra forma de hallar el CA2 es buscar el primer bit a 1 empezando por el menos
significativo. Este bit se deja tal cual pero todos los demás se complementan.
Esta notación se ha pensado para que al sumar un número y su CA2 el resultado sea
cero, al igual que ocurre en el sistema decimal. En general con n bits podemos representar 2n
números comprendidos entre –2n-1 y 2n-1-1 (de 0111(7) a 0000(0) y de 1111 (-1) a 1000 (-8) ).
Todos los números positivos tienen el bit más significativo con valor cero y los negativos con
valor uno con lo que de nuevo el bit más significativo es el bit de signo.
Hay que tener en cuenta que el complemento a dos de un número depende del número de
bits que estemos manejando. Si manejamos números de cuatro bits, el complemento a dos de
5 será 1011, pero si manejamos números de cinco bits, el 5 se representará por 00101, al
complementarlo obtenemos 11010 y sumando uno 11011 que es diferente del número
anterior.
Con esta notación de los números negativos, la resta se convierte en una suma y se realiza
de la misma manera. Veámoslo con dos ejemplos:
Calculemos 7–5 :
Siete se representa en cuatro bits por 0111 y el –5, al ser negativo, lo representamos por su
complemento a dos, es decir, 1011. Sumando ambos números:
1 1 1 1 Acarreo
0 1 1 1
+ 1 0 1 1
1 0 0 1 0
es decir, prescindiendo del quinto bit, ya que estamos manejando números de cuatro bits,
hemos obtenido el número binario 0010 que corresponde al número 2.
Página 35
Sistemas Digitales
Calculemos 5–7:
Cinco es positivo luego lo representamos en binario natural por 0101. El –7, al ser
negativo, lo representamos por su complemento a dos que será:
Tenemos entonces:
1 Acarreo
0 1 0 1
+ 1 0 0 1
1 1 1 0
Vemos que hemos obtenido un número negativo al ser uno el cuarto bit, luego el número
obtenido se encontrará en complemento a dos. Realizando el CA1 de este número y
sumándole 1 calculamos el CA2 del resultado, obteniendo 0010, con lo que el resultado es –2.
Nota: el CA2 del CA2 nos devuelve el número positivo. Así en el caso anterior teníamos 1110
que complementado es 0001 y sumando uno 0010 que corresponde al 2.
Sistema octal: es el sistema de numeración de base 8, por lo que tan solo utiliza los dígitos
desde el 0 hasta el 7.
Su utilidad radica en el hecho de que tres dígitos binarios pueden representar exactamente
23=8 números diferentes. Para convertir un número de binario a octal basta con agrupar los
dígitos binarios de 3 en 3 partiendo de la coma decimal en ambas direcciones y sustituir
directamente cada grupo de 3 dígitos por el número que representan.
Sistema hexadecimal: es el sistema de numeración de base 16, por lo que debe utilizar 16
dígitos distintos. A partir del digito 10 (número 9) utilizaremos letras mayúsculas con lo que
tendremos los siguientes dígitos para este sistema:
Página 36
Sistemas Digitales
El sistema numérico binario tiene la ventaja de que sus dígitos pueden ponerse en
correspondencia exacta con los valores de una variable lógica, pero existe una desventaja: las
conversiones decimal – binario son complicadas, ya que, en general, cada dígito binario puede
afectar a cada dígito decimal y viceversa. Para evitar este inconveniente se usa el código
BCD, en el que se emplean 4 dígitos binarios para representar los dígitos decimales del 0 al
9 (las representaciones binarias para dichos números decimales son las del binario natural).
BCD
Dígito decimal A B C D
0 0 0 0 0
1 0 0 0 1 De esta forma, para
2 0 0 1 0 representar números decimales
3 0 0 1 1 con varios dígitos no hay más
4 0 1 0 0 que sustituir cada dígito
5 0 1 0 1 individual por el correspondiente
6 0 1 1 0 grupo binario ABCD.
7 0 1 1 1 Así por ejemplo, el número
decimal 6432 en BCD es:
8 1 0 0 0
9 1 0 0 1 0110
0100
0011 0010
6 4 3 2
0
1
Espejo
1
0
Si a continuación añadimos delante dos ceros y dos unos tendremos el código de Gray de 2
bits:
Página 37
Sistemas Digitales
Gray de 2
bits
0 0
0 1 Este es el código que se utiliza en los diagramas de
1 1 Karnaugh.
1 0
Para obtener el código de Gray de 3 bits se repite el proceso anterior, es decir, reflejamos
el código de Gray de 2 bits por su parte inferior y a continuación añadimos delante 4 ceros y 4
unos con lo que obtenemos:
Gray de 3 bits
0 0 0
0 0 1
0 1 1
0 1 0
Espejo
1 1 0
1 1 1
1 0 1
1 0 0
De esta forma se pueden ir construyendo sucesivamente los códigos de Gray de 4, 5,..., n bits.
Una gran ventaja de este código es la facilidad de convertirlo a código binario natural y
viceversa mediante la función XOR. Puede demostrarse que:
Página 38
Sistemas Digitales
A=a
B=a⊕b
C = b⊕c
D = c⊕d
(msb) a A (msb)
a⊕b
B
b
b⊕c
C
c
c⊕d
D (lsb)
(lsb) d
A⊕ B
b
B
A⊕ B⊕C
c
C
A ⊕ B ⊕ C ⊕ D d (lsb)
(lsb) D
Página 39
Sistemas Digitales
3 0 0 1 1 1 0 1 1 1 1 1 1
4 0 1 1 1 1 1 1 1 1 1 1 0
5 1 1 1 1 1 1 1 1 0 1 0 0
6 1 1 1 1 0 1 1 0 0 -- -- --
7 1 1 1 0 0 1 0 0 0 -- -- --
8 1 1 0 0 0 -- -- -- -- -- -- --
9 1 0 0 0 0 -- -- -- -- -- -- --
El inconveniente de este código es que para representar un número decimal N necesitamos
un código de Johnson de n dígitos tal que: 2(n - 1) ≤ N ≤ 2n . Presenta, sin embargo, la gran
ventaja de su gran sencillez para la realización de contadores en este código, lo que permite su
utilización en el diseño de unidades de control de numerosos sistemas digitales.
Los códigos continuos y cíclicos se usan en los conversores analógico – digitales rápidos
y en los codificadores de posición que convierten un ángulo en una combinación binaria
mediante un disco codificado. Debido a que en combinaciones binarias contiguas sólo cambia
un bit, se elimina la posibilidad de aparición de combinaciones intermedias erróneas que
pueden proporcionar una información incorrecta en el momento de realizar la medida.
Existen una versión extendida del código ASCII (IBMPC) que utiliza palabras de 8 bits (1
byte) y que codifica 256 elementos de información. A los anteriores se añaden caracteres
gráficos e internacionales. De ellos los 127 primeros coinciden con el ASCII estándar.
Código ASCII
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
2
! " # $ % & ' ( ) * + , - . /
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
3
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
4
@ A B C D E F G H I J K L M N O
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
5
P Q R S T U V W X Y Z [ \ ] ^ _
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
6
` a b c d e f g h i j k l m n o
Página 40
Sistemas Digitales
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
7
p q r s t u v w x y z { | } ~
0 1 2 3 4 5 6 7 8 9 A B C D E F
El código decimal de cada carácter aparece junto a él. El código hexadecimal se obtiene
tomando como primer dígito la cifra hexadecimal de la fila (situada a la izquierda) y como
segundo dígito la cifra hexadecimal de la columna (situada en la parte inferior). Por ejemplo,
el carácter “A” tiene como código hexadecimal el 41.
Existen diversos tipos de códigos detectores de errores entre los cuales se encuentran los
“códigos de paridad” que son los más utilizados. Estos códigos de paridad se obtienen
añadiendo a las combinaciones de los códigos anteriormente estudiados un bit llamado “bit
de paridad”. Si el código que se desea obtener es de paridad par, dicho bit será tal que el
número de unos en cada combinación del nuevo código sea par. Si por el contrario queremos
un código de paridad impar, el bit añadido a cada combinación ha de ser tal que la resultante
tenga un número impar de unos.
Página 41
Sistemas Digitales
A⊕ B⊕C ⊕ D⊕ E
E
Este sistema de detección de error posee la limitación de que si son dos los bits que
cambian a la vez, no se produce un cambio en la paridad por lo que no se detecta el error.
Pero, evidentemente, la probabilidad de que dos bits cambien es mucho menor que la de que
cambie uno sólo. Por ejemplo, si la probabilidad de error en un bit es de 1 entre 104, entonces
la probabilidad de error en dos bits será de 1 entre 104·104=108. Por tanto, un sistema que
detecta un error en 104 aunque no detecte un error en 108 o superior es bastante bueno.
Nota: hay códigos que además de detectar errores los corrigen, como el código de
Hamming, añadiendo bits que nos indican cual es el erróneo.
Se puede diseñar un circuito que nos realice el CA2 sin más que hacer una tabla de verdad
donde aparezca la combinación binaria como entrada y el número en CA2 como salida. Lo
vamos a hacer para números de cuatro bits.
Página 42
Sistemas Digitales
X3 X2 X1 X0 Z3 Z2 Z1 Z0
0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1
0 0 1 0 1 1 1 0
0 0 1 1 1 1 0 1
0 1 0 0 1 1 0 0
0 1 0 1 1 0 1 1
0 1 1 0 1 0 1 0
0 1 1 1 1 0 0 1
1 0 0 0 1 0 0 0
1 0 0 1 0 1 1 1
1 0 1 0 0 1 1 0
1 0 1 1 0 1 0 1
1 1 0 0 0 1 0 0
1 1 0 1 0 0 1 1
1 1 1 0 0 0 1 0
1 1 1 1 0 0 0 1
X3X2 X3X2
00 01 11 10 00 01 11 10
X1X0 X1X0
00 0 4
00 0 4 12 8
12 8
01 1 1 1 1 01 1 1 1 1
1 5 13 9 1 5 13 9
11 1 1 1 1 11
3 7 15 11 3 7 15 11
10 10 1 1 1 1
2 6 14 10 2 6 14 10
Z0 = X 0 Z1 = X 1 ⊕ X 0
X3X2 X3X2
00 01 11 10 00 01 11 10
X1X0 X1X0
00 1 1 00 1 1
0 4 12 8 0 4 12 8
01 1 1 01 1 1
1 5 13 9 1 5 13 9
11 1 1 11 1 1
3 7 15 11 3 7 15 11
10 1 1 10 1 1
2 6 14 10 2 6 14 10
Z2 = X 2 ⊕ ( X1 + X 0 ) Z3 = X 3 ⊕ ( X 2 + X1 + X 0 )
Página 43
Sistemas Digitales
Z0 = X 0 Z2 = X 2 ⊕ ( X1 + X 0 )
Z1 = X 1 ⊕ X 0 Z3 = X 3 ⊕ ( X 2 + X1 + X 0 )
Z0 = X 0 Z 2 = X 2 ⊕ ( X 1 + Z1 )
Z1 = X 1 ⊕ X 0 Z3 = X 3 ⊕ ( X 2 + Z 2 )
Página 44
Sistemas Digitales
En los apartados anteriores hemos visto como implementar una función lógica a través de
un circuito digital constituido por puertas. El valor que tomaba una función lógica venía
determinado por los valores que adoptaban las variables de las que dependía: para cada
combinación de entradas, la función lógica adopta uno u otro valor. Por ello, a los circuitos
lógicos que realizan una determinada función lógica se denominan “circuitos
combinacionales”. En un circuito combinacional, el estado lógico de sus salidas en cada
instante depende únicamente del estado de sus entradas en ese mismo instante. Por lo tanto,
en ellos no es necesario tener en cuenta la noción de tiempo.
Así, dada la relación función lógica – circuito combinacional, éstos pueden venir
representados por la tabla de verdad de la función lógica que implementa o mediante las
expresiones numéricas estudiadas anteriormente correspondientes a suma de productos
canónicos y producto de sumas canónicas. De hecho, el diseño de todo circuito combinacional
se inicia mediante la obtención de la tabla de verdad a partir de las especificaciones que
indican los valores que debe tomar la función para cada una de las combinaciones de las
variables de entrada de las cuales depende. De la tabla de verdad se deducen las expresiones
canónicas a partir de las cuales se realizará la simplificación.
Cuando expresamos una función como suma de productos (1s en el diagrama de Karnaugh)
(sean o no canónicos), su implementación física constará de dos niveles de puertas. Por
ejemplo, la función:
f ( a , b, c ) = a ⋅ b ⋅ c + a ⋅ c + a ⋅ b
se implementa:
a a·b·c
b
c
a f = a·b·c + a·c + a·b
a·c
c
a a·b
b
Figura 1.
que como vemos es una estructura AND-OR. Cada variable (o su complemento) debe
atravesar dos niveles de puertas.
Página 45
Sistemas Digitales
se tiene:
a
a+b+c
b
c
a g = (a + b + c)(a + b)(b + c)
a+b
b
b b+c
c
Figura 2
que es una estructura OR-AND. Igual que en el caso anterior, cada variable (o su
complemento) atraviesa dos niveles de puertas.
Ya dijimos que los valores de las variables lógicas se representan generalmente por
tensiones eléctricas. Cuando en la entrada de una puerta se produce un cambio de tensión, su
efecto no se advierte inmediatamente en la salida de la puerta, ya que hay un retardo llamado
“retardo de propagación” de la puerta, entre el cambio en la entrada y el cambio
correspondiente en la salida, si lo hay.
En las estructuras de dos niveles, el retardo entre los cambios de la variable de entrada y el
cambio correspondiente a la salida es el retraso de propagación de dos puertas. Nada nos
impide implementar funciones en una estructura de más de dos niveles de puertas. Así, en el
ejemplo anterior, si ponemos:
f (a, b, c) = a ⋅ b ⋅ c + a ⋅ c + a ⋅ b = a ⋅ b ⋅ c + a ⋅ (c + b)
podemos implementar:
a
a·b·c
b
c
f = a ⋅ b ⋅ c + a ⋅ (c + b)
a
a·(c + b)
c c+b
Vemos que es una estructura de tres niveles, ya que algunas variables deben atravesar tres
puertas con lo que el retraso de propagación total será mayor. Por este motivo se prefieren
normalmente las estructuras de dos niveles.
Página 46
Sistemas Digitales
f ( a , b, c ) = a ⋅ b ⋅ c + a ⋅ c + a ⋅ b
Si complementamos dos veces y aplicamos las leyes de Morgan:
f = f = a ⋅ b ⋅ c + a ⋅ c + a ⋅ b = ( a ⋅ b ⋅ c ) ⋅ ( a ⋅ c ) ⋅ ( a ⋅ b)
a a·b·c
b
c
a a·c f = (a·b·c)·(a·c)·(a·b)
c
a
a·b
b
Así, para obtener el circuito que implementa f hemos sustituido todas las puertas de la
estructura AND-OR de la figura 1 por puertas NAND.
g = g = (a + b + c) ⋅ (a + b) ⋅ (b + c) = (a + b + c) + (a + b) + (b + c)
a
b a+b+c
c
a g = (a + b + c) + (a + b) + (b + c)
a+b
b
b
b+c
c
Página 47
Sistemas Digitales
Así, para obtener el circuito que implementa g hemos sustituido todas las puertas de la
estructura OR-AND de la figura 2 por puertas NOR.
Observaciones:
Cuando en una función lógica aparezca un término compuesto por una sola variable, no
tendríamos realmente una estructura de dos niveles pues no todas las entradas necesitarían
atravesar dos puestas lógicas. En estos casos tenemos que convertir la estructura en otra de
dos niveles antes de poder expresarla con un solo tipo de puertas. Sea, por ejemplo, la
función: f (a, b, c) = a + b ⋅ c . Tendríamos:
a a a·(bc) = a + bc
a + bc
b b
que vemos que no es correcto. Lo que debemos hacer es, como a ⋅ a = a , entonces:
a a
a a
a·(bc) = a + bc
a + bc
b b
a a a
a
a
a a a
“0”
Página 48
Sistemas Digitales
Los fenómenos aleatorios de tipo cero se producen cuando, al cambiar el estado de una
variable de entrada, la función debe permanecer en estado uno pero transitoriamente pasa por
cero. Ocurre cuando la función se expresa como suma de productos. Veamos como se
produce un fenómeno de este tipo.
Sea una función f que depende de una serie de variables a, b, c,... y designemos por X al
conjunto de todas las variables excepto la a. Hemos demostrado anteriormente que f puede
expresarse algebraicamente de la forma siguiente:
a
a a tpdr tpdf
f(a,X0)
Página 49
Sistemas Digitales
f (a, b, c) = ∑ (1, 3, 6, 7) 0
0 2
1
6 4
1 1 1 1
1 3 7 5
ac bc ab
b
f
a
Página 50
Sistemas Digitales
donde convenimos, como es habitual en asignar el uno lógico al paso de corriente y el cero
lógico a su ausencia. Se observa que si b y c están cerrados, cuando a conmuta a a hay un
periodo de tiempo en el que el circuito permanece abierto, luego f presentará un impulso
aleatorio de tipo cero.
Este término es el que cubre la adyacencia entre los otros dos términos. La expresión de f
será ahora:
f = a ⋅b + a ⋅c + b⋅c = a ⋅b⋅a ⋅c ⋅b⋅c
Hay que insistir en que, aunque hemos añadido un término más, f no varía. La
realización con puertas NAND es ahora:
y con conmutadores:
a b c
b b
a
a
c f
f
a
c
b Ahora se observa que cuando b y c están cerrados
( b = c = 1 ), al cambiar a a a no se produce el
c fenómeno aleatorio gracias a la nueva rama que se ha
incluido.
Por tanto, para eliminar los fenómenos aleatorios estáticos de tipo cero al realizar la
simplificación de una función lógica mediante la tabla de Karnaugh de la suma de
productos canónicos es necesario, no sólo cubrir todos los unos de la función, sino
también cubrir todas las adyacencias, solapando todos los productos adyacentes.
Los fenómenos aleatorios de tipo uno se producen cuando, al cambiar de estado una
variable, la función debe permanecer en estado cero, pero pasa transitoriamente por estado
uno. Este fenómeno puede producirse cuando una función ha sido expresada mediante un
producto de sumas.
Sea una función f de las variables a, b, c, d,... que puede expresarse, tal y como vimos
anteriormente de la forma siguiente:
[
f (a, b, c, d ,...) = f (a, X ) = [a + f (0, X )] ⋅ a + f (1, X ) ]
Si se cumple que para la combinación de estados X0 de todas las variables excepto la a se
verifica:
f (0, X 0 ) = f (1, X 0 ) = 0
Página 51
Sistemas Digitales
a
a a tpdr tpdf
f(a,X0)
La forma de eliminar este fenómeno es similar a la descrita para el tipo cero. La expresión
de f ha de multiplicarse por f (0, X ) + f (1, X ) que toma el valor lógico cero para la
combinación X0 de entrada. También puede demostrarse que la función f no varía al añadir
dicho término que cubre la adyacencia existente entre a + f (0, X ) y a + f (1, X ) .
ab
c 00 01 11 10
La expresión mínima de esta función es:
0
0
0
2
0
6 4 f (a, b, c) = (b + c) ⋅ (a + c) = (b + c) + (a + c) , que
corresponde al siguiente circuito en puertas NOR:
1 0 0
1 3 7 5
c
f
a
b a f
Página 52
Sistemas Digitales
c
a
f
c
a
y con conmutadores:
c c b
b a a f
f1
f2
Página 53
Sistemas Digitales
Estudiaremos este fenómeno para expresiones en forma de suma de productos. Para que
un fenómeno aleatorio de tipo dinámico pueda producirse es necesario que, para una
combinación determinada de valores lógicos de todas las variables de entrada, excepto la a, la
salida adopte la siguiente expresión mínima:
f = a + a⋅a
En régimen estático, f = a , pero veamos lo que puede ocurrir al cambiar a de uno a cero.
Supondremos que el cambio de estado de todas las variables a no es simultáneo y las
denominaremos a1, a2 y a3, y por tanto:
f = a1 + a 2 ⋅ a3
Consideremos que inicialmente a1 = a 2 = 1 y a3 = 0 , con lo que f = 1 + 1 ⋅ 0 = 1 .
Si a cambia del estado uno al cero, se produce un fenómeno aleatorio dinámico cuando los
cambios de a1 , a 2 y a3 se realizan de acuerdo con la siguiente tabla:
a1 a2 a3 f = a1 + a 2 ⋅ a3
Estado inicial 1 1 0 1
Estados 0 1 0 0
transitorios 0 1 1 1
Estado final 0 0 1 0
a
N
b
N
a
N N f
c a
N4
d
f = a⋅ b ⋅ a
⋅ c ⋅ a
⋅ d = a ⋅ b ⋅ a ⋅ c + a ⋅ d = ( a + b) ⋅ ( a + c ) + a ⋅ d
N1 N 2 N 4
Página 54
Sistemas Digitales
a
1
b
3
a
2 5 f
c a
4
d
a (N4)
a (N1)
a (N2)
Página 55
Sistemas Digitales
Describiremos seguidamente los circuitos de uso más corriente y sus características más
importantes. El desarrollo continuo de la tecnología hace que cada día surjan más circuitos
combinacionales de escala de integración media. El diseñador de circuitos lógicos ha de
estudiar su función lógica y utilizarlos en aquellos casos en los que mediante su uso logre una
minimización del sistema.
4.1- DECODIFICADORES
Un decodificador es un circuito con n entradas y 2n salidas, de manera que en cada instante
solo está activa una salida, aquella cuyo número decimal coincide con el número codificado
en binario en la entrada. En la salida aparece decodificada la entrada binaria. Un ejemplo de
circuito decodificador se muestra en la siguiente figura:
A1 A0
E
O0
O1
Su tabla de verdad es:
E A1 A0 O0 O1 O2 O3
1 0 0 1 0 0 0
O2 1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
0 * * 0 0 0 0
O3
La característica más importante de este circuito es que para cada entrada A1A0, una y
sólo una salida es uno lógico; es decir, en cualquier instante una de las salidas (O0, O1, O2, u
O3) se distingue de las demás. En el caso del anterior circuito, la salida señalada se distingue
de las demás porque es uno lógico cuando las demás son cero lógico. Hay una puerta AND
para cada salida.
Página 56
Sistemas Digitales
El decodificador `138 MSI tiene 3 entradas que direccionan 23 = 8 salidas. Se fabrica con
16 pines y tiene el siguiente esquema:
Terminales de
habilitación
Dirección
de entrada
E1 E 2 E 3
A2 A1 A0
E A2 A1 A0
DECODIFICADOR `138
O0 O1 O2 O3 O4 O5 O6 O7
E 1 E 2 E3 A2 A1 A0 O 0 O1 O 2 O 3 O 4 O 5 O 6 O 7
0 0 1 0 0 0 0 1 1 1 1 1 1 1
0 0 1 0 0 1 1 0 1 1 1 1 1 1
0 0 1 0 1 0 1 1 0 1 1 1 1 1
0 0 1 0 1 1 1 1 1 0 1 1 1 1
0 0 1 1 0 0 1 1 1 1 0 1 1 1
0 0 1 1 0 1 1 1 1 1 1 0 1 1
0 0 1 1 1 0 1 1 1 1 1 1 0 1
0 0 1 1 1 1 1 1 1 1 1 1 1 0
1 * * * * * 1 1 1 1 1 1 1 1
* 1 * * * * 1 1 1 1 1 1 1 1
* * 0 * * * 1 1 1 1 1 1 1 1
Para que el decodificador realice la función para la que ha sido diseñado, debe estar
habilitado. Hay tres terminales de habilitación, dos de ellos activos en baja E 1 y E 2 , y el otro
en alta E 3 . Todos ellos están relacionados a través de una puerta AND con lo que para que el
decodificador esté habilitado es necesario que E 1 = E 2 = E 3 = 1 , es decir, que E 1 = E 2 = 0 y
E 3 = 1 . Cuando el chip no está habilitado, todas las salidas están a uno.
Página 57
Sistemas Digitales
Las salidas son activas a nivel bajo (pues está construido con puertas NAND en vez de
AND), es decir, cuando el decodificador está habilitado aparece un cero en la salida cuya
dirección viene dada por la combinación de entradas y las demás salidas están a uno. Esto se
hace así porque la familia TTL (Transistor-transistor logic) consume menos potencia cuando
las salidas están en alta (el transistor de salida no conduce y la corriente es muy baja) que
cuando están en baja y es evidente que siete salidas en alta y una en baja consumen menos
que siete en baja y una en alta.
Veamos a continuación una serie de aplicaciones de los decodificadores:
Página 58
Sistemas Digitales
que se corresponde con un decodificador 4 a 16. Si E = 0 estará todo deshabilitado (todas las
salidas a 1). Si E = 1 y A3 = 0 el decodificador (b) estará deshabilitado. Si E = 1 y A3 = 1 el
decodificador (a) estará deshabilitado.
ac A0 O7
O6
b A1
O5
ac A2 O4
O3 f(a, b, c)
O2
E E3 O1
E2
E1 O0
4.2- CODIFICADORES:
Los circuitos codificadores son sistemas combinacionales de 2n entradas y n salidas, de
forma que cuando una sola de las entradas adopta un estado lógico diferente de las demás
(uno o cero), a la salida aparece la combinación binaria correspondiente al número decimal
asignado a dicha entrada. Realizan por tanto la función inversa de los decodificadores, es
decir, codifican en binario la entrada decimal.
I7 I6 I5 I4 I3 I2 I1 I0 O2 O1 O0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
Página 59
Sistemas Digitales
Los circuitos codificadores pueden ser diseñados con prioridad o sin ella. En los
codificadores sin prioridad, cuando más de una entrada toma el estado activo (uno o cero), la
combinación de salida posee tantos unos como hay en las salidas correspondientes a la
excitación de cada una de las entradas independientemente (mezcla las salidas); por ello, en
este codificador solamente debe ser activa una entrada cada instante.
Los codificadores con prioridad codifican la entrada activa de mayor valor decimal sin
tener en cuenta las demás. Su tabla de verdad en el caso n = 3 y con entradas activas con uno
lógico será:
I7 I6 I5 I4 I3 I2 I1 I0 O2 O1 O0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 * 0 0 1
0 0 0 0 0 1 * * 0 1 0
0 0 0 0 1 * * * 0 1 1
0 0 0 1 * * * * 1 0 0
0 0 1 * * * * * 1 0 1
0 1 * * * * * * 1 1 0
1 * * * * * * * 1 1 1
En esta tabla se observa que, con tres variables binarias O2, O1 y O0 solamente se tiene
ocho combinaciones, no es posible discernir entre la situación en que ninguna de las entradas
está activada y aquella en que es activa la de menor peso (I0). Para distinguir estas dos
situaciones, se añade una nueva salida que detecta cuando están inactivas todas las
combinaciones de entrada o cuando están activadas algunas de ellas. Además suele añadirse
una entrada de habilitación.
¿Para qué se utilizan los codificadores de prioridad? Los sistemas digitales incluyen
frecuentemente componentes para generar señales que indican que es necesario realizar
alguna acción. Por ejemplo, supongamos que equipamos un tanque de agua con un
mecanismo conmutador que opera cuando el nivel de agua está excesivamente alto y hay
peligro de desbordamiento. Fácilmente podemos disponer una línea que en condiciones
normales esté en cero lógico, pero que cambie a uno lógico cuando opere el conmutador.
Entonces el cambio de cero a uno es una indicación de que es necesario hacer algo; es decir,
hay una “petición de servicio”. Este mismo sistema puede entonces tener componentes
diseñados para suministrar la respuesta adecuada, es decir, “atender la petición”. El servicio
suministrado en el caso del tanque de agua puede consistir, por ejemplo, en cerrar una válvula
de entrada o abrir una válvula de salida. Frecuentemente en un sistema digital hay líneas para
peticiones de servicio y consecuentemente una serie de componentes del sistema que pueden
prestar esos servicios. Los componentes que se activan dependen, por supuesto, de la línea
que presente la petición de servicio.
Se utiliza normalmente un codificador para aceptar como entradas las líneas de petición de
servicio y obtener como salida el código de bits correspondiente a la dirección del
componente que atenderá la petición, ya que el codificador se diseña para que cada vez que
tenga una entrada diferente se atienda solamente una petición de servicio. Ésta situación es
Página 60
Sistemas Digitales
aceptable, ya que generalmente los componentes que suministran el servicio tienen elementos
comunes y por ello cada vez se puede servir solamente una petición.
Si nuestro sistema es tal que no puede generarse simultáneamente más de una petición de
servicio, bastará con utilizar codificadores sin prioridad. Pero si en el sistema se generan dos
o más peticiones de servicio al mismo tiempo, la solución consiste en asignar una “prioridad”
a cada línea de petición de servicio y será necesario utilizar un codificador de prioridad. Si
hay más de una petición simultáneamente, la salida del codificador direccionará el
componente de servicio correspondiente a la petición con la prioridad más alta y, cuando
aquella haya sido atendida, la línea correspondiente de petición de servicio volverá a cero
lógico y se atenderá la siguiente petición de mayor prioridad.
I0 I1 I2 I3 I4 I5 I6 I7 EI
CODIFICADOR `148
O2 O1 O0 EO GS
O2 O1 O0 EO GS
• Codificador deshabilitado.
• Codificador habilitado sin ninguna petición de servicio.
• Codificador habilitado con una única petición de servicio por la línea I 0 .
En estos tres casos las tres salidas están todas en alta. El modo de distinguir en qué
situación nos encontramos viene expresado por la siguiente tabla:
Página 61
Sistemas Digitales
I 0 I1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10 I 11 I 12 I 13 I 14 I 15 EI
Estas
I0a I1a I2a I3a I4a I5a I6a I7a EIa I0b I1b I2b I3b I4b I5b I6b I7b EIb
CODIFICADOR `148 CODIFICADOR `148
(a) (b)
O2a O1a O0a EOa GSa EOb GSb O2b O1b O0b
salidas
Página 62
Sistemas Digitales
Página 63
Sistemas Digitales
Z0
A0 B0
A1 Z1
B1
Zn-1
An-1 Bn-1
Página 64
Sistemas Digitales
La entrada LT (Lamp Test), activa en baja, sirve para testear el display. Si LT = 0 , pone
las salidas a, b, c,..., g en alta para que se iluminen todos los segmentos del display. La
entrada RBI (Ripple Blanking Input), activa en baja, cuando está a cero y
A 3 = A 2 = A 1 = A 0 = 0 deja el display sin iluminación. Se utiliza para evitar ceros a la
izquierda. Además, en esa situación, la salida RBO (Ripple Blanking Output), activa en baja,
se pone a cero. Sirve para conectar en serie varios conversores de código y evitar los
sucesivos ceros a la izquierda. Para ello no hay más que conectar la salida RBO de cada
decodificador con la entrada RBI del siguiente, desde el dígito más significativo hasta el
menos significativo.
4.4- MULTIPLEXORES
Un multiplexor es un circuito combinacional de n entradas, una sola salida y m entradas
de selección con 2m = n. Mediante las entradas de selección se elige cual de las entradas
aparece en la única salida. Realiza la operación indicada en la siguiente figura, donde
disponemos de una serie de líneas de entrada y una sola línea de salida. La posición del
conmutador, que es controlable, determina qué señal de entrada aparece en la salida (como los
conmutadores usados en el laboratorio).
0
1
2
n-1
Entradas Control para conmutar Salida
de m bits
I0
G0
Consta de cuatro entradas (I0 ··· I3)
I1 que pueden seleccionarse con los
G1 bits S1S0. El número de entradas es
susceptible de aumento sin más
Z que incrementar el número de
I2 puertas AND y de bits de
G2 selección. Los bits de selección
determinan la puerta AND
I3 habilitada. Así, por ejemplo, la
G3 combinación S0 = 1, S1 = 0 sólo
habilita la puerta G2, e I2 aparecerá
a la salida del circuito.
S1 S0
Página 65
Sistemas Digitales
I0 I1 I2 I3 I4 I5 I6 I7 S2 S1 S0 E
Posee una entrada de habilitación activa en baja
(cuando E = 1 , las salidas son Z = 0, Z = 1 ). La
entrada direccionada por los bits S2S1S0 aparecerá a
MULTIPLEXOR `151 la salida Z. A través de la salida Z obtenemos su
complemento.
Z Z
Z3 Z2 Z1 Z0
f (a, b, c) = ∑ (0, 2, 3, 5, 7)
Página 66
Sistemas Digitales
a b c f
0 0 0 0 1
1 0 0 1 0
2 0 1 0 1
3 0 1 1 1
4 1 0 0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
Implementemos esta función con un multiplexor ‘151. Para ello realizamos el montaje
siguiente:
Multiplexor
1 habilitado
a bc 0
0
Así, cuando a través de los bits de control
I0 I1 I2 I3 I4 I5 I6 I7 S2 S1 S0 E establezcamos una determinada combinación de
variables de entrada, obtendremos en la salida Z el
MULTIPLEXOR `151 canal seleccionado. Poniendo en cada canal un cero
o un uno según la tabla de verdad de la función,
obtendremos dicha función en la salida.
Z=f Z
Los bits de selección S2S1S0 hacen el papel de variables de entrada de la función f. En las
entradas I0,...,I7 ponemos los correspondientes valores que ha de tomar la función f, los cuales
aparecerán en la salida Z según los seleccionemos con S2S1S0.
Página 67
Sistemas Digitales
4.5- DEMULTIPLEXORES
Constan de una entrada, n salidas y m=2n entradas de selección, mediante las cuales se
selecciona en qué salida aparece la única entrada. Realizan la operación inversa de un
multiplexor. Supongamos que disponemos de varias fuentes generadoras de palabras de m
bits y de varios posibles receptores, es decir, destinatarios de esas palabras. Supongamos
además que nos proponemos transmitir una palabra de cualquier fuente a cualquier receptor.
Una forma de realizar la transmisión sería suministrar un bus separado de cada fuente a cada
receptor.
(dirección) A1 A1 O6
decodificador estará habilitado y
A2 O5 O5
A2 aparecerá un cero en la salida
O4 O4 direccionada por A2A1A0 y un
uno en el resto. Si E 1 = 1 , el
O3 O3 decodificador se deshabilita y
O2 O2 todas sus salidas estarán a uno.
E3 O1 Por tanto, el estado de la salida
Terminales de O1 seleccionada por A2A1A0 coincide
habilitación E2 E O0 O0 con la entrada E 1 , luego con este
E1 montaje el decodificador ‘138
Entrada de datos (bus)
funciona como un demultiplexor.
Página 68
Sistemas Digitales
A3 A2 A1 A0 B3 B2 B1 B0
Entradas para
Entradas Salidas
conectar en cascada
A3,B3 A2,B2 A1,B1 A0,B0 IA>B IA<B IA=B OA>B OA<B OA=B
A3>B3 * * * * * * 1 0 0
A3<B3 * * * * * * 0 1 0
A3=B3 A2>B2 * * * * * 1 0 0
A3=B3 A2<B2 * * * * * 0 1 0
A3=B3 A2=B2 A1>B1 * * * * 1 0 0
A3=B3 A2=B2 A1<B1 * * * * 0 1 0
A3=B3 A2=B2 A1=B1 A0>B0 * * * 1 0 0
A3=B3 A2=B2 A1=B1 A0<B0 * * * 0 1 0
A3=B3 A2=B2 A1=B1 A0=B0 1 0 0 1 0 0
A3=B3 A2=B2 A1=B1 A0=B0 0 1 0 0 1 0
A3=B3 A2=B2 A1=B1 A0=B0 * * 1 0 0 1
A3=B3 A2=B2 A1=B1 A0=B0 0 0 0 1 1 0
A3=B3 A2=B2 A1=B1 A0=B0 1 1 0 0 0 0
Página 69
Sistemas Digitales
Las entradas adicionales IA>B, IA<B y IA=B permiten conectar varios comparadores ’85 en
cascada y comparar números binarios de más de cuatro bits. Por ejemplo, para comparar dos
números binarios de ocho bits habrá que realizar el montaje:
A0 A1 A2 A3 B0 B1 B2 B3 A4 A5 A6 A7 B4 B5 B6 B7
A0a A1a A2a A3a B0a B1a B2a B3a A0b A1b A2b A3b B0b B1b B2b B3b
* I(A>B)a I(A>B)b
1 I(A=B)a I(A=B)b
4.7- SUMADORES:
En la mayoría de los sistemas digitales, desde el circuito de control más sencillo hasta el
calculador más complejo, se realizan operaciones aritméticas. Todas ellas pueden reducirse en
último término a una serie de sumas aritméticas binarias.
Ya vimos en el tema 2 que la suma de dos bits puede expresarse de esta manera:
s = a⊕b
c = a ⋅b
Para hacer la suma bit a bit hay que tener en cuenta el acarreo de la etapa anterior. Así,
tenemos la siguiente tabla de verdad:
a b cn cn+1 s
0 0 0 0 0 0
1 0 0 1 0 1 Donde cn es el acarreo de la etapa anterior y cn+1 el acarreo
2 0 1 0 0 1 para la etapa siguiente. El circuito que realiza la tabla de
3 0 1 1 1 0 verdad anterior y que tiene como entradas a, b y cn y como
4 1 0 0 0 1 salidas s y cn+1 se denomina sumador total. Veamos cual es
5 1 0 1 1 0 el circuito más sencillo que lo implementa.
6 1 1 0 1 0
7 1 1 1 1 1
Página 70
Sistemas Digitales
0 1 1 0 1
0 2 6 4 0 2 6 4
1 1 1 1 1 1 1
1 3 7 5 1 3 7 5
Así, obtenemos:
s = a ⋅ b ⋅ cn + a ⋅ b ⋅ cn + a ⋅ b ⋅ cn + a ⋅ b ⋅ cn =
= ( a ⋅ b + a ⋅ b) ⋅ c n + ( a ⋅ b + a ⋅ b) ⋅ c n = cn+1
= ( a ⊕ b) ⋅ c n + ( a ⊕ b) ⋅ c n = a ⊕ b ⊕ c n
c n +1 = a ⋅ b + a ⋅ c n + b ⋅ c n
a b cn
En la práctica se utilizan sumadores integrados como el ’83. Se trata de un sumador de
cuatro bits cuyo esquema lógico es:
A3 A2 A1 A0 B3 B2 B1 B0 CI
A B
SUMADOR `83
S=A+B
S3 S2 S1 S0 CO
Página 71
Sistemas Digitales
Consta de cuatro circuitos sumadores totales acoplados entre sí. CI es la entrada de acarreo
de la primera etapa sumadora y CO la salida de acarreo de la cuarta etapa.
Estos dos pines nos permiten conectar sumadores en cascada para poder efectuar la suma
binaria de números de más de cuatro bits:
A0 A1 A2 A3 B0 B1 B2 B3 0 A4 A5 A6 A7 B4 B5 B6 B7
A0a A1a A2a A3a B0a B1a B2a B3a CIa CIb A0b A1b A2b A3b B0b B1b B2b B3b
S0a S1a S2a S3a COa S0b S1b S2b S3b COb
S0 S1 S2 S3 S4 S5 S6 S7 CO
Figura. 4.5 Sumador total de 8 bits construido con dos sumadores de 4 bits.
Así, en S0 ··· S7 aparece la suma de los números de ocho bits A0 ··· A7 y B0 ··· B7, junto con
el acarreo CO correspondiente.
Ya hemos visto que si los números negativos vienen representados en complemento a dos,
podemos realizar la resta a través de la suma. Si quisiéramos restar dos números de cuatro bits
a3 a2 a1 a0 y b3 b2 b1 b0 con un sumador ’83, haríamos el siguiente montaje:
b3 b2 b1 b0
a3 a2 a1 a0
1 En las entradas A0···A3 introducimos
el minuendo a0···a3. En las entradas B0···B3
A3 A2 A1 A0 B3 B2 B1 B0 CI introducimos el complemento bit a bit del
sustraendo b0···b3. Poniendo el acarreo de
entrada CI a uno, sumamos una unidad con
lo que el sustraendo b0···b3 estará expresado
en C2. En S0···S3 obtenemos la resta de los
dos números.
S3 S2 S1 S0 CO
bit de signo
Página 72
Sistemas Digitales
Los sistemas que pueden actuar de esta forma han de ser capaces de memorizar el estado
de las entradas y convertirlo en un estado interno del propio sistema. El valor de la salida en
un instante determinado no depende solamente del estado de las entradas en dicho instante
sino también del estado interno.
x1 x1
x2 x2
z1
xn xn
z2
y1(t) y1(t+∆t)
(1) (2)
y2(t) y2(t+∆t) zp
ym(t) ym(t+∆t)
b) Las variables de salida coinciden con las variables de estado interno o dependen
solamente de ellas. La estructura de un sistema secuencial de este tipo recibe el nombre de
“autómata de Moore” y responde al diagrama de bloques siguiente:
x1
x2
z1
xn
z2
y1(t) y1(t+∆t)
(1) (2)
y2(t) y2(t+∆t) zp
ym(t) ym(t+∆t)
Puede demostrarse algebraicamente que para todo autómata de Moore existe un autómata
de Mealy equivalente y viceversa.
El autómata más general es el de Mealy. Está formado por dos sistemas combinacionales,
(1) y (2), y unos elementos de memoria. Las variables de entrada del sistema combinacional
(1) son las entradas exteriores X y las variables de estado interno Y a través de los elementos
de memoria. Estos pueden estar constituidos por una célula de retardo o una célula de
memoria capaz de almacenar la información de un bit del estado interno. La célula de retardo
se puede realizar físicamente a la salida del sistema combinacional o estar constituida por el
retardo inherente a las puertas del sistema combinacional. En este último caso se denomina “a
reacción directa”.
La evolución del estado interno de un sistema secuencial puede realizarse de dos formas
principales:
a) Autónoma: el sistema evoluciona sin control externo alguno hasta que para una
combinación de entradas X determinada, la combinación Y (t + ∆t ) coincide con Y (t ) , con
lo que el sistema alcanza un estado estable. Los sistemas de este tipo reciben el nombre de
“asíncronos”.
b) Controlada mediante los impulsos de un generador: el estado interno del sistema
secuencial evoluciona solamente cuando se aplica un impulso procedente de un generador.
Los sistemas de este tipo reciben el nombre de “síncronos”.
Página 74
Sistemas Digitales
Para la realización de un circuito secuencial asíncrono se han de seguir una serie de pasos,
desde las especificaciones del problema hasta el diseño del circuito final. No es necesario
realizar todos los pasos siempre que haya que diseñar un circuito, algunos de ellos se pueden
omitir. La lista completa de todos los pasos que hay que seguir se muestra a continuación.
1. Especificaciones.
2. Diagrama de secuencias / Diagrama de flujo.
3. Tabla de fases inicial.
4. Búsqueda de estados equivalentes o pseudo-equivalentes.
5. Fusión de líneas / Diagrama de fusión.
6. Tabla de fases reducida (Moore, Mealy).
7. Codificación de líneas de la tabla de fases / Diagrama de transiciones.
8. Tabla de fases con estados codificados.
9. Matriz de excitación (mapa de Karnaugh de los bits de estado). (evitar fenómenos
aleatorios)
10. Matriz de salida (mapa de Karnaugh del bit de salida).
11. Realización del circuito.
X
X Z
Lo primero será intentar deducir los estados estables que pueda tener el sistema. Estos se
producen mientras la entrada X no cambie. Tendremos un estado estable por cada
combinación posible de entradas y salidas, en principio tendremos el siguiente “diagrama de
secuencias”.
Z
1 2 3 4 1 2 3 4 1
Página 75
Sistemas Digitales
Una vez deducidos los estados, planteamos la “tabla de fases” en la que representamos de
forma ordenada la evolución de estado en estado. También representaremos la salida que
corresponde a cada estado.
X
0 1 Z
Est. Act.
1 1 2 0
Un estado será estable si, para una entrada determinada, el
2 3 2 0 estado actual y el siguiente coinciden. La salida que se indica
es la correspondiente al estado estable.
3 3 4 1
4 1 4 1
Est.Siguiente
Representamos los estados estables rodeados por un círculo bajo la entrada
correspondiente y rellenamos la tabla con estados inestables marcando las transiciones
asociadas a los cambios de la entrada. Se especifica un solo estado estable por línea.
0 1 1
1/0 2/0
X
0 0 E/Z E: estado
X: entrada
Z: salida
4/1 3/1
1 1 0
Aquí hemos deducido la tabla de fases a partir del diagrama de secuencias pero, en
ocasiones, dependiendo de las especificaciones, puede resultar más intuitivo deducir el
diagrama de flujo y, a partir de él, plantear la tabla de fases.
Para poder implementar el sistema digital será necesario codificar los estados. Como
tenemos cuatro en total, necesitamos dos bits que denominaremos y1 e y0. Pero antes de
asignar combinaciones concretas de bits a los estados es necesario comprobar las transiciones
que hay entre los estados y asegurarnos de que las combinaciones correspondientes a estados
entre los que hay transiciones difieran en un solo bit. Esto es absolutamente imprescindible,
Página 76
Sistemas Digitales
X
y1 y0 0 1 Z
Estado y1 y0
1 0 0 00 00 01 0
Estado Actual
la tabla de fases
pasa a
2 0 1 01 10 01 0
3 1 0 10 10 11 1
4 1 1 11 00 11 1
Estado Siguiente
Y1Y0
Veamos que ocurre cuando pasamos del estado (01) al (10) al cambiar X de uno a cero.
Como se puede observar tiene que producirse el cambio de los dos bits de estado. Ahora bien,
sabemos que cada salida de un circuito combinacional tiene un retardo de propagación
asociado, cuyo valor concreto no conocemos, y que nunca van a ser iguales los retardos
asociados a dos salidas distintas.
Sea t1 el retardo asociado a Y1, y t0 el retardo asociado a Y0. Como t1 y t0 nunca van a ser
iguales, eso significa que al pasar de y1 y 0 = 01 a y1 y 0 = 10 pasaremos por una de dos
posibles combinaciones intermedias o 00 o 11:
La entrada X pasa de 1 a 0
Si t1 > t0 Si t1 < t0
cambia antes y0 cambia antes y1
El sistema queda atrapado
01 en un ciclo de estados
seg inestables
uim
os
00 ¿? e ste
11 cam
* ino
10 ¿?
00 10 01
00 * ¿?
Estado final 00 11
distinto del esperado 10
Página 77
Sistemas Digitales
Algo similar ocurre en la transición del estado (11) al (00) cuando X pasa de uno a cero:
La entrada X pasa de 1 a 0
Si t1 > t0 Si t1 < t0
cambia antes y0 cambia antes y1
El sistema queda atrapado
11 en un ciclo de estados
seg inestables
uim
os
10 ¿? e ste
01 cam
* ino
00 ¿?
10 00 11
10 * ¿?
Estado final 10 01
distinto del esperado 00
Para evitar las transiciones críticas habrá que codificar los estados teniendo en cuenta las
transiciones que existen entre ellos. Para ello resulta útil el diagrama de transiciones:
1 2
00 01 Tenemos un sistema cíclico. Basta con codificar en código
Gray. Como ahora sólo cambia un bit de un estado actual al
siguiente no habrá problemas de transiciones críticas.
10 11
4 3
X
y1 y0 0 1 Z
Estado Siguiente
Y1Y0
Página 78
Sistemas Digitales
Veamos, por ejemplo, las salidas que asignamos a las transiciones desde el estado (00) al
(01):
Z 0 0 0
Transición desde 00 a 01
Y1Y0 t
00 01 01
Estados inestables
Z 1 1 1
Transición desde 11 a 10
Y1Y0 t
11 10 10
Estados inestables
Nota: el estado inestable correspondería con la salida del sistema durante la evolución de un estado a otro, durante la flecha
que une ambos estados en el diagrama de flujo.
Si la salida tiene que cambiar en la transición, nos da igual el valor que le asignemos a la
salida del estado inestable. Por ejemplo, al pasar de (01) a (11):
Z 0 * 1
Transición desde 01 a 11
Y1Y0 t
01 11 11
Estados inestables
X X X
y1 y0 0 1 y1 y0 0 1 y1 y0 0 1
00 0 0 00 0 0 00 0 1
01 * 0 01 1 0 01 1 1
11 1 1 Z = y1 11 1 1 11 1 0
5
Para evitar 5
5
1 10 0 1 fenómenos 10 0 0
10 * aleatorios
Salida Z Y1 Y02
Y
Página 79
Sistemas Digitales
de donde obtenemos:
Z = y1 , Y1 = X ⋅ y0 + X ⋅ y1 + y1 ⋅ y0 , Y0 = X ⋅ y 0 + X ⋅ y 1 + y 1 ⋅ y 0
Y0
Y1
Z
y0 y1
Circuito
asíncrono
Página 80
Sistemas Digitales
La reducción de una tabla de fases se realiza mediante la “fusión” de dos o más líneas en
una sola. La fusión de una tabla de fases es un paso importante porque el número de estados
internos será igual al de líneas y el sistema será tanto más sencillo cuanto menor sea el
número de éstas.
Estudiaremos la fusión de líneas en una tabla de fases con un ejemplo: supongamos que el
análisis de las especificaciones de un sistema secuencial asíncrono nos ha llevado al
planteamiento de una tabla de fases como la que aparece a continuación.
En el caso de que en alguna columna los estados siguientes sean diferentes, es necesario
que éstos, a su vez, sean equivalentes para que los dos primeros lo sean. Por ejemplo,
fijándonos en las líneas 3 y 4 de la tabla de fases anterior, se deduce que (3) y (4) son
equivalentes si lo son (5) y (7), es decir:
Página 81
Sistemas Digitales
Observando las líneas 7 y 8 se deduce que (5) y (7) son equivalentes. Por tanto:
(5) ≡ (7)
(3) ≡ (4)
Cuando se cumplen las condiciones antes mencionadas para la equivalencia de estados pero
en alguna columna uno sólo de los estados es inalcanzable o imposible, se dice que los
estados son “pseudoequivalentes” o “compatibles”. Por ejemplo, en la tabla de fases anterior
se observa que los estados (6) y (8) (líneas 5 y 6) son pseudoequivalentes.
Así pues, el primer paso para la reducción de la tabla de fases es la unión de estados
equivalentes y pseudoequivalentes. En nuestro ejemplo sustituiremos los estados (1) y (2) por
un solo estado, al cual asignaremos el número (1). De igual forma, el (3) y el (4) los
sustituiremos por el (3), y el (5) y el (7) por el (5). Los estados pseudoequivalentes (6) y (8) se
sustituyen por el (6), y en la columna que hay un estado imposible y el estado inestable 4, se
pone éste en lugar del inestable (en la tabla aparece el 3 pues hemos sustituido el 4 por su
equivalente). En la figura siguiente se indica la tabla resultante:
X1X2 00 01 11 10 Z
A 1 3 -- 6 1
B 5 3 -- 6 0
C 1 3 -- 6 1
D 5 9 -- 6 0
E 5 9 -- 6 1
Una vez que se han unido los estados equivalentes y los pseudoequivalentes es necesario
estudiar qué líneas son “fusionables”. Dos líneas son fusionables si ambas contienen en todas
las columnas algunas de las siguientes combinaciones de estados:
Página 82
Sistemas Digitales
Las tres primeras combinaciones no necesitan ser justificadas. Las dos últimas son
admisibles porque un estado imposible es aquel que no se puede alcanzar debido a la no
existencia de una determinada secuencia de estados y, por tanto, se le puede sustituir en una
línea fusionada por un estado estable o inestable, ya que sólo se llegará a éste a través de una
secuencia de estados admisible.
La fusión de líneas tampoco es una propiedad transitiva y, en consecuencia, para que tres
líneas sean fusionables en una sola lo han de ser dos a dos.
La fusión se puede realizar entre líneas a las que corresponda el mismo o distinto estado de
salida. Si todas las fusiones que se realizan son entre estados con la misma salida, a cada línea
de la tabla de fases final le corresponde un estado de salida y el sistema secuencial resultante
será un autómata de Moore. Por el contrario, si se fusionan entre sí líneas a las cuales les
corresponde distinto estado de salida, el sistema secuencial resultante corresponderá al
modelo de autómata de Mealy, en el cual la salida dependerá del estado de entrada y del
estado interno. En este caso es necesario incluir en la tabla de fases la información
correspondiente al estado de salida y, por consiguiente, al lado de cada estado estable se
indicará el estado de salida que le corresponde. A los estados inestables se les puede asignar
indistintamente el estado de salida del estado estable del cual se parte o del estado estable al
cual se llega, en caso de que sean diferentes, y el común a ambos si son iguales. La elección
se ha de realizar de forma que la expresión lógica resultante para las variables de salida sea lo
más sencilla posible.
A
Realicemos ahora la función para la tabla de fases de nuestro
ejemplo. Observando dicha tabla se deduce que la línea A es
fusionable con la C y la línea E lo es con la D. El diagrama de
fusión será pues: E B
Página 83
Sistemas Digitales
Para asimilar mejor todos los conceptos estudiados hasta ahora realizaremos la síntesis de
un sistema secuencial sencillo.
a) Si la variable X1 toma el valor lógico uno, la salida Z del sistema pasará al estado
lógico uno independientemente del estado en que se encuentre y continuará en él aunque la
variable X1 vuelva al estado lógico cero. Sucesivas conmutaciones de la variable X1 no
condicionan el estado de la salida.
b) Si la variable X2 toma el valor lógico uno, la salida Z del sistema pasará al estado
lógico cero independientemente del estado en que se encuentre anteriormente y continuará
en él aunque la variable X2 vuelva al estado lógico cero. Sucesivos cambios de estado de X2
no modifican el estado de la salida.
c) Las variables X1 y X2 no podrán encontrarse en estado uno simultáneamente ni cambiar
de estado en el mismo instante.
Nota: es un biestable RS con X1=S y X2=R
Estas especificaciones pueden representarse en un diagrama de secuencia:
X1
X2
Z
t
1 2 3 2 3 4 1 4 1
X1X2 00 01 11 10 Z
En esta tabla indicamos con un guión aquellos
A 1 4 -- 2 0 estados a los cuales no llegará nunca el sistema de
acuerdo con las especificaciones expuestas (cambio
B 3 -- -- 2 1 simultáneo de las variables de entrada X1X2 o que
C 3 4 -- 2 1 ambas valgan uno a la vez). Por ejemplo, si el sistema
se encuentra en el estado estable (2) con las entradas en
D 1 4 -- -- 0
Página 84
Sistemas Digitales
A cada estado estable (rodeado por un círculo) se le asigna una línea de la tabla y se indican
las transiciones a partir de él. Por ejemplo, si llamamos (1) al estado del sistema en que la
entrada es X 1 X 2 = 00 y la salida Z = 0 , mediante el cambio del estado de entrada a
X 1 X 2 = 01 o X 1 X 2 = 10 se puede poner el sistema en dos nuevos estados estables (4) y (2),
respectivamente, el primero con salida cero y el segundo con salida uno, a los que se asigna
una nueva línea. Las transiciones de (1) a (4) y a (2) se indican en la tabla mediante los
estados inestables 4 y 2 respectivamente.
En la tabla de fases se asocia cada línea a un estado estable (rodeado por un círculo) y se pone
la salida correspondiente a ese estado estable. Partiendo del estado estable de cada línea
vemos si es posible la transición al resto de estados especificados por las entradas. Tenemos
que tener en cuenta que cada estado viene definido no solo por las variables de entrada sino
también por la salida. En el estado estable 2 al pasar a 00 no se llega al estado 1 sino al 3,
pues la salida vale 1.
A B X1X2 00 01 11 10 Z
1 4 -- 2 0
3 4 -- 2 1
D C
donde se observa que solamente hay dos líneas y a cada una de ellas le corresponde un estado
de salida, por lo que el sistema obtenido será un autómata de Moore del que podemos realizar
su tabla y diagrama de flujo (incluyen las de excitación y salida):
10
X1X2 00 01 11 10 00 00
1/0 2/1
1 1 /0 1 /0 -- 2/* 01 10
2 2 /1 1/* -- 2 /1 01
donde se ha tenido en cuenta que los estados estables de una misma línea representan al
mismo estado (1,4 1, 3,2 2), ya que la estabilidad implica que el estado actual y
siguiente coincidan.
La codificación de una tabla de fases de dos líneas no presenta ningún problema porque
para realizarla solamente se necesita una variable de estado interna que nos proporciona los
Página 85
Sistemas Digitales
X1 X2 X1 X2
y 00 01 11 10 y 00 01 11 10
0 0 0 * 1 0 0 0 * *
1 1 0 * 1 1 1 * * 1
Y Salida Z
5
Suma de productos
Producto de sumas
Z = y , Y = X 1 + X 2 ⋅ y , o bien Y = ( X 1 + y ) ⋅ X 2
Y = X1 + X 2 ⋅ y = X1 + X 2 ⋅ y = X 1 ⋅ X 2 ⋅ y
Y
Z
X1
Y=Z
X2
Introduciendo la
y realimentación Y
X2
Página 86
Sistemas Digitales
Y = ( X 1 + y) ⋅ X 2 = ( X 1 + y) ⋅ X 2 = ( X 1 + y) + X 2
X1
X1 Y
y
Y=Z
X2 Y
Z
X2
Los sistemas secuenciales que poseen una sola variable de estado interno se denominan
“biestables”, porque sólo tienen dos estados estables. El que acabamos de diseñar recibe el
nombre de biestable R-S (Reset-Set). A las entradas X1 y X2 se les asigna, respectivamente,
las letras S y R, de tal forma que, cuando S = 1, el biestable se pone en estado de “set”, es
decir su salida se pone a uno. Cuando R = 1, el biestable se pone en estado de “reset” que
significa que su salida se pone a cero. Obviamente con esta nomenclatura no tendrán sentido
las situaciones en las que R = S = 1. No obstante, ya que en el diseño del biestable con puertas
NAND hemos supuesto que para la combinación de entradas X 1 X 2 = 11 el estado Y = Z era
uno, cuando nosotros pongamos los terminales R y S a uno a la vez, la salida se pondrá a uno;
por este motivo al biestable R-S con puertas NAND se le denomina de “grabación
prioritaria”. Todo lo contrario ocurre con el biestable diseñado con puertas NOR, en el que se
supuso que para la combinación de entradas X 1 X 2 = 11 el estado Y = Z valía cero por lo que
si R = S = 1, la salida se pone a cero. Por ello, al biestable R-S de puertas NOR se le
denomina de “borrado prioritario”.
Nota: X1=S y X2=R. La implementación de un flip-flop con puertas NAND posee las entradas
activas en baja ( R, S ) estando asociadas R con Y y S con Y. La implementación con
puertas NOR posee entradas activas en alta (R, S) asociándose R con Y y S con Y .
Página 87
Sistemas Digitales
En el apartado anterior hemos visto que una vez reducida la tabla de fases al máximo, es
necesario codificar cada línea de la misma mediante una combinación binaria. El número
mínimo de variables de estado necesario es un número n, tal que 2 n −1 < N ≤ 2 n , donde N es el
número de líneas de la tabla de fases y n el número de variables de estado interno.
Carrera: fenómeno en el que existen varios caminos para realizar una transición entre
estados. Se produce en transiciones entre estados no adyacentes (difieren en más de 1 bit,
ej. 00 11) y se debe a la realimentación directa de los bits de estado. Los bits de estado
nunca cambian simultáneamente y se desconoce el retardo de propagación asociado a cada
uno de ellos, por eso no se sabe cual de los caminos se va a seguir. SOLO se produce en
circuitos secuenciales asíncronos, pues son los que tienen realimentación directa.
Carrera NO crítica: carrera en la que por todos los caminos se llega al estado final correcto.
Carrera crítica: carrera en la que por al menos uno de los caminos NO se llega al estado
final correcto. Tiene que ser corregida.
Transición no adyacente: D
(00) (11)
A (00) A (00)
D (11) C (10)
(11) D
Carrera NO crítica Carrera crítica
Por ejemplo, consideremos un sistema asíncrono cuya tabla de fases sea la siguiente:
X 0 1 Z Su diagrama de transición será:
A 1 2 0 A B
B 3 2 0
C 3 4 1
D 1 4 1 D C
Página 88
Sistemas Digitales
Observando el diagrama de transición se deduce que para la codificación basta con utilizar
el código cíclico indicado en el siguiente diagrama:
00 A B 01
De este modo, las transiciones entre estados serán
siempre adyacentes y no se producirán carreras críticas.
La matriz de excitación correspondiente será:
X
10 D C 11 y1 y2 0 1 Z
00 00 01 0
01 11 01 0
En la mayoría de los casos no es posible asignar estados
internos adyacentes a todas las líneas de la tabla de fases 11 11 10 1
entre las que se producen transiciones. Para solventar la
dificultad que esto implica existen dos soluciones: 10 00 10 1
a) Establecer la transición entre dos estados internos
estables no adyacentes a través de un estado intermedio inestable adyacente a
ambos que conduce finalmente al segundo de los estados estables.
b) Elevar el número de variables de estado interno por encima del mínimo necesario y
realizar la codificación correcta.
a) Veamos esto con un ejemplo. Sea el sistema secuencial asíncrono cuya tabla de fases
se representa en la siguiente figura:
Página 89
Sistemas Digitales
X1X2: 1101
Si t2 > t1 Si t2 < t1
X1X2 cambia antes y1 cambia antes y2
y1y2 00 01 11 10
01
00 00 00 01 01
01 -- 10 01 01 11 ¿? 00
11 11 10 01 11 10
00 10 10 10 00
10 11
estados finales distintos
¿ ? Imposible pues hay dos cambios simultáneos
X1X2
y1y2 00 01 11 10
00 00 00 01 01 Se diferencia de la anterior en que el estado interno siguiente
correspondiente a la entrada 01 y al estado interno 01 es 11
01 -- 11 01 01 en lugar de 10.
11 11 10 01 11
10 00 10 10 11
b) Elevar el número de variables de estado interno por encima del mínimo necesario y
realizar la codificación correcta.
Veámoslo con un ejemplo. Sea el sistema secuencial asíncrono cuya tabla de fases es la
siguiente:
X1X2 00 01 11 10
El diagrama de transición que se deduce para este sistema es:
A 1 3 6 7
A B
B -- 4 2 7
C 5 3 2 8
D 1 4 6 8
D C
Página 90
Sistemas Digitales
De la observación de este diagrama se deduce que es imposible codificar las cuatro líneas
mediante dos variables de estado interno sin que existan transiciones críticas no adyacentes.
Por tanto, será necesario utilizar tres variables de estado interno y crear nuevas líneas que
serán utilizadas para evitar las transiciones no adyacentes. Haremos la siguiente asignación:
000 A B 001
100 D C 010
Con esta asignación pueden ser críticas las transiciones entre B y C, entre B y D, y entre C y
D. Con ella y a partir de la tabla de fases podemos formar la siguiente matriz de excitación:
X1X2
y1 y2 y3 00 01 11 10
000 000 000 100 001
001 --- ___ 001 001
100
010 010 000 ___
001
100 000 100 100 010
En esta tabla nos vamos fijando en cada columna y en sus contiguas para determinar cuales
pueden ser las transiciones críticas a partir de estados estables. Así, se observa que:
X1X2
y1 y2 y3 00 01 11 10
101 --- 100 --- ---
Página 91
Sistemas Digitales
X1X2
y1 y2 y3 00 01 11 10
011 --- --- 001 ---
X1X2
00 01 11 10
y1y2y3
En esta nueva tabla ya no hay transiciones entre
000 000 000 100 001 estados internos no adyacentes. Con ella pueden
deducirse las expresiones lógicas de Y1, Y2, e Y3, en
001 --- 101 001 001 función de X1, X2, y1, y2, e y3.
010 010 000 011 010
Diseñemos un biestable tipo T (un FF) activado por flancos cuyo diagrama de secuencia es:
Tt
Z
1 2 3 4 1
En dicho diagrama pueden distinguirse cuatro estados con los que construimos la tabla de
fases:
T
t 0 1 Z
A 1 2 0 Como puede verse no hay estados equivalentes ni pseudoequivalentes.
Tampoco puede realizarse la fusión de ninguna línea. Por tanto,
B 3 2 0 nuestro sistema tiene cuatro estados internos que denominaremos
C 3 4 1 respectivamente A, B, C y D según aparece en la tabla de fases. Para
codificarlos usaremos dos bits de estado interno y1 e y2. Para hacer la
D 1 4 1 codificación correcta construimos el diagrama de transición:
00 A B 01
01 11/* 01 /0
Y1Y2/Z
de la matriz de salida obtenemos fácilmente: Z = y1 .
Página 93
Sistemas Digitales
Vemos entonces que el sistema consta de cuatro estados internos codificados a través de dos
bits, y1 e y2. Podemos representar cada uno de esos bits a través de los dos posibles estados del
biestable R-S con lo que necesitaremos un total de dos biestables, uno para representar y1 (que
llamaremos biestable 1) y otro para y2 (que llamaremos biestable 2) (construidos con NOR).
R1 R Z Y1 R2 R Z Y2
S1 S 1 Z Y1 S2 S 2 Z Y2
Para representar las transiciones que existen entre el estado actual y1y2 y el siguiente Y1Y2,
debemos ver qué entrada hay que aplicar a cada uno de los biestables. Para ello, se tendrá en
cuenta la matriz de excitación del biestable R-S:
R S yt+1
0 0 yt
0 1 1 Las entradas R y S serán, en general, funciones de la entrada t y de los bits
1 0 0 de estado interno y1 e y2. Veámoslo con el bit Y1.
1 1 * El diagrama de Karnaugh para Y1 es:
tT
y1 y2 0 1 Puede observarse que hay situaciones en las que:
00 0 0 Posibilidades
según
y1 Y1 el R1-S1
01 1 0
00
0 0 10 *0
11 1 1
0 1 01 01
10 0 1 1 0 10 10
Y1 1 1 00 0*
01
Página 94
Sistemas Digitales
Por tanto, con la tabla anterior podemos construir el diagrama de Karnaugh para las entradas
R y S del biestable 1:
t
y1 y2 0 1
00 * 0 * 0
01 0 1 * 0 S1 = t · y2
11 0 * 0 * R1 = t · y 2
10 1 0 0 *
R1 S1
Si ahora hacemos lo mismo para Y2:
t
y1 y2 0 1
00 0 1
01 1 1
11 1 0
10 0 0
Y2
t
Las entradas R2 y S2 que debemos aplicar vendrán y1 y2 0 1
dadas en el siguiente diagrama:
00 * 0 0 1
S2 = t · y1
01 0 * 0 *
11 0 * 1 0
R2 = t · y1
10 * 0 * 0
Página 95
Sistemas Digitales
t y1 y2
R1
R Z Y1 = Z
S1 1
S Z Y1
R2
R Z Y2
S2 2
S Z Y2
R2 Y2 S1 Y1 Z
R Z S Z
t R1 Y1
S2 2 Y2 1
S Z R Z
R Z
C
S Z
Página 96
Sistemas Digitales
Página 97
Sistemas Digitales
R
1
R Z Z
E
S Z Z
2
S
S
S Z Z
R
R Z Z
E
Nota: hemos cambiado la posición de R y S en el dibujo.
Este montaje recibe el nombre de “cerrojo tipo D”. En él, una línea portadora de datos
cambia con el tiempo. Esta línea puede pertenecer a un bus de múltiples líneas. A veces
interesa capturar y mantener los datos D (ceros o unos) que circulan por la línea. Para ello
Página 98
Sistemas Digitales
S = 1
Si D = 1 ⇒ ⇒ el biestable pasa al estado de set ⇒ Z = 1
R = 0
S = 0
Si D = 0 ⇒ ⇒ el biestable pasa al estado de reset ⇒ Z = 0
R = 1
Así, siempre que E = 1, la salida Z del biestable seguirá a la entrada de datos D. Esta
operación se caracteriza diciendo que el cerrojo es “transparente”. Cuando queramos
capturar y mantener los datos, inhabilitamos el cerrojo. La parte estática (biestable R-S)
adoptará un estado que estará determinado por el valor que tuviese D inmediatamente antes de
que se inhabilite el cerrojo dinámico. Para almacenar una palabra que se transmita por un bus
de múltiples líneas se requerirán tantos cerrojos dinámicos como bits tenga la palabra, que se
activarán a través de una línea de habilitación común a todos ellos.
Z
t
t0 t1 t2 t3 t4 t5 t6
Página 99
Sistemas Digitales
t0 2t0 3t0
De este modo, los cerrojos leerán el dato D correctamente. Lo ideal sería poder hacer la
siguiente conexión
Línea de datos
D S3 Z3 S2 Z2 S1 Z1 Z
E E E
R3 Z3 R2 Z2 R1 Z1 Z
y que en el primer pulso de la señal habilitadora el primer dato pase al cerrojo dinámico 3, en
el segundo pulso que pase el segundo dato al cerrojo 3 y el primero al cerrojo 2 y que en el
tercer pulso pase el tercer dato al cerrojo 3, el segundo al cerrojo 2 y el primero al cerrojo 1.
Una vez realizada la operación basta con poner la línea E a cero y los tres bits quedarían
almacenados indefinidamente en los tres cerrojos.
Por desgracia, los cerrojos dinámicos no permiten este tipo de tratamientos. Para ver lo que
ocurre realmente supondremos que inicialmente todos los cerrojos están en estado de reset. En
el primer ciclo de la señal de habilitación, el primer dato, que supusimos igual a uno, se aplica
a las entradas del primer cerrojo. Este dato aparece a la salida Z3 de dicho cerrojo después de
un tiempo tpd (tpropagation delay) correspondiente al retraso de propagación inherente a este primer
cerrojo. Pero como la entrada de set del segundo cerrojo está a uno, y la señal de habilitación
E todavía está activa, después de otro intervalo tpd la salida Z2 pasará también al estado de set.
Algo análogo ocurrirá con el primer cerrojo. Esto puede verse en el siguiente diagrama de
secuencia.
Señal de
habilitación
E
tpd
Z3
tpd
Z2
tpd
Z1
Página 100
Sistemas Digitales
En resumen, después del primer ciclo de habilitación se ha puesto en estado de set los tres
cerrojos, es decir, el dato se ha transmitido hasta el primer cerrojo cuando nuestra intención
inicial era que sólo lo recibiera el cerrojo número 3, y que en sucesivas transiciones de la
señal E el dato fuera propagándose a través de los cerrojos. Una forma de solucionar este
problema sería estrechar los pulsos en la señal E, es decir, conseguir que el nivel de
habilitación se mantenga un tiempo menor que tpd. De este modo, el cerrojo número 2 se
deshabilitaría antes de que la salida Z3 del cerrojo número 3 cambie. En estas condiciones el
dato quedaría retenido en el cerrojo número 3 sin llegar al segundo cerrojo. Sin embargo, esta
solución requiere la generación de pulsos muy delgados cuya anchura es, en principio,
indeterminada, ya que no conocemos a priori los tiempos de propagación de los biestables.
Estos problemas están asociados al hecho de que los cerrojos dinámicos son transparentes,
por tanto, tropezamos con dificultades si en un mismo ciclo de habilitación intentamos leer el
dato previamente almacenado en el cerrojo y escribir de nuevo en él. Por otro lado, cuando
necesitemos un elemento de almacenamiento en el que podamos escribir o del que podamos
leer, pero no las dos cosas en el mismo ciclo de habilitación, el cerrojo es un dispositivo
perfectamente útil.
6.2- FLIP-FLOPS
Los cerrojos (o Latches) se diferencian de los flip-flops en que el estado de los cerrojos
depende normalmente de entradas asíncronas mientras que el estado de los flip-flops depende
de entradas síncronas, de acuerdo a una señal de reloj o de habilitación. Los flip-flops pueden
ser activos por nivel o por flanco. En los activos por nivel es el nivel o valor de la señal de
habilitación lo que activa el flip-flop. En cambio en los activos por flanco es el flanco de
subida o bajada de la señal de habilitación lo que controla el flip-flop. En estos últimos
solamente se van a leer las entradas en el instante justo en el que se produce el flanco,
mientras que en los activos por nivel se leen las entradas durante todo el tiempo que se
mantenga el nivel de la señal de habilitación que activa el flip-flop.
S SM ZM SE ZE Q
EM EE
R RM ZM RE ZE Q
Nota: aunque es un disp. activado por nivel, es en la transición 10 cuando se muestra la salida.
Lo representaremos por:
Página 101
Sistemas Digitales
R Q
E
S Q
Como se puede observar, las señales de habilitación aplicadas al maestro y al esclavo son
complementarias. Cuando la señal E está en alta se habilita el cerrojo maestro y los datos S y
R se graban en dicho cerrojo, al mismo tiempo se deshabilita el cerrojo esclavo para que los
datos no sean transferidos del maestro al esclavo. En cambio, cuando E está en baja, se
habilita el cerrojo esclavo y en él se graba el dato que hubiera en el maestro.
Simultáneamente, el cerrojo maestro se deshabilita aislándose de las entradas de datos. Para
que el funcionamiento del flip-flop sea correcto es necesario que:
a) Cuando E pase de cero a uno, el cerrojo esclavo se deshabilite antes de que se habilite
el maestro para que no sea posible la transferencia de datos a la salida Z.
b) Cuando E pase de uno a cero, el cerrojo maestro debe deshabilitarse antes de que se
habilite el esclavo, para que el dato que estaba en el maestro quede aislado de las
entradas R-S y pueda transferirse al cerrojo esclavo.
Consecuentemente, los niveles de tensión que habilitan y deshabilitan los cerrojos maestro
y esclavo se ajustan para que la secuencia de sucesos sea como la representada en la figura:
“1”
tpd
Z3
tpd
Z2
tpd
Z1
Página 102
Sistemas Digitales
En el instante t1, el dato D = 1 pasa al cerrojo maestro del flip-flop número 3, y el cerrojo
esclavo de dicho flip-flop se deshabilita. En el instante t2 se deshabilita el maestro y el esclavo
se habilita, tomando el dato que había en el maestro. Después de un tiempo tpd (debido a
retrasos en las puertas) el dato D pasa a la salida Z3 del flip-flop número 3.
Análogamente, después de un tiempo t6+tpd, el dato D que había entrado a través del flip-
flop número 3 aparece en la salida Z1 del flip-flop número 1. Con ello se ha logrado el
objetivo planteado: en cada impulso de la señal E el dato se va propagando de un flip-flop a
otro.
0 1 0 1 0
D
ZM3
1 0 1 (3º)
ZE3 Q3
ZM2
0 1 0
ZE2 Q2
ZM1
0 0 1 (1º)
ZE1 Q1
Página 103
Sistemas Digitales
R S Qn+1 R Q
0 0 Qn
0 1 1 C
1 0 0 S Q
1 1 *
Indica que el flanco activo
es el de bajada de la señal
ENTRADAS DIRECTAS
Unas veces por conveniencia y otras por necesidad se diseñan los flip-flops para que se
puedan adoptar los estados de set o reset mediante señales de control que no necesitan estar
sincronizadas con la señal de habilitación E. A estas entradas se las denomina “directas” o
“asíncronas”. Un flip-flop maestro-esclavo equipado con terminales directos de set y reset
puede verse en la siguiente figura:
Maestro Esclavo
Rd Sd
C C
Sd Rd
Figura. 6.2 Flip-Flop RS maestro-esclavo con entradas directas.
Estas entradas cuando están activas (en baja) actúan directamente sobre el estado del flip-
flop independientemente de las entradas síncronas R-S y de la señal de habilitación. Pueden
ser de utilidad a la hora de inicializar los flip-flops en un estado determinado. Lo
representaremos por:
Sd
Set directo
R Q
C
S Q
Reset directo
Rd
Página 104
Sistemas Digitales
El flip-flop que verifica la anterior tabla de operación se denomina flip-flop J-K. Para ello
basta con montar el circuito:
J 1 S1 Z1 S Z2 Q
C
K 2 R1 Z1 R Z2 Q
MAESTRO ESCLAVO
Página 105
Sistemas Digitales
T J Q Q
T Qn+1
0 Qn C C
1 Qn K Q Q
Nota: el FF T siempre se construye a partir del FF JK, pues este es el único que permite que J=K. En un RS no
sería posible.
6.2.1.3- EL FLIP-FLOP TIPO D
Partiendo de flip-flops R-S maestro esclavo podemos obtener un flip-flop tipo D. Basta con
hacer la conexión:
C (Reloj)
Página 106
Sistemas Digitales
Como puede observarse en el anterior diagrama, la señal Q coincide con la D salvo por un
retraso igual a un período de la señal de reloj: la señal Q está retrasada respecto de la D un
período de reloj.
Existe un montaje alternativo para el flip-flop tipo D más económico que el esquema
maestro-esclavo y que aparece representado en la siguiente figura:
Sd
Rd
Figura. 6.3 Flip-Flop tipo D con entradas directas.
Consta de tres cerrojos R-S y de entradas directas de set y reset activas en baja (su
funcionamiento aparece especificado en la página 154 del Taub). Cuando C hace una
transición positiva de cero a uno, Q se hará cero si D estaba a cero y se hará uno si D estaba a
uno. Cambios sucesivos en D mientras C esté a uno no afectan a la salida Q. Ésta se
mantendrá cuando C vuelva a cero. Por tanto, se trata de un flip-flop tipo D cuyo disparo tiene
lugar en la transición positiva de la señal de reloj (a diferencia del FF tipo D basado en el RS
MS, que era en la transición negativa).
Página 107
Sistemas Digitales
D Q Q
FLIP-FLOP
J D
C C Q Q
Para deducir lo anterior construiremos la matriz de excitación del circuito que deseamos
implementar:
JK
Qn 00 01 11 10
Estado actual
0 0 0 1 1
0 2 6 4
1 1 0 0 1
1 3 7 5
Entrada de datos para
el estado siguiente Dn+1
por tanto : Dn +1 = J ⋅ Q n + K ⋅ Qn .
t1 t2
C J Q
C
J (o S) Q
K
K (o R)
Q
t
Como hemos visto en apartados anteriores, el cerrojo maestro se conecta a los terminales
de datos cuando el reloj está en nivel alto, y la respuesta de salida, si la hay, ocurre en la
transición de la señal C del nivel alto al bajo, en los instantes t1 y t2. Después del primer pulso
de la señal C todo parece estar en orden: Q = 0 y como también J = K = 0 no se producirá
cambio en Q en el instante t1. Sin embargo, durante el segundo pulso en C , en el instante t2,
nuevamente J = K = 0 , pero nos encontramos que Q = 1 . La razón de este comportamiento
Página 108
Sistemas Digitales
se debe a que cuando C está en nivel alto, J estuvo en uno brevemente (debido, por ejemplo,
a un ruido o un fenómeno aleatorio). Como resultado el cerrojo maestro se puso en set.
Cuando J volvió a valer cero, el cerrojo maestro permaneció en set (J=K=0 Qn+1=Qn). En t2 el
bit almacenado en el maestro se transfirió al esclavo y, por consiguiente, Q adoptó el valor
uno.
Por tanto, la respuesta del flip-flop la determina la última entrada que adopte el uno lógico
mientras las puertas de entrada al maestro estén habilitadas. Esta característica se conoce
como la “propiedad de captar 1 del flip-flop” y es a veces inaceptable, ya que el flip-flop es
muy susceptible a los fenómenos aleatorios y al ruido. Para solucionar este problema se
utilizan los flip-flops activados por flancos, que veremos en el siguiente apartado.
Sd
J Q
C
K Q
Rd
Página 109
Sistemas Digitales
Sd
Q
Q
Rd
Las señales mostradas se aplican a flip-flops tipo D, cuya transición de disparo suponemos
que se realiza en la transición positiva de la señal de reloj, del cero al uno lógico. Esta
transición se indica en la figura (a) y en la figura (b) se representa una transición del cero al
uno lógico del dato de entrada D.
Página 110
Sistemas Digitales
Las relaciones entre las señales de las figuras (a) y (b) se entienden si se indica que la
transición en D debe preceder a la transición de disparo de reloj un tiempo denominado
“tiempo de establecimiento tsetup”. Si el flip-flop reconoce y responde propiamente a la
nueva entrada de dato D, con certeza el cambio en D debe preceder al flanco de reloj un
intervalo de tiempo no inferior a tsetup. La figura (c) representa una transición de D de 1 a 0.
Las relaciones entre las figuras (a) y (c) se proponen para indicar que si el cambio en D se
reconoce sin fallo, el nivel D debe mantenerse como mínimo durante un tiempo thold (tiempo
de mantenimiento) después del flanco de reloj. En conjunto si el flip-flop responde al
cambio en D, este debe ocurrir como mínimo en el instante tsetup anterior al flanco de reloj y
después de él debe persistir como mínimo un tiempo thold. Finalmente señalamos que los
Página 111
Sistemas Digitales
instantes en que transcurren las transiciones se toman normalmente cuando la transición está
en la mitad de los dos niveles lógicos (50%).
Las relaciones entre el flanco de reloj y la señal de salida en las figuras (d) y (e) indican que
si el requerimiento con respecto a los tiempos de establecimiento y mantenimiento se cumple,
habrá un retardo de propagación tpd (propagation delay) entre el flanco de reloj y la respuesta
en las salidas, Q y Q , del flip-flop. El retardo de la salida que cambia del nivel bajo al alto es
tpd,LH (low-high), y el otro tpd,HL (high-low). Notar que estos dos tiempos no tienen por qué
coincidir. De hecho, generalmente se encuentra que los tiempos de setup y hold son
ligeramente diferentes, dependiendo de que la transición del dato de entrada sea positiva o
negativa.
Los fabricantes dan información de estos tiempos en relación no sólo con las entradas de
datos, sino también con las entradas de set y reset si están disponibles. En cualquier
circunstancia, para que la información se comprenda, el fabricante explicará detalladamente
las condiciones bajo las cuales se tomaron los datos. Las anchuras de transición de los flancos
de reloj y la entrada de datos se darán también con las cargas conectadas a las salidas del flip-
flop. Esas cargas se confeccionan para que representen la carga vista por el flip-flop cuando
posea un número razonable de puertas conectadas a su salida. A menudo es bastante útil
olvidar toda la información detallada referente a los tiempos y disponer de algunos
parámetros que den información sobre la velocidad de operación del flip-flop. Para este
propósito, los fabricantes especifican una frecuencia de reloj máxima fmax de operación del
flip-flop: fmax es la máxima frecuencia a la que se puede hacer conmutar el flip-flop.
En la lógica rápida disponible, los tiempos de setup, hold y los retardos de propagación
están comprendidos entre los nanosegundos y decenas de nanosegundos, mientras que las
frecuencias máximas de operación están en el rango de los 150 MHz.
Página 112
Sistemas Digitales
x1 x1
x2 x2
z1
xn xn
z2
y1 Y1
(1) (2)
y2 Y2 zp
ym Ym
Se trata de un autómata de Mealy con n variables de entrada (x1, x2, ..., xn), m bits de
estado interno (y1, y2, ..., ym) y p salidas (z1, z2, ..., zp). El sistema combinacional (1) nos
proporciona, a partir de las entradas actuales (x1, x2, ..., xn) y el estado interno actual (y1, y2, ...,
ym) el estado interno siguiente (Y1, Y2, ..., Ym). El sistema combinacional (2) nos relaciona las
salidas con las entradas y las variables de estado interno. En los autómatas asíncronos, las
variables de estado interno se realimentan directamente. El sistema irá evolucionando a través
de una sucesión de estados internos inestables hasta que, para una cierta combinación de
entradas, el estado actual y el siguiente coincidan dando lugar a un estado interno estable.
Esta evolución es posible gracias al retardo de propagación producido por el sistema
combinacional (1).
Vimos que en la codificación de los estados internos había que evitar transiciones entre
estados no adyacentes, ya que podían dar lugar a problemas de carreras críticas. Además, el
diseño debía realizarse eliminando posibles fenómenos aleatorios. Ambas limitaciones, o
inconvenientes, de los circuitos asíncronos son debidos a la realimentación directa de las
variables de estado interno; si por causa de transiciones críticas o por fenómenos aleatorios
algún bit de estado interno cambia a un nivel inesperado, se realimenta directamente en el
sistema asíncrono, haciendo que éste evolucione de una manera impredecible.
Página 113
Sistemas Digitales
x1 x1
x2 x2
z1
xn xn
z2
y1 Y1
(1) (2)
y2 Y2 zp
ym Ym
Qm FF Dm
C
Q2 FF D2
C
Q1 FF D1
C
C
Figura. 7.1 Autómata de Mealy con realimentación con FF tipo D.
De esta forma, aunque las entradas (x1, x2, ..., xn) cambien en un instante determinado,
dicho cambio no afecta al estado interno hasta que se aplica el impulso de sincronismo a las
entradas C de los flip-flops, es decir, los cambios de estado interno están sincronizados con
los impulsos del generador. Por ello, a los sistemas secuenciales de este tipo se les denomina
“sistemas síncronos”.
Página 114
Sistemas Digitales
7.1- Registros.
Ya hemos señalado que un latch o un flip-flop pueden almacenar un bit, es decir, registrar
un bit. Un array de estos dispositivos es entonces un registro en el que podemos escribir una
palabra y del que podemos leer la palabra almacenada cuando convenga.
Si nos proponemos leer una palabra de un registro y también transferir otra palabra a dicho
registro durante el mismo ciclo de reloj, necesitaremos flip-flops (los latches son
transparentes, transmiten la entrada a la salida). Si no, nos basta con usar cerrojos. Este es el
caso del registro octal integrado ‘373. Su diagrama lógico es: (el 173 en fotocopias, con 4 entradas)
R W
OE LE
D0 Q0
D1 Q1
D2 Q2
D3 Q3
D4 Q4
D5 Q5
D6 Q6
D7 Q7
Página 115
Sistemas Digitales
Tendremos dos terminales de operación, W (write) y R (read), con los que queremos poder
realizar las siguientes operaciones:
1 0 1 1
1 1 * * 1 0 * 1 0 *
1 3 1 3
OE LE
La operación correspondiente a R = W = 1 no tiene sentido ya que, como estamos
manejando cerrojos dinámicos y no flip-flops, es absurdo escribir y leer a la vez. Este tipo de
dispositivos se denominan “memorias auxiliares” o “buffers” y en ellos la entrada de datos
y la salida se realiza en paralelo (la información entra o sale de todos los biestables
simultáneamente) y su principal aplicación es el almacenamiento temporal de una
información binaria.
Veamos como realizar un montaje que permite transferir datos entre dos registros
construidos por flip-flops a través de un bus. Por simplicidad consideraremos registros de
cuatro bits; por supuesto, el montaje es generalizable a un número mayor de bits:
Bus
RA Bus RB Bus
Q Q Q Q Q Q Q Q
Clear RA Clear RB
Rd A
RA0 RA1 RA2 RA3 Rd B
RB0 RB1 RB2 RB3
C D C D C D C D C D C D C D C D
Clock
Bus RA Bus RB
Bus
Página 116
Sistemas Digitales
Actuando sobre estas líneas y sobre la señal de reloj podremos realizar las siguientes
operaciones:
a) Paso de una palabra de cuatro bits del bus a uno de los registros o a los dos a la vez.
b) Borrado de los registros.
c) Paso de una palabra de cuatro bits almacenada en un registro al bus.
d) Paso del contenido de un registro al otro realizando primero la operación (c) y luego la
(a).
Página 117
Sistemas Digitales
S0 R0 S1 R1 S2 R2 S3 R3
Entrada serie
D D0 Q0 D1 Q1 D2 Q2 D3 Q3
C0 FF0 C1 FF1 C2 FF2 C3 FF3
C
Q0 Q1 Q2 Q3
Salidas en paralelo
Figura. 7.5 Registro de desplazamiento construido con FF D.
Incluso puede conectarse la salida del último flip-flop a la entrada del primero; en ese caso
tendremos un “registro de desplazamiento cíclico”.
Datos en serie
D Registro de desplazamiento
de n bits
Clock
C
Q1 Q2 Qn
Información en paralelo
Página 118
Sistemas Digitales
Si queremos capturar n bits que circulan en serie por la línea D en sincronismo con la
señal de reloj C, bastará con utilizar un registro de desplazamiento de n flip-flops.
Después de n pulsos de reloj, los bits estarán almacenados en el registro y disponibles
mediante las salidas en paralelo Q1, Q2, Q3,..., Qn.
Registro paralelo
D1 D2 Dn
S1 R1 S2 R2 Sn R n
Clock Salida serie
C Registro de desplazamiento
de n bits
7.3- Contadores
Un contador es un sistema secuencial que progresa de estado en estado en respuesta a un
suceso. Este suceso puede ser, por ejemplo, un ciclo de una señal de reloj. El contador cuenta
el número de sucesos. El número de estados que atraviesa el contador antes de volver al
estado inicial se denomina “módulo” (abreviadamente “mod”) del contador. Un contador
construido con n flip-flops tendrá, como máximo, 2n estados internos.
Página 119
Sistemas Digitales
Estado Q2 Q1 Q0
Y0 0 0 0
Y1 0 0 1 Tomaremos los seis primeros estados, de Y0 a Y5. Así, en
Y2 0 1 0 las salidas tendremos el código en binario del número de orden del
Y3 0 1 1 impulso que llegue por la señal de reloj.
Y4 1 0 0
Y5 1 0 1 La tabla de transición del contador será:
Y6 1 1 0
Y7 1 1 1
Observando como cambian los bits de estado interno entre el estado actual y el estado
siguiente podemos deducir las tablas de excitación de los flip-flops que implementarán los
bits de estado interno. Por ejemplo, si queremos usar flip-flops J-K activados por flanco habrá
que tener en cuenta que:
J K Q n +1 Qn → Q n +1 J K
→
n
0 0 Q 0 0 0 *
0 1 0 0 → 1 1 *
1 0 1 1 → 0 * 1
1 1 Q n
1 → 1 * 0
Por tanto, construiremos los diagramas de Karnaugh para las entradas de los tres flip-flops
J-K (los estados Y6 e Y7 no los consideramos, asociamos **):
0 0* 0* * *6 * 0 4 0 0* * 02 * * 6 0 *4 0 1* 1* ** 1*
0 2 0 0 6
2 4
1 0* 1* ** * 15 1 1* * 13 * * 0* 1 *11 * 13 * * *1
1 3 7 1 7 5 7 5
J2 K2 J1 K1 J0 K0
J2 = Q1·Q0 K2 = Q0 J1 = Q2·Q0 K1 = Q0 J0 = K 0 = 1
Página 120
Sistemas Digitales
Q2 Q1 Q0
J2 Q2 J1 Q1 J0 Q0
CLK CLK CLK
K2 FF2
Rd2 Q2 K1 FF1
Rd1 Q1 K0 FF0 Q0
Rd0
C
Este contador irá incrementando la cuenta según lleguen pulsos por el terminal de reloj. En
las salidas Q2Q1Q0 obtenemos el número en binario del pulso que llega por la línea C.
Podemos decodificar esta información llevándola a un decodificador ‘138.
a) Hacer relevantes los términos irrelevantes de tal forma que conduzcan a estados
permitidos. Por ejemplo, en el contador que hemos diseñado podemos añadir dos nuevas
filas a la tabla de transiciones correspondientes a los estados irrelevantes:
Página 121
Sistemas Digitales
Q2 Q1 Q0
“0” “1” J2 FF2 Q2 J1 FF1 Q1 J0 FF0 Q0
CLK CLK CLK
K2 R Q2 K1 R Q1 K0 R Q0
d2 d1 d0
Clock
R
0 1 2 3
D0 Q0 D1 Q1 D2 Q2 D3 Q3
C0 FF0 C1 FF1 C2 FF2 C3 FF3
Sd0 Rd0 Sd1 Rd1 Sd2 Rd2 Sd3 Rd3
Clock
Página 122
Sistemas Digitales
aplicada la señal de reloj, el contador contará ciclos de reloj en módulo cuatro: cada flanco
sucesivo de disparo hará progresar en el estado de set a otro flip-flop y cada cuatro ciclos
sucesivos de reloj el contador vuelve a su estado inicial.
Q0 Q1 Q2 Q3
D0 Q0 D1 Q1 D2 Q2 D3 Q3
C0 FF0 C1 FF1 C2 FF2 C3 FF3
Rd0 Q0 Rd1 Q1 Rd2 Q2 Rd3 Q3
Clock
Inicialización
Figura. 7.7 Contador conmutado en cola o de Johnson.
Estado Q3 Q2 Q1 Q0
Y0 0 0 0 0
Y1 0 0 0 1
Y2 0 0 1 1
Y3 0 1 1 1
Y4 1 1 1 1
Y5 1 1 1 0
Y6 1 1 0 0
Y7 1 0 0 0
Y0 0 0 0 0
Página 123
Sistemas Digitales
El contador, antes de volver a su estado inicial, recorre ocho estados. Así pues, con n flip-
flops el contador conmutado en cola tiene módulo 2n. Como puede observarse este contador
cuenta en código Johnson. Este contador aprovecha mejor los flip-flops que el de anillo,
aunque sólo utilice 2n estados de los 2n posibles. Para hacer explícito el conteo se necesitará
un decodificador.
Todos los flip-flops tienen sus dos terminales J y K conectados a uno lógico para que
operen en modo de conmutación. La señal de reloj se aplica solamente a C0 que es la entrada
de reloj del primer flip-flop (FF0). Las entradas de reloj de los demás (C1 y C2) se conectan a
los terminales de salida de los flip-flops precedentes (Q0 y Q1, respectivamente). Debido al
efecto del reloj externo en cada flip-flop particular, esta influencia se va propagando (va
rizando) al resto de los flip-flops. Esto puede verse en el diagrama de secuencia
correspondiente al contador anterior:
1 2 3 4 5 6 7 8
Clock
0 1 0 1 0 1 0 1
Q0
0 0 1 1 0 0 1 1
Q1
0 0 0 0 1 1 1 1
Q2
Estado inicial
Esto es posible porque en las secuencias binarias conmuta cada bit cuando el anterior de
menor peso cambia de uno a cero; por ello se utilizan flip-flops activados por el flanco
negativo.
Página 124
Sistemas Digitales
Como puede observarse, las señales Q2, Q1, Q0 coinciden con las que se obtendrían de un
contador binario síncrono de módulo 8. Un flip-flop conmutará solamente cuando el flip-flop
precedente esté en set y haga su transición del estado de set al de reset. Este flip-flop
precedente en turno, cambiará de estado solamente cuando el flip-flop anterior haga una
transición de 1 a 0, y así sucesivamente.
Realmente hay una pequeña diferencia entre las señales de los contadores síncronos y de
rizado, debido a los retardos de propagación de los flip-flops, que por simplicidad no hemos
tenido en cuenta en el diagrama de secuencias anterior. En la siguiente figura pueden verse las
transiciones de las salidas Q0, Q1 y Q2 en la proximidad del flanco de reloj número 4, para un
contador síncrono de módulo 8 y el asíncrono:
4 4
Clock
Q0 1 0 1 tpd 0
Q1 1 0 1 2tpd 0
Q2 0 1 0 3tpd 1
tpd
Síncrono Asíncrono
donde hemos supuesto que el retraso de propagación tpd en los flip-flops es el mismo para
todos ellos. Como puede observarse, en el contador síncrono las señales Q0, Q1 y Q2 cambian
simultáneamente a sus nuevos valores un tiempo tpd después del flanco activo del reloj. En
cambio, en el contador asíncrono, las señales Q0, Q1 y Q2 no cambian a la vez; en
consecuencia, se atraviesan una serie de estados internos que aparecen en la siguiente tabla:
es decir, desde el flanco de disparo hasta un tiempo 3tpd, el contador asíncrono da una lectura
incorrecta. El intervalo de tiempo durante el que se producen errores de conteo se incrementa
en proporción con el número de flip-flops en cascada. El peor caso se produce cuando todos
los flip-flops están en estado de set: 111...1. En el siguiente flanco de reloj la cuenta irá a
000...0. Sin embargo, solamente el primer flip-flop responde directamente a la entrada de
reloj, y la transición del estado de set al de reset, ha de cambiar sucesivamente (ha de rizar)
los estados de cada uno de los flip-flops subsiguientes. Si hay n flip-flops este proceso tarda
un tiempo ntpd en realizarse desde el flanco de disparo del reloj. Supongamos ahora que el
período de la señal de reloj es menor que ntpd. Entonces antes de que la cuenta 000...0 se
registre en el contador, al menos el primer flip-flop habrá vuelto a conmutar al estado de set.
Por consiguiente, en ningún instante el contador anotará 000...0 y simplemente será imposible
leer correctamente el contador. En conjunto, cuando sea necesario poder leer continuamente
Página 125
Sistemas Digitales
el contador, el asíncrono deberá tener menor velocidad que los contadores síncronos
equivalentes. Así, un contador asíncrono tiene la ventaja sobre uno síncrono equivalente de
que necesita menos lógica, pero tiene el inconveniente de ser más lento.
• P0, P1, P2, P3: entradas para introducir la carga síncrona del contador.
• Q0, Q1, Q2, Q3: terminales de salida a través de los que puede visualizarse el estado del
contador.
• PL : activo en baja, que produce la carga síncrona.
• EP y ET: entradas de habilitación de cuenta.
• MR (Master Reset): activo en baja, pone a cero el contador. A diferencia de la carga, la
puerta a cero a través de MR es asíncrona (independientemente de cualquier otro
terminal).
• CLK: entrada de reloj.
• TC: es un terminal de salida que suministra un uno cuando ET = 1 y el contador llega a
15, es decir, cuando Q 0 = Q1 = Q 2 = Q 3 = 1 , y cero en los demás casos.
Página 126
Sistemas Digitales
P3 P2 P1 P0 P7 P6 P5 P4
PL PLA P3A P2A P1A P0A PLB P3B P2B P1B P0B
E ETA CONTADOR `161(A) ETB CONTADOR `161(B)
EPA (menos significativo) TCA EPB (más significativo) TCB
CLK CLKA CLKB
MR MRA Q3A Q2A Q1A Q0A MRB Q3B Q2B Q1B Q0B
Q3 Q2 Q1 Q0 Q7 Q6 Q5 Q4
PL P3 P2 P1 P0
CLK ET
EP CONTADOR `161 TC
CLK
MR Q3 Q2 Q1 Q0
Inicialización
Con este montaje, inicializamos el contador en el estado 0000 con el pulsador. Al llegar al
estado 9 ( Q 0 Q1Q 2 Q 3 = 1001 ) la salida de la puerta NAND se pone a cero y activa la carga en
paralelo. Cuando llegue el siguiente pulso de reloj se cargará en el contador el estado 0
( Q0Q1Q 2Q3 = 0000 ) y la secuencia de conteo volverá a iniciarse.
Página 127
Sistemas Digitales
Página 128