Building Asynchronous Circuits With JBits

  • Published on
    30-Dec-2015

  • View
    17

  • Download
    2

DESCRIPTION

Building Asynchronous Circuits With JBits. Eric Keller eric.keller@xilinx.com FPL 2001. FPL2001. JBits Background. A Java API to configure Xilinx FPGA bitstreams Provides complete design control Routing CLB configuration Supports run-time reconfiguration - PowerPoint PPT Presentation

Transcript

  • Building Asynchronous Circuits With JBitsEric Keller eric.keller@xilinx.comFPL 2001FPL2001

    Footer to be in lower left corner

    www.xilinx.com

    JBits Background A Java API to configure Xilinx FPGA bitstreamsProvides complete design controlRoutingCLB configurationSupports run-time reconfigurationAllows for tools to built upon itExample low-level configuration call:

    jbits.set(row, col, S1F1.S1F1, S1F1.SINGLE_EAST0)

    Footer to be in lower left corner

    www.xilinx.com

    The JBits EnvironmentRTP CoreLibraryJRouteAPIUserCodeXHWIFJBitsAPITCP/IPRemoteHardwareFPGAHardwareDevice SimulatorBoardScopeDebugger

    Footer to be in lower left corner

    www.xilinx.com

    Asynchronous AdvantagesModularityLow powerAverage-case performanceNo clock distributionAdapt to environmental conditions

    Footer to be in lower left corner

    www.xilinx.com

    Why use JBits?Complete control over circuitHave some fixed routes and others auto-routedCan pre-route modules to meet any delay constraint Use templates to add delay to a netClean HDL for dual-rail coresCombine asynchronous design and RTR

    Footer to be in lower left corner

    www.xilinx.com

    Null Convention LogicDeveloped by Theseus, Inc.Four-phase signaling, dual-rail communicationDelay Insensitive (almost)Occurs in very few situationsEasily analyzableM-of-N gatesOutput goes high when M of the N inputs go highOutput goes low when all N inputs go lowSymbolized by M

    Footer to be in lower left corner

    www.xilinx.com

    NCL Full Adder StageA_0A_1B_0B_1Cin_0Cin_1Cout_0Cout_1Sum_1Sum_02 of 3 gate takes up 1 Virtex LUT3 of 5 gate takes up 2 Virtex LUTsA single dual-railnet* Red lines represent high state2332A_0A_1valredredn/aredblack0blackred1blackblacknullValues of dual-rail net

    Footer to be in lower left corner

    www.xilinx.com

    NCL Registerfrom_nextto_prev22222NCLCIRCUITA_0A_1B_0B_1Implement 4-phase signalingReceive NULLRequest DATARec. DATAReq. NULLLow requests NULLHigh requests DATA

    Footer to be in lower left corner

    www.xilinx.com

    RTPCore OverviewBus inputA = new Bus(inputA, this, DATA_WIDTH);Bus inputB = new Bus(inputB, this, DATA_WIDTH);Bus output = new Bus(output, this, DATA_WIDTH);Net cin = new Net(carryIn, this);Net cout = new Net(carryOut, this);Adder adder = new Adder(adder, inputA, inputB, cin, output, cout);addChild(adder, Place.LOWER_LEFT);adder.implement();

    +inputAinputBoutput44cincout4

    Footer to be in lower left corner

    www.xilinx.com

    RTPCore ModificationsNo support for Dual-Rail SignalsAdded DualRailBus and DualRailNet.Cores to convert between dual and single rail.JRoute support for dual rail signalsDualRailBus inputA = new DualRailBus(inputA, this, DATA_WIDTH);DualRailBus inputB = new DualRailBus(inputB, this, DATA_WIDTH);DualRailBus output = new DualRailBus(output, this, DATA_WIDTH);DualRailNet cin = new DualRailNet(carryIn, this);DualRailNet cout = new DualRailNet(carryOut, this);NCLAdd adder = new NCLAdd(add, inputA, inputB, cin, output, cout);addChild(adder, Place.LOWER_LEFT);adder.implement();

    Footer to be in lower left corner

    www.xilinx.com

    Dual-Rail Full Adder+DualRailBusinputADualRailBusinputBDualRailBusoutput44DualRailNetcout44 bit DualRailBusinputA[0]inputA[1]inputA[3]inputA[2]DualRailNetNetDualRailNetcin

    Footer to be in lower left corner

    www.xilinx.com

    Delay Analysis - NCL Full Adder Average case performanceDepends on carry propagation 0+0 no carry lowest delay15+1 carry at each stage longest delay

    +inputAinputBoutput444

    Footer to be in lower left corner

    Chart1

    3.04631083843.05372446935.12203530765.21403530765.21403530765.21403530767.2823461467.3743461464.61933666114.61933666115.12203530765.21403530766.77964749946.77964749948.84795833788.9399583378

    3.04631083843.37208609025.12203530765.80477300485.21403530765.21403530767.2823461468.23745991944.61933666114.61933666115.12203530765.80477300486.77964749946.77964749948.847958337810.0507803372

    5.12203530765.21403530763.37208609023.37208609027.2823461467.3743461465.80477300485.80477300485.12203530765.21403530764.61933666114.61933666118.84795833788.93995833787.61809342267.6180934226

    5.12203530765.80477300483.37208609023.37208609027.2823461468.23745991945.80477300485.80477300485.12203530765.80477300484.61933666114.61933666118.847958337810.05078033727.61809342267.6180934226

    5.21403530765.21403530767.2823461467.3743461463.37208609023.37208609025.12203530765.21403530766.77964749946.77964749948.84795833788.93995833785.1854065085.1854065085.1854065085.2140353076

    5.21403530765.21403530767.2823461468.23745991943.37208609023.37208609025.12203530765.80477300486.77964749946.77964749948.847958337810.05078033725.1854065085.1854065085.1854065085.8047730048

    7.2823461467.3743461465.80477300485.80477300485.12203530765.21403530763.37208609023.37208609028.84795833788.93995833787.61809342267.61809342265.1854065085.21403530765.1854065085.185406508

    7.2823461468.23745991945.80477300485.80477300485.12203530765.80477300483.37208609023.37208609028.847958337810.05078033727.61809342267.61809342265.1854065085.80477300485.1854065085.185406508

    4.61933666114.61933666115.12203530765.21403530766.77964749946.77964749948.84795833788.93995833783.04631083843.05372446935.12203530765.21403530765.21403530765.21403530767.2823461467.374346146

    4.61933666114.61933666115.12203530765.80477300486.77964749946.77964749948.847958337810.05078033723.04631083843.37208609025.12203530765.80477300485.21403530765.21403530767.2823461468.2374599194

    5.12203530765.21403530764.61933666114.61933666118.84795833788.93995833787.61809342267.61809342265.12203530765.21403530763.37208609023.37208609027.2823461467.3743461465.80477300485.8047730048

    5.12203530765.80477300484.61933666114.61933666118.847958337810.05078033727.61809342267.61809342265.12203530765.80477300483.37208609023.37208609027.2823461468.23745991945.80477300485.8047730048

    6.77964749946.77964749948.84795833788.93995833785.1854065085.1854065085.1854065085.21403530765.21403530765.21403530767.2823461467.3743461463.37208609023.37208609025.12203530765.2140353076

    6.77964749946.77964749948.847958337810.05078033725.1854065085.1854065085.1854065085.80477300485.21403530765.21403530767.2823461468.23745991943.37208609023.37208609025.12203530765.8047730048

    8.84795833788.93995833787.61809342267.61809342265.1854065085.21403530765.1854065085.1854065087.2823461467.3743461465.80477300485.80477300485.12203530765.21403530763.37208609023.3720860902

    8.847958337810.05078033727.61809342267.61809342265.1854065085.80477300485.1854065085.1854065087.2823461468.23745991945.80477300485.80477300485.12203530765.80477300483.37208609023.3720860902

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    inputA

    delay (ns)

    inputB

    delays

    3.04631083843.04631083845.12203530765.12203530765.21403530765.21403530767.2823461467.2823461464.61933666114.61933666115.12203530765.12203530766.77964749946.77964749948.84795833788.8479583378

    3.05372446933.37208609025.21403530765.80477300485.21403530765.21403530767.3743461468.23745991944.61933666114.61933666115.21403530765.80477300486.77964749946.77964749948.939958337810.0507803372

    5.12203530765.12203530763.37208609023.37208609027.2823461467.2823461465.80477300485.80477300485.12203530765.12203530764.61933666114.61933666118.84795833788.84795833787.61809342267.6180934226

    5.21403530765.80477300483.37208609023.37208609027.3743461468.23745991945.80477300485.80477300485.21403530765.80477300484.61933666114.61933666118.939958337810.05078033727.61809342267.6180934226

    5.21403530765.21403530767.2823461467.2823461463.37208609023.37208609025.12203530765.12203530766.77964749946.77964749948.84795833788.84795833785.1854065085.1854065085.1854065085.185406508

    5.21403530765.21403530767.3743461468.23745991943.37208609023.37208609025.21403530765.80477300486.77964749946.77964749948.939958337810.05078033725.1854065085.1854065085.21403530765.8047730048

    7.2823461467.2823461465.80477300485.80477300485.12203530765.12203530763.37208609023.37208609028.84795833788.84795833787.61809342267.61809342265.1854065085.1854065085.1854065085.185406508

    7.3743461468.23745991945.80477300485.80477300485.21403530765.80477300483.37208609023.37208609028.939958337810.05078033727.61809342267.61809342265.21403530765.80477300485.1854065085.185406508

    4.61933666114.61933666115.12203530765.12203530766.77964749946.77964749948.84795833788.84795833783.04631083843.04631083845.12203530765.12203530765.21403530765.21403530767.2823461467.282346146

    4.61933666114.61933666115.21403530765.80477300486.77964749946.77964749948.939958337810.05078033723.05372446933.37208609025.21403530765.80477300485.21403530765.21403530767.3743461468.2374599194

    5.12203530765.12203530764.61933666114.61933666118.84795833788.84795833787.61809342267.61809342265.12203530765.12203530763.37208609023.37208609027.2823461467.2823461465.80477300485.8047730048

    5.21403530765.80477300484.61933666114.61933666118.939958337810.05078033727.61809342267.61809342265.21403530765.80477300483.37208609023.37208609027.3743461468.23745991945.80477300485.8047730048

    6.77964749946.77964749948.84795833788.84795833785.1854065085.1854065085.1854065085.1854065085.21403530765.21403530767.2823461467.2823461463.37208609023.37208609025.12203530765.1220353076

    6.77964749946.77964749948.939958337810.05078033725.1854065085.1854065085.21403530765.80477300485.21403530765.21403530767.3743461468.23745991943.37208609023.37208609025.21403530765.8047730048

    8.84795833788.84795833787.61809342267.61809342265.1854065085.1854065085.1854065085.1854065087.2823461467.2823461465.80477300485.80477300485.12203530765.12203530763.37208609023.3720860902

    8.939958337810.05078033727.61809342267.61809342265.21403530765.80477300485.1854065085.1854065087.3743461468.23745991945.80477300485.80477300485.21403530765.80477300483.37208609023.3720860902

    MAXMINAVG

    10.05078033723.04631083846.0356479344

    -----------------------------

    3.05372446933.37208609025.21403530765.80477300485.21403530765.21403530767.3743461468.23745991944.61933666114.61933666115.21403530765.80477300486.77964749946.77964749948.939958337810.0507803372

    3.24708609023.24708609025.67977300485.67977300485.21403530765.21403530768.11245991948.11245991944.61933666114.61933666115.67977300485.67977300486.77964749946.77964749949.92578033729.9257803372

    5.21403530765.80477300483.37208609023.37208609027.3743461468.23745991945.80477300485.80477300485.21403530765.80477300484.61933666114.61933666118.939958337810.05078033727.61809342267.6180934226

    5.67977300485.67977300483.37208609023.37208609028.11245991948.11245991945.80477300485.80477300485.67977300485.67977300484.61933666114.61933666119.92578033729.92578033727.61809342267.6180934226

    5.21403530765.21403530767.3743461468.23745991943.37208609023.37208609025.21403530765.80477300486.77964749946.77964749948.939958337810.05078033725.1854065085.1854065085.21403530765.8047730048

    5.21403530765.21403530768.11245991948.11245991943.37208609023.37208609025.67977300485.67977300486.77964749946.77964749949.92578033729.92578033725.1854065085.1854065085.67977300485.6797730048

    7.3743461468.23745991945.80477300485.80477300485.21403530765.80477300483.37208609023.37208609028.939958337810.05078033727.61809342267.61809342265.21403530765.80477300485.1854065085.185406508

    8.11245991948.11245991945.80477300485.80477300485.67977300485.67977300483.37208609023.37208609029.92578033729.92578033727.61809342267.61809342265.67977300485.67977300485.1854065085.185406508

    4.61933666114.61933666115.21403530765.80477300486.77964749946.77964749948.939958337810.05078033723.05372446933.37208609025.21403530765.80477300485.21403530765.21403530767.3743461468.2374599194

    4.61933666114.61933666115.67977300485.67977300486.77964749946.77964749949.92578033729.92578033723.24708609023.24708609025.67977300485.67977300485.21403530765.21403530768.11245991948.1124599194

    5.21403530765.80477300484.61933666114.61933666118.939958337810.05078033727.61809342267.61809342265.21403530765.80477300483.37208609023.37208609027.3743461468.23745991945.80477300485.8047730048

    5.67977300485.67977300484.61933666114.61933666119.92578033729.92578033727.61809342267.61809342265.67977300485.67977300483.37208609023.37208609028.11245991948.11245991945.80477300485.8047730048

    6.77964749946.77964749948.939958337810.05078033725.1854065085.1854065085.21403530765.80477300485.21403530765.21403530767.3743461468.23745991943.37208609023.37208609025.21403530765.8047730048

    6.77964749946.77964749949.92578033729.92578033725.1854065085.1854065085.67977300485.67977300485.21403530765.21403530768.11245991948.11245991943.37208609023.37208609025.67977300485.6797730048

    8.939958337810.05078033727.61809342267.61809342265.21403530765.80477300485.1854065085.1854065087.3743461468.23745991945.80477300485.80477300485.21403530765.80477300483.37208609023.3720860902

    9.92578033729.92578033727.61809342267.61809342265.67977300485.67977300485.1854065085.1854065088.11245991948.11245991945.80477300485.80477300485.67977300485.67977300483.37208609023.3720860902

    MAXMINAVG

    10.05078033723.05372446936.2257678956

    delays

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    A

    delay

    B

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0000000000000000

    0

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    A

    delay

    B

    www.xilinx.com

    Future WorkDefect ToleranceWork around a defect on an FPGANo timing analysis because of delay insensitiveCan place modules anywhere and they workOther methodologiesAdd support in JRoute for isochronic forks symmetric and asymmetricExamine FPGAs targeted to asynchronous design

    Footer to be in lower left corner