You are on page 1of 155

Electrónica Digital

Unidad 3
Ing. Raúl V. Castillo C.
Lógica Combinacional
Representación de funciones de
conmutación
Ejemplo:
F(x, y, z)=xy+xz+yz
xy
x y z f(x, y, z) z 00 01 11 10
0 0 0 0 0 0 0 1 0
0 0 1 0
0 1 0 0 1 0 1 0 1
0 1 1 1
f
1 0 0 0
1 0 1 1 x
y
1 1 0 1
1 1 1 0 z
f
Tabla de Verdad

La forma más intuitiva de representar una función de


conmutación es por medio de una Tabla de Verdad.

La Tabla de Verdad expresa el valor de salida de una función


para cada combinación de entrada.

La Tabla de Verdad permite modelar un tipo especial de


sistema Digital llamado Sistema Combinacional.
Tabla de Verdad

Ejemplo:

Tabla de Verdad:

x1 x2 x3 f
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
Formas Canónicas

Problema: Dada una Tabla de Verdad, obtener la forma


algebraica

x1 x2 x3 f
0 0 0 0
0 0 1 0
0 1 0 1 x1x2 x3
0 1 1 0
1 0 0 1 x1 x2x3
1 0 1 1 x1 x2x3
1 1 0 1 x1 x2x3
1 1 1 0
Formas Canónicas

La forma algebraica queda:

f(x1, x2, x3)=x1x2 x3 + x1 x2x3 + x1 x2x3 + x1 x2x3

Para convertir se observa la combinación de entrada para la


cual la salida toma el valor 1. La variable aparece sin
complementar si vale 1 para la combinación en la cual la
salida vale 1 y aparece complementada si vale 0 para la
combinación en la cual la salida toma el valor 1.
Formas Canónicas: Minitérminos

Se denomina minitérmino a un factor de una expresión


booleana que está formado por el AND de todas las variables.

Una función de conmutación corresponde al OR de


minitérminos. La función generada de esta manera se
denomina OR canónico de AND.

f(x1, x2, x3)=OR( m0, m1, …, mn )

f(x1, x2, x3)=( m0, m1, …, mn )


Formas Canónicas: Minitérminos

Para el ejemplo anterior:

f(x1, x2, x3)=OR( 2, 4, 5, 6 )

f(x1, x2, x3)=(2, 4, 5, 6 )


Formas Canónicas: Maxitérminos

Una forma alternativa de expresar la función es examinando


las combinaciones en las cuales vale 0.

x1 x2 x3 f
0 0 0 0 (x1+x2+ x3)
0 0 1 1
0 1 0 0 (x1+ x2+x3)
0 1 1 1
1 0 0 0 (x1+ x2+x3)
1 0 1 1
1 1 0 1
1 1 1 0 (x1+ x2+x3)
Formas Canónicas: Maxitérminos

La función queda ahora:

f(x1, x2, x3)=(x1+x2+ x3 )(x1+ x2+x3 )


( x1+ x2+x3 )( x1+ x2+x3 )

Para convertir se observa la combinación de entrada para la


cual la salida toma el valor 0. La variable aparece sin
complementar si vale 0 para la combinación en la cual la
salida vale 0 y aparece complementada si vale 1 para la
combinación en la cual la salida toma el valor 0.
Formas Canónicas: Maxitérminos

Se denomina maxitérmino a un factor de una expresión


booleana a que está formado por el OR de todas las variables.

Una función de conmutación corresponde al AND de


maxitérminos. La función generada de esta manera se
denomina AND canónico de OR.

f(x1, x2, x3)=AND( M0, M1, …, Mn )

f(x1, x2, x3)=( M0, M1, …, Mn )


Formas Canónicas: Maxitérminos

Para el ejemplo anterior:

f(x1, x2, x3)=AND( 0, 2, 4, 7 )

f(x1, x2, x3)=( 0, 2, 4, 7 )


Conversión entre Formas
Canónicas
Problema: dada una función en OR canónico de AND,
obtener la forma canónica AND canónico de OR

F(A, B, C)=( 0, 1, 2, 7 )

F(A, B, C)=( 3, 4, 5, 6 )=ABC+ ABC+


ABC+ ABC

F(A, B, C)=(A+B+C)(A+B+C)
(A+B+C)(A+B+C)

F(A, B, C)=( 3, 4, 5, 6 )
Funciones Equivalentes

Dos funciones de conmutación son equivalentes cuando sus


expansiones en formas canónicas son idénticas, es decir
tienen el mismo valor de salida para las mismas
combinaciones de entradas.

Una forma similar de expresar lo mismo es que dos funciones


de conmutación son equivalentes cuando tienen la misma
Tabla de Verdad
Funciones Equivalentes

¿Cuántas funciones de n variables existen?

La respuesta a esta pregunta se encuentra


fácilmente preguntando: ¿Cuántas Tablas
de Verdad existen con n variables?

La respuesta está en observar la columna de salida. El número


de funciones es:
n
2
2
Funciones de una y dos variables

F(x)=x NOT

F(x, y)=xy AND

F(x, y)=x+y OR

F(x, y)=x+y NAND


Funciones de una y dos variables

F(x)=x y NOR

F(x, y)=xy+ xy OR EXCLUSIVO

F(x, y)= xy+ x y AND EXCLUSIVO

