270 likes | 282 Views
Biscotti: a Framework for Token-Flow based Asynchronous Systems. Charlie Brej. Overview. The tool problem Proposed system Biscotti components Their current state Example uses Conclusions And future work. The Tool Problem. Wagging Flow Problem. Verilog Read. TLF Read. Netlist
E N D
Biscotti: a Framework forToken-Flow basedAsynchronous Systems Charlie Brej
Overview • The tool problem • Proposed system • Biscotti components • Their current state • Example uses • Conclusions • And future work
Wagging Flow Problem Verilog Read TLF Read Netlist Flatten Timing Library Async Trans. Wag Timing Extract Simulation Performance Async Trans. Desynchronise Netlist Flatten Verilog Write
Commercial Tools • Unsuitable • Critical path extraction • Broken • Timing extraction of cyclic designs • Inflexible • Limited simulation trace extraction • Unimplemented • DI logic synthesis
Biscotti Aims • Complete framework for token flow systems • Aims to recreate all tools required to make a design • Modular • Set of libraries • Open Source • GPLv3 • Expandable and Customisable • Trivial to add or replace any part with own version
Parts Verilog TLF Netlist Operations Async Transformations Simulation Timing Wagging Tech-map Verilog SDF
Input primitive trinary_C(Z,A,B); output Z; input A, B; reg Z; table // A B : Z : Z’ 0 0 : ? : 0; 1 1 : ? : 1; 2 2 : ? : 2; ? ? : ? : -; endtable endprimitive • Verilog • Modules, Gates • UDPs with MVL extensions • No behavioral • TLF • Cell characterisations • Splines • In: Capacitance and Slew • Out: Delay and Slew
Output • Verilog • Patchy • Generates verilog executable with NC-Verilog • SDF • Timing extraction files used by external simulators
Processing 1 • Netlist Operations • Internal netlist representation • Allows constructing, altering, flattening... • The basis of all other tools • Timing • Cell timing characteristics (TLF) • Circuit timing extraction • Characterisation of constructed modules
Processing 2 • Pipeline Synthesis • Takes a directed flow graph (DFG) style circuit • Constructs latches and acknowledge trees • Can expand to early output, DIMS or MVL • Creates RAM wrappers and wagging fork/join blocks
C Pipeline Synthesis Async Latch Async Latch Logic Async Logic Async Latch Async Latch Async Latch
Processing 2 • Pipeline Synthesis • Takes a directed flow graph (DFG) style circuit • Constructs latches and acknowledge trees • Can expand to early output, DIMS or MVL • Creates RAM wrappers and wagging fork/join blocks
Processing 3 • Wagging • Duplicates circuit and reconnects latches to form a ring • Inserts abstract fork/join blocks • Simulation • Fast simulator • Slowest trace extraction • MVL capable • Allows simulation at an abstract level
Processing 4 • Tech mapping • Dumb generation of large primitives (balanced trees) • Table based re-synthesis of C-element blocks • Logic blocks in the future • Slowest trace based gate replacement (drive strength)
Timing extraction Verilog Read TLF Read Netlist Flatten Timing Extract Verilog Write SDF Write
Extract Slowest Path Verilog Read TLF Read Netlist Flatten Timing Extract Simulation Slowest Trace Slowest Path Write
Drive Strength Optimisation Verilog Read TLF Read Verilog Write Netlist Flatten Timing Extract Simulation Slowest Trace Netlist Replace Element Tech-map Find Better Cell
Large C-element generation Verilog Read TLF Read Async Trans C-element Gen Timing Extract Tech-map Find Better Cell Timing Generate Splines Verilog Write TLF Write
Current state • Pre-alpha • Pretty unusable • Used to generate RedStar • Parts implemented when needed • About 6 months from public beta • Currently available on request
Future Work • Implement RedStar using system • Using as few commercial tools as possible • Example design • Complete system back-end components • Implement front-end • Scripting of operations • GUI • Benchmark suite
Biscotti Conclusions • Allows implementation of asynchronous designs • Without relying on commercial tools • Tools suited to asynchronous designs • Easy expansion • Allows rapid evaluation of researched techniques • Fairly compare to existing methods • Useful analysis techniques • Still incomplete