Está en la página 1de 22

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.

También podría gustarte