Ejercicio: Construir las Tablas de Verdad de estas funciones.


Lógica Combinacional
Lógica Combinacional contra la
Lógica Secuencial
Representación de entradas/salidas de circuitos lógicos:

X
Circuito Lógico
Entradas Y F Salida
Z

Circuitos de lógica combinacional:


 La salida depende solo de las entradas actuales.
 La relación de entrada/salida esta descrita por una tabla de verdad.

Circuitos de lógica secuencial:


 La salida depende de las entradas actuales y de las salidas previas.
 La relación de entrada/salida esta descrita por una tabla de estados.
Diversificación de las
compuertas
Compuertas Lógicas

Una forma alternativa de representar


funciones es mediante Compuertas
Lógicas. Las Compuertas Lógicas se
construyen físicamente con electrónica
integrada en sustratos de silicio.

El éxito de los sistemas digitales se debe


en gran medida al bajo costo por
compuerta que se logra con este proceso y
a la alta densidad de integración, llegando
en la actualidad a millones de compuertas
en un circuito integrado cuya área no
sobrepasa 1cm2.
Compuertas Lógicas

Una red de compuertas lógicas se denomina circuito


combinacional. Los circuitos combinacionales constituyen
una parte importante de una CPU moderna.

ALU CPU
Compuertas Lógicas

A AB A AB
B B

AND NAND

A A+B A A+B
B B
OR NOR

A AB
A A
B
NOT OR-EX
Compuertas Lógicas: Ejemplo

F(A, B, C, D)=AC+ABC+ABCD

C
A

F(A, B, C, D)
B

D
Implementación de
Funciones con Compuertas
Redes con AND, OR y NOT
 Una vez que se define la suma de productos mínima se
debe de definir el diagrama lógico, compuesto por una red
de compuertas que describan la función.
Ejemplo de un circuito de dos niveles

f  xy z  xyz  x y z  x yz
X

X
Y

Z
Niveles
 El número de niveles corresponde al máximo número de
compuertas que una señal debe pasar desde su entrada
hasta la salida.

 En el caso anterior tenemos dos niveles, esto asumiendo


que tenemos disponibles en la entradas los complementos
de la literales, cuando no se dispone de los complementos
es necesario complementar con compuertas NOT.
Problema

f  xy z  xyz  x y z  x yz  xyz
a) Diagrama de la suma de productos
b) Diagrama de la suma de productos mínimo
Una red multinivel

h  z  wxy  v( xz  w)

Las redes multinivel son el resultado de implementar funciones que no estén


en la forma ni de suma de productos ni de productos de sumas.
Minimización de funciones
Minimización de Funciones

Minimizar una función de conmutación F(x1, x2, …,xn) es


encontrar una función G(x1, x2, …,xn) equivalente a F y que
contenga el mínimo número de términos y literales en una
expresión OR de AND.

Ejemplo

F(A, B, C, D)=ACD+ ACD + ACD+ACD+ ABD

=(A+A) CD+ (A+A) CD+ABD

= CD+CD+ABD=(C+C)D+ABD=D+ABD
Mapas de Karnaugh

Los mapas de Karnaugh son formas modificadas de Tablas de


Verdad que permiten minimizar funciones de hasta 5
variables.

Los mapas de Karnaugh permiten el diseño rápido de


circuitos combinacionales de mínimo costo, es decir, con el
mínimo número de compuertas.
Construcción de Mapas de
Karnaugh
Para construir mapas de Karnaugh se siguen los siguientes
pasos:

1) Para una función de n variables, el mapa de Karnaugh


tiene 2n celdas

n=2 n=3 n=3 n=4


Construcción de Mapas de
Karnaugh
2) En las coordenadas se anotan las combinaciones de
variables según el código Gray

0 1 00 01 11 10
00 00
0 1 00 01 11 10 01 01
0 0 11 11
1 1 10 10
n=2 n=3 n=3 n=4
Construcción de Mapas de
Karnaugh
3) Se asigna un 1 a una variable sin complementar y un cero a
una variable complementada.

A 0 1 A 0 1
B B
0 AB AB 0 00 10

1 AB AB 1 01 11

De esta forma, cada celda queda determinada por una


combinación de unos y ceros
Construcción de Mapas de
Karnaugh
4) A cada combinación de unos y ceros de una celda se le
asigna el equivalente decimal de la representación binaria

00 01 11 10
00 0 4 12 8
01 1 5 13 9
11 3 7 15 11
10 2 6 14 10
Ejemplo de construcción del Mapa
de Karnaugh
Encontrar el mapa de la función

F(A, B, C, D)=(0, 1, 5, 6, 9, 13, 15)

AB AB
CD 00 01 11 10 CD 00 01 11 10
00 0 4 12 8 00 1 0 0 0
01 1 5 13 9 01 1 1 1 1
11 3 7 15 11 11 0 0 1 0
10 2 6 14 10 10 0 1 0 0
Construcción de Mapas de
Karnaugh
5) Dos celdas son adyacentes si difieren en una variable

00 01 11 10
00
01
11
10
Construcción de Mapas de
Karnaugh
6) Un subcubo es un conjunto de 2n celdas con valor de 1, las
cuales tienen la propiedad que cada celda es adyacente a
m celdas del conjunto

