Sunteți pe pagina 1din 170

TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL

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.

La Electrónica Analógica es la parte de la Electrónica que trabaja con variables conti-


nuas de tal forma que un pequeño cambio en alguna variable puede producir un gran cambio en
el comportamiento del circuito. Por lo tanto, las variables serán números reales. Un ejemplo de
estos circuitos puede ser un amplificador de señal.

La Electrónica Digital es la parte de la Electrónica que trabaja con variables discretas.


Este hecho implica que un pequeño cambio en alguna de las variables del circuito (siempre que
no cambie su valor discreto) no producirá un cambio apreciable en el comportamiento del cir-
cuito. Es decir, el comportamiento del circuito no depende del valor exacto de la señal.

Un mismo circuito electrónico, dependiendo de la zona de operación que interese, tiene


su operación analógica y digital. Por ejemplo, en la figura 1.1 mostramos la forma de opera-
ción de un sistema electrónico típico. En esta forma de operación, podemos observar que en los
extremos apenas existe un cambio en la señal de salida independientemente de la magnitud del
cambio en la señal de entrada; estas son las zonas que le interesan a la rama digital de la Elec-
trónica, ya que sin conocer el valor exacto de la señal de entrada podemos dar un valor de
salida. En cambio, la parte central se produce el caso contrario, es decir, para un pequeño cam-
bio de la señal de entrada existe un gran cambio en la señal de salida; esta es la zona donde se
interesa la rama analógica de la Electrónica, ya que debemos conocer exactamente el valor de
la señal de entrada (su valor continuo) para poder dar un valor a la señal de salida.

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

Figura 1.1.- Diferencia existente entre Electrónica Analógica y Electrónica Digital.

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

Debido al carácter discreta y a los componentes utilizados en Electrónica Digital (en la


actualidad, dispositivos como transistores y diodos), no se va a emplear el sistema decimal sino
el sistema binario. Por lo tanto, es necesario introducirnos en la teoría de los sistemas numéri-
cos, con vistas a su aplicación a la conversión entre los principales sistemas.

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

La notación posicional de un número es la colocación de los dígitos del sistema numé-


rico, al que pertenece, uno detrás de otro. El valor numérico correspondiente a un numero N en
un sistema de base b es:

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:

(123.2)10 = 1*102 + 2*101 + 3*100 + 2*10-1

(1211.1)3 = 1*33+ 2*32 + 1*31 + 1*30 + 1*3-1

(F02.1)16 = 15*162 + 0*161 + 2*160 + 1*16-1

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.

2.1. Conversiones entre sistemas numéricos.

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.

El método polinómico consiste en expresar el número de la base fuente como un polino-


mio y evaluarlo según la aritmética de la base destino. Por ejemplo:

(1011)2 = 1*23+ 0*22 + 1*21 + 1*20 = (11)10

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.

El método iterativo consiste en ir dividiendo el número (usando la aritmética de la base


fuente) por la base destino de tal forma que los restos nos irán dando los dígitos en la nueva
base, siendo el más significativo el último dígito obtenido.

(p3*b3 + p2*b2 + p1*b1 + p0*b0)/b = p3*b2 + p2*b1 + p1*b0 + p0/b

Resto: p0
4 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Cociente: p3*b2 + p2*b1 + p1*b0

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:

(0.101)2 = 1*2-1 + 0*2-2 + 1*2-3 = (0.625)10

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.

(p-1*b-1 + p-2*b-2 + p-3*b-3) * b = p-1 + p-2*b-1 + p-3*b-2

Parte entera: p-1

Parte fraccional: p-2*b-1 + p-3*b-2

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

b6*26 + b5*25 + b4*24 + b3*23 + b2*22 + b1*21 + b0*20

O2*82 + O1*81 + O0*80

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:

(b6*20)*82 + (b5*22 + b4*21 + b3*20)*81 + (b2*22 + b1*21 + b0*20)*80

(b6*22 + b5*21 + b4*20)*161 + (b3*23 + b2*22 + b1*21 + b0*20)*160

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

O1 = b5*22 + b4*21 + b3*20

O0 = b2*22 + b1*21 + b0*20

H1 = b6*22 + b5*21 + b4*20

H0 = b3*24 + b2*22 + b1*21 + b0*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

111 001 110 000 1010 0000 0100


6 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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.

En algunos dispositivos es útil que las palabras correspondientes a valores próximos se


diferencien poco para que el posible error en la transmisión no engañe demasiado el resultado
final. Por ejemplo, si pasamos de 7 (0111) a 8 (1000) y se produce un fallo en el último bit, de
tal forma que no se produce su transición, el resultado obtenido sería de 0000 (0). Así, se
define la distancia de Hamming como el número de bits que difieren entre dos palabras de
código; y se define un código de distancia n como aquel cuya distancia de palabras consecuti-
TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 7

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.

3.1. Códigos detectores de error.

A la hora de utilizar diferentes códigos, podemos encontrar diversos motivos, como


puede ser evitar que la información caiga en manos no deseadas. No obstante, otro motivo más
práctico consiste en enviar información sobre la existencia de posibles fallos en la transmisión.
Existen códigos que incluyen información para poder detectar y/o corregir estos posibles
fallos.

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.

Los códigos que solamente detectan la existencia de un fallo se denominan códigos


detectores de errores. Dos de los códigos que puede detectar errores son los códigos “2-out-of-
5” y biquinario.

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.

No obstante, la técnica más empleada es la adición de un nuevo bit, denominado bit de


paridad, a cualquier código. Este bit informará si el número de 1’s de la palabra es par (bit de
paridad a 0) o impar (bit de paridad a 1). Por lo tanto, si se produce un fallo en un bit, la infor-
mación de la paridad será errónea.
TEMA I: INTRODUCCIÓN A LA ELECTRÓNICA DIGITAL 9

Dígito Biquinario Binario con paridad


2-out-of-5
decimal 5 0 4 3 2 1 0 b3 b2 b1 b0 p
0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0
1 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 1
2 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1
3 0 1 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0
4 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 1
5 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0
6 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 0 0
7 1 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 1
8 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 1
9 1 1 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0
Tabla 1.3. Ejemplos de códigos detectores de errores en un solo bit.

3.2. Códigos correctores de errores.

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

• Si existe un fallo en M6, se detecta en C2 y C4


• Si existe un fallo en M7, se detecta en C1, C2 y C4
• Si existe un fallo en C1, se detecta en C1
• Si existe un fallo en C2, se detecta en C2
• Si existe un fallo en C4, se detecta en C4

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.

1. Definición de Álgebra de Boole. Postulados.

Se define como álgebra de Boole a un sistema matemático con un conjunto de elemen-


tos B y dos operaciones binarias cerradas (·) y (+) siempre y cuando se cumplan los siguientes
postulados:
• P1.- las operaciones tienen la propiedad conmutativa.
a+b = b+a
a·b = b·a
• P2.- las operaciones son distributivas entre sí
a·(b+c) = a·b + a·c
a+(b·c) = (a+b)·(a+c)
• P3.- las operaciones tienen elementos identidad diferentes dentro de B. Estos elemen-
tos son definidos como 0 para (+) y 1 para (·).
a+0 = a
a·1 = a
• P4.- para cada elemento, a, del conjunto B, existe otro elemento denominado comple-
mento, a también del conjunto B, tal que se cumple:
a+a = 1
a·a = 0

Como podemos ver, en cualquier álgebra booleana se cumple el principio de dualidad:


Cualquier teorema o identidad algebraica deducible de los
postulados anteriores puede transformarse en un segundo
teorema o identidad válida sin mas que intercambiar las
operaciones binarias y los elementos identidad.
14 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Como en cualquier álgebra, podemos disponer de constantes y de variables. Así,


una constante se define como cualquier elemento del con-
junto B.
Mientras que una variable es un símbolo que representa un
elemento arbitrario del álgebra, ya sea una constante o
una fórmula algebraica completa.

2. Teoremas del Álgebra de Boole.

En cualquier álgebra de Boole se pueden demostrar los siguientes teoremas:

Teorema 2.1.- El elemento a del 4º postulado (denominado complemento o negación de a) está


unívocamente determinado, es decir, es único.
Demostración.- Supongamos que existen dos complementos de a: a1 y a2.

a2 = a2·1 = a2·(a+ a1) = a2·a + a2·a1 = a·a1 + a2·a1 = (a + a2)·a1 = a1

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’

Por ser único l complemento: 0’ = 1


1 = 1 + 1’
0 = 1 · 1’

Por ser único el complemento: 1’ = 0

Teorema 2.4.- (o Teorema de idempotencia) Para cada elemento a, se verifica:


a+a=a
a·a=a
Demostración.-
a + a = a + a · 1 = a + a · (a + a’) = a + a · a + a · a’ = a · (1 + a) = a · 1 = a
a · a = a · a + 0 = a · a + a · a’ = a·(a + a’) = a·1 = a

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

a’ + (a’)’ = 1 = a + a’ = a’ + a −> a = (a’)’


a’ · (a’)’ = 0 = a · a’ = a’ · a −> a = (a’)’

Teorema 2.6.- (o Teorema de absorción) Para cada par de elementos, a y b, se verifica:


a+a·b=a
a · (a + b) = a
Demostración.-
a + a · b = a · 1 + a · b = a · (1 + b) = a · 1 = a
a·(a + b) = (a + 0) · (a + b) = a + 0 · b = a

Teorema 2.7.- Para cada par de elementos, a y b, se verifica:


a + a’ · b = a + b
a · (a’ + b) = a · b
Demostración.-
a + a’ · b = (a + a’)·(a + b) = 1·(a + b) = a + b
a · (a’ + b) = a · a’ + a · b = a · b

Teorema 2.8.- (o Leyes de DeMorgan) Para cada par de elementos, a y b, se verifica


(a + b)’ = a’ · b’
(a · b)’ = a’ + b’
Demostración.- Se comprobará si se satisface el cuarto postulado
a + b + (a + b)’ = a + b + a’ · b’ = a + a’ · b’ + b + b’ · a’ =
= a + b’ + b + a’ = a + a’ + b + b’ = 1 + 1 = 1
(a + b) · (a’ · b’) = a · a’ · b’ + b · b’ · a’ = b’ · 0 + 0 · a’ = 0 + 0 = 0
a · b + (a · b)’ = a · b + a’ + b’ = a · b + a’ + a · b + b’ =
= a + a’ + b + b’ = 1 + 1 = 1
a · b · (a’ + b’) = a · a’ · b + a · b · b’ = 0 · b + a · 0 = 0 + 0 = 0

Teorema 2.9.- (o Leyes de DeMorgan generalizadas) Para cualquier conjunto de elementos se


verifica:
(X0 + X1 + … + Xn) = X0 · X1 · … · Xn
(X0 · X1 · … · Xn) = X0 + X1 + … + Xn

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.

Se verifica que un álgebra definida de la forma mostrada en la tabla 2.1 se trata de un


álgebra de Boole. La demostración de esta afirmación se realiza mediante la verificación de los
cuatro postulados:
• P1.- Se comprueba por simple inspección de la definición de las operaciones.
• P2.- Se puede comprobar evaluando todas las combinaciones posibles.
A B C A·(B+C) A·B + A·C A + B·C (A + B)·(A+C)
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 1 1
1 0 0 0 0 1 1
1 0 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 1 1 1 1
Tabla 2.2. Demostración de la propiedad distributiva.
• P3.- Por inspección de los operadores se puede verificar.
A B A·B A+B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
Tabla 2.3. Demostración de los elementos neutros.
• P4.- Por definición del operador complemento.

Un álgebra así definida se denomina álgebra de conmutación. Los operadores de esta


álgebra reciben los siguientes nombres:
• operador + −−> operador OR
• operador · −−> operador AND
• operador ‘ −−> operador NOT

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

Puerta AND Puerta OR Puerta NOT o inversor

& ≥1 1

Figura 2.1.- Símbolos tradicionales e internacionales de las puertas lógicas más básicas.

4. Funciones y Fórmulas de Computación.

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.

Una función completa también es denominada funciones completamente especificadas o fun-


ción de conmutación. Una forma de representación de las funciones de conmutación es la lla-
mada tabla de combinaciones o tabla de verdad. Está formada por n+1 columnas: n
columnas para las variables de entrada y una para el valor de la función; y 2n filas (de todas las
combinaciones posibles de las n entradas). Un ejemplo de tabla de combinaciones, para una
función de tres variables, sería la mostrada en la tabla 2.4:
X2 X1 X0 F(X2, X1, X0)
0 0 0 F(0, 0, 0)
0 0 1 F(0, 0, 1)
0 1 0 F(0, 1, 0)
0 1 1 F(0, 1, 1)
1 0 0 F(1, 0, 0)
1 0 1 F(1, 0, 1)
1 1 0 F(1, 1, 0)
1 1 1 F(1, 1, 1)
Tabla 2.4. Ejemplo de tabla de verdad de una función lógica

Las funciones de conmutación se pueden expresar mediante fórmulas o expresiones de


conmutación. Una fórmula o expresión de conmutación de n variables se define recursiva-
mente como:
• Las constantes 1 y 0 son fórmulas de conmutación
• La variables xi es una fórmula si se encuentra restringida al conjunto {0,1}
• Si A es una fórmula, entonces A también lo es
18 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

• Si A y B son fórmulas de conmutación, entonces el resultado de cualquier operación


binaria de ellas también lo es. Es decir, A+B y A·B también son fórmulas de conmuta-
ción
• Nada más es una fórmula de conmutación, a menos que se sigan los anteriores puntos
en un número finito

Así, encontramos que son fórmulas de conmutación:


x1·x2 + x3·x4
x1·(x2‘+ x3)
(x1’ + x2)·(x3 +x4)

Mientras que los siguientes ejemplos no son fórmulas de conmutación:


x1·+ x3·x4
x1·(x2+’ x3)

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á.

Se dice que dos fórmulas de conmutación son equivalentes (A = B) si describen la misma


función de conmutación. Por ejemplo, si consideramos la función mostrada en la tabla 2.5, las
siguientes fórmulas son equivalentes:
F(X1, X2) = X2
F(X1, X2) = X1’X2 + X1X2
F(X1, X2) = (X1+X2)(X1’+X2)
X1 X2 F(X1, X2)
0 0 0
0 1 1
1 0 1
1 1 0
Tabla 2.5. Ejemplo de función lógica.

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

Se denomina término suma a la operación OR de un número


dado de literales (variables o constantes).
Se define fórmula normal disyuntiva a la expresión de la
función como suma de términos productos, o se dice que se
encuentra expresada en forma normal disyuntiva.
Se define fórmula normal conjuntiva a la expresión de la
función como producto de términos suma, o se dice que se
encuentra expresada en forma normal conjuntiva.

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.

Por ejemplo, X1’·X2 es un mintérmino denominado m1.


A la fórmula normal disyuntiva en el que todos los térmi-
nos productos que aparecen son mintérminos, se le deno-
mina fórmula canónica disyuntiva.

