Professional Documents
Culture Documents
3 .1
Herramientas para la sntesis de circuitos
combinacionales
Trminos redundantes
3 .1
Combinaciones los valores de entrada que nunca van a suceder de los valores de entrada
y que pueden utilizarse como minterms de la funcin o no a voluntad para simplificar el
circuito.
circuito
EJEMPLO: Display de nmeros expresados en cdigo BCD
BCD a
7-segmentos
3 .1
3 .1
3 .1
3 .1
3 .1
36
total
27
25
AND
16
OR
INV
3 .1
3 .1
10
3 .1
(quiz)
1.
2.
3.
4.
5.
11
3 .1
2) Adyacencia
(dos trminos producto que se diferencien slo en una posicin 0/1 - se pueden sustituir por un nico
trmino producto con dicha posicin igual a x)
EJEMPLO: f(a,b,c,d)
0010
0011
0101
0110
0111
1000
12
3 .1
2) Adyacencia
(dos trminos producto que se diferencien slo en una posicin 0/1 - se pueden sustituir por un nico
trmino producto con dicha posicin igual a x)
EJEMPLO: f(a,b,c,d)
0010
0011
0101
0110
0111
1000
13
3 .1
(quiz)
El siguiente conjunto de cubos puede reducirse a
Cubos: {0x111, 0x011, 11100,11101,11110,11111}
1.
1
2.
3.
4.
1x111, 111xx
1x111
111xx, 01011
111xx
00x11, 111xx
0xx11, 111xx
14
3 .1
15
3 .1
f = !a + !b&!c + a&b&c + !a&d&e
! : not
&:p
producto lgico
g
+ : suma lgica
(demo Anlisis Combinacional)
16
3 .1
VHDL
Verilog
Circuito comb..
C
Descripcin funcional
(
(pseudo-cdigo)
d d )
Tab
bla de verdad
Funciones booleanas
Techn.
mapping
FPGAs
ASICs
+ SIMULADORES
17
2 .1
RESUMEN
Trminos redundantes. Cmo los t.r. ayudan a reducir el tamao de los circuitos
18
1. Tiempos de respuesta
3 .2
Las puertas lgicas son dispositivos electrnicos que requieren un cierto tiempo
(habitualmente del orden de los nanosegundos) para que su salida alcance el valor de
t i correcto.
tensin
t
20
3 .2
1. Tiempos de respuesta
Las puertas lgicas son dispositivos electrnicos que requieren un cierto tiempo
(habitualmente del orden de los nanosegundos) para que su salida alcance el valor de
t i correcto.
tensin
t
a) Tiempo de respuesta de un puerta lgica (tiempo de propagacin)
a
b
z
tp
21
1. Tiempos de respuesta
3 .2
22
1. Tiempos de respuesta
3 .2
f=e.a.c+e.a.d+e.b.c+e.b.d+j.k.h+j.k.i+j.g.h+j.g.i
23
1. Tiempos de respuesta
3 .2
f=e.a.c+e.a.d+e.b.c+e.b.d+j.k.h+j.k.i+j.g.h+j.g.i
24
1. Tiempos de respuesta
3 .2
# puertas=
puertas 7
tp 3.
f=e.a.c+e.a.d+e.b.c+e.b.d+j.k.h+j.k.i+j.g.h+j.g.i
# puertas=
puertas 9
tp 2.
25
3 .2
2. Ejemplo: Comparador de nmeros de n bits
xn-11 xn-22 x1 x0
yn-1 yn-2 y1 y0
X
Y
n
n
Comparador
G
L
E
26
3 .2
2. Ejemplo: Comparador de nmeros de n bits
xi
Gi+1
Li+1
yi
Gi
Li
Comparador
1 bit
n-1
n.2
n-3
n-4
X:
Y:
Gn=0
Ln=0
27
3 .2
2. Ejemplo: Comparador de nmeros de n bits
xi
Gi+1
Li+1
Comparador
1 bit
xn-1
0
0
yi
yn-1
Comparador
1 bit
Gi
Li
xn-2
yn-2
Comparador
1 bit
xn-3
n
n
yn-3
Comparador
1 bit
G
L
E
Comparador
d
x0
y0
Comparador
1 bit
G
L
E
28
3 .2
(Ejercicio)
Disear el mdulo comparador de 1 bit
xi
Gi+1
Li+1
yi
Comparador
1 bit
Gi
Li
29
3 .2
(Resolucin del ejercicio)
Disear el mdulo comparador de 1 bit
xi
Gi+1
Li+1
yi
Comparador
1 bit
Gi+1 Li+1
Gi
Li
0
0
0
0
0
1
1
0
0
0
0
1
0
1
xi
yi
Gi Li
0
0
1
1
x
x
x
0
1
0
1
x
x
x
0
0
1
0
0
1
x
0
1
0
0
1
0
x
30
3 .2
2.1 Mdulo comparador de 1 bit
31
3 .2
(Ejercicio)
Disear un mdulo comparador de 2 bits
xi xi-1
i1
Gi+1
Li+1
yi yi-1
i1
Comparador
2 bits
Gi
Li
32
3 .2
(Resolucin del ejercicio)
Disear un mdulo comparador de 2 bits
xi xi-1
Gi+1
Lii+11
yi yi-1
Comparador
2 bits
Gi-1
Lii-11
33
3 .2
2.2 Mdulo comparador de 2 bits
34
3 .2
2.3 Mdulo comparador de n bits (n:par)
#puertas
tp
#puertas
tp
Comparador Comparador
1bit
2 bits
8
14
3
3
Comparador n bits
C 1bit
C 2 bits
8.n+1
7.n+1
(3.n+1).
(1,5n+1).
#puertas
tp
Comparador 32 bits
C 1bit
C 2 bits
257
225
97.
49.
35
3 .2
RESUMEN
36
37
3 .3
1. MULTIPLEXORES
Se utilizan principalmente para definir caminos por los que discurren los datos
MUX2-1
MUX2
1
(multiplexor 2-a-1)
control
0
1
y
x0
x1
38
3 .3
1. MULTIPLEXORES
Aplicacin tpica:
39
3 .3
1. MULTIPLEXORES
Otros multiplexores:
Multiplexor 2-a-1 de m-bit:
1 seal de control
(x0, x1: m seales de entrada)
40
3 .3
1. MULTIPLEXORES
MUX4-1
(multiplexor 4-a-1;
dos seales de control,
4 entradas de datos)
c1 c0
00
01
10
11
y
x0
x1
x2
x3
41
3 .3
Ejercicio
j
Disear un multiplexor 4-a-1 de 2 bits utilizando multiplexores 2-a-1 de 1 bit
42
3 .3
Solucin del ejercicio
j
Disear un multiplexor 4-a-1 de 2 bits utilizando multiplexores 2-a-1 de 1 bit
c0
x01
x11
c0
c1
x00
x10
c1
0
y0
y1
1
x21
x20
x31
x30
43
3 .3
Pregunta
Marca las afirmaciones correctas:
1) Para sintetizar un multiplexor 4
4-a-1
a 1 de 2 bits son necesarios 8 multiplexores 2
2-a-1
a 1 de 1 bit
2) Para sintetizar un multiplexor 4-a-1 de 3 bits son necesarios 21 multiplexores 2-a-1 de 1 bit
3) Para sintetizar un multiplexor 4-a-1 de 4 bits son necesarios 12 multiplexores 2-a-1 de 1 bit
4) Para sintetizar un multiplexor 4-a-1 de 8 bits son necesarios 24 multiplexores 2-a-1 de 1 bit
44
3 .3
1. MULTIPLEXORES
Los multiplexores pueden utilizarse tambin para implementar tablas de verdad
Ejemplo:
x2 x1 x0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
x0
x0
0
1
0
1
0
1
0
1
y1 y0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
x1
0
x2
0
1
y1
x1
0
1
x2
0
1
y0
0
1
45
3 .3
1. MULTIPLEXORES
Toda funcin booleana puede implementarse con multiplexores 2-a-1 de 1 bit utilizando
reiteradamente la siguiente regla (Ley de Shannon):
f(x0, x1, ) = x0f (0, x1, ) + x0f (1, x1, )
46
3 .3
47
3 .3
1
0
48
3 .3
LUT
LUT
LUT
(1)
(2)
(3)
(4)
LUT
(5)
1
0
(6)
(6)
(5)
(4)
(3)
(2)
(1)
49
3 .3
LUT
LUT
LUT
LUT
LUT
50
Pregunta
Cuantas LUTs de 6 entradas son necesarias para sintetizar cualquier funcin booleana
de 10 variables?
1) 21
2) 32
3) 64
4) 128
51
X3 X2
Pregunta resuelta*
X9 X8 X7 X6 X5 X4
LUT
3 .3
LUT
LUT
LUT
X9 X8 X7 X6 X5 X4
LUT
X3 X2
LUT
LUT
LUT
LUT
6
X9 X8 X7 X6 X5 X4
LUT
X1 X0
X3 X2
LUT
LUT
LUT
LUT
LUT
X9 X8 X7 X6 X5 X4
LUT
X3 X2
LUT
LUT
LUT
LUT
LUT
52
3 .3
Dependiendo
D
di d d
de lla tecnologa
l utilizada,
ili d llos productos
d
yi
pueden:
Venir predefinidos de fbrica
Ser definidos por el usuario (field programmable)
53
3 .3
Dependiendo
D
di d d
de lla tecnologa
l utilizada,
ili d llas sumas zi
pueden:
Venir predefinidos de fbrica
Ser definidos por el usuario (field programmable)
54
3 .3
p trminos
producto
d
de
d n o menos
literales puede implementarse concatenando:
Un plano AND(n, p) y,
Un plano OR (p, s)
Este nuevo mdulo formado por la concatenacin de un plano AND y un plano OR recibe
di i
distintos
nombres
b d
dependiendo
di d d
de lla tecnologa
l y/o
/ d
dell ffabricante
bi
d
dell mismo:
i
PLA PAL,
PLA,
PAL PLD,
PLD
(PL: Programming Logic; A:Array; D:Device)
55
4. Decodificadores
3 .3
Decodificador 2-a-4:
2 a 4:
Decodificador n-a-2n :
m = 2n salidas y0 y1 ym-1,
x1 x0
y0 y1 y2 y3
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
56
3 .3
4. Decodificadores de direccin
lneas de
palabra
lneas de
bit
a0
vvv
a1
Decodiificador de direccione
es
Bu
us de direcciones
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
Circuitera de lectura
d5
d4
d3
d2
d1
d0
Bus de datos
57
3 .3
2
3
Bus de 4 bits
58
3 .3
RESUMEN
Multiplexores como mdulos capaces de definir el camino que siguen los datos
LUT (Look Up Tables) y su uso combinado con los mutiplexores para implementar
cualquier funcin booleana
Decodificadores de direccin
Uso de los decodificadores conjuntamente con buffers 3-state para implementar los
sistemas de acceso a los buses.
59
3 .3
60
3 .4
Algunas estructuras clsicas de los lenguajes de programacin admiten una
implementacin directa en trminos de componentes digitales.
Algunos ejemplos de estas estructuras de programacin:
1. If then else
2. Case is
3. For loop
4. Procedure call
62
3 .4
1. If then else
Ejemplo: Algoritmo de decisin binaria
if x1 = 0 then
if x0 = 0 then f <= y0;
else f <= y1;
end if;
else
if x0 = 0 then f <= y2;
else f <= y3;
end if;
end if;
63
3 .4
2. Case is
El mismo ejemplo de decisin binaria
case x is
when "00" => f <= y0;
when "01" => f <= y1;
when "10" => f <= y2;
when "11" => f <= y3;
end case;
64
3 .4
3. For loop
Los LOOPS se asocian a estructuras iterativas
Ejemplo: SUMA
Z=X+Y
X, Y: 4 dgitos decimales
Z: 5 dgitos decimales
cy(0) <<= 0;
for i in 0 to 3 loop
s(i) <= x(i) + y(i) + cy(i);
( ) > 9 then z(i)
( ) <= s(i)
( ) - 10;; cy(i+1)
y( ) <= 1;;
if s(i)
else z(i) <= s(i); cy(i+1) <= 0;
end if;
end loop;
z(4) <= cy(4);
65
3 .4
3. For loop
cy(0) <= 0;
for i in 0 to 3 loop
----------------- loop body ----------------------------s(i) <= x(i) + y(i) + cy(i);
if s(i) > 9 then z(i) <= s(i) - 10; cy(i+1) <= 1;
else z(i) <= s(i); cy(i
cy(i+1)
1) <= 0;
end if;
------------------------------------------------------------end loop;
z(4) <= cy(4);
66
3 .4
3. For loop
Comentarios ...
1. Ms adelante veremos otras implementaciones (secuenciales)
2. No todos los LOOPs pueden implementarse as;
Ejemplo: "while condition loop operation.
Si el nmero veces que se cumple la condicin es desconocido o es demasiado
grande, entonces el LOOP debe implementarse con una estructura secuencial (lo
veremos ms adelante )
67
3 .4
4. Llamadas a procedimientos (procedure)
Las llamadas a procedimientos se asocian a descripciones jerrquicas
Ejemplo: Supongamos que se ha definido un
procedimiento MAC(w, x, y, z) (Multiplica y AndAcumula) que realiza la operacin
z = w + xy.
El algoritmo de la derecha calcula el resultado de
la siguiente operacin:
w(1) <= 0;
for i in 1 to 8 loop
MAC(w(i), x(i), y(i), w(i+1));
end loop;
z <= w(9);
68
3 .4
4. Llamadas a procedimientos
w(1) <= 0;
for i in 1 to 8 loop
MAC( (i) x(i),
MAC(w(i),
(i) y(i),
(i) w(i+1));
(i 1))
end loop;
z <= w(9);
En conclusin:
for loop => estructura iterativa;
MAC calls => bloques a definir.
69
3 .4
5. Comentario
Conclusin:
Algunas estructuras clsicas de los lenguajes de programacin admiten una
implementacin directa en trminos de componentes digitales, lo que hace posible
(o facilita) .
La definicin y uso de lenguajes de programacin para especificar un sistema
digital (VHDL, Verilog, C/C++). Son los llamados Lenguajes de Descripcin
Hardware o HDLs (Hardware Description Lenguajes)
El desarrollo de herramientas de sntesis (software) capaces de traducir
traducir
estos programas a circuitos..
70
3 .4
RESUMEN
Todo esto nos ha llevado a una conclusin sobre los lenguajes de descripcin hardware
y las herramientas de sntesis
71