AB
CD 00 01 11 10
Subcubo 00 1 0 0 0
tamaño 2
Subcubo
01 1 1 1 1 tamaño 4
11 0 0 1 0
10 0 1 0 0 Subcubo
Subcubo tamaño 2
tamaño 1
Construcción de Mapas de
Karnaugh
7) Un subcubo se puede expresar por un término algebraico
que tiene n-m literales donde n es el número de variables
y 2m es el tamaño del subcubo

AB
CD 00 01 11 10
00 1 0 0 0
ABC
01 1 1 1 1 CD
11 0 0 1 0
10 0 1 0 0 ABD
ABCD
Construcción de Mapas de
Karnaugh
8) Una función se puede expresar como la suma de los
subcubos necesarios para cubrir todos los unos del mapa
de Karnaugh.
Para que una función sea mínima hay que buscar el mínio
número de subcubos, o sea, cada subcubo debe ser del
mayor tamaño posible.
El método de mapa de Karnaugh es un método manual.
En términos prácticos sirve para minimizar funciones de
hasta 6 variables
Construcción de Mapas de
Karnaugh
Minimización
AB
CD 00 01 11 10
00 1 0 0 0
ABC
01 1 1 1 1 CD
11 0 0 1 0
10 0 1 0 0 ABD
ABCD

F(A, B, C, D)=ABCD+ABC+ABD+CD
Construcción de Mapas de
Karnaugh: AND de OR
Una función se puede expresar también como el producto
(AND) de los subcubos necesarios para cubrir todos los
ceros del mapa de Karnaugh.

Ejemplo: Minimizar

F(A, B, C, D)=(0, 2, 5, 8, 10, 13, 14)


Construcción de Mapas de
Karnaugh: AND de OR
F(A, B, C, D)=(0, 2, 5, 8, 10, 13, 14)
AB
CD 00 01 11 10
00 0 1 1 0
01 1 0 0 1
11 1 1 1 1
10 0 1 0 0

F(A, B, C, D)=(B+D)(B+C+D)(A+C+D)
Construcción de Mapas de
Karnaugh
Representación
• Nótese que el mapa de 5 variables se obtiene a partir de dos
mapas para n = 4.
• A uno se le antecede un cero en la codificación de las
columnas y al otro un 1.
• El mapa de Karnaugh de 5 variables f(A,B,C,D,E):
ABC
DE 000 001 011 010 110 111 101 100
00 0 4 12 8 24 28 20 16
01 1 5 13 9 25 29 21 17
11 3 7 15 11 27 31 23 19
10 2 6 14 10 26 30 22 18
Construcción de Mapas de
Karnaugh
• Otra forma de representación

A=1 100 101 111 110


16 20 28 24
A=0 17 21 29 25
ABC
19 23 31 27
CD 000 001 011 010
00 0 4 18 22 30 26
12 8
f(A, B, C, D, E)
01 1 5 13 9
11 3 7 15 11
10 2 6 14 10
Construcción de Mapas de
Karnaugh
Generalizaciones
• Un mapa de Karnaugh n variables tiene 2n celdas o
cuadros.
• Cada celda o casillero de un mapa de n variables, tiene n
celdas adyacentes; es decir, los códigos binarios de los
minitérminos están a distancia uno.
• Una celda está asociada a un producto que contiene las n
variables, pudiendo éstas estar o no complementadas.
• Agrupando dos celdas adyacentes, se logra una expresión
tipo producto de (n-1) variables.
• Esto empleando: a  ab  ab
• Considerando que dos celdas adyacentes difieren en sólo
una variable, ya que están a distancia 1 (código Grey).
Construcción de Mapas de
Karnaugh
•Bloques pueden agruparse de un número de celdas que es una
potencia de dos; es decir: 2, 4, 8, 16...
•Agrupando 2k celdas, que forman un k-cubo, la expresión
booleana asociada es la que resulta de eliminar k variables de
las n correspondientes a un minitérmino.
•Los grupos posibles de k literales, cuando se tienen n
variables (k ≤ n), quedan dados por:
 n k n!
 2  2k
k  k!n  k !
•Ejemplo: los grupos de 1 literal cuando n=4
 4 1 4!
 2  21  8
1 1!4  1!
Son A, B, C, D, A, B, C, D
Construcción de Mapas de
Karnaugh
Ejemplo, para n = 4 (e.g. A, B, C, D):
• Un minitérmino se expresa como un producto de 4 variables.
• Una agrupación de 2 minitérminos, que forman un 1- cubo (o
que son adyacentes), puede expresarse en tres variables.
• Una agrupación de 4 minitérminos, que forman un 2- cubo,
se expresa en dos variables.
• Una agrupación de 23 minitérminos (que forman un 3-cubo),
puede expresarse como una variable.
• Una agrupación de los 24 minitérminos (forman un 4-cubo),
puede expresarse como 1 (usando 0 variables).
• Nótese que bajo el mapa suele escribirse la función que éste
representa.
Construcción de Mapas de
Karnaugh
Ejemplo: los grupos de 2 literales (k=2), cuando n=4:
 4 2 4!
 2  22  24
 2 2!4  2!

