.1 CIRCUITOS COMBINACIONALES Elena Ele na V alderrama Universidad Autónoma de Barcelona
1. Circui Circuitos tos combinacionales
2 .1
Circuitos digitales que implementan una o varias funciones de conmutación, conmutación, y tales que las salidas del circuito en cada instante de tiempo dependen única y exclusivamente de las .
…
combinacional
…
2
2 .1
1. Circui Circuitos tos combinacionales Sumador de números de de números de 4 cifras binarias binarias (4 bits)
Sumado Sum adorr núm números eros de 4 bits
s <= X + Y + acarreoIN; if ss > 1111 then Z <= s - 10000; if 10000; acarreo acarreoOUT <= 1; else Z <= s; acarreoOUT <= 0; end if ; (Operaciones en base-2)
3
2.1 Síntesis a partir de una tabla: Memoria ROM
2 .1
Sumador números de 4 bits
= IN if s > 1111 then Z <= s - 10000; acarreoOUT <= 1; else Z <= s; acarreoOUT <= 0;
4
2 .1
TABLA DE VERDAD
….
….
5
TABLA DE VERDAD
….
….
s t i b 5 e d ) 2 1 5 ( s a r b a a p 9 2 e d M R
2.1 Síntesis a partir de una tabla: Memoria ROM
2 .1
CC de n entradas y m salidas → ROM de 2n palabras de m bits por palabra n
m bits
Circuito …
…
…
combinacional
…
… habitualmente ineficiente !
7
2 .1 PREGUNTA ¿Cuál debería ser el tamaño mínimo (número de palabras y número de bits por palabra de una ROM ue im lementase un circuito combinacional de 8 entradas 16 salidas?
1. 23 palabras de 16 bits . pa a ras e s 4 3. 2 palabras de 8 bits 4. 216 palabras de 8 bits
8
2.2 Síntesis a partir de una tabla: Puertas lógicas xi
yi
Sumador 1 bit
Sumador números
acarreoOUT
de 4 bits
2 .1
acarreo IN
z i x3
acarreoOUT
y3
x2
y2
x1
y1
Sumador 1 bit
Sumador 1 bit
Sumador 1 bit
z 3
z 2
z 1
x0
y0
Sumador 1 bit
acarreo IN
z 0
9
2 .1 xi
acarreoOUT
yi
Sumador 1 bit
o
acarreo IN i
z i
s = xi yi ci; if s = 0 then zi <= 0; co = 0; elsif s = 1 then zi <= 1; co <= 0; elsif s = 2 then zi <= 0; co <= 1; else zi <= 1; co <= 1; end if ; end if ; end if ;
10
2.2 Síntesis a partir de una tabla: Puertas lógicas xi
yi
Sumador 1 bit
co
2 .1
ci
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
11
2.2 Síntesis a partir de una tabla: Puertas lógicas xi
yi
Sumador 1 t
c
2 .1
c
x
z
y
x
x
y
z
z i
y
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
x
y
0
AND
z
z
x
x
xi
y
OR
12
2.2 Síntesis a partir de una tabla: Puertas lógicas xi
yi
Sumador 1 t
c
2 .1
c
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
13
2.2 Síntesis a partir de una tabla: Puertas lógicas xi
yi
Sumador 1 t
c
2 .1
c
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
14
2 .1
utilizando el menor número posible de puertas
ÁLGEBRA DE BOOLE
15
2 .1 E erc ic io xi
yi
Diseñar con puertas lógica la salida z i del sumador de 1 bit Sumador 1 bit
co
ci
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
16
2 .1 S o lu l u c ió i ó n d el e l e e r c ic i c io io xi
r o u es e s to to
yi
Diseñar con puertas lógica la salida z i del sumador de 1 bit Sumador 1 bit
co
ci
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
17
2.2 Síntesis a partir de una tabla: Puertas lógicas xi
yi
Sumador 1 t
c
2 .1
c
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
18
2 .1 RESUMEN
Circuitos combinacionales
Dise Diseño ño de cir circuit cuitos os comb combin inac acio iona nale less util utiliz izan ando do memo memori rias as ROM tabla ablass
Primer intento de diseño utilizando puertas lógicas
19
2 .1
20
.2 ÁLGEBRA DE BOOLE Elena Valderrama Universidad Autónoma de Barcelona
2 .2 1. Álgebra de Boole
Un álgebra de Boole un conjunto finito de elementos sobre el cual se han definido dos .
El álgebra de conmutación(*) es un álgebra de Boole en el que el conjunto de elementos se limita a {0,1} B = {0,1},
operación +,
operación ⋅
(*) En el ámbito de los sistemas digitales se trabaja con álgebras de conmutación, aunque se utiliza el nombre genéricos de álgebra de Boole.
22
2 .2 1. Álgebra de Boole P 1 - Las operaciones + y . son internas, ∀a , b ∈ B , a + b ∈ B y a ⋅ b ∈ B -
,
,
,
⋅
P 3 – Existencia del elemento inverso, ∀a ∈ B , ∃ a ∈ B | a + a = 1, a ⋅ a = 0 P 4 - Las operaciones son conmutativas, a + b = b + a, a ⋅ b = b ⋅ a P 5 - Las operaciones son distributivas, a ⋅ (b + c ) = a ⋅ b + a ⋅ c, a + b ⋅ c = ( a + b) ⋅ (a + c )
23
2 .2 1. Álgebra de Boole La única manera de definir las operaciones suma_lógica y producto_lógico de forma que cumplan los 5 postulados es …
a
b
a+b
a.b
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
24
2 .2 1. Álgebra de Boole a ⋅ (b + c ) = a ⋅ b + a ⋅ c ,
a + b ⋅ c = ( a + b) ⋅ ( a + c )
≈
25
2 .2 2. Propiedades útiles del álgebra de Boole 1 - Elemento inverso,
0 = 1, 1 = 0
2 - Idempotencia,
a + a = a,
a⋅a = a
-
a, ∈ ,
a
∈
a⋅ ∈
P2 - ∀a ∈ B, a + 0 = a, a ⋅1 = a P3 - ∀a ∈ B, ∃ a ∈ B | a + a = 1, a ⋅ a = 0 P4 - a + b = b + a, a ⋅ b = b ⋅ a P5 - a ⋅ (b + c) = a ⋅ b + a ⋅ c, a + b ⋅ c = (a + b) ⋅ (a + c)
26
2 .2 Demuestra que a ⋅ a = a , anteriormente
-
a, ∈ ,
a
∈
a⋅ ∈
P2 - ∀a ∈ B, a + 0 = a, a ⋅1 = a P3 - ∀a ∈ B, ∃ a ∈ B | a + a = 1, a ⋅ a = 0 P4 - a + b = b + a, a ⋅ b = b ⋅ a P5 - a ⋅ (b + c) = a ⋅ b + a ⋅ c, a + b ⋅ c = (a + b) ⋅ (a + c)
27
2 .2 Demuestra que a ⋅ a = a , anteriormente
-
a, ∈ ,
a
∈
a⋅ ∈
P2 - ∀a ∈ B, a + 0 = a, a ⋅1 = a P3 - ∀a ∈ B, ∃ a ∈ B | a + a = 1, a ⋅ a = 0 P4 - a + b = b + a, a ⋅ b = b ⋅ a P5 - a ⋅ (b + c) = a ⋅ b + a ⋅ c, a + b ⋅ c = (a + b) ⋅ (a + c)
28
2 .2 2. Propiedades útiles del álgebra de Boole 1 - Elemento inverso, 0 = 1,
1= 0
2 - Idempotencia,
a + a = a,
a⋅a = a
3 - Involución,
a = a
4 - Asociatividad,
a + (b + c ) = ( a + b) + c, a ⋅ (b.c ) = ( a.b).c
5 - Absorción,
a + a.b = a,
6 - (sin nombre),
a + a.b = a + b,
7 - de Morgan,
( a + b ) = a.b,
a ⋅ ( a + b) = a a ⋅ ( a + b ) = a.b a.b = a + b
8 - de Morgan generalizada, ( a1 + a2 + ... + a n ) = a1.a2 ...an , a1.a2 ... an = a1 + a2 + ... + an 29
2 .2 PREGUNTA A qué expresión booleana es equivalente la siguiente: a ⋅ (b + cd ) + a.b
1. a.b + b.c + d 2. a.b 3. a.b + b.c + d 4. a.b + b.c + b.d
30
2 .2 3. Funciones booleanas y tablas de verdad a) Toda función booleana puede representarse explícitamente por una tabla de verdad a , , c = .c + a. a
b
c
f(a,b,c)
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
31
2 .2 3. Funciones booleanas y tablas de verdad b) Dada una tabla de verdad ¿podemos encontrar una función booleana equivalente?... La respuesta es SI
LITERAL ua qu e va a e o su e emen o nve so :
a , a , , , c , c , ...
MINTERM de n variables Cualquier producto de n literales tal que cada variable aparece una sola vez. Para n=3, los siguientes términos son minterms : . . ,
. . ,
. . ,
. . , ... 32
2 .2 3. Funciones booleanas y tablas de verdad MINTERM de n variables : Cada minterm toma el valor 1 para una única combinación de valores
a.b.c = 1 ⇔ . . = a.b.c = 1 ⇔ a.b.c = 1 ⇔
a
b
c
0
0
0
→ m0 = a.b.c
→ m1 = a. .c → m2 = a.b.c → m3 = a.b.c
0
1
0
0
1
1
a.b.c = 1 ⇔ a.b.c = 1 ⇔
1
0
0
1
0
1
a.b.c = 1 ⇔ a.b.c = 1 ⇔
1
1
0
1
1
1
→ m4 = a.b.c → m5 = a.b.c → m6 = a.b.c → m7 = a.b.c 33
PREGUNTA Indica cuál de las siguientes expresiones corresponde al minterm-5 (m5 )en n=4:
1. a.b.c.d 2. a.b.c 3. a.b.c.d 4. a.b.c.d
34
2 .2 3. Funciones booleanas y tablas de verdad MINTERM de una función booleana de n variables Son aquellos minterms que coinciden con los 1s de la función a
b
c
f(a,b,c)
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
35
2 .2 3. Funciones booleanas y tablas de verdad Representación canónica en suma de productos de una función booleana de n variables Toda función booleana puede representarse de una manera única como la suma de sus
a
b
c
f(a,b,c)
0
0
0
0
f ( a, b, c ) = Σ( m2 , m3 , m6 )
0
1
0
1
→ m2 = a.b.c
f ( a, b, c ) = a.b.c + a.b.c + a.b.c
0
1
1
1
→ m3 = a.b.c
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
minterms
→ m6 = a.b.c
36
2 .2 3. Funciones booleanas y tablas de verdad if ((b=1 and c=0) or (a=0 and b=1)) then f=1; else f=0; end if
a
b
c
f(a,b,c)
0
0
0
0
0
0
1
0
f ( a, b, c ) = a.b.c + a.b.c + a.b.c =
0
1
0
1
= a.b( c + c ) + b.c.( a + a ) = a.b + b.c
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
f ( a, b, c ) = Σ ( m2 , m3 , m6 ) f ( a, b, c ) = a.b.c + a.b.c + a.b.c
37
2 .2 4. Ejemplo: Sumador binario de nºs de 4 bits xi
Sumador 1 bit
Sumador números
acarreoOUT
de 4 bits
yi
acarreo IN
z i x3
acarreoOUT
y3
x2
y2
x1
y1
Sumador 1 bit
Sumador 1 bit
Sumador 1 bit
z 3
z 2
z 1
x0
y0
Sumador 1 bit
acarreo IN
z 0
38
2 .2 4. Ejemplo: Sumador binario de nºs de 4 bits xi
co
yi
Sumador 1 bit
ci
z i
xi
yi
ci
co
z i
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
. 39
2 .2 RESUMEN
Álgebra de Boole. Postulados y propiedades.
Re resentación tabular de funciones booleanas
Concepto de minterm y forma canónica de suma de productos
Cómo obtener el circuito que implementa una descripción funcional particular escr pc n unc ona → a a e ver a → unc n es oo eana s → c rcu o
40
.3 NAND, NOR, XOR, NXOR, TRI-STATE Elena Valderrama Universidad Autónoma de Barcelona
2 .3 1. NAND, NOR ≡ ≡
a
b
a↑b
a↓b
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
≡
Símbolos algebraicos: NAND(a, b) = a
b,
NOR(a, b) = a ↓ b.
42
2 .3 1. NAND, NOR Las puertas lógicas NAND y NOR son módulos universales
≡ ≡
43
2 .3 ¿Cómo implementarías una AND con puertas NOR e inversores?
1.
2.
3.
44
2 .3 ¿Cómo implementarías el circuito siguiente utilizando sólo puertas NAND?
45
2 .3 ¿Cómo implementarías el circuito siguiente utilizando sólo puertas NAND?
46
2 .3 2. XOR, NXOR a
b XOR XNOR
0
0
0
1
0
1
1
0
XOR(a, b) = a ⊕ b,
1
0
1
0
XNOR(a, b) = (a ⊕ b)
:
XOR = OR exclusiva
Las puertas lógicas XOR y NXOR no son módulos universales 47
2 .3 2. XOR, NXOR
Las puertas lógicas XOR son asociativas
a
b
b
z c
n)
…
n)
≈
…
z
c a
n)
≈
a
b
c
z
0
0
0
0
1
0
0
1
1
0 0
a b c
z
…
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
…
Las puertas lógicas NAND y NOR no son asociativas
≠ 48
2 .3 2.1. XOR, NXOR
Ejemplos de uso: Comparador de igualdad If ((x3=y3) and (x2=y2) and (x1=y1) and (x0=y0)) then z=1; else z=0; end if ;
49
2 .3 2.2. XOR, NXOR
Ejemplos de uso: Bits de paridad (par)
50
2 .3 2.3. XOR, NXOR x3
y3
Sumador
x2
Ejemplos de uso: Sumador de números de 4 bits y2
Sumador
x1
y1
Sumador
x0
y0
Sumador
acarreo
acarreo
z 3
z 2
z 1
z 0
51
2 .3 2.3. XOR, NXOR
Ejemplos de uso: Sumador de números de 4 bits
52
2 .3 2.3. XOR, NXOR y
co
Ejemplos de uso: Sumador de números de 4 bits
x
Suma 1 bit
ci x y
z
co ci
z
53
2 .3 2.3. XOR, NXOR x3
y3
Sumador
x2
Ejemplos de uso: Sumador de números de 4 bits y2
Sumador
x1
y1
Sumador
x0
y0
Sumador
acarreo
acarreo
z 3
z 2
z 1
z 0
54
2 .3 3. BUFFER TRI-STATE, INVERSOR TRI-STATE c z
c
x
z
0
0
0
0
1
1
1
0
H
1
1
H
c
x
z
0
0
1
0
1
0
1
0
H
1
1
H
c
x
z
55
2 .3 3. BUFFER TRI-STATE, INVERSOR TRI-STATE c z
c
x
z
0
0
0
0
1
1
1
0
H
1
1
H
c
x
z
0
0
1
0
1
0
1
0
H
1
1
H
c
x
z
56
2 .3 3. BUFFER TRI-STATE, INVERSOR TRI-STATE c z
c
x
z
0
0
H
0
1
H
1
0
0
1
1
1
c
x
z
0
0
H
0
1
H
1
0
1
1
1
0
c
x
z
57
2 .3 3. BUFFER TRI-STATE, INVERSOR TRI-STATE
C 1
C K
C 2
x1 x2 x3 .. xn
y1 y2 y3 .. yn
z 1 z 2 z 3 .. z n
Si C 1=0 X →bus; si C 2=0 Y →bus; ... C n=0 Z →bus o una se a
i
est act va
i=
en ca a nstante e t empo 58
nombre
símbolo
función
2 .3
OR INV NAND
NOR
XNOR
Tri-state
59