Se verifican los siguientes teoremas:

Teorema 2.12.- Dada la lista completa de mintérminos de n variables, asignando arbitraria-


mente 1’s y 0’s a cada variable, se verifica que un único mintérmino tomará el
valor 1.
Demostración.- Para que dos o más mintérminos tomasen el valor 1 con una sola combinación
de las variables de entrada, se debe cumplir que dichos mintérminos no se vean influidos por
alguna variable, que se traduce en la inexistencia de dicha variable en el mintérmino. Pero
dicha afirmación, contradice la definición de mintérmino en la deben aparecer todas las
variables de la función.

Teorema 2.13.- La fórmula compuesta por los 2n mintérminos será idénticamente 1.


Demostración.- Del teorema anterior, vemos que una determinada combinación de 1’s y 0’s en
las variables de entrada, provoca que un mintérmino tome el valor 1. Por lo tanto si suma-
mos todos los mintérminos posibles, siempre habrá algún mintérmino que tome el valor 1,
que al sumarlo con los restantes 0’s, dará a la función el valor 1.

Teorema 2.14.- Cada función puede expresarse como suma de mintérminos.


Demostración.- Cualquier función se puede expresar como suma de términos productos, al
evaluar los paréntesis de una fórmula equivalente. Una vez que tengamos una fórmula equi-
valente a la original escrita como suma de términos productos, pasamos a incluir en todos
los términos, todas las variables de la función. Para ello, haremos uso del elemento identi-
dad y el cuarto postulado (a+a’=1, en particular), sustituiremos los 1’s necesarios de los tér-
minos productos 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 disyuntiva.
20 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Supongamos que tenemos la fórmula disyuntiva F(x,y,z) = x·y + z’


Para pasar a fórmula canónica debería multiplicar por las variables que faltan en cada tér-
mino producto, es decir,
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.15.- La fórmula canónica disyuntiva o de mintérminos es única.


Demostración.- Como una combinación de las variables hará que un solo mintérmino tome el
valor 1, para obtener una fórmula equivalente de mintérminos, éste no puede ser sustituido.
Repitiendo este razonamiento en todos los mintérminos que aparecen en la fórmula, vemos
que ninguno es sustituible. Tampoco se puede añadir más mintérminos ya que éstos harán
que la función tome el valor 1 en un caso erróneo. Y por último, tampoco se puede eliminar
ningún mintérmino ya que para la combinación que se haría 1, la función ya no tendría el
valor correcto. Por lo tanto, no se pueden añadir, eliminar o sustituir mintérminos, por lo que
la fórmula queda inalterable.

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:

Si x1 = 1, f(1, x2,…, xn) = A


Si x1 = 0, f(0, x2,…, xn) = B

Teorema 2.17.- Cada función completa puede escribirse como:


f(x1, x2,…, xn) = ∑ f(i) · mi(x1, x2,…, xn)

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 la aplicación directa del principio de dualidad,


se define maxtérmino como el término suma en el que apare-
cen una y una sola vez todas las variables de la función,
ya sean complementadas o sin complementar; por lo tanto,
un maxtérmino es un caso especial de término suma.

Por ejemplo, X1’+X2 es un maxtérmino denominado M1.


A la fórmula normal conjuntiva escrita mediante maxtérmi-
nos se le denomina fórmula canónica conjuntiva o fórmula
de maxtérminos.

Se verifican los siguientes teoremas:

Teorema 2.18.- Dada la lista completa de maxtérminos de n variables, asignando arbitraria-


mente 1’s y 0’s a cada variable, se verifica que un único maxtérmino tomará el
valor 0.
Demostración.- Para que dos o más maxtérminos tomasen el valor 0 con una sola combinación
de las variables de entrada, se debe cumplir que dichos maxtérminos no se vean influidos
por alguna variable, que se traduce en la inexistencia de dicha variable en el maxtérmino.
Pero dicha afirmación, contradice la definición de maxtérmino en la deben aparecer todas
las variables de la función.

Teorema 2.19.- La fórmula compuesta por los 2n maxtérminos será idénticamente 0.


Demostración.- Del teorema anterior, vemos que una determinada combinación de 1’s y 0’s en
las variables de entrada, provoca que un maxtérmino tome el valor 0. Por lo tanto si suma-
mos todos los mintérminos posibles, siempre habrá algún maxtérmino que tome el valor 0,
que al multiplicarlo con los restantes 1’s, dará a la función el valor 0.

Teorema 2.20.- Cada función puede expresarse como suma de maxtérminos.


Demostración.- Cualquier función se puede expresar como suma de términos suma, al evaluar
los paréntesis de una fórmula equivalente. Una vez que tengamos una fórmula equivalente a
la original escrita como suma de términos suma, pasamos a incluir en todos los términos,
todas las variables de la función. Para ello, haremos uso del elemento identidad y el cuarto
postulado (a·a’=0, en particular), sustituiremos los 1’s necesarios de los términos productos
22 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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.21.- La fórmula canónica conjuntiva o de maxtérminos es única.


Demostración.- Para obtener una fórmula equivalente de maxtérminos, un maxtérmino no
puede ser sustituido, ya que el valor 0 de dicho maxtérmino no puede ser añadido con otro.
Repitiendo este razonamiento en todos los maxtérminos que aparecen en la fórmula, vemos
que ninguno puede ser sustituido. Tampoco se puede añadir más maxtérminos ya que éstos
harán que la función tome el valor 0 en un caso erróneo. Y por último, tampoco se puede eli-
minar ningún maxtérmino ya que para la combinación que se haría 0, la función ya no ten-
dría el valor correcto. Por lo tanto, no se pueden añadir, eliminar o sustituir maxtérminos,
por lo que la fórmula queda inalterable.

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:

Si x1 = 0, f(0, x2,…, xn) = A


Si x1 = 1, f(1, x2,…, xn) = B

Teorema 2.23.- Cada función completa puede escribirse como:


f(x1, x2,…, xn) = ∏ i [f(i) + Mi(x1, x2,…, xn)]

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

siguiente fórmula de maxtérminos.


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 = M0 · M4 · M6 = ∏ M(0,4,6)
Tabla 2.7. Ejemplo de fórmula expresada como producto de maxtérminos.

El modo de transformar una fórmula de mintérminos en otra de maxtérminos se basa en


la doble complementación ya que (f’)’ = f. En esta transformación se verifican los siguientes
teoremas:

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

complementar, ahora aparecerán complementadas y viceversa). Por lo tanto, el índice del


mintérmino y del maxtérmino obtenido de su complementación es el mismo. Y como el
complemento del complemento de un elemento es ese mismo elemento, la segunda igualdad
también queda demostrada.

No obstante, a la hora de implementar las funciones de conmutación mediante circuitos o


puertas lógicas, las expresiones en formas canónicas no derivan en una implementación
óptima, generalmente. Las expresiones más empleadas para su posterior implementación son
las que siguen una serie de criterios de minimalidad. Los criterios más comunes son los
siguientes:
• Menor número de variables.
• Menor número de términos (ya que, por lo general, un término suele corresponderse
con una puerta lógica).
• Menor valor asociado. Este valor sigue la siguiente fórmula:
nº términos + nº variables – nº términos con un solo literal –1

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).

El paso de una fórmula a otra, y en particular a la fórmula mínima, se basa en la aplica-


ción de los postulados y los teoremas correspondientes al álgebra de conmutación.

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

de dos funciones diferentes:


• Una función completa, f, que contempla todas las inespecificaciones como 0 ó 1,
según el tipo de representación. En el caso anterior sería f = m1 + m2 + m5 = M0·M4.
• Y otra función completa, denominada función inespecificación, que contempla todas
las combinaciones para las que la función no está definida, soliéndose denominar
como la función φ. En el caso anterior sería φ = m3 + m6 + m7 = M3·M6·M7.

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.

Una vez visto el álgebra de Boole, y en particular el de conmutación, pasaremos a ver


como se harían las operaciones más básicas de la aritmética (suma, resta, multiplicación y divi-
sión) utilizando el código binario.

5.1. Suma 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.

Sustraendo 10100.11 20.75


Desbordamiento 10110 0
Minuendo 01011.01 11.25
Resultado 01001.10 09.50
TEMA II: ÁLGEBRA DE CONMUTACIÓN 27

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

Otra forma de obtener el complemento a dos es la siguiente: empezando por la derecha


se deja todo igual hasta encontrar el primer 1 (inclusive) y a partir de ahí se invierte la parte
restante bit a bit.

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.

En el caso que queramos realizar operaciones complejas (multiplicación y/o división)


con números de potencia de dos (2, 4, 8, 16, 32), éstas resultan muy simples por propia cons-
trucción del código binario. La multiplicación (división) por 2n se realiza desplazando el punto
decimal n dígitos a la derecha (izquierda). En el caso de que no existan más dígitos, se rellena-
rán con ceros. Esta forma se puede demostrar por la expresión polinómica de los números
binarios.

(bn·2n + … + b0·20 + b-1·2-1 + … b-q·2-q) x 2j = bn·2(n+j) + … + b0·2(0+j) + b-1·2(-1+j) + … + b-


(-q+j )
q·2

100110101.1 x 16= 1001101011000

5.5. Multiplicación.

La multiplicación de dos números binarios cualesquiera se basa en la tabla 2.12 de com-


binaciones:
A B Producto
0 0 0
0 1 0
1 0 0
1 1 1
Tabla 2.12. Tabla de verdad correspondiente al producto aritmético.
28 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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.

La división es la operación más compleja, realizándose generalmente a través de una


algoritmo. El algoritmo que vamos a emplear será el siguiente. El divisor se alineará con la
parte más significativa (más a la izquierda) del dividendo y se restará. Si el resultado de esta
resta es negativo, al cociente se le añade un cero a la derecha y el divisor se desplaza un dígito
a la derecha y volvemos a restar. Si el resultado es positivo, al cociente se le añade un 1 a la
derecha y al resultado de la resta se le añade el dígito inmediatamente siguiente de la derecha
del dividendo, y se vuelve a empezar. A continuación, vemos en la figura 2.2, y a modo de
ejemplo, la división correspondiente a 45/5:

101101 101
101
000101 1001
101
000

Figura 2.2.- Ejemplo de la división binaria.


TEMA II: ÁLGEBRA DE CONMUTACIÓN 29

6. Apéndice: Funciones Complejas.

Hasta ahora hemos visto funciones de forma general. No obstante, existen funciones con
unas determinadas propiedades especiales que suelen darle el nombre.

6.1. Funciones simétricas.


Una función se denomina totalmente simétrica cuando per-
manece inalterable ante cualquier permutación de sus
variables.

En estos casos, lo que realmente da el comportamiento de la función no son las variables


individuales, sino su conjunto. En el caso de que la simetría se dé para algunas variables com-
plementadas, se dice que la función es simétrica mixta. Pero en ambos casos se dice que la fun-
ción es simétrica. La forma de representar estas funciones es mediante la letra S, seguida
(mediante subíndices) del número de 1's para los que la función toma el valor 1. En la tabla
2.13 mostramos un ejemplo:
X0 X1 X2 nº de 1’s F(X0,X1,X2)
0 0 0 0 1
0 0 1 1 1
0 1 0 1 1
0 1 1 2 0
1 0 0 1 1
1 0 1 2 0
1 1 0 2 0
1 1 1 3 1
F(X0,X1,X2) = S0,1,3(X0,X1,X2)
Tabla 2.13. Ejemplo de una función simétrica.

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 estas funciones es la fácil implementación mediante conmutadores.

6.2. Funciones frontales y backales.


Cuando se puede encontrar una fórmula en suma de produc-
tos en la que una variable, xi, sólo aparece sin comple-
mentar (o complementada), se dice que dicha función es
positiva (o negativa) para la variable xi.
En cambio, si en todas las fórmulas aparece tanto la
variable sin complementar como la complementada, se dice
que la función es mixta en xi.
Mientras que si existe una fórmula en la que no aparece la
variable xi, se dice que la función es vacua en xi.
Extendiendo estas definiciones al conjunto completo de
30 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

variables de la función, se dice que una función es fron-


tal (backal) si es positiva (negativa) en todas sus
variables.

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.

6.3. Funciones umbrales.


Una función umbral se define como aquella que se puede
definir mediante desigualdades a modo de pesos, por ejem-
plo

f(x1, x2,…, xn) = 1 si n xi· wi >T

donde wi representa el vector peso y T el umbral. La representación gráfica de estas funciones


(figura 2.3) se realiza mediante una caja en la que cada entrada está acompañada del peso aso-
ciado, mientras que en la esquina superior derecha se le indica el umbral a partir del cual el
valor de la función será 1.

T
W1

W2
F

Wn

Figura 2.3.- Símbolo de una función umbral.

La ventaja de estas funciones radica en una fácil implementación física.


TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES
En el presente tema, vamos a presentar los mecanismos y procedimientos para poder
obtener el comportamiento, tanto lógico como temporal (en un grado no excesivamente pre-
ciso), de un circuito combinacional.

1. Introducción.

Dentro de la Electrónica, existen dos problemas básicos: análisis y diseño de circuitos.


Luego antes de abordar dichos problemas, vamos a darles una posible definición.

El problema de análisis (que trataremos con respecto a los circuitos combinacionales en


este tema) se puede argumentar de la siguiente forma:
Dado un circuito electrónico, determina el comportamiento
y la funcionalidad que presenta dicho circuito.

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.

Estos dos problemas se pueden afrontar desde tres formas diferentes:


• Mediante técnicas algebraicas, generalmente cálculos a mano. Este hecho conlleva
una limitación a bloques o circuitos pequeños.
• Mediante simulación hardware o emulación. Este método se basa en la construcción
de un modelo físico, siendo este último el que es estudiado. Por ejemplo, montando
un circuito en una placa de entrenamiento.
• Mediante simulación. Nos ayudamos de las herramientas de diseño asistido por orde-
nador (C.A.D.), en la que emulamos el circuito. Estas herramientas se pueden clasifi-
car en herramientas de simulación (para obtener el comportamiento de un circuito) y
de síntexis (para obtener un circuito a partir de un comportamiento).

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.

Puerta AND Puerta OR Puerta NOT o inversor

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’

Figura 3.1.- Simbología tradicional e internacional correspondiente a las puertas lógicas


básicas.

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.

El siguiente paso consiste en identificar cuando un conjunto de puertas es completo. Si


nos guiamos por la definición, podríamos pensar que si empezamos a implementar funciones
arbitrarias, podríamos determinar si el conjunto de puertas es completo. No obstante, este
método no sería muy práctico ya que siempre existiría la duda de si alguna función que no
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 33

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

Figura 3.2.- Conjunto completo formado por puertas AND e inversores.

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.

Puerta NAND Puerta NOR


A A
Símbolos B F B F
tradicionales Q Q

A A
Símbolos B B ≥1 F
& F
internacionales
Q Q

F = A·B·...·Q F = A+B+...+Q

Figura 3.3.- Simbología tradicional e internacional de las puertas NAND y NOR.

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.