• Estos son: AB, AB, AB, AB, AC, AC, AC, AC,, CD
Construcción de Mapas de
Karnaugh
Definiciones
• Conjunto de unos en un mapa de Karnaugh que representa un
termino producto de variables. Se denomina implicante porque
cuando este termino toma el valor 1, implica que también la
función toma el valor 1. Un minitérmino solo es un implicante.
• Un implicante primo es aquel que no está incluido
completamente dentro de otro implicante. No puede
combinarse con otro implicante para eliminar un literal.
• Un implicante primo esencial es un implicante primo que
contiene uno o mas minitérminos que no están incluidos en
cualquier otro implicante primo.
Construcción de Mapas de
Karnaugh
En el siguiente mapa de Karnaugh:
Los términos I II y III son implicantes primos
El término IV no es implicante primo
Los términos I y III son implicantes primos esenciales
El término II no es un implicante primo esenciales
La función se obtiene con los términos I y III
Construcción de Mapas de
Karnaugh
Derivación de una Expresión Mínima de un Mapa
Un procedimiento para encontrar una expresión mínima como
suma de productos es el siguiente:
1. Elegir un elemento del mapa y buscar todos los grupos máximos
de 1s y Xs adyacentes a ese elemento. Repetir el paso 1 para
encontrar todos los implicantes primos.
2. Visitar un elemento del mapa. Si esta cubierto por un solo
implicante es esencial y va a contribuir un terminó a la expresión
final de suma de productos. Repetir el paso 2 para encontrar todos
los implicantes primos esenciales.
3. Si es que faltan algunos 1s que no están cubiertos entonces
seleccionar un numero mínimo de implicantes primos para
cubrirlos. Tratar varias alternativas de cubrimientos para encontrar
el que tenga el numero menor de implicantes.
Ejemplos de uso de Mapas de
Karnaugh
• f = Σm(0,2)

• Cout =Σm(3,5,6,7)

• f(A,B,C) = Σm(0,4,5,7)
Ejemplos de uso de Mapas de
Karnaugh
G A, B, C   A

FA, B, C    m0,4,5,7  AC  BC
F simplemente remplaza 1' s con 0' s y vice versa
FA, B, C    m1,2,3,6  BC  AC
Ejemplos de uso de Mapas de
Karnaugh
FA, B, C, D  m0,2,3,5,6,7,8,10,11,14,15
F  C  ABD  BD

encontrar el menor número de subcubos de


mayor tamaño para cubrir el mapa
(menor numero de términos con el
menor número de entradas por término)
Ejemplos de uso de Mapas de
Karnaugh con indeterminados
FA, B, C, D    m1,3,5,7,9  d6,12,13
 sin indetermin ados
F  AD  BCD
Ejemplos de uso de Mapas de
Karnaugh con indeterminados
FA, B, C, D    m1,3,5,7,9  d6,12,13
 sin indetermin ados
F  AD  BCD
 con indetermin ados
F  AD  CD usando un indeterminado como un "1“
se puede formar un 2-cubo en ves de
un 1-cubo para cubrir este nodo

Los indeterminados se pueden usar


como 1s o 0s, dependiendo de lo que
sea mas conveniente
Implementación de circuitos
combinacionales con SSI
Función lógica básica (suma)
Función lógica básica (suma)

 Función aritmética de suma

Sumador
A  SUMA
ENTRADAS
DOS
NÚMEROS B Cout
ACARREO
BINARIOS
Cin DE SALIDA

ACARREO
DE
ENTRADA
Funciones lógicas derivadas

 Función aritmética de resta

 Función aritmética de multiplicación

 Función aritmética de división


Semisumador
(Medio Sumador o Half Adder)
 El circuito aritmético digital más simple es el de la suma
de dos dígitos binarios. Un circuito combinatorio que
ejecuta la suma de dos bits se llama semisumador.
Diagrama Lógico del Medio-Sumador
Sumador Completo (Full Adder)
 Otro método para sumar dos números de n bits consiste en
utilizar circuitos separados para cada par correspondiente
de bits: los dos bits que se van a sumar, junto con el
acarreo resultante de la suma de los bits menos
significativos, lo cual producirá como salidas un bit de la
suma y un bit del acarreo de salida del bit más
significativo.
Diagrama en bloque de un
Sumador Completo

Xi Si
Sumador Completo
SC
Yi Ci+1

Ci

Sumador completo de dos palabras de un bit


Las expresiones mínimas de suma de
producto para las salidas del SC
Si  xi yi Ci  xi yi Ci  xi yiCi  xi yiCi
Ci 1  xi yi  xiCi  yiCi
 xi yi  Ci xi  yi 
Funciones optimizadas

Si  xi  yi  Ci
Ci 1  xi yi  Ci ( xi  yi )
Implementación de las ecuaciones del
Sumador Completo
Implementación de un SC con dos MS

• Un sumador completo resulta de la unión de dos medios


sumadores.
Sumadores de n bits

 Podemos construir sumadores de n bits con n copias del


circuito anterior, este tipo de sumadores son conocidos
como, sumadores con propagación de acarreo (Carry-
ripple adder).

 Los sumadores completos se conectan en cascada de


manera que el acarreo de salida de una etapa viene a ser el
acarreo de entrada de la siguiente, como se ilustra en la
figura de la siguiente diapositiva.
Implementación de un sumador en
cascada
 Para dos palabras de 4 bits.

Cin

Cout

Podemos implementar un sumador de n bits con n copias de los


circuitos anteriores
Sumadores del tipo con propagación
de acarreo
 Como lo indicamos en una diapositiva anterior, una forma posible
