síntesislogica

23
1 Diseño de Sistemas Digitales M. Vázquez, E. Todorovich, M. Tosini Diseño de Sistemas Lógicos 2 Materialización de Sistemas Lógicos Circuitos integrados específicos (ASIC - (Appication Specific Integrated Circuits). Circuitos Integrados programables por el usuario, por ejemplo PAL, CPLD, FPGAs, etc. Circuitos impresos que permiten ensamblar circuitos integrados (estándar, específicos o programables) y componentes discretos (resistencias, capacitores, transistores, etc)

Upload: lucas-del-rio

Post on 14-Nov-2015

3 views

Category:

Documents


0 download

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.