Dentro de las denominadas puertas, que no implementan un operador directo, se encuen-


tra la conocida como OR-exclusiva o XOR. Esta puerta muestra la siguiente funcionalidad: Y
= A'·B + A·B'. La importancia radica en su amplio uso en la aritmética binaria (siendo la puerta
base de la suma). También es muy usada en las circuiterías de detección y corrección de erro-
res, implementando funciones de comparación y paridad. Su símbolo y tabla de combinaciones
se muestra en la figura 3.5.

A
F=A⊕B A B F
B
0 0 0
0 1 1
=1 1 0 1
1 1 0

Figura 3.5.- Símbolo y tabla de verdad de la función XOR (exclusiva OR).

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

Figura 3.6.- Utilización de los “círculos” como símbolo de negación.

3. Análisis.

El comportamiento de los circuitos combinacionales sólo depende de las señales de


entrada en un instante determinado, y no de la secuencia de entradas, es decir, de la historia del
circuito. Este hecho no quiere decir que el comportamiento temporal no sea importante, de
hecho una de las principales características de los circuitos que se tienen en cuenta es la veloci-
dad de operación o el retraso de propagación. En función de este retraso, podemos encontrar
dos zonas temporales de operación bien diferenciadas: estado estacionario y estado transitorio.
Una posible definición de estos estados sería la siguiente:
El estado transitorio es aquel espacio temporal que va
desde el cambio de las entradas hasta que la salida se
estabilice.

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

El estado estacionario es aquel espacio temporal que va


desde la estabilización del circuito lógico hasta que las
entradas vuelvan a cambiar.

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

Figura 3.7.- Separación entre estados transitorios y estacionarios.

3.1. Análisis 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

Figura 3.8.- Ejemplo de análisis estacionario de un circuito lógico.

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

3.2. Análisis transitorio.

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

3.2.1. Caminos críticos

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.

Supongamos que queremos pasar de la combinación “000” a la “110” en la función con


las tablas de combinaciones de la figura 3.10. Como hemos visto antes, no podemos cambiar
más de una señal de forma simultánea; luego primero debemos cambiar una señal de entrada y
luego la otra. Si tenemos en cuenta este razonamiento, la salida pasará por un valor ‘0’ sin que
nosotros esperemos este nivel. Por lo tanto, este pulso, mostrado en la figura 3.10, será consi-
derado un azar, por la razón de que no es esperado.
A B C F A B C F
0 0 0 1 0 0 0 1
0 0 1 0 0 0 1 0
0 1 0 0 0 1 0 0
0 1 1 0 0 1 1 0
1 0 0 1 1 0 0 1
1 0 1 0 1 0 1 0
1 1 0 1 1 1 0 1
1 1 1 1 1 1 1 1

Figura 3.10.- Ejemplo de azar de función.


TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 41

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.

Un ejemplo de azar de función es el mostrado en el ejemplo anterior. En ese ejemplo, el azar


era debido a que para llegar a la combinación final se debía pasar por otras combinaciones en
las que la salida tomaba un valor diferente.

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.

Si estudiamos la transición “111” a “101”, podemos apreciar que no existirán azares de


función, ya que al igual que antes sólo se produce el cambio de una sola señal de entrada. No
obstante se deberían producir una transición simultánea en las señales N2, N3 y N5. Como esto
no es posible, se producirá un azar en la señal N4 (debido a la transición de N2 y N3) que se
unirá a otro en la salida (debido al azar de N4 y a N5).

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.

En el ejemplo anterior, hemos observado dos comportamientos diferentes. La diferencia


radica en que la señal de salida, al alcanzar el estado estacionario, deba cambiar de valor o no.
Esta diferencia nos da otra clasificación de azares:
• Azares estáticos.- donde la señal de salida en la que se produce el azar no debería
cambiar su estado. Este tipo de azares se debe a que dos señales que deberían ser com-
42 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

A
N5
B F
B N3

N4
B N2
N1
C

N1 = ‘0’ N1 = ‘0’ N1 = ‘0’ N1 = ‘0’


A = ‘0’ N2 = ‘1’ A = ‘0’ N2 = ‘0’ A = ‘1’ N2 = ‘1’ A = ‘1’ N2 = ‘0’
B = ‘1’ N3 = ‘0’ B = ‘0’ N3 = ‘1’ B = ‘1’ N3 = ‘0’ B = ‘0’ N3 = ‘1’
C = ‘1’ N4 = ‘0’ C = ‘1’ N4 = ‘0’ C = ‘1’ N4 = ‘0’ C = ‘1’ N4 = ‘0’
N5 = ‘0’ N5 = ‘0’ N5 = ‘1’ N5 = ‘0’
F = ‘0’ F = ‘0’ F = ‘0’ F = ‘1’

N1
TOR
TOR
N2
Tinv Tinv
N3
TAND TAND
N4
TAND TAND
N5
TOR TAND TOR
F
TOR TOR TOR

Figura 3.11.- Ejemplo de azares lógicos.

plementarias entre sí, no lo son en un determinado intervalo temporal dentro del


estado transitorio. En nuestro caso serían N2, que debería valer B, y N3, que debería
valer B; pero debido a los retrasos de las puertas se observa que en el transitorio B =
B, que será imposible en el estado estacionario.
• Azares dinámicos.- donde la señal de salida en la que se produce el azar sí debe cam-
biar de estado. Este tipo de azares se puede ver como un azar estático al que se le ha
añadido la transición de una señal. En nuestro caso sería el azar estático producido por
las señales N2 y N3, al que se le ha añadido la transición de la señal B a través de N5.

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).

En la figura 3.12 se mostrarán los mapas de Karnaugh correspondientes a funciones


hipotéticas de 2, 3 y 4 variables:

0 1 00 01 11 10
0 0
1 00 01 11 10 1
00
01
11
10

Figura 3.12.- Ejemplos de mapas de Karnaugh.

Un ejemplo de la utilidad de los mapas de karnaugh consiste en la identificación de los


azares de función, como podemos ver en la figura 3.13. Los caminos que han sido expuestos no
son los únicos que se pueden dar. En el caso del azar estático podemos comprobar que existen
dos caminos diferentes para llevar a cabo la transición. En cambio, en el caso del azar diná-
mico, podemos comprobar que existen seis caminos diferentes para obtener dicha transición.
No obstante, con la simple condición de que se obtenga un azar para alguna de las combinacio-
nes, ya se dirá que existe el azar debido a la característica de potencial.
Azar estático

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

Figura 3.13.- Ejemplos de azares estáticos y dinámicos de función.


44 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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.

El principal motivo de la existencia de azares lógicos estáticos consiste en la aparición de


variables complementadas y sin complementar (que deberían tener siempre valores opuestos)
con el mismo valor de forma transitoria debido generalmente al retraso de las puertas lógicas.
Por lo tanto, a la hora de analizar algún circuito en régimen transitorio (y observar la posible
presencia de azares) no podemos hacer uso del 4º postulado del álgebra de Boole ni de los teo-
remas basados en él. Por lo tanto, un método para detectar la presencia de azares estáticos, se
basa en el siguiente procedimiento:
A partir de la fórmula original, si existe alguna combi-
nación de las señales de entrada que la transforme en
alguna de las formas del 4º postulado, se puede demostrar
que para dicha transición existe un azar estático.

Si reducimos la fórmula a una de las expresiones del cuarto postulado, en la transición de la


variable que nos queda cambiarán de valor los dos términos, y a valores diferentes. Ésta, como
recordamos, es la condición de azar: un cambio simultáneo de varias señales (dos señales inter-
nas en este caso).

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.

En el caso de azares lógicos dinámicos, no debemos perder de vista que se trata de un


azar estático al que se le ha añadido una transición. La forma de añadir esa transición puede set
a través de un producto o una suma lógica. Por lo tanto, las ecuaciones a las que se llegaría
serán las siguientes:
• F = x + x·x’
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 45

• 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 continuación veremos como ejemplo el análisis, tanto estacionario como transitorio


(con respecto a azares lógicos estáticos y al camino crítico), del circuito mostrado en la figura
3.14:

A
N5
B F
B N3

N4
B N2
N1
C

Figura 3.14.- Ejemplo de análisis estacionario y transitorio.

4.1. Análisis estacionario

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.

La fórmula obtenida del circuito es:


N1 = c’
N2 = b+N1 = b + c’
N3 = b’
N4 = N3 · N2
N5 = a·b
F(a,b,c) = N5 + N4 = a·b + b’·(b+c’)

A continuación, para acabar el análisis estacionario, mostramos la tabla de verdad en la tabla


3.2. Una forma rápida de obtener la tabla consiste en pasar la fórmula a suma de productos
(producto de sumas); una vez expresada de esta forma, determinar las combinaciones para las
que cada término producto (suma) toma el valor ‘1’ (‘0’); el resto de combinaciones tomará el
valor ‘0’ (‘1’).
46 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

A B C F Términos con valor ‘1’


0 0 0 1 b’·c’
0 0 1 0 --
0 1 0 0 --
0 1 1 0 --
1 0 0 1 b’·c’
1 0 1 0 --
1 1 0 1 a·b
1 1 1 1 a·b
Tabla 3.2. Tabla de verdad del circuito de la figura 3.14.

4.2. Análisis transitorio

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.

4.2.1. Camino crítico

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

4.2.2. Azares lógicos estáticos

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.

Para estudiar la presencia de azares de ‘0’, pasaremos la función a producto de sumas,


para lo cual complementaremos dos veces la expresión en suma de productos (de nuevo sin uti-
lizar el 4º postulado ni sus teoremas asociados).
F’ = (a’+b’)(b+b’)(b+c) = (a’·b + b’)(b+c) = a’·b + b’·b + b’·c
F = (a+b’)(b+b’)(b+c’)

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.

4.2.3. Azares lógicos dinámicos

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.

El principal motivo de la existencia de azares lógicos dinámicos consiste en la aparición


de variables complementadas y sin complementar (como en los azares estáticos) que siguen
más de un camino, tal que la función pueda escribirse de la siguiente forma:
F = a1 + a2·a'3 --> F= a1·(a2 + a'3)

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.

De aquí obtenemos un método para detectar los azares dinámicos. El procedimiento a


seguir es el siguiente:
Se etiquetan los diferentes caminos que puede seguir
caminos una variable hasta el nodo de salida, tomando las
variables etiquetadas con índice diferentes como varia-
bles distintas. Por lo que además de no poder usar el 4º
postulado, tampoco se puede usar los teoremas de idempo-
tencia, ni los asociados.
TEMA III.- ANÁLISIS DE CIRCUITOS COMBINACIONALES 49

a1 a1

a2 a2

a 3’ a 3’

F F

Figura 3.17.- Comportamiento de los azares dinámicos.

Se obtiene de nuevo la fórmula de productos y de sumas, y


se trata de reducir a una de las expresiones mencionadas
anteriormente, dando valores al resto de entradas. Si
dicha transformación es posible, se dice que el circuito
tiene un azar lógico dinámico.

Si volvemos al ejemplo anterior, la fórmula lógica quedaría de la siguiente forma:


F = a5·b5 + b3’·(b2+c1’)

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’

Luego se observa la presencia de un azar dinámico en la señal B cuando A=’1’ y C=’1’. La


señal C debe valer ‘1’ ya que b3’·b2 + b3’= b3’.

Al pasar la fórmula a producto de sumas, obtendríamos:


F’=(a5’+b5’)(b3+b2’)(b3+c1) = (a5’·b3+a5’·b2’+b5’·b3+b5’·b2’)(b3+c1) =
a5’·b3 + a5’·b2’·c1+ b5’·b3 + b5’·b2’·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

Figura 4.1.- Ejemplo de un problema de diseño.

El problema de la obtención de un circuito que implementa la función de conmutación


dada sí tiene unas metodologías bien establecidas. La realización de esta parte depende de los
elementos con los que se implemente el circuito. Podemos distinguir los siguientes tipos de
diseño:
• Diseño semi-custom.- Los bloques que disponemos serán puertas lógicas existentes en
alguna librería disponible.
52 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

• 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.

En el diseño semi-custom, podemos distinguir entre implementaciones en dos niveles o


multiniveles, donde los niveles son el número máximo de puertas que están conectados en cas-
cada (en los niveles no se suelen contar los inversores de entrada). La implementación en dos
niveles es del tipo de suma de productos o de producto de sumas; en cambio, la implementa-
ción multinivel corresponde a una fórmula compleja en las que las operaciones AND y OR
aparecen mezcladas.

La implementación en dos niveles tiene la ventaja de ser rápida, solamente el retraso de


dos puertas; en cambio, como contraposición, las puertas deberán tener un mayor número de
entradas, siendo más complejas y lentas. Mientras, la implementación multinivel tiene la ven-
taja de usar puertas más pequeñas y rápidas (por lo general), pero el circuito global será más
lento al tener un retraso de más de dos puertas. En la figura 4.2 mostramos dos implementacio-
nes de la misma función: en dos niveles y en multinivel.

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

• Menor valor asociado.

La implementación mínima multinivel no tiene un método bien establecido y los que


existen son muy complejos. Por lo tanto, lo que se suele hacer es:
• Dividir el diseño en varias partes, implementadas en dos niveles cada una, y unirlas
posteriormente.
• Obtener una implementación en dos niveles y una vez que tengamos la fórmula, ope-
rar mediante el álgebra de Boole para unir los términos posibles.

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

Implementación conjunta Implementación separada

A A
B F1 B F1
C
C B
A
A
B
B
F2 F2
B B
C C

F1 = A’·B + A·B·C Nº puertas AND: 3 F1 = A’·B + B·C Nº puertas AND: 4


F2 = B·C’ + A·B·C Nº puertas OR: 2 F2 = B·C’ + A·B Nº puertas OR: 2

Figura 4.3.- Diferencia entre la implementación monosalida y multisalida.

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

2. Método del Mapa.

Este método se basa en el mapa de Karnaugh y el 4º postulado del álgebra de Boole. Si


recordamos los mapas de Karnaugh, consiste en una representación tabular en dos dimensio-
nes, tal que cada celda adyacente (geométricamente hablando) también es adyacente desde el
punto de vista de la distancia de Hamming. Debido a la característica de que todas las celdas
adyacentes tienen una distancia igual a la unidad (sólo cambia una variable), se pueden demos-
trar las siguientes igualdades:
Un grupo de 1’s adyacentes en un número igual a una potencia de dos, es realizado
por el término producto de las variables que no cambian de valor, tomándolas como
sin complementar si valen ‘1’ y complementadas si valen ‘0’.

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.

Veamos un ejemplo al respecto. En la figura 4.4 se muestra el mapa de Karnaugh de una


función cuya fórmula de mintérminos es F(A,B,C,D) = ∑ m( 1, 5, 7, 10, 11, 14, 15). Podemos
apreciar que en dicha función podemos formar cuatro grupos de 1’s adyacentes, etiquetados I1,
I2, I3 e I4.
F = ∑m(1,5,7,10,11,14,15)
AB
CD 00 01 11 10
I4
00 0 0 0 0
I3
01 1 1 0 0