para implementar sumadores de n bits es conectar n sumadores
completos de un bit en cascada, a esta configuración se la
denomina sumador con propagación de acarreo.

 El mayor problema con este tipo de implementación es el tiempo


de retardo, ya que cada módulo depende del resultado del módulo
anterior, en base a la siguiente formula:
(2n  4)
Donde: Δ es el tiempo de retardo de una compuerta.

 Por ejemplo para un sumador de 64 bits el retardo será de 132 Δ,


este es un tiempo de propagación muy grande.
Sumadores basados en ecuaciones de
suma de productos
 Con la finalidad de incrementar la velocidad de los sumadores,
se han pensado en varias aproximaciones, una de ellas es
implementa un sumador multibit usando una expresión de suma
de productos.

 Por ejemplo un sumador para dos bits consistiría de una tabla de


5 entradas y tres salidas, consecuentemente tendríamos mapas
de Karnaugh de 5 variables y expresiones simplificadas para la
tres funciones de salida con 23 términos y 80 literales, un
circuito de dos niveles requerirá una compuerta OR de 12
entradas y otras más.

 Claramente podríamos seguir adoptando esta metodología para


sumadores de 3 bits o 4 bits, no obstante el algebra cada vez será
más compleja y el número de términos aumenta drásticamente.
Sumadores de tipo sumador con acarreo
anticipado (Carry-look-ahead adder)
 El problema en los sumadores anteriores ha sido el retardo
de la señal de acarreo o de la complejidad del número de
entradas.

 Una solución para evitar estas desventajas son los


sumadores de tipo sumador con acarreo anticipado.

 La mayoría de los circuitos integrados comerciales usan


este método.
Sumadores comerciales

 Existe disponibles comercialmente sumadores de 4


bits:
 7483, 7483A, y el 74F283 (4-bit binary full adder
with fast carry)
 Cada uno de ellos usa un circuito de 4 niveles para
producir la suma, usando una mezcla de compuertas
NAND, NOR, NOT y OR-EX.
 El retardo desde el Cin hasta el Cout es de 3Δ para cada
4 bits y produce un retardo total de (3/4 n+1)Δ.
Sumador de 12 bits con tres SC de 4
bits (74HC283) en cascada
U1 U2 U3

12 A4 SUM_4 10 12 A4 SUM_4 10 12 A4 SUM_4 10


14 A3 SUM_3 13 14 A3 SUM_3 13 14 A3 SUM_3 13
3 A2 SUM_2 1 3 A2 SUM_2 1 3 A2 SUM_2 1
5 A1 SUM_1 4 5 A1 SUM_1 4 5 A1 SUM_1 4
11 B4 11 B4 11 B4
15 B3 15 B3 15 B3
2 B2 2 B2 2 B2
6 B1 6 B1 6 B1
7 C0 C4 9 7 C0 C4 9 7 C0 C4 9

74HC283N_6V 74HC283N_6V 74HC283N_6V

Existe una tercera aproximación para implementar


sumadores que es llamada sumador con acarreo anticipado.
Función lógica básica (Resta)
Restadores y Sumadores-Restadores

 Para realizar la substracción podríamos desarrollar la


tabla de verdad para la resta de 1 bit y unir en cascada
los módulos necesarios para el número de bits que se
requiera, los que se denominaría un sustractor de
propagación de préstamo (borrow-ripple subtractor).

 En la mayoría de los casos, cuando se realiza una


resta, también es necesario realizar una suma, por lo
tanto podemos sacar ventaja de la aproximación de
realizar una resta usando una suma de la siguiente
forma:
 A – B = A + Bcomp a 1 + 1
Sumador/Restador

El uso de las compuertas OR-EX ayudan a comandar el


modo de funcionamiento.
Sumador/Restador

 A-B = A+B+1, para realizar el complemento se usan las


compuertas OR-EX.
Función lógica básica
(Multiplicador)
Bloques Multiplicadores
La multiplicación es una operación cara (en términos
de recursos) y lenta
Este hecho ha motivado la integración de unidades
completas de multiplicación en los DSPs y mPs
Los multiplicadores son en la práctica matrices
complejas de sumadores
Bloques Multiplicadores
Consideramos dos números binarios sin signo X
e Y, de M y N bits respectivamente:
M 1 N 1
X   Xi 2 i
Y  Y j 2 j X i , Y j  0,1
i 0 j 0

Definición de la operación de multiplicación:


M  N 1
Z  X Y   k 
Z 2
k 0
k

 M 1 i
 N 1  N 1  M 1 i j 
  X i 2   Y j 2      X iY j 2 
 j

 i 0  j 0  j 0  i 0 
Multiplicadores
Desplazamiento y Suma
M 1
X   X i 2i

N 1 M 1
i j 
i 0
N 1 Z  X  Y     X iY j 2 
Y  Yj 2 j j 0  i 0 
j 0

La multiplicación requiere M ciclos utilizando un


sumador de N bits.
Se realiza la suma de N productos parciales, que se
generan multiplicando un bit del multiplicador por el
valor del multiplicando (operación AND) y
desplazando el resultado según la posición del bit del
multiplicador.
Multiplicador matricial: ejemplo
Multiplicador matricial

En hardware, la estructura del multiplicador


