Documente Academic
Documente Profesional
Documente Cultură
1. Electrónica Digital
Antes de empezar en el tema en cuestión, vamos a dar una posible definición de la disci-
plina que vamos a tratar, así como su ámbito de acción. Una posible definición de Electrónica
puede ser la ciencia que estudia los fenómenos relacionados con el transporte de carga eléc-
trica en medios materiales junto con la construcción de dispositivos, circuitos y sistemas basa-
dos en ellos. Esta ciencia se divide en dos grandes ramas: Analógica y Digital.
Una vez llegados a este punto, nos preguntamos por qué estudiar los circuitos digitales.
La razón básica radica en el aumento de fiabilidad en el procesamiento y transmisión de la
información ya que una pequeña degradación de la señal no influirá en su valor (o en su
influencia como entrada en un circuito digital). A este motivo se le pueden añadir otros más,
como pueden ser: se dispone de un soporte matemático adecuado, como son las álgebras dis-
cretas; existen tecnologías de fabricación adecuadas; contamos con una amplia distribución
comercial debido a su amplias aplicaciones en múltiples campos, etc.
2 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Salida
Ámbito Ámbito
analógico digital
Entrada
Dentro de los circuitos digitales, existe una división en dos grandes grupos: circuitos
combinacionales y circuitos secuenciales. Los circuitos combinacionales se caracterizan por el
hecho de que las salidas únicamente dependen de la combinación de entradas y no de la histo-
ria anterior del circuito; por lo tanto, no tienen memoria y el orden de la secuencia de entradas
no es significativo. Los circuitos secuenciales se caracterizan por el hecho de que las salidas
dependen de la historia anterior del circuito además de la combinación de entradas; por lo que
estos circuitos sí disponen de memoria y el orden de la secuencia de entradas sí es significa-
tivo.
2. Representación Numérica
En cualquier sistema numérico, se define la base o raíz como el número máximo de dígi-
tos disponibles en dicho sistema. Así, los sistemas numéricos más importantes son los siguien-
tes:
• Sistema decimal o de base 10, que consta de diez dígitos: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
• Sistema binario o de base 2, que consta de dos dígitos: {0, 1}.
• Sistema octal o de base 8, que consta de ocho dígitos: {0, 1, 2, 3, 4, 5, 6, 7}.
• Sistema hexadecimal o de base 16, que consta de dieciséis dígitos: {0, 1, 2, 3, 4, 5, 6,
7, 8, 9, A, B, C, D, E, F}.
TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 3
n n–1 0 –1 –m n i
( N )b = pn b + pn – 1 b + … + p0 b + p–1 b + + p–m b = ∑ pi b
i = –m
Donde pi es el dígito correspondiente en dicho sistema, verificando que 0 <= pi <= b-1.Esto es
debido a que p0 es el resto de la división de N entre b. Por ejemplo:
Como ya hemos mencionado, los sistemas numéricos más importantes son los sistemas
decimal, binario, octal y hexadecimal. El sistema decimal es el empleado en la vida cotidiana.
El sistema binario es el sistema que emplearemos en Electrónica Digital, ya que trataremos la
mayoría de los elementos como interruptores, es decir, con dos estados: encendido (permite el
paso de la información, estado ‘1’) o apagado (no permite dicho paso, estado ‘0’). No obstante
como (100)10 = (1100100)2, observamos que se necesita un número relativamente grande de
dígitos binarios para expresar un número decimal relativamente pequeño. Por lo tanto, apare-
cieron los sistemas octal y hexadecimal para disminuir este número de dígitos sin demasiada
complicación puesto que su conversión a binario y viceversa es muy directa como ya veremos.
Para trabajar con varios sistemas numéricos, como por ejemplo el sistema decimal y el
binario debemos ser capaces de convertir números de una base a otra. Existen dos métodos de
conversión de base: polinómico e iterativo.
Este método tiene el problema de que si la base destino no es la decimal, tendremos que usar
una aritmética diferente a la que normalmente utilizamos. Por lo tanto, este método suele ser
usado para convertir números a un sistema decimal.
Resto: p0
4 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Es decir, cuando se realiza la primera división, el resto que nos queda es el dígito menos signi-
ficativo en la nueva base y el cociente es el número restante. Este proceso se repite hasta que el
cociente sea 0. Por ejemplo:
11 2
p0 1 5 2
p1 1 2 2
p2 0 1 2
p3 1 0
Hasta ahora, sólo hemos tenido en cuenta la parte entera de los números. Con el método
polinómico, la parte fraccional se trata igual que la parte entera permitiendo que los exponen-
tes de la base sean negativos. Esto nunca nos dará un número mayor que uno ya que los dígitos
son menores que la base. Por ejemplo:
Con el método iterativo, la parte fraccional debe evaluarse por separado de la parte
entera. La parte fraccional se multiplica por la base, la parte entera corresponde al nuevo
dígito, mientras que se vuelve a iterar con la parte fraccional restante.
Del mismo modo que antes, vemos que si realizamos la multiplicación en un polinomio
genérico obtenemos dicho resultado.
En este último caso, como ya hemos visto, la aritmética empleada es la de la base fuente,
por lo que se suele utilizar para la conversión de números decimales a cualquier otra base. Ade-
más, como sucede en cualquier sistema numérico, podemos encontrar números con infinitos
dígitos “decimales”. A continuación, ilustramos un ejemplo de conversión de un número frac-
cionario decimal a binario:
0.625 * 2 = 1.250
0.250 * 2 = 0.500
0.500 * 2 = 1.000
0.000 * 2 = 0.000
Debido a que las bases octales y hexadecimales son potencia de dos (16 = 24 y 8 = 23), la
conversión entre estos sistemas y el binario es muy sencilla. Fijémonos en el valor numérico de
números binarios, octales y hexadecimales genéricos:
TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 5
H1*161 + H0*160
Por ser las bases octales y hexadecimales potencias de dos, en el número binario podemos
agrupar los dígitos en función de estas potencias:
Al comparar las dos últimas expresiones con las expresiones genéricas de los números octales
y hexadecimales, podemos obtener las siguientes igualdades:
O2 = b6*20
Por lo tanto, podemos realizar la conversión dígito a dígito, y no tener que tratar con el número
completo. Luego cada dígito octal (hexadecimal) será sustituido por grupos de tres (cuatro)
dígitos binarios con el mismo valor numérico. En el caso de la conversión desde binario a octal
(hexadecimal) consiste en la conversión en grupos de tres (cuatro) dígitos (si faltan a la
izquierda dígitos para completar algún grupo, se le añaden 0’s). Por ejemplo:
11 8 0 0 1 0 1 1
11 2 3 1 8 1 3
1 5 2 1 0
1 2 2
0 1 2 1 0 1 1
1 0 11 8 B
B 0
7160 A04
3. Códigos Binarios
A partir de ahora (salvo que se indique lo contrario) vamos a trabajar con el sistema bina-
rio, cuyos dígitos se denominan bits. Una vez visto como podemos pasar de una base a otra,
nos falta determinar la relación biunívoca existente entre la información y la palabra de código
por la que será representada. Esta relación viene dada por el código. Como el sistema numérico
con el que trabajamos habitualmente es el sistema decimal, la mayoría de los códigos que vere-
mos serán códigos BCD (decimal codificado en binario). Estos códigos necesitan cuatro bits
por cada dígito decimal ya que 23 < 10 < 24. Así, el código BCD natural es aquel que repre-
senta cada dígito decimal por su expresión polinómica.
Dentro de los códigos, podemos encontrar a un grupo cuyo valor se puede obtener a tra-
vés de un polinomio con los dígitos de dicho código a través de un producto escalar.
Valor = w 3 c 3 + w 2 c 2 + w 1 c 1 + w 0 c 0
donde el vector (w3w2w1w0) es conocido como vector peso y el (c3c2c1c0). Los códigos que
muestran esta característica se denominan códigos pesados o con peso. El caso del código
BCD natural se encuentra dentro del grupo de los códigos con peso ya que cada bit se encuen-
tra multiplicado por un peso (8,4,2,1). Otros ejemplos de códigos con peso son los que tienen
como peso (8,4, -2, -1) y (2,4,2,1). Un ejemplo de código no pesado es el código de exceso a 3.
Este código se obtiene como el código binario del resultado de la suma del dígito en cuestión
con el número tres. Estos códigos los podemos ver en la siguiente tabla.
Dígito BCD natural
Exceso a 3
Decimal 8 4 2 1 8 4 -2 -1 2 4 2 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0
2 0 0 1 0 0 1 1 0 0 0 1 0 0 1 0 1
3 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0
4 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1
5 0 1 0 1 1 0 1 1 1 0 1 1 1 0 0 0
6 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1
7 0 1 1 1 1 0 0 1 1 1 0 1 1 0 1 0
8 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 1
9 1 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0
Tabla 1.1. Ejemplos de códigos binarios.
Excepto el código BCD natural, los otros tres tienen la propiedad de ser autocomplementa-
rios, es decir, si complementamos (cambiar 1’s por 0’s y viceversa) la palabra bit a bit, obten-
dremos la palabra correspondiente al dígito 9-d.
vas es n. Estos códigos se pueden clasificar en: códigos cerrados, cuando la última palabra
tiene una distancia n con respecto a la primera; y códigos abiertos, cuando la última palabra
tiene una distancia diferente a n con respecto a la primera palabra. Un ejemplo de código de
distancia unidad cerrado es el código de Gray, que se caracteriza con una fácil implementación
a partir del código binario.
Dígito Binario natural Código Gray
Decimal b3 b2 b1 b0 g3 g2 g1 g0
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 1
3 0 0 1 1 0 0 1 0
4 0 1 0 0 0 1 1 0
gi = 0<=> bi = bi+1
5 0 1 0 1 0 1 1 1
6 0 1 1 0 0 1 0 1
7 0 1 1 1 0 1 0 0
8 1 0 0 0 1 1 0 0
9 1 0 0 1 1 1 0 1
Tabla 1.2. Generación del código Gray a partir del código binario natural.
Una vez llegados a este punto, nos deberemos preguntar sobre cuántos bits considerare-
mos los fallos. En principio, sería lógico pensar que consideraríamos los fallos de transmisión
en todos los bits; pero esta situación sería excesivamente costosa. Luego nos fijaremos en las
probabilidades que existen de que ocurran errores según el número de bits erróneos. Según
estos estudios, la probabilidad cae excesivamente cuando los fallos ocurren en dos o más bits;
por lo tanto, sólo tendremos en cuenta fallos en un solo bit.
Para que sea factible la detección de fallos, se debe garantizar que la palabra obtenida
tras el fallo no pertenezca al código en cuestión. Si hablamos en términos de la distancia de
Hamming, la palabra correcta y la errónea tienen una distancia igual a “1”. Luego una condi-
ción necesaria y suficiente será que todas las palabras del código tengan una distancia mínima
de dos entre todas ellas. Así, podemos comprobar la siguiente afirmación:
Cualquier código de detección de fallo en un solo bit debe tener al menos una distan-
cia de dos entre cualesquiera dos palabra de código.
Las palabras con una distancia mínima de dos se pueden usar como códigos de detec-
ción de error en un bit, y así poder utilizarlas como chequeadoras del canal de trans-
misión.
Al tener una distancia mínima de dos, entre dos palabras correctas siempre habrá una combina-
ción de bits (que corresponderá a las posibles palabras erróneas) las cuales no serán ninguna de
8 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
nuestras palabras de código. Por lo tanto, cuando se produce un fallo en un solo bit, la combi-
nación obtenida será alguna de las que no pertenecen al código pudiendo detectar el fallo.
distancia
n+8 Palabra
n+7
n+6 Palabra
n+5
n+4 Palabra
Fallo en un solo bit
n+3
n+2 Palabra
n+1
n Palabra
Figura 1.2.- Comportamiento de un código detector de fallos en un solo bit ante la existencia
de un fallo en un bit.
El código 2-out-of-5 tiene la peculiaridad de que tiene todas las combinaciones de cinco
bits que tienen dos 1’s entre todos sus bits. Por lo tanto, una forma de detectar errores será la
comprobación de que únicamente existan dos 1’s. De esta forma, un error en un bit nos apor-
tará una palabra con tres 1’s o ningún 1. La detección no se da para fallos en más bits por dos
razones:
• Fallos en un número par de bits puede producir una palabra con dos 1’s, considerada
correcta.
• Fallos en un número impar de bits puede producir el mismo comportamiento que el
fallo en un solo bit, no pudiendo saber en cuántos bits se ha producido el fallo.
El código biquinario muestra un aspecto similar al anterior, es decir, todas sus palabras
contienen dos 1’s en todos sus bits, pero a diferencia del primero no contiene todas las combi-
naciones de dos 1’s en todos sus bits, no obstante existe una relación que sólo es cumplida por
las palabras correctas del código. Así la detección de un fallo se realiza comprobando que
exista un 1 en los dos primeros bits, y otro 1 en los cinco restantes. Al igual que el anterior sólo
se considera fallos en un solo bit por razones similares. Podemos comprobar, que este código
es pesado, propiedad que no comparte con el anterior.
Una vez que hemos visto como se pueden detectar errores en la transmisión de la infor-
mación, debemos pasar a ver como podemos determinar cuál de los bits es el que ha producido
el error. Estos códigos se denominan códigos correctores de error.
En el caso de corrección, tenemos que conseguir que la palabra errónea se encuentre más
cerca (en el sentido de la distancia de Hamming), o lo que es lo mismo, tenga menos bits dife-
rentes con respecto a una sola palabra del código. Con este criterio de cercanía, podemos ase-
gurar cuál es la palabra que se ha querido transmitir (con mayor probabilidad), y por lo tanto,
saber cuál ha sido el bit que ha producido el error.
distancia
n+8
n+7 Palabra
n+6
n+5
n+4 Palabra
Fallo en un solo bit
n+3
n+2
n+1 Palabra
n
Figura 1.3.- Comportamiento de un código corrector de fallos en un solo bit ante la existen-
cia de un fallo en un bit.
Por lo tanto, la distancia mínima que tiene que tener todas las palabras de código entre sí es
igual a tres.
10 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Así, podemos dar una condición necesaria y suficiente para que un código sea corrector
en un solo bit:
La condición necesaria y suficiente para que cualquier conjunto de palabras binarias
sea un código corrector de un error en un solo bit, es que la distancia mínima entre
ellas sea de tres.
Para lograr esta meta se hace necesario añadir más bits (no es suficiente con un solo bit
de paridad), por lo que en la palabra podemos diferenciar bits de mensaje (son los que real-
mente llevan la información útil) y bits de chequeo (son los que llevan la información para
corregir los posibles fallos). Estos bits de chequeo suelen ser, por lo general, bits de paridad de
un determinado subconjunto de bits de mensaje. Para que se logre este cometido, un fallo en un
bit de mensaje debe producir una contradicción en más de un bit de chequeo, mientras que un
fallo en un bit de chequeo sólo debe producir una contradicción en dicho bit (bits de chequeo
independientes explícitamente). Un ejemplo de estos códigos consta de tres bits de chequeo
(C1, C2 y C4) y cuatro bits de mensaje (M3, M5, M6 y M7), mostrado en la tabla 1.4.
Dígito decimal C1 C2 M3 C4 M5 M6 M7
0 0 0 0 0 0 0 0
1 1 1 0 1 0 0 1
2 0 1 0 1 0 1 0
3 1 0 0 0 0 1 1
4 1 0 0 1 1 0 0
5 0 1 0 0 1 0 1
6 1 1 0 0 1 1 0
7 0 0 0 1 1 1 1
8 1 1 1 0 0 0 0
9 0 0 1 1 0 0 1
Tabla 1.4. Ejemplo de código corrector de error en un solo bit.
Una vez que disponemos de un código corrector, tenemos que obtener cuáles son los bits
de mensaje cuya paridad es almacenada en cada bit de chequeo. Una forma sencilla de obtener
esta información consiste en considerar todas las palabras que tengan un solo 1 en todos los
bits de mensaje; por lo que los bits de chequeo que tomen el valor 1, “verán” a este bit de men-
saje. Por ejemplo, consideremos la palabra “1” que sólo tiene un 1 en el bit M7. En este caso,
todos los bits de chequeo tienen el valor 1, por lo que todos ellos chequearán a dicho bit de
mensaje. Si repetimos este proceso tantas veces como sea necesaria, obtenemos que:
• C1 es la paridad de M3, M5 y M7
• C2 es la paridad de M3, M6 y M7
• C4 es la paridad de M5, M6 y M7
Veamos ahora como se detecta el bit donde se ha producido un fallo. No podemos olvidar que
estamos ante situaciones de errores en un solo bit; así que si detectamos un fallo en dos bits de
chequeo, el fallo deberá estar en el único bit de mensaje común a dichos bits de chequeo. Por
lo tanto:
• Si existe un fallo en M3, se detecta en C1 y C2
• Si existe un fallo en M5, se detecta en C1 y C4
TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 11
Para poder obtener el número de bits de chequeo para crear un código corrector de erro-
res en un solo bit, se verifica que k+m<=2k-1; donde k es el número de bits de chequeo y m es
el número de bits de mensaje. El hecho de 2k-1 radica en que el número de bits de chequeo
debe ser tal que tenga tantas combinaciones como posibilidades de fallos, eliminando la posi-
bilidad de la no existencia de fallo.
12 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
TEMA II: ÁLGEBRA DE CONMUTACIÓN
En este capítulo veremos los métodos matemáticos que se disponen para las operaciones
relacionadas con los circuitos digitales, así como las funciones más básicas de la aritmética
binaria.
Teorema 2.2.- (o Teorema de elementos nulos) Para cada cualquier elemento a, se verifica
a+1 = 1 y a·0 = 0
Demostración.-
a+1 = 1·(a+1) = (a+a’)·(a+1) = a + a’·1 = a + a’ = 1
a·0 = a·0+0 = a·0 + a·a’ = a·(a’+0) = a·a’ = 0
Teorema 2.3.- Cada uno de los elementos identidad es el complemento del otro, es decir, 1’ = 0
y 0’ = 1
Demostración.- Si fuese cierto, deberían cumplir el cuarto postulado del álgebra:
1 = 0 + 0’
0 = 0 · 0’
Teorema 2.5.- (o Teorema de involución) Para cada elemento de a, se verifica que el comple-
mento del complemento de a es a, es decir, (a’)’ = a
Demostración.-
TEMA II: ÁLGEBRA DE CONMUTACIÓN 15
Teorema 2.10.- (o Teorema de asociatividad) Cada uno de los operadores binarios (+) y (·)
cumple la propiedad asociativa, es decir, para cada tres elementos, a, b y c, se
verifica
(a + b) + c = a + (b + c)
(a · b) · c = a · (b · c)
3. Álgebra de Conmutación.
Hasta ahora no hemos puesto ninguna restricción al conjunto de elementos ni a los ope-
radores binarios (salvo los postulados que deberían cumplir). Si particularizamos para el caso
16 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
de los circuitos digitales, restringimos el conjunto de elementos a los dos dígitos binarios {0,1}
y las operaciones binarias son las siguientes:
A B + · Negación
0 0 0 0
0=1
0 1 1 0
1 0 1 0
1=0
1 1 1 1
Tabla 2.1. Operaciones del álgebra de conmutación.
y los circuitos electrónicos que realizan estas operaciones se denominan puertas (OR, AND y
NOT o inversor). Estas puertas tienen unos símbolos especiales, los cuales son mostrados en la
figura 2.1. Éstos son los símbolos tradicionales; y aunque existe una simbología internacional
también mostrada, usaremos preferentemente estos símbolos:
TEMA II: ÁLGEBRA DE CONMUTACIÓN 17
& ≥1 1
Figura 2.1.- Símbolos tradicionales e internacionales de las puertas lógicas más básicas.
En primer lugar vamos a definir las relaciones existentes entre los elementos del álgebra,
es decir, lo que se entiende por una función.
Se define una función completa de un conjunto S en otro T
como un subconjunto de SxT de forma que para cualquier
elemento s que pertenezca a S, exista un solo elemento t
de T, llamado valor de la función para s.
Como todos los postulados y teoremas del álgebra de conmutación fueron formulados
mediante variables (las cuales pueden ser tanto constantes como expresiones completas), éstos
pueden ser aplicados a cualquier función o fórmula de conmutación.
Teorema 2.11.- Cada fórmula de conmutación describe una única función de conmutación.
Demostración.- De cada fórmula podemos obtener una tabla de combinaciones que es única,
evaluando la fórmula para todas las combinaciones posibles de las variables de entradas.
Como una función es biunívocamente representada por una tabla de combinaciones, si la
última es única, la primera también lo será.
Como se puede ver, pueden existir muchas fórmulas de conmutación que describan a la misma
función de conmutación.
Dentro de las fórmulas de conmutación, hay algunas que son de especial interés, las cua-
les se definen a continuación:
Se denomina término producto a la operación AND de un
número dado de literales (variables o constantes).
TEMA II: ÁLGEBRA DE CONMUTACIÓN 19
Por ejemplo:
• Fórmula normal disyuntiva −−> F(X0, X1, X2) = X1’·X2 + X1·X2
• Fórmula normal conjuntiva −−> F(X0, X1, X2) = (X1’ + X2)·(X1 +X2)
Se define mintérmino al término producto en el que apare-
cen todas las variables una y una sola vez, ya sea comple-
mentada o sin complementar; por lo tanto, un mintérmino
es un caso especial de término producto.
Teorema 2.16.- (o Primer teorema de expansión) Para una función de conmutación, se cumple
que f(x1, x2,…, xn) = x1· f(1, x2,…, xn) + x1’ · f(0, x2,…, xn)
Demostración.- Usando los postulados y teoremas del álgebra de Boole podemos representar
f(x1, x2, …, xn) = x1· A + x1’ · B. Por lo que:
donde i es el número decimal que hace que dicho mintérmino tenga el valor 1. Por ejemplo
m0 = x1‘ · x2’ · … · xn’
m1 = x1‘ · x2’ · … · xn
m2n-1 = x1 · x2 · … · xn
Es decir, el número del mintérmino es igual al número decimal que coincide con la combina-
ción de señales de entrada que le da el valor “1” a dicho mintérmino.
Demostración.- Se aplica sucesivamente el teorema de expansión. Vamos a particularizar a una
función de tres variables (aunque el desarrollo sería perfectamente válido para cualquier
número de entradas).
F(x,y,z) = x·F(1,y,z) + x’·F(0,y,z) = x·(y·F(1,1,z)+y’·F(1,0,z)) + x’·(y·F(0,1,z)+y’·F(0,0,z)) =
x·{y·(z·F(1,1,1)+z’·F(1,1,0))+y’·(z·F(1,0,1)+z’·F(1,0,0))} +
x’·{y·(z·F(0,1,1)+z’·F(0,1,0))+y’·(z·F(0,0,1)+z’·F(0,0,0))} =
x·y·z·F(1,1,1)+x·y·z’·F(1,1,0)+x·y’·z·F(1,0,1)+x·y’·z’·F(1,0,0) +
x’·y·z·F(0,1,1)+x’·y·z’·F(0,1,0)+x’·y’·z·F(0,0,1)+x’·y’·z’·F(0,0,0)
Por lo tanto, en una fórmula de mintérminos sólo aparecerán aquellos que tomen el valor
1 para alguna combinación de las variables de entrada, ya que el producto por 0 anulará dicho
mintérmino. Por ejemplo, la tabla 2.6 de combinaciones tendrá la siguiente fórmula de mintér-
minos.
TEMA II: ÁLGEBRA DE CONMUTACIÓN 21
X0 X1 X2 F(X0,X1,X2)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
F(X0,X1,X2) = m1 + m2 + m3 + m5 + m7 = ∑ m(1,2,3,5,7)
Tabla 2.6. Ejemplo de una fórmula expresada como suma de mintérminos.
por expresiones del tipo (a·a’) de las variables que no aparecen. De nuevo se evalúan los
paréntesis y obtendremos finalmente la fórmula canónica conjuntiva.
Si consideramos la fórmula disyuntiva F(x,y,z)=(x+y’)·z, para pasarla a su forma canónica
actuamos con la adición de los términos
F(x,y,z) = (x+y’+z·z’)·(x·x’+y·y’+z) =
= (x+y’+z)·(x+y’+z’)·(x+y+z)·(x+y’+z)·(x’+y+z)·(x’+y’+z)
Teorema 2.22.- (o Segundo teorema de expansión) Para una función de conmutación, se cum-
ple que f(x1, x2,…, xn) = [x1+ f(0, x2,…, xn)] · [x1’ + f(1, x2,…, xn)]
Demostración.- Usando los postulados y teoremas del álgebra de Boole podemos representar
f(x1, x2,…, xn) = (x1+ A) · (x1’ + B). Por lo que:
donde i es el número decimal que hace que dicho maxtérmino tenga el valor 0. Por ejemplo
M0 = x1 + x2 + … + xn
M1 = x1 + x2 + … + xn’
M2n-1 = x1’ + x2’ + … + xn’
Es decir, el número del maxtérmino es igual al número decimal que coincide con la combina-
ción de señales de entrada que le da el valor “0” a dicho maxtérmino.
Demostración.- Se aplica sucesivamente el teorema de expansión.Vamos a particularizar a una
función de tres variables (aunque el desarrollo sería perfectamente válido para cualquier
número de entradas).
F(x,y,z) = (x+F(0,y,z))·(x’+F(1,y,z)) =
{x + (y+F(0,0,z))·(y’+F(0,1,z))}·{x’+(y+F(1,0,z))·(y’+F(1,1,z))} =
{x + (y+(z+F(0,0,0))·(z’+F(0,0,1)))·(y’+(z+F(0,1,0))·(z’+F(0,1,1)))} ·
{x’+(y+(z+F(1,0,0))·(z’+F(1,0,1)))·(y’+(z+F(1,1,0))·(z’+F(1,1,1)))} =
(x+y+z+F(0,0,0))·(x+y+z’+F(0,0,1))·(x+y’+z+F(0,1,0))·(x+y’+z’+F(0,1,1)) ·
(x’+y+z+F(1,0,0))·(x’+y+z’+F(1,0,1))·(x’+y’+z+F(1,1,0))·(x’+y’+z’+F(1,1,1))
Por lo tanto, en una fórmula de maxtérminos sólo aparecerán aquellos que tomen el valor
0 para alguna combinación de las variables de entrada, ya que la suma de 1 a los términos
sumas consigue su no influencia. Por ejemplo, la tabla 2.7 de combinaciones tendrá la
TEMA II: ÁLGEBRA DE CONMUTACIÓN 23
F = M0 · M4 · M6 = ∏ M(0,4,6)
Tabla 2.7. Ejemplo de fórmula expresada como producto de maxtérminos.
Teorema 2.24.- El complemento de una fórmula de mintérminos está formado por la suma de
los mintérminos que no aparecen en la fórmula original.
Demostración.- Como ya hemos visto, en una fórmula de mintérminos únicamente aparecen
aquellos que pueden tomar un valor de 1, mientras que los que toman siempre el valor 0 no
aparecen. No obstante, como la complementación consiste en intercambiar 1’s por 0’s, en la
fórmula complementada tomarán el valor 1 aquellos mintérminos que tomaban el valor 0,
mientras que tomarán el valor 0 aquellos que tomaban el valor 1. Por lo tanto, en la fórmula
complementada aparecerán todos los mintérminos que pasan a tomar el valor 1, que son los
mismos que en la fórmula original tomaban el valor 0 y por tanto no aparecían.
Teorema 2.25.- El complemento de una fórmula de maxtérminos está formado por el producto
de los maxtérminos que no aparecen en la fórmula original.
Demostración.- Como ya hemos visto, en una fórmula de maxtérminos únicamente aparecen
aquellos que pueden tomar un valor de 0, mientras que los que toman siempre el valor 1 no
aparecen. No obstante, como la complementación consiste en intercambiar 1’s por 0’s, en la
fórmula complementada tomarán el valor 1 aquellos maxtérminos que tomaban el valor 0,
mientras que tomarán el valor 0 aquellos que tomaban el valor 1. Por lo tanto, en la fórmula
complementada aparecerán todos los maxtérminos que pasan a tomar el valor 0, que son los
mismos que en la fórmula original tomaban el valor 1 y por tanto no aparecían.
Teorema 2.26.- Siempre se verifica las siguientes igualdades: mi’ = Mi y Mi’ = mi.
Demostración.- Por definición, i es el número decimal, codificado en binario con las variables
de entrada, que hace que el mintérmino tome el valor de 1 y el maxtérmino tome el valor de
0. Como el mintérmino es el producto de todas las variables (complementadas o sin comple-
mentar), todas aquellas que aparezcan sin complementar se sustituirán por 1, mientras que
las complementadas se sustituyen por 0. Y como el maxtérmino es la suma de todas las
variables (complementadas o sin complementar), todas aquellas que aparezcan sin comple-
mentar se sustituirán por 0 y las que estén complementadas se sustituirán por 1. Ahora bien,
por las leyes de DeMorgan generalizadas, el complemento de mintérmino será un maxtér-
mino (cambiar operación AND por OR) con las variables invertidas (las que estaban sin
24 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
El primer criterio (el número de variables) nos va a dar idea del número de entradas que debe
tener cada puerta lógica del primer nivel, es decir, en el caso de suma (producto) de productos
(sumas), nos indicará el número de entradas de cada puerta AND (OR). El segundo criterio nos
va a dar idea del número aproximado de puertas del primer nivel. Por último, el tercer criterio
nos va a dar idea del número de términos que no serán implementados con puertas (la figura de
términos con un solo literal, que será implementada con un solo cable).
Hasta ahora hemos visto funciones que se encuentran definidas para todas las combina-
ciones posibles de variables. No obstante, también se pueden dar casos de funciones que no se
encuentren definidas para todas las combinaciones de entradas. Esto suele pasar cuando las
variables de entrada no son independientes entre sí o que no puedan darse todas las combina-
ciones. A este tipo de funciones se les denomina funciones incompletas o incompletamente
especificadas. Una función incompleta puede ser la expresada por la tabla 2.8 de combinacio-
nes:.
X0 X1 X2 F(X0,X1,X2)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 --
1 0 0 0
1 0 1 1
1 1 0 --
1 1 1 --
Tabla 2.8. Ejemplo de tabla de verdad de una función incompleta.
En este caso, las combinaciones para las que la función no está especificada son 011, 110 y
111. Para estas combinaciones, la función puede tomar cualquier valor ya que éste no es signi-
ficativo porque no se dará o no influirá. Estas funciones se pueden expresar mediante la unión
TEMA II: ÁLGEBRA DE CONMUTACIÓN 25
A la hora de crear la fórmula que expresa dicha función, hay que tener en cuenta dos puntos:
• La función f debe ser completamente implementada.
• La función φ no tiene porqué ser completamente implementada. Ésta puede que no
sea implementada, que sea implementada sólo parcialmente o que esté completa-
mente implementada.
Las inespecificaciones suelen ser empleadas para ayudar a la minimización de las fórmu-
las de conmutación. Debido a estas inespecificaciones, se cumple que la fórmula de mintérmi-
nos o de maxtérminos no es única, ya que pueden existir tantas fórmulas como combinaciones
de que sus inespecificaciones existan o no.
Se define el complemento de una función incompleta como otra función incompleta con
la misma función de inespecificación y el complemento de los valores definidos. Por ejemplo:
X0 X1 X2 F(X0,X1,X2) F(X0,X1,X2)’
0 0 0 0 1
0 0 1 1 0
0 1 0 1 0
0 1 1 -- --
1 0 0 0 1
1 0 1 1 0
1 1 0 -- --
1 1 1 -- --
Tabla 2.9. Ejemplo de una función incompleta y su complemento.
26 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
5. Aritmética binaria.
La suma binaria tiene dos salidas: suma y acarreo. La salida suma es el resultado, mien-
tras que el acarreo es lo que se le añade a la siguiente suboperación. La tabla de combinaciones
para la suma de dos entradas es la tabla 2.10, que se encuentra junto a un ejemplo:
A B Suma Acarreo
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Tabla 2.10. Tabla de verdad correspondiente a la suma aritmética.
Acarreo 111111 1
Sumando A 010110.011 22.375
Sumando B 011011.110 27.750
Resultado 110010.001 50.125
5.2. Resta.
La resta binaria tiene dos salidas: resta y desbordamiento. La salida resta es el resultado,
mientras que el desbordamiento es lo que se le vuelve a restar a la siguiente suboperación,
como si fuese un nuevo substraendo. La tabla de combinaciones para la suma de dos entradas
es la tabla 2.11, que se encuentra junto a un ejemplo:
A B Resta Desbordamiento
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Tabla 2.11. Tabla de verdad correspondiente a la resta aritmética.
5.3. -Complemento.
Al igual que la resta de los números reales se puede ver como la suma del número nega-
tivo, en la resta binaria se puede hacer lo mismo. El número negativo en binario es el denomi-
nado complemento a dos de dicho número, representado por 2B. El complemento a dos de un
número binario se calcula invirtiendo dicho número y sumarle 1 a la inversión, como podemos
ver en el siguiente ejemplo:
2(1011) = 0100 + 1 = 0101
+1111 -------------> +1111
-1011 ------------->+0101
+0100 ------------> +0100
En el caso de que el resultado sea negativo, tanto con la suma con el complemento a dos
como en la resta binaria, el número que se obtiene es el número negativo binario, y por tanto, el
complemento a dos del número en cuestión.
5.4. Desplazamiento.
5.5. Multiplicación.
Después se realiza la suma de los productos parciales (como en el caso decimal). Así,
mostramos como ejemplo la multiplicación de 5.75 x 5 = 28.75.
101.11 5.75
x 101 x5
10111
000000
1011100
11100.11 28.75
5.6. División.
101101 101
101
000101 1001
101
000
Hasta ahora hemos visto funciones de forma general. No obstante, existen funciones con
unas determinadas propiedades especiales que suelen darle el nombre.
No obstante, cuando la función no es simétrica para todas sus variables sino para un con-
junto de ellas, se dice que la función es parcialmente simétrica.
La ventaja de las funciones frontales (backales) es que si disponemos del valor sin com-
plementar (complementado) de las variables de entrada, no nos harán falta inversores a las
entradas, simplificando de este modo la implementación del circuito lógico.
T
W1
W2
F
Wn
1. Introducción.
En cambio, el problema del diseño (que veremos en el tema IV y siguientes con respecto a los
circuitos combinacionales) es el siguiente:
Dados un comportamiento y una funcionalidad, determina el
circuito electrónico que los presenta.
Es decir, un problema es el inverso del otro.
De las tres formas, la más empleada es la simulación por ser la que mayor potencia de cálculo
presenta y por lo tanto la que mayores sistemas puede abarcar.
32 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
2. Puertas Lógicas.
Una de las principales ventajas de utilizar el álgebra de conmutación radica en que las
operaciones básicas de este álgebra (operación AND, OR y NOT) tienen un equivalente directo
en términos de circuitos. Estos circuitos equivalentes a estas operaciones reciben el nombre de
puertas lógicas. No obstante, el resto de circuitos lógicos básicos también reciben el nombre
de puertas, aunque su equivalencia se produce hacia una composición de las operaciones lógi-
cas básicas.
Las tres puertas fundamentales reciben el mismo nombre que los operadores, es decir,
existen las puertas AND, puertas OR y puertas NOT. La última puerta recibe el nombre más
usual de inversor. En la figura 3.1 mostramos los símbolos de estas puertas tanto tradicionales
como internacionales, aunque usaremos preferentemente los símbolos tradicionales.
A A
B F B F A F
Símbolos
tradicionales Q Q
A A
Símbolos B B A
& F ≥1 F 1 F
internacionales
Q Q
F = A·B·...·Q F = A+B+...+Q F = A = A’
En primer lugar debemos identificar aquellos conjuntos de puertas con los que se puede
implementar cualquier función lógica. Así
Un conjunto de puertas completo es aquel conjunto con el
que se puede implementar cualquier función lógica
El conjunto completo más intuitivo es aquel formado por todas las operaciones básicas del
álgebra de conmutación, es decir, el conjunto formado por puertas AND, OR e inversores.
hubiésemos implementado, no podría implementarse con dicho conjunto. Por lo tanto, tenemos
que buscar otro método que no deje lugar a dudas.
Este método podría consistir en obtener las puertas de un conjunto completo ya cono-
cido, por ejemplo, las tres puertas básicas. Si esta transformación es factible, podemos garanti-
zar que el nuevo conjunto es completo. De hecho, para implementar una función en el nuevo
conjunto, podríamos ir transformando puerta a puerta (aunque esta solución no sería óptima).
Por ejemplo, probaremos con el conjunto formado con las puertas AND y los inversores (figura
3.2):
A
F = A·B Puerta AND
B
A F=A Inversor
A
F = (A’·B’) = A + B Puerta OR
B
Luego, el conjunto formado por las puertas AND e inversores forman un conjunto completo.
De idéntica forma se puede probar que el conjunto formado por las puertas OR y los inversores
forman un conjunto completo.
Debido a esta propiedad (que las puertas AND e inversores, al igual que las puertas OR e
inversores, forman un conjunto completo), cobra especial importancia la unión de una puerta
AND (u OR) con un inversor, dando lugar a puertas específicas llamadas puertas NAND
(AND-NOT) y NOR (OR-NOT), cuyos símbolos se muestran en la figura 3.3.
A A
Símbolos B B ≥1 F
& F
internacionales
Q Q
F = A·B·...·Q F = A+B+...+Q
Se puede probar que tanto las puertas NAND como las puertas NOR forman un conjunto com-
pleto, como vemos en la figura 3.4:
34 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
A F
A F
A
A
F F
B
B
A
A F
F
B
B
(a) (b)
Figura 3.4.- Conjuntos completos formados por puertas (a) NAND y (b) NOR.
A
F=A⊕B A B F
B
0 0 0
0 1 1
=1 1 0 1
1 1 0
Además de tener las propiedades conmutativas y asociativas, algunas igualdades útiles son las
siguientes:
• (x ⊕ y)' = x' ⊕ y = x ⊕ y'
• (x ⊕ y)’ = (x·y’+x’·y)’ = (x·y’)’·(x’·y)’ = (x’+y)·(x+y’) = x·y + x’·y’
• x’ ⊕ y = x’·y’ + x·y
• x ⊕ y’ = x·y + x’·y’
• x⊕x=0
• x ⊕ x = x·x’ + x’·x = 0 + 0 = 0
• x ⊕ x' = 1
• x ⊕ x’ = x·x + x’·x’ = x + x’ = 1
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 35
• x ⊕ 1 = x'
• x ⊕ 1 = x·0 + x’·1 = 0 +x’ = x’
• x⊕0=x
• x ⊕ 0 = x·1 + x’·0 = x + 0 = x
• x·(y ⊕ z) = (x·y) ⊕ (x·z)
• x·(y ⊕ z) = x·(y·z’ + y’·z) = x·y·z’ + x·y’·z
• (x·y) ⊕ (x·z) = (x·y)(x’+z’) + (x’+y’)(x·z) = x·y·z’ + x·y’·z
• x ⊕ (x·y') = x +y
• x ⊕ (x·y’) = x·(x’+y) + x’·(x·y’) = x·y
• x ⊕ (x+y) = x'·y
• x ⊕ (x+y) = x·(x’·y’) + x’·(x+y) = x’·y
Como podemos ver, la negación se obtiene con una puerta XOR y el valor lógico “1”; no obs-
tante, no podemos conseguir ninguna puerta AND u OR a partir exclusivamente de una puerta
XOR, ya que para obtener una de las operaciones básicas debemos ayudarnos de la otra.
Luego, la puerta XOR no forma un conjunto completo, pero si le añadimos una puerta AND o
una puerta OR, sí se convierten en un conjunto completo.
Una nota importante en todos los símbolos es que la presencia de un círculo indica una
inversión, como podemos ver en la figura 3.6:
A
F = (A’ · B’)
B
3. Análisis.
En este estado, tanto las señales internas como las de salida pueden sufrir cambios (no necesa-
riamente uno solo, sino que pueden ser varios), aunque las señales de entrada no cambien.
Estos posibles cambios son los necesarios para que el circuito busque su estabilización.
36 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
En este estado, ninguna de las señales del circuito puede sufrir ningún cambio, a no ser que
sean las señales de entrada. Esta diferencia se puede apreciar en la figura 3.7. Es decir, en el
estado transitorio se producen todos los cambios necesarios en las señales de salida (e internas)
hasta conseguir la estabilización del circuito. En cambio, en el estado estacionario, las señales
de salida (e internas) están estables a su valor correcto. Por lo tanto, el comportamiento lógico
hay que observarlo en el estado estacionario, en el cual no se producirá ningún cambio adicio-
nal debido al cambio actual de las señales de entrada.
Señales
de entrada
Señales
de salida y/o internas
Estado Estado
transitorio estacionario
Una vez planteado en la zona temporal donde nos encontramos, el estado estacionario,
vamos a afrontar el análisis estacionario de un circuito combinacional. En este estado, las seña-
les del circuito no cambian, luego lo significativo de este estado es su valor. Una forma simple
de analizar un circuito en su estado estacionario consiste en etiquetar todos los nodos del cir-
cuito con la función lógica que realizan. Por lo tanto, la fórmula de conmutación coincidirá con
la etiqueta del nodo de salida, sustituyendo las señales internas por sus funciones de las varia-
bles de entrada.
En la figura 3.8 mostramos un ejemplo de análisis estacionario. Por lo tanto, una vez que
tenemos etiquetado la(s) señal(es) de salida, tenemos que recorrer el circuito en orden inverso
para determnar las fórmulas de cada una de las señales internas.
Una vez que tenemos la fórmula con la que hemos implementado la función, se puede
representar mediante su tabla de combinaciones, mostrada en la tabla 3.1. Como ya comenta-
mos, la tabla de verdad debe tener como mínimo todas las señales de entrada y salida. No obs-
tante, puede ser interesante incluir las señales internas para una obtención más segura. Este
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 37
A
N1 = A·B
B
F = N1 + N4
F = A·B + c·N3
F = A·B + c·(A+B)
N2 = C
C
N4 = N2·N3
A N3 = A+B
hecho suele cobrar más sentido cuando el circuito que tenemos que analizar sea más complejo,
tanto en dimensiones como en complejidad de los componentes.
A B C N1 N2 N3 N4 F
0 0 0 0 1 1 1 1
0 0 1 0 0 1 0 0
0 1 0 0 1 0 0 0
0 1 1 0 0 0 0 0
1 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0
1 1 0 1 1 0 0 1
1 1 1 1 0 0 0 1
Tabla 3.1. Tabla de verdad del ejemplo de la figura 3.8.
Algunas recomendaciones simples para una mayor facilidad de obtener los valores de
una fórmula lógica pueden ser las siguientes:
• Si la fórmula es una suma de términos, el valor será igual a ‘1’ siempre y cuando algu-
nos de los términos sea ‘1’. Luego, nos centramos término a término para ver si su
valor es ‘1’. En todos los casos en que ningún término sea ‘1’, el valor es ‘0’.
• Si la fórmula es una producto de términos, el valor será igual a ‘0’ siempre y cuando
algunos de los términos sea ‘0’. Luego, nos centramos término a término para ver si
su valor es ‘0’. En todos los casos en que ningún término sea ‘0’, el valor es ‘1’.
• Si la fórmula es una mezcla de sumas y productos, se aplican las recomendaciones
anteriores según corresponda
El estado transitorio, como ya hemos visto, tiene unos límites temporales y la posibilidad
de cambiar un número aleatorio de veces las señales del circuito. Por lo tanto, lo importante de
este estado será conocer ese límite temporal, y las transiciones no necesarias que se produci-
rán.
38 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
El primer dilema con el que nos encontramos es discenir cuando acaba el estado transito-
rio y empieza el estado estacionario. Esta frontera se podría encontrar obteniendo el retraso de
propagación del circuito (duración del estado transitorio). Este retraso será igual a la suma de
los retrasos de las puertas por las que se transmiten los datos. En el ejemplo anterior podemos
distinguir tres caminos diferentes por simple inspección:
• AND - OR --> T = TAND + TOR
• INV - AND - OR --> T = TINV + TAND + TOR
• NOR - AND - OR --> T = TNOR + TAND + TOR
Ahora nos encontramos ante el problema de qué camino deberíamos escoger. No obs-
tante, no podemos perder de vista que lo realmente imortante es el tiempo que transcurre desde
que entra la señal hasta que llega a la salida. Luego, puede que existan caminos equivalentes
(en el sentido de que tengan el mismo retraso). De estos caminos debemos elegir los más len-
tos, con el fin de garantizar que cualquier combinación de entrada habrá llegado a la salida
transcurrido dicho tiempo.
Cada combinación de entradas llegará al nodo de salida por uno o varios de esos caminos
(siempre el más rápido cortando el más lento). Igual que una combinación puede llegar a la
salida por varios caminos, se puede dar el caso de que un camino se encuentre permanente-
mente cortado, es decir, siempre exista otro con menor retraso. Por lo tanto, tenemos que
garantizar que el camino, que hayamos elegido como crítico, se siga por alguna combinación.
Las situaciones más usuales en las que un camino se corta son las siguietnes:
• F · ‘0’, ya que la salida no depende del camino elegido, sino que siempre valdrá ‘0’
• F + ‘1’, por la misma razón anterior.
Veamos qué combinaciones sigue cada camino del circuito de la figura 3.8:
• En el caso del primer camino, la operación c·(A+B)no debe influir en la operación
OR. Por lo tanto, ésta debe valer ‘0’ para que x + ‘0’= x. Luego las combinaciones
que siguen este camino son:
• ABC = 001 - 011 - 101 - 111 - 010 - 100 - 110
• En el caso del segundo camino, la operación c·(A+B) sí debe influir en la operación
OR, por lo que en este caso A·B debe valer ‘0’ para que ‘0’ + x = x. Además, la ope-
ración NOR no debe influir en la operación AND, por lo que A+B debe valer ‘1’ para
que ‘1’ · x = x. Luego las combinaciones que siguen este camino son:
• ABC = 000 - 001
• La descripción del tercer camino será semejante a la del segundo intercambiando los
papeles del inversor y la puerta NOR. Luego las combinaciones serán:
• ABC = 000 - 010 - 100
Como podemos ver, tenemos combinaciones que verifican más de un camino como puede ser
la combinación “000” (entre otras). Cuando estamos en estas situaciones, el retraso de dicha
combinación será el menor retraso (ya que en ese momento, la señal ha llegado a la salida).
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 39
Por lo general, los estados transitorios y estacionarios no están referenciados a cada com-
binación de las señales de entrada, sino al circuito en sí mismo. Luego, la duración del estado
transitorio se toma como la más larga, asegurando así que en el estado estacionario las señales
de salida estarán estabilizadas.
El camino crítico se define como aquel camino que produce
el mayor retraso para alcanzar la estabilización de las
señales del circuito.
Luego lo realmente interesante es obtener el camino crítico. Para ello deberíamos conocer el
retraso de cada puerta. En el caso de no conocerse se toma por convención el mismo retraso
para todas las puertas, luego, será aquel por el que pase más puertas. En nuestro ejemplo ten-
dríamos como caminos críticos los dos últimos (con un retraso de tres puertas). Pero antes de
asignar este camino, debemos garantizar que este camino es seguido por alguna combinación.
3.2.2. Azares
El segundo aspecto del análisis transitorio consiste en deducir las transiciones que ten-
drán lugar en dicho estado. Sería lógico pensar que para cada cambio de las señales de entrada,
debería existir como máximo un cambio en cada señal de salida (si tuviese que cambiar su
valor lógico) o ninguno (si no tuviese que cambiar dicho valor). No obstante esto no se produce
en la mayoría de los casos reales.
El principal error consiste en suponer que se pueden producir cambios simultáneos de las
diferentes señales del circuito. Como podemos apreciar en la figura 3.9, las señales no llegan
de forma simultánea a todas las partes del circuito debido a los diferentes retrasos de cada
puerta utilizada. Podemos apreciar que las señales de entrada al circuito han cambiado simultá-
neamente, pero a la puerta C no llegan los cambios de forma simultánea, sino que el cambio de
X1 llega antes. Luego la puerta C realizará dos operaciones en lugar de una, como era de espe-
rar.
X1 X11 X1
TA
TA
X11
TC
X2
X2 TB TB
X21 X21
Figura 3.9.- Imposibilidad de tener transiciones simultáneas en más de una señal digital.
Estos retrasos no son controlados ya que además de la función lógica, dependen de otros
muchos factores, tanto internos (dispositivos parásitos) como externos (temperatura). Además,
la inserción de las señales de entrada (ya sea por un operador hmano, mecánico o electrónico)
no garantiza que se puedan producir cambios simultáneos de señales, sino todo lo contrario
(debido a la no idealidad de los operadores).
40 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Por lo tanto, estas transiciones no consideradas son de gran importancia, ya que nos pue-
den conducir a situaciones erróneas, y no necesariamente de forma transitoria. Si dicho cir-
cuito se comporta como entrada de otro, puede que una situación anómala produzca que la
situación inicial no sea la correcta, obteniendo un comportamiento diferente al deseado. Ade-
más, cuanto más transiciones sean necesarias para la estabilización del circuito, quiere decir
que el circuito consumirá más potencia (la energía necesaria para llevar a cabo su operación
por unidad de tiempo); este parámetro cobra cada vez más importancia con el auge de los siste-
mas sin cable. Por lo tanto,
se denomina azar a cualquier desviación del comporta-
miento esperado, potencial o real, de un circuito de con-
mutación cuando sufre un cambio en sus entradas.
Las desviaciones potenciales, no reales, se siguen considerando azares debido a que el com-
portamiento de un circuito (y en mayor grado, su régimen transitorio) puede depender de las
condiciones de operación en la que se encuentre el circuito, como son la temperatura de opera-
ción, la vida de los dispositivos, etc. A una determinada temperatura, no se observa la presen-
cia del azar, pero si se altera dicha temperatura, los retrasos de las puertas pueden variar,
ocasionando la presencia del azar.
Una vez que hemos detectado la presencia de azares, la cual va a reducir las prestaciones
del diseño, tenemos que obtener las causas de estos azares. Como ya hemos dicho la causa
principal de los azares es la imposibilidad de tener cambios simultáneos de más de una señal.
Así, una primera causa son los cambios simultáneos de las señales de entrada, que debido a la
función lógica implementada provocará un azar.
Los azares provocados por la función lógica en sí misma se
denominan azares de función.
Una forma sencilla de evitar los azares de función será imponer la restricción de no per-
mitir cambios simultáneos de señales de entrada. Con esta medida, la transición desde “000” a
“110” no sería permitida y tendríamos que elegir alguno de los dos caminos anteriores. El
comportamiento sería el mismo pero con la salvedad de que, en caso de elegir el primer
camino (donde se obtiene la presencia del azar), el pulso de bajada es esperado y ya no sería
considerado azar.
Hasta ahora sólo hemos tratado las señales de entrada, no obstante, en un circuito existen
tres tipos de señales: entrada, salida e internas. La imposibilidad de cambiar simultáneamente
más de una señal interna producirá un comportamiento similar, aunque solamente se haya cam-
biado una señal de entrada. La función anterior puede tener la implementación mostrada en la
figura 3.11.
Vamos a estudiar la transición “011” a “001”. En esta transición sólo cambia la señal B,
por lo que no existirán azares de función. No obstante, podemos apreciar que se tiene que pro-
ducir una transición simultánea de las señales N2 y N3. Como esto no es posible, se producirá
un azar en la señal N4 que se transmitirá a la salida.
Estos últimos azares no son debidos a la función lógica, sino al circuito lógico que
implementa la función lógica.
Los azares provocados por la implementación lógica del
circuito se denominan azares lógicos.
En este caso se aprecia más claro que la no simultaneidad de las transiciones se debe a los
retrasos de las puertas utilizadas y a su interconexión.
A
N5
B F
B N3
N4
B N2
N1
C
N1
TOR
TOR
N2
Tinv Tinv
N3
TAND TAND
N4
TAND TAND
N5
TOR TAND TOR
F
TOR TOR TOR
Esta clasificación es válida tanto para azares de función como para azares lógicos. Como
hemos visto que la forma de eliminar los azares de función consiste en prohibir cambios en
varias señales de forma simultánea, de ahora en adelante nos referiremos a azares lógicos per-
mitiendo únicamente cambios en un sola señal de entrada.
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 43
Antes de seguir con los azares lógicos, vamos a ver una nueva forma tabular de represen-
tar funciones de conmutación, denominada mapa de Karnaugh. Este mapa es una tabla donde
las columnas y filas son las posibles combinaciones que pueden tomar las diferentes señales de
entrada, encontrándose en el interior de cada celda el valor de la función para la combinación
en cuestión. La peculiaridad de esta tabla es que las combinaciones de señales de entrada de
cada celda adyacente deben tener una distancia de uno (solamente una señal puede tener un
valor diferente). Con esta situación se consigue que el camino seguido por un cambio de seña-
les de entrada debe seguir a través de celdas adyacentes, comprobando fácilmente la presencia
de azares de función y lógicos (como ya veremos).
0 1 00 01 11 10
0 0
1 00 01 11 10 1
00
01
11
10
00 01 11 10
0 0 1 0 0 000 001 011
1 0 1 1 0 1 0
1
Azar dinámico
00 01 11 10
0 0 1 0 0 000 010 011 111
1 1 0 1 1 0 1 0 1
Una vez que hemos definido lo que se entiende por azar y cuál es su comportamiento, el
siguiente paso será determinar si en un circuito en particular se da su presencia. Una forma de
llevar a cabo esta tarea podría ser estudiar cada transición de combincaciones de entrada de la
misma forma que en la figura 3.11. No obstante, este método sería inviable debido al creci-
miento exponencial de transiciones con el número de señales de entrada. Otra forma más via-
ble será la siguiente.
No obstante, haciendo uso de los mapa de karnaugh, existe un método simple para deter-
minar la presencia de azares estáticos, el cual sigue el procedimiento expuesto a continuación:
En el caso de los azares de 1, se obtiene la suma de pro-
ductos de la función (sin aplicar el cuarto postulado, ni
los teoremas asociados) y se rodean los 1's que son gene-
rados por cada término producto. Si existen 1's adyacen-
tes que no son generados por el mismo término producto, se
demuestra que en dichas transiciones existen azares.
En el caso de los azares de 0, se opera de la misma forma
pero cambiando términos producto por términos suma, suma
de productos por producto de sumas y 1's por 0's. También
se puede operar de la misma forma que antes, pero teniendo
en cuenta ahora la función complementada (ya que un azar
de 0 se convierte en un azar de 1 en la fórmula complemen-
tada).
En este caso, existen dos términos suma o producto que deben cambiar de valor de forma
simultánea. Es decir, tendremos una condición de azar en dicha transición.
• F = x·(x+x’)
Las otras dos condiciones [ x·x·x’ y x+x+x’ ] no serían azares ya que se tratarían de la misma
transición en instantes diferentes, es decir, la más lenta no se produciría. En este caso se añade
que dos señales que deberían tener el mismo valor presentan valores diferentes. Luego, en la
manipulación de la fórmula lógica no serían aplicables los teoremas de idempotencia, absro-
ción, ni los derivados de ellos.
4. Ejemplo de aplicación.
A
N5
B F
B N3
N4
B N2
N1
C
La meta del análisis estacionario es obtener la función del circuito que se desea analizar.
Este objetivo e consiguirá obteniendo la fórmula lógica y/o la tabla de verdad del circuito.
Una vez que hemos obtenido la función implementada por el circuito, pasaremos a reali-
zar el análisis transitorio. Este análisis llevará la determinación del camino crítico así como de
los azares lógicos. En este tipo de problemas no hay que estudiar los azares de función, ya que
éstos son inherentes a la función lógica, y no al circuito que es lo que se está estuadiando.
Para empezar el análisis transitorio, vamos a hallar y cuantificar el camino crítico. Como
no nos dan los retrasos de las puertas, supondremos que todas tienen el mismo retraso, por lo
que el camino crítico será aquel que atraviese más puertas. Este camino será el siguiente: INV-
OR-AND-OR. Una vez hallado el camino con mayor retraso, debemos garantizar que alguna
combinación de entrada siga dicho camino:
• Para que la última puerta OR espere a la puerta AND, se debe cumplir que N5 = a·b =
0, luego a y/o b debe valer ‘0’.
• Para que la puerta AND espere a la puerta OR, se tiene que cumplir que N3 = b’ = 1,
luego b debe valer ‘0’.
• Para que la puerta OR espere al inversor, se debe cumplir que b = 0, luego b debe valer
‘0’.
Por lo tanto, las combinaciones que siguen el camino crítico serán aquellas que cumplan las
condiciones anteriores. Éstas se muestran en la tabla 3.3:
A B C
0 0 0
0 0 1
1 0 0
1 0 1
Tabla 3.3. Combinaciones de señales de entrada que siguen el camino crítico.
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 47
El siguiente paso del análisis será determinar la presencia de azares (por ahora estáticos).
Para utilizar el método del mapa, partiremos de la función estacionaria, la cual pasaremos a
suma de productos (sin utilizar el 4º postulado ni sus teoremas asociados) para determinar la
presencia de azares estáticos de ‘1’.
F = a·b + b’·(b+c’) = a·b + b’·b + b’·c’
El mapa de karnaugh se muestra en la figura 3.15. El término b’·b no tiene ningún ‘1’ ya que su
valor estacionario es ‘0’. En el mapa podemos apreciar que existen dos 1’s adyacentes que no
son agrupados por el mismo término, luego existirá un azar para dicha combinación. Esta com-
binación es A=’1’, B= b, C = ‘0’, por lo que el azar se produce para la transición en la señal B.
F
AB
B’·C’
C 00 01 11 10
0 1 0 1 1
1 0 0 1 0
A·B
Figura 3.15.- Obtención de azares lógicos estáticos de ‘1’, utilizando el mapa de karnaugh.
En este caso, el mapa de karnaugh será el mostrado en la figura 3.16. De nuevo, podemos apre-
ciar que existen dos 0’s adyacentes sin que sean englobados por el mismo término suma. Por lo
tanto, existirá un azar para la combinación A=’0’, B=b, C=’1’.
F
AB
C 00 01 11 10
B+C’
0 1 0 1 1
1 0 0 1 0
A+B’
Figura 3.16.- Obtención de azares lógicos estáticos de ‘0’, utilizando el mapa de Karnaugh.
48 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Un método para eliminar los azares estáticos consiste en evitar situaciones como las des-
critas anteriormente, es decir, que no existan 1's (0's) adyacentes sin que sean cubiertos por
alguna puerta. Por lo tanto, añadiremos términos producto (para los azares de ‘1’) y términos
suma (para los azares de ‘0’) que engloben los 1’s y 0’s adyacentes que no sean englobados
para un mismo término producto y suma. Debemos notar que una expresión en términos suma
(producto) no contará con la presencia de azares de ‘1’ (‘0’).
Si se lleva a cabo este mismo estudio por métodos algebraicos, llegaremos a la misma
conclusión. La fórmula de partida es: F = a·b + b’·(b+c’). La condición de que pueda existir
azar estático es que una misma señal aparezca, negada y sin negar; luego en el caso que nos
ocupa sólo puede existir para una transición en la señal b.
• F = b + b’,
• se tiene que cumplir que a·b = b, luego a=1
• se tiene que cumplir que b’·(b+c’) = b’, luego b+c’=1 (sin dar ningún valor a la
variable b en la que se producirá la transición), por lo que c=0
• F = b·b’
• se tiene que cumplir b’·(b+c’) = b’·b, luego c=1
• para evitar la influencia del término a·b se tiene que cumplir que a·b=0, luego a=0
Por lo tanto, podemos apreciar que existe un azar de ‘1’ para una transición en la señal b
cuando a=1 y c=0; y existe un azar de ‘0’ para una transición en la señal b cuando a=0 y c=1.
Estos resultados corroboran el análisis llevado a cabo mediante los mapas de Karnaugh.
Un azar lógico dinámico es un cambio transitorio de un valor de salida que sólo debería
tener una transición, pero presenta más de una de ellas (generalmente tres) ante una transición
en una variable de entrada.
Donde 1, 2 y 3 identifican tres caminos diferentes desde la entrada a hasta el nodo de salida. El
azar dinámico viene dado por la diferencia de retrasos como indica la siguiente secuencia,
como podemos ver en la figura 3.17.
a1 a1
a2 a2
a 3’ a 3’
F F
Según lo anteriormente visto, sólo se podrán encontrar azares dinámicos en aquellas señales
que sigan tres o más caminos diferentes (en los que haya negados y sin negar). Por lo tanto,
solo podremos encontrar azares dinámicos en la señal B. Si pasamos la fórmula a suma de pro-
ductos:
F = a5·b5 + b3’·(b2+c1’) = a5·b5 + b3’·b2 + b3’·c1’
F = (a5+b3’)(a5+b2+c1’)(b5+b3’)(b5+b2+c1’)
El presunto azar estaría formado por el término (b5+b3’) y otro término donde estuviese la
señal B en otro camino diferente, como b2. Los términos (a5+b3’) y (b5+b2+c1’) deben valer
‘1’ para que no influyan en el comportamiento, por lo tanto, A = ‘1’ y C = ‘0’. Con estos valo-
res la fórmula quedaría:
F = (b5+b3’)
50 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
que no es ninguna condición de azar dinámico. Por lo tanto, concluimos con que sólo existe un
azar dinámico. El término (b5+b2+c1’) no ha sido considerado como posible camino de b2
debido a la presencia de b5. Ésta deshabilitaría la diferencia de retraso entre b2 y b5, eliminado
el tercer camino de la variable b.
Una nota importante es que si no existen azares estáticos, tampoco existen azares diná-
micos. Esto es debido a que cualquier situación de azar dinámico lleva implícito un azar está-
tico. Por lo tanto, para evitar situaciones de azares dinámicos, bastaría con evitar todos los
azares estáticos.
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES.
Como ya hemos comentado, el problema del diseño o síntesis consiste en determinar un
circuito que cumpla con unas determinadas especificaciones, tanto de comportamiento como
de funcionalidad. Este problema se puede dividir en dos partes:
• Obtención de la función de conmutación que cumpla la funcionalidad deseada.
• Obtención de los circuitos que implementa dicha función con el comportamiento
deseado.
La obtención de la función de conmutación a partir de unas especificaciones no tiene una
metodología establecida sino que depende de la pericia del diseñador y de la precisión de las
especificaciones dadas.
Así, por ejemplo, vamos a considerar el diseño del sistema mostrado en la figura 4.1. Se
trata de un sistema que opere sobre el estado de operación de una línea de montaje que dispone
de dos sensores: peso en la cinta (A), y fin de la cinta (B). El sistema debe ser tal que los moto-
res deben actuar siempre y cuando haya algo en la cinta. La función de conmutación que cum-
pla estas especificaciones puede ser la mostrada en la misma figura, es decir, exista un peso
sobre la cinta (A=1) y no haya llegado al final (B=0).
A B Y
0 0 0
B 0 1 0
1 0 1
A
1 1 0
• Diseño MSI.- Los bloques disponibles serán grandes bloques de una complejidad
media, como pueden ser bloques sumadores.
• Diseño programable.- Los bloques disponibles serán dispositivos programables en los
que se programará la función deseada.
• Diseño full-custom.- No se dispondrá de ningún bloque, sino que todos los elementos
necesarios, simples o complejos, deberán ser generados por el diseñador.
Cada uno de estos tipos será objeto de estudio en diferentes temas. Concretamente, en el pre-
sente tema estudiaremos el diseño semi-custom.
1. Introducción.
A
A
B F
B F
B
B B
C C
(a) (b)
Figura 4.2.- Diferencia entre una implementación (a) en dos niveles y (b) multinivel.
La meta del diseñador consiste en una realización mínima de un circuito que implemente
una determinada funcionalidad. Los criterios de minimalidad que deben seguir son los que
vimos en el tema II, con el orden siguiente:
• Menor número de términos (que equivalen a puertas)
• Menor número de variables, incluso en los diferentes términos (que equivalen al
número de entradas)
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 53
Luego, la implementación en dos niveles suele ser la base para la implementación multinivel.
Esta es la razón por la que nos vamos a centrar en este tipo de implementación, de dos niveles.
A la hora de plantearnos una fórmula mínima, debemos diferenciar dos casos de funcio-
nes: funciones con una salida y funciones con más de una salida. Esta diferenciación es debido
a que una solución por separado de cada salida puede que no sea mínima si contamos con todas
las salidas simultáneamente. En la figura 4.3 vemos dos funciones cuya implementación con-
junta muestra un coste menor que su implementación por separado:
F1 AB F2 AB
C 00 01 11 10 C 00 01 11 10
0 0 1 0 0 0 0 1 1 0
1 0 1 1 0 1 0 0 1 0
A A
B F1 B F1
C
C B
A
A
B
B
F2 F2
B B
C C
Una vez que hemos visto la necesidad de realizar esta distinción, existen dos métodos
para implementar funciones en dos niveles:
• Método del mapa.- suele ser usado para implementar funciones independientes, y por
lo tanto funciones de una sola salida, basándose en los mapas de Karnaugh.
• Método de McCluskey.- suele ser empleado para implementar funciones multisalida,
aunque también se puede usar para funciones con una sola salida.
54 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Supongamos que tenemos un grupo de dos 1’s adyacentes en los que la variable que cambia
sea xn. Los posibles mintérminos de dichos 1’s podrían ser x1·...·xn·...·xm y x1·...·xn’·...·xm. Una
posible fórmula de la función que tendría dichos 1’s sería la suma de los mintérminos, por lo
tanto:
F = x1·...·xn·...·xm + x1·...·xn’·...·xm= x1·...·xn-1·(xn+xn’)xn+1·...·xm = x1·...·xn-1·xn+1·...·xm
es decir, sería el producto de todas las variables (complementadas o sin complementar) excepto
la variable que ha realizado el cambio.
Supongamos ahora que el grupo es de cuatro 1’s adyacentes en los que las variables que cam-
bian son xn y xp. Los posibles mintérminos podrían ser x1·...·xn’·...·xp’·...·xm,
x1·...·xn·...·xp’·...·xm, x1·...·xn’·...·xp·...·xm y x1·...·xn·...·xp·...·xm. Si sumamos los mintérminos y
operamos, obtenemos:
F = x1·...·xn’·...·xp’·...·xm + x1·...·xn·...·xp’·...·xm + x1·...·xn’·...·xp·...·xm + x1·...·xn·...·xp·...·xm =
= x1·...·xn’·...·(xp’+xp)·...·xm + x1·...·xn·...·(xp’+xp)·...·xm =
= x1·...·(xn’+xn)·...·xp-1·xp+1·...·xm = x1·...·xn-1·xn+1·...·xp-1·xp+1·...·xm
Luego, la afirmación anterior es verificada para los grupos de potencia de dos. Pero suponga-
mos que tenemos tres 1’s adyacentes. El número de variables que cambian son de nuevo de
dos. Supongamos que los mintérminos son: x1·...·xn’·...·xp’·...·xm, x1·...·xn’·...·xp·...·xm y
x1·...·xn·...·xp·...·xm, variando de nuevo xn y xp. Si realizamos las sumas y operamos según el
álgebra de Boole obtenemos:
F = x1·...·xn’·...·xp’·...·xm + x1·...·xn’·...·xp·...·xm + x1·...·xn·...·xp·...·xm =
= x1·...·xn’·...·(xp’+xp)·...·xm + x1·...·xn·...·xp·...·xm =
= x1·...·xn’·...·xp-1·xp+1·...·xm + x1·...·xn·...·xp·...·xm
Por lo tanto, los grupos deben tener un número de 1’s igual a una potencia de dos, es decir, 1, 2,
4, 8, 16, 32, 64,...
Por una aplicación directa del principio de dualidad, obtenemos unas definiciones equi-
valentes para el caso de los 0’s y de los términos sumas.
Un grupo de 0’s adyacentes en un número igual a una potencia de dos, es realizado
por el término suma de las variables que no cambian de valor, tomándolas sin com-
plementar si valen ‘0’ y complementadas si valen ‘1’.
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 55
Supongamos que tenemos un grupo de dos 0’s adyacentes en los que la variable que cambia
sea xn. Los posibles maxtérminos de dichos 0’s podrían ser x1+...+xn+...+xm y
x1+...+xn’+...+xm. Una posible fórmula de la función que tendría dichos 0’s sería el producto
de los maxtérminos, luego:
F = (x1+...+xn+...+xm)(x1+...+xn’+...+xm) = x1+...+xn-1+xn+1+...+xm + xn·xn’ =
= x1+...+xn-1+xn+1+...+xm
es decir, sería la suma de todas las variables (complementadas o sin complementar) excepto la
variable que ha realizado el cambio.
Para el resto de la demostración se opera siguiendo los mismo pasos que en el caso de los
grupos de 1’s.
11 0 1 1 1
I1
10 0 0 1 1
I2
Dichos grupos se corresponderán con los siguientes términos producto (puesto que
hemos agrupados los 1’s):
• I1 = m(10) + m(11) + m(14) + m(15) = A·B’·C·D’ + A·B’·C·D + A·B·C·D’ + A·B·C·D
= A·B’·C·(D+D’) + A·B·C·(D+D’) = A·B’·C + A·B·C = A·(B’+B)·C = A·C
• I2 = m(7) + m(15) = A’·B·C·D + A·B·C·D = (A’+A)·B·C·D = B·C·D
• I3 = m(5) + m(7) = A’·B·C’·D + A’·B·C·D = A’·B·(C+C’)·D = A’·B·D
• I4 = m(1) + m(5) = A’·B’·C’·D + A’·B·C’·D = A’·(B’+B)·C’·D = A’·C’·D
Por lo tanto, tenemos términos con dos entradas (el grupo I1) y con tres entradas (los grupos
restantes). Como podemos comprobar, los términos con un número menor de entradas serán
aquellos que más 1’s engloben, ya que habrá más señales de entrada que cambien (con lo que
no influirán en dicho término). Un posible grupo formado por los mintérminos m(10) y m(11)
no será considerado ya que se encuentra completamente dentro del grupo I1.
56 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
En relación con estos grupos de 1’s (0’s), tenemos las siguientes definiciones:
Un implicante prima o implicante es un grupo de 1’s (0’s) con un número igual a una
potencia de dos que no está contenido totalmente en otro grupo de las mismas carac-
terísticas.
Si observamos en el ejemplo anterior, podemos ver que todos los implicantes son primas.
Cuando algún ‘1’ (‘0’) es cubierto por un solo implicante, se dice que dicho impli-
cante es esencial.
Si observamos en el ejemplo anterior, podemos identificar que los implicantes I1 e I4 son esen-
ciales, mientras que los I2 e I3 no son esenciales.
Una vez que se han definido los implicantes, podemos demostrar que
Teorema 4.1.- La fórmula mínima de la función será aquella compuesta por la unión de los
implicantes esenciales y puede que de algunos no esenciales, de tal forma
que cubramos toda la tabla.
Demostración.- En la fórmula deberán estar incluidos todos los 1’s (0’s) de la función. Luego,
los implicantes que estarán presentes en la fórmula deben cubrir todos los 1’s (0’s). Por defi-
nición de implicante esencial, es el único implicante que cubre a algún 1 (0); por lo tanto,
para que dicho 1 (0) esté involucrado en la fórmula, dicho implicante debe aparecer en ella.
No obstante, puede que exista algún 1 (0) cubierto por implicantes no esenciales; luego
puede que alguno de estos implicantes no esenciales deban aparecer en la fórmula para
cubrir algún 1 englobado sólo por implicantes no esenciales.
Esta unión será a través de sumas, cuando estamos considerando los 1’s y los implicantes
se corresponderán con términos productos; o través de productos, cuando estemos conside-
rando los 0’s y los implicantes se corresponderán con términos sumas.
Las dos primeras soluciones tienen el mismo coste, siendo el mínimo, mientras que en la
última puede eliminarse un implicante, I2 o I3, lo cual nos llevará a una implementación no
mínima. Luego, según lo visto, podemos encontrarnos con fórmulas en las que podemos elimi-
nar algún término y con otras en las que no se puede eliminar ningún término. Según las fór-
mulas podemos encontrar las siguientes definiciones:
Una fórmula se denomina irredundante cuando no se puede eliminar ningún impli-
cante sin que cambia la función lógica. En caso contrario se denominará redun-
dante.
Las dos primeras fórmulas serán irredundantes ya que si eliminamos algún implicante, la fun-
ción lógica que representa cambiará. En cambio, la tercera fórmula es redundante porque se
puede eliminar el implicante I2 o I3 sin que cambie la función lógica.
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 57
Una situacíón que no nos puede llevar a error consiste en que podemos obtener una fór-
mula irredundante no mínima. Por ejemplo las siguientes fórmulas
F1 = a’·b + a’·b’·d + a·b·d
F2 = a’·b + a’·d + b·d
son equivalentes y también son irredundantes. No obstante, queda claro que la fórmula F1
tiene un coste mayor debido a la utilización de puertas on un mayor número de entradas.
00
01
11
10
La primera solución consiste en la aplicación de los teoremas de expansión: f(x5, x4, x3,
x2, x1) = x5·f(1, x4, x3, x2, x1) + x5'·f(0, x4, x3, x2, x1), obteniendo los implicantes corres-
pondientes a las funciones f(1, x4, x3, x2, x1) y f(0, x4, x3, x2, x1) que ya son de cuatro varia-
bles. Una vez que tengamos la fórmula escrita de esta manera, se reduce (si es posible) con el
cuarto postulado. El resultado de esta forma depende ampliamente de la pericia del diseñador a
la hora de la reducción. En el caso de funciones de un número mayor de variables, se aplica
sucesivamente los teoremas de expansión hasta reducir la función a varias de cuatro variables.
Por ejemplo, consideremos la función F(x5, x4, x3, x2, x1)= ∑ m(0, 2, 8, 10, 30, 31). En
la figura 4.6 mostramos los mapas de Karnaguh de dicha función, tanto en el mapa de cinco
variables como aplicando el teorema de expansión sobre la variable x4
Y pasamos a reducir la fórmula utilizando los diferentes postulados del álgebra de Boole, por
lo que la función queda:
58 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
F
x5 x4 x3
x2 x1 000 001 011 010 110 111 101 100
00 1 1
01
11 1
10 1 1 1
F F
x5 x3 x5x3
x2 x1 00 01 11 10 x2 x1 00 01 11 10
00 1 00
F(x4=0) 1
01 01
11 11 1
F(x4=1)
10 1 10 1 1
F = x5·x4·x3·x2 + x5’·x3’·x1’
La segunda forma consiste en la obtención de las implicantes primas por métodos tabula-
res. Uno de estos métodos es el denominado método por carácter binario. Consiste en poner la
combinación de todos los mintérminos que se encuentran en la función. Los mintérminos se
agrupan por el número de 1's. Se unen aquellos que sólo se diferencian en una variable (por lo
que sólo hay que mirar en los grupos adyacentes), eliminando dicha variable. Este procedi-
miento se repite mientras se pueda. Los implicantes primas serán aquellos que no se han
podido repetir, de tal forma que el producto estará formado únicamente por las variables que
queden de la misma forma que en el método del mapa (complementada si su valor es 0, o sin
complementar si su valor es 1, en el caso de considerar los 1’s).
Veamos el ejemplo para la función f = Σ m(0, 2, 8, 10, 30, 31), cuya ejecución se muestra
en la figura 4.7. Al agrupar los mintérminos por el número de 1’s, nos han quedado 5 grupos
diferentes (A={0}, B={2,8}, C={10}, D={30}, E={31}). Estos grupos son agrupados con sus
adyacentes según el número de 1’s, tal que nos quedan tres grupos: A1={(0,2), (0,8)},
B1={(2,10), (8,10)} y C1={(30,31)}. Tenemos que notar que los grupos C y D no se pueden
agrupar ya que no son adyacentes (el grupo C tiene dos 1’s y el D tiene 4 1’s). En los agrupa-
mientos, la variable que ha sufrido el cambio se elimina, por lo que colocamos en su posición
un guión. Para el nuevo agrupamiento, los mintérminos a agrupar solamente deben tener un
valor diferente (incluyendo ceros, unos y guiones), por lo tanto, también debemos tener en
cuenta que no todos los elementos de grupos adyacentes pueden ser agrupados (como (0,2) y
(2,10)). Si realizamos un nuevo agrupamiento nos quedan dos grupos, A2={(0,2,8,10)} y
B2={(30,31)}. Como podemos observar, ya no se puede realizar ningún agrupamiento más.
Por lo tanto, los implicantes obtenidos para esta función han sido dos: x5'·x3'·x1' y
x5·x4·x3·x2. En cambio, observando simplemente el mapa de Karnaugh de la figura 4.6, el pri-
mer implicante no se apreciaría.
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 59
x5 x4 x3 x2 x1 x5 x4 x3 x2 x1 x5 x4 x3 x2 x1
0 0 0 0 0 0 0,2 0 0 0 -- 0 0,2,8,10 0 -- 0 -- 0
2 0 0 0 1 0 0,8 0 -- 0 0 0 30,31 1 1 1 1 --
8 0 1 0 0 0 2,10 0 -- 0 1 0
10 0 1 0 1 0 8,10 0 1 0 -- 0
30 1 1 1 1 0 30,31 1 1 1 1 --
31 1 1 1 1 1
Figura 4.7.- Obtención de los implicantes de una función de cinco variables mediante el
método tabular
Hasta ahora sólo hemos considerado funciones completas. Para el caso de las funciones
incompletas, las inespecificaciones se tratan para aumentar el tamaño de los implicantes. Si las
especificaciones no pueden aumentarlos, no se tienen en cuenta.
Figura 4.8.- Ejemplo de diseño de una función incompleta utilizando el método del mapa.
3. Método de McCluskey
Si tenemos una función con tres salidas, F, G y H, y queremos hallar su suma de productos, los
implicantes de la función serán aquellos correspondientes a F·G·H, F·G, F·H, G·H, F, G y H, de
tal forma que siguiendo este orden no se añadan los implicantes repetidos. De igual forma, si la
implementación fuese en producto de sumas, los implicantes de la función serían los corres-
pondientes a F+G+H, F+G, F+H, G+H, F, G, H.
A partir de ahora, y salvo que se diga lo contrario, supondremos que la fórmula que
deseamos obtener deberá estar en suma de productos. En el caso de producto de sumas, el
desarrollo es paralelo considerando el principio de dualidad.
Una vez que tengamos todos los implicantes, creamos la denominada tabla de McClus-
key. En dicha tabla, cada fila corresponde a un implicante y cada columna corresponde a un 1
de cada función. Dicha tabla se divide por salida (según las columnas) e implicantes de cada
salida (según las filas). Se marcan los 1's obtenidos por cada implicante en cada salida. Un
ejemplo de dicha tabla se muestra en la figura 4.10. En ella podemos ver implicantes de una
sola salida (el implicante 1 y 2 para F1 y el n para F2) e implicantes para dos salidas (el impli-
cante 3).
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 61
F1 F2
mi mj mk . . . mn ma mb mi mn . . . ml
Implicante 1
Implicante 2
Implicante 3
Implicante n
La reducción de esta tabla nos llevará al número mínimo de implicantes que serán nece-
sarios para cubrir todos los mintérminos de las salidas, y por tanto a la fórmula mínima. La
minimización se reduce a la aplicación sucesiva de los criterios de esencialidad y de dominan-
cia, y eventualmente de equivalencia, hasta que estén cubiertos todos los 1’s de todas las sali-
das.
El criterio de esencialidad nos indica cuáles de los implicantes son esenciales, y por lo
tanto, deben aparecer en la fórmula mínima.
Un fila esencial es aquella cuyo implicante es esencial para alguna de las salidas.
Este implicante debe aparecer en la fórmula de la salida correspondiente. Una vez cogido
dicho implicante, se tacha la fila donde estaba y todas las columnas marcadas en dicha fila ya
que dichos 1's han sido obtenidos. Este proceso se repite para todas las filas esenciales. En la
tabla, la esencialidad se observa cuando existe alguna columna (algún 1) que únicamente tiene
una cruz (es cubierto por un solo implicante); luego el implicante de dicha cruz es esencial.
Una vez que ya no existan más filas esenciales, pasamos a aplicar los criterios de domi-
nancia. Este criterio nos indica los implicantes que son redundantes, y por lo tanto, no deberán
aparecer en la fórmula mínima.
Una fila o implicante A se dice que domina a otro B, representándose A ⊃ B, si todas
las marcas de B están contenidas en A, que a su vez tiene más.
En este caso se puede eliminar cualquiera tachando la fila correspondiente, no obstante por cri-
terios de minimalidad se elimina aquel implicante que tiene mayor coste (es decir, el que tiene
más variables de entrada).
62 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Supongamos que deseamos diseñar un circuito que tenga dos salidas definidas por f1=
∑m(1,3,7) y f2 = ∑m(2,6,7). Los implicantes de esta función se muestran en la figura 4.11.
F1·F2 AB
C 00 01 11 10
0 0 0 0 0 I1 = A·B·C
1 0 0 1 0
F1 AB
C 00 01 11 10
0 0 0 0 0 I2 = B·C
1 1 1 1 0 I3 = A’·C
F2 AB
C 00 01 11 10
0 0 1 1 0 I4 = B·C’
1 0 0 1 0 I5 = A·B
Seguidamente se aplica los criterios de dominancia (figura 4.12c). Dichos criterios hay
que aplicarlos sobre la fila completa, y no sobre cada salida por separado. De esta forma garan-
tizamos que se premia a los implicantes comunes a más de una salida, ya que tendrán más cru-
ces. En este caso, podemos observar que el implicante I1 domina a los otros dos. Por lo tanto,
estos últimos serán eliminados.
Después de eliminar los implicantes dominados, volvemos a aplicar los criterios de esen-
cialidad sobre la nueva tabla (figura 4.12d). En este caso observamos que el implicante I1 es
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 63
F1 F2 F1 F2
1 3 7 2 6 7 1 3 7 2 6 7
I1 I1
I2 I2
I3 I3
I4 I4
I5 I5
(a) (b)
F1 = I3 +
F2 = I4 +
F1 F2 F1 F2
1 3 7 2 6 7 1 3 7 2 6 7
I1 I1
I2 I2
I3 I3
I4 I4
I5 I5
(c) (d)
F1 = I3 + I1
F2 = I4 + I1
Figura 4.12.- Desarrollo de la minimización de la tabla de McCluskey. (a) Tabla original; (b)
después del cirterio de esencialidad; (c) después del criterio de dominancia; y (d) después de
la segunda aplicación del criterio de esencialidad.
esencial para ambas salidas, luego deberá aparecer en ambas fórmulas. Una vez hecho esto, se
elimina la fila de los implicantes esenciales (o las porciones de ellas), así como las columnas
donde tengan cruces.
Este procedimiento finalizará cuando no exista ninguna columna en la tabla. Con ello
garantizamos que todos los mintérminos de todas las funciones estarán cubiertos.
Se puede dar el caso de que una vez que hayamos utilizado los criterios de implicantes
esenciales y dominantes, no se puedan seguir aplicando ya que no existe ningún implicante
dominante sobre otro. Entonces llegamos a lo que se conoce como tabla de implicantes
cíclica. A partir de este momento no existe ningún método que nos dé una solución mínima.
Lo único que se puede hacer es elegir una implicante de forma arbitraria como esencial y
64 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
seguir con el procedimiento anterior. Esto se repite para todos los implicantes que queden y la
fórmula mínima se escoge como la de menor coste de todas las obtenidas.
Al igual que en el método del mapa, si en vez de querer obtener una fórmula como suma
de productos, queremos obtenerla como producto de sumas se opera de igual forma pero obte-
niendo los implicantes a partir de los ceros y en lugar del producto de las funciones se coge la
suma, como podemos ver en la figura 4.13
F1+F2 AB
C 00 01 11 10
0 0 1 1 0 I1 = B+C = (0,4)
1 1 1 1 0 I2 = A’+B = (4,5)
F1 AB
C 00 01 11 10
0 0 0 0 0 I3 = C =(0,2,4,6)
1 1 1 1 0
F2 AB
C 00 01 11 10
0 0 1 1 0 I4 = B = (0,1,4,5)
1 0 0 1 0 I5 = A+C’ =(1,3)
Figura 4.13.- Implicantes de una función multisalida para su implementación como pro-
ducto de sumas.
F2 F1 F2
F1
0 1 3 4 5 0 2 4 5 6 0 1 3 4 5
0 2 4 5 6
I3 I3
I4 I4
I5 I5
I2 *I2
I1 I1
(a) (b)
F1 = I3 · I2
F2 = I5 ·
F1 F2 F1 F2
0 2 4 5 6 0 1 3 4 5 0 2 4 5 6 0 1 3 4 5
I3 I3
I4 I4
I5 I5
*I2 *I2
I1 I1
(c) (d)
F1 = I3 · I2
F2 = I5 · I4
Figura 4.14.- Desarrollo de la minimización de la tabla de McCluskey. (a) Tabla original; (b)
después del cirterio de esencialidad; (c) después del criterio de dominancia; y (d) después de
la segunda aplicación del criterio de esencialidad.
Los métodos que hemos visto hasta ahora nos proporcionan una implementación mínima
sin tener en cuenta el comportamiento transitorio, es decir, sólo se centra en el comportamiento
estático. Para poder obtener un diseño libre de azares, solamente tenemos que hacer algunas
modificaciones sobre los métodos anteriores.
Para ello haremos uso de la premisa de que un par de 1’s (0’s) adyacentes no englobados
por el mismo implicante, constituirá un riesgo de azar. Luego para evitar todos los riesgos de
azares, debemos garantizar que no existan ninguna pareja de 1’s (0’s) adyacentes con la propie-
66 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
dad anterior. Con esta condición conseguimos eliminar todos los azares estáticos, y por lo tanto
todos los azares dinámicos (ya que están basados en ellos).
En este caso, tenemos que garantizar que no quede ninguna pareja de 1's adyacentes sin
que estén cubiertos por algún implicante común. Por lo tanto, en la fórmula lógica deberán
aparecer los implicantes esenciales y no esenciales necesarios para garantizar que no exista
ninguna pareja de 1’s (0’s) adyacentes que no esté cubierta por un mismo implicante.
Para añadir esta nueva peculiaridad más a la fórmula de conmutación, servirá toda la for-
mulación desarrollada en el apartado anterior, simplemente sustituyendo los 1’s (0’s) por las
parejas de 1’s (0’s) adayacentes.
F = ∑m(1,5,7,10,11,14,15)
AB
CD 00 01 11 10
D
00 0 0 0 0
C
01 1 1 0 0
11 0 1 1 1
A
10 0 0 1 1
En la figura 4.16 mostramos la tabla de McCluskey libre de azares del ejemplo anterior.
En este caso el implicante I1 no cubre ninguna columna, ya que dicho implicante sólo cubre el
mintérmino 7, pero no la pareja 3-7 ni la 6-7.
F1 F2
1-3 3-7 2-6 6-7
I1
I2
I3
I4
I5
Hasta ahora, hemos desarrollado los métodos para obtener una fórmula de conmutación
mínima que realiza una determinada función de conmutación. El siguiente paso, y último, con-
siste en pasar de la fórmula al circuito digital.
Este paso es simple y directo. Se procede de tal forma que se sustituye el operador que
aparece en la fórmula por su puerta equivalente. Luego el operador producto es sustituido por
una puerta AND, mientras que el operador suma es sustituido por una puerta OR. De igual
forma, cuando aparezca, también se sustituirá el operador negación por un inversor. Así, para
el caso de la función f = a·c + a'·d, la implementación sería la mostrada en la figura 4.17:
A
C
F
Las implementaciones de dos niveles son, como ya hemos dicho, suma de productos o
producto de sumas. La implementación para suma de productos (producto de sumas) se suelen
hacer con un primer nivel de puertas AND (OR) seguidas de una sola puerta OR (AND) con
tantas entradas como puertas AND (OR) existan.
Es decir, negamos la fórmula que deseamos convertir dejándola de la misma forma (suma de
producto o producto de sumas) que la fórmula original. Una vez realizada la primera negación,
se vuelve a negar, obteniendo directamente la expresión deseada.
Hasta ahora sólo hemos contado con el conjunto completo de las puertas AND, OR e
inversores. No obstante, existen más conjuntos completos como el de las puertas NAND y el
de las puertas NOR. Por lo tanto, a continuación nos planteamos la conversión de suma de pro-
ductos y producto de sumas a implementaciones NAND-NAND y NOR-NOR.
En el caso del producto de suma, se puede ver de igual forma que su conversión a NOR-
NOR es igualmente inmediata, como sucede con el caso anterior. Un ejemplo similar al ante-
rior se muestra en la figura 4.19.
Por último para pasar de una implementación NAND-NAND a una NOR-NOR (y vice-
versa), solamente se necesita pasar de la implementación de suma de productos a producto de
sumas (y viceversa).
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 69
A A A
C C C
F F F
D D D
A A A
C C C
F F F
D D
D
(b)
A A A
C C C
F F F
D D D
A A A
C C C
F F F
D D
D
(b)
1. Introducción.
Los bloques combinacionales que se suelen utilizar en este tipo de diseño suelen contar
con tres tipos de señales: señales de control (ya que el bloque tiende a tener más de una opera-
ción, seleccionándose la función deseada con estas señales entre otras cosas), señales de
entrada de datos y señales de salida de resultados. Dentro de las señales de control más comu-
nes podemos encontrar:
• Señales de inhibición/desinhibición (CS).- son señales que impiden o permiten la ope-
ración del bloque.
• Señales de selección de operación.- determinan cuál de las operaciones implementa-
das en el bloque va a ejecutarse.
Un símbolo de un bloque MSI genérico se puede ver en la figura 5.1. En estos bloques, los ope-
randos suelen tener más de un bit, luego al operando se suele representar por una palabra, es
decir, el número de bits que tiene un operando. La forma de representar esta situación consiste
en utilizar una línea de trazo grueso para las palabras; y en el caso de que se quiera identificar
el número de bits de la palabra, a la línea anterior se le cruza una línea oblicua encima de la
cual aparece este tamaño.
Habitualmente, la utilización de estos bloques suele estar supeditada a una mayor com-
plejidad del sistema a implementar. Así mismo, la metodología empleada en la utilización de
estos bloques es diferente a la basada en la utilización de puertas lógicas. A groso modo, se
72 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
n
entrada salida
control
CS
No obstante tenemos que aclarar que esta clasificación no es estándar, ya que algunos autores
introducen los bloques aritmético-lógicos, dentro de los bloques de camino de datos. También
los dispositivos de entrada-salida no suelen aparecer en los diagramas de flujo, no obstante, su
utilización es necesaria en la implementación final.
2. Bloques aritmético-lógicos.
Entrada
Proceso 1
Decisión
Proceso 1 Proceso 1
Decisión
Proceso 1
Salida
No obstante, como en los números reales, una resta es la suma de un número con otro negativo,
los bloques sumadores suelen tener la funcionalidad de realizar la resta, denominándose gene-
ralmente sumador-restador.
La experiencia ha constatado que la forma serie es más efectiva en determinados casos. Esta
forma se basa en los denominados sumadores completos, sumadores de tres bits (un bit del pri-
mer dato, un bit del segundo dato y el acarreo de la suboperación anterior). Éste tendrá como
salidas, la salida suma y la salida acarreo. Su tabla de verdad es la mostrada en la figura 5.3.
Por lo tanto un bloque sumador de 4 bits construido con sumadores completos podría
estar formado de la forma mostrada en la figura 5.4. No obstante, además de esta posible
implementación, existen otras muchas. La diferencia entre ellas suele radicar principalmente
en la generación del acarreo de salida, ya sea de forma serie (como el mostrado) o de forma
paralela.
∑ = A ⊕ B ⊕ Cin
A B Cin ∑ Cout
Cout = A·B + (A+B)·Cin
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0 A
0 1 1 0 1 ∑
1 0 0 1 0 B
1 0 1 0 1
1 1 0 0 1 Cin Cout
1 1 1 1 1
A0 A A1 A A2 A A3 A
∑ ∑ ∑ ∑
B0 B B1 B B2 B B3 B
∑0 ∑1 ∑2 ∑3 ∑4
la funcionalidad del bloque sumador de 4 bits, es la misma que el de 1 bit, pero en las señales
de datos y de salida en lugar de ir 1 bit, va un bus de 4 bits.
Para el caso de la resta, podemos operar de dos formas (como ya vimos): generar un blo-
que restador o utilizar un bloque sumador con el complemento a dos del sustraendo.
Para el caso de implementar el bloque restador, nos basaremos en la resta de tres bits.
Tanto su tabla de verdad como una de sus fórmulas logicas se muestran en la figura 5.5.
Como vemos, el bloque restador solamente se diferencia del sumador completo en que
una entrada (el minuendo) en el desbordamiento viene complementada. Por lo tanto, si se
añade una nueva señal que determine la operación a realizar (suma o resta), la fórmula corres-
pondiente al bloque sumador-restador sería:
S = A ⊕ B ⊕ Cin
Cout = B·Cin + (A ⊕ sel)·(B + Cin)
A B Oin R Oout
0 0 0 0 0 A
R = A ⊕ B ⊕ Oin
0 0 1 1 1 R
Oout = A·B + (A+B)·Oin
0 1 0 1 1 B
0 1 1 0 1
1 0 0 1 0
Oin Oout
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
igualar la representación hay que obtener un bloque de generación de complemento a dos. Este
bloque invierte el número, bit a bit, y le suma 1.
2A
i = Ai ⊕ Ci-1
Ci = Ai + Ci-1
Otro problema, siendo el principal, es que este circuito sólo es válido para números naturales
ya que no es conmutativo como debe ocurrir en el caso de los números enteros.
Los comparadores son los circuitos que generan las señales para decidir entre un camino
de datos u otro. Por lo general, estos bloques suelen tener tres salidas que determinan si las
entradas son iguales (A=B), si la entrada A es mayor que B (A>B), o si la entrada A es menor
que B (A<B).
76 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
S/R
B1
B2
B3
B
∑1
BSB
∑ ∑2
A1 ∑3
A2 BS∑
A3 A
BSA
Cin Cout
Como no se van a tener comparadores de todas las longitudes de bits, es necesario poder
generar un comparador de m bits a partir de otros de n bit. Para poder conectar varios compara-
dores, y formar uno con mayor número de bits, también suelen tener tres entradas especiales
que nos indican el estado de los bits menos significativos (=,<,>). Estas tres entradas deben ser
tales que sólo y sólo una de ellas debe ser ‘1’ y ninguna otra combinación se puede dar por lo
que la trataremos como inespecificaciones. Para el caso de que se empiece, la entrada = se
colocará a nivel alto (suponiendo que antes de conocer los datos a comparar, ambos se conside-
rarán iguales). La tabla de combinaciones de este bloque se muestra en la tabla 5.1.
Por lo tanto, las ecuaciones lógicas que gobiernan este comportamiento pueden ser:
(A=B) = (a'·b + a·b')'·(a=b)
(A<B) = (a<b)·(a·b')' + a'·b
(A>B) = (a>b)·(a'·b)' + a·b'
a<b
A<B
a
A=B
a=b
b
A>B
a>b
En este bloque, se trata de llevar al extremo la funcionalidad multiple del bloque. Se trata
de un bloque que realiza varias funciones, tanto aritméticas como lógicas, en función de unas
señales de control. El símbolo de una ALU típica de 4 bits se muestra en la figura 5.9.
5 CP
M(0-4)
CG
CI CO
A=B
4
A 4
R
4
B
La señal M selecciona una operación entre las 32 (25) posibles para este caso. Las seña-
les CP y CG son necesarias para obtener la señal de acarreo adelantado, CO es la señal de aca-
rreo de salida y (A=B) genera una salida de igualdad. Una tabla de operaciones típicas se
muestra en la tabla 5.2.
M(0) = 0 M(0) = 1
R=A R = A'
R=A+B R = (A + B)'
R = A' · B R = A' · B
R = -1 R=0
R = A más A'·B R = (A · B)'
R = (A+B) más A'·B R = B'
R = A menos B menos 1 R=A+B
R = A·B' menos 1 R = A·B'
R= A más A·B R = A' + B
R = A más B R = (A + B)'
R = (A+B') más A·B R=B
R = A·B menos 1 R=A·B
R = A más A desplazado R=1
R = (A+B) más A R = A + B'
R = (A+B') más A R=A*B
R = A menos 1 R=A
Tabla 5.2. Tabla de operaciones típicas de una ALU(donde las operaciones denominadas con
letras son aritméticas, y las designadas con símbolos son lógicas).
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 79
Una vez que hemos visto los principales bloques que procesan los datos, el siguiente
paso será ver los bloques que dirigen las diferentes señales por el camino deseado, es decir, los
bloques de camino de dato. En este caso podemos encontrarnos con dos casos bien diferencia-
dos:
• Exista una bifurcación o una unión de varios caminos. Luego debe existir unas señales
(que probablemente vendrán de un comparador) que indique los caminos que se
deben conectar.
• Exista un solo camino, pero tan largo que se produzcan fallos de transmisión. Debido
a la no idealidad de los dispositivos (incluidos los cables), un cable tendrá una resis-
tencia y un condensador parásito asociado cuyos valores van a depender de la longi-
tud. Por lo tanto, si el cable es excesivamente largo (estos dispositivos parásitos
tendrán valores relativamente grandes) el valor lógico se puede atenuar lo suficiente
como para que el valor lógico de un extremo del cable sea diferente al del otro
extremo, como se puede ver en la figura 5.10.
Valor lógico
Dentro de estos bloques apropiados para la primera situación se pueden destacar los
demultiplexores, multiplexores; mientras que para la segunda situación se pueden destacar los
bufferes o drivers y transceptores.
3.1. Demultiplexores.
donde n son el número de bits que tiene como entrada (ya que el canal de entrada puede ser un
bus que coincidirá con la anchura de cada canal de salida) y m son los diferentes canales de
salida tal que m = 2s (donde s es el número de bits de selección. Un símbolo demultiplexor 1:4
se muestra en la figura 5.11.
Q0 0 Q0
1 Q1
Q1
A 2 Q2
A 3 Q3
Q2 0 1
Q3
S0 S1
A S1 S0 Q0 Q1 Q2 Q3
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 1 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
Tabla 5.3. Tabla de verdad de un demultiplexor.
Q3
Q2
Q1
A
S1 Q0
S0
3.2. Multiplexores.
donde m es el número de canales de entrada, que está intimamente relacionado con el número
de señales de selección, y q es el número de bits correspondiente al canal de salida y por tanto
a todos los canales del dispositivo. Un símbolo de este componente se muestra en la figura
5.13.
A0 A0 0
A1 1
A1
A2 2 Q
Q A3 3
A2 10
A3
S1 S0
A0 A1 A2 A3 S1 S0 Q
A0 A1 A2 A3 0 0 A0
A0 A1 A2 A3 0 1 A1
A0 A1 A2 A3 1 0 A2
A0 A1 A2 A3 1 1 A3
Tabla 5.4. Tabla de verdad de un MUX 4:1.
A3
A2
Q
A1
A0
S1
S0
Es interesante observar que la fórmula anterior tiene mucha similitud con la fórmula de
mintérminos, donde las señales de entrada están conectadas a las entradas de selección y los
canales de entrada activan (con un ‘1’) o desactivan (con un ‘0’) los mintérminos asociados.
También se puede introducir una de las señales de entrada por los canales de entrada del multi-
plexor, reduciendo así el tamaño de éste. Luego, tenemos una nueva metodología para imple-
mentar fórmulas lógicas utilizando este tipo de dispositivos.
‘1’ 0
1
2 ‘1’ = x0 + x0’
3 0
4 1 x0
F = x2’·x1’·x0’ + x2’·x1’·x0 + x2’·x1·x0 2 x0
5
6 + x2·x1’·x0 + x2·x1·x0’ 3 x0’
‘0’ 7 1 0
0 1 2
x2 x1
x0 x2
x1
La función principal de este dispositivo consiste en evitar la pérdida de los valores lógi-
cos debido a la no idealidad de las conexiones, es decir, su misión principal será la regenera-
ción de las señales digitales. Su símbolo y posible implementación es mostrado en la figura
5.16.
res. Una peculiaridad de estos dispositivos (como de todos los de este grupo) es que el valor de
salida tiene que ser siempre igual al de entrada.
Este elemento sólo es válido para canales en los que la información vaya en un sentido,
es decir, sea unidireccional puesto que los inversores también poseen esta característica.
Luego, para una correcta conexión, estos dispositivos deben de ser conectados cada cierta lon-
gitud de la última conexión. Esta longitud depende de los cables utilizados y es una especifica-
ción que debe dar el fabricante.
Dentro de estos dispositivos, existe uno de especial importancia denominado buffer tries-
tado. En la figura 5.17 mostramos el símbolo y un posible esquema lógico de dicho elemento.
Su funcionamiento es el mismo de un buffer normal cuando la señal sel está activa.
sel
sel
No obstante, cuando la señal sel está inactiva, la salida del dispositivo toma un estado
denominado alta impedancia. Este estado de alta impedancia significa que no existe ninguna
conexión hasta un ‘0’ o un ‘1’. Si dicha salida está conectada a otra señal, el valor en dicho
punto será el que coloque esa otra señal. En caso de que no exista ninguna conexión, el valor
en dicho punto será el último (esta situación tiene el problema de que cualquier interferencia
externa puede producir un cambio del valor).
3.4. Transceptores.
En contraposición con los bufferes, los transceptores son los dispositivos empleados
para buses bidireccionales, es decir, sistemas que permiten la transmisión de la información en
ambos sentidos. Por lo tanto, debemos tener una señal que nos indique el sentido del flujo de la
información en cada momento. El símbolo y una posible implementación son mostrados en la
figura 5.18.
La operación de este dispositivo es similar al anterior con la salvedad de que existe una
nueva señal, de control, que indicará el sentido de la transmisión. De hecho, el transceptor está
compuesto por dos buffer triestado, es decir, un buffer con la posibilidad de no conexión.
84 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
sel
sel
sel
4. Bloques de entrada/salida.
4.1. Codificadores.
Considerando en primer lugar la entrada de datos, los codificadores son los dipositivos
que acondicionan los datos introducidos por el usuario para que los circuitos digitales del inte-
rior de la aplicación los comprendan. Existen tantos codificacores como códigos binarios y for-
mas de expresar los datos por el usuario; no obstante sólo consideraremos el código binario
natural, que es el más utilizado. La denominación de estos dispositivos es la siguiente:
COD n:m
Para el caso del código binario natural, y algunos otros, se cumple la relación entre el
número de entradas y de salidas que 2m = n; no obstante esta relación no se produce en la
mayoría de los códigos, siendo esta la razón de que haya que identificar los números de canales
de entrada y de salida.
A0 A1 A2 A3 Q1 Q0
1 -- -- -- 0 0
Q1 = A2 + A3
-- 1 -- -- 0 1
-- -- 1 -- 1 0
Q0 = A1 + A3
-- -- -- 1 1 1
Tabla 5.5. Tabla de verdad y posibles ecuaciones lógicas para un COD 4:2.
Para evitar este tipo de problemas, la solución que se le ha dado consiste en añadir un
régimen de prioridades a los diferentes canales, de tal forma que si se selecciona más de un
canal de entrada, la combinación obtenida a la salida corresponderá al canal más prioritario. Si
elegimos como canales prioritarios los de mayor peso, una posible tabla será la mostrada en la
tabla 5.6:
A0 A1 A2 A3 Q1 Q0
1 0 0 0 0 0
Q1 = A2 + A3
-- 1 0 0 0 1
-- -- 1 0 1 0
Q0 = A1·A2' + A3
-- -- -- 1 1 1
Tabla 5.6. Tabla de verdad y posibles ecuaciones lógicas para un COD 4:2 con prioridad de los
canales de menor peso.
Por lo tanto, a la variedad de codificadores también hay que sumar la variedad de priori-
dades, además de los diferentes códigos binarios y de los códigos utilizados por los usuraios.
Todas estas características estarán disponibles en las hojas de especificaciones.
4.2. Decodificadores.
Para acondicionar los datos obtenidos por el circuito lógico para la clara compresión por
el usuario, tenemos el decodificador. Al igual que sucedía en el caso de los codificadores,
habrá tantos decodificadores como códigos binarios y formas de expresar los datos por el usua-
rio. La denominación de estos dispositivos es la siguiente:
DECOD n:m
donde n es el número de bits devuelto por el circuito y m es el número de canales. Por la misma
razón que evidenciamos en los codificadores, de nuevo, en los decodificadores es necesario
indicar el número de entradas y salidas. Los decodificadores de códigos binarios naturales se
pueden ver como demultiplexores donde el canal de entrada está conectado a un valor fijo. Este
hecho se muestra con la comparación de las tablas de combinaciones de ambos dispositivos.
A0 A1 Q0 Q1 Q2 Q3
0 0 1 0 0 0 Q0 = A1'·A2'
1 0 0 1 0 0 Q1 = A1·A2'
0 1 0 0 1 0 Q2 = A1'·A2
1 1 0 0 0 1 Q3 = A1·A2
Tabla 5.7. Tabla de verdad y posibles ecuaciones lógicas para un DECOD 2:4.
Es interesante observar que cada una de las salidas corresponde a un mintémino de una
función de n entradas. Este hecho nos proporciona una nueva metodología para implementar
funciones lógicas sin necesidad de minimizarlas. Por ejemplo, la implementación de la función
f (w, z, y, x) = ∑ m(0,2,8,10,15) utilizando decodificacores y puertas lógicas se muestra en la
figura 5.19. Cualquiera de las tres implementaciones son equivalentes; la diferencia entre las
0 0
1 1
2 2
3 3
4 4
5 5
x 1 6 x 1 6
y 2 7 y 2 7
z 4 8 F z 4 8 F
w 8 9 w 8 9
10 10
11 11
12 12
13 13
14 14
15 15
0
1
2
3
4
5
x 1 6
y 2 7
z F
4 8
w 8 9
10
11
12
13
14
15
dos primeras consiste en que el primer codificador es activo a nivel alto, es decir, el canal
activo tomará el valor ‘1’ mientras que el resto el valor ‘0’, y el segundo es activo a nivel bajo.
Luego la puerta lógica en los dos casos deberá ser diferente: en el primero, como lo que tene-
mos son los 1’s, éstos se deberán sumar; y en el segundo, como tenemos los ‘0’, estos se ten-
drán que multiplicar (la negación es debida a que al coger los 1’s como 0’s, estamos
implementado realmente la función complementada). En el tercer caso usamos un decodifica-
dor activo a nivel bajo, conectando los 0’s de la función (eligiendo su expresión como producto
de maxtérminos, de ahí que no haya que complementarla).
Estos decodificadores son útiles cuando queremos mostrar las salidas en un led, por
ejemplo. No obstante cuando se trata de números se utilizan los decodificadores de 7 segmen-
tos que suelen estar unidos a un display en el que aparecerá la forma del número decimal. Estos
decodificadores muestran del 0 al 9, mientras que el resto de dígitos puede variar según el tipo
de decodificador. Los números aparecerán con la forma mostrada en la figura 5.20.
2
1 3
0
4
5 6
Lo mismo que encontramos el display de 7 segmentos, existen otro display que no sólo
“dibujan” números sino que incluyen letras y otros caracteres especiales.
B3 B2 B1 B0 Q6 Q5 Q4 Q3 Q2 Q1 Q0
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 1 0 0 1 0 0 0
0 0 1 0 0 1 1 1 1 0 1
0 0 1 1 1 1 0 1 1 0 1
0 1 0 0 1 0 0 1 0 1 1
0 1 0 1 1 1 0 0 1 1 1
0 1 1 0 1 1 1 0 1 1 1
0 1 1 1 1 0 0 1 1 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 0 1 1 1 1
1 0 1 0 0 1 1 0 0 0 1
1 0 1 1 1 1 0 0 0 0 1
1 1 0 0 0 0 0 1 0 1 1
1 1 0 1 0 1 0 0 1 1 1
1 1 1 0 0 1 1 0 0 1 1
1 1 1 1 0 0 0 0 0 0 0
Tabla 5.8. Tabla de verdad del decodificador de 7 segmentos.
El caso del multiplexor es similar al del demultiplexor. La única diferencia entre ambos
elementos consiste en que la salida cuando el bloque no está seleccionado es un valor de alta
impedancia o no conectado; mientras que en el demultiplexor, es el valor fijo de no selección.
Este hecho, el valor de alta impedancia permite la unión directa de todas sus salidas. En el caso
de no soportar el valor de alta impedancia, las salidas habrá que unirlas con puertas OR (si el
valor de salida de no conexión es ‘0’) o puertas AND (si el valor de salida de no conexión es
‘1’). En la figura 5.21 mostramos uno de estos últimos casos.
S0S1 S1S0
CS0 Q8 A8 0 CS
1 Q9 A9 1
2 Q10 3 A10 2
3
3 Q11 A11 3
S3 2 2 S3 2 2 10
01
S2 1 1 S2 1 1
0 S0S1 0 S1 S0 F
Q4 A4 0 CS
CS0
1 Q5 A5 1
2 Q6 A6 2
3 Q7 A7 3
10
01
S0S1 S1 S0
A0 0 CS
CS0 Q0
A1 1
1 Q1 2
A2
A 2 Q2 A3 3
3 Q3
10
01
S1 S0
S0S1
Para la unión de los codificadores se hacen necesrias una serie de señales adicionales que
no suelen estar presentes en los dispositivos estándares. Entre estas señales podemos encontrar
las siguientes:
• Señal que determine si el codificador está habilitado y se ha seleccionado un canal de
entrada.
• Señal que determine si el codificador está habilitado y no se ha seleccionado un canal
de entrada.
90 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
6. Implementación de un sistema
Una vez que ya conocemos los dispositivos MSI más usuales, el sisguiente paso consiste
en obtener una metodología para la implementación de sistemas con este tipo de dispositivos.
Ya hemos visto varias metodologías (utilizando multiplexores y decodificadores) para imple-
mentar fórmulas lógicas; no obstante, en este apartado nos vamos a centrar en la implementa-
ción de sistemas complejos, cuyo paso a fórmulas lógicas no sea viable.
Para llevar a cabo la implementación de un sistema, los pasos a seguir son los siguientes:
• Realización del diagrama de flujo que modele el sistema que se desea implementar.
• Determinación de los elementos necesarios para la implementación de dicho
diagrama.
• Conexión de los diferentes elementos
Vamos a ilustrar este proceso con un ejemplo: Se desea implementar un sistema que devuelva
el valor absoluto de la resta de dos números, codificados en BCD.
Un posible diagrama de flujo de datos puede ser el mostrado en la figura 5.22, aunque
debemos notar que no es el único. La determinación de un diagrama que nos conduzca a una
implementación más óptima depende de la pericia del diseñador..
Pasar a binario
A>B?
R=A-B R=B-A
Pasar a decimal
• Dos restadores.
• Por último, será necesario un decodificador de binario a BCD natural para que el
usuario puede entender los resultados obtenidos.
4
A
4
A-B
4
A Codificador B 4
a binario 0 Decodificador
4
4 4 a decimal
A 1
Codificador 4
B A-B
a binario 4
B
4 A
4
B
Figura 5.23.- Circuito que implementa el comportamiento del diagrama de la figura 5.22.
Un nuevo diagrama que implementa el mismo comportamiento pero de una forma más
óptima es el mostrado en la figura 5.24(a). En este último diagrama, necesitaremos los siguien-
tes bloques:
• Será necesario un codificador de BCD a binario natural para la entrada de datos
• Será necesario un comparador para obtener el mayor de los dos operandos para que
actue de sustraendo, así mismo se necesitarán dos multiplexores para la bifurcación
de las dos entradas del restador.
• Un restador.
• Por último, será necesario un decodificador de binario a BCD natural para que el
usuario puede entender los resultados obtenidos
Nos encontramos ante una solución más óptima porque el coste de los restadores es
mayor que el de los multiplexores.
92 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Pasar a binario
A>B?
X=A X=B
Y=B Y=A
R=X-Y
(a)
Pasar a decimal
4
0 4
4 4
A Codificador 1
a binario A
4 Decodificador
A-B a decimal
4 4
0 4 B
Codificador 4
B a binario 1
4 A
(b)
4
B
Figura 5.24.- (a) Diagrama de flujo del valor absoluto de la resta, y (b) el circuito que lo
implementa.
TEMA VI: DISEÑO PROGRAMABLE
Continuando con los diferentes tipos de diseño, en el presente tema vamos a introducir-
nos en el denominado diseño programable. Este nuevo diseño apareció gracias a los continuos
avances en la tecnología de integración, y a la orientación hacia nuevos dispositivos más gene-
rales.
Este tipo de diseño es aquel en el que los elementos de los que disponemos para construir
nuestro circuito son dispositivos programables.
1. Introducción.
Es decir, contiene una serie de elementos lógicos (por lo general puertas AND, OR e inverso-
res) que pueden configurarse en cualquier función lógica soportada (generalmente limitada al
número de entradas y salidas).
Físicamente, desde el exterior, a estos dispositivos no hay porqué hacerles nada, sino que
el hecho de que implemente el comportamiento de una función u otra se debe a la programa-
ción de dicho dispositivo. Generalemente, la programación de estos dispositivos consiste en la
supresión de determinadas conexiones realizadas mediante un diodo o un transistor que actúan
como fusibles.
La principal característica de las memorias ROM (nombre genérico) es que son memo-
rias programables no volátiles, es decir, cuando se desconecta de la tensión de polarización, los
datos almacenados no desaparecen, a diferencia de las memorias RAM.
Las memorias ROM están formadas por una matriz de puertas AND, que generan todos
los mintérminos posibles correspondientes al número de entradas, por lo que funcionalmente
hablando equivale a un decodificador. Las salidas de estas puertas son conectadas, a través de
un fusible, a una puerta OR por cada bit de salida. Por lo tanto, este dispositivo se caracteriza
por tener una matriz de puertas AND fija, y una matriz de puertas OR programable. Debido a
que están disponibles todos los mintérminos de las posibles funciones, este tipo de dispositivos
entrarán dentro del tipo de dispositivos universales, ya que se puede implementar cualquier
función con el número de entradas del dispositivo. La notación de las memorias ROM es:
ROM 2n x m
Al igual que sucedía con los bloques MSI, estos dispositivos tienen señales de control y
sólo existen para un cierto número característico de entradas y salidas. Por lo tanto deberíamos
saber cómo aumentar el número tanto de entradas como de salidas, para lo cual utilizaremos la
señal de habilitación.
De forma previa a esta conexión debemos indicar que las salidas de estos dispositivos
muestran una codificación triestado, a diferencia de los dispositivos MSI. Esta codificación
tiene tres estados posibles, los cuales son:
• Nivel 1, que se corresponderá con el ‘1’ lógico de cualquier dispositivo digital. Este
nivel aparece cuando el dispositivo está habilitado.
• Nivel 0, que se corresponderá con el ‘0’ lógico de cualquier dispositivo digital. Este
nivel aparece cuando el dispositivo está habilitado.
• Nivel de alta impedancia, que es un nivel de no conexión al interior del dispositivo.
Por lo tanto, el nivel que tendrá dicho nodo vendrá de su conexión a otro punto del cir-
cuito. Este nivel aparece cuando el dispositivo está deshabilitado.
Por lo tanto, podemos tener dos salidas conectados a un mismo punto siempre y cuando única-
mente una de las salidas tenga un nivel 1 u 0 y el resto se encuentren en alta impedancia (ya
que indicará que realmente no están conectadas a las salidas). En el caso de que se conectasen
dos niveles diferentes (‘0’ y ‘1’) a un mismo nodo, en dicho nodo aparecería un divisor de ten-
TEMA VI: DISEÑO PROGRAMABLE 95
Matriz OR programable
F2(A,B)
sión; por lo que en dicho nodo no existiría nigún valor lógico definido, ya que estaría el nivel
de tensión (‘1’+’0’)/2.
Por ejemplo, en la figura 6.2 mostramos un dispositivo de 2n+p x (m·q) a partir de módulos
ROM 2n x m.
96 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
n n
Q
A0...An-1 A0...An-1
CS D0...Dm-1 CS D0...Dm-1
m m
0
1
n n
Q
A0...An-1 A0...An-1
p
CS D0...Dm-1 CS D0...Dm-1
m m
2p-3
2p-3
2p-1
n n
Q
A0...An-1 A0...An-1
CS D0...Dm-1 CS D0...Dm-1
m m
Figura 6.2.- Aumento del número de entradas y salidas de una memoria ROM.
Una vez que hemos visto el dispositivo programable universal por excelencia, pasaremos
a ver los principales dispositivos programables no universales combinacionales. Al igual que
sucedía con las memorias ROM, estos dispositivos se basan en una implementación en dos
niveles en forma de suma de produtos.
Los dispositivos PAL están formados por una matriz de puertas AND programables
(podemos decidir cuáles serán las entradas a estas puertas) y una matriz fija de puertas OR.
Entre las principales características de estos dispositivos, podemos encontrar las siguientes
(que serán características de funcionamiento y limitaciones):
TEMA VI: DISEÑO PROGRAMABLE 97
• Al tener una matriz de puertas OR fijas, las entradas a estas puertas OR deben ser
independientes. Por lo tanto, un término producto sólo puede estar conectada a una
sola salida, a diferencia de las memorias ROM.
• Una de las principales limitaciones de estos dispositivos (y la razón por la que no son
universales) es el número de términos producto. Una decisión que hay que tomar es el
número de entradas de los términos suma. El número de estas entradas suele cumplir
la siguiente relación: si tenemos n términos producto y m salida, cada término suma
tiene n/m entradas. Por lo tanto, todas las salidas tendrán el mismo número de térmi-
nos productos.
La notación de una PAL suele incluir el número de entradas, su número de términos pro-
ductos y su número de salidas, de la forma:
PAL(n x q x m)
A
B
A B
Líneas
AND
F1 F2
Líneas OR
F1
F2
Al igual que sucedía con las memorias ROM, estos dispositivos pueden ser insuficientes
en número de entradas y/o en número de salidas; a lo que hay que añadirle su nueva limitación,
es decir, el número de términos producto. La ampliación de los módulos PAL en estos casos se
trata de la misma forma que las memorias ROM, es decir,
• Para aumentar el número de salidas, se conectan en paralelo varias PAL's con las mis-
mas entradas.
• Para aumentar el número de entradas, se conectan varias PAL's mediante un decodifi-
cador, que tendrá como entradas aquellas que se desean añadir.
98 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• Para aumentar el número de términos producto, las salidas de varios módulos PAL se
conectan a través de una puerta OR (aprovechando la propiedad asociativa de dicha
operación).
Así, si se quiere obtener un módulo PAL (n x 2·q x m) a partir de módulos PAL (n x q x m), el
esquema sería el mostrado en la figura 6.4.
PAL(NxQxM)
n F1
F1
Fm
PAL(NxQxM)
n F1
Fm
Fm
También podemos observar como reducir el tamaño del esquema comparitnedo una
misma fila de entradas para dos de ellas. También podemos apreciar que existen una serie de
patillas que pueden ser configuradas como entrada o como salida (desde la patilla 13 a la 18), a
través de un buffer triestado.
Junto con los dispositivos PAL y las memorias ROM, lso dispositivos PLA forman los
principales dispositivos programables combinacionales. Estos dispositivos pueden verse como
la unión de las memorias ROM y los dispositivos PAL, en el sentido de que pueden progra-
marse tanto la matriz de puertas AND como la matriz de puertas OR. La denominación es
semejante a la de los dispositivos PAL:
PLA (NxQxM)
A
B
A B
Líneas
AND
F1 F2
Líneas OR
F1
F2
La diferencia del símbolo con respecto al del dispositivo PAL consiste en que las
conexiones de los términos suma no son fija y se identifican de otro modo, como veremos pos-
teriormente.
Las ampliaciones del número de entradas, salidas y/o productos AND se realiza de igual
forma que en el caso de los módulos PAL.
En el caso de los módulos PAL, la fórmula deberá ser minimizada como suma de produc-
tos para ocupar el número mínimo de puertas AND (principal limitación en este tipo de dispo-
sitivos). En cambio, esta fórmula mínima deberá ser tratando cada salida como una función
independiente, ya que no se puede compartir un mismo término producto en varias puertas OR.
Por lo tanto, no se podrá minimizar empleando el método de McCluskey.
TEMA VI: DISEÑO PROGRAMABLE 101
En el caso de los módulos PLA, al igual que ocurría con los módulos PAL, la fórmula
deberá ser minimizada para ocupar el número mínimo de puertas AND. No obstante, y a dife-
rencia de los módulos anteriores, la función sí tiene que ser tratada como multisalida ya que las
salidas de las puertas AND van a todas las puertas OR. Por lo tanto, esta minimización deberá
ser realizada a través del método de McCluskey.
Dispostivo PAL Programable Fija e independiente Suma de productos mínima con sal-
idas independientes
6. Ejemplo.
Por ejemplo, vamos a implementar una función lógica con estos dispositivos, además de
indicar los requerimientos mínimos para cada uno de los dispositivos. La función a implemen-
tar tendrá dos salidas, mostradas a continuación:
F1(A,B,C) = ∑ m(1,3,7)
F2(A,B,C) = ∑ m(2,6,7)
En el caso de memorias ROM, los requerimientos vendrán dados por el número de entra-
das y de salidas. Por lo tanto, necesitaremos como mínimo un módulo ROM(8x2), obteniendo
el esquema mostrado en la figura 6.7.
0
1 F1
2
C 1
3
B 2
4 F2
A 4
5
6
7
Figura 6.7.- Diseño de la función con salidas F1(A,B,C) = ∑ m(1,3,7) y F2(A,B,C) = ∑ m(2,6,7) mediante
memorias ROM.
La implementación mínima se debe realizar tomando las salidas por separado. Utili-
zando el método del mapa, obtenemos las fórmulas de la figura 6.8.
F1 F2
AB AB
C 00 01 11 10 C 00 01 11 10
0 0 0 0 0 0 0 1 1 0
1 1 1 1 0 0 0 1 0
1
Figura 6.8.- Obtención de las fórmulas mínimas de las funciones F1(A,B,C) = ∑ m(1,3,7) y F2(A,B,C) = ∑
m(2,6,7) utilizando el método del mapa.
Luego el PAL mínimo que se necesitaría será PAL(3x4x2), aunque para ilustrar que
debemos tener el mismo número de entrada de todos los términos suma, aunque no se utilicen,
hemos empleado un PAL(3x6x2). De esta forma el dispositivo PAL quedaría del modo mos-
trado en la figura 6.9.
A B C
F1=A’C+BC
F2=AB+BC’
Figura 6.9.- Diseño de la función con salidas F1(A,B,C) = ∑ m(1,3,7) y F2(A,B,C) = ∑ m(2,6,7) mediante
dispositivos PAL.
TEMA VI: DISEÑO PROGRAMABLE 103
Al igual que sucedía con el dispositivo PAL, debemos obtener primero la fórmula antes
de poder especificar los requerimientos mínimos. Por lo tanto, empezaremos por la obtención
de la fórmula mínima, mostrada en la figura 6.10. Luego, las fórmulas mínimas son:
F1 = A'·C + A·B·C
F2 = B·C' + A·B·C
F1 AB F2 AB F1·F2
AB
C 00 01 11 10 C 00 01 11 10 C 01
00 11 10
0 0 0 0 0 0 0 1 1 0 0 0 0 0 0
1 1 1 1 0 1 0 0 1 0 0 0 1 0
1
I4 = A’·C I2 = B·C’
I3 = A·B I1 = A·B·C
I5 = B·C
F1 F2
1 3 7 2 6 7
A'·C X X
B·C X X
B·C' X X
A·B X X
A·B·C X X
Figura 6.10.- Obtención de las fórmulas mínimas de la función con salidas F1(A,B,C)=∑ m(1,3,7) y
F2(A,B,C)=∑ m(2,6,7).
Por lo tanto, el dispositivo mínimo debe ser PLA(3x3x2). Aunque para hacer una compa-
ración con el dispositivo PAL utilizado en el caso anterior, vamos a utilizar un dispositivo PLA
con las mismas características, es decir, PLA(3x6x2). De esta forma el dispositivo PAL queda-
ría del modo mostrado en la figura 6.11.
A B C
F1=A’C+ABC
F2=ABC+BC’
Figura 6.11.- Diseño de la función con salidas F1(A,B,C)=∑ m(1,3,7) y F2(A,B,C)=∑ m(2,6,7) mediante dis-
positivos PLA.
104 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Cuando el diseñador implementa las puertas (a medida) que necesita para su diseño, se
dice que ha realizado un diseño full-custom. Estas puertas estarán diseñadas utilizando elemen-
tos de circuitos, principalmente transistores. En este diseño no nos tenemos que limitar a utili-
zar las puertas típicas, sino que podemos crear las puertas lógicas que necesitemos. Un
ejemplo de puerta que no suele estar disponible es la que tiene como fórmula:
F = A·B + C
A partir de los transistores, podemos crear una puerta lógica que tenga dicha funcionalidad, sin
tener que utilizar una puerta AND y una puerta OR.
1. Introducción.
En esta estructura estarán involucrados tanto los componentes que entran en juego, así como
sus valores (ya que si cambiamos estos valores, pasaremos a otra familia diferente), ya que los
parámetros van a depender de éstos.
Al centrarnos en Electrónica Digital, no debemos perder de vista que las señales sólo
pueden tomar dos valores diferentes. Por lo tanto, los elementos principales de estas familias
lógicas deben tener como mínimo dos regiones de operación bien diferenciadas. Esta situación
nos lleva a la utilización de dispositivos semiconductores, aunque en los principios se utiliza-
ron válvulas y conmutadores electrícos (que presentaban un comportamiento similar).
106 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Una posible clasificación de estas familias, según los dispositivos semiconductores en los
que se basan, es:
• Familias bipolares.- emplean transistores bipolares y diodos, es decir, dispositivos de
unión. Las familias bipolares más representativas son las familias TTL y ECL.
• Familias MOS.- emplean transistores MOSFET, es decir, transistores de efecto
campo. La familias MOS más representativas son las familias NMOS y CMOS.
Cada una de estas familias van a tener una serie de parámetros cuyos valores van a ser
más o menos fijos. Los principales parámetros de las familias lógicas son:
• Parámetros temporales (figura 7.1).
• Retraso de propagación de bajo a alto, tPLH.- tiempo transcurrido desde que la
señal de entrada baja (pasa por el 50%) hasta que la señal de salida sube (pasa por
el 50%).
• Retraso de propagación de alto a bajo, tPHL.- tiempo transcurrido desde que la
señal de entrada sube (pasa por el 50%) hasta que la señal de salida baja (pasa por
el 50%).
El hecho de subida y bajada se debe a que las principales familias son negativas, es decir, la
salida que obtenemos es el valor negado de dicha función.
• Retraso de propagación.- valor medio de tPLH y tPHL.
• Tiempo de transición de bajo a alto, tTLH.- tiempo transcurrido desde que la señal
empieza a subir (pasa por el 10%) hasta que llega a un nivel alto (pasa por el 90%).
• Tiempo de transición de alto a bajo, tTHL.- tiempo transcurrido desde que la señal
empieza a bajar (pasa por el 90%) hasta que llega a un nivel bajo (pasa por el 10%).
Es decir, se considera que una transición se ha completado cuando pasamos de los umbrales
del 10% y el 90%. Este hecho es debido a que la forma de onda a partir de esos valores cambia,
pudiendo no llegar nunca a los valores del 0% o al 100%.
tPHL tPLH
90% 90%
10% 10%
tTLH tTHL
La forma de determinar estos parámetros es la siguiente. Para determinar el nivel de salida alto
(VOH), se le aplica a la entrada la mínima tensión del circuito (por lo general el valor de tierra),
así el valor a la salida será el solicitado. Para determinar el nivel de salida bajo (VOL), se le
aplica a la entrada VOH, así el valor de salida será el solicitado. Para obtener los niveles de
entrada, se va variando la entrada desde los valores de salida hasta que la salida cambia de
estado; en ese momento, se encuentran los niveles de entrada alto o bajo según corresponda.
• Margen de ruido del nivel alto, VNSH.- la diferencia de tensión desde el nivel alto
que se puede considerar como tal.
• Margen de ruido del nivel bajo, VNSL.- la diferencia de tensión desde el nivel bajo
que se puede considerar como tal.
Estos valores se obtienen según la diferencia de valores que podemos ver en la figura.
VOH
VNSH
VIH
Franja indeterminada
VIL
VNSL
VOL
Estos parámetros se han definido como de intensidad, ya que la limitación que supone se suele
ver en términos de intensidad que piden o dan a la puerta lógica. En función de esta cantidad de
intesidad, la puerta lógica puede dejar de funcionar como se espera (cambiando de zona de
operación), produciendo un resultado erróneo.
• Parámetros de potencia
• Potencia media consumida.- Es la energia que solicita a la fuente de tensión. Este
parámetro es cada día más importante debido al auge que están adquiriendo los
sistemas “sin cable”. Este parámetro está intimamente relacionado con la vida de la
batería de estos sitemas.
108 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
In Out
In Out
In Out p
q
In Out In Out
ID
+ VD - ON
VR OFF VD
Vγ
RUPTURA
ID
Una puerta de una sola entrada de la familia DL, junto a su modo de operación se mues-
tra en la figura 7.5. La operación de esta puerta es la siguiente, pero no nos podemos olvidar de
que los valores de tensión estarán entre los niveles de tierra (‘0’ -> 0v.) y de polarización (‘1’ -
> 5v.).
TEMA VII.- FAMILIAS LÓGICAS 109
A F
A D F
‘0’ OFF ‘0’
‘1’ ON ‘1’
Figura 7.5.- Esquema y tabla de verdad de una puerta construida con lógica DL.
• Cuando en la entrada tenemos un ‘0’, la tensión que hay en el diodo será de 0v. o
menor, por lo que el diodo estará en corte. En esta situación, la intensidad será 0, y por
lo tanto, la tensión que cae en la resistencia también será 0. Luego en la salida tendre-
mos directamente la tensión de tierra,es decir, 0v. o ‘0’.
• Cuando en la entrada tenemos un ‘1’, la tensión que ahí en el diodo es positiva, por lo
que estará en conducción. En esta situación, la tensión que cae en el diodo es la de
conducción, es decir, Vγ. Luego en la salida tendremos VDD-Vγ.
En la tabla 7.1 mostramos los principales parámetros de tensión. En este caso los parámetros
de intensidad deberán tomar los valores suficientes para que el diodo no entre en su zona de
ruptura.
Entrada Salida Margen de ruido
Nivel bajo Vγ 0 Vγ
Nivel alto VDD VDD - Vγ Vγ
Table 7.1. Parámetros de tensión típicos de la familia lógica DL.
3. Familias bipolares.
Las familias bipolares son aquellas basadas en los transistores de unión o bipolares.
Estos transistores se pueden clasificar en dos tipos, según las uniones semiconductoras: npn y
pnp. En la figura 7.6 se muestran las uniones, símbolos y su representación como diodos. De
estos dos tipos de transistores, los más empleados son los transistores npn ya que presentan una
ganacia mayor, y por lo tanto serán los más rápidos.
B C
B
E N P N C B E C
B C
B
E P N P CB E C
• Zona activa inversa. Es una zona parecida a la anterior, pero cambiando los terminales
de emisor y colector. La principal diferencia (aparte de la anterior) es que la amplifi-
cación es sustancialmente menor.
• Zona de saturación. El transistor se comporta como un cortocircuito entre el colector
y el emisor, que debido a las diferencias geométricas de ambas uniones mantiene una
pequeña tensión. En esta zona los dos diodos se encuentran conduciendo.
VBC
Z.A.I SATURACIÓN
VBC=0.7V.
VCE=0.2V.
IC=βRIB
VBE
CORTE Z.A.D
IC=IB=IE=0 VBE=0.7V.
IC=βFIB
De estas cuatro zonas, sólo nos interesará que los transistores estén en dos de ellas: corte y
saturación, que son las más parecidas a las zonas del diodo. Por lo tanto, para la correcta opera-
ción de las puertas lógicas debemos evitar las otras zonas (activa directa y activa inversa),
excepto en los casos que sean necesarias.
TEMA VII.- FAMILIAS LÓGICAS 111
Una vez que se ha descrito brevemente el transistor bipolar, así como sus diferentes
zonas de operación, vamos a describir las principales familias bipolares: familia TTL y familia
ECL.
Esta familia es una de las más empleadas en la construcción de dispositivos MSI. Está
basada en el transistor multi-emisor. Este transistor es un transistor con varios emisores, una
sola base y un solo colector. En la figura 7.8 mostramos el símbolo de este transistor, su repre-
sentación en transistores con un solo emisor y su forma de operación:
B
B
E1
E1 C BEi ON => BE ON
C
E2 Todas BEi OFF=> BE OFF
E2
Un esquema típico de una puerta TTL se muestra en la figura 7.9, junto con su tabla de
funcionamiento (donde también se indica la zona de operación de los diferentes transistores).
El funcionamiento de la puerta es el siguiente. Debido a que la intensidad de base de un tran-
sistor bipolar es muy pequeña, en primera aproximación podemos decir que es nula por lo que
la base del transistor T1 siempre está conectado a polarización. Cuando cualquiera de las entra-
das se encuentra en un nivel bajo, el transistor T1 se encontrará en la región de saturación, ya
que la unión BE está conduciendo y la unión BC siempre está directamente polarizada, lo cual
provocará que la base del transistor T2 tenga una tensión de 0.4 v (0.2v de la caida entre colec-
tor y emisor y 0.2v del nivel bajo, como ya veremos). Esta situación provoca que dicho transis-
tor esté cortado. Al estar T2 cortado, la tensión de base de T3 será 0, lo cual implica que T3
también esté cortado. En cambio, el transistor T4 estará en zona activa directa o en saturación
(dependiendo de los valores de las resistencias R2 y R4), que provocará que el diodo conduzca
colocando en la salida un nivel alto.
Cuando todas las entradas se encuentren a nivel alto, el transistor T1 estará en la zona
activa inversa, ya que la unión BE está cortada y la unión BC está conduciendo. Esta situación
provoca que la tensión de base del transistor T2 sea aproximadamente de 1.4 v., llevando a
dicho transistor a saturación. Por lo tanto, el transistor T3 estará igualmente saturado y en la
salida se colocará un nivel bajo. En cambio, el transistor T4 se encontrará en zona activa
directa, pero el diodo no conducirá, desconectando la salida de la tensión de polarización.
Así, los niveles de tensión y márgenes de ruido de esta familia, de forma aproximada,
son los mostrados en la tabla 7.2. La obtención de estos valores se puede desprender de la tabla
de operación de los transistores de la figura 7.9.
• VOL = VCE(SAT)3 = 0.2v
112 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
T4 A B T1 T2 T3 T4 D F
0 0 SAT OFF OFF SAT ON 1
A
T2 D 0 1 SAT OFF OFF SAT ON 1
B T1 1 0 SAT OFF OFF SAT ON 1
F
1 1 ZAI SAT SAT ZAD OFF 0
T3
Figura 7.9.- Esquema y tabla de verdad de una puerta lógica construida con lógica TTL.
Como pudimos ver en el primer ejemplo, la lógica de esta familia es negada, es decir, la
salida siempre está complementada. También podemos apreciar que la utilización de un tran-
sistor multiemisor genera la operación AND de los emisores. También podemos generar opera-
ciones OR de los términos producto. Luego, con la familia TTL sólo podemos generar las
siguientes estructuras:
• Inversores
• AND - inversor
• AND - OR - inversor
A A A
B B B
F F F
AND - Inversor
Inversor
AND - OR - Inversor
La familia ECL se basa en un amplificador diferencial. Para que el retraso de esta familia
sea mínimo, se impone la retricción de que los transistores del amplificador trabajen en los
límites de Z.A.D. - corte y Z.A.D. - saturación. Este hecho implica que la diferencia de tensión
que tenga que soportar sea mínima. Esta situación tiene tres implicaciones básicas:
• niveles de tensión altos y bajos cercanos (que le proporciona una alta velocidad)
• incompatibilidad con otras familias lógicas
• disposición de salidas diferenciales, es decir, tanto de la salida complementada como
sin complementar.
114 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
El esquema de una puerta lógica ECL, junto a su tabla de comportamiento (en la que se
ha incluido la zona de operación de sus transistores y los límites de los transistores de amplifi-
cación), se muestran en la figura 7.12:
RC RC
T3 T4
A T1 T2 VREF
F’ F
R R
REE
A T1 T2 T3 T4 F F’
0 ZAD-OFF ZAD-SAT ZAD ZAD 0 1
1 ZAD-SAT ZAD-OFF ZAD ZAD 1 0
Figura 7.12.- Esquema y tabla de verdad de una puerta construida con lógica ECL.
Cuando en la entrada existe un nivel bajo (una tensión menor que VREF), el transistor T1
estará en el límite de corte mientras que el T2 estará en el límite de saturación. Por lo tanto,
toda la intensidad pasará a través de T2. Así los valores de tensión en los colectores de T1 y T2
serán Vcc y Vcc-IEE·RC, respectivamente. Podemos apreciar que estos valores dependen en
gran medida de la intensidad, y por lo tanto el fan-out tiene una gran influencia. Para reducir
esta influencia y aumentar este fan-out, necesitaremos unas etapas de salida, formadas por las
parejas de los transistores T3 y T4 con sus respectivas resistencias. Los transistores T3 y T4
siempre estarán en zona activa directa suministrando la intensidad necesaria y desacoplando la
función lógica del resto del circuito. Por lo tanto, la señal F' tendrá un nivel alto (Vcc -
VBE(ON)), y la señal F tendrá un nivel bajo (Vcc - VBE(ON) -IEE·RC).
Así, los niveles de tensión y márgenes de ruido de esta familia, de forma aproximada, se
muestran en la tabla 7.3. Los valores de VREF, RC y REE se establecen para que dichos valores
se encuentren cerca de la mitad de los raíles de polarización.
TEMA VII.- FAMILIAS LÓGICAS 115
Para mantener las anteriores condiciones de operación, en una sola puerta ECL única-
mente se pueden implementar las siguientes operaciones:
• inversión/seguimiento
• operación nor/or
T3 T4
Inversor A T1 T2 VREF Seguidor
T3 T4
A B T1 T2 VREF
NOR OR
T1’
Figura 7.13.- Posibles estructuras que se pueden construir con la familia ECL.
4. Familias MOS.
Las familias MOS son aquellas que basan su funcionamiento en los transistores de efecto
campo o MOSFET. Estos transistores se pueden clasificar en dos tipos, según el canal utili-
zado: NMOS y PMOS. En la figura 7.14 se muestran su estructura y varios símbolos:
G G
S D S D
p p n n
n p
D D D D
G G G G
S S S S
vdd 0
vd=0 --> vs = 0 vd=0 --> vs = -vth
vg = vg =
0 id = 0 vdd id = 0
Al igual que sucedía con los transistores bipolares, los transistores PMOS muestran una
ganancia menor que los NMOS, por lo que estos últimos predominan en la generación de las
familias.
A T1 F
F 0 OFF 1
A 1 ON 0
T1
Figura 7.16.- Esquema y tabla de verdad de un puerta construida con lógica NMOS.
En este caso la resistencia actúa de pull-up de la estructura. Vamos a introducir dos nue-
vos conceptos, que aunque no son exclusivos de las familias MOS, sí son muy empleados en
este tipo de circuitos.
TEMA VII.- FAMILIAS LÓGICAS 117
Existen diferentes tipos de pull-up, como puede ser la resistencia, transistores de deplexión o
transistores saturados, mostrados en la figura 7.17:
No obstante, hay que tener en cuenta que esta familia (al igual que la TTL) siempre devuelve el
complemento de la función. Algunos ejemplos de puertas complejas se muestran en la figura
7.18.
F = A·B F = (A+B)·C
F = A+B A C
A B
B A B
Esta familia basa su operación en la utilización de los transistores NMOS y PMOS fun-
cionando como interruptores, de tal forma que los transistores NMOS suministran el nivel bajo
(ya que no se degrada con la tensión umbral) y los transistores PMOS suministran el nivel alto
(ya que no se degrada con la tensión umbral).
Una puerta construida con la familia CMOS solamente estará formada por transistores,
como se muestra en la figura 7.19.
T2 A T1 t2 F
A F
0 OFF ON 1
T1 1 ON OFF 0
Figura 7.19.- Esquema y tabla de verdad de un puerta construida con lógica CMOS.
Cuando en la entrada hay un nivel alto, el transistor T2 estará cortado mientras que el T1
estará conduciendo. Por lo tanto, el transistor T1 colocara en la salida un nivel bajo (que será
directamente el nivel de tierra), y el transistor T2 evitará el paso de corriente por lo que no con-
sume potencia en estática, sólo en el transitorio.
Se tiene que verificar que ambas ramas (de transistores NMOS y PMOS) generan la
misma función lógica. Este hecho implicará que el nodo de salida siempre estará conectado a
un solo nivel lógico, es decir, al nodo de polarización (nivel alto) o al nodo de tierra (nivel
bajo). En el caso de que no se cumpla dicha restricción, podemos encontrarnos en dos situacio-
nes diferentes:
• Que el nodo de salida esté conectado a la tensión de polarización y al nodo de tierra
de forma simulatánea. Esta situación no se debe permitir nunca, ya que el valor lógico
de salida sería indeterminado.
TEMA VII.- FAMILIAS LÓGICAS 119
A F = A·B
C
B
F = (A+B)·C
A
F = A·B
A B
5. Ejemplo.
Por último, vamos a ver como sería la implementación de una función utilizando las dife-
rentes familias lógicas.
A
B
A F
B
B A B VREF
VREF A
VREF F
F
B B F
B
A A
A A
Figura 7.21.- Implementación de la función exclusiva-OR en las familias TTL, ECL, NMOS y CMOS respec-
tivamente. Notar que debido a la función implementada, en la implementación CMOS, la conexión en paralelo
de los transistores PMOS podría eliminarse.
Enunciados de problemas 121
• (201.2)3
• (FFA.7)16
• (100)5
• (26.5)7
• (326.5)9
• (235.3)10
• (FFA.7)16
• (100)8
• (26.5)7
• (210.1)3
1.4. Dado la siguiente igualdad: (100)10 = (400)b, determinar el valor de la base b. ¿Cuál es
el valor de (104)10 en la base b?
122 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
1.5. Dado un código pesado con los siguientes pesos: (120,60,20,5,1), con la siguiente expre-
sión polinómica:
N* = (n4 n3 n2 n1 n0)* = 120*n4 + 60*n3 + 20*n2 + 5*n1 + n0
Donde: 0 < n0< 4 0 < n1 < 3 0 < n2 < 2 0 < n3 < 1 0 < n4 < 1
Se desea averiguar:
• Detectar y/o corregir (en el caso que sea posible) las siguientes palabras de
código. Para ello se debe indicar la particularidad del código detector utilizada
para la detección, o los bits de mensaje que son chequeados por cada bit de
cheueo.
• 0000001
• 1100100
• 0000000
• 1101011
• 0000111
• 0000110
(En el caso de que el código sea corrector, se sabe que los cuatro primeros bits son bits de
mensaje y el resto bit de chequeo con paridad de tres bits)
Enunciados de problemas 123
2.1. Usando los postulados del Álgebra de Boole y los teoremas asociados, demuestre la
veracidad de las siguientes igualdades:
2.2. Pruebe que en un Álgebra de Boole, se verifican las siguientes leyes de cancelación:
2.3. Determinar si el conjunto B={0,a,b,1} y las operaciones (+) y (·) definidas como:
+ 0 A B 1 · 0 A B 1
0 0 A B 1 0 0 0 0 0
A A A 1 1 A 0 A 0 A
B B 1 B 1 B 0 0 B B
1 1 1 1 1 1 0 A B 1
es un álgebra de Boole.
2.4. Obtenga los complementos de las siguientes funciones, así como las tablas de combina-
ciones y sus fórmulas canónicas disyuntivas y conjuntivas (tanto del complemento obte-
nido como de la función original):
• F = a + b·c
• F = (a + b)·(a'·c + d)
2.5. Mediante los postulados y teoremas del Álgebra de Boole, obtenga unas expresiones
mínimas en suma de productos de las siguientes funciones. A partir de estas sumas de
productos, obtenga una expresión en producto de sumas.
• F = ∑m(0,1,3,4,6,8)
• F = ∑m(0,1,2,4)
• F = ∑m(0,1,6,8,10,11,12,13)
Enunciados de problemas 125
• F = ∑m(0,1,14,15)
• 12 + 30
• 2+4+8
• 3·5
• 3.25 · 4
• 15.5 / 3.25
126 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
3.1. Analizar de forma estacionaria y transitoria los siguientes circuitos, así como determinar
los caminos críticos:
x x
y y
F
F
z z
(b)
(a)
x1 x
x2
x3 y
F
x4 F
(c)
(d)
X
x
b2
y (f)
a2 (e)
z F
b1
a1 Y
x x
F y
z F
y
z (h)
(g)
z
x
z
x F
y F
w
(j)
(i)
y
Enunciados de problemas 127
4.1. Se desea diseñar el circuito de control de una planta de montaje encargado de la señal de
aviso de evacuación. Para ello se dispone de tres sensores:
4.2. Se desea diseñar un circuito de control de una máquina trituradora. En esta máquina
existen dos sensores de llenado (S1 y S2), que determinan el nivel de los elementos a tri-
turar como se muestran en la figura:
S1
S2
P
M1 M2
Cuando la máquina se encuentra llena del todo, tienen que entrar en funcionamiento
ambos trituradores; cuando se encuentra medio lleno, sólo tiene que funcionar uno de
ellos; mientras que si no se detecta ningún elemento a triturar, ambos motores se han de
parar. Dicha máquina tiene un mecanismo de emergencia a través de un conmutador de
trituración, de tal forma que cuando está conectado la máquina opera según su contenido,
mientras que si está desconectado, la máquina ha de pararse independientemente de su
contenido.
4.3. Se desea diseñar un circuito de interfaz binaria-decimal, de tal forma que se active una
señal indicando la combinación binaria que se ha introducido a la entrada. Realizar el
diseño para números codificados con dos bits, siendo este elemento lo que se conoce
como decodificador 2:4.
4.4. Se dispone de un código octal codificado en binario, con un bit de paridad, para la trans-
misión de datos entre dos estaciones espaciales. Se desea diseñar un circuito que indique
la presencia de un error en un solo bit.
4.5. Encontrar los circuitos mínimos para las siguientes funciones de conmutación:
• F1 = m0 + m4 + m5
F2 = m0 + m2 + m3 + m4 + m5
F3 = m0 + m1 + m2
• F = ∑ m(0,2,4,8,10,12)
128 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• F = ∑ m(1,4,5,7,13) + φ(3,6)
G= ∑ m(3,5,7) + φ(6)
• F1 = ∑ m(5,7,12,13) + φ(2)
F2 = ∑ m(0,1,2,5) + φ(7)
F3 = ∑ m(1,2,5,12) + φ(13)
4.6. Realizar el ejercicio anterior, imponiendo la restricción de que todos los circuitos sean
libres de azares.
• F1 = m0 + m4 + m5
F2 = m0 + m2 + m3 + m4 + m5
F3 = m0 + m1 + m2
Enunciados de problemas 129
• Multiplexores 8:1
• Multiplexores 4:1
0
1
2 F
3
x 1 0
y
z1 z0
5.4. Se dispone de un dato menor o igual a 19 y siempre positivo. Se desea construir un dis-
play decimal para su visualización. Para ello se dispone de los siguientes dispositivos
MSI: comparadores, sumadores/restadores y display 7 segmentos con su decodificador
incorporado; utilizar el número mínimo posible.
5.5. Se desea realizar un circuito que nos indique el momento y tipo de campanadas que debe
dar un reloj (no el número). Los tipos de campanada son tres: cuartos, medias y horas.
Para ello disponemos de los minutos en un código BCD natural (dos dígitos, M1 y M0,
de cuatro bits).
El diseño ha de ser realizado con el mínimo número de las puertas siguientes: compara-
dores de cuatro bits y puertas lógicas.
130 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
6.1. Realizar los diseños de los problemas del Tema 4 mediante dispositivos PROM, PAL y
PLA.
Enunciados de problemas 131
7.1. Determinar la función lógica de los siguientes circuitos y realizarla mediante la lógica
CMOS.
A A’ A A’ A
B B’ B B’ B C
A A’ A A A’ A
B’ B B’ B’ B B’
C’ C C C’
B B
C C
A’ A’
132 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
7.3. Realizar el diseño mínimo de la función f = ∑ m(0,1,2,5,7) en una familia lógica CMOS.
En dicha familia, no se pueden colocar más de 2 transistores en serie de cada tipo.
7.4. Repetir el problema 7.3 para una familia TTL en la que no pueden generar transistores
multi-emisores con más de 2 emisores.
• (201.2)3
Para pasar a base decimal tenemos que utilizar el
método polinómico, por lo que:
N = 2*32+0*31+1*30+2*3-1=21.667
• (FFA.7)16
Como estamos en la base hexadecimal, las letras tiene
un equivalente numérico (el que se utilizará en el
polinomio): N = 15*162+15*161+10*160+7*16-1=4090.4375
• (100)5
• (26.5)7
• (326.5)9
• (235.3)10
Para pasar a binario, debemos utilizar el método ite-
rativo, para lo cual hay que separar la parte entera
de la parte decimal. La conversión de la parte entera
es:
235 2
1 117 2
1 58 2
0 29 2
1 14 2
0 7 2
1 3 2
1 1 2
1 0
• (FFA.7)16
Como no sabemos realizar las operaciones aritméticas
en base hexadecimal, primero debemos pasar dicho
número a decimal y después a binario. El número deci-
134 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• (100)8
• (26.5)7
• (210.1)3
1.4. Dado la siguiente igualdad: (100)10 = (400)b, determinar el valor de la base b. ¿Cuál es
el valor de (104)10 en la base b?
Como conocemos los valores de un número en decimal y
en la base desconocida, podemos plantear la onversión
polinómica:
100 = 4*b2+0*b1+0*b0
De dicha ecuación podemos obtener el valor de la base,
b = 5.
Para pasar 104 decimal a base 5, debemos utilizar el
método iterativo
104 5
4 20 5
0 4 5
4 0
Por lo tanto, el número será: 04045
1.5. Dado un código pesado con los siguientes pesos: (120,60,20,5,1), con la siguiente expre-
sión polinómica:
N* = (n4 n3 n2 n1 n0)* = 120*n4 + 60*n3 + 20*n2 + 5*n1 + n0
Donde: 0 < n0< 4 0 < n1 < 3 0 < n2 < 2 0 < n3 < 1 0 < n4 < 1
Se desea averiguar:
125 5
0 25 4
1 6 3
0 2 2
0 1 1
1 0
• Detectar y/o corregir (en el caso que sea posible) las siguientes palabras de
código. Para ello se debe indicar la particularidad del código detector utilizada
para la detección, o los bits de mensaje que son chequeados por cada bit de
cheueo.
• 0000001
• 1100100
• 0000000
• 1101011
• 0000111
• 0000110
(En el caso de que el código sea corrector, se sabe que los cuatro primeros bits son bits de
mensaje y el resto bit de chequeo con paridad de tres bits)
138 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• Razonar una posible variante para obtener un código para detectar fallos de dos
bits a partir de un código corrector de error de un bit.
Un método para obtener un código detector consiste en
añadir un bit de paridad total. Pero para que este
método surta efecto, debemos asegurarnos que la pari-
dad de las palabras del código original no es la misma
en todas las palabras. Esta situación se cumple en
nuestro código ya que hay palabras con 0, 3 y 4 1’s.
Por lo tanto, añadimos un bit de paridad total. Así si
se detecta un fallo, en los bits de chequeo y de pari-
dad, el error está en un solo bit; mientras que si el
fallo sólo se detecta en los bits de chequeo, se ha
producido un fallo en dos bits.
2.1. Usando los postulados del Álgebra de Boole y los teoremas asociados, demuestre la
veracidad de las siguientes igualdades:
2.2. Pruebe que en un Álgebra de Boole, se verifican las siguientes leyes de cancelación:
2.3. Determinar si el conjunto B={0,a,b,1} y las operaciones (+) y (·) definidas como:
+ 0 A B 1 · 0 A B 1
0 0 A B 1 0 0 0 0 0
A A A 1 1 A 0 A 0 A
B B 1 B 1 B 0 0 B B
1 1 1 1 1 1 0 A B 1
es un álgebra de Boole.
Para demostrar que se trata de un álgebra de Boole, se
deben cumplir los cuatro postulados de dicho algebra.
• Operaciones conmutativas. La comprobación de
este postulado es visual, ya que las tablas son
simétricas respecto de su diagonal.
• Operaciones distributivas. Para ello, construi-
mos las tablas de verdad de que parte de la
igualdad de dichas propiedades. Estas tablas se
muestran en la siguiente página.
• Elementos neutros diferentes. Podemos observar
de las tablas que el elemento neutro de la suma
es el ‘0’, y el del producto es el ‘1’.
• Elementos complementos. La forma más fácil de
demostrar este postulado es encontrar los com-
plementos de todos los elementos de B, es decir,
parejas de elementos que cumplan XY=0 y X+Y=1.
Estas parejas son:
• A’=B
• 0’=1
• B’=A
• 1’=0
2.4. Obtenga los complementos de las siguientes funciones, así como las tablas de combina-
ciones y sus fórmulas canónicas disyuntivas y conjuntivas (tanto del complemento obte-
nido como de la función original):
• F = a + b·c
142 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• F = (a + b)·(a'·c + d)
2.5. Mediante los postulados y teoremas del Álgebra de Boole, obtenga unas expresiones
mínimas en suma de productos de las siguientes funciones. A partir de estas sumas de
productos, obtenga una expresión en producto de sumas.
• F = ∑m(0,1,3,4,6,8)
En primer lugar, pasamos esta expresión a suma de pro-
ductos:
F = a’b’c’d’ + a’b’c’d + a’b’cd + a’bc’d’ + a’bcd’ +
ab’c’d’
Ahora observamos qué términos podemos agrupar para
sacar factor común. En el caso de que haya un término
que podemos agrupar con más de uno, aplicamos la ley
de idempotencia y desdoblamos dicho término. No obs-
tante, trataremos de agrupar el número mínimo de tér-
minos, es decir, no agruparemos dos términos que
hayan sido agrupado antes.
F = a’b’c’(d’+d) + (a’+a)b’c’d’ + a’b’(c’+c)d +
a’b(c+c’)d’
Aplicando el cuarto postulado del álgebra de Boole:
Soluciones de problemas 145
• F = ∑m(0,1,2,4)
• F = ∑m(0,1,6,8,10,11,12,13)
• F = ∑m(0,1,14,15)
• 12 + 30
Primero pasamos los números decimales a códgio bina-
rio, es decir, 12 = ‘01100’ y 30 = ‘11110’. A conti-
nuación, realizamos la suma:
111000 -> acarreo
001100 -> 12
011110 -> 30
101010 -> 42
• 2+4+8
Igual que el anterior, pero primero se suman los dos
primeros sumandos, y después su resultado se suma con
el tercero.
• 3·5
146 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
• 3.25 · 4
Primero pasamos los números decimales a códgio bina-
rio, es decir, 3.25 = ‘11.01’ y 4 = ‘100’. A continua-
ción, realizamos la multiplicación:
______________11.01 -> 3.25
______________x 100 -> __x4
______________00 00
_____________000 0
____________1101__
____________1101.00 ->13.00
• 15.5 / 3.25
Soluciones de problemas 147
3.1. Analizar de forma estacionaria y transitoria los siguientes circuitos, así como determinar
los caminos críticos:
x x
y y
F
F
z z
(b)
(a)
x1 x
x2
x3 y
F
x4 F
(c)
(d)
X
x
b2
y (f)
a2 (e)
z F
b1
a1 Y
x x
F y
z F
y
z (h)
(g)
z
x
z
x F
y F
w
(j)
(i)
y
148 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
* Circuito (a)
Para obtener el análisis estacionario, etiquetamos
todos los nodos con la función lógica correspon-
diente.
x n2=x+n1
n1=y+z
F=n2n1z
z
(a)
• x=0
Las combinaciones que cumplen todas estas condiciones
son:
• x=0, y=1, z=0
Como dicho camino es seguido por alguna combinación
de entradas, el camino anterior era el crítico, for-
mado por tres puertas.
* Circuito (b)
Para obtener el análisis estacionario, etiquetamos
todos los nodos con la función lógica correspon-
diente.
x n1 = xy
y
F = n1 ⊕ n2
z
n2 = y+z’
* Circuito (e)
Para obtener el análisis estacionario, etiquetamos
todos los nodos con la función lógica correspon-
diente.
n1=b2a2 X
b2 n3=n1+n2 n4=n3a1b1
a2 (e)
b1 n5=n3b1a1
a1 Y
n2=a2b2
Por lo tanto, el valor de las funciones de salida X e
Y son:
• X = b2a2 + b1a1(b2’a2+b2a2’)
• Y = a2b2 + b1a1(b2’a2+b2a2’)
Para el caso del análisis transitorio, debemos consi-
derar solamente las señales que siguen más de un
camino (y alguno de los cuales debe estar complemen-
tada y sin complementar), para la misma salida. Las
únicas señales que cumplen este requisito son las
señales b2 y a2, con dos caminos diferentes. Por lo
tanto, sólo podemos buscar azares estáticos:
• Para quedarnos con b2’ en la función X, la señal
a2 debe valer ‘1’
• Para quedarnos con b2 en la función X, la señal
a2 debe valer ‘0’, b1 ‘1’ y a1 ‘0’
Como no existe ninguna combinación que cumpla todas
las restricciones, concluimos con que no existen aza-
res en b2 para la función X. Además como la función es
conmutativa con respecto a b2 y a2, podemos concluir
que tampoco habrá azares en a2.
Para el caso de la función Y, vemos que el comporta-
miento es exactamente el mismo que en la función X,
por lo que tampoco habrá azares para esta función.
El camino crítico de una función multisalida es el
camino más crítico de todas las salidas por separado.
Podemos observar que el camino más largo es el mismo
en ambas salidas, el cual recorre: AND2-NOR-AND3-OR.
• Para que la puerta OR espera a la AND3, se tiene
Soluciones de problemas 151
que cumplir:
• n1 = b2’a2 = 0 para la función X
• n2 = b2a2’ = 0 para la función Y
• Para que la puerta AND3 espere a la NOR, se
tiene que cumplir:
• b1=’0’ y a1=’1’ para la función X
• b1=’1’ y a1=’0’ para la función Y
• La puerta NOR siempre espera a una AND2, ya que
todas sus entradas son salidas de estas puer-
tas.
Las combinaciones que siguen estos caminos son:
• a1b1a2b2 = 100-, 10-1 para la función X
• a1b1a2b2 = 011-, 01-0 para la función Y
Como existen combinaciones de las señales de entradas
que siguen estos caminos, podemos afirmar que el
camino crítico es el formado por AND2-NOR-AND3-OR.
152 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
4.1. Se desea diseñar el circuito de control de una planta de montaje encargado de la señal de
aviso de evacuación. Para ello se dispone de tres sensores:
4.2. Se desea diseñar un circuito de control de una máquina trituradora. En esta máquina
existen dos sensores de llenado (S1 y S2), que determinan el nivel de los elementos a tri-
turar como se muestran en la figura:
Cuando la máquina se encuentra llena del todo, tienen que entrar en funcionamiento
ambos trituradores; cuando se encuentra medio lleno, sólo tiene que funcionar uno de
Soluciones de problemas 153
BC
00 01 11 10
A 0 0 0 1 0
1 1 1 1 1
F = A + BC
A
F
B
C
S1
S2
P
M1 M2
ellos; mientras que si no se detecta ningún elemento a triturar, ambos motores se han de
parar. Dicha máquina tiene un mecanismo de emergencia a través de un conmutador de
trituración, de tal forma que cuando está conectado la máquina opera según su contenido,
mientras que si está desconectado, la máquina ha de pararse independientemente de su
contenido.
De nuevo tenemos que identificar las entradas y sali-
das de nuestro sistema:
• Como entradas tendremos los dos sensores de
presencia, S1 y S2, y el conmutador de tritura-
ción, P.
• Como salida tendremos las dos señales que con-
trolan los motores de trituración, M1 y M2.
El siguiente paso consiste en obtener la tabla de ver-
dad de la función lógica que queremos implementar:
P S1 S2 M1 M2
0 0 0 0 0
0 0 1 0 0
0 1 0 0 0
0 1 1 0 0
1 0 0 0 0
1 0 1 1 0
1 1 0 x x
1 1 1 1 1
La combinación S1 = ‘1’ y S2 = ‘0’ no se puede produ-
cir nunca en un sistema real. Por lo tanto, el valor
154 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
P 0 0 0 0 0 M2
S1
1 0 0 1 x
M2
En este caso podemos apreciar que todos los implican-
tes son esenciales, y deberán estar en el circuito
lógico.
4.3. Se desea diseñar un circuito de interfaz binaria-decimal, de tal forma que se active una
señal indicando la combinación binaria que se ha introducido a la entrada. Realizar el
diseño para números codificados con dos bits, siendo este elemento lo que se conoce
como decodificador 2:4.
De nuevo debemos identificar las entradas y salidas
de nuestro sistema:
• Como entradas tendremos los bits cuya combina-
ción se quiere detectar. Como en nuestro caso
son dos bits, denominémosloss B0 y B1.
• Como salidas tendremos todas las posibles com-
binaciones de los bits de entrada. En nuestro
caso serán cuatro combincaciones, denominémos-
las C0, C1, C2 y C3.
El siguiente paso consiste en obtener la función
lógica que se desea imlementar. Supongamos que la
salida Ci detecta la combinación i. Luego la función
será:
Soluciones de problemas 155
B1 B0 C3 C2 C1 C0
0 0 0 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 0 0 0
Por tratarse de una función multisalida se debería
aplicar McCluskey. No obstante, podemos comprobar que
las salidas no tienen ningún ‘1’ en común por lo que
se pueden tratar como funciones diferentes. Además
como las funciones sólo tienen un ‘1’ y todo lo demás
‘0’, podemos halar el término producto directamente
de la tabla, ya que será el mintérmino correspon-
diente. Así, las salidas tendrán las siguientes fór-
mulas:
• C3 = B1*B0
• C2 = B1*B0’
• C1 = B1’*B0
• C0 = B1’*B0’
Luego el circuito correspondiente será:
C3
C2
C1
S2
C0
S1
4.4. Se dispone de un código octal codificado en binario, con un bit de paridad, para la trans-
misión de datos entre dos estaciones espaciales. Se desea diseñar un circuito que indique
la presencia de un error en un solo bit.
4.5. Encontrar los circuitos mínimos para las siguientes funciones de conmutación:
• F1 = m0 + m4 + m5
F2 = m0 + m2 + m3 + m4 + m5
F3 = m0 + m1 + m2
Como ya nos dan la función lógica que debemos imple-
mentar, sólo los queda hallar el circuito lógico.
Esta función tendrá tres entradas, x1, x2 y x3, ya que
sólo tiene hasta el quinto mintérmino. Los implican-
tes serán:
• F1, F2 y F3 --> I1 = x1’*x2’*x3’
• F1 y F2 --> I2 = x2’*x3’, I3= x1*x2’
• F2 y F3 --> I4 = x1’*x3’
156 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
x2x3 x2x3
00 01 11 10 00 01 11 10
x10 1 0 0 0 x10 1 0 0 1
1 0 0 0 0 1 0 0 0 0
F1*F2*F3 F2*F3
x2x3 x2x3
00 01 11 10 00 01 11 10
x10 1 0 0 0 x10 1 0 0 0
1 1 1 0 0 1 1 1 0 0
F1*F2 F1
x2x3
x2x3
00 01 11 10
00 01 11 10
x10 1 0 1 1
x10 1 0 0 0
1 1 1 0 0
1 0 0 0 0
F2
F1*F3
x2x3
00 01 11 10
x10 1 1 0 1
1 0 0 0 0
F3
• F2 --> I5 = x1’*x2
• F3 --> I6 = x1’*x2’
La tabla de McCluskey será:
F1 F2 F3
0 4 5 0 2 3 4 5 0 1 2
I1 X X X
I2 X X X X
I3 X X X X
I4 X X X X
I5 X X
I6 X X
Aplicando los criterios de esencialidad, obtenemos
que I3 es esencial para F1, I3 e I5 son esenciales
para F2, e I6 e I4 son esenciales para F3. Eliminando
estas filas y sus columnas marcadas, nos queda la
tabla:
En la tabla restante, aplicamos los criterios de
dominancia. Comprobamos que el implicante I4 es domi-
Soluciones de problemas 157
F1 F2
0 0
I1 X X
I2 X X
I4 X
nado tanto por I1 como por I2. También se observa que
I2 e I1 son equivalentes, por lo que nos quedamos con
el de menos coste. Éste será I2 por ser una puerta AND
de dos entradas, frente a la de tres que es I1. Por lo
tanto, las fórmulas lógicas serán:
• F1 = I3 + I2 = x1*x2’ + x2’*x3’
• F2 = I3 + I5 + I2 = x1*x2’ + x1’*x2 + x2’*x3’
• F3 = I6 + I4 = x1’*x2’ + x1’*x3’
F1
F2
x1
x2 F3
x3
• F = ∑ m(0,2,4,8,10,12)
• F = ∑ m(1,4,5,7,13) + φ(3,6)
G= ∑ m(3,5,7) + φ(6)
• F1 = ∑ m(5,7,12,13) + φ(2)
F2 = ∑ m(0,1,2,5) + φ(7)
F3 = ∑ m(1,2,5,12) + φ(13)
4.6. Realizar el ejercicio anterior, imponiendo la restricción de que todos los circuitos sean
libres de azares.
• F1 = m0 + m4 + m5
F2 = m0 + m2 + m3 + m4 + m5
F3 = m0 + m1 + m2
La única diferencia con el caso anterior consiste en
que las columnas de la tabla de McCluskey se colocan
pares de mintérminos adyacentes, en lugar de solo
mintérminos. Por lo tanto, los implicantes serán los
mismos que en el ejercicio anterior. La nueva tabla de
McCluskey será:
En este caso, todos los implicantes son esenciales
excepto I1. Las fórmulas de conmutación serán:
158 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
F1 F2 F3
0-4 4-5 0-2 0-4 2-3 4-5 0-1 0-2
I1
I2 X X
I3 X X
I4 X X
I5 X
I6 X
• F1 = I2 + I3 = x2’*x3’ + x1*x2’
• F2 = I2 + I3 + I4 + I5 =
x2’*x3’ + x1*x2’ + x1’*x3’ + x1’*x2
• F3 = I4 + I6 = x1’*x3’ + x1’*x2’
Soluciones de problemas 159
0 0
1 1 B 0
1 2 F = A + B 1 1 F = A + B
1 3 0
10
A
A B
0
0
0 1 0 0
F = A * B B 1 F = A * B
0 2
1 3 0
10
A
A B
1 0 1 0
0 1 F = A’ 0 1 F = A’
0 0
A A
• Multiplexores 8:1
• Multiplexores 4:1
Como vimos en el ejercicio anterior, tenemos que for-
mar la tabla de verdad de la función con dos variables
de entrada (ya que nuestro multiplexor tiene dos
canales de selección). Para ello nos ayudaremos
viendo la tabla total de la función:
A B C F A B F A C F B C F
0 0 0 0 0 0 C 0 0 0 0 0 0
0 0 1 1 0 1 1 0 1 1
0 1 0 0 0 1 C 1 0 0 1 0 0
0 1 1 1 1 1 1 1 1 1
1 0 0 0 1 0 C
1 0 1 1
1 1 0 0 1 1 C
1 1 1 1
Las variables que elegimos para las entradas de
selección serán aquellas que más nos convenga, pero
no existe ningun método para indicarnos esta situa-
ción, ya que es muy ependiente de la función a imple-
mentar. A continuación mostramos todas las soluciones
que hemos obtenido:
C 0 0 0 0
0
C 1 1 1
1 1 F
C 2 F F
0 2 0 2
C 3 1 3
1 3
10 10
10
A B A C B C
0
1
A 4 2
2 3 F
B
1 4
C
5
6
7
0
1
2 F
3
x 1 0
y
z1 z0
Para tratar de obtener el comportamiento de este cir-
cuito, veámoslo más detenidamente. El circuito mues-
tra dos niveles:
• Existen una serie de puertas lógicas en el pri-
mer nivel que no están relacionadas entre sí.
• En el segundo nivel, encontramos un multiplexor
que selecciona la operación de cada una de estas
puertas.
Entonces, el comportamiento de este circuito es:
• Cuando z1z0 = ‘00’, F = x ⊕ y
• Cuando z1z0 = ‘01’, F = x + y
• Cuando z1z0 = ‘10’, F = x*y
• Cuando z1z0 = ‘11’, F = y
Si pasamos estas condiciones a un diagrama de flujo:
5.4. Se dispone de un dato menor o igual a 19 y siempre positivo. Se desea construir un dis-
play decimal para su visualización. Para ello se dispone de los siguientes dispositivos
MSI: comparadores, sumadores/restadores y display 7 segmentos con su decodificador
incorporado; utilizar el número mínimo posible.
En primer lugar tenemos que identificar las condicio-
nes que utilizan distintos dígitos BCD. Así, cuando
el número es menor que 10, el dígito más significativo
(llamémoslo D1) valdrá 0, y el menos significativo
(llamémoslo D0) valdrá el número de entrada. En cam-
162 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
00 11
z1z0
01 10
F = x ⊕y F = x +y F = x ∗y F = y
No Si No Si
n > 10 n > 10
5.5. Se desea realizar un circuito que nos indique el momento y tipo de campanadas que debe
dar un reloj (no el número). Los tipos de campanada son tres: cuartos, medias y horas.
Para ello disponemos de los minutos en un código BCD natural (dos dígitos, M1 y M0,
de cuatro bits).
El diseño ha de ser realizado con el mínimo número de las puertas siguientes: compara-
dores de cuatro bits y puertas lógicas.
Denominemos las salidas como C(cuartos), M(medias) y
H (horas). En este caso tenemos que detectar las
secuencias 00, 15, 30 y 45, ya que son las que produ-
cirán las campanadas. El comportamiento del circuito
Soluciones de problemas 163
n 5 A
A<B
‘10’ 5 B A=B
A>B
0 a<b
1 a=b
0 a>b
4 0
‘0’ 1 4 D1 4
‘1’ 4 0
4 0
4 D1 4
‘10’ 5 A 1
∑ 5 4 0
n 5 B
1 S/R
será el siguiente:
• H = 1 cuando M1M0 = ‘00’
• M = 1 cuando M1M0 = ‘30’
• C = 1 cuando M1 = ‘1’ ó ‘4’ y M0 = ‘5’
En este caso también podríamos haber hallado un
diagrama de flujo, pero es más intuitivo verlo de esta
manera. Luego, debemos realizar las comparaciones y
unir los resultados a través de las operaciones lógi-
cas:
4 A
4 A M0
M0 A<B
4 B
4 B
A<B
‘5’ A=B
‘0’ A=B A>B
A>B
0 a<b
0 a<b 1 a=b
1 a=b 0 a>b
0 a>b
C
H M
4 A 4 A
M1 M1
4 A<B 4 A<B
B B
‘0’ A=B ‘1’ A=B
A>B A>B
0 a<b 0 a<b
1 a=b 1 a=b
0 a>b 0 a>b
4 A 4 A
M1 M1
4 A<B 4 A<B
B B
‘3’ A=B ‘4’ A=B
A>B A>B
0 a<b 0 a<b
1 a=b 1 a=b
0 a>b 0 a>b
164 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
6.1. Realizar los diseños de los problemas del Tema 4 mediante dispositivos PROM, PAL y
PLA.
De forma general, la implementación en estos tres
dispositivos siguen las siguientes caracteríticas:
• Memorias ROM.- Debido al decodificador interno
de dicha memoria, hay que suministrar los min-
términos para los que la función toma el valor
‘1’.
• Dispositivos PAL.- Debido a que las diferentes
salidas no comparten ningún término producto,
hay que suministrar la suma de productos mínima
monosalida (todas las salidas se toman indepen-
dientemente. Si hay algún término común, hay
que implementarlo tantas veces como en salidas
esté presente).
• Dispositivos PLA.- Debido a que todas las sali-
das pueden compartir todoslos términos produc-
tos, hay que suministrar la suma de productos
mínima multisalida.
Ejercicio 4.1.
La obtención de las fórmulas se lleva a cabo de la
misma forma que en el tema 4. Por lo tanto, partiremos
ya de estas fórmulas.
A partir de latabla obtenida en el tema 4, podemos
obtener la suma de mintérminos, y la fórmula mínima en
suma de productos:
• F = ∑ m (3,4,5,6,7) --> PROM
F = A + BC --> PAL
F = A + BC --> PLA
Por lo tanto, los dispositivos tendrán las siguientes
restricciones mínimas:
• ROM: 3 entradas y 1 salida
• PAL: 3 entradas, 1 salida y 2 términos AND
• PLA: 3 entradas, 1 salida y 2 términos AND
0 A A
1
A 4 2 B B
2 3 F
B
C 1 4
5 C C
6
7
F F
PROM PAL PLA
Soluciones de problemas 165
Ejercicio 4.5
• F1 = m0 + m4 + m5 --> PROM
F1 = x1*x2’ + x2’*x3’ --> PAL
F1 = x1*x2’ + x2’*x3’ --> PLA
• F2 = m0 + m2 + m3 + m4 + m5 --> PROM
F2 = x1*x2’ + x1’*x2 + x2’*x3’ --> PAL
F2 = x1*x2’ + x1’*x2 + x2’*x3’ --> PLA
• F3 = m0 + m1 + m2 --> PROM
F3 = x1’*x2’ + x1’*x3’ --> PAL
F3 = x1’*x2’ + x1’*x3’ --> PLA
Por lo tanto, los dispositivos tendrán las siguientes
restricciones mínimas:
• ROM: 3 entradas y 3salida
• PAL: 3 entradas, 3 salida y 9 términos AND
• PLA: 3 entradas, 3 salida y 5 términos AND
0 F1 x1 x1
1
x2 x2
A 4 2
x3 x3
B 2 3 F2
C 1 4 F1 F1
5
F3 F2
6 F3
7 F3 F3
PAL PLA
PROM
166 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
7.1. Determinar la función lógica de los siguientes circuitos y realizarla mediante la lógica
CMOS.
A A’ A A’ A
B B’ B B’ B C
A A’ A A A’ A
B’ B B’ B’ B B’
C’ C C C’
B’ A’
F = AB + A’B’ B A
A A’
A A’
B B’
B B’
C
F = A + BC A B
A
B A
C
B C
Soluciones de problemas 167
B B
C C
A’ A’
F = B + A’C
C
A’
168 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
7.3. Realizar el diseño mínimo de la función f = ∑ m(0,1,2,5,7) en una familia lógica CMOS.
En dicha familia, no se pueden colocar más de 2 transistores en serie de cada tipo.
En primer lugar debemos obtener la fórmula mínima que
realiza dicha función lógica. Como es una función con
una sola salida, aplicaremos el método de Karnaugh.
Como llegamos hasta el mintérmino 7, la función ten-
drá tres variables de entrada
x1 x2
00 01 11 10
x30 1 1 0 0
1 1 0 1 1
x2’ x1
x3
x1’ x3’
F
x1’ x1
x2’ x3’ x3
7.4. Repetir el problema 7.3 para una familia TTL en la que no pueden generar transistores
multi-emisores con más de 2 emisores.
x30 1 1 0 0
1 1 0 1 1
x1’ x3
x1 x2’ x3’
Soluciones de problemas 170