11 0 1 1 1
I1
10 0 0 1 1

I2

Figura 4.4.- Ejemplo de grupos de 1’s adyacentes en un mapa de karnaugh.

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.

Si consideramos la función del ejemplo anterior, y consideramos la fórmula como suma


de productos (consideraremos los 1’s), todas las fórmulas de dicha función serán:
f = I1 + I3 + I4 = a·c + a'·b·d + a'·c'·d,
f = I1 + I2 + I4 = a·c + b·c·d + a'·c'·d,
f = I1 + I2 + I3 + I4 = a·c + b·c·d + a'·b·d + a'·c'·d

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.

Los mapas de Karnaugh mantienen su peculiaridad (diferenciarse en una variable sólo


para las celdas adyacentes) para las funciones con cuatro variables o menos. Si aumentamos
este número, por ejemplo a cinco variables (figura 4.5), podemos ver que existen celdas con
una distancia igual a 1 (y por lo tanto, se pueden unir en un mismo implicante) que no son
adyacentes (desde un punto de vista geométrico). En el mapa de cinco variables mostrado exis-
ten columnas que se deben unir en un mismo implicante que no son adyacentes geométrica-
mente. La columna 010 tendrá una distancia de Hamming de 1 con respecto a la columna 000,
pero no son adyacentes, por lo que el implicante a'·c' no sería fácilmente distinguible por el
método del mapa. Para resolver este problema, existen dos soluciones.
F
AB
CD 000 001 011 010 110 111 101 100

00

01

11

10

Figura 4.5.- Ejemplo de mapa de karnaugh de cinco variables.

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

El teorema de expansión nos dice que F = x4·F(x4=1) + x4’·F(x4=0), es decir


F = x4 · (x5·x3·x2 + x5’·x3’·x1’) + x4 · (x5’·x3’·x1’)

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

Figura 4.6.- Mapas de Karnaugh de la función


F(x5, x4, x3, x2, x1)= ∑ m(0, 2, 8, 10, 30, 31)

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.

Veamos el ejemplo de la figura 4.8. Las inespecificaciones en los mintérminos 3 y 6 nos


han servido para pasar de tres implicantes de tres variables a dos implicantes de dos variables.
En cambio, la inespecificación 12 no nos sirve para aumentar ningún implicante, por lo que no
se considera. En la nueva función, se puede observar que los implicantes I1 y I3 son esenciales,
mientras que el I2 no. En este caso, la función mínima sólo es la suma de los dos implicantes
esenciales, es decir, f = a·c + a'·d.
F = ∑m(1,5,7,10,11,14,15) + φ (3, 6, 12)
AB
CD 00 01 11 10
00 0 0 φ 0
I3 = A’·D
01 1 1 0 0
11 φ 1 1 1
I1 = A·C
10 0 φ 1 1
I2 = B·C

Figura 4.8.- Ejemplo de diseño de una función incompleta utilizando el método del mapa.

Si en lugar de querer una implementación de suma de productos, queremos una imple-


mentación de producto de sumas, se opera de la misma forma pero con los ceros y los términos
sumas. Como recordaremos, la única diferencia para pasar del término suma a la operación OR
con respecto al paso del término producto a la operación AND, consiste en que ahora la varia-
ble aparecerá complementada si tiene el valor 1 y sin complementar si tiene el valor 0.

En el caso del ejemplo anterior, en la figura 4.9 mostramos la implementación en pro-


ducto de sumas:
60 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

F = ∑m(1,5,7,10,11,14,15) + φ (3, 6, 12) = ∏ M(0,2,4,8,9,13)·φ (3, 6, 12)


AB
CD 00 01 11 10
I1 = C+D
00 0 0 φ 0
01 1 1 0 0 F = (A+D)(A’+C)
I2 = A’+C
11 φ 1 1 1
10 0 φ 1 1 I3 = A+D

Figura 4.9.- Ejemplo de diseño de una función incompleta en producto de sumas.

3. Método de McCluskey

Como ya hemos apuntado, cuando estamos considerando una función multisalida, la


posibilidad de compartir puertas para varias salidas puede conducirnos a una implementación
más óptima. Luego deberemos encontrar un método que le dé un mayor peso a los términos
comunes a la hora de su elección para desarrollar la fórmula lógica.

El método del mapa no es apropiado para la implementación de funciones multisalida al


no considerar la posibilidad de términos comunes en las diferentes salidas de la función. Esta
consideración sí se lleva a cabo en el método de McCluskey. Por lo tanto, al considerar funcio-
nes multisalida, la definición de implicante cambia de la siguiente forma.
Los implicantes de una función multisalida serán aquellos implicantes de las salidas
por separado como de todas las posibles combinaciones (productos en el caso de
suma de productos o sumas en el caso de producto de sumas) de las diferentes sali-
das.

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

Figura 4.10.- Ejemplo de una tabla de McCluskey.

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 el implicante B tachando su fila.


Se dice que A y B son equivalentes si todas las marcas del implicante A están en el
implicante B que no tiene ninguna 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

Figura 4.11.- Implicantes de una función multisalida.

En la figura 4.12 se muestra el proceso completo de minimización. En la figura 4.12 (a)


mostramos la tabla de McCluskey original, en la que se pueden ver los implicantes comunes a
las dos salidas (I1), y los de cada una de ellas (I2 e I3 para F1, I4 e I5 para F2). Así mismo, en
las columnas se encuentran los mintérminos de cada salida por separado (como el mintérmino
7 es común a ambas, se coloca dos veces, una en cada salida).

En la figura 4.12 (b), se ha aplicado el criterio de esencialidad. Se comprueba que existen


dos implicantes esenciales; I3 para F1 debido al mintérmino 1, e I4 para F2 debido al mintér-
mino 2. Luego ambos implicantes aparecerán en las fórmulas correspondientes. Al aparecer ya
en las fórmulas, los mintérminos cubiertos por dichos implicantes y para esas salidas no son
necesarios que se cubran de nuevo. Luego, son eliminadas dichas filas (o la parte correspon-
diente a la/s salida/s para los que son esenciales) y las columnas cubiertas por dichos implican-
tes. Por lo tanto, obtenemos una nueva tabla en la que aparecerán los implicantes I1, I2 e I5, y
las columnas 7 de ambas salidas.

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.

En el caso de que tengamos funciones incompletas, las inespecificaciones solamente se


utilizarían a la hora de obtener las implicantes primas, de tal forma que las implicantes tengan
el menor coste posible. Una vez obtenidas dichas implicantes, solamente se trata la función
completa asociada.

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.

El proceso de minimización es mostrado en la figura 4.14. Empezamos con los criterios


de esencialidad, observando que los implicantes I3 e I2 son esenciales para F1, y el implicante
I5 es esencial para F2. En este caso, el implicante esencial I2 también es implicante para F2
(aunque no esencial para dicha salida). Por lo tanto, se ha cogido para la salida F1, pero no se
ha eliminado de la tabla (solamente se ha eliminado la porción de F1); no obstante se ha eti-
quetado dicho implicante para recordarnos que su nueva elección para otra salida no conlleva
coste alguno (si fuese necesario acudir a este parámetro para arbitrar un posible criterio de
equivalencia) .

El resto del proceso de minimización es equivalente al visto anteriormente. Se aplican


alternativamente los criterios de esencialidad y de dominancia hasta acabar con todas las
columnas o llegar a una tabla cíclica.
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 65

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.

4. Diseño libre de azares.

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).

Obviamente, al añadir una nueva funcionalidad al diseño, la no existencia de azares, los


diseños obtenidos tendrán un coste mayor o igual que no fuesen considerada esta caracterís-
tica.

4.1. Método del mapa.

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.

En el ejemplo correspondiente, la implementación libre de azares se muestra en la figura


4.15. En este caso todos los implicantes son esenciales, por lo que deberán aparecer en la fór-
mula lógica.

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

F = A + B + C + D = a·c + b·c·d + a’·b·d + a’·c’·d

Figura 4.15.- Implementación libre de azares utilizando el método del mapa.

4.2. Método de McCluskey

Al igual que sucedía con la formulación basada en el mapa de Karnaugh, la formulación


desarrollada en el método de McCluskey es la misma sustituyendo los 1’s (0’s) por las parejas
de 1’s (0’s) adyacentes. En este caso, solamente se vería alterada la creación de la tabla de
McCluskey en el sentido en que donde antes se colocaban los 1’s (0’s) de cada salida, es decir,
en las columnas, ahora se colocan las parejas de 1’s adyacentes o los 1’s que no tengan ninguno
adyacente. Seguidamente el implicante deberá cubrir a toda la pareja de cada columna.
TEMA IV.- DISEÑO DE CIRCUITOS COMBINACIONALES. 67

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

Figura 4.16.- Tabla de McCluskey libre de azares.

El proceso de minimización será idéntico al mostrado en el apartado anterior. Es decir, la


aplicación alternativa de los criterios de esencialidad y de dominancia. En este caso, los impli-
cantes I2 e I3, e I4 e I5 son esenciales para las salidas F1 y F2 respectivamente. Por lo tanto, la
implementación mínima libre de azares quedaría de la siguiente forma:
f1 = I2 + I3 = a'·c + b·c
f2 = I4 + I5 = b·c' + a·b

5. Implementación del circuito digital

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

Figura 4.17.- Implementación en suma de productos de la función f = a·c + a'·d


68 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

6. Conversión entre implementaciones de dos niveles.

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.

Para convertir una implementación de suma de productos en producto de suma se pro-


cede a la doble inversión, como ya se ha comentado. No obstante, la implementación obtenida
no tiene porqué ser mínima, sino que puede ser necesario una minimización utilizando los teo-
remas del álgebra de Boole. Veamos el ejemplo de la fórmula:
F = a’·b·c + a·b’ + a·b·c’
F’ = (a+b’+c’)·(a’+b)·(a’+b’+c) = (a+b’+c’)·(a’+b·c) = a·b·c + a’·b’ + a’·c’
F = (F’)’ = (a’+b’+c’)·(a+b)·(a+c)

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 de suma de productos, vemos que si cambiamos la puerta OR por su imple-


mentación con puertas NAND es decir, (a' and b')', obtenemos la implementación mostrada en
la figura 4.18. De donde observamos que la conversión de suma de productos a NAND-NAND
es inmediata y sin necesidad de realizar casi ningún cambio. El único caso en que sería necesa-
rio algún cambio se da cuando existe alguna entrada que va directamente a una entrada de la
puerta OR del segundo nivel. En este caso, como podemos observar en la figura 4.18b es nece-
sario la adición de un inversor (o de algún elemento con su funcionalidad).

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)

Figura 4.18.- Conversión de la implementación AND-OR a la implementación NAND-


NAND.

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)

Figura 4.19.- Conversión de la implementación OR-AND a la implementación NOR-NOR.


70 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
TEMA V.- DISEÑO MSI
(MEDIUM SCALE INTEGRATION).
El diseño MSI surgió gracias a los avances en la tecnología de integración. Estos avances
abarataron los costes de producción, y permitieron el desarrollo de circuitos más generales.

En la primera etapa de la Electrónica, los circuitos eran construidos únicamente a modo


de chips específicos (generalmente a partir de puertas sencillas) debido al excesivo coste de la
integración. A medida que el tiempo pasó, se fueron mejorando las técnicas de integración aba-
ratándose de esta forma la integración de los circuitos. Esta reducción del coste llegó hasta tal
punto que ya no era restrictivo la construcción de circuitos de propósito general, de tal forma
que el diseñador, como paso previo a la integración, generalmente podía construir un prototipo
con la conexión de estos bloques. Este prototipo podía construirse en una regleta de entrena-
miento o en una placa impresa (PCB, Printed Circuit Board). A menudo, si el resultado del
prototipo satisfacía todas las expectativas del producto final, el diseño se acababa con la PCB.

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

Figura 5.1.- Símbolo genérico de un bloque MSI.


buscará algún algoritmo que muestre el comportamiento necesario; cada bloque de este algor-
timo suele tener una contrapartida directa en dispositivos MSI, por lo que la implementación
sería una mera sustitución de operadores por dispositivos (como sucedía en la implementación
de las fórmulas lógicas).

Un esquema bastante general de un algoritmo es el mostrado en la figura 5.2, llamado


generalmente diagrama de flujo de datos. A la vista de este diagrama podemos clasificar los
diferentes dispositivos MSI en tres grandes grupos:
• Dispositivos aritmético-lógicos. Son los encargados de realizar el procesado con los
datos.
• Dispositivos de camino de datos. Son los encargados de conducir el flujo de datos por
el camino correcto para realizar una determinada operación.
• Dispositivos de entrada-salida. Son los encargados de adecuar la transmisión de infor-
mación entre el medio exterior (por lo general un usuario) y el circuito implementado.
Estos dispositivos son necesarios, ya que no podemos obligar a que cualquier usuario
conozca la base de la Electrónica Digital para saber introducir la información y
extraer los resultados de las diferentes operaciones.

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.

Los bloques aritmético-lógicos son los encargados de realizar el procesado de la infor-


mación de entrada. Dentro de estos bloques podemos destacar los sumadores, los comparado-
res y las unidades aritmético-lógicas o ALU's.

2.1. Bloques sumadores.

El primer bloque aritmético-lógico que vamos a ver es el bloque sumador.


Un bloque sumador es aquel que realiza la suma aritmética de dos números, como su
propio nombre indica.
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 73

Entrada

Proceso 1

Decisión

Proceso 1 Proceso 1

Decisión

Proceso 1

Salida

Figura 5.2.- Esquema genérico de un diagrama de flujo.

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 implementación de un sumador de dos números de n bits no es única, sino que existen


multitud de ellas. No obstante, todas (o la mayoría) se pueden agrupar en:
• Implementación serie: en la que todos los datos de salida no se obtienen de forma
simultánea.
• Implementación paralela: en la que todos las señales de salida se obtienen de forma
cuasi simultánea, de tal forma que no es necesario hallar una señal de salida para des-
pués obtener el siguiente.

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.

Al aumentar los avances tecnológicos, se han creado bloques de sumadores de cuatro


bits, siendo éstos últimos los bloques más empleados en el diseño MSI. Tanto el símbolo como
74 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

∑ = 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

Figura 5.3.- Tabla de verdad y símbolo correspondiente al sumador completo.

A0 A A1 A A2 A A3 A
∑ ∑ ∑ ∑
B0 B B1 B B2 B B3 B

‘0’ Cin Cout Cin Cout Cin Cout Cin Cout

∑0 ∑1 ∑2 ∑3 ∑4

Figura 5.4.- Conexión en cascada de sumadores completos.

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)

El problema de esta implementación radica en la representación de los números negati-


vos. La representación del sustraendo está hecha en binario convencional (el número negativo
se determina únicamente por el bit de signo, siendo el resto la magnitud), mientras que el resul-
tado (si es negativo) se representa en complemento a dos más un bit de signo. Por lo tanto, para
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 75

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