matricial combina las funciones: generación de
productos parciales, acumulación de productos
parciales y suma final
Generación de productos parciales
X7 X6 X5 X4 X3 X2 X1 X0

Yj

PP7 PP6 PP5 PP4 PP3 PP2 PP1 PP0

Los productos parciales (PP) resultan de aplicar la


operación lógica AND al multiplicando X y a un bit
del multiplicador Yj
Cada fila de la matriz de PP es una copia del
multiplicando o una fila de ceros
Optimizar la generación de los PP para reducir los
retardos y el área ocupada en hardware (recodificación
Booth)
Algoritmo de Booth
Ejemplo:
Un multiplicador de 8 bits: 01111110 produce 6 filas
de productos parciales distintos de cero
Este número se puede re-codificar para poder reducir
(sustancialmente) el número de filas distintas de cero:
El número 10000010 representa el mismo número, si
1 es una anotación abreviada para designar el valor -1
Algoritmo de Booth
Ejemplo (cont.):
Utilizando esta representación (10000010), basta con
sumar dos productos parciales, aunque el sumador
tiene que ser capaz de realizar restas.
Reducir el número de productos parciales es
equivalente a reducir el número de sumas, lo que
permite acelerar la operación y reducir el área
ocupada.
Re-codificación
de Booth modificado
No resulta demasiado práctico para el diseño de
multiplicadores disponer de una matriz de productos
parciales de tamaño variable.
Por eso, normalmente se utiliza el esquema de re-
codificación de Booth modificado, en lugar del
esquema original.
El multiplicador se divide en grupos de 3 bits,
solapados por un bit. Cada grupo de 3 se recodifica
según la tabla siguiente:
Re-codificación
de Booth modificado
Re-codificación
de Booth modificado
Re-codificación
de Booth modificado
Multiplicador matricial

Multiplicador matricial de 4×4 bits para números sin


signo
Multiplicador matricial

La generación de N PPs requiere N×M compuertas AND de 2


bits
La mayor parte del área del multiplicador está dedicada a la
suma de los N PPs, que requiere N-1 sumadores de M bits
Desplazamiento: conectar apropiadamente las pistas de
interconexión, sin necesidad de lógica especial
¡Estructura compacta! Se puede implementar de forma
rectangular (opt. layout)
Multiplicador matricial

Se pueden identificar varios caminos con una longitud


prácticamente idéntica
Multiplicador matricial
Multiplicador matricial
Hay dependencias verticales y horizontales en todos
los niveles
Todos los caminos críticos se tienen que acelerar al
mismo tiempo (acelerar solo uno de ellos sustituyendo
un sumador por otro más rápido, como por ejemplo un
sumador Carry-Select, no tiene mucho sentido)
t mult  t AND  N  1  t sum  M  1  N  2 tcarry
De la ecuación anterior, se observa que la
minimización de tmult requiere la minimización tanto
de tcarry como de tsum
Se puede utilizar un sumador Carry-Save (CSA)
Multiplicador Carry-Save
Observamos que el resultado de la multiplicación no
varía cuando los bits de salida del acarreo se
transmiten diagonalmente hacia abajo en lugar de
solo hacia la derecha
¡Este es el principio del CSA que hemos visto en la clase
anterior!
Para generar el resultado final se incluye en el diseño
un sumador adicional, denominado sumador de
combinación de vectores
Multiplicador Carry-Save

La propagación de señales se realiza hacia la


siguiente etapa y no entre elementos de una misma
etapa
Multiplicador Carry-Save - ejemplo
Multiplicador Carry-Save
Disposición rectangular de un CSM
Árbol de retardos balanceado
La cadena vertical
de FA en un CSM
es una cadena serie.
Se puede reducir el
retardo de dicha
cadena empleando
árboles binarios
Multiplicador en árbol
Empleando sumadores para las sumas parciales en
estructura de árbol, se pueden reducir tanto el camino
crítico (retardo) como el núm. de celdas sumadoras
necesarias (área)

Para un multiplicador de 4×4 bits, se


puede observar que solo la columna 3
de la matriz de sumadores tiene que
sumar 4 bits. Todas las demás columnas
son algo menos complejas.
Árbol de Wallace para un
multiplicador de 4×4 bits
Árbol de Wallace para un
multiplicador de 4×4 bits
Árbol de Wallace para un
multiplicador de 4×4 bits
Árbol de Wallace para un
multiplicador de 4×4 bits
Implementación del multiplicador
en árbol de Wallace
Suma final
La velocidad del sumador final tiene gran importancia
La elección del estilo de sumador dependerá de la estructura
de la matriz de acumulación. Se puede preferir un CLA
(Carry-look ahead, sumador de predicción de acareo) si todos
los bits de entrada al sumador llegan al mismo tiempo (es el
sumador con el más pequeño retardo posible)
Este es el caso, por ejemplo, si se utiliza una etapa de
registro justo antes de la suma final. El procesamiento en
cadena mediante la inclusión de registros es una técnica
frecuentemente utilizada en los multiplicadores de altas
prestaciones
Suma final
En los multiplicadores que no están basados en una estructura
de procesamiento en cadena, el perfil de instantes de llegada
de las entradas al sumador final es bastante poco equilibrado,
debido a las profundidades lógicas variables del árbol del
multiplicador
En estas circunstancias, otras topologías de sumador, como las
de carry-select, suelen proporcionar prestaciones similares a
las del CLA, pero con un costo en términos de hardware
sustancialmente menor
Función lógica básica
(Comparador)
Función lógica básica (Comparación)

 Función comparación

