lec-multipliers [compatibility mode]

Upload: bilal-khan

Post on 05-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    1/63

    Adv Digital

    Design

    By Dr. Shoab Ahmed Khan.

    Fall 2002

    En ineerin Education Trust

    Center for Advanced Studies in Engineering

    algorithm to architecture mapping

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    2/63

    SequentialandArrayMultipliers

    2

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    3/63

    UsedinmanyDSPapplications

    Vector

    product,

    matrix

    multiplication Convolution

    Filterin ta dela linefilter ada tivefilter FIR IIR ..

    At

    least

    one

    good

    reason

    for

    studying

    multiplication

    and

    operationsandhencethereisaninfinitenumberofPhDs (orexpensivepaidvisitstoconferencesinUSA)tobewonfrom

    AlanClements

    ThePrinciplesofComputerHardware,1986

    Adv. Digital Design By Dr. Shoab A.Khan

    3

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    4/63

    Adv. Digital Design By Dr. Shoab A.Khan

    4

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    5/63

    Multiplier Basicideaisprettysimple,multiplyingA,andBtwoNbits

    numbers

    Done

    by

    generating

    N

    number

    of

    partial

    products,

    and

    adding

    them

    together:

    Rowofdotsisapartialproduct:

    ResultofmultiplyingAbyone

    bitofB(Aisthemultiplicand)

    Resultis

    a2N

    bit

    product

    ForintegeroperationswantLSBNbits,

    ForFractional(Qn.m)wantMSBNbits,

    Qn1.m1xQn2.m2

    5

    Adv. Digital Design By Dr. Shoab A. Khan

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    6/63

    Unsigned MultiplyUnsigned Multiply

    =

    a3b0 a2b0 a1b0 a0b0

    a3b3

    a2 a1 a0b2 b1 b0

    a3b1 a2b1 a1b1 a0b1

    a3b2 a2b2 a1b2 a0b2

    a3b3 a2b3 a1b3 a0b3

    p0p1p2p3p4p5p6p7

    0 1 0 1 6

    0 0 0 0

    0 1 0 1

    0 1 0 1

    0 0 0 0

    Adv. Digital Design By Dr. Shoab A.Khan

    6

    0 0 0 1 1 1 1 0 30

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    7/63

    Adv. Digital Design By Dr. Shoab A.Khan

    7

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    8/63

    Amulti liercanbeim lementedusin a

    repeated

    shift

    and

    add

    algorithm Thenumbertoberepeatedlyshiftedandadded

    Thenumberoftimesitisshiftedandadded

    TakesNcycles,andgeneratesandaddsonepartialproducteachcycles:

    Theresultistheproduct

    Adv. Digital Design By Dr. Shoab A.Khan

    8

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    9/63

    Unsignedshiftaddmultiplier(design1)

    64bitMultiplicandreg, 64bitALU,

    64bitProductreg, 32bitmultiplierreg

    9

    Adv. Digital Design By Dr. Shoab A. Khan

    Multiplier = datapath + control

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    10/63

    Unsignedshiftaddmultiplier(version

    1)

    Adv. Digital Design By Dr. Shoab A.Khan

    10

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    11/63

    1/2bits

    in

    multiplicand

    always

    0

    a er swas e

    0sinserted

    in

    left

    of

    multiplicand

    as

    shifted

    leastsignificantbitsofproductneverchangedonceformed

    Insteadof

    shifting

    multiplicand

    to

    left,

    shift roducttori ht?

    Adv. Digital Design By Dr. Shoab A.Khan

    11

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    12/63

    MULTIPLYHARDWARE(Design2)32bitMultiplicandreg,32 bitALU,

    64bitProductreg,32bitMultiplierreg

    12

    Adv. Digital Design By Dr. Shoab A. Khan

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    13/63

    Partial Product is accumulated and

    Adv. Digital Design By Dr. Shoab A.Khan

    13

    s e r g a eac s ep

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    14/63

    matchessize

    of

    multiplier

    om ne u p erreg s eran

    Productregister

    Adv. Digital Design By Dr. Shoab A.Khan

    14

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    15/63

    Design332bitMultiplicandreg,32 bitALU,64bitProductreg,(0bitMultiplierreg)

    15

    Adv. Digital Design By Dr. Shoab A. Khan

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    16/63

    Prodshift_reg

    muxn-bit

    Adder

    0 0

    Shift_regA

    1

    Adv. Digital Design By Dr. Shoab A.Khan

    16

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    17/63

    Adv. Digital Design By Dr. Shoab A.Khan

    17

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    18/63

    Applydefinitionof2scomplement

    Needtosignextendpartialproducts

    BoothsAlgorithmiselegantwayto

    multiplysigned

    numbers

    Adv. Digital Design By Dr. Shoab A.Khan

    18

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    19/63

    Signed MultiplierSigned Multiplier

    Signbit

    extension

    -

    0 0 1 0 1 1 0 0 +44

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    0 0 0 0 0 00 0 0 0 0 0 0 0 0

    1 1 1 11 1 1 1 0 1 0 0 1 1

    1 1 1 1 11 1 0 1 0 0 1 1

    0 0 0 00 0 0 0 0 0 0 0

    -

    0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0

    Adv. Digital Design By Dr. Shoab A.Khan

    19

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    20/63

    Example: Signed by SignedExample: Signed by Signed

    In case the multiplier is a negative number, while calculating the lastpartial product i.e. multiplying the multiplicand with the MSB bit,which has negative weight, the 2s complement of the multiplicand,s use as e par a pro uc

    20

    Adv. Digital Design By Dr. Shoab A. Khan

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    21/63

    Adv. Digital Design By Dr. Shoab A.Khan

    21

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    22/63

    ParallelMultipliers

    Adv. Digital Design By Dr. Shoab A.Khan

    22

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    23/63

    X Y ZX = 0 0 1 0 1 1

    n n nY = 0 1 0 1 0 1

    Z = 1 1 1 1 0 1+

    n+1 n+1

    C = 0 1 1 1 0 1

    C S

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    24/63

    Digitalmultiplicationflow N

    bit

    inputs

    operands

    (N

    =4)

    PartialProductArrayGeneration =Ns e narynum ers

    =reductionto2binarynumbers Final

    addition

    =2nbitfinalproduct

    Adv. Digital Design By Dr. Shoab A.Khan

    24

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    25/63

    MultiplicationMultiplier

    Formation of PartialProducts

    Addition of PartialProducts

    (Reduction)

    Final Addition Stage

    ro uct

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    26/63

    Partialproductgenerationfor6bitby6bitmultiplication

    multiplier multiplicand

    ppij

    columns to be added

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    27/63

    PartialProductGeneration Use

    an

    array

    of

    AND

    gates

    to

    produce

    partial

    products

    in

    parallel

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    28/63

    define WIDTH = 6

    module multiplier (a, b, prod);input [WIDTH-1:0] a,b;ou pu - : pro ;

    - -always@(a or b)

    for(i=0; i

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    29/63

    Level n

    Level ( n+1) sum

    carry

    sum

    carry

    (Full Adder) (Half Adder) No action

    Partial product

    reduction

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    30/63

    Three dots are shown Each symbolizes a partial product s ng re uces ese o wo s

    One has the weight of 20(sum)

    This type of reduction is known as 3 to 2

    reduction or carr saves reduction The two dots are reduced to 2 using a HA

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    31/63

    DualCarry

    Save

    Reduction

    Scheme

    Wa aceTreeRe uctionSc eme

    DaddaTree

    Reduction

    Scheme

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    32/63

    12x12Carry

    Save

    Reduction

    Scheme

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    33/63

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    34/63

    HA FA FA FA FA FA HA P0Level 1

    HA FA FA FA FA FA HA P1Level 2

    HA FA FA FA FA FA HA P2Level 3

    HA FA FA FA FA FA HA P3Level 4

    PC PS PC PS PC PS PC PS PC PS PC PS PC PS10 9 9 8 8 7 7 6 6 5 5 4 4 3 Free product bits

    Carry Save Array

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    35/63

    ,

    partialproducts

    are

    divided

    into

    2equal

    size

    Thecarrysavereductionschemeisappliedon

    Thisresultsintotwopartialproductlayersin

    eac

    group

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    36/63

    architecture

    logtimearraymultiplier

    T enum ero a er eve sincreaseslogarithmicallyasthepartialproductrows

    ncrease

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    37/63

    Groupingthepartialproductsintogroupsofthreecarriesoutthereduction

    Unlikelinear

    time

    arrays,

    these

    partial

    product

    groups

    are

    technique

    Each partial product row spits out two rows

    ese rows en, w o er rows rom o er par a pro ucgroups, form a reduced matrix

    This process continues until only two rows are left

    At this stage, no further reduction is done The final rows are added together for the final product

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    38/63

    AdderLevelsinWallaceTreeReductionScheme

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    39/63

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    40/63

    6x6 Wallacetree

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    41/63

    SignedMultiplication:

    Rememberfor2scomplementnumbersMSBhasnegative

    weight:1

    2

    ni

    N

    1

    0

    =

    n

    i

    i

    ex: 6=110102 =020 +121 +022 +123 124

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    42/63

    Applydefinitionof2scomplement

    Needtosignextendppandsubtract

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    43/63

    SXXXXXXXXXX

    SXXXXXXXXXX

    000000XXXXXXXXXX

    00000XXXXXXXXXX

    SXXXXXXXXXX

    SXXXXXXXXXX

    SXXXXXXXXXX

    0000XXXXXXXXXX

    000XXXXXXXXXX

    00XXXXXXXXXXIF S=0

    SXXXXXXXXXX 0XXXXXXXXXX

    11111XXXXXXXXXX

    1111XXXXXXXXXXIF S=1

    11XXXXXXXXXX

    1XXXXXXXXXX

    = gn

    S = 0 : Positive

    S = 1 : Negative

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    44/63

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    45/63

    1111111

    111111SXXXXXXXXXX

    111111

    11111

    11111SXXXXXXXXXX

    1111SXXXXXXXXXX111SXXXXXXXXXX

    1111

    11111

    1SXXXXXXXXXX

    SXXXXXXXXXX

    1000001Sign extensioncorrection vector

    S X X X X X X X X X X

    S X X X X X X X X X X

    S X X X X X X X X X X

    S X X X X X X X X X XS X X X X X X X X X X

    S X X X X X X X X X X

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    46/63

    Example: Singed x signed

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    47/63

    Example: Singed x signed

    _

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    48/63

    7=111=81=1001

    31=11111=321

    Or 100001=321=31

    In string of 1s, replace the least significant 1 with1 and represent it with a bar on 1

    ep ace res o e s n e s r ng w s

    Replace 0 of the end of string with a 1

    Keep repeating this operation with all the strings

    of 1s in binary representation of the number

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    49/63

    0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 0 1

    0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1String

    0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1String

    String

    0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 0 1

    0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 0 0 1 0 1String

    Hence the number of 1(s) has reduced from 14 to 6. Both have thesame va ue.

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    50/63

    Boothrecodingmakesuseofthe

    stringproperty.

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    51/63

    generationof

    partial

    products

    TwoWaysofSpeedUp

    acceleratetheaccumulation

    Partialproductreductiontechnique

    re uce

    t e

    num er

    o

    part a

    pro ucts modifiedBoothrecoding

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    52/63

    Radix2 partialproduct=(multiplicant)x{0,1}

    Radix4 =

    x

    x

    ++

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    53/63

    We have a 3 which is difficult to be handled

    Simpleshifting

    cant

    be

    performed

    to

    handle

    it

    Numbersarerequiredto beinthisform

    ,

    ,

    ,

    ,

    Becauseifweget3,itmeans2+1hence

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    54/63

    The modified Booth recodin al orithm ex loits the strinproperty

    This technique reduces number ofpps into half

    Partitioning the multipliers in groups of two and generatingone row of pp for each group to achieve this reduction

    along with the higher order bit of the previous pair

    For the first pair a zero is appended at left

    As the string property is applied on three bits, there areeight possibilities:

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    55/63

    21 20

    0 0 0: nostring.Thegroupiscodedwitha0.

    0 1 0: startandendofastringatbit0,codedas21 20 =+1.0 1 1: anendofstringatbitlocation0,codedas21=+21 0 0: astartofastringatbitlocation1;codedas 21= 2

    at

    high

    bit

    location

    of

    the

    previous

    pair,

    21 + 20=

    1

    BoothRecodingTable

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    56/63

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    57/63

    ns ea o mu p y ngw as ng e

    Wemultiply

    with

    two

    bits

    hence

    makingthepartialproductshalfinNo.

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    58/63

    A= 1 0 1 0 1 1 0 1

    B= 1 0 1 0 1 1 0 1

    For these two bits Booths algorithm restricts thevalue to be (-2, -1, 0, +1,+2)

    +2 means Shift left A by one

    +1 means Copy A in the answer

    -1 means 2s complement and then copy

    -2 means 2s complement and then shift left

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    59/63

    10 1

    011 0

    1 0

    Use

    the

    MSB

    of

    the

    previous

    group

    to

    check

    forthestringpropertyonthepair,use0for

    thefirstpair

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    60/63

    ,are following eight possibilities:

    21=2 20=1

    0 0 1 1

    0 1 1 2

    -

    1 0 1 -1

    -

    1 1 1 0

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    61/63

    1 0 1 0 1 1 0 1

    1 0 0 0 1 1 0 10

    100 001 110 010

    - 2 +1 -1 1

    reduced from 8 to 4 in number

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    62/63

    1 0 1 1 0 1

    -2 +1 -1 1

    1 1 1 1 1 1 1 1 0 1 1 0 1

    1 1 1 1 0 1 1 0 1

    0 1 0 0 1 10 0 1 1 1 1 0 0 0 1 0 0 1

    BoothRecoder

  • 7/31/2019 Lec-multipliers [Compatibility Mode]

    63/63

    BR00b0b1

    5:1

    a0

    2a-

    -a

    PartialProductBR1

    b2b

    2a

    5:1

    a

    0

    2-a

    Reduction

    Tree

    a-2a

    5:1

    a0

    -24b5

    2a-2a

    a

    a0

    BR3b6b75:1

    2a-2a

    -

    a

    Shortcut to VERIWELL.lnk