Figura 5.5.- Tabla de verdad y símbolo de un bloque restador de tres bits.

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.

Debido a estas razones, se suele utilizar siempre la representación del complemento a


dos más el bit de signo para los números negativos. De esta forma, la resta quedaría limitada a
la suma con el complemento a dos. Por lo tanto, el bloque sumador-restador para números de 3
bits, por ejemplo, quedaría de la forma mostrada en la figura 5.6.

La forma de operación del bloque sumador-restador es la siguiente:


• Cuando la señal S/R se encuentra a nivel 0, la operación que realizará será la suma. En
este caso, y como x ⊕ 0 = x, a la entrada B del bloque sumador le entrará el dato B y
el acarreo de entrada será ‘0’.
∑ = A + B + ‘0’ = A + B
• En cambio,cuando dicha señal de control vale ‘1’, a la entrada B estará conectado el
complemento de la señal B y al acarreo de entrada entrará un ‘1’.
∑ = A + B + ‘1’ = A - B

2.2. Bloques comparadores.

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

Figura 5.6.- Circuito de un bloque sumador-restador.

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.

A B = < > A=B A<B A>B


0 0 1 0 0 1 0 0
0 1 1 0 0 0 1 0
1 0 1 0 0 0 0 1
1 1 1 0 0 1 0 0
0 0 0 1 0 0 1 0
0 1 0 1 0 0 1 0
1 0 0 1 0 0 0 1
1 1 0 1 0 0 1 0
0 0 0 0 1 0 0 1
0 1 0 0 1 0 1 0
1 0 0 0 1 0 0 1
1 1 0 0 1 0 0 1
Resto de combinaciones - - -
Tabla 5.1. Tabla de verdad de un bloque comparador de un bit.
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 77

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'

Un posible esquema de un comparador de un bit, con posibilidad de ampliación se mues-


tra en la figura 5.7.

a<b
A<B
a

A=B
a=b
b

A>B

a>b

Figura 5.7.- Una posible implementación de un comparador de un bit.

El problema de esta implementación es que tiene un retraso equivalente alto, de tres


puertas por cada bit comparado. Por lo tanto, los bloques suelen construirse de más de un bit,
generalmente cuatro.

La conexión en cascada de varios comparadores se realizaría uniendo las salidas de un


comparador con las entradas de comparación del siguiente, mientras que las salidas del compa-
rador global serán las salidas del último comparador. A modo de ejemplo mostramos un com-
parador de 12 bits implementado con comparadores de 4 bits. Para ello necesitamos 3
comparadores (12/4 = 3). Es interesante ver que las entradas de comparación del primer com-
parador deben ser tales que suponga que al principio (antes de operar con ningún valor) la
comparación debe dar que ambos operandos sean iguales. Esta conexión se puede apreciar en
la figura 5.8.

A0-3 A A4-7 A A8-11 A

B0-3 B4-7 B8-11


B B B

‘0’ a<b A<B a<b A<B a<b A<B A<B


‘1’ a=b A=B a=b A=B a=b A=B A=B
‘0’ a>b A>B a>b A>B a>b A>B A>B

Figura 5.8.- Conexión en cascada de bloques comparadores.


78 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

2.3. Unidades aritmético-lógicas (ALU).

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

Figura 5.9.- Símbolo de un ALU de cuatro bit.

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

3. Bloques de camino de datos.

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

Figura 5.10.- Degradación de la señal lógica a través de una conexión real.

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.

Las bifurcaciones son implementadas por los denominados demultiplexores. Un cir-


cuito de este tipo presenta un canal de entrada de información, n señales de selección y m (2n)
canales de salida de información. La denominación de estos dispositivos es la siguiente:
DEMUX n:m

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.

La operación de este dispositivo es la siguiente. Las señales S seleccionan uno de los


canales de salida, según su combinación binaria. Luego se conecta el canal de entrada con el
canal de salida seleccionado. Los restantes canales de salida se conectan a un valor fijo bien
definido, característica de cada demultiplexor. Una posible tabla de combinaciones de un
80 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Q0 0 Q0

1 Q1
Q1
A 2 Q2
A 3 Q3
Q2 0 1

Q3
S0 S1

Figura 5.11.- Esquema de un demultiplexor a nivel de conmutadores y su símbolo tradicio-


nal.
demultiplexor se muestra en la tabla 5.3, la cual corresponde a un demultiplexor 1:4 (ya que
tiene una entrada y cuatro salidas).

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.

La implementación lógica de este demultiplexor puede ser la mostrada en la figura 5.12.

Q3

Q2

Q1

A
S1 Q0
S0

Figura 5.12.- Posible implementación de un DEMUX 1:4.


TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 81

3.2. Multiplexores.

Los multiplexores son los dispositivos complementarios a los demultiplexores, es decir,


implementan una unión de diferentes caminos. Un circuito de este tipo presenta un canal de
salida de información, n señales de selección y m (2n) canales de entrada de información. La
denominación de estos dispositivos es la siguiente:
MUX m:q

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

Figura 5.13.- Esquema de un multiplexor a nivel de conmutadores y su símbolo tradicional.

La operación de este dispositivo es la siguiente. Las señales de selección S seleccionarán


un canal de entrada, el cual será el correspondiente a la combinación binaria presente en estas
señales. Este canal seleccionado será conectado a la salida, mientras que el resto estarán desco-
nectados. Una posible tabla de combinaciones de un multiplexor se muestra en la tabla 5.4, la
cual corresponde a un multiplexor 4:1 (ya que tiene una salida y cuatro entradas).

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.

A partir de esta tabla de verdad, podemos obtener una implementación. La implementa-


ción lógica de este multiplexor puede ser la mostrada en la figura 5.14, correspondiente a la
fórmula:
Q = S1’·S0’·A0 + S1’·S0·A1 + S1·S0’·A2 + S1·S0·A3
82 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

A3

A2

Q
A1

A0
S1
S0

Figura 5.14.- Posible implementación de un MUX 4:1.

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.

Por ejemplo, si queremos obtener la implementación de la función f = ∑ m(0,1,3,5,6),


podríamos utilizar multiplexores de la forma mostrada en la figura 5.15.

‘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

Figura 5.15.- Implementación mediante multiplexores de fórmulas lógicas.

3.3. Buffer o driver.

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.

La operación de este dispositivo consiste en la regeneración de la señal digital. Esta rege-


neración consiste en la conexión a la fuente de polarización o de tierra a través de los inverso-
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 83

Figura 5.16.- Símbolo y posible implementación de un buffer o driver.

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

Figura 5.17.- Símbolo y posible implementación de un buffer o driver triestado.

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

Figura 5.18.- Símbolo y posible implementación de un buffer o driver.

4. Bloques de entrada/salida.

Como ya se ha comentado, los usuarios de las aplicaciones basadas en circuitos digitales


no deben conocer la teoría relativa a estos circuitos en lo más mínimo. No obstante, estos usua-
rios serán los que introduzcan los datos con los que realizar las operaciones y recibirán los
datos de salida. Luego necesitamos acondicionar los datos que entienden los circuitos digitales
(que utilizarán algún tipo de código binario) y los que entienden los usuarios (como pueden ser
números decimales, en el caso de calculadoras; caracteres, en el caso de teclados; etc...). Den-
tro de estos bloques, los más representativos son los codificadores y decodificadores.

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

donde n es el número de canales de entrada y m es el número de bits necesarios para codificar


dichos canales.
Un codificador es un circuito de n entradas y m salidas, tal que en la salida obtene-
mos el código binario correspondiente al canal que ha sido activado.

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.

Una posible tabla de combinaciones para un decodificador de 4 a 2 será la mostrada en la


tabla 5.5. El problema de dicha implementación está en la posible situación de que se active
más de un canal de forma simultánea, que aunque no se debe permitir, sí se tiene que conside-
rar. Esta situación se debe a que una sola combinación tiene asignada más de un valor de
salida. Por ejemplo, si se presiona simultáneamente las teclas A1 y A2, el código será el
correspondiente a A3.
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 85

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.

En este caso, al activarse A1 y A2 el código corresponde a A2 debido al régimen de priorida-


des elegido..

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.

Un decodificador es un circuito con n entradas y m (2n) salidas, tal que se activa la


salida correspondiente al código de entrada.

En la tabla 5.7 mostramos la tabla de combinaciones de un decodificador 2:4.


86 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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

Figura 5.19.- Implementaciones de la función lógica f (w, z, y, x) = ∑ m(0,2,8,10,15) utili-


zando decodificadores.
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 87

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

Figura 5.20.- Base y caracteres del decodificador y display de 7 segmentos.

La tabla de combinaciones correspondiente este decodificador es la tabla 5.8. De tal


forma que el segmento que toma el valor ‘1’ se ilumina, mientras que el que toma el valor ‘0’
permanece apagado, formando los dígitos decimales.

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.

5. Aumento de tamaño de dispositivos MSI.

Un punto importante es la generación de dispositivos MSI de mayor tamaño a partir de


otros de menor tamaño, ya que por lo general no vamos a tener dispositivos de todos los tama-
ños posibles sino de unos tamaños estandares.

La interconexión de los bloques de procesado ya ha sido considerada anteriormente, por


lo que no lo vamos a repetir. Sólamente notar que este aumento será a través de la conexión de
los acarreos de entrada y salida o de las señales dispuestas para ello.

Para el resto de los dispositivos susceptibles de aumentar su tamaño se hace uso de la


señal de habilitación. En estos dispositivos no incluiremos los bufferes ni los transceptores ya
que al tener una sola entrada y una sola salida, el tamaño aumentará utilizando el número de
bufferes y transceptores necesarios.
88 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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.

Para el caso del demultiplexor, si queremos implementar un demultiplexor de M canales


de salida a partir de demultiplexores de N canales de salida, necesitaremos M/N demultiplexo-
res (siempre el entero mayor). Las señales de selección de los demultiplexores serán aquellas
de menos peso, mientras que el resto estarán conectadas a un decodificador. Las salidas de este
decodificador (que corresponderán a las combinaciones de las señales de selección de más
peso) irán conectadas a las señales de habilitación de los demultiplexores correspondientes.
Debemos notar que si la entrada de selección está negada, el decodificador que debemos utili-
zar debe ser activo a nivel bajo. Esta implementación es mostrada en la figura 5.21.

Si el aumento de canales es el doble, y por lo tanto sólo necesitamos dos demultiplexo-


res, el decodificador es sustituido por un cable y un inversor (que realmente forma un DECOD
2:1).

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.

El caso del decodificador es similar al del demultiplexor debido a su similitud. Por lo


tanto, se siguen los mismo pasos que en dicho caso.
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 89

CS0 Q12 A12 0 CS


1 Q13 A13 1
2 Q14 A14 2
3 Q15 A15 3
01 10

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

Figura 5.21.- Aumento del número de canales de salida de un demultiplexor y un multi-


plexor.

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

Figura 5.22.- Diagrama de flujo del valor absoluto de la resta.

El siguiente paso consiste en la determinación de los elementos necesarios para la imple-


mentación de dicho diagrama. Este paso suele ser directo, y para cada bloque existe un disposi-
tivo; no obstante será útil realizar una serie de consideraciones:
• 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á un multiplexor para la bifurcación.
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 91

• Dos restadores.
• Por último, será necesario un decodificador de binario a BCD natural para que el
usuario puede entender los resultados obtenidos.

El último paso consiste en la conexión de los diferentes elementos necesarios para la


implementación. Esta conexión se muestra en la figura 5.23.

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

‘0’ a<b A<B


‘1’ a=b A=B
‘0’ a>b A>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

Finalmente, el circuito que implementa dicho comportamiento es el mostrado en la figura


5.24(b).

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

‘0’ a<b A<B


‘1’ a=b A=B
‘0’ a>b A>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.

Un dispositivo programable, genéricamente PLD (Programmable Logic Device), se


puede definir de la siguiente forma:
Un PLD es aquel dispositivo cuya tabla de verdad puede ser
modificada sin alterar el conexionado interno de los ele-
mentos que los forman.

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).

Los dispositivos programables se pueden clasificar dependiendo su funcionalidad. Estos


dispositivos pueden ser:
• Universales.- pueden implementar cualquier función lógica con un determinado
número máximo de entradas y salidas.
• No universales.- solamente se pueden implementar algunas funciones de interés
general.

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.

Los principales dispositivos programables a nivel combinacional que hay en el mercado


son: memorias PROM, dispositivos PAL y dispositivos PLA.
94 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

2. Memorias PROM (Programmable Read Only Memory).

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.

Básicamente las memorias ROM se pueden clasificar en:


• Memorias ROM, las cuales son programadas (una sola vez) por el fabricante.
• Memorias PROM, las cuales son programadas (una sola vez) por el usuario mediante
un programador.
• Memorias EPROM, las cuales son programadas (pudiéndose borrar para volver a pro-
gramar) por el usuario mediante un programador.

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

donde n es el número de entradas (2n es el número de mintérminos implementados) y m es el


número de salidas. De esta forma, una memoria ROM 4x2 se muestra en la figura 6.1.

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 AND fija F1(A,B)

Matriz OR programable
F2(A,B)

Figura 6.1.- Esquema e una memoria ROM a nivel de circuito.

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.

Luego, la conexión de las memorias deberá ser como sigue.


• Para aumentar el número de salidas debemos conectar varias memorias en paralelo, es
decir, seleccionadas simultáneamente. Esta simultaneidad no está reñida con lo dicho
anteriormente, ya que estas salidas no se van a conectar por ser diferentes. Además las
entradas de estos dispositivos, conectados en paralelo, deben ser las mismas para
seleccionar la misma combincación en todos ellos.
• Para aumentar el número de entradas vmos a diferenciar dos tipos de entradas: un
grupo de entradas que seleccionan la combinación dentro del dispositivo; y otro grupo
que selecciona el dispositivo que debe actuar. El primer grupo de entradas estarán
conectadas a los dispositivos PROM que tengamos. Mientras que el segundo grupo
estará conectado a un decodificador (que nos proporciona una combinación) y sólo
habilita (selecciona) un único dispositivo. Por lo tanto, todas las salidas podrán estar
conectadas entre sí, ya que un solo dispositivo estará habilitado mientras los demás
estarán en alta impedancia.
• Para aumentar los dos parámetros de forma simultánea, únicamente hay que combinar
las dos técnicas anteriores. Para ello, primero aumentaremos el número de salidas con
tantos dispositivos como sean necesarios conectados en paralelo; para después conec-
tar tantas filas como sean necesarias conectadas en serie (a través de un decodifica-
dor).

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.

3. Dispositivos PAL (Programmable Array Logic).

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)

Donde n es el número de entradas, q es el número de términos productos y m es el número de


salidas. En la figura 6.3 mostramos un posible esquema correspondiente a una PAL(2x4x2).

A
B
A B

Líneas
AND

F1 F2
Líneas OR

F1

