Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- 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.
1. Introducción.
Los bloques combinacionales que se suelen utilizar en este tipo de diseño suelen contar
con tres tipos de señales: señales de control (ya que el bloque tiende a tener más de una opera-
ción, seleccionándose la función deseada con estas señales entre otras cosas), señales de
entrada de datos y señales de salida de resultados. Dentro de las señales de control más comu-
nes podemos encontrar:
• Señales de inhibición/desinhibición (CS).- son señales que impiden o permiten la ope-
ración del bloque.
• Señales de selección de operación.- determinan cuál de las operaciones implementa-
das en el bloque va a ejecutarse.
Un símbolo de un bloque MSI genérico se puede ver en la figura 5.1. En estos bloques, los ope-
randos suelen tener más de un bit, luego al operando se suele representar por una palabra, es
decir, el número de bits que tiene un operando. La forma de representar esta situación consiste
en utilizar una línea de trazo grueso para las palabras; y en el caso de que se quiera identificar
el número de bits de la palabra, a la línea anterior se le cruza una línea oblicua encima de la
cual aparece este tamaño.
Habitualmente, la utilización de estos bloques suele estar supeditada a una mayor com-
plejidad del sistema a implementar. Así mismo, la metodología empleada en la utilización de
estos bloques es diferente a la basada en la utilización de puertas lógicas. A groso modo, se
72 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
n
entrada salida
control
CS
No obstante tenemos que aclarar que esta clasificación no es estándar, ya que algunos autores
introducen los bloques aritmético-lógicos, dentro de los bloques de camino de datos. También
los dispositivos de entrada-salida no suelen aparecer en los diagramas de flujo, no obstante, su
utilización es necesaria en la implementación final.
2. Bloques aritmético-lógicos.
Entrada
Proceso 1
Decisión
Proceso 1 Proceso 1
Decisión
Proceso 1
Salida
No obstante, como en los números reales, una resta es la suma de un número con otro negativo,
los bloques sumadores suelen tener la funcionalidad de realizar la resta, denominándose gene-
ralmente sumador-restador.
La experiencia ha constatado que la forma serie es más efectiva en determinados casos. Esta
forma se basa en los denominados sumadores completos, sumadores de tres bits (un bit del pri-
mer dato, un bit del segundo dato y el acarreo de la suboperación anterior). Éste tendrá como
salidas, la salida suma y la salida acarreo. Su tabla de verdad es la mostrada en la figura 5.3.
Por lo tanto un bloque sumador de 4 bits construido con sumadores completos podría
estar formado de la forma mostrada en la figura 5.4. No obstante, además de esta posible
implementación, existen otras muchas. La diferencia entre ellas suele radicar principalmente
en la generación del acarreo de salida, ya sea de forma serie (como el mostrado) o de forma
paralela.
∑ = A ⊕ B ⊕ Cin
A B Cin ∑ Cout
Cout = A·B + (A+B)·Cin
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0 A
0 1 1 0 1 ∑
1 0 0 1 0 B
1 0 1 0 1
1 1 0 0 1 Cin Cout
1 1 1 1 1
A0 A A1 A A2 A A3 A
∑ ∑ ∑ ∑
B0 B B1 B B2 B B3 B
∑0 ∑1 ∑2 ∑3 ∑4
la funcionalidad del bloque sumador de 4 bits, es la misma que el de 1 bit, pero en las señales
de datos y de salida en lugar de ir 1 bit, va un bus de 4 bits.
Para el caso de la resta, podemos operar de dos formas (como ya vimos): generar un blo-
que restador o utilizar un bloque sumador con el complemento a dos del sustraendo.
Para el caso de implementar el bloque restador, nos basaremos en la resta de tres bits.
Tanto su tabla de verdad como una de sus fórmulas logicas se muestran en la figura 5.5.
Como vemos, el bloque restador solamente se diferencia del sumador completo en que
una entrada (el minuendo) en el desbordamiento viene complementada. Por lo tanto, si se
añade una nueva señal que determine la operación a realizar (suma o resta), la fórmula corres-
pondiente al bloque sumador-restador sería:
S = A ⊕ B ⊕ Cin
Cout = B·Cin + (A ⊕ sel)·(B + Cin)
A B Oin R Oout
0 0 0 0 0 A
R = A ⊕ B ⊕ Oin
0 0 1 1 1 R
Oout = A·B + (A+B)·Oin
0 1 0 1 1 B
0 1 1 0 1
1 0 0 1 0
Oin Oout
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
igualar la representación hay que obtener un bloque de generación de complemento a dos. Este
bloque invierte el número, bit a bit, y le suma 1.
2A
i = Ai ⊕ Ci-1
Ci = Ai + Ci-1
Otro problema, siendo el principal, es que este circuito sólo es válido para números naturales
ya que no es conmutativo como debe ocurrir en el caso de los números enteros.
Los comparadores son los circuitos que generan las señales para decidir entre un camino
de datos u otro. Por lo general, estos bloques suelen tener tres salidas que determinan si las
entradas son iguales (A=B), si la entrada A es mayor que B (A>B), o si la entrada A es menor
que B (A<B).
76 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
S/R
B1
B2
B3
B
∑1
BSB
∑ ∑2
A1 ∑3
A2 BS∑
A3 A
BSA
Cin Cout
Como no se van a tener comparadores de todas las longitudes de bits, es necesario poder
generar un comparador de m bits a partir de otros de n bit. Para poder conectar varios compara-
dores, y formar uno con mayor número de bits, también suelen tener tres entradas especiales
que nos indican el estado de los bits menos significativos (=,<,>). Estas tres entradas deben ser
tales que sólo y sólo una de ellas debe ser ‘1’ y ninguna otra combinación se puede dar por lo
que la trataremos como inespecificaciones. Para el caso de que se empiece, la entrada = se
colocará a nivel alto (suponiendo que antes de conocer los datos a comparar, ambos se conside-
rarán iguales). La tabla de combinaciones de este bloque se muestra en la tabla 5.1.
Por lo tanto, las ecuaciones lógicas que gobiernan este comportamiento pueden ser:
(A=B) = (a'·b + a·b')'·(a=b)
(A<B) = (a<b)·(a·b')' + a'·b
(A>B) = (a>b)·(a'·b)' + a·b'
a<b
A<B
a
A=B
a=b
b
A>B
a>b
En este bloque, se trata de llevar al extremo la funcionalidad multiple del bloque. Se trata
de un bloque que realiza varias funciones, tanto aritméticas como lógicas, en función de unas
señales de control. El símbolo de una ALU típica de 4 bits se muestra en la figura 5.9.
5 CP
M(0-4)
CG
CI CO
A=B
4
A 4
R
4
B
La señal M selecciona una operación entre las 32 (25) posibles para este caso. Las seña-
les CP y CG son necesarias para obtener la señal de acarreo adelantado, CO es la señal de aca-
rreo de salida y (A=B) genera una salida de igualdad. Una tabla de operaciones típicas se
muestra en la tabla 5.2.
M(0) = 0 M(0) = 1
R=A R = A'
R=A+B R = (A + B)'
R = A' · B R = A' · B
R = -1 R=0
R = A más A'·B R = (A · B)'
R = (A+B) más A'·B R = B'
R = A menos B menos 1 R=A+B
R = A·B' menos 1 R = A·B'
R= A más A·B R = A' + B
R = A más B R = (A + B)'
R = (A+B') más A·B R=B
R = A·B menos 1 R=A·B
R = A más A desplazado R=1
R = (A+B) más A R = A + B'
R = (A+B') más A R=A*B
R = A menos 1 R=A
Tabla 5.2. Tabla de operaciones típicas de una ALU(donde las operaciones denominadas con
letras son aritméticas, y las designadas con símbolos son lógicas).
TEMA V.- DISEÑO MSI (MEDIUM SCALE INTEGRATION). 79
Una vez que hemos visto los principales bloques que procesan los datos, el siguiente
paso será ver los bloques que dirigen las diferentes señales por el camino deseado, es decir, los
bloques de camino de dato. En este caso podemos encontrarnos con dos casos bien diferencia-
dos:
• Exista una bifurcación o una unión de varios caminos. Luego debe existir unas señales
(que probablemente vendrán de un comparador) que indique los caminos que se
deben conectar.
• Exista un solo camino, pero tan largo que se produzcan fallos de transmisión. Debido
a la no idealidad de los dispositivos (incluidos los cables), un cable tendrá una resis-
tencia y un condensador parásito asociado cuyos valores van a depender de la longi-
tud. Por lo tanto, si el cable es excesivamente largo (estos dispositivos parásitos
tendrán valores relativamente grandes) el valor lógico se puede atenuar lo suficiente
como para que el valor lógico de un extremo del cable sea diferente al del otro
extremo, como se puede ver en la figura 5.10.
Valor lógico
Dentro de estos bloques apropiados para la primera situación se pueden destacar los
demultiplexores, multiplexores; mientras que para la segunda situación se pueden destacar los
bufferes o drivers y transceptores.
3.1. Demultiplexores.
donde n son el número de bits que tiene como entrada (ya que el canal de entrada puede ser un
bus que coincidirá con la anchura de cada canal de salida) y m son los diferentes canales de
salida tal que m = 2s (donde s es el número de bits de selección. Un símbolo demultiplexor 1:4
se muestra en la figura 5.11.
Q0 0 Q0
1 Q1
Q1
A 2 Q2
A 3 Q3
Q2 0 1
Q3
S0 S1
A S1 S0 Q0 Q1 Q2 Q3
0 0 0 0 0 0 0
0 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 1 0 0 0 0
1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
Tabla 5.3. Tabla de verdad de un demultiplexor.
Q3
Q2
Q1
A
S1 Q0
S0
3.2. Multiplexores.
donde m es el número de canales de entrada, que está intimamente relacionado con el número
de señales de selección, y q es el número de bits correspondiente al canal de salida y por tanto
a todos los canales del dispositivo. Un símbolo de este componente se muestra en la figura
5.13.
A0 A0 0
A1 1
A1
A2 2 Q
Q A3 3
A2 10
A3
S1 S0
A0 A1 A2 A3 S1 S0 Q
A0 A1 A2 A3 0 0 A0
A0 A1 A2 A3 0 1 A1
A0 A1 A2 A3 1 0 A2
A0 A1 A2 A3 1 1 A3
Tabla 5.4. Tabla de verdad de un MUX 4:1.
A3
A2
Q
A1
A0
S1
S0
Es interesante observar que la fórmula anterior tiene mucha similitud con la fórmula de
mintérminos, donde las señales de entrada están conectadas a las entradas de selección y los
canales de entrada activan (con un ‘1’) o desactivan (con un ‘0’) los mintérminos asociados.
También se puede introducir una de las señales de entrada por los canales de entrada del multi-
plexor, reduciendo así el tamaño de éste. Luego, tenemos una nueva metodología para imple-
mentar fórmulas lógicas utilizando este tipo de dispositivos.
‘1’ 0
1
2 ‘1’ = x0 + x0’
3 0
4 1 x0
F = x2’·x1’·x0’ + x2’·x1’·x0 + x2’·x1·x0 2 x0
5
6 + x2·x1’·x0 + x2·x1·x0’ 3 x0’
‘0’ 7 1 0
0 1 2
x2 x1
x0 x2
x1
La función principal de este dispositivo consiste en evitar la pérdida de los valores lógi-
cos debido a la no idealidad de las conexiones, es decir, su misión principal será la regenera-
ción de las señales digitales. Su símbolo y posible implementación es mostrado en la figura
5.16.
res. Una peculiaridad de estos dispositivos (como de todos los de este grupo) es que el valor de
salida tiene que ser siempre igual al de entrada.
Este elemento sólo es válido para canales en los que la información vaya en un sentido,
es decir, sea unidireccional puesto que los inversores también poseen esta característica.
Luego, para una correcta conexión, estos dispositivos deben de ser conectados cada cierta lon-
gitud de la última conexión. Esta longitud depende de los cables utilizados y es una especifica-
ción que debe dar el fabricante.
Dentro de estos dispositivos, existe uno de especial importancia denominado buffer tries-
tado. En la figura 5.17 mostramos el símbolo y un posible esquema lógico de dicho elemento.
Su funcionamiento es el mismo de un buffer normal cuando la señal sel está activa.
sel
sel
No obstante, cuando la señal sel está inactiva, la salida del dispositivo toma un estado
denominado alta impedancia. Este estado de alta impedancia significa que no existe ninguna
conexión hasta un ‘0’ o un ‘1’. Si dicha salida está conectada a otra señal, el valor en dicho
punto será el que coloque esa otra señal. En caso de que no exista ninguna conexión, el valor
en dicho punto será el último (esta situación tiene el problema de que cualquier interferencia
externa puede producir un cambio del valor).
3.4. Transceptores.
En contraposición con los bufferes, los transceptores son los dispositivos empleados
para buses bidireccionales, es decir, sistemas que permiten la transmisión de la información en
ambos sentidos. Por lo tanto, debemos tener una señal que nos indique el sentido del flujo de la
información en cada momento. El símbolo y una posible implementación son mostrados en la
figura 5.18.
La operación de este dispositivo es similar al anterior con la salvedad de que existe una
nueva señal, de control, que indicará el sentido de la transmisión. De hecho, el transceptor está
compuesto por dos buffer triestado, es decir, un buffer con la posibilidad de no conexión.
84 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
sel
sel
sel
4. Bloques de entrada/salida.
4.1. Codificadores.
Considerando en primer lugar la entrada de datos, los codificadores son los dipositivos
que acondicionan los datos introducidos por el usuario para que los circuitos digitales del inte-
rior de la aplicación los comprendan. Existen tantos codificacores como códigos binarios y for-
mas de expresar los datos por el usuario; no obstante sólo consideraremos el código binario
natural, que es el más utilizado. La denominación de estos dispositivos es la siguiente:
COD n:m
Para el caso del código binario natural, y algunos otros, se cumple la relación entre el
número de entradas y de salidas que 2m = n; no obstante esta relación no se produce en la
mayoría de los códigos, siendo esta la razón de que haya que identificar los números de canales
de entrada y de salida.
A0 A1 A2 A3 Q1 Q0
1 -- -- -- 0 0
Q1 = A2 + A3
-- 1 -- -- 0 1
-- -- 1 -- 1 0
Q0 = A1 + A3
-- -- -- 1 1 1
Tabla 5.5. Tabla de verdad y posibles ecuaciones lógicas para un COD 4:2.
Para evitar este tipo de problemas, la solución que se le ha dado consiste en añadir un
régimen de prioridades a los diferentes canales, de tal forma que si se selecciona más de un
canal de entrada, la combinación obtenida a la salida corresponderá al canal más prioritario. Si
elegimos como canales prioritarios los de mayor peso, una posible tabla será la mostrada en la
tabla 5.6:
A0 A1 A2 A3 Q1 Q0
1 0 0 0 0 0
Q1 = A2 + A3
-- 1 0 0 0 1
-- -- 1 0 1 0
Q0 = A1·A2' + A3
-- -- -- 1 1 1
Tabla 5.6. Tabla de verdad y posibles ecuaciones lógicas para un COD 4:2 con prioridad de los
canales de menor peso.
Por lo tanto, a la variedad de codificadores también hay que sumar la variedad de priori-
dades, además de los diferentes códigos binarios y de los códigos utilizados por los usuraios.
Todas estas características estarán disponibles en las hojas de especificaciones.
4.2. Decodificadores.
Para acondicionar los datos obtenidos por el circuito lógico para la clara compresión por
el usuario, tenemos el decodificador. Al igual que sucedía en el caso de los codificadores,
habrá tantos decodificadores como códigos binarios y formas de expresar los datos por el usua-
rio. La denominación de estos dispositivos es la siguiente:
DECOD n:m
donde n es el número de bits devuelto por el circuito y m es el número de canales. Por la misma
razón que evidenciamos en los codificadores, de nuevo, en los decodificadores es necesario
indicar el número de entradas y salidas. Los decodificadores de códigos binarios naturales se
pueden ver como demultiplexores donde el canal de entrada está conectado a un valor fijo. Este
hecho se muestra con la comparación de las tablas de combinaciones de ambos dispositivos.
A0 A1 Q0 Q1 Q2 Q3
0 0 1 0 0 0 Q0 = A1'·A2'
1 0 0 1 0 0 Q1 = A1·A2'
0 1 0 0 1 0 Q2 = A1'·A2
1 1 0 0 0 1 Q3 = A1·A2
Tabla 5.7. Tabla de verdad y posibles ecuaciones lógicas para un DECOD 2:4.
Es interesante observar que cada una de las salidas corresponde a un mintémino de una
función de n entradas. Este hecho nos proporciona una nueva metodología para implementar
funciones lógicas sin necesidad de minimizarlas. Por ejemplo, la implementación de la función
f (w, z, y, x) = ∑ m(0,2,8,10,15) utilizando decodificacores y puertas lógicas se muestra en la
figura 5.19. Cualquiera de las tres implementaciones son equivalentes; la diferencia entre las
0 0
1 1
2 2
3 3
4 4
5 5
x 1 6 x 1 6
y 2 7 y 2 7
z 4 8 F z 4 8 F
w 8 9 w 8 9
10 10
11 11
12 12
13 13
14 14
15 15
0
1
2
3
4
5
x 1 6
y 2 7
z F
4 8
w 8 9
10
11
12
13
14
15
dos primeras consiste en que el primer codificador es activo a nivel alto, es decir, el canal
activo tomará el valor ‘1’ mientras que el resto el valor ‘0’, y el segundo es activo a nivel bajo.
Luego la puerta lógica en los dos casos deberá ser diferente: en el primero, como lo que tene-
mos son los 1’s, éstos se deberán sumar; y en el segundo, como tenemos los ‘0’, estos se ten-
drán que multiplicar (la negación es debida a que al coger los 1’s como 0’s, estamos
implementado realmente la función complementada). En el tercer caso usamos un decodifica-
dor activo a nivel bajo, conectando los 0’s de la función (eligiendo su expresión como producto
de maxtérminos, de ahí que no haya que complementarla).
Estos decodificadores son útiles cuando queremos mostrar las salidas en un led, por
ejemplo. No obstante cuando se trata de números se utilizan los decodificadores de 7 segmen-
tos que suelen estar unidos a un display en el que aparecerá la forma del número decimal. Estos
decodificadores muestran del 0 al 9, mientras que el resto de dígitos puede variar según el tipo
de decodificador. Los números aparecerán con la forma mostrada en la figura 5.20.
2
1 3
0
4
5 6
Lo mismo que encontramos el display de 7 segmentos, existen otro display que no sólo
“dibujan” números sino que incluyen letras y otros caracteres especiales.
B3 B2 B1 B0 Q6 Q5 Q4 Q3 Q2 Q1 Q0
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 1 0 0 1 0 0 0
0 0 1 0 0 1 1 1 1 0 1
0 0 1 1 1 1 0 1 1 0 1
0 1 0 0 1 0 0 1 0 1 1
0 1 0 1 1 1 0 0 1 1 1
0 1 1 0 1 1 1 0 1 1 1
0 1 1 1 1 0 0 1 1 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 0 1 1 1 1
1 0 1 0 0 1 1 0 0 0 1
1 0 1 1 1 1 0 0 0 0 1
1 1 0 0 0 0 0 1 0 1 1
1 1 0 1 0 1 0 0 1 1 1
1 1 1 0 0 1 1 0 0 1 1
1 1 1 1 0 0 0 0 0 0 0
Tabla 5.8. Tabla de verdad del decodificador de 7 segmentos.
El caso del multiplexor es similar al del demultiplexor. La única diferencia entre ambos
elementos consiste en que la salida cuando el bloque no está seleccionado es un valor de alta
impedancia o no conectado; mientras que en el demultiplexor, es el valor fijo de no selección.
Este hecho, el valor de alta impedancia permite la unión directa de todas sus salidas. En el caso
de no soportar el valor de alta impedancia, las salidas habrá que unirlas con puertas OR (si el
valor de salida de no conexión es ‘0’) o puertas AND (si el valor de salida de no conexión es
‘1’). En la figura 5.21 mostramos uno de estos últimos casos.
S0S1 S1S0
CS0 Q8 A8 0 CS
1 Q9 A9 1
2 Q10 3 A10 2
3
3 Q11 A11 3
S3 2 2 S3 2 2 10
01
S2 1 1 S2 1 1
0 S0S1 0 S1 S0 F
Q4 A4 0 CS
CS0
1 Q5 A5 1
2 Q6 A6 2
3 Q7 A7 3
10
01
S0S1 S1 S0
A0 0 CS
CS0 Q0
A1 1
1 Q1 2
A2
A 2 Q2 A3 3
3 Q3
10
01
S1 S0
S0S1
Para la unión de los codificadores se hacen necesrias una serie de señales adicionales que
no suelen estar presentes en los dispositivos estándares. Entre estas señales podemos encontrar
las siguientes:
• Señal que determine si el codificador está habilitado y se ha seleccionado un canal de
entrada.
• Señal que determine si el codificador está habilitado y no se ha seleccionado un canal
de entrada.
90 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
6. Implementación de un sistema
Una vez que ya conocemos los dispositivos MSI más usuales, el sisguiente paso consiste
en obtener una metodología para la implementación de sistemas con este tipo de dispositivos.
Ya hemos visto varias metodologías (utilizando multiplexores y decodificadores) para imple-
mentar fórmulas lógicas; no obstante, en este apartado nos vamos a centrar en la implementa-
ción de sistemas complejos, cuyo paso a fórmulas lógicas no sea viable.
Para llevar a cabo la implementación de un sistema, los pasos a seguir son los siguientes:
• Realización del diagrama de flujo que modele el sistema que se desea implementar.
• Determinación de los elementos necesarios para la implementación de dicho
diagrama.
• Conexión de los diferentes elementos
Vamos a ilustrar este proceso con un ejemplo: Se desea implementar un sistema que devuelva
el valor absoluto de la resta de dos números, codificados en BCD.
Un posible diagrama de flujo de datos puede ser el mostrado en la figura 5.22, aunque
debemos notar que no es el único. La determinación de un diagrama que nos conduzca a una
implementación más óptima depende de la pericia del diseñador..
Pasar a binario
A>B?
R=A-B R=B-A
Pasar a decimal
• Dos restadores.
• Por último, será necesario un decodificador de binario a BCD natural para que el
usuario puede entender los resultados obtenidos.
4
A
4
A-B
4
A Codificador B 4
a binario 0 Decodificador
4
4 4 a decimal
A 1
Codificador 4
B A-B
a binario 4
B
4 A
4
B
Figura 5.23.- Circuito que implementa el comportamiento del diagrama de la figura 5.22.
Un nuevo diagrama que implementa el mismo comportamiento pero de una forma más
óptima es el mostrado en la figura 5.24(a). En este último diagrama, necesitaremos los siguien-
tes bloques:
• Será necesario un codificador de BCD a binario natural para la entrada de datos
• Será necesario un comparador para obtener el mayor de los dos operandos para que
actue de sustraendo, así mismo se necesitarán dos multiplexores para la bifurcación
de las dos entradas del restador.
• Un restador.
• Por último, será necesario un decodificador de binario a BCD natural para que el
usuario puede entender los resultados obtenidos
Nos encontramos ante una solución más óptima porque el coste de los restadores es
mayor que el de los multiplexores.
92 Dpto. Ingeniería Electrónica de Sistemas Informáticos y Automática
Pasar a binario
A>B?
X=A X=B
Y=B Y=A
R=X-Y
(a)
Pasar a decimal
4
0 4
4 4
A Codificador 1
a binario A
4 Decodificador
A-B a decimal
4 4
0 4 B
Codificador 4
B a binario 1
4 A
(b)
4
B
Figura 5.24.- (a) Diagrama de flujo del valor absoluto de la resta, y (b) el circuito que lo
implementa.