You are on page 1of 71

3 .

11 Herramientas para la sntesis de


circuitos combinacionales
Elena Valderrama
Universidad Autnoma de Barcelona

3 .1
Herramientas para la sntesis de circuitos
combinacionales

Trminos redundantes

Herramientas software para la minimizacin de funciones booleanas

1. Trminos redundantes (dont care)

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

1. Trminos redundantes (dont care)


EJEMPLO: Display de nmeros expresados en cdigo BCD

1. Trminos redundantes (dont care)

3 .1

Qu pasa si ponemos todos los trminos redundantes a 0?

1. Trminos redundantes (dont care)

3 .1

1. Trminos redundantes (dont care)

3 .1

3 .1

1. Trminos redundantes (dont care)

36

total

27

25

AND

16

OR

INV

2. Herramientas para la sntesis de circuitos comb.

3 .1

Existen herramientas software que realizan la minimizacin automtica de funciones


booleanas partiendo de una expresin lgica o una tabla de verdad, y que son capaces de
sintetizar
i t ti ell circuito
i it di
directamente.
t
t
La automatizacin de la minimizacin de funciones descansa sobre dos conceptos:
NOTACIN CBICA
ADYACENCIA

2. Herramientas para la sntesis de circuitos comb.

3 .1

1) Notacin cbica : Dada una funcin de n variables,


Un cubo es cualquier secuencia de n caracteres 0, 1 o x
Cualquier producto de literales de la funcin f se representa por un cubo en el que

Si en la posicin de la variable i-sima hay un 1, dicha variable aparece en su forma normal,

Si en la posicin de la variable i-sima


i sima hay un 0,
0 dicha variable aparece en su forma inversa,
inversa

Si en la posicin de la variable i-sima hay un x, dicha variable no aparece en el producto.

10

3 .1

(quiz)

Dada la funcin booleana f(e,d,c,b,a), qu trmino producto representa el cubo 1x01x

1.
2.
3.
4.
5.

11

2. Herramientas para la sntesis de circuitos comb.

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

2. Herramientas para la sntesis de circuitos comb.

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

(demo Anlisis Combinacional)

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. Sntesis automtica de sistemas digitales

3 .1

VHDL
Verilog

Circuito comb..
C

Descripcin funcional
(
(pseudo-cdigo)
d d )

Tab
bla de verdad
Funciones booleanas

SNTESIS AUTOMTICA DE SISTEMAS DIGITALES

Techn.
mapping

FPGAs
ASICs

+ SIMULADORES

17

2 .1
RESUMEN

Trminos redundantes. Cmo los t.r. ayudan a reducir el tamao de los circuitos

Herramientas de ayuda capaces de automatizar la simplificacin de funciones


booleanas y el diseo de circuitos

18

3 .22 Tiempos de respuesta


Elena Valderrama
Universidad Autnoma de Barcelona

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

b) Tiempo de respuesta de un circuito combinacional (peor caso)

22

1. Tiempos de respuesta

3 .2

Efecto de la circuitera en el tiempo de respuesta.


f=[(a+b).(c+d).e]+[(k+g).(h+i).j]

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

Efecto de la circuitera en el tiempo de respuesta:


f=[(a+b).(c+d).e]+[(k+g).(h+i).j]

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

Efecto de la circuitera en el tiempo de respuesta:


f=[(a+b).(c+d).e]+[(k+g).(h+i).j]

# 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

if X > Y then G <= 1;


elsif X < Y then L <= 1;
else E <= 1;
end if;
end if;

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

Hemos estudiado el concepto de tiempo de respuesta

Hemos diseado un comparador para nmeros binarios de n bits y analizado el


compromiso coste-velocidad de un par de posibles implementaciones.

36

3 .3 OTROS BLOQUES LGICOS


Elena Valderrama
Universidad Autnoma de Barcelona

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:

control = 1: circuit_C recibe datos de circuit_A;


control = 0: circuit_C recibe datos de circuit_B

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

Multiplexores 8-a-1 con 3 seales de control,


Multiplexores 16-a-1 con 4 seales de control,

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

2. Multiplexores y bloques de memoria

3 .3

Se pueden utilizar combinaciones de memorias ROM de pequeo tamao y multiplexores


para implementar funciones de un nmero elevado de variables.
LOOK UP TABLES (=Memorias ROM de tamao pequeo)

47

2. Multiplexores y bloques de memoria

3 .3

Se pueden utilizar combinaciones de memorias ROM de pequeo tamao y multiplexores


para implementar funciones de un nmero elevado de variables.
LOOK UP TABLES (=Memorias ROM de tamao pequeo)
Supongamos que tenemos LUTs (ROMs) de 26 palabras (=6 bits de direccin) y
queremos implementar una funcin de 8 variables. Aplicando Shannon logramos
reducir en 1 el nmero de variables de la funcin:

1
0
48

3 .3

2. Multiplexores y bloques de memoria


6

LUT
LUT
LUT

(1)
(2)

(3)
(4)

LUT

(5)

1
0

(6)
(6)

(5)
(4)
(3)
(2)
(1)
49

2. Multiplexores y bloques de memoria


6

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

* (Esta solucin no est explicada en el video)

LUT
LUT

LUT

52

3. Planos AND y planos OR

3 .3

Un plano AND (n,p) es un mdulo que implementa p


productos de (como mximo) n literales:
yj = wj,0.wj,1 wj,k ;

k<n; wj,i {1, xi, xi}.

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. Planos AND y planos OR

3 .3

Un plano OR (p,s) es un mdulo que implementa s sumas


de (como mximo) p literales:
zj = wj,0+wj,1 + +wj,k ;

k<p; wj,i {1, xi, xi}.

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. Planos AND y planos OR

3 .3

Cualquier conjunto de s funciones booleanas que


se puedan expresar como la suma de como
mximo

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 :

n entradas xnn-11 xnn-22 x0 ,

m = 2n salidas y0 y1 ym-1,

yi = 1 xn-12n-1 + xn-22n-2 + + x12 + x0 = i.

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

4. Decodificadores y buffers 3-state


El decodificador puede utilizarse para
controlar el acceso a buses mediante
buffers 3-state
4
4

2
3

Bus de 4 bits

58

3 .3
RESUMEN

Multiplexores como mdulos capaces de definir el camino que siguen los datos

Multiplexores como mdulos capaces de implementar funciones booleanas

LUT (Look Up Tables) y su uso combinado con los mutiplexores para implementar
cualquier funcin booleana

Planos y concatenacin planoAND-planoOR. Concepto de planos predefinidos o fieldprogrammable

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 .44 IMPLEMENTACIN DE ESTRUCTURAS


DE PROGRAMACIN
Elena Valderrama
Universidad Autnoma de Barcelona

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);

z = x1y1 + x2y2 + + x8y8

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

Los algoritmos de decisin binaria pueden implementarse con multiplexores

Las estructuras Case


Case pueden implementarse, tambin, con multiplexores

Los Loops se asocian a estructuras iterativas

Las llamadas a procedimientos se asocian a descripciones jerrquicas

Todo esto nos ha llevado a una conclusin sobre los lenguajes de descripcin hardware
y las herramientas de sntesis

71

You might also like