F2

Figura 6.3.- Esquema a nivel de circuito de un dispositivo PAL.

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

Figura 6.4.- Aumento del número de términos producto en un dispositivo PAL.

En la figura 6.5 mostramos la representación de una PAL en las hojas de especificaciones


de un fabricante. Podemos apreciar que se trata de una representación similar a la mostrada en
la figura 6.3. Podemos apreciar las líneas producto, que serán las líneas horizontales conecta-
das a las puertas AND, con un número igual a 56 (7 líneas producto por cada salida).

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.

4. Dispositivos PLA (Programmable Logic Array).

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)

donde N es el número de entradas, Q es el número de términos productos y M es el número de


salidas. En este caso y a diferencia de los módulos PAL, todos los términos suma tienen la
posibilidad de estar conectados (si fuese necesario) a todos los términos producto. En la figura
6.6 mostramos un dispositivo PLA(2x4x2).
TEMA VI: DISEÑO PROGRAMABLE 99

Figura 6.5.- Representación de una PAL en las hojas de especificaciones de un fabricante.


100 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

A
B

A B

Líneas
AND

F1 F2
Líneas OR

F1

F2

Figura 6.6.- Esquema a nivel de circuito de un dispositivo PLA.

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.

5. Diseño mediante dispositivos programables.

La implementación de una función lógica en un dispositivo programable consiste en la


programación de éste, es decir, en la fusión de los fusibles adecuados. No obstante, de forma
previa a la programación, se debe generar la fórmula lógica que va a formar el circuito. La
forma de dicha fórmula va a depender del dispositivo que vayamos a programar.

En el caso de las memorias ROM, la fórmula deberá estar en su expresión canónica


disyuntiva, es decir, como suma de mintérminos. Este hecho viene motivado debido a que dis-
ponemos todos los mintérminos, y en la programación hay que indicar cuáles de los mintérmi-
nos tienen que entrar en la puerta OR.

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.

Todo lo anterior se encuentra esquematizado en la tabla 1.1.

Dispositivo Matriz AND Matriz OR Tipo de fórmula

Memoria ROM Fija y compartida Programable Suma de mintérminos

Dispostivo PAL Programable Fija e independiente Suma de productos mínima con sal-
idas independientes

Dispositivo PLA Programable y com- Programable Suma de productos mínima de fun-


partida ción multisalida

Tabla 1.1. Resumen de los dispositivos programables

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)

Para esta función necesitaremos un total de tres entradas ya que 23 es igual a 8.

6.1. Memorias ROM.

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.

Debido al hecho de que la funcionalidad de la matriz de puertas AND es la misma que un


decodificador, vamos a utilizar su representación para obtener una representación más clara.
Otra cuestión importante es el orden de las señales de entrada, ya que si se varía, el orden de
los mintérminos también varía.

6.2. Dispositivos PAL.

En el caso de estos dispositivos, los requerimientos mínimos vendrán dados por el


número de entradas, salidas, términos productos y de entradas de los términos suma. Por lo
tanto, hasta que no hayamos hallado la fórmula mínima no podremos dar los requerimientos
mínimos.
102 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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

F1 = A'·C + B·C F2 = B·C' + A·B

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

6.3. Dispositivos PLA.

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

De la comparación entre la solución mediante dispositivos PAL y PLA podemos concluir


que la utilización de un dispositivo PLA tendrá más ventaja cuantos más términos producto se
compartan entre las diferentes salidas. Si ningún término producto se compartiese, ambas solu-
ciones serían iguales, exceptuando que los términos sumas no deberían tener el mismo número
de entradas.
TEMA VII.- FAMILIAS LÓGICAS
Una vez que hemos visto la manera de analizar y diseñar sistemas lógicos a partir de cir-
cuitos lógicos combinacionales, el siguiente paso es estudiar cómo podemos construir las puer-
tas básicas a partir de elementos de circuitos. Estos elementos van a ser principalmente
dispositivos semiconductores. No obstante no hay que olvidar que no siempre se han fabricado
de esta forma, es más, el principio de la Electrónica Digital empezó con el descubrimiento de
los relés y tubos de vacíos.

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.

A la hora de construir las puertas lógicas, un criterio ampliamente seguido (realmente en


cualquier disciplina, no sólo en Electrónica) es el criterio de uniformidad, es decir, las diferen-
cias entre las diferentes puertas lógicas deben reducirse a las mínimas. Este criterio es la base
de la definición de familia lógica,
Una familia lógica se puede definir como la estructura
básica a partir de la cual se pueden construir las puertas
lógicas.

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

Figura 7.1.- Esquema de los parámetros temporales.


TEMA VII.- FAMILIAS LÓGICAS 107

• Parámetros de tensión (figura 7.2).


• Nivel alto de la salida (entrada), VOH (VIH).- nivel de tensión considerada como
alto para la salida (entrada).
• Nivel bajo de la salida (entrada), VOL (VIL).- nivel de tensión considerada como
alto para la salida (entrada).

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

Figura 7.2.- Esquema de los parámetros de tensión.

• Parámetros de intensidad (figura 7.3).


• Fan-out.- número máximo de puertas que se pueden conectar a la salida sin que se
degrade la señal de salida.
• Fain-in.- número máximo de puertas que se pueden conectar a la entrada sin que se
degrade la operación de la puerta lógica.

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

Figura 7.3.- Esquema de los parámetros de intensidad.

2. Familia DL (Diode Logic)

De forma previa al estudio de las familias actuales, se va a realizar el estudio de la fami-


lia DL (Diode Logic), ya en desuso pero muy simple. Esta familia se basa en diodos, a los que
se unen resistencias para evitar la destrucción de éstos. Un modelo de operación de un diodo se
muestra en la figura 7.4, pudiendo distinguirse dos zona de operación:
• Conducción u ON, en la que su tensión es de Vγ
• Corte u OFF, en la que la intensidad a través de él se puede considerar nula.
• Podemos apreciar otra zona, denominada de ruptura, en la que el diodo se convierte
en un cortocircuito, que debe ser evitada. Para no llegar nunca a esta zona, se utilizan
las resistencias a las que hacíamos mención anteriormente.

ID

+ VD - ON
VR OFF VD


RUPTURA
ID

Figura 7.4.- Símbolo y característica IV del diodo.

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.

Debido a la aparición de dos diodos en cada transistores, estos transistores mostrarán


cuatro zonas de operación (las combinaciones de las diferentes zonas de cada diodo). En la
figura 7.7 se muestran dichas zonas y sus principales propiedades.
• Zona de corte. El transistor se comporta como un circuito abierto, por lo que no cir-
cula intensidad por ninguno de sus terminales. En esta zona los dos diodos se encuen-
tran cortados.
• Zona activa directa, u zona óhmica. El transistor se comporta como un amplificador
de intensidad desde la base hasta el colector. En este caso, el diodo base-emisor está
conduciendo, mientras que el base-colector está cortado.
110 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

B C
B

E N P N C B E C

B C
B

E P N P CB E C

Figura 7.6.- Uniones, símbolos y representación con diodos de transistores bipolares.

• 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

Figura 7.7.- Zonas de operación de los transistores bipolares.

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.

3.1. Familia TTL (Transistor Transistor Logic).

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

Figura 7.8.- Símbolo y forma de operación de un transistor multiemisor.

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.

• VOH = VDD - VBE(SAT)4 - VD(ON) = 3.8 v.


• VIH es la tensión para que el transistor T1 salga de zona activa inversa.
• VIL es la tensión para que el transistor T1 salga de saturación.
Nivel Entrada Salida Margen de ruido
Bajo 1.6 v 0.2 v. 1.4 v.
Alto 3.2 v. 3.8 v. 0.6 v.
Table 7.2. Parámetros de tensión de la familia lógica TTL.

En la figura anterior, la zona punteada corresponde a la etapa de salida de la puerta. Esta


etapa no es única, sino que existen varios tipos de etapas de salida. Entre estos tipos, podemos
encontrar:
• la salida totem-pole,
• la salida con carga resistiva
• y la salida en colector abierto (siempre hay que conectarle una carga a la salida)

mostradas en la figura 7.10:

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

Estas estructuras se muestran en la figura 7.11.


TEMA VII.- FAMILIAS LÓGICAS 113

A A A
B B B
F F F

Totem-pole Carga resistiva Colector abierto

Figura 7.10.- Diferentes etapas de salida de la familia lógica TTL.

AND - Inversor
Inversor

AND - OR - Inversor

Figura 7.11.- Diferentes estrucutras posibles con la familia TTL.

3.2. Familia ECL (Emitter Coupled Logic).

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.

El funcionamiento de la puerta es el siguiente. Los niveles lógicos estarán alrededor de la


tensión VREF, luego la intensidad que pasará por la resistencia REE será aproximadamente
constante e igual a:
IEE = (VREF - Vγ)/REE

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).

Cuando en la entrada existe un nivel alto, la operación es similar cambiando el transistor


T1 por el T2.

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

Nivel Entrada Salida Margen de ruido


Bajo VREF - 0.3v 4.3 v. - RC·(VREF-0.7)/Ree VREF·(RC/REE +1) -4.6 -0.7·RC/REE
Alto VREF - 0.3 4.3 v. 4.6 v.- VREF
Table 7.3. Parámetros de tensión de la familia lógica ECL.

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

tal como podemos ver en la siguiente figura:

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

Figura 7.14.- Representación y símbolos de los transistores MOSFET.


116 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

El transistor MOS se puede identificar como un interruptor controlado por la tensión de


puerta, VG, que determinará cuando conduce y cuando no. En la figura 7.15 describimos la
operación de estos transistores como interruptores.

vd=vdd --> vs=vdd-vth vd=vdd --> vs=vdd

vdd 0
vd=0 --> vs = 0 vd=0 --> vs = -vth
vg = vg =

0 id = 0 vdd id = 0

Transistor NMOS Transistor PMOS

Figura 7.15.- Zonas de operación de los transistores MOSFET.

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.

4.1. Familia NMOS.

La familia NMOS se basa en el empleo únicamente de transistores NMOS para obtener


la función lógica. Un esquema de esta familia se muestra en la figura 7.16.

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.

El funcionamiento de la puerta es el siguiente. Cuando la entrada se encuentra en un


nivel bajo, el transistor NMOS estará en su zona de corte. Por lo tanto, la intensidad que circu-
lará por el circuito será nula y en la salida se encontrará la tensión de polarización, es decir, un
nivel alto.

Cuando la entrada se encuentra en un nivel alto, el transistor estará conduciendo y se


comportará aproximadamente como un interruptor. Por lo tanto, en la salida estará un nivel
bajo.

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

El pull-up es el dispositivo que suministra el nivel alto


(conecta la tensión de polarización a la salida)
Mientras que el pull-down suministra el nivel bajo
(conecta la tierra).

Existen diferentes tipos de pull-up, como puede ser la resistencia, transistores de deplexión o
transistores saturados, mostrados en la figura 7.17:

Figura 7.17.- Diferentes tipos de pull-up de la familia lógica NMOS.

En la familia NMOS se puede construir cualquier función arbitraria siempre y cuando se


mantengan las limitaciones tecnológicas (que suelen traducirse en la conexión en serie de un
número máximo de transistores). Para formar cualquier función, las estructuras son las siguien-
tes:
• la conexión en paralelo de dos transistores (o grupo de ellos) actúa como una puerta
OR,
• la conexión en serie de dos trnasistores (o grupo de ellos) actúa como una puerta
AND.

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

Operación OR Operación AND Operación OR - AND

Figura 7.18.- Ejemplos de puertas lógicas NMOS.


118 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

4.2. Familia CMOS (Complementary MOS).

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.

El funcionamiento de la puerta es el siguiente. Cuando en la entrada hay un nivel bajo, el


transistor T1 estará cortado mientras que el T2 estará conduciendo. Por lo tanto, el transistor
T2 colocará en la salida un nivel alto (que será directamente el nivel de polarización), y el tran-
sistor T1 evitará el paso de corriente por lo que no consume potencia en estática, sólo en el
transitorio.

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.

En el caso de la familia CMOS, al igual que en la NMOS, se puede construir cualquier


fórmula compleja. En el caso de los transistores NMOS, se construyen igual que en la familia
NMOS, pero en los transistores PMOS es la función inversa. Es decir,
• la conexión en paralelo forma una operación AND,
• mientras que la conexión en serie forma una operación OR.

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

• Que el nodo de salida no esté conectado a ningún nodo, ni a tensión de polarización ni


a tierra. Esta situación es problemática porque dejaríamos la salida en alta impedancia
y cualquier dispositivo parásito podría alterar el valor lógico.

Por lo tanto, algunos ejemplos de funciones complejas construidas en la familia CMOS


se muestran en la figura 7.20.

A F = A·B

C
B

F = (A+B)·C
A
F = A·B

A B

Figura 7.20.- Ejemplos de puertas lógicas CMOS.

5. Ejemplo.

Por último, vamos a ver como sería la implementación de una función utilizando las dife-
rentes familias lógicas.

La función elegida es la función exclusiva OR de dos entradas. Debido a la diferencia de


operaciones que se puede implementar por cada una de las familias, las fórmulas no podrán ser
las mismas. También debido a la salida complementada de las funciones, y para utilizar el
número mínimo de puertas, vamos a implementar la función negada. De esta forma, en la
salida tendremos la función sin negar. Las diferentes fórmulas utilizadas serán las siguientes:
• TTL --> F = A·B + A·B
• ECL --> F = (A+B)’+(A’+B’)’
• NMOS --> F = A·B + A·B
• CMOS --> F = A·B + A·B

Luego las puertas se muestran en la figura 7.21.


120 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

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

Problemas del Tema 1

1.1. Convertir a base decimal los siguientes números:

• (201.2)3

• (FFA.7)16

• (100)5

• (26.5)7

• (326.5)9

1.2. Convertir a base binaria los siguientes números:

• (235.3)10

• (FFA.7)16

• (100)8

• (26.5)7

• (210.1)3

1.3. Convertir directamente:

• (340)8 al sistema binario

• (100)8 al sistema binario

• (1B4)16 al sistema binario

• (1000110)2 al sistema octal

• (1000110)2 al sistema hexadecimal

• (1110110)2 al sistema hexadecimal

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:

• El número decimal correspondiente a la palabra de código (01212)*

• El número decimal correspondiente a la palabra de código (10010)*

• La palabra de código correspondiente al número decimal 125

• La palabra de código correspondiente al número decimal 230

• La palabra de código correspondiente al número binario (1001011)

1.6. Dados los siguientes códigos BCD:


Dígito decimal Código nº 1
0 0000000
1 0001101
2 0011011
3 0010110
4 0110001
5 0111100
6 0101010
7 0100111
8 1100100
9 1101001
Se pide:

• Razonar si es un código detector y/o corrector de errores (1 solo bit erróneo)

• 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

1.7. Repetir el ejercicio anterior con los siguientes códigos.:


