lecture xilinx iseand fpgas

Upload: fahadalghazali

Post on 06-Apr-2018

261 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    1/57

    XilinxISE

    Xilinxtutorial

    Examples

    UCF

    Synthesis,Mapping

    Translation

    ProgrammingFile

    Downloading

    SynthesisOptions

    RTLSchematic

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    2/57

    OriginofFPGAs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    3/57

    Typesof

    Programmable

    Logic

    Devices

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    4/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    5/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    6/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    7/57

    TypesofASICs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    8/57

    TypesofChanneledGateArrays

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    9/57

    ExamplesofStructuredASICTiles

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    10/57

    GenericStructuredASICs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    11/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    12/57

    ASICsEnd

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    13/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    14/57

    KeyElements

    Forming

    Simple

    ProgrammingLogicBlocks

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    15/57

    ConfiguringaLUT

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    16/57

    TopDown

    View

    of

    FPGA

    Architecture

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    17/57

    FPGAASICHybrid

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    18/57

    FPGAandFPAAVendors

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    19/57

    FulltimeEDAVendors

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    20/57

    GeneralTypesofFPGAs

    Anti

    fuse

    based

    FPGAs SRAMbasedFPGAs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    21/57

    AntifuseBasedFPGAs

    In

    the

    case

    of

    antifuse

    based

    FPGAs,

    the

    antifuse

    cells

    canbevisualizedasscatteredacrossthefaceofthedeviceatstrategiclocations.

    Thedeviceisplacedinaspecialdeviceprogrammer,the

    configuration

    (bit)

    file

    is

    uploaded

    into

    the

    device

    programmerfromthehostcomputer,andthedeviceprogrammerusesthisfiletoguideitinapplying

    pulsesof

    relatively

    high

    voltage

    and

    current

    to

    selectedpinstogroweachantifuseinturn.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    22/57

    Once

    all

    of

    the

    fuses

    have

    been

    grown,

    the

    FPGA

    is removedfromthedeviceprogrammerandattachedto

    acircuitboard.

    Antifuse

    based

    devices

    are,

    of

    course,

    one

    time

    programmable(OTP)

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    23/57

    SRAMbasedFPGAs

    Remember

    that

    these

    devices

    are

    volatile,

    which

    meansthattheyhavetobeprogrammedinsystem(onthecircuitboard),andtheyalwaysneedtobereprogrammedwhenpowerisfirstappliedtothe

    system. Fromtheoutsideworld,wecanvisualizeallofthe

    SRAMconfigurationcellsascomprisingasingle

    (long)shift

    register.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    24/57

    VisualizingSRAM

    Based

    FPGAs

    as

    alongchainofshiftregisters

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    25/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    26/57

    FPGAConfigurationModes

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    27/57

    SerialLoadWithFPGAasMaster

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    28/57

    DaisyChainingFPGAs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    29/57

    ParallelLoadwithFPGAasMaster

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    30/57

    JTAGBoundaryScan

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    31/57

    JTAGFPGAs Likemanyothermoderndevices,todaysFPGAsare

    equippedwithaJTAGport.StandingfortheJointTestActionGroupandofficiallyknowntoengineersbyitsIEEE1149.1specificationdesignator

    JTAGwas

    originally

    designed

    to

    implement

    the

    boundaryscantechniquefortestingcircuit

    boardsandICs.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    32/57

    JTAGContinued FPGAhasanumberofpinsthatareusedasaJTAG

    port.

    OneofthesepinsisusedtoinputJTAGdata,andanotherisusedtooutputthatdata.

    EachoftheFPGAsremainingI/OpinshasanassociatedJTAGregister(aflipflop),wheretheseregistersaredaisychained

    together

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    33/57

    JTAG

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    34/57

    XilinxLogicCell

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    35/57

    Slice

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    36/57

    CLBsandLABs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    37/57

    EmbeddedRAMs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    38/57

    EmbeddedMACs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    39/57

    EmbeddedMAC

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    40/57

    EmbeddedMACs

    Similarly,

    some

    FPGAs

    offer

    dedicated

    adder

    blocks.

    OneoperationthatisverycommoninDSPtypeapplicationsiscalledamultiplyandaccumulate

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    41/57

    Logic

    Partitioning

    in

    terms

    of

    Speed Picosecondandnanosecondlogic:

    Thishas

    to

    run

    insanely

    fast,

    which

    mandates

    that

    it

    be

    implemented

    inhardware(intheFPGAfabric). Microsecondlogic: Thisisreasonablyfastandcanbeimplementedeitherinhardwareor

    software(thistypeoflogiciswhereyouspendthebulkofyour time

    decidingwhich

    way

    to

    go).

    Millisecondlogic: Thisisthelogicusedtoimplementinterfacessuchasreadingswitch

    positionsandflashinglightemittingdiodes(LEDs).Itsapainslowingthehardwaredowntoimplementthissortoffunction(usinghuge

    countersto

    generate

    delays,

    for

    example).

    Thus,itsoftenbettertoimplementthesetasksasmicroprocessor

    code(becauseprocessorsgiveyoulousyspeedcomparedtodedicated

    hardwarebutfantasticcomplexity).

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    42/57

    Untilrecentlytheseslowspeedlogicappearedonseparate

    devices

    (discrete

    chips

    )on

    PCBs

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    43/57

    HardMicroprocessorCore

    HardmicroprocessorcoresAhardmicroprocessorcoreisimplementedasadedicated,predefinedblock.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    44/57

    HardIParrangementasStripe

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    45/57

    Chips

    Embedded

    in

    the

    main

    FPGA

    Fabric

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    46/57

    SoftProcessorCores Asopposedtoembeddingamicroprocessorphysically

    intothe

    fabric

    of

    the

    chip,

    it

    is

    possible

    to

    configure

    a

    groupofprogrammable logicblockstoactasamicroprocessor.

    Theseare

    typically

    called

    soft

    cores,

    but

    they

    may

    be

    morepreciselycategorizedaseithersoft orfirmdependingonthewayinwhichthemicroprocessors

    functionality

    is

    mapped

    onto

    the

    logic

    blocks

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    47/57

    AdvantagesofSoftCores Softcoresaresimpler(moreprimitive)andslower

    thantheir

    hard

    core

    counterparts.

    However,theyhavetheadvantage thatyouonlyneedtoimplementacoreifyouneeditandalsothatyou

    caninstantiate

    as

    many

    cores

    as

    you

    require

    until

    you

    runoutofresourcesintheformofprogrammablelogicblocks.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    48/57

    ClockTrees

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    49/57

    NeedforClockTrees AllofthesynchronouselementsinsideanFPGAfor

    example,the

    registers

    configured

    to

    act

    as

    flip

    flops

    insidetheprogrammablelogicblocksneedtobedrivenbyaclocksignal.

    Suchaclock

    signal

    typically

    originates

    in

    the

    outside

    world,comesintotheFPGAviaaspecialclockinputpin,andisthenroutedthroughthedeviceand

    connected

    to

    the

    appropriate

    registers.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    50/57

    ClockTreesFunctionality Thisiscalledaclocktree becausethemainclocksignalbranchesagainand

    again(theflipflopscanbeconsider,tobetheleaves ontheendofthebranches).

    Thisstructureisusedtoensurethatalloftheflipflopsseetheirversionsoftheclock

    signalasclosetogetheraspossible. Iftheclockweredistributedasasinglelongtrackdrivingall oftheflipflops

    oneafter

    another,thentheflipflopclosesttotheclockpinwouldseetheclocksignalmuchsoonerthantheoneattheendofthechain.Thisisreferredtoasskew,anditcancauseallsortsofproblems(evenwhenusingaclocktree,therewillbeacertainamountofskewbetweentheregistersonabranchandalsobetweenbranches).

    Theclock

    tree

    is

    implemented

    using

    special

    tracks

    and

    is

    separate

    from

    the

    generalpurposeprogrammableinterconnect. Inreality,multipleclockpinsareavailable(unusedclockpins canbe

    employedasgeneralpurposeI/Opins),andtherearemultipleclockdomains(clocktrees)insidethedevice.

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    51/57

    ClockManagers Insteadofconfiguringaclockpintoconnectdirectly

    intoan

    internal

    clock

    tree,

    that

    pin

    can

    be

    used

    to

    driveaspecialhardwiredfunction(block)calledaclockmanagerthatgeneratesanumberofdaughter

    clocks

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    52/57

    JittersinClock

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    53/57

    ClockManagersasJitterRemovers

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    54/57

    Clock

    Managers

    as

    Frequency

    Synthesizers

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    55/57

    GPI/Os Theproblemisthatthereisawidevarietyofsuch

    standards,and

    it

    would

    be

    painful

    to

    have

    to

    create

    specialFPGAstoaccommodateeachvariation.

    Forthisreason,anFPGAsgeneralpurposeI/Ocanbe

    configuredto

    accept

    and

    generate

    signals

    conforming

    towhicheverstandardisrequired.

    ThesegeneralpurposeI/Osignalswillbesplitintoa

    numberof

    bankswell

    assume

    eight

    such

    banks

    numberedfrom0to7

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    56/57

  • 8/2/2019 Lecture Xilinx Iseand FPGAs

    57/57

    SupplyVoltagesversusTechnology