Comparador
A A>B
A=B SALIDAS
ENTRADAS
TRES
DOS
NÚMEROS B A<B ESTAADOS
LÓGICOS
BINARIOS
Comparadores

 Una necesidad común en la aritmética es la comparación


de dos números, que indique si son iguales o si uno es
mayor que el otro.

 Se usa la OR Exclusiva (OR-EX) para generar un 1 en el


caso de que los números sean diferentes y 0 para el caso de
que sean iguales.

 Para un caso de dos palabras de varios bits, si un par de bit


son diferentes entonces las palabras son diferentes.
Circuito Comparador de 4 bits

a) Con OR exclusivas b) Con NOR exclusivas

Estos comparadores solo son para determinar la igualdad de


dos palabras de 4 bits y pueden extenderse a cualquier
tamaño de palabras.
Comparadores
 Para la implementación de una comparador de 4 bits
que indique si la palabra es mayor, menor o igual,
debemos hacer un reconocimiento desde el bit más
significativo de la siguiente forma:
 a>b si a4>b4 o (a4 = b4 y a3>b3) o (a4 = b4 y a3 = b3 y
a2>b2) o (a4 = b4 y a3 = b3 y a2 = b2 y a1>b1)
 a<b si a4<b4 o (a4 = b4 y a3<b3) o (a4 = b4 y a3 = b3 y
a2<b2) o (a4 = b4 y a3 = b3 y a2 = b2 y a1<b1)
 a = b si a4 = b4 y a3 = b3 y a2 = b2 y a1 = b1

 Esta lógica se puede extender para la cantidad de bits


que sea necesario o el de 4 bits puede estar en cascada
con otros pasando las señales de > < =.
Comparador Comercial

 El 7485 es un comparador de 4 bits, con la opción de


realizar conexiones en cascada para aumentar en número
de bits que se deseen comparar.

 Para hacer la cascada las señales van del módulo más bajo
al más alto
Comparador típico de 1 bit

<

>
Función lógica básica
(multiplexor)
Función lógica básica (Multiplexor)

 Función de selección de datos

Multiplexor Demultiplexor
A D
B E
C F

Entrada de control de Entrada de control de


secuencia de secuencia de
conmutación conmutación
Multiplexores
 Problemática
 Los datos que se generan en una localidad se van a
usar en otra, para esto se necesita un método para
transmitirlos de una localidad a otra a través de algún
canal de comunicaciones.

Canal de comunicaciones
.
. Salida de
Entrada de
. datos
.
datos .
.

demultiplexor

multiplexor
Multiplexores
 Definición
 Un multiplexor digital es un circuito con 2n líneas
de entrada de datos y una línea de salida; también
debe tener una manera de determinar la línea de
entrada de datos específica que se va a seleccionar
en cualquier momento. Esto se efectúa con otras n
líneas de entrada, denominadas entradas de
selección, cuya función es elegir una de las 2n
entradas de datos para la conexión con la salida
Multiplexores (Selectores)

 Existen dos tipos básicos de Multiplexores:


 De varias entradas a una salida, llamados de
selectores de 2n a 1, o simplemente MUX (del inglés
multiplexer) de 2n a 1.
 De una entrada a varias salidas, llamados selectores

de 1 a 2n o simplemente DEMUX (del inglés


demultiplexer) de 2n a 1.
Multiplexor 41
Multiplexor 4 a 1
 El multiplexor 4 a 1 tiene seis entradas y una
salida. Una tabla de verdad que describa el circuito
necesitará 64 renglones, esta es una tabla
excesivamente larga y no es práctica.

 Una manera más práctica de describir el


funcionamiento es por medio de una tabla de
función.
Tabla de función de un mux 4 a 1

Selección Salida

S1 S0 Y

0 0 I0

0 1 I1

1 0 I2

1 1 I3

Esta tabla demuestra la relación entre las cuatro entradas de


datos y la salida, única como función de las entradas de
Selección S1 y S0.
Mux 81
Función lógica básica
(Demultiplexores)
Función lógica básica
(Decodificadores)
Función lógica básica (Decodificador)

 Función de decodificación

Decodificador

(BCD a
Entrada 7segmentos)
binaria
Decodificadores
 Un decodificador es un dispositivo que cuando está
activado selecciona una de varias líneas de salida
basándose en un código de entrada.

 Las cantidades discretas de información se representan en


sistemas digitales con códigos binarios (ejemplo: BCD,
EXCESO 3, 84-2-1, 2421, etc.). Un código binario de n
bits es capaz de representar hasta 2n elementos distintos de
información codificada.

 La mayoría de los decodificadores convierte información


binaria de n líneas de entrada a un máximo de 2n líneas
únicas de salida o menos. Estos decodificadores son
denominados decodificadores n-a-m líneas, donde m  2n.
Decodificadores

 Estos dispositivos normalmente cuentan con una entrada


habilitadora. Cuando esta entrada vale 0, todas las salidas
del codificador son 0. Cuando la entrada habilitadora vale
1, la salida correspondiente al minitérmino formado por la
combinación presente en las n entradas tomará el valor 1 y
las demás tomarán el valor 0.
Decodificador 24
 Un valor de x en las entradas indica que puede tomar el valor