Dígito decimal Código nº 1 Código nº 2 Código nº 3 Código nº 4
0 0000001 0011110 0111101 0000000
1 0000111 0100110 1011101 0111100
2 0011111 0101101 1101101 0110011
3 1111111 0110011 1110101 0101010
4 0000010 0111000 1111001 0100101
5 0001110 1000111 0111110 1011010
6 0111110 1001100 1011110 1010101
7 0000100 1010010 1101110 1001100
8 0011100 1011001 1110110 1000011
9 1111100 1100001 1111010 1111111
124 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Problemas del Tema 2

2.1. Usando los postulados del Álgebra de Boole y los teoremas asociados, demuestre la
veracidad de las siguientes igualdades:

• x·y + x'·y' + x·y' = x + y'

• (x'·z' + x'·y + x'·z + x·y)' = x·y'

• (x + y)·(x'·z' + z)·(y' + x·z') = x'·y

• x·y + y·z + x'·z = x·y + x'·z

• (x + y)·(x' + z) = x·z + x'·y

• x·y + y·z + x·z = (x + y)·(y + z)·(x + z)

• x·y' + y·z' + x'·z = x'·y + y'·z + x·z'

2.2. Pruebe que en un Álgebra de Boole, se verifican las siguientes leyes de cancelación:

• Si a+b=a+c y a'+b=a'+c, entonces b = c

• Si a+b=a+c y a·b=a·c, entonces b = c

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)

• F = a·b + b'·c + c·a'·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)

2.6. Realizar las siguientes operaciones utilizando la aritmética binaria:

• 12 + 30

• 2+4+8

• 12-3 (usando la resta binaria)

• 20-10 (usando el complemento a dos)

• 3·5

• 3.25 · 4

• 15.5 / 3.25
126 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Problemas del Tema 3

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

Problemas del Tema 4

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:

• A.- sensor de incendio,

• B.- sensor de humedad y

• C.- sensor de presión


Los materiales con los que se trabaja en dicha planta son tales que son inflamables y sólo
toleran unos niveles mínimos de presión y humedad de forma conjunta (estos niveles se
encuentran programados en los sensores correspondientes). El circuito a diseñar debe ser
tal que active una señal de alarma cuando exista riesgo para los operarios de la planta.

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

Problemas del Tema 5

5.1. Determinar si el conjunto formado por multipliexores forma un conjunto completo.

5.2. Realizar la función F= ∏M(0,2,4,6) mediante:

• Multiplexores 8:1

• Multiplexores 4:1

• Decodificadores 3:8 y puertas OR

5.3. Obtener el comportamiento del circuito mostrado a continuación. Este comportamiento


puede ser mostrado a través de un diagrama de flujo.

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

Problemas del Tema 6

6.1. Realizar los diseños de los problemas del Tema 4 mediante dispositivos PROM, PAL y
PLA.
Enunciados de problemas 131

Problemas del Tema 7

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’

7.2. Determinar la función lógica de:

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.

7.5. Repetir el problema 7.3 para una familia ECL.


Soluciones de problemas 133

Problemas del Tema 1

1.1. Convertir a base decimal los siguientes números:

