semana 3 - lecciones
DESCRIPTION
electronica digitalTRANSCRIPT
-
3 1 Herramientas para la sntesis de circuitos combinacionales
3 .1Elena ValderramaUniversidad Autnoma de Barcelona
-
Herramientas para la sntesis de circuitos 3 .1
combinacionales
Trminos redundantes Trminos redundantes Herramientas software para la minimizacin de funciones booleanas
2
-
3 .11. Trminos redundantes (dont care)
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 circuitocircuito.
EJEMPLO: Display de nmeros expresados en cdigo BCD
BCD aBCD aBCD a 7-segmentos
BCD a 7-segmentos
3
-
3 .11. Trminos redundantes (dont care)EJEMPLO: Display de nmeros expresados en cdigo BCD
4
-
3 .11. Trminos redundantes (dont care)Qu pasa si ponemos todos los trminos redundantes a 0?
5
-
3 .11. Trminos redundantes (dont care)
6
-
3 .11. Trminos redundantes (dont care)
7
-
3 .11. Trminos redundantes (dont care)
36 total 27
25 AND 16
7 OR 7
4 INV 4 8
-
3 .12. Herramientas para la sntesis de circuitos comb.
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 i t ti l i it di t tsintetizar el circuito directamente.
La automatizacin de la minimizacin de funciones descansa sobre dos conceptos:
NOTACIN CBICA ADYACENCIA
9
-
3 .12. Herramientas para la sntesis de circuitos comb.
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 hay un 0 dicha variable aparece en su forma inversaSi en la posicin de la variable i sima hay un 0, dicha variable aparece en su forma 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.2.
3.
4.
5.
11
-
3 .12. Herramientas para la sntesis de circuitos comb.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) 0 0 1 0 0 0 1 10 0 1 1 0 1 0 1 0 1 1 0 0 1 1 10 1 1 1 1 0 0 0
12
-
3 .12. Herramientas para la sntesis de circuitos comb.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) 0 0 1 0 0 0 1 10 0 1 1 0 1 0 1 0 1 1 0 0 1 1 10 1 1 1 1 0 0 0
13
-
3 .1(quiz)
El siguiente conjunto de cubos puede reducirse a
Cubos: {0x111, 0x011, 11100,11101,11110,11111}Cubos: {0x111, 0x011, 11100,11101,11110,11111}
1 1x111 111xx 010111. 1x111, 111xx, 010112. 111xx3. 00x11, 111xx4. 0xx11, 111xx
14
-
3 .1
(demo Anlisis Combinacional)
15
-
3 .1
! : not& : producto lgico
f = !a + !b&!c + a&b&c + !a&d&e
p g+ : suma lgica
(demo Anlisis Combinacional)
16
-
3 .13. Sntesis automtica de sistemas digitales
SNTESIS AUTOMTICA DE SISTEMAS DIGITALES
Techn. mapping
Descripcin funcional( d d )
FPGAsASICs
. mapping(pseudo-cdigo)
VHDLVerilog
b
l
a
d
e
v
e
r
d
a
d
e
s
b
o
o
l
e
a
n
a
s
C
i
r
c
u
i
t
o
c
o
m
b
.
VerilogT
a
b
F
u
n
c
i
o
n
C
+ SIMULADORES
17
-
RESUMEN2 .1
Trminos redundantes. Cmo los t.r. ayudan a reducir el tamao de los circuitos Herramientas de ayuda capaces de automatizar la simplificacin de funcionesHerramientas de ayuda capaces de automatizar la simplificacin de funciones
booleanas y el diseo de circuitos
18
-
3 2 Tiempos de respuesta3 .2Elena ValderramaUniversidad Autnoma de Barcelona
-
3 .21. 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 ttensin correcto.
20
-
3 .21. 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 ttensin correcto.
a) Tiempo de respuesta de un puerta lgica (tiempo de propagacin)
a
b
z
tp21
-
3 .21. Tiempos de respuesta
b) Tiempo de respuesta de un circuito combinacional (peor caso)
22
-
3 .21. Tiempos de respuesta
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
-
3 .21. Tiempos de respuesta
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
-
3 .21. Tiempos de respuesta
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
# puertas= 7 # puertas= 9# puertas 7tp 3.
# puertas 9tp 2.
25
-
2. Ejemplo: Comparador de nmeros de n bits3 .2
nX Gx 1 x 2 x1 x0ComparadornY
GLE
xn-1 xn-2 x1 x0yn-1 yn-2 y1 y0
if X > Y then G
-
3 .22. Ejemplo: Comparador de nmeros de n bits
xi yi
Comparador 1 bit
Gi+1Li+1
GiLi
n-1 n.2 n-3 n-4 1 0
X: 1 0 1 1 0 0 0
YY: 1 0 1 0 1 1 0
Gn=0
Ln=0
27
-
3 .22. Ejemplo: Comparador de nmeros de n bits
dnX G
G G
xi yi
ComparadornY LEComparador
1 bit
Gi+1Li+1
GiLi
xn-1 yn-1 xn-2 yn-2 xn-3 yn-3 x0 y0
Comparador 1 bit
0
0Comparador
1 bitComparador
1 bitComparador
1 bit
GL
E
.
28
-
(Ejercicio)3 .2
xi yi
Disear el mdulo comparador de 1 bit
Comparador 1 bit
Gi+1Li+1
GiLi
xi yi
1 bitLi+1 Li
29
-
(Resolucin del ejercicio)3 .2
xi yi
Disear el mdulo comparador de 1 bit
Comparador 1 bit
Gi+1Li+1
GiLi
xi yiGi+1 Li+1 xi yi Gi Li
0 0 0 0 0 0 0 0 0 1 0 10 0 1 0 1 01 bitLi+1 Li 0 0 1 0 1 00 0 1 1 0 0 0 1 x x 0 1 1 0 x x 1 01 1 x x x x1 1 x x x x
30
-
2.1 Mdulo comparador de 1 bit3 .2
31
-
(Ejercicio)3 .2
Disear un mdulo comparador de 2 bits
xi yixi 1 yi 1
Comparador 2 bits
Gi+1Li+1
GiLi
xi yixi-1 yi-1
2 bitsLi+1 Li
32
-
(Resolucin del ejercicio)3 .2
xi yixi-1 yi-1
Disear un mdulo comparador de 2 bits Comparador 2 bits
Gi+1Li+1
Gi-1Li-1i 1 i 1
33
-
2.2 Mdulo comparador de 2 bits3 .2
34
-
2.3 Mdulo comparador de n bits (n:par)3 .2
Comparador Comparador 1bit 2 bits#puertas 8 14
tp 3 3
Comparador 32 bits C 1bit C 2 bits
Comparador n bits C 1bit C 2 bits
#puertas 257 225 tp 97. 49.
#puertas 8.n+1 7.n+1 tp (3.n+1). (1,5n+1).
35
-
RESUMEN3 .2
Hemos estudiado el concepto de tiempo de respuesta Hemos diseado un comparador para nmeros binarios de n bits y analizado elHemos diseado un comparador para nmeros binarios de n bits y analizado el
compromiso coste-velocidad de un par de posibles implementaciones.
36
-
3 OTROS BLOQUES LGICOS3 .3Elena ValderramaUniversidad Autnoma de Barcelona
37
-
1. MULTIPLEXORES3 .3
Se utilizan principalmente para definir caminos por los que discurren los datos
MUX2 1control y
MUX2-1(multiplexor 2-a-1)
01
x0x1
38
-
3 .31. MULTIPLEXORES
Aplicacin tpica:
control = 1: circuit_C recibe datos de circuit_A;control = 0: circuit_C recibe datos de circuit_B
39
-
3 .31. MULTIPLEXORESOtros multiplexores:
Multiplexor 2-a-1 de m-bit: 1 seal de control (x0, x1: m seales de entrada)
40
-
3 .31. MULTIPLEXORES
MUX4-1(multiplexor 4-a-1;
c1 c0 y00 x0(multiplexor 4-a-1;
dos seales de control,4 entradas de datos)
011011
0x1x2x3
Multiplexores 8-a-1 con 3 seales de control, Multiplexores 16-a-1 con 4 seales de control,
41
-
Ejercicio3 .3
j
Disear un multiplexor 4-a-1 de 2 bits utilizando multiplexores 2-a-1 de 1 bit
42
-
3 .3Solucin del ejercicioj
Disear un multiplexor 4-a-1 de 2 bits utilizando multiplexores 2-a-1 de 1 bit
0
c0
x01 0
c0
x00
1
0
1
c1x11 1
0
1
c1
y1 y0
x10
1
0
1
x21
x31
1
0
1
x20
x30
43
-
Pregunta
3 .3Pregunta
Marca las afirmaciones correctas:
1) Para sintetizar un multiplexor 4 a 1 de 2 bits son necesarios 8 multiplexores 2 a 1 de 1 bit1) Para sintetizar un multiplexor 4-a-1 de 2 bits son necesarios 8 multiplexores 2-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 .31. MULTIPLEXORESLos multiplexores pueden utilizarse tambin para implementar tablas de verdad
Ejemplo:Ejemplo:
x2 x1 x0 y1 y00 0 0 0 0
0
10
x1
x0
00
0
10
01
x1
x0
0 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 1 y1
0
1
0
0
1
1 x20
1
0
0
1
0
0
1
1
y0
1
0
1
x2
1 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1
y101
0
1
0
1
0
1
1
0
1
0
1
0
1
y010
011 11
45
-
3 .31. 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 .32. Multiplexores y bloques de memoria
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
-
3 .32. Multiplexores y bloques de memoria
Se pueden utilizar combinaciones de memorias ROM de pequeo tamao y multiplexores para implementar funciones de un nmero elevado de variables.
Supongamos que tenemos LUTs (ROMs) de 26 palabras (=6 bits de direccin) y
LOOK UP TABLES (=Memorias ROM de tamao pequeo)
queremos implementar una funcin de 8 variables. Aplicando Shannon logramos reducir en 1 el nmero de variables de la funcin:
1
0
48
-
3 .32. Multiplexores y bloques de memoria
LUT6 1(1)(5)
LUT 0 1
0
(2)
LUT
LUT
1
0
0(3)
(4)(6)
(6)
(5)LUT (5)(4)
(3)
(2)(2)
(1)49
-
3 .32. Multiplexores y bloques de memoria
LUT6
LUT
LUT
LUTLUT
50
-
PreguntaPregunta
Cuantas LUTs de 6 entradas son necesarias para sintetizar cualquier funcin booleana de 10 variables?
1) 212) 323) 644) 128
51
-
3 .3LUT
6LUT
X3 X2
X9 X8 X7 X6 X5 X4Pregunta resuelta*LUT
LUT
LUTLUT
6LUTX9 X8 X7 X6 X5 X4
X3 X2
LUT
LUT
LUT
LUTLUT
X1 X0LUT
LUT
LUT
6LUT
LUT
X9 X8 X7 X6 X5 X4
X3 X2
LUT
LUT
6LUTX9 X8 X7 X6 X5 X4
X3 X2
52
LUT
LUT
LUTLUT
* (Esta solucin no est explicada en el video)
-
3 .33. Planos AND y planos OR
Un plano AND (n,p) es un mdulo que implementa pproductos de (como mximo) n literales:
yj = wj,0.wj,1 wj,k ; k
-
3 .33. Planos AND y planos OR
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
-
3 .33. Planos AND y planos OR
Cualquier conjunto de s funciones booleanas que se puedan expresar como la suma de como
d dmximo p trminos producto de 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 b d di d d l l / d l f b i d l i PLA PAL PLDdistintos nombres dependiendo de la tecnologa y/o del fabricante del mismo: PLA, PAL, PLD, (PL: Programming Logic; A:Array; D:Device)
55
-
3 .34. Decodificadores
Decodificador 2-a-4:
Decodificador n-a-2n :
n entradas xn-1 xn-2 x0 ,
Decodificador 2 a 4:
0
1n 1 n 2 0
m = 2n salidas y0 y1 ym-1, yi = 1 xn-12n-1 + xn-22n-2 + + x12 + x0 = i.
2
3
x1 x0 y0 y1 y2 y30 00 1
1 0 0 00 1 0 0
1 01 1
0 0 1 00 0 0 1
56
-
3 .34. Decodificadores de direccin
e
s
0
lneas de palabra
lneas de bit
0 1 1 0 0 1
i
f
i
c
a
d
o
r
d
e
d
i
r
e
c
c
i
o
n
e
1
2
a1
a0
u
s
d
e
d
i
r
e
c
c
i
o
n
e
s
0 1 1 0 0 10 1 0 0 0 00 0 1 1 1 10 0 1 0 0 0
v
v
v
D
e
c
o
d
i
Circuitera de lectura
2
3
B
u
R
d0d1d2d3d4d5Bus de datos
R
57
-
3 .34. Decodificadores y buffers 3-state
El decodificador puede utilizarse para controlar el acceso a buses mediante buffers 3-state
4
4
40
4
41
2
3
Bus de 4 bits
58
-
RESUMEN3 .3
Multiplexores como mdulos capaces de definir el camino que siguen los datos Multiplexores como mdulos capaces de implementar funciones booleanas 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 field-programmable
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 IMPLEMENTACIN DE ESTRUCTURAS DE PROGRAMACIN
3 .4Elena ValderramaUniversidad 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
Algunos ejemplos de estas estructuras de programacin:
3. For loop
4. Procedure call
62
-
1. If then else 3 .4
Ejemplo: Algoritmo de decisin binaria
if 0 thenif x1 = 0 thenif x0 = 0 then f
-
2. Case is 3 .4
El mismo ejemplo de decisin binaria
case x iswhen "00" => f f f f
-
3 .43. For loop
cy(0)
-
3 .43. For loop
cy(0)
-
3 .43. For loop
Comentarios ...
1. Ms adelante veremos otras implementaciones (secuenciales)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 .44. Llamadas a procedimientos (procedure)
Ejemplo: Supongamos que se ha definido un
Las llamadas a procedimientos se asocian a descripciones jerrquicas
Ejemplo: Supongamos que se ha definido un procedimiento MAC(w, x, y, z) (Multiplica y And-Acumula) que realiza la operacin
w(1)
-
3 .44. Llamadas a procedimientos
w(1) bloques a definir.
69
-
3 .45. 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 sistemaLa 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 El desarrollo de herramientas de sntesis (software) capaces de traducir estos programas a circuitos..
70
-
RESUMEN3 .4
Los algoritmos de decisin binaria pueden implementarse con multiplexores Las estructuras Case pueden implementarse, tambin, con multiplexoresLas estructuras 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