Home
Coriolis User's Guide - SoC
Contents
1. Mode DPI approx Intended Usage Cell Mode 150 For single Ce11 printing or very small designs Patterns will be bigger and more readable Design Mode 300 For designs mostly commposed of wires and cells out lines zx Note E The paf file size Be aware that the generated PDF files are indeed only pixmaps So they can grew very large if you select paper format above A2 or similar Saving into an image is subject to the same remarks as for PDF Memento of Shortcuts in Graphic Mode The main application binary is cgt Category Keys Action Moves Shift the view in the according direction Up Down Left Right Fit f Fit to the Cell abutment box Refresh CTRL Triggers a complete display redraw Goto G apperture is the minimum side of the area displayed around the point to go to It s an alternative way of set ting the zoom level Zoom zm Respectively zoom by a 2 factor and unzoom by a 2 factor You can perform a zoom to an area Define the zoom area by holding down the left mouse button while moving ES the mouse Area Zoom You can select displayed objects under an area Define Selection the selection area by holding down the right mouse button ES while moving the mouse Area Selection You can toggle the selection of one object under the ES mouse position by pressing CTRL and pressing d
2. TypeTab Mauka mauka Mauka part TypeOption mauka standardAnnealing Standart Annealing 0 TypeOption mauka ignorePins Ignore Pins 20 TypeOption mauka plotBins Plot Bins 0 UPMC LIP6 SOC 10 Documentation SoC March 2014 TypeOption mauka insertFeeds Insert Feeds 0 TypeOption mauka searchRatio Search Ratio 14129 TypeOption mauka annealingNetMult Annealing Net Mult 1 TypeOption mauka annealingBinMult Annealing Bin Mult 1 TypeOption mauka annealingRowMult Annealing Row Mult 1 TypeRule Taxonomy of the file e t must contains at least the two tables e parametersTable defines amp initialise the configuration variables e layoutTables defines how the various parameters will be displayed in the configu ration window The Settings Tab e The parametersTable is a tuple list of tuples Each entry in the list describe a con figuration parameter In it s simplest form it s a quadruplet TypeOption paramId ParameterType DefaultValue with 1 TypeOption tells that this tuple describe a parameter 2 paramld the identifier of the parameter Identifiers are defined by the tools The list of parameters is detailed in each tool section 3 ParameterType the kind of parameter Could be e TypeBool boolean e TypeInt signed integer e TypeEnumerate enumerated type nee
3. Look Filter Layers amp Gos Netlist Selection Inspector Settings Hierarchy Settings Hierarchy Start Level 0 Hierarchy Stop Level 99 v Process Master Cells Process Terminal Cells y Process Components Rubbers Centric Barycentric Steiner Layout Mode Symbolic lambda Real foundry grid nanometer micrometer The Layers amp Go Tab Control the individual display of all layers and Gos e Layers correspond to a true physical layer From a HURRICANE point of view they are all the BasicLayers could be matched to GDSII e Gos stands from Graphical Objects they are drawings that have no physical existence but are added by the various tools to display extra information One good exemple is the density map of the detailed router to easily locate congested areas For each layer Go there are two check boxes e The normal one triggers the display e The red outlined allows objects of that layer to be selectable or not UPMC LIP6 SOC 21 Documentation SoC March 2014 Look Filter Layers amp Gos Netlist Selection Inspector Settings e Viewer Active Layers MIM6 Extensions v fallback Es Y nWell S v topmim6 rubber Y pWell y botmim6 Y phantom S y nImplant y padopen v boundaries Ss Y pImplant y alucap v marker vi active Blockages grid Ed v poly S v blockagel Y spot Routing Layers E y blockage2 v ghost vi metall v blockage3 y text ruler E vi metal2 E blockage4 v t
4. UPMC LIP6 SOC 2 Documentation SoC March 2014 Release Notes Release 1 0 1475 This is the first preliminary release of the CORIOLIS 2 framework This release mainly ships the global router KNIK and the detailed router KITE Together they aim to replace the ALLIANCE NERO router Unlike NERO KiTE is based on an innovating routing modeling and ad hoc algorithm Although it is released under GPL license the source code will be avalaible later Contents of this release 1 A graphical user interface viewer only 2 The Knik global router 3 The Kite detailed router Supported input output formats e ALLIANCE vst netlist amp ap physical formats e Even if there are some references to the CADENCE LEFDEF format its support is not included because it depends on a library only available to Si2 affiliated members Release 4 0 1963 Release 1963 is alpha All the tools from CORIOLIS 1 have been ported into this release Contents of this release 1 The STRATUS netlist capture language GENLIB replacement 2 The MAUKA placer still contains bugs A graphical user interface viewer only The KNIK global router The KITE detailed router oO uU A W Partially implemented python support for configuration files alternative to XML 7 A documentation imcomplete obsoleted in HURRICANE s case Release 1 0 2049 Release 2049 is Alpha Changes of this release 1 The HURRICANE documentation is now accurate
5. Kite Parameters kite eventsLimit Typelnt 4000002 The maximum number of segment displacements this is a last ditch safety against infinite loop It s perhaps a little too low for big designs kite ripupCost Typelnt 3 Differential introduced between two ripup cost to avoid a loop between two ripped up segments kite localRipupLimit Typelnt 16 kite strapRipupLimit Maximum number of ripup for strap segments Typelnt 9 Maximum number of ripup for local segments continued on next page UPMC LIP6 SOC 15 Documentation SoC March 2014 Parameter Identifier Type Default Typelnt 5 kite globalRipupLimit Maximum number of ripup for global segments when this limit is reached triggers topologic modification Typelnt 5 kite longGlobalRipupLimit tion Maximum number of ripup for ong global segments when this limit is reached triggers topological modifica Executing Python Scripts in Cgt Python Stratus scripts can be executed either in text or graphical mode Note gt E How Cgt Locates Python Scripts cgt uses the Python import mechanism to load Python scripts So you must give the name of your script whitout py exten tion and it must be reachable through the PYTHONPATH You may uses the dotted module notation A Python Stratus script must contains a function called StratusScript with one optional argu
6. The design into which the routed layout will be saved It is strongly recommanded to choose a different name from the source unrouted design events limit lt count gt The maximal number of events after which the router will stops This is mainly a failsafe against looping The limit is sets to 4 millions of iteration which should suf fice to any design of 100K gates For bigger designs you may wants to increase this limit stratus script lt module gt Run the Python Stratus script module See Python Scripts in Cgt Some Examples e Run both global and detailed router then save the routed design gt cgt v t G R cell design save design design_kite e Load a previous global solution run the detailed router then save the routed design gt cgt v t load global R cell design save design design_kite e Run the global router then save the global routing solution gt cgt v t G save global cell design Miscellaneous Settings Parameter Identifier Type Default Verbosity Log Parameters TypeBool False misc info Enable display of info level message cinfo stream TypeBool False misc bug sages can be a little scarry misc logMode False TypeBool Enable display of bug level message cbug stream mes suppress any escaped sequences If enabled assume that the output device is not a tty and misc verboseLeveli Pe
7. Documentation for the Cell viewer and CRLCORE has been added 2 More extensive Python support for all the components of CORIOLIS 3 Configuration is now completly migrated under Python XML loaders can still be useds for compatibilty 4 The cgt main has been rewritten in Python UPMC LIP6 SOC 3 Documentation SoC March 2014 Release v2 0 0 1 Migrated the repository from svn to git and release complete sources As a conse quence we drop the distribution packaging support and give public read only access to the repository 2 Deep rewrite of the KATABATIC database and KITE detailed router achieve a speedup factor greater than 20 UPMC LIP6 SOC Documentation SoC March 2014 Installation m Note E As the sources are being released the binary packaging is dropped You still may find older version here http asim lip6 fr pub coriolis 2 0 In a nutshell building source consist in pulling the git repository then running the ccb in staller Main building prerequisites e cmake e g e boost e libxml2 e yacc amp lex e Qt4 LEF DEF optional hMetis optional e doxygen e latex latex2html e python docutils for reStructuredText Fixed Directory Tree In order to simplificate the work of the ccb installer the source build and installation tree is fixed To successfully compile CORIOLIS you must follow it exactly The tree is relative to the home directory of the us
8. eoe s e ok Rom Rx DO qe x RR xU SR Re Rug cR 16 PGES amp SOAPS P Ge me ee E we oe a eee a 16 Memento of Shortcuts in Graphic Mode o e ee 17 Cor Comite linee OPHANS s eos se a a e Mee ee ee gS E 3 de a 18 Miscellaneous SEMINEE ue vor Eom k le we doh RO Y m ORO E ee eR Ee OR eode 19 risa Jj TID cT T TTT 20 ThEEOGSUKTAD usse po eroe com Se WE RB O3 GR REELS EE hok ow dome SHER GR vd 20 Whe HRS Taborda oh a AS Ow Eug 3 9 x SUR XO E Ge UE S x MR Eee Rcs 20 ilt c ccr MC 21 A TE m 24 Ge Pale a ee wk REOR RUE 4 vex QC S area EES Swe Bae des 22 THE Selecon TI ac oso soe a Pe ae eae we RO ee we EA ea wd 23 Jheinspector Tab lt 2 nus eo ara A or mer RA 24 RPS SOU cac AMARE 26 A Simple Example AM2901 o o 27 Documentation SoC March 2014 Credits amp License HURRICANE cines tios darias R my ESCASSUT amp Christian MAUKA Ce Christophe ALEXANDRE STRATUS os imepe hid es vend RUE a Sophie BELLOEIL KNIK 5sercerkecrkeda err REFESEPIFRX RE ena EE Damien DUPUIS KITE UNICORN arpa Ness dota tars Jean Paul CHAPUT The HURRICANE data base is copyright BULL 2000 2014 and is released under the terms of the LGPL license All other tools are copyright UPMC 2008 2014 and released under the GPL license The KNIK router makes use of the FLUTE software which is copyright Chris C N CHU from the lowa State University http home eng iastate edu cnchu
9. will be added to the search path according to the second parameter e Environment Append append to the search path e Environment Prepend insert in head of the search path e Environment Replace look for a library of the same name and replace it whithout changing the search path order If no library of that name already exists it is ap pended A library is identified by it s name this name is the last component of the path name For instance soc alliance sxlib will be named sxlib Implementing the ALLIANCE specification when looking for a Cell name the system will browse sequentially trought the library list and returns the first Ce whose name match e For POWER GROUND CLOCK and BLOCKAGE net names a regular expression GNU regexp is expected e The helpers sysConfDir variable is supplied by the helpers it is the directory in which the system wide configuration files are locateds For a standard installation it would be soc coriolis2 e Trick and naming convention about SYMBOLIC_TECHNOLOGY REAL_TECHNOLOGY and DISPLAY In the previous releases thoses files where to read by XML parsers and still do if you trig gers the XML compatibility mode But now they have Python conterparts In the configu ration files you still have to name them as xML files the Python file name will be deduced from this one with thoses two translation rules UPMC LIP6 SOC 9 Documentation SoC March 2014 1 In the filename al
10. 1 The Selection Tab The Selection tab list all the components currently selecteds They can be filtered thanks to the filter pattern Used in conjunction with the Net ist Sync Selection you will all see all the components part of net UPMC LIP6 SOC 23 Documentation SoC March 2014 In this list you can toggle individually the selection of component by pressing the t key When unselected in this way a component is not removed from the the selection list but instead displayed in red italic To see where a component is you may make it blink by repeatedly press the t key Look Filter Layers amp Gos Netlist Selection Inspector Settings Cumulative Selection y Show Selection Clear Path Entity lt RoutingPad auxsc35 2151 01 lt Occurrence Cell addaccu gt Contact auxsc35 gmetalh 1751 251 5lx5l Vertical auxsc35 METALS 2101 151 21601 661 2 Contact auxsc35 VIA23 2101 151 1lx11 gt Horizontal auxsc35 METAL2 2101 601 2101 601 21 Plug auxsc35 sum 3 il lt RoutingPad auxsc35 1601 01 Occurrence Cell addaccu gt Contact auxsc35 VIA23 2101 601 11x11 gt Contact auxsc35 VIA12 2151 151 llxll gt Contact auxsc35 VIA12 2101 601 1lxll gt Horizontal auxsc35 METAL2 2101 151 2151 151 2l Plug auxsc35 auxsc50 il gt lt RoutingPad auxsc35 2101 01 Occurrence Cell addaccu Contact auxsc35 gmetalv 212 51 751 2 5l1x5l Horizontal auxsc35 METAL2 1601
11. 151 2101 151 2l Contact auxsc35 VIA12 1601 151 11x11 gt Plug auxsc35 auxsc35 q Contact auxsc35 gcontact 212 51 251 2 51x51 gt Net auxsc35 gt Filter pattern The Inspector Tab This tab is very useful but mostly for CORIOLIS developpers It allows to browse through the live DataBase The nspector provide three entry points e DataBase Starts from the whole HURRICANE DataBase e Cell Inspect the currently loaded Cell e Selection Inspect the object currently highlited in the Selection tab Once an entry point has been activated you may recursively expore all it s fields using the right left arrows Note pr A Do not put your fingers in the socket when inspecting anything do not modify the DataBase If the any object under inspection is deleted you will crash the application Note E Implementation Detail the inspector support is done with Slot Record and getString UPMC LIP6 SOC 24 Documentation SoC March 2014 Look Filter Layers amp Gos Netlist Selection Inspector Settings Selection 0 lt TopLevelSlot gt Object Attribute 3 Value Entity Vertical auxsc35 METAL3 2101 151 2101 601 21 SharedPath NULL Hurricane SharedPath Quark Quark lt Occurrence Cell addaccu Vertical auxsc35 META Filter pattern Look Filter Layers amp Gos Netlist Selection Inspector Settings Cell addaccu 0 lt TopLevelSlot gt Object Attribute 2
12. CTRL Q quit the application closing all windows Hierarch CTRL Down Go one hierarchy level down That is if there is an in y stance under the cursor position load it s model Cell in place of the current one CTRL Up Go one hierarchy level up if we have entered the cur rent model through CTRL Down reload the previ ous model the one in which this model is instanciated Cgt Command Line Options Appart from the obvious text options all can be used for text and graphical mode Arguments Meaning t text Instruct cgt to run in text mode L log mode Disable the uses of ANSI escape sequence on the tty Useful when the output is redirected to a file c cell cell lt cell gt The name of the design to load without leading path or extention g load global Reload a global routing solution from disk The file con taining the solution must be named lt cell gt kgr save global Save the global routing solution into a file named lt de sign gt kgr e lt ratio gt edge lt ratio gt Change the edge capacity for the global router be tween o and 1 KNIK G global route Run the global router KNIK R detailed route Run the detailed router KITE continued on next page UPMC LIP6 SOC Documentation SoC March 2014 Arguments Meaning S save design lt routed gt
13. Coriolis User s Guide Contents Credits R License ui ada a a E a 2 Release NOTES ic a AA Wd RUN L eR ER S 3 Release VOWS ou og E V Ros v XU xU CROSS SORGE CUR OE NOx potes A 3 Release 94909 2 452425 33 ox o o KT E pow XO Roe VOY AA CY 3 Releassq02040 i v qe doy yoke wow wo Ge y VOR p WO we RO Bw we a 3 Release uA D sonus orden e om Rege mox REESE Ebo v Xd UR E e OY Ce ROS e eee e d 4 ucl M DP PTT 5 Fixed Directong TEE v uou esso coy m m domo hy eo REG o REOS wv Gy EO 5 Ka 45 00 IPC a TT 6 Packaging CONOUS o rosa kae moe RE e ov e RAKED ERR OEE Ee Y y dod 6 Hooking Up into SINAMEE uos son poe mmm RR ER ERE EU ee ERLE EUR Sees ges 6 Environment Heper e s e e DD EDIT 7 Documentations lt e sso ses crasas RO a yox 99 S 8 Coriolis Configuration amp Initialisation ele 8 caomigursquor Helper s coe oem moo eee wee Oe PE Re See RO x E 3o x 9 Aem e os 8 Alliance Helps e uiu uox sos eee exo e moe eR we ee Pp eee a eee 8 Tools Configuration Helpers ss s se Rc y RR E RE hom em 10 CGT The Graphical Interface eee 11 Viewer amp Togls s o c eoe oom eoe a ae 13 Sus INSI ECARTS o ote E reet A REI Yee aw 13 The Hurricane Data Base e hs 13 MaUka Pla t r eoa coa osa s cn E oom Y o9 Y S YR E YS 14 Kk Glebal ROUES uuu y om Go OO go yov yo omo ve o SUY wo P E Wwe Hes 14 Kite Detailed Router has 14 Kite Configuration Parameters users Ro a aa 15 Execute PANOM SOPIN GBE
14. PMC LIP6 SOC 8 Documentation SoC March 2014 cellsTop usr share alliance cells allianceConfig C SYMBOLIC_TECHNOLOGY helpers sysConfDir technology symbolic xml REAL TECHNOLOGY helpers sysConfDir technology cmos130 s2r xml DISPLAY helpers sysConfDir display xml gt CATALOG gt CATAL gt WORKING_LIBRARY y 54 SYSTEM LIBRARY cellsTopt sxlib Environment Append cellsTop t dp sxlib Environment Append cellsTopt ramlib Environment Append cellsTopt romlib Environment Append cellsTopt rflib Environment Append cellsTopt rf2lib Environment Append cellsTopt pxlib Environment Append C SCALE_X 100 C IN LO vst IN PH ap s 0UT LO vst C 0UT PH ap POWER vdd GROUND vss C CLOCK 7ck BLOCKAGE blockageNet The example above shows the system configuration file with all the available settings Some important remarks about thoses settings e In it s configuration file the user do not need to redefine all the settings just the one he wants to change In most of the cases the SYSTEM LIBRARY the WORKING LIBRARY and the special net names at this point there is not much alternatives for the others settings e SYSTEM LIBRARY setting Setting up the library search path Each library entry in the tuple
15. Value _propertySet std set lt Element gt 3 Library lt Library working gt Name addaccu Instances IntrusiveMap 71 gt QuadTree lt QuadTree 71 gt SlaveInstances InstrusiveSet empty Nets IntrusiveMap 52 Pins IntrusiveMap 1 Slices IntrusiveMap 10 Markers InstrusiveSet empty SlaveEntityMap const std multimap Element 0 AbutmentBox Box 01 01 2251 4801 BoundingBox Box 0 51 11 225 51 4011 isTerminal False isFlattenLeaf False Filter pattern UPMC LIP6 SOC 25 Documentation SoC March 2014 7 Look Filter Layers amp Gos Netlist Selection Inspector Settings Disabled Cell addaccu gt Selection 0 lt TopLevelSlot gt Object Attribute Value propertySet std set lt Element gt 1 technology Technology Alliance _rootLibrary Library RootLibrary gt DbU precision 2 DbU resolution 1 Filter pattern The Settings Tab Here comes the description of the Settings tab Controller vo AX Look Filter Layers amp Gos Netlist Selection Inspector Settings Misc Mauka Kite Stratusl Miscellaneous Verbose v Catch Core Dumps Very Verbose Trace Level 1000 Show Info iv Output is a TTY Print Snapshot Parameters Paper Size A4 Printer Snapshot Mode Cell Mode Apply UPMC LIP6 SOC 26 Documentation SoC March 2014 A Simple Example AM2901 To illustrate the capabilities of CORIOLIS tools and PYTHON sc
16. ayers M2 through M5 e Do not allow take into account pre routed wires on signals other than POWER or GROUND Note po A Slow Layer Assignment Most of the time the layer assignment stage is fast less than a dozen seconds but in some instances it can take more than a dozen minutes This is a known bug and will be corrected in later releases After each run KITE displays a set of completion ratios which must all be equal to 100 if the detailed routing has been successfull In the event of a failure on a saturated design you may decrease the edge saturation ratio argument edge to balance more evenly the design saturation That is the maximum saturation decrease at the price of a wider saturated area and increased wirelength This is the saturation of the global router KNIK and you may in crease decrease by steps of 5 which represent one track The maximum capacity of the SxLiB gauge is 10 tracks in two layers that makes 20 tracks by KNIK edge UPMC LIP6 SOC 14 Documentation SoC March 2014 Routing a design is done in three ordered steps 1 Global routing P amp R Step by Step Global Route 2 Detailed routing P amp R Step by Step gt Detailed Route 3 Finalize routing P amp R Step by Step gt Finalize Route After the detailed routing step the KITE data structure is still active The wir
17. cos pi First level of verbosity disable level 2 TypeBool False misc verboseLevel2 Second level of verbosity Development Debug Parameters misc traceLevel Typelnt 0 misc catchCore False TypeBool Display trace information below that level ltrace stream this flag to True UPMC LIP6 SOC 19 By default cgt do not dump core To generate one set Documentation SoC March 2014 The Controller The Controller window is composed of seven tabs 43 2 7 The Look Tab to select the display style The Filter Tab the hierarchical levels to be displayed the look of rubbers and the dimension units The Layers amp Go Tab to selectively hide display layers The Netlist Tab to browse through the netlist Works in association with the Selection tab The Selection Tab allow to view all the currently selected elements The Inspector Tab browse through either the DataBase the Cell or the current selec tion The Settings Tab access all the tool s configuration settings The Look Tab You can select how the layout will be displayed There is a special one Printer Coriolis specifi cally designed for Printing amp Snapshots You should select it prior to calling the print or snapshot dialog boxes Look Filter Layers amp Gos Netlist Display Styles Alliance Coriolis black Alliance Coriolis white Alliance Classic black Alliance Classic wh
18. ds extra entry e TypePercentage percentage expressed between o and 100 e TypeDouble float e TypeString character string 4 DefaultValue the default value for that parameter CGT The Graphical Interface The CORIOLIS graphical interface is split up into two windows e The Viewer with the following features e Basic load save capabilities e Display the current working cell Could be empty if the design is not yet placed e Execute Stratus Scripts e Menu to run the tools placement routage Features are detailed in Viewer amp Tools UPMC LIP6 SOC 11 Documentation SoC March 2014 ISS y Ds 0 mr PP rr A o V i j i i f E N m X 21 00 Y 22 51 e The Controller which allows e Tweak what is displayer by the Viewer Through the Look Filter and Layers amp Gos tabs e Browse the netlist with eponym tab e Show the list of selected objects if any with selection e Walk through the Database the Cell or the Selection with nspector This is an ad vanced feature reserved for experimented users e The tab Settings which give access to all the settings They are closely related to Con figuration amp Initialisation UPMC LIP6 SOC 12 Documentation SoC March 2014 Look Filter Layers amp Gos Netlist Selection Inspector Settings Y Viewer Active Layers MIM6 Extensions v fallback Y nWell L v topmim6
19. equirements such as shared functions between modules or C PYTHON secure bi directional object deletion Coriolis Configuration amp Initialisation All configuration amp initialization files are Python scripts despite their conf extention From a syntactic point of view there is no difference between the system wide configuration files and the user s configuration they may use the same Python helpers The initialization process is done by executing in order the following file s Order Meaning File 1 The system initialization etc coriolis2 lt TOOL gt conf 2 The user s global initialization HOME coriolis2 conf 3 The user s local initialization lt CWD gt coriolis2 conf Note x The loading policy is not hard coded It is implemented at Python level in za etc coriolis2 coriolisInit py and thus may be easyly be amended to whatever site policy The truly mandatory requirement is the existence of coriolisInit py which must contain a coriolisConfigure function with no argument Configuration Helpers To ease the writing of configuration files a set of small helpers is available They allow to setup the configuration parameters through simple assembly of tuples The helpers are installed un der the directory lt install gt etc coriolis2 Where install is the root of the installation ALLIANCE Helper The configuration file must provide a allianceConfig tuple of the form U
20. er building it noted or HOME Only the source directory needs to be manually created by the user all others will be automatically created either by ccb or the build system Sources Sources root coriolis 2 x src under git coriolis 2 x src coriolis Architecture Dependant Build Linux SL 6 32 bits coriolis 2 x Linux slsoc6x Release Shared build lt tool gt Linux SL 6 64 bits coriolis 2 x Linux slsoc6x_64 Release Shared build lt tool gt FreeBSD 8 32 bits coriolis 2 x FreeBSD 8x i386 Release Shared build lt tool gt FreeBSD 8 64 bits coriolis 2 x FreeBSD 8x amd64 Release Shared build lt tool gt Architecture Dependant Install Linux SL 6 32 bits coriolis 2 x Linux slsoc6x Release Shared install UPMC LIP6 SOC Documentation SoC March 2014 FHS Compliant Structure under Install Binaries install bin Libraries Python install lib Include by tool install include coriolis2 lt project gt lt tool gt Configuration files install etc coriolis2 Doc by tool install share doc coriolis2 en html lt tool gt Note EN Alternate build types the Release Shared means an optimized build with shared A libraries But there are also available Static instead of Shared and Debug instead of Release and any combination of them Static do not work because I don t know yet to mix statically linked binaries and Python module
21. etween pure netlist and completly placed and routed design Although the memory representation of the views has deeply changed we still use the ALLIANCE files format but they now really repre sent views of the same object The point is that one must be very careful about view coherency when going to and from CORIOLIS As for the first release CORIOLIS can be used only for two purposes e Routing a design in that case the netlist view and the layout view must be present and layout view must contain a placement Both views must have the same name When saving the routed design it is advised to change the design name otherwise the original unrouted placement in the ayout view will be overwritten e Viewing a design the netlist view must be present if a layout view is present it still must have the same name but it can be in any state UPMC LIP6 SOC 13 Documentation SoC March 2014 Mauka Placer MAUKA was originally designed to be a recursive quadri partionner Unfortunatly it is was based on the hMETIS library not METIS which is no longer maintained only an old binary 32 bits version is available So now it is only working in simulated annealing with performances identical to the ALLIANCE placer ocp In other words it is slow Note pr za Instance Duplication Problem a same logical instance cannot have two different placements So either you manually make a clone of it or you supply a placement for it This is c
22. ext cell v metal3 B blockage5 text instance E metal4 E3 y blockage6 text component E v metals Knik amp Kite 7 text reference vi metal6 B SPL1 v undef VIA holes B v AutoLayer ia cuta y gmetalh m cutl vy gmetalv cut2 v gut Ri cut3 a cut4 mi cuts The Netlist Tab The Netlist tab shows the list of nets By default the tab is not synched with the displayed Cell To see the nets you must check the Sync Netlist checkbox You can narrow the set of displayed nets by using the filter pattern supports regular expressions An very useful feature is to enable the Sync Selection which will automatically select all the components of the selected net s You can select multiple nets In the figure the net auxsc35 is selected and is highlited in the Viewer UPMC LIP6 SOC 22 Documentation SoC March 2014 Look Filter Layers amp Gos Netlist Selection Inspector Settings v Sync Netlist Sync Selection Net y Plugs a 0 a 1 a 2 a 3 auxregl auxreg2 auxreg3 auxreg4 auxscl auxscll auxscl6 auxsci8 auxsc20 auxsc21 auxsc22 auxsc24 we d de lu ly N 0 4 amp U N N i oH he ly auxsc35 auxsc36 auxsc37 auxsc38 auxsc39 auxsc40 auxsc41 auxsc43 auxsc44 aver AR 9 Mm toda Mm ln y mn hy Filter pattern X 231 51 Y 79 5
23. ing is thus repre sented in a way that allows KITE to manage it but which is not completly finished The finalize step performs the removal of the KITE data structure and finish cleanup the wiring so that its connex in the sense of HURRICANE Do not try to save your design before that step you would get gaps in it You may visualize the density saturation of either KNIK on edges or KITE on GCells until the routing is finalized Special layers appears to that effect in the The Layers amp Go Tab Kite Configuration Parameters As KNIK is only called through KITE it s parameters also have the kite prefix The KarABATIC parameters control the layer assignment step Parameter Identifier Type Default Katabatic Parameters katabatic globalLengthThreshold Typelnt 1450 This parameter is used by a layer assignment method which is no longer used did not give good results katabatic saturateRatio TypePercentage 80 If M x density is above this ratio move up feedthru global segments up from depth x to x 2 katabatic saturateRp Typelnt 8 If a GCell contains more terminals RoutingPad than that number force a move up of the connecting segments to those in excess Knik Parameters kite edgeCapacity TypePercentage 85 Adjust the maximum capacity of the global router s edges The GCells would be too saturated for the detailed router if the edge capacity is left to 10096
24. ite Ispd Global Route Layout Design Layout Design White Printer Coriolis The Filter Tab The filter tab let you select what hierarchical levels of your design will be displayed Hierarchy level are numbered top down the level o correspond to the top level cell the level one to the instances of the top level Cell and so on Inspector Settings Alliance Coriolis Look black background Alliance Coriolis Look white background Alliance Classic Look black background Alliance Classic Look white background ISPD Global Route Look black background Useful for debugging layout black background Useful for debugging layout white background Coriolis Look for Printers UPMC LIP6 SOC 20 Documentation SoC March 2014 There are also check boxes to enable disable the processing of Terminal Cell Master Cells and Compnents The processing of Terminal Cell hierarchy leaf cells is disabled by default when you load a hierarchical design and enabled when you load a single Cell You can choose what kind of form to give to the rubbers and the type of unit used to display coordinates Note What are Rubbers HURRICANE uses Rubbers to materialize physical gaps in net za topology That is if some wires are missing to connect two or more parts of net a rubber will be drawn between them to signal the gap For example after the detailed routing no rubbers should remains They have been made very visibles as big violet lines
25. l dots except for the last the file extention are replaced by underscores 2 The xml extention is substituted by a conf For the symbolic technology it would give soc coriolis2 technology symbolic xml gt soc coriolis2 technology_symbolic conf Atypical user s configuration file would be import os homeDir os getenv HOME allianceConfig WORKING_LIBRARY homeDir worklib CSYSTEM LIBRARY homeDir mylib Environment Append CPOWER vdd C GROUND vss Tools Configuration Helpers All the tools uses the same helper to load their configuration a k a Configuration Helper Cur rently the following configuration system wide configuration files are defined e misc conf commons settings or not belonging specifically to a tool e nimbus conf for the NIMBUS tool e hMetis conf for the HMETIS wrapper e mauka conf for the MAUKA tool e kite conf for the KiTE tool e stratus1 conf for the STRATUS1 tool Here is the contents of mauka conf Mauka parameters parametersTable Cmauka annealingBinMult TypePercentage 5 Cmauka annealingNetMult TypePercentage 90 Cmauka annealingRowMult TypePercentage 5 Cmauka ignorePins TypeBool False Cmauka insertFeeds TypeBool True Cmauka plotBins TypeBool True Cmauka searchRatio TypePercentage 50 Cmauka standardAnnealing TypeBool False layoutTable
26. ment the graphical editor into which it may be running will be set to None in text mode Asides for this requirement the python script can contains anything valid in PYTHON so don t hesitate to use any package or extention Any script given on the command line will be run immediatly after the initializations and before any other argument is processed Small example of Python Stratus script from status import def doSomething O Ho return def StratusScript editor None if globals has key editor editor editor if editor setEditor editor doSomething return if __name main__ StratusScript This script could be run directly with Python thanks to the two last lines or through cgt in both text and graphical modes Printing amp Snapshots Printing or saving into a PDF is fairly simple just uses the File gt Print menu or the shortcut to open the dialog box CTRL p The print functionality uses exactly the same rendering mechanism as for the screen beeing almost WYSIWYG Thus to obtain the best results it is advisable to select the Coriolis Printer look in the Controller which uses a white background and much suited for high resolutions 32x32 pixels patterns UPMC LIP6 SOC 16 Documentation SoC March 2014 There is also two mode of printing selectable through the Controller Settings gt Misc gt Printer Snapshot Mode
27. ne by editing the one variable ce11sTop in the ALLIANCE helper see Alliance Helper This variable must point to the directory of the cells libraries In a typical installation this is generally usr share alliance cells UPMC LIP6 SOC 6 Documentation SoC March 2014 Environment Helper To simplify the tedious task of configuring your environment a helper is provided in the bootstrap source directory coriolis 2 x src bootstrap coriolisEnv py Use it like this dummy lepka gt eval coriolis 2 x src bootstrap coriolisEnv py UPMC LIP6 SOC 7 Documentation SoC March 2014 Documentation The general index of the documentation for the various parts of Coriolis are avalaibles here Coriolis Tools Documentation Note v Python Documentation Most of the documentation is related to the C API E and implemetation of the tools However the PYTHON bindings have been cre ated so they mimic as closely as possible the C interface so the documentation applies to both languages with only minor syntactic changes General Software Architecture CoRIOLIS has been build with respect of the classical paradigm that the computational in stensive parts have been written in C and almost everything else in PYTHON To build the PYTHON interface we used two methods e For self contained modules boost python mainly in v1sisapd e For all modules based on HURRICANE we created our own wrappers due to very spe cific r
28. own the right mouse button A popup list of what s under the position shows up into which you can toggle the selec tion state of one item Toggle Selection continued on next page UPMC LIP6 SOC 17 Documentation SoC March 2014 Category Keys Action S Toggle the selection visibility Controller CTRL i Show hide the controller window It s the Swiss Army Knife of the viewer From it you can fine control the display and inspect almost everything in your design Rul rs k ESC One stroke on k enters the ruler mode in which you can draw one ruler You can exit the ruler mode by pressing ESC Once in ruler mode the first click on the left mouse button sets the ruler s starting point and the second click the ruler s end point The second click exits automatically the ruler mode K Clears all the drawn rulers Print CTRL p Currently rather crude It s a direct copy of what s dis played in pixels So the resulting picture will be a little blurred due to anti aliasing mechanism CTRL 0 Opens a new design The design name must be given Open Close without path or extention CTRL w Close the current viewer window but do not quit the application CTRL q
29. ripting a small example derived from the ALLIANCE AM2901 is supplied This example contains only the synthetized netlists and the design py script which perform the whole P amp R of the design Just lanch cgt then execute design py UPMC LIP6 SOC 27
30. rubber Y pWell y botmim6 Y phantom y nImplant y padopen v boundaries v pImplant v alucap v marker active Blockages grid v poly y blockagel Y spot Routing Layers y blockage2 v ghost vi metall y blockage3 y text ruler vi metal2 7 blockage4 v text cell v metal3 El blockage5 text instance y metal4 E y blockage6 text component Y metals Knik amp Kite 7 text reference vi metal6 B SPL1 v undef Cuts VIA holes m v AutoLayer cute y gmetalh Yi cutl y gmetalv vi cut2 v gut cut3 y cut4 cuts Viewer amp Tools STRATUS Netlist Capture STRATUS is the replacement for GENLIB procedural netlist capture language It is designed as a set of PYTHON classes and comes with it s own documentation Stratus Documentation The HuRRICANE Data Base The ALLIANCE flow is based on the MBK data base which has one data structure for each view That is Lofig for the logical view and Phfig for the physical view The place and route tools were responsible for maintaining or not the coherency between views Reflecting this weak coupling between views each one was stored in a separate file with a specific format The logical view is stored in a vst file in VHDL format and the physical in an ap file in an ad hoc format The CORIOLIS flow is based on the HURRICANE data base which has a unified structure for log ical and physical view That data structure is the Cell object The Cell can have any state b
31. s which must be dynamic Building Coriolis The first step is to create the source directory and pull the git repository dummy lepka mkdir p coriolis 2 x src dummyOlepka cd coriolis 2 x src dummyOlepka git clone https www soc lip6 fr git coriolis git dummy lepka cd coriolis Second and final step build amp install dummy lepka src bootstrap ccp py project coriolis make j4 install dummy lepka src bootstrap ccb py project coriolis doc make j1 install We need two steps because the documentation do not support to be generated with a par allel build So we compile amp install in a first step in j4 or whatever then we generate the documentation in j1 The complete list of ccb functionalities can be accessed with the help argument It also may be run in graphical mode gui Packaging Coriolis Packager should not uses ccb instead bootstrap Makefile package is provided to emulate a top level autotool makefile Just copy it in the root of the CORIOLIS git repository corriolis 2 x src coriolis and build Sligthly outaded packaging configuration files can also be found under bootstrap e bootstrap coriolis2 spec in for rpm based distributions e bootstrap debian for DEBIAN based distributions Hooking up into ALLIANCE CORIOLIS relies on ALLIANCE for the cell libraries So after installing or packaging you must con figure it so that it can found those libraries This is do
32. urrently a drawback of our folded hierarchy approach Reseting the Placement Once a placement has been done the placer cannot reset it will be implemented later To perform a new placement you must restart cgt In addition if you have saved the placement on disk you must erase any ap file which are automatically reloaded along with the netlist vst Knik Global Router The quality of KNIK global routing solutions are equivalent to those of FGR 1 0 For an in depth description of KNIK algorithms you may download the thesis of D Dupuis avalaible from here Knik Thesis The global router is not yet deterministic To circumvent this limitation a global routing solution can be saved to disk and reloaded for later uses A global routing is saved into a file with the same name as the design and a kgr extention It is in Box Router output format Menus e P amp R Step by Step gt Save Global Routing e P amp R Step by Step gt Load Global Routing Kite Detailed Router KITE no longer suffers from the limitations of NERO It can route big designs as its runtime and memory footprint is almost linear with respect to the number of gates It has successfully routed design of more than 150K gates However this first release comes with the temporary the following restrictions e Works only with SxLiB standard cell gauge e Works always with 4 routing metal l
Download Pdf Manuals
Related Search
Related Contents
JVC VN-H57U Security Camera User Manual Product Information Guide Portable Generator Small Generator StarTech.com USB to HDMI or HDMI over IP Converter Progress Lighting P3897-124 Instructions / Assembly Bedienungsanleitung Manual del usuario User Manual Copyright © All rights reserved.
Failed to retrieve file