Semana 3 - Lecciones

71
3 1 Herramientas para la síntesis de circuitos combinacionales 3 .1 Elena Valderrama Universidad Autónoma de Barcelona

description

electronica digital

Transcript of Semana 3 - Lecciones

  • 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