Professional Documents
Culture Documents
BLOQUES COMBINACIONALES
CONFIGURACIONES RETICULARES
4.1. Decodificadores, multiplexores y demultiplexores
4.2. Multiplexado mediante puertas de transmisin: tri-estado
4.3. Codificadores: conversores de cdigo
4.4. Configuracin ROM
4.5. Sistemas combinacionales; diseo modular
4.6. Los bloques combinacionales en VHDL
'
'
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea n-2
lnea n-1
'''
CBA
entradas de seleccin
La numeracin de las lneas de salida comienza por la lnea 0, pues el primer vector
de entrada sobre las lneas de seleccin ser el 0...00, hasta llegar a la lnea 2m-1,
correspondiente al ltimo vector de seleccin, 1...11.
El decodificador es un bloque digital de particular importancia:
- es un selector de lnea, que discrimina las lneas de salida segn su nmero binario en
las entradas;
- corresponde al conjunto de todos los trminos mnimos de sus entradas;
- contiene todas las opciones posibles de sus vectores de entrada y hace corresponder a
cada una de ellas con una de las lneas de salida;
- su vector de salida corresponde a un cdigo de un solo uno (una sola lnea activada,
la que corresponde al vector presente en sus entradas).
Asimismo, la disponibilidad de todos los trminos mnimos permite utilizar al
decodificador para construir funciones booleanas de sus entradas, en su forma cannica;
para ello bastar aadir una puerta "o" para cada funcin [precisamente, los
decodificadores fueron introducidos con tal finalidad en 2.4.].
Un decodificador estar configurado por los trminos mnimos de sus entradas, cada
uno de los cuales dar lugar a una lnea de salida: cada salida puede construirse con una
simple puerta "y" de m entradas, formando el trmino mnimo que corresponde a su
numeracin.
Consideremos un decodificador de 4 variables de entrada: sus 16 lneas de salida
correspondern a los 16 trminos mnimos de 4 variables y sern las salidas de otras
tantas puertas "y" de 4 entradas que podemos dibujar en la forma siguiente:
0000
0001
0010
0011
0100
0101
0110
0111
1000
Electrnica Digital
del decodificador
de 4 variables
1001
1010
1011
1100
1101
1110
1111
d
equivale a
D
4.1.2. Multiplexores
La funcin multiplexado consiste en seleccionar una de entre varias fuentes de datos
para enviarlos por una misma lnea; un multiplexor realiza el multiplexado de n lneas de
entrada a una sola lnea de salida.
Un multiplexor es un subsistema digital que selecciona una de entre n fuentes de
datos, comunicndola con la lnea de salida del mismo; dispone de n lneas de entrada, 1
lnea de salida y un conjunto de m lneas de control o seleccin, tal que n = 2m
(o bien, 2m n). En cada momento el vector de entrada en las lneas de seleccin
determina (por su nmero) la lnea de entrada que queda conectada a la salida.
Este tipo de actuacin se denomina tambin muestreo, pues selecciona de entre
diversas lneas de entrada la que interesa en cada caso: el multiplexor muestrea la lnea
cuyo nmero binario es establecido sobre las entradas de control del mismo.
Las siguientes figuras representan, respectivamente, un multiplexor genrico de n
lneas y un multiplexor de 4 lneas:
Electrnica Digital
De esta forma, un multiplexor estar formado por 2m puertas "y" de m+1 entradas
confluyendo sobre una puerta "o" de salida (que dar paso a la nica lnea seleccionada en
cada momento):
Y = L i . trmino mnimo i
= L 0 . ...c.b.a + L1. ...c.b.a + L 2 . ...c.b.a + L 3 . ...c.b.a + L 4 . ...c.b.a + ... ...
Por ejemplo, para 8 lneas de entrada (3 lneas de control) el multiplexor resultante,
representado en configuracin reticular, es el de la figura siguiente:
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea 5
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
lnea n-2
lnea n-1
0
salida
'
'
1
2
lnea 6
lnea 7
Mux.
salida
lnea 10
salida
'''
CB A
entradas de seleccin
selector de la lnea 10
d
c
b
a
Slo cuando las variables dcba alcanzan el valor 1010(2 = 10(10 dicha puerta
presenta en su salida el valor booleano existente en la lnea 10; en cualquier otro caso, su
salida es 0.
Cuando los datos a multiplexar constan de varios bits y stos son enviados en
paralelo, en lugar de una nica lnea se tiene un bus o conjunto de lneas que comunican
una palabra binaria y la funcin multiplexado consiste igualmente en seleccionar uno de
entre varios buses de entrada para comunicarlo con el bus de salida; para un bus de
longitud p, es decir compuesto por p lneas, se necesitarn p multiplexores en paralelo.
Electrnica Digital
salida
Mux.
Mux.
lnea 0
salida
lnea 1
lnea 2
lnea 3
para C = 0, salida = A
C
lnea 4
para C = 1, salida = B
lnea 5
lnea 6
lnea 7
4.1.3. Demultiplexores
Los demultiplexores realizan una funcin contraria a la del multiplexor: reciben los
datos por una sola entrada y los dirigen a una de entre n lneas de salida, seleccionables
numricamente por m lneas de control; en cada momento el dato presente en su entrada
aparece en la salida cuyo nmero binario coincide con el establecido en las entradas de
control y el resto de lneas de salida permanecen a 0.
entrada
'
'
lnea 0
lnea 1
lnea 2
lnea 3
lnea 4
2
3
lnea n-2
lnea n-1
CB A
entradas de seleccin
Internamente un demultiplexor est constituido por n puertas "y" a todas las cuales
accede la lnea de entrada junto con el trmino mnimo correspondiente de las entradas de
control; dicho trmino mnimo realiza la seleccin permitiendo la actuacin de una sola
de las n puertas "y": salida i = entrada . trmino mnimoi .
1
entrada
'''
entrada
al demultiplexor
entrada
lnea 10
Electrnica Digital
10
Mux.
Mux.
Mux.
Mux.
Mux.
Mux.
DC
Mux.
Mux.
Se emplea la denominacin tri-estado para aludir esta triple posibilidad que ofrecen
las puertas de transmisin; el estado de desconexin recibe el nombre de alta
impedancia (pues tal es la situacin fsica a la que corresponde) y se representa en forma
abreviada con el smbolo Z (o bien, z en forma ms explcita). Los tres valores del triestado son 0, 1 y Z.
Las puertas de transmisin (o adaptadores tri-estado) no son tiles para configurar
funciones lgicas, pero s para multiplexar seales (para construir multiplexores):
podemos conectar las salidas de varias puertas de transmisin y seleccionar una de las
seales que reciben, haciendo que la correspondiente puerta est activada y todas las
dems en corte.
lnea 0
C B A
BA
lnea 1
salida
control
y
c
puerta de transmisin
lnea 3
Decodificador
B
11
Dos puertas de transmisin con un inversor entre sus entradas de control dan lugar a
un pequeo multiplexor de 2 lneas; la conexin de tales multiplexores en cascada
permite construir multiplexores de mayor nmero de lneas.
lnea 1
y
lnea 0
Multiplexor de 2 lneas
Multiplexor de 8 lneas
Selector
4
Gray
1110001
1001 0100
0111001 0110100
1000000000 0000010000
111111111 000001111
1111011 0110011
S
a
l
i
d
a
Selector
Electrnica Digital
12
Muchas veces interesa pasar de una codificacin a otra; por ejemplo, la entrada de
un teclado de 10 pulsadores independientes servir para introducir cifras decimales en
cdigo de un solo uno pero, para operar con dichas cifras, generalmente interesar
transformarlas a BCD y, una vez obtenidos los resultados, ser preciso convertir sus cifras
a 7 segmentos para representarlas en un visualizador.
Para efectuar un cambio de cdigo, basta ejecutar la tabla booleana que relaciona
ambas codificaciones: si se trata de pasar de una codificacin en palabras de m dgitos a
otra que utiliza n bits, dicha tabla representa n funciones booleanas (n columnas) de m
variables de entrada (2m filas):
13
Electrnica Digital
14
n decimal
binario
7 segmentos
Y0
Y1
a
1
b
1
c
1
d
1
e
1
f
1
g
0
Xm-2
Xm-1
'
'
'
codificador
'
'
'
Yn-1
a
OO
a
f
O1
11
1O
OO O1
11
1O
0
1
X
1
1
1
X
X
1
1
X
X
OO O1
11
1O
1
1
X
X
1
0
X
X
1
0
X
1
a = (D + C + B + A) . (D + C + B + A) =
= D + B+ C.A + C.A =
= Nand(D, B,C A,C A)
b
OO
O1
11
1O
1
1
X
1
1
0
X
1
b = (C + B + A) . (C + B + A) =
= C + B.A + B.A =
= Nand(C,B A, B A)
c
OO
O1
11
1O
OO O1
1
1
X
1
1
1
X
1
11
1O
1
1
X
X
0
1
X
X
15
Electrnica Digital
16
D
D
D
c = (C + B + A) =
= C+B+A =
= Nand(C,B,A )
"a"
C*A
C*A
C
d
OO
O1
11
1O
e
OO
O1
11
1O
f
OO
O1
11
1O
OO O1
1
0
X
1
0
1
X
1
OO O1
1
0
X
1
11
1O
1
0
X
X
1
1
X
X
11
0
0
X
X
1
1
X
X
OO O1
11
1O
0
0
X
X
0
1
X
X
0
1
X
1
e = C.A + B.A =
= C.A + B.A =
= (C A) (B A )
"c"
A
D
C*(B*A)
"d"
C*(B*A)
"e"
B*A
D
"f"
OO
O1
11
1O
0
1
X
1
0
1
X
1
1
0
X
X
1
1
X
X
1O
B*A
11
B*A
OO
O1
B*A
B
1O
0
0
X
0
1
1
X
1
"b"
B*A
C*(B*A)
D
C*B
"g"
17
Electrnica Digital
18
Sean nueve lneas numeradas del 1 al 9, de forma que nunca se activan dos de ellas a
la vez (cdigo de un solo uno), para convertir dichas 9 entradas en su cdigo BCD
correspondiente basta utilizar una puerta "o" para cada salida:
9
E
L
N
T
N D
R
E E
A
A
D
S
A
7
C
6
5
4
3
2
1
2
3
4
5
6
7
8
9
l9
0
0
0
0
0
0
0
0
1
l7
0
0
0
0
0
0
1
0
0
l6
0
0
0
0
0
1
0
0
0
l5
0
0
0
0
1
0
0
0
0
l4
0
0
0
1
0
0
0
0
0
l3
0
0
1
0
0
0
0
0
0
l2
0
1
0
0
0
0
0
0
0
l1
1
0
0
0
0
0
0
0
0
D
0
0
0
0
0
0
0
1
1
C
0
0
0
1
1
1
1
0
0
B
0
1
1
0
0
1
1
0
0
A
1
0
1
0
1
0
1
0
1
del encodificador
lnea 1
de 9 lneas
lnea 2
(4 salidas)
lnea 3
lnea 4
lnea 5
lnea 6
lnea 7
lnea 8
lnea 9
19
D = l9 + l8
C = l 9.l 8.(l 7 + l 6 + l 5 + l 4 )
B = l 9 .l8 .(l 7 + l 6 ) + l9 .l 8.l 5.l 4 .(l 3 + l 2 )
Xm-2
Xm-1
'
'
'
codificador
ROM
'
'
'
Y0
Y1
X0
X1
X2
Yn-1 Xm-2
Xm-1
'
'
'
de
co
di
fi
ca
dor
'
'
'
'
2m
Electrnica Digital
X0
X1
X2
20
en
co
di
fi
ca
dor
'
'
'
Y0
Y1
Yn-1
21
S A L I D A S [7 seg.]
C C
B B
A
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
E N T R A D A S [BCD]
22
Electrnica Digital
Ahora bien, cuando el nmero de entradas del codificador es pequeo (como sucede
en el caso anterior) la configuracin ROM de un codificador no supone una ventaja
apreciable respecto a la obtencin de sus funciones booleanas simplificadas.
La estructura ROM es realmente apropiada cuando el nmero de entradas es alto
(por encima de las 6 entradas); en tal caso, la configuracin ROM puede ser construida
directamente desde la tabla funcional o tabla de conversin, evitando la necesidad de
extraer de ella y de simplificar las funciones booleanas. Dicha construccin consiste en:
- configurar un decodificador genrico de m entradas, o sea, construir
reticularmente los 2m trminos mnimos,
- seguido de un encodificador, cuya matriz de conexiones ha de ser la propia tabla
de conversin.
Dos ejemplos concretos de cambios de cdigo con un nmero amplio de entradas los
constituyen las tablas funcionales y los generadores de caracteres.
Podemos considerar un codificador ROM como una tabla de valores que para cada
valor numrico de entrada nos proporciona el resultado de una determinada funcin
aplicada a dicho nmero; de esta forma los codificadores ROM permiten configurar
tablas reducidas de funciones, tablas funcionales, como, por ejemplo, tablas
trigonomtricas (senos, cosenos, tangentes,...), tablas de logaritmos, etc.
Los generadores de caracteres son codificadores que convierten los caracteres
alfanumricos codificados en binario (por ejemplo, en cdigo ASCII de 7 bits) en
matrices rectangulares de puntos que representan visualmente dichos caracteres. La
visualizacin final puede realizarse bien mediante diodos luminiscentes LED o lmparas,
bien en monitores o pantallas de rayos catdicos CRT, bien sobre papel mediante
impresoras de puntos, etc. Los puntos de una matriz n x m se activarn (iluminacin o
impresin) cuando se encuentren con valor 1 y no lo harn si es 0.
Las pequeas mini-impresoras por puntos suelen imprimir en columnas de 7 puntos,
utilizando 5 columnas para cada letra o nmero y 2 de separacin. El codificador ROM
para la correspondiente generacin de caracteres ha de tener como entradas los 7 dgitos
del carcter ASCII ms 3 dgitos para indicar el nmero de columna a imprimir y
presentar como salidas los 7 bits que van a controlar los solenoides que activan los
bastones de impresin.
En cambio, en el barrido de la pantalla de un monitor (CRT) las letras y nmeros se
dibujan por filas, de forma que el generador de caracteres ha de tener como entradas los 7
dgitos de cada carcter ms 3 4 dgitos para indicar el nmero de la fila y las salidas
son los 5 7 bits correspondientes a los puntos que conforman una fila del carcter, caso
de representarlos en matrices de 7 x 5 puntos o de 9 x 7 puntos, respectivamente.
23
X6
X5
X4
X3
X2
X1
X0
en
m
de
de
Yn-1
'
'
'
'
'
Yn-2
'
'
'
'
'
Y3
Y2
24
Electrnica Digital
Y1
Y0
25
26
Electrnica Digital
Los tiempos de propagacin dependen linealmente del fan-out que soportan las
puertas, es decir, de la carga capacitiva conectada a su salida; adems, aumentan
fuertemente con la temperatura. Un circuito electrnico se calienta por la disipacin de la
energa que consume en su propio funcionamiento que se elimina en forma de calor, con
la consiguiente elevacin de la temperatura del circuito y disminucin de la velocidad de
trabajo del mismo; en muchos casos ser necesario incluir una refrigeracin adecuada
para garantizar la frecuencia de trabajo del circuito.
27
Demultiplexor de 8 lneas
Multiplexor de 8 lneas
L0
L1
L2
L3
L4
L5
L6
L7
control
when
when
when
when
when
when
when
control = 0
control = 1
control = 2
control = 3
control = 4
control = 5
control = 6
else
else
else
else
else
else
else L7;
versin 2
with control select
y <= L0 when
L1 when
L2 when
L3 when
L4 when
L5 when
L6 when
L7 when
0,
1,
2,
3,
4,
5,
6,
others;
process (control,L7,L6,L5,L4,L3,L2,L1,L0)
begin
versin 1
if control = 0
if control = 1
if control = 2
if control = 3
if control = 4
if control = 5
if control = 6
if control = 7
end process;
versin 2
then
then
then
then
then
then
then
then
y
y
y
y
y
y
y
y
<= L0;
<= L1;
<= L2;
<= L3;
<= L4;
<= L5;
<= L6;
<= L7;
end if;
end if;
end if;
end if;
end if;
end if;
end if;
end if;
case control is
when 0 =>
when 1 =>
when 2 =>
when 3 =>
when 4 =>
when 5 =>
when 6 =>
when 7 =>
end case;
end process;
Electrnica Digital
28
else '0';
else '0';
else '0';
else '0';
else '0';
else '0';
else '0';
else '0';
L0
L1
L2
L3
entrada
L4
L5
L6
L7
control
utilizando proceso
process (control,entrada)
begin
L0 <= '0'; L1 <= '0'; L2 <= '0'; L3 <= '0';
L4 <= '0'; L5 <= '0'; L6 <= '0'; L7 <= '0';
case control is
when 0 => L0 <= entrada;
when 1 => L1 <= entrada;
when 2 => L2 <= entrada;
when 3 => L3 <= entrada;
when 4 => L4 <= entrada;
when 5 => L5 <= entrada;
when 6 => L6 <= entrada;
when 7 => L7 <= entrada;
end case;
end process;
Decodificador de 8 lneas
y <= L0;
y <= L1;
y <= L2;
y <= L3;
y <= L5;
y <= L5;
y <= L6;
y <= L7;
e
n
c
t
r b
a
d a
a
L0
L1
L2
L3
L4
L5
L6
L7
s
a
l
i
d
a
29
Encodificador de 10 lneas
entrada <= L9 & L8 & L7 & L6 & L5 & L4 & L3 & L2 & L1 & L0;
with entrada select
salida <= "1001"
"1000"
"0111"
"0110"
"0101"
"0100"
"0011"
"0010"
"0001"
"0000"
"1111"
when
when
when
when
when
when
when
when
when
when
when
"1000000000",
"0100000000",
"0010000000",
"0001000000",
"0000100000",
"0000010000",
"0000001000",
"0000000100",
"0000000010",
"0000000001",
others;
L9
SALIDA
L8
L7
L6
L5
L4
L3
L2
s
a
l
i
d
a
"1001" when
"1000" when
"0111" when
"0110" when
"0101" when
"0100" when
"0011" when
"0010" when
"0001" when
"0000";
L9 = '1'
L8 = '1'
L7 = '1'
L6 = '1'
L5 = '1'
L4 = '1'
L3 = '1'
L2 = '1'
L1 = '1'
else
else
else
else
else
else
else
else
else
utilizando proceso
process (L9,L8,L7,L6,L5,L4,L3,L2,L1)
begin
if L9 = '1' then
salida <= "1001";
elsif L8 = '1' then
salida <= "1000"
elsif L7 = '1' then
salida <= "0111";
elsif L6 = '1' then
salida <= "0110";
elsif L5 = '1' then
salida <= "0101";
elsif L4 = '1' then
salida <= "0100";
elsif L3 = '1' then
salida <= "0011";
elsif L2 = '1' then
salida <= "0010";
elsif L1 = '1' then
salida <= "0001";
else
salida <= "0000";
end if;
end process;
ENTRADA : In
ENTRADA
L9
L8
L7
L6
L5
L4
L3
s
a
l
i
d
a
"0000001" when 0,
"1001111" when 1,
"0010010" when 2,
"0000110" when 3,
"1001100" when 4,
"0100100" when 5,
"0100000" when 6,
"0001111" when 7,
"0000000" when 8,
"0000100" when 9,
"1111111" when others;
L2
L1
SALIDA
L1
L0
Electrnica Digital
30
SALIDA <="0000001";
SALIDA <="1001111";
SALIDA <="0010010";
SALIDA <="0000110";
SALIDA <="1001100";
SALIDA <="0100100";
SALIDA <="0100000";
SALIDA <="0001111";
SALIDA <="0000000";
SALIDA <="0000100";
SALIDA <="1111111";