de 1 o 0.
DEC 24
S0 01000
S1 00100
S2 00010
Hab. S3 00001
C1 C0
0 X X
1 0 0
1 0 1
1 1 0
1 1 1
Decodificador 24
 Las funciones lógicas para las salidas del
codificador 2x4 son:

S0  H C1C0

S1  H C1C0

S2  HC1C0

S3  HC1C0
Decodificadores

 De forma semejante a como se define el decodificador


24, pueden definirse decodificadores de 38, 416, 532
y en forma general de n2n.

 La principal utilización de este dispositivo es cuando se


tiene N alternativas que se pueden seleccionar, pero se
desea seleccionar solamente una de ella.
Decodificador 38
Decodificador comercial
 El 74138 es un decodificador
U1
de tipo 38 comercialmente
disponible 1 A Y0 15
2 B Y1 14
3 C Y2 13
Y3 12
6 G1 Y4 11
 Ver hoja de datos 4 ~G2A Y5 10
5 ~G2B Y6 9
 Entradas con X Y7 7
 Tipo de salidas
74LS138N
 Active High
 Active Low
Decodificador comercial 4x16

 El 74154 es un U1

decodificador comercial 23
22 A 0 1
2
B 1
416 21
20 C
D
2
3
3
4
4 5
6
 Es un CI de 24 pins 5
6 7
7 8
8 9
9 10
10 11
11 13
12 14
13 15
18 ~G1 14 16
19 ~G2 15 17

74154N
Aplicación

 Una aplicación de los decodificadores es seleccionar uno


de muchos dispositivos que tiene una única dirección. La
dirección sería la entrada del decodificador, una salida
estaría activa, para seleccionar el dispositivo que fue
seleccionado.
Decodificadores de mayor tamaño

 Es posible unir varios decodificadores para implementar


decodificadores de mayor tamaño.
Función lógica básica
Codificador (encoder)
Función lógica básica (Codificador)

 Función de codificación

9 Codificador
7 8 9 8
7 (de teclado)
4 5 6 Código binario
6
5
1 2 3 4
3
0 . +/-
2
1
+/-
.
0
Codificador

 Un codificador es un circuito digital que ejecuta la


operación inversa de un decodificador. Un codificador
tiene 2n (o menos) líneas de entrada y n líneas de
salida. Las líneas de salida generan un código binario
correspondiente al valor de entrada binario.

 Es útil cuando uno de varios dispositivos desea enviar


señales a una computadora.

 Solo una entrada puede estar activada.


Codificador Octal a Binario

Entradas Salidas

D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0

0 0 0 0 0 0 0 1 0 0 0

0 0 0 0 0 0 1 0 0 0 1

0 0 0 0 0 1 0 0 0 1 0

0 0 0 0 1 0 0 0 0 1 1

0 0 0 1 0 0 0 0 1 0 0

0 0 1 0 0 0 0 0 1 0 1

0 1 0 0 0 0 0 0 1 1 0

1 0 0 0 0 0 0 0 1 1 1
Codificador octal a binario

 El codificador puede implantarse con compuertas OR


cuyas entradas se determinan directamente de la tabla de
verdad. Por ejemplo, la salida es A0 será igual a 1 si el
digito octal de entrada es 1 o 3 o 5 o 7.

 Las funciones de este codificador son las siguientes:


 A0 = D1+D3+D5+D7
 A1 = D2+D3+D6+D7
 A3 = D4+D5+D6+D7
Codificador BDC comercial el 74147

 El 74147 es un U1
codificador BCD, que 11 1 A 9
12 2 B 7
toma 9 entradas activadas 13 3 C 6
1 4 D 14
por nivel bajo y las 2 5
3 6
codifica en 4 salidas 4
5 7
10 8
activadas en nivel bajo. 9

74147N
Diplay’s
Función lógica básica (Memoria)
Memorias ROM

• Memorias ROM (Read Only Memory, memoria de sólo lectura).


• m entradas (2m elementos direccionables, o altura de la ROM).
• n salidas (Cada posición contiene un dato de n bits, anchura de la
ROM).
• Forma de la ROM = altura x anchura
• Aunque se llame memoria, es un circuito combinacional.
• Puede usarse para implementar n funciones binarias distintas
dependientes de las mismas m variables de entrada.
• Se implementa usando dos niveles de puertas (aparte de las
• negaciones de las entradas):
 Un plano AND, con 2m puertas de m entradas cada una.
 Un plano OR, con n puertas de salida.
Memorias ROM

Esquema de una memoria ROM con 8 posiciones de 4 bits


cada una (3 bits de dirección, y anchura de datos 4).
Variantes de Memorias ROM

 PROM (Programmable ROM, ROM programables).

 EPROM (Erasable PROM, PROM borrables).

 EEPROM (Electronically EPROM, PROM borrables


electrónicamente).

 Memorias Flash (permiten el borrado y reescritura


selectivos por bloques, miles de veces).
Arreglos Lógicos Programables

 PAL (Programmable Array Logic, arreglo lógico


programable).
 Como una ROM, pero sólo se implementan los productos
necesarios. Útiles cuando hay muchas entradas, pero sólo
unas pocas combinaciones se utilizan realmente. Ejemplo
Forma 3x6x4:

You might also like