• (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

1.2. Convertir a base binaria los siguientes números:

• (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

Mientras que la de la parte decimal es:


0.3*2=0.6
0.6*2=1.2
0.2*2=0.4
0.4*2=0.8
0.8*2=1.6
Por lo tanto el número binario será: 011101011.01001

• (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

mal será: N=4090.4375. Ahora utilizamos el método


iterativo, esparando la parte entera de la parte
decimal.
4090 2
0 2045 2
1 1022 2
0 511 2
1 255 2
1 127 2
1 63 2
1 31 2
1 12 2
0 6 2
0 3 2
1 1 2
1 0
0.4375*2=0.8750
0.8750*2=1.7500
0.7500*2=1.5000
0.5000*2=1.0000
Por lo tanto, el número binario será:
0110011111010.0111

• (100)8

• (26.5)7

• (210.1)3

1.3. Convertir directamente:

• (340)8 al sistema binario


Para pasar directamente a binario, la base fuente
debe ser un potencia de dos. Entonces, se convierte
dígito a dígito con tantos bits como dicha potencia.
En este caso la potencia es 3; así ‘3’=’011’,
‘4’=’100’ y ‘0’=’000’. De ahí el número binario será:
011100000

• (100)8 al sistema binario

• (1B4)16 al sistema binario


En este caso la potencia es 4. Por lo tanto:
‘1’=’0001’, ‘B’=’1011’, ‘4’=’0100’. Luego, el número
binario será: 000110110100

• (1000110)2 al sistema octal


Para pasar desde binario a una base que es potencia de
dos, se agrupan los bits en dicha potencia (empezando
Soluciones de problemas 135

por el punto decimal). Como en este caso es la base


octal, los grupos serán de tres bits, es decir,
‘1’’000’’110’. Ahora convertimos cada grupo por sepa-
rado, por lo que número octal será: 1068

• (1000110)2 al sistema hexadecimal

• (1110110)2 al sistema hexadecimal


En este caso, los grupos serán de cuatro bits por
estar en la base hexadecimal. De ahí, los grupos
serán: ‘111’’0110’. Entonces el número hexadecimal
será: 3616

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:

• El número decimal correspondiente a la palabra de código (01212)*


Como tenemos el polinomio de dicha base, para pasar a
decimal, sólo tenemos que incluir los dígitos y rea-
lizar las operaciones: N=120*0+60*1+20*2+5*1+2=107

• El número decimal correspondiente a la palabra de código (10010)*

• La palabra de código correspondiente al número decimal 125


Para pasar de decimal a la nueva base debemos utilizar
el método iterativo. Ahora podemos actuar de dos for-
mas diferentes.
En primer lugar podemos dividir entre el mayor peso.
De esta forma sabemos que el cociente es el dígito
136 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

correspondiente, y el resto será la combinación del


resto de dígitos. Se repite este método con todos los
pesos de mayor a menor.
125 120 5 60 5 20 5 5 0 1
5 1 0 0 1 0

Por lo que el número será: (10010)*. Este método no es


muy utilizado ya que, por lo general, no conocemos el
mayor peso del numero.
En segundo lugar, debemos encontrar una relación
entre los diferentes pesos de las bases:
• 5/1=5
• 20/5=4
• 60/20=3
• 120/60=2
Es decir, el polinomio se puede poner de la siguiente
forma: N* = (n4 n3 n2 n1 n0)* = (((2*n4 + n3)*3+ n2)*4+ n1)*5+ n0. Por lo
tanto, si dividimos entre 5, 4, 3, 2 y 1, los restos serán los dígitos menos signifi-
cativos:

125 5
0 25 4
1 6 3
0 2 2
0 1 1
1 0

Por lo tanto, el número será: (10010)*


Ambos métodos son igualmente válidos

• La palabra de código correspondiente al número decimal 230

• La palabra de código correspondiente al número binario (1001011)


Como la base no es una potencia de dos, no se puede
pasar directamente, así que primero debemos pasr el
número binario a decimal, y después a la nueva base.
Para pasarlo a decimal utilizamos el método polinó-
mico: N=1*26+1*23+1*21+1*20=75
Ahora utilizamos el método iterativo
75 5
0 15 4
3 3 3
0 1 2
1 0 1
0 0
Por lo tanto, el número representado en la nueva base
será: (01030)*
Soluciones de problemas 137

1.6. Dados los siguientes códigos BCD:


Dígito decimal Código nº 1
0 0000000
1 0001101
2 0011011
3 0010110
4 0110001
5 0111100
6 0101010
7 0100111
8 1100100
9 1101001
Se pide:

• Razonar si es un código detector y/o corrector de errores (1 solo bit erróneo)


Para que el código sea detector (corrector) de erro-
res en un solo bit, la distancia entre todas sus pala-
bras debe ser de al menos de 2 (3). Por lo tanto,
tenemos que hallar la distancia entre todas las pala-
bras:
• d(0,1)=3, d(0,2)=4, d(0,3)=3, d(0,4)=3,
d(0,5)=4, d(0,6)=3, d(0,7)=4, d(0,8)=3,
d(0,9)=4, d(1,2)=3, d(1,3)=4, d(1,4)=4,
d(1,5)=3, d(1,6)=4, d(1,7)=3, d(1,8)=4,
d(1,9)=3, d(2,3)=3, d(2,4)=3, d(2,5)=4,
d(2,6)=3, d(2,7)=4, d(2,8)=7, d(2,9)=4,
d(3,4)=4, d(3,5)=3, d(3,6)=4, d(3,7)=3,
d(3,8)=4, d(3,9)=7, d(4,5)=3, d(4,6)=4,
d(4,7)=3, d(4,8)=4, d(4,9)=3, d(5,6)=3,
d(5,7)=4, d(5,8)=3, d(5,9)=4, d(6,7)=3,
d(6,8)=4, d(6,9)=3, d(7,8)=3, d(7,9)=4,
d(8,9)=3.
Como la distancia mínima entre todas sus palabras es
igual a 3, este código es un código corrector de erro-
res en un solo bit (y por tanto también es detector)

• 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

Como el código es un código corrector de errores en un


solo bit, vamos a indicar los bits de mensaje (los
tres primeros) que son chequeados por cada bit de che-
queo (los tres últimos). Nombrémos los bits de la
siguiente forma: m1m2m3m4c1c2c3
Para ello, vamos a fijarnos en las palabras que sólo
tienen un ‘1’ en los bits de mensaje. De esta forma
los bits de chequeo que valgan ‘1’, chequearán a dicho
bit. Utilizando este criterio, observamos que:
• c1 chequea a m4, m3, m2
• c2 chequea a m3, m2
• c3 chequea a m4, m2
Como no hay ninguna palabra que tenga un ‘1’ en m1 y
‘0’ en los demás bits de mensaje, pasamos a comprobar
las palabras con dos 1’s. Los bits de chequeo que val-
gan ‘0’, chequearán a ambos bits; obteniendo:
• c2 chequea a m1
• c3 chequea a m1
Unificando ambas tablas, obtenemos la tabla de che-
queo completa:
• c1 chequea a m4, m3, m2
• c2 chequea a m3, m2, m1
• c3 chequea a m4, m2, m1
Para el caso de la corrección, debemos obtener el
valor de los bits de chequeo correspondientes a los
bits de mensajes que nos han llegado, y compararlos
con los bits de chequeo que nos han llegado. En el
caso de que sean los mismos, la palabra obtenida es la
correcta.
En el caso de la palabra 0000001, los bits de chequeo c1, c2 y
c3 deberían valer ‘0’, pero c3 vale ‘1’. Esta situa-
ción nos indica que ha existido un error. Ahora debe-
mos decidir en qué bit se ha producido el error. Como
el error se ha detectado en c3, los bits que pueden
ser erróneos son: c3, m4, m2 y m1. Además sabemos que
el error se ha producido en un solo bit. Luego,
• si se hubiese producido en m4, el error también
se hubiera detectado en c1;
• si se hubiese producido en m2, también se
hubiese detectado en c1 y c2;
• y si se hubiese producido en m1, también se
hubiese detectado en c2.
Por lo tanto, el error debe estar en el propio bit de
chequeo c3. Así la palabra correcta sería: 0000000
En el caso de la palabra 1100100, los bits de chequeo
c1, c2 y c3 deberían valer ‘100’, como los bits de
chequeo que han llegado. Por lo tanto, la palabra
recibida es correcta.
En el caso de la palabra 0000111, los bits de chequeo
c1, c2 y c3 deberían valer ‘0’, pero c2 y c3 vale ‘1’.
Soluciones de problemas 139

Esta situación nos indica que ha existido un error.


Ahora debemos decidir en qué bit se ha producido el
error. Como el error se ha detectado en c1, c2 y c3,
los bits que pueden ser erróneos son: m2 (puesto que
un error en algún otro implicaría un error en más de
un bit). Así la palabra correcta sería: 0100111

• 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.

1.7. Repetir el ejercicio anterior con los siguientes códigos.:


Dígito decimal Código nº 1 Código nº 2 Código nº 3 Código nº 4
0 0000001 0011110 0111101 0000000
1 0000111 0100110 1011101 0111100
2 0011111 0101101 1101101 0110011
3 1111111 0110011 1110101 0101010
4 0000010 0111000 1111001 0100101
5 0001110 1000111 0111110 1011010
6 0111110 1001100 1011110 1010101
7 0000100 1010010 1101110 1001100
8 0011100 1011001 1110110 1000011
9 1111100 1100001 1111010 1111111
140 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Problemas del Tema 2

2.1. Usando los postulados del Álgebra de Boole y los teoremas asociados, demuestre la
veracidad de las siguientes igualdades:

• x·y + x'·y' + x·y' = x + y'


Utilizando el teorema de idempotencia, y reordenando
la expresión podemos poner:
xy+xy’+xy’+x’y’
A continuación sacamos factor común:
x(y+y’)+(x+x’)y’
Aplicando el cuarto postulado del Álgebra de Boole:
x+y’
Por lo tanto, la igualdad es correcta.

• (x'·z' + x'·y + x'·z + x·y)' = x·y'


Si reordenamos la expresión, obtenemos:
(x’z’+x’z+x’y+xy)’
Sacando factor común:
(x’(z+z’)+(x’+x)y)’
Aplicando el cuarto postulado:
(x’+y)’
Aplicando las leyes de DeMorgan:
xy’. Por lo tanto, la igualdad es correcta.

• (x + y)·(x'·z' + z)·(y' + x·z') = x'·y


Si aplicamos el teorema 7 en el paréntesis central,
obtenemos:
(x+y)(x’+z)(y’+xz’)
Multiplicando los dos primeros paréntesis:
(xz+x’y+yz)(y’+xz’)
Multiplicando los paréntesis que nos quedan:
xzy’. Por lo tanto, la igualdad es falsa.

• x·y + y·z + x'·z = x·y + x'·z

• (x + y)·(x' + z) = x·z + x'·y


Multiplicando los paréntesis, obtenemos:
xz+x’y+yz
Si multiplicamos por 1=x+x’, el término que queremos
eliminar, yz
xz+x’y+yz(x+x’) Multiplicando el paréntesis:
xz+x’y+xyz+x’yz
Reordenando los términos y sacando factor común:
xz(1+y)+x’y(1+z)
Utilizando el teorema de los elementos nulos:
xz+x’y. Por lo que la igualdad es correcta.

• x·y + y·z + x·z = (x + y)·(y + z)·(x + z)

• x·y' + y·z' + x'·z = x'·y + y'·z + x·z'


Soluciones de problemas 141

2.2. Pruebe que en un Álgebra de Boole, se verifican las siguientes leyes de cancelación:

• Si a+b=a+c y a'+b=a'+c, entonces b = c


Si multiplicamos los términos de las dos expresiones
de partida, obtenemos:
(a+b)(a’+b)=(a+c)(a’+c)
ab+a’b+b=ac+a’c+c
Utilizando el teorema 7, obtenemos:
ab+b=ac+c
Si, de nuevo, utilizamos el mismo teorema, obtenemos:
b=c
Por lo tanto, se verifica la ley de cancelación.

• Si a+b=a+c y a·b=a·c, entonces b = c

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

X Y Z X(Y+Z) XY+XZ X+YZ (X+Y)(X+Z)


A A A A A A A
B A A A A
0 A A A A
1 A A A A
B A A A A A
B 0 0 1 1
0 0 0 A A
1 A A 1 1
0 A A A A A
B 0 0 A A
0 0 0 A A
1 A A A A
1 A A A A A
B A A 1 1
0 A A A A
1 A A 1 1
B A A 0 0 1 1
B B B B B
0 1 1 B B
1 B B 1 1
B A B B B B
B B B B B
0 B B B B
1 B B B B
0 A 0 0 B B
B B B B B
0 0 0 B B
1 B B B B
1 A B B 1 1
B B B B B
0 B B B B
1 B B 1 1
Soluciones de problemas 143

X Y Z X(Y+Z) XY+XZ X+YZ (X+Y)(X+Z)


0 A A 0 0 A A
B 0 0 0 0
0 0 0 0 0
1 0 0 A A
B A 0 0 0 0
B 0 0 B B
0 0 0 0 0
1 0 0 B B
0 A 0 0 0 0
B 0 0 0 0
0 0 0 0 0
1 0 0 0 0
1 A 0 0 A A
B 0 0 B B
0 0 0 0 0
1 0 0 1 1
1 A A A A 1 1
B 1 1 1 1
0 A A 1 1
1 1 1 1 1
B A 1 1 1 1
B B B 1 1
0 B B 1 1
1 1 1 1 1
0 A A A 1 1
B B B 1 1
0 0 0 1 1
1 1 1 1 1
1 A 1 1 1 1
B 1 1 1 1
0 1 1 1 1
1 1 1 1 1
144 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

Para obtener el complemento de la función, aplicamos


las leyes de DeMorgan:
F’= a’(b’+c’)
A continuación, vamos a obtener la tabla de verdad de
la función y su complemento:
A B C F F’
0 0 0 0 1
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 1 0
1 0 1 1 0
1 1 0 1 0
1 1 1 1 0
Para obtener las fórmulas canónicas disyuntivas (con-
juntivas) nos tenemos que quedar con las combinacio-
nes para las que la función toma el valor ‘1’ (‘0’), y
generar los mintérminos (maxtérminos) correspondien-
tes:
F = ∑ m(3,4,5,6,7) = a’bc + ab’c’ + ab’c + abc’ + abc
F = ∏ M (0,1,2) = (a+b+c)(a+b+c’)(a+b’+c)
F’ = ∑ m(0,1,2) = a’b’c’ + a’b’c + a’bc’
F’ = ∏ M(3,4,5,6,7) =
(a+b’+c’)(a’+b+c)(a’+b+c’)(a’+b’+c)(a’+b’+c’)

• F = (a + b)·(a'·c + d)

• F = a·b + b'·c + c·a'·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 = a’b’c’ + b’c’d’ + a’b’d + a’bd’


Para pasar a producto de sumas, debemos complementar
la expresión dos veces:
F’=(a+b+c)(b+c+d)(a+b+d’)(a+b’+d)
Realizamos las multiplicaciones de los paréntesis:
F’= (ad+b+c)(a+bd+b’d’)
F’= ad + ab + ac + bd + bcd + b’cd’
De nuevo aplicaremos las leyes de DeMorgan:
F = (F’)’=(a’+d’)(a‘+b’)(a’+c’)(b’+d)(c’+d)

• F = ∑m(0,1,2,4)

• F = ∑m(0,1,6,8,10,11,12,13)

• F = ∑m(0,1,14,15)

2.6. Realizar las siguientes operaciones utilizando la aritmética binaria:

• 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.

• 12-3 (usando la resta binaria)


Primero pasamos los números decimales a códgio bina-
rio, es decir, 12 = ‘1100’ y 3 = ‘0011’. A continua-
ción, realizamos la resta:
1100 -> 12
0110 -> desbordamiento
0011 -> 03
1001 -> 09

• 20-10 (usando el complemento a dos)


Primero pasamos los números decimales a códgio bina-
rio, es decir, 20 = ‘10100’ y -10 = -‘01010’ =
‘10110’. A continuación, realizamos la suma:
01000 -> acarreo
10100 -> +20
10110 -> -10
01010 -> +10

• 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

Problemas del Tema 3

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)

Por lo tanto, la función lógica que realiza este cir-


cuito es: F = (x+y+z)(y+z)z.
En el análisis transitorio, tenemos que buscar alguna
señal que recorra más de un camino (hasta llegar al
nodo de salida), y que en alguno de ellos la señal
esté complementada. En este caso particular, sóla-
mente pueden existir azares en la señal z, ya que la
señal x sólo recorre un camino, y la señal y recorre
dos pero en ambos está sin complementar.
Las condiciones de azares son:
• azares estáticos:
• F = z+z
• F = zz
• azares dinámicos:
• F = z(z+z)
• F = z+zz
Por simple inspeción de la fórmula, podemos observar
que sólo se pueden dar azares estáticos de la forma
zz. Para que se produzcan estos azares, las combina-
ciones del resto de señales deben ser:
• x=1 y=0 --> F = zz
• x=0 y=0 --> F = zzz
El camino crítico es aquel que muestra un retraso
mayor. Como no se nos da el retraso de cada puerta,
suponemos que todas las puertas tienen el mismo
retraso, por lo que el camino crítico será aquel que
atraviese más puertas. En nuestro caso, dicho camino
será OR - OR - AND. Las combinaciones que siguen este
camino son:
• Para que la última puerta AND espera a la puerta
OR del camino, se tiene que cumplir:
• z=1 --> z=0
• y+z=1
• Para que la segunda puerta OR espere a la pri-
mera se tiene que cumplir:
Soluciones de problemas 149

• 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’

Por lo tanto, F = (xy)’ ⊕ (y+z’)


En el caso del análisis transitorio, veamos como
influyen las puertas XOR en el caso de los azares:
• x ⊕ x = xx’+x’x = xx’ --> 0
• x ⊕ x’ = xx+x’x’ = x + x’ --> 1
Entonces, la operación XOR de la misma señal (por dos
caminos diferentes) pueden provocar azares, aunque
ambos caminos sean complementados o sin complementar.
Centrándonos en nuestro caso, la única señal en la que
se pueda presentar algún azar es la señal y, por ser
la única que sigue más de un camino.
• F = y’ ⊕ y, si x=’1’ y z=’1’
Por lo tanto, existe un único azar en la señal y,
cuando x=z=’1’.
Analicemos la influencia de la puerta XOR en el camino
crítico:
• F = x ⊕ y = xy’ + x’y
Por lo tanto, independientemente del valor lógico de
alguna de sus entradas, el resultado de la puerta
depende de la puerta restante, así que estas puertas
no introducen ninguna restricción.
En nuestro caso particular, encontramos dos caminos
críticos: NAND-XOR y OR-XOR. Como la última puerta es
una XOR, su resultado siempre va a depender del nivel
anterior. Por lo tanto, esos serán los caminos críti-
cos que presenta nuestro circuito, dándose para todas
las combinaciones de entrada.
150 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

* 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

Problemas del Tema 4

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:

• A.- sensor de incendio,

• B.- sensor de humedad y

• C.- sensor de presión


Los materiales con los que se trabaja en dicha planta son tales que son inflamables y sólo
toleran unos niveles mínimos de presión y humedad de forma conjunta (estos niveles se
encuentran programados en los sensores correspondientes). El circuito a diseñar debe ser
tal que active una señal de alarma cuando exista riesgo para los operarios de la planta.
En primer lugar debemos identificar las entradas y
salidas del circuito. Como entradas tenemos los tres
sensores, mientras que como salida tenemos la señal
de alarma.
En segundo lugar, tenemos que generar la función
lógica que queremos diseñar. Para este cometido nos
fijamos en las especificaciones del diseño:
• La alarma se activará cuando exista un incen-
dio, es decir, el sensor A se active; ya que los
materiales son inflamables.
• La alarma se activará cuando exista mucha pre-
sión y humedad, es decir, cuando se activen
simultáneamente los sensores B y C; por propie-
dad de los materiales.
Por lo tanto, la función lógica será:
A B C F
00 0 0
00 1 0
01 0 0
01 1 1
10 0 1
10 1 1
11 0 1
11 1 1
Para generar el circuito, y debido a que estamos ante
una función con una sola salida, vamos a utilizar el
métod del mapa.

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

de las salidas en dicha combinación no importa y se


trata como una inespecificación para tratar de redu-
cir lo máximo posible el circuito final.
Como se trata de una función multisalida, M1 y M2,
debemos utilizar el método de McCluskey. En primer
lugar hallaremos los imlicantes de la función, y
depués completaremos la tabla de McCluskey:
S1S2
00 01 11 10 M1 y M2 ---> I1 = P*S1
0 0 0 0 M1 --------> I2 = P*S2
P 0
1 0 0 1 x 5 7 7
M1*M2 I1 x x
S1S2 I2 x x
00 01 11 10
0 0 0 0 M1 = P*S2
P 0
1 M2 = P*S1
0 1 1 x
M1
S2
M1
S1S2
00 01 11 10 P

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

Problemas del Tema 5

5.1. Determinar si el conjunto formado por multipliexores forma un conjunto completo.


Para determinar cuando un conjunto de puertas es com-
pleto, debemos generar otro conjunto completo, como
por ejemplo puertas AND, OR e inversores.
A la hora de implementar una función mediante multi-
plexores, la forma más intuitiva consiste en crear la
tabla de la función, tomando las entradas como las
señales de selección y la salida en función de las
restantes entradas. Luego, cada fila de dicha tabla
será cada canal de entrada del multiplexor. Por ejem-
plo:
F=A+ F=A* F=A F=A* F=A
A B A B A F=A’ A A A
B B +B B ’
0 0 0 0 0 0 0 1 0 B 0 0 0 1
0 1 1 0 1 0 1 0 1 1 1 B 1 0
1 0 1 1 0 0
1 1 1 1 1 1
Por lo tanto, a nivel de circuito, estas puertas
serán:

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

Por lo tanto, el conjunto formado por los multiplexo-


res forma un conjunto completo.
Como podemos apreciar, para que el diseño se realice
con un solo multiplexor, éste tiene que tener como
mínimo n-1 señales de selección, donde n es el número
de variables de la función a implementar.
160 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática

5.2. Realizar la función F= ∏M(0,2,4,6) mediante:

• 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

• Decodificadores 3:8 y puertas OR


En este caso, sabemos que cada canal de salida de un
decodificador activo a nivel alto (bajo) identifica
cada uno de los mintérminos (maxtérminos). Si lo que
tenemos para unirlos son puertas OR, el único decodi-
ficador que nos sirve es activo a nivel alto; por lo
que debemos pasar la función a suma de mintérminos:
F= ∏ M(0,2,4,6) = ∑ m(1,3,5,7)
Una vez hecho esto, sólo tenemos que sumar (a través
de la puerta OR) los mintérminos para los que la fun-
ción vale ‘1’.
Soluciones de problemas 161

0
1
A 4 2
2 3 F
B
1 4
C
5
6
7

¡¡ Hay que tener mucho cuidado con el orden de las


entradas del decodificador, ya que puede cambiar el
índice de los mintérminos !!.

5.3. Obtener el comportamiento del circuito mostrado a continuación. Este comportamiento


puede ser mostrado a través de un diagrama de flujo.

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

bio, cuando sea mayor o igual a 10, el digito más sig-


nificativo valdrá 1 y el menos significativo valdrá
‘n-10’. Pasemos este comportamiento a un diagrama de
flujo:

No Si No Si
n > 10 n > 10

D1 = ‘0’ D1 = ‘1’ D0 = ‘n’ D0 = ‘n-10’

Cada componente de este diagrama tiene su equivalente


en circuitos MSI. Así:
• una comparación equivale a un comparador
• una selección equivale a un circuito selector:
multiplexor o demultiplexor, según el número de
salidas y de entradas.
• una acción equivale a bloque que realiza dicha
acción: sumador, operación lógica, ...
En nuestro caso particular necesitaremos dos multi-
plexores, ya que tenemos dos selecciones en las que la
salida es la misma, un comparador y un sumador/resta-
dor (haciendo la función de resta). Cada multiplexor
tiene una anchura de 4 bits puesto que tiene que
entrar en un display 7-segmentos.

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

Problemas del Tema 6

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

Problemas del Tema 7

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’

La tecnología en la que están construidas estas puer-


tas es una tecnología NMOS. En ésta, existen transis-
tores NMOS y un bloque de carga, formado por una
resistencia en el caso qu nos ocupa. La función lógica
de estas puertas es tal que la conexión en serie equi-
vale a una operación AND, y la conexión en paralelo
equivale a una operación OR, estando la salida com-
plementada.

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

7.2. Determinar la función lógica de:

B B

C C

A’ A’

Estamos ante una tecnología TTL con salida en totem-


pole. En esta tecnología (TTL), los transistores mul-
tiemisores producen la operación AND de sus entradas,
y los transistores multiemisores en paralelo producen
la operación OR de los productos. Y al igual que la
mayoría de las familias, la salida está negada.

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

F(x1, x2, x3) = x1’x2’ + x1’x3’ + x1x3


Se nos ha impuesto la restricción de que solamente
podemos conectar un máximo de dos transistores en
serie de cada tipo, por lo que sólo podremos implemen-
tar en una puerta funciones de dos entradas. Así que
haremos una puerta OR de dos productos, y su resultado
se le sumará al restante.

x2’ x1
x3
x1’ x3’
F
x1’ x1
x2’ x3’ x3

Para reducir el número de transistores, hemos sacado


factor común a x1’ en los dos primeros productos.
debemos notar la presencia de los inversores en la
salida de cada puerta ya que las salidas son negadas.
Para eliminar estos inversores, bastaría con imple-
mentar las funciones negadas de cada puerta.

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.

7.5. Repetir el problema 7.3 para una familia ECL.


En estas familias sólo podemos implementar términos
sumas (negados y sin negar). Por lo tanto, una solu-
ción sería pasar los términos productos a términos
sumas complementados; quedando la función:
F = (x1 + x2) + (x1 + x3) + (x1’ + x3’)
Con esta solución necesitaríamos cuatro puertas dife-
Soluciones de problemas 169

rentes, al tener cuatro sumas. Veamos si colocando la


función como suma de productos, reducimos el número
de transistores.
x1 x2
00 01 11 10

x30 1 1 0 0
1 1 0 1 1

F(x1, x2, x3) = (x1+x2’+x3’)(x1’+x3)

F(x1, x2, x3) = (x1+x2’+x3’) + (x1’+x3)


Eligiendo esta solución, observamos que solamente
necesitaremos dos puertas, así que implementaremos
esta última.

x1’ x3

x1 x2’ x3’
Soluciones de problemas 170

S-ar putea să vă placă și