síntesislogica
TRANSCRIPT
-
1Diseo de Sistemas Digitales
M. Vzquez, E. Todorovich, M. Tosini
Diseo de Sistemas Lgicos 2
Materializacin de Sistemas Lgicos Circuitos integrados especficos (ASIC - (Appication
Specific Integrated Circuits).
Circuitos Integrados programables por el usuario, por ejemplo PAL, CPLD, FPGAs, etc.
Circuitos impresos que permiten ensamblar circuitos integrados (estndar, especficos o programables) y componentes discretos (resistencias, capacitores, transistores, etc)
-
2Diseo de Sistemas Lgicos 3
Materializacin de Sistemas Lgicos. Ejemplos:
Circuito aeroespacial ASIC Atmel. Mucho conocimiento de electrnica.
Dispositivos programables por el usuario: FPGA stratix III Altera y PAL. Conocimiento de diseo lgico de sistemas digitales.
Diseo de Sistemas Lgicos 4
Materializacin de Sistemas Lgicos. Ejemplos:
Placa de Digilent con componentes discretos y circuitos integrados. Conocimiento de electrnica, sobre todo cuando se disea en varias capas y altas frecuencias
-
3Diseo de Sistemas Lgicos 5
Diseo Lgico Independientemente de la implementacin final del
diseo. Las primeras etapas del diseo lgico son las mismas:
Descripcin del diseo digital: esquemticos, lenguajes de descripcin de hardware (HDLs), o mediante lenguajes de alto nivel (HLL) tales como C, Handel-C, etc.
Simulacin funcional y/o comportamental del diseo. Observar el comportamiento y, de ser necesario, corregir la descripcin
Diseo de Sistemas Lgicos 6
Sntesis Lgica La sntesis lgica es un proceso por el que se
obtiene un circuito en trminos de puertas lgicas (pertenecientes a bibliotecas genricas o especficas) a partir de una descripcin abstracta.
Tabla de verdad, ecuacin lgica, etc. Descripcin en VHDL, Verilog, etc.
-
4Diseo de Sistemas Lgicos 7
Generacin de una expresin a partir de una tabla de verdad Una expresin se dice
cannica si cada uno de sus trminos hace referencia a todas las variables que intervienen en la expresin, ya sea en forma directa o negada.
Las expresiones cannicas conjuntivas son sumas de trminos conjuntivos (tambin llamados minterms).
Y = X2 X1 X0 + X2 X1 X0 + X2 X1 X0
cada uno es un minterm.01110011110100010110101011000000
f(x1, x2, x3)x3x2x1
Diseo de Sistemas Lgicos 8
Sntesis mediante multiplexores Se emplea un multiplexor con tantas entradas de control como
variables de entrada tenga el circuito. Cada una de las entradas del MUX (2n) se conectan a 0 a 1
segn corresponda al valor de la salida.
y1
01234567
01101001
01234567
00010111
y2
-
5Diseo de Sistemas Lgicos 9
Planos de Puertas (Repaso) Para el plano AND, la
matriz de compuertas puede tener hasta Xnentradas y hasta pksalidas, donde cada salida pi es el producto de entradas X pudiendo estas estar en forma normal (Xi) o negada ( Xi).
AND
x1 x2 ......... xn
p1
p2:
pk
Diseo de Sistemas Lgicos 10
Planos de Puertas (Repaso) Ejemplo con n = 3 y k = 2: Queremos que
p1 = x1 x2 p2 = x1 x2 x3
1
1
x1 x2 x3
p1
p2
-
6Diseo de Sistemas Lgicos 11
Planos de Puertas (Repaso) La programacin del plano AND se realiza a
travs de una cadena de bits de tamao 2 * #x *#p.
En donde se representa con un 1 cada posicin del plano que debe ser conectada.
Para el ejemplo:1 0 0 1 0 0 -> x1 x20 1 0 1 0 1 -> x1 x2 x3
Diseo de Sistemas Lgicos 12
Planos de puertas (Repaso) En el plano OR, que es
una matriz de compuertas OR interconectadas con k entradas x1, x2, ...., xk- y m salidas s1, s2, ...., sm-, cada si es la suma (booleana) de algunas variables de entrada, siempre en forma normal.
OR
s1 . . . . . . . . .sm
x1:::
xk
-
7Diseo de Sistemas Lgicos 13
Planos de puertas (Repaso) El plano OR en
conjuncin con un plano AND permite sintetizar funciones booleanas completas mediante componentes denominados PLA (ProgrammableLogic Arrays).
OR
s1 . . . . . . . . .sm
AND
x1 x2 ......... xn
p1p2
pk
Diseo de Sistemas Lgicos 14
Sntesis mediante Planos de Puertas Ejemplo de dos funciones
y1 e y2:y1 = x1 x2 + x1 x3y2 = x1 x2 + x1 x3
En el plano AND deben implementarse los trminos: x1 x2 x1 x3
x1 x3
10 01 00
10 00 10
01 00 10
1 1
1 0
0 1
AND OR
x1 x2 x3 y1 y2
x1 x2
x1 x3
x1 x3
-
8Diseo de Sistemas Lgicos 15
Memorias ROM Una memoria ROM es un
dispositivo totalmente cableado. Ante cada combinacin de valores de los xi da como resultado un determinado valor en cada salida yi.
Las ROM son compatible con un plano AND-OR con tantas salidas (yi) como ancho de la celda de datos, y con nseales de entrada (xi).
ROM2n palabras de m bits de ancho
xn-1xn-2xn-3:
x0
ym-1 ym-2 . . . . . . . y0
Diseo de Sistemas Lgicos 16
Memorias ROM La figura siguiente
muestra un ejemplo de implementacin de una memoria ROM pasiva de cuatro celds (n = 2) de 4 bits cada una (m = 4).
01
01
01
10
10
01
10 10
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
AND OR
x1 x0y3 y2 y1 y0
-
9Diseo de Sistemas Lgicos 17
Decodificador, demultiplexor y plano AND
z1 z0
z1 z0
z1
0
1
z0
z1 z0
z1 z0
2
3
equivale a
01 01
01 10
10 01
10 10
z1 z2
p1
p2
p3
p4
Demultiplexor de 1 a 4 con entrada, y = 1, implementa un Decodificador de 2 bits.
Decodificador de 2 bits, equivale a plano AND completo.
Diseo de Sistemas Lgicos 18
Memorias ROM El proceso de sntesis consiste en
compilar (en un compilador de circuitos digitales) la secuencia de bits del plano OR.
La secuencia de bits del plano AND es fija: secuencia de valores de las seales xi desde todos 0 hasta todos 1 (decodificador de direcciones).
Por ejemplo, para una ROM de 4 palabras de 8 bits cada una con los valores:
DireccinValor0 AAh1 FFh2 03h3 54h
Plano AND : 01 0101 10 10 01 10 10
Plano OR : 10101010 11111111 00000011 01010100
-
10
Diseo de Sistemas Lgicos 19
Sntesis mediante memoria ROM
0 01 01 00 11 00 10 11 1
x2x1x0
ym-1 ym-2
Diseo de Sistemas Lgicos 20
Sntesis mediante ROM+MUX0 1 0 0
1 0 0 1
1 0 0 1
0 1 1 1
0 1 0 1
y1 y2
x2
x0
x1
y10 y11 y20 y21
y11 = y1(x2 = 1)y10 = y1(x2 = 0)y21 = y2(x2 = 1)y20 = y2(x2 = 0)
-
11
Diseo de Sistemas Lgicos 21
Generacin de una expresin a partir de una tabla de verdad Una expresin cannica
conjuntiva
Y = X2 X1 X0 + X2 X1 X0 +
X2 X1 X0Se puede minimizar haciendo operaciones permitidas?
01110011110100010110101011000000
f(x0, x1, x2)X0X1x2
Diseo de Sistemas Lgicos 22
Sntesis Lgica Tcnicas y herramientas de minimizacin
Para tablas de verdad (circuitos combinacionales)
Mapas de Karnaugh (1953).
Algoritmo de QuineMcCluskey (1956).
Espresso heuristic logic minimizer (Brayton et al., 1984).
-
12
Diseo de Sistemas Lgicos 23
Mapas de Karnaugh Las simplificaciones que permiten los diagramas de Karnaugh
se basan en la siguiente identidad:
A B C + A B C = A B (C + C) = A B
La ecuacin anterior indica que si una variable (la C) aparece negada en un trmino y no negada en otro que tiene el resto de las variables iguales, puede eliminarse por completo. Los diagramas de Karnaugh ayudan mucho a la localizacin de estas variables que se pueden suprimir.
Diseo de Sistemas Lgicos 24
Mapas de Karnaugh Mtodo manual, grfico, til hasta 5 o 6 variables. Las variables se ordenan de acuerdo al cdigo de
Gray (una sola variable cambia de polaridad entre cuadros adyacentes).
Para obtener la expresin minimizada: Agrupar los 1 en rectngulos que contengan 1, 2, 4, 8
unos.
Cada casilla con un 1 se debe cubrir al menos una vez. Los valores indefinidos (dont care) pueden aprovecharse
para hacer grupos de 1 mas grandes.
-
13
Diseo de Sistemas Lgicos 25
Mapas de Karnaugh
101198141513126754
2310
X0
X1
X2
X3
X1 X0
X3 X2
00 01 11 1000011110
X1 X0
X2
00 01 11 1001
X0
X1
0 101
Diseo de Sistemas Lgicos 26
Mapas de Karnaugh Un mapa de Karnaugh se puede ver como un diagrama de
Venn especialmente dibujado:
101198141513126754
2310
BA
D
C
(A,B,C,D) = 11012 = 13
-
14
Diseo de Sistemas Lgicos 27
Mapas de Karnaugh
11
111111x3
11
110000x2
11
001100x1
10
101010x0
00
000011F
00
000000x3
01111011
010110011110101011001000Fx0x1x2
F = X3X2X1X0 + X3X2X1X0 + X3X2X1X0 + X3X2X1X0 +X3X2X1X0 + X3X2X1X0 + X3X2X1X0 + X3X2X1X0
Diseo de Sistemas Lgicos 28
Mapas de Karnaugh
111110
100111
000001
001100X2X3
10110100
X0X1
F = X2X1 + X3X0 + X3X2
-
15
Diseo de Sistemas Lgicos 29
Mapas de Karnaugh ste es un mtodo grfico que posee limitaciones
muy fuertes (casi imposible de hacer) cuando se desea simplificar funciones de ms de 6 variables.
No es determinstico, hay varias maneras de agrupar.
No necesariamente se encuentra la expresin mnima.
Diseo de Sistemas Lgicos 30
Mtodo tabular de QuineMcCluskey Mismo funcionamiento que mtodo de Karnaugh.
Se puede implementar en un programa de computacin. Posibilita la sntesis automtica.
Permite encontrar de forma determinstica la expresin mnima de una funcin booleana.
-
16
Diseo de Sistemas Lgicos 31
Mtodo tabular de QuineMcCluskey Primero encuentra los implicantes primos.
Se parte de la funcin cannica conjuntiva. Se efecta un proceso iterativo en el que se van combinando
trminos.
Una vez encontrado los implicantes primos, obtiene las expresiones mnimas candidatas a partir de la cobertura mnima de los mintrminos involucrados en la funcin.
Por ltimo, escoge la/s funcin/es con mnimo costo segn algn criterio: rea, profundidad lgica, etc.
Diseo de Sistemas Lgicos 32
Implicantes primos Dada una funcin expresada como suma de conjunciones.
Los implicantes primos son las expresiones que no estn contenidas en ninguna otra.
Ejemplo, sea la funcin booleana F = X2X1X0 + X2X0 + X2X0,
X2X1X0 est contenida en X2X0, ya que
X2X0 = X2X0X1 + X2X0X1
Implicantes primos son: X2X0 y X2X0
-
17
Diseo de Sistemas Lgicos 33
Mtodo tabular de QuineMcCluskey
Para encontrar los implicantes primos, primero se deben encontrar los mintrminos involurados en la funcin.
Ejemplo: F= X2X1X0 + X3X0 + X3X1X0 + X3X2X0 + X3X1X0
X3X0 = X3X2X1X0 + X3X2X1X0 + X3X2X1X0 + X3X2X1X0
X3X0 genera los mintrminos: m0, m2, m4, m6
X2X1X0 m7, m15X3X1X0 m3, m7
X3X2X0 m9 y m11X3X1X0 m9 y m13
Diseo de Sistemas Lgicos 34
Mtodo tabular de QuineMcCluskeyEntonces F = (0, 2, 3, 4, 6, 7, 9, 11, 13, 15)
011001101101
1101
X0
X1
X2X3
Implicantes esencialesX3X0 y X3X0
Implicantes primos y esenciales identificados con Karnaugh
Implicantes PrimosX3X1; X3X0; X3X0; X1X0
-
18
Diseo de Sistemas Lgicos 35
Generacin de implicantes primos A partir de la expresin cannica conjuntiva, se determina el ndice de
cada trmino. El ndice es el nmero de componentes que contengan uno.
730111m71131011m11
43
222110
ndice
151111m15131101m13
91001m960110m630011m340100m420010m200000m0
valor decimalcdigominterms
Diseo de Sistemas Lgicos 36
Generacin de implicantes primos Se itera combinando trminos mediante la aplicacin de la
siguiente regla:
Los trminos a combinar no deben diferir entre si, msque en el estado de una de las variables, la cul ser sustituida
por un guin
-
19
Diseo de Sistemas Lgicos 37
Generacin de implicantes primos
1_11m(11,15)_111m(7,15)1_01m(9,13)m15
11_1
10_1011__0110_1101_00_10001_0_00
00_0
m(13,15)
m(9,11)m(6,7)m(3,11)m(3,7)m(4,6)m(2,6)m(2,3)m(0,4)m(0,2)
Implicantes de tam. 2
1__1m(9,13,11,15)m7m11m13
1__1m(9,11,13,15)m9__11m(3,11,7,15)m6__11m(3,7,11,15)m30_1_m(2,3,6,7)m40__0m(0,4,2,6) m20__0m(0,2,4,6)m0
Implicantes de tam. 4
minterms
elimina
elimina
elimina
Implicantes primos encontradosX3X0; X3X1; X1X0; X3X0
Diseo de Sistemas Lgicos 38
Generacin de cobertura mnima Se construye tabla de modo que:
filas son los implicantes primos encontrados. columnas los mintrminos de la funcin. identifica los mintrminos cubiertos por los implicantes primos
x
x
m6x
m4
x
x
m3
x
x
m2x
m0
x
x
m11
x
m9
x
x
m7
x
m13
xm(9,11,13,15)xm(3,7,11,15)
m(2,3,6,7)m(0,2,4,6)
m15a
bc
d
-
20
Diseo de Sistemas Lgicos 39
Generacin de cobertura mnima Identificar implicantes esenciales y generar tabla reducida
x
x
m6x
m4
x
x
m3
x
x
m2x
m0
x
x
m11
x
m9
x
x
m7
x
m13
xm(9,11,13,15)xm(3,7,11,15)
m(2,3,6,7)m(0,2,4,6)
m15a
bc
d
Diseo de Sistemas Lgicos 40
Generacin de cobertura mnima Identificar implicantes esenciales y generar tabla reducida
x
x
m6x
m4
x
x
m3
x
x
m2x
m0
x
x
m11
x
m9
x
x
m7
x
m13
xm(9,11,13,15)xm(3,7,11,15)
m(2,3,6,7)m(0,2,4,6)
m15a
bc
d
x
x
m3
x
x
m7
m(3,7,11,15)m(2,3,6,7)b
cTabla reducida
-
21
Diseo de Sistemas Lgicos 41
Generacin de cobertura mnima Reglas para tabla reducida:
Dos implicantes primos son intercambiables si poseen el mismo costo.
Se dice que un implicante primo y domina a otro z, si tiene todas las marcas de z y alguna adicional.
Tras eliminar las filas se busca implicantes esenciales: el nico que cubre una columna
Si no quedan cubiertos todos los mintrminos se repite el proceso.
Diseo de Sistemas Lgicos 42
Generacin de cobertura mnima
x
x
m3
x
x
m7
m(3,7,11,15)m(2,3,6,7)b
c
En nuestro ejemplo son intercambiables
Solucin es ad(b+c), entonces
F = X3X0 + X3X0 + X3X1
F = X3X0 + X3X0 + X1X0
o bien
-
22
Diseo de Sistemas Lgicos 43
Algoritmo de QuineMcCluskey Si bien el algoritmo de QuineMcCluskey se puede
implementar en un programa, su complejidad temporal y espacial no son buenas (exponencial). Es un mtodo exhaustivo, es decir que agota todas las posibilidades.
Para resolver problemas de muchas variables se deben usar mtodos heursticos sub-ptimos.
Diseo de Sistemas Lgicos 44
Espresso Espresso es el algoritmo estndar de sntesis
automtica de funciones booleanas. Es un algoritmo greedy que aplica operaciones
iterativamente Se parte de diferentes puntos y se aplican
operaciones hasta que no haya mejoras Se puede caer en mnimos locales
-
23
Diseo de Sistemas Lgicos 45
Espresso Espresso esta disponible en la web como
cdigo open-source: http://diamond.gem.valpo.edu/~dhart/ece110/espr
esso/tutorial.html Programa para bajar ms instrucciones sobre cmo operarlo.
http://embedded.eecs.berkeley.edu/pubs/downloads/espresso/index.htm El cdigo fuente original se puede bajar de la pgina de Berkeley.