Added netlist & tool engines to Hurricane+Python tutorial.
This commit is contained in:
parent
dd4a01fe70
commit
1c2c858ce8
|
@ -41,7 +41,11 @@
|
|||
PythonTutorial/Environment.rst
|
||||
PythonTutorial/CellNetComponent.rst
|
||||
PythonTutorial/Collections.rst
|
||||
PythonTutorial/CgtScript.rst )
|
||||
PythonTutorial/CgtScript.rst
|
||||
PythonTutorial/Netlist.rst
|
||||
PythonTutorial/RealDesigns.rst
|
||||
PythonTutorial/ToolEngines.rst
|
||||
PythonTutorial/AdvancedTopics.rst )
|
||||
|
||||
set ( usersGuideRst UsersGuide/pdfHeader.rst
|
||||
UsersGuide/LicenseCredits.rst
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,36 @@
|
|||
.. -*- Mode: rst -*-
|
||||
.. include:: ../etc/definitions.rst
|
||||
.. include:: ./definitions.rst
|
||||
|
||||
|
||||
9. Advanced Topics
|
||||
==================
|
||||
|
||||
This is a place holder as well as a reminder to myself to write this part of
|
||||
the documentation.
|
||||
|
||||
|
||||
9.1 Occurrence
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The trans-hierarchical workhorse.
|
||||
|
||||
|
||||
9.2 RoutingPads
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Unlike the Plugs_ that only make connexions between two **adjacent**
|
||||
hierarchical levels, RoutingPads_ can refer to a deeply buried terminal.
|
||||
|
||||
|
||||
9.3 HyperNets
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
This class is part of the *virtual flattening* mechanisms, it allows to
|
||||
go through all the components of a trans-hierarchical net.
|
||||
|
||||
|
||||
9.4 Miscellaeous trans-hierarchical functions
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For a starter, how to get all the leaf cells...
|
|
@ -3,10 +3,17 @@
|
|||
.. include:: ./definitions.rst
|
||||
|
||||
|
||||
3. Creating Cell, Net and Component
|
||||
=======================================
|
||||
|
||||
In this part, we well show how to create and save a single Cell_.
|
||||
3. Making a Standard Cell -- Layout
|
||||
===================================
|
||||
|
||||
In this part, we well show how to create and save a terminal Cell_,
|
||||
that is, a cell without instances (the end point of a hierarchical
|
||||
design). To illustrate the case we will draw the layout of a
|
||||
standard cell.
|
||||
|
||||
We will introduce the following classes : Cell_, Net_, Component_
|
||||
and it's derived classes.
|
||||
|
||||
|
||||
3.1 The AllianceFramework (CRL Core)
|
||||
|
@ -161,6 +168,11 @@ not mandatory.
|
|||
i = Net.create( cell, 'i' )
|
||||
i.setExternal( True )
|
||||
|
||||
.. note:: Unlike some other database models, in |Hurricane|,
|
||||
**there is no explicit terminal object**, you only need to make the
|
||||
net external. For more information about how to connect to an
|
||||
external net, see `6.2 Creating Nets and connecting to Instances`_.
|
||||
|
||||
|
||||
3.6.3 Creating a Component
|
||||
--------------------------
|
||||
|
@ -209,3 +221,118 @@ will be written in the |Alliance| ``WORK_DIR``.
|
|||
.. code-block:: Python
|
||||
|
||||
af.saveCell( cell, Catalog.State.Views )
|
||||
|
||||
|
||||
3.8 The Complete Example File
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The example files can be found in the ``share/doc/coriolis2/examples/scripts/``
|
||||
directory (under the the root of the |Coriolis| installation).
|
||||
|
||||
The code needed to run it through the |cgt| viewer as been added. For the
|
||||
explanation of that part of the code, refer to `5. Make a script runnable through cgt`_.
|
||||
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
from Hurricane import *
|
||||
from CRL import *
|
||||
|
||||
|
||||
def toDbU ( l ): return DbU.fromLambda(l)
|
||||
|
||||
|
||||
def doBreak ( level, message ):
|
||||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
def buildInvertor ( editor ):
|
||||
UpdateSession.open()
|
||||
|
||||
cell = AllianceFramework.get().createCell( 'invertor' )
|
||||
cell.setTerminal( True )
|
||||
|
||||
cell.setAbutmentBox( Box( toDbU(0.0), toDbU(0.0), toDbU(15.0), toDbU(50.0) ) )
|
||||
|
||||
if editor:
|
||||
UpdateSession.close()
|
||||
editor.setCell( cell )
|
||||
editor.fit()
|
||||
UpdateSession.open()
|
||||
|
||||
technology = DataBase.getDB().getTechnology()
|
||||
metal1 = technology.getLayer( "METAL1" )
|
||||
poly = technology.getLayer( "POLY" )
|
||||
ptrans = technology.getLayer( "PTRANS" )
|
||||
ntrans = technology.getLayer( "NTRANS" )
|
||||
pdif = technology.getLayer( "PDIF" )
|
||||
ndif = technology.getLayer( "NDIF" )
|
||||
contdifn = technology.getLayer( "CONT_DIF_N" )
|
||||
contdifp = technology.getLayer( "CONT_DIF_P" )
|
||||
nwell = technology.getLayer( "NWELL" )
|
||||
contpoly = technology.getLayer( "CONT_POLY" )
|
||||
ntie = technology.getLayer( "NTIE" )
|
||||
|
||||
net = Net.create( cell, "nwell" )
|
||||
Vertical.create( net, nwell, toDbU(7.5), toDbU(15.0), toDbU(27.0), toDbU(51.0) )
|
||||
|
||||
vdd = Net.create( cell, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True )
|
||||
h = Horizontal.create(vdd, metal1, toDbU(47.0), toDbU(6.0), toDbU(0.0), toDbU(15.0) )
|
||||
NetExternalComponents.setExternal( h )
|
||||
Contact.create ( vdd, contdifn, toDbU(10.0), toDbU(47.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( vdd, contdifp, toDbU( 4.0), toDbU(45.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Vertical.create( vdd, pdif , toDbU( 3.5), toDbU( 4.0), toDbU(28.0), toDbU(46.0) )
|
||||
Vertical.create( vdd, ntie , toDbU(10.0), toDbU( 3.0), toDbU(43.0), toDbU(48.0) )
|
||||
doBreak( 1, 'Done building vdd.' )
|
||||
|
||||
vss = Net.create( cell, "vss" )
|
||||
vss.setExternal( True )
|
||||
vss.setGlobal ( True )
|
||||
h = Horizontal.create(vss, metal1, toDbU(3.0), toDbU(6.0), toDbU(0.0), toDbU(15.0))
|
||||
NetExternalComponents.setExternal( h )
|
||||
Vertical.create( vss, ndif , toDbU(3.5), toDbU(4.0), toDbU(4.0), toDbU(12.0) )
|
||||
Contact.create ( vss, contdifn, toDbU(4.0), toDbU(5.0), toDbU(1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building vss.' )
|
||||
|
||||
i = Net.create( cell, "i" )
|
||||
i.setExternal( True )
|
||||
v = Vertical.create ( i, metal1, toDbU(5.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create ( i, ptrans , toDbU( 7.0), toDbU( 1.0), toDbU(26.0), toDbU(39.0) )
|
||||
Vertical.create ( i, ntrans , toDbU( 7.0), toDbU( 1.0), toDbU( 6.0), toDbU(14.0) )
|
||||
Vertical.create ( i, poly , toDbU( 7.0), toDbU( 1.0), toDbU(14.0), toDbU(26.0) )
|
||||
Horizontal.create( i, poly , toDbU(20.0), toDbU( 3.0), toDbU( 4.0), toDbU( 7.0) )
|
||||
Contact.create ( i, contpoly, toDbU( 5.0), toDbU(20.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building i.' )
|
||||
|
||||
nq = Net.create ( cell, "nq" )
|
||||
nq.setExternal( True )
|
||||
v = Vertical.create( nq, metal1, toDbU(10.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create( nq, pdif , toDbU(10.0), toDbU( 3.0), toDbU(28.0), toDbU(37.0) )
|
||||
Vertical.create( nq, ndif , toDbU(10.0), toDbU( 3.0), toDbU( 8.0), toDbU(12.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(35.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(30.5), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifn, toDbU(10.0), toDbU(10.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building q.' )
|
||||
|
||||
UpdateSession.close()
|
||||
AllianceFramework.get().saveCell( cell, Catalog.State.Views )
|
||||
|
||||
return
|
||||
|
||||
|
||||
def ScriptMain ( **kw ):
|
||||
editor = None
|
||||
if kw.has_key('editor') and kw['editor']:
|
||||
editor = kw['editor']
|
||||
|
||||
buildInvertor( editor )
|
||||
return True
|
||||
|
|
|
@ -21,6 +21,17 @@ using the menu:
|
|||
* :fboxtt:`Tools` |rightarrow| :fboxtt:`Python Script`. The script
|
||||
file name must be given without the ``.py`` extension.
|
||||
|
||||
.. note:: If you use breakpoints and want to see the progress of your
|
||||
script in the viewer, do not use the ``--script`` option of
|
||||
|cgt|.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
ego@home:~> cgt -V --script=invertor
|
||||
|
||||
Because the script is run **before** the viewer is launched,
|
||||
you will only see the end result of your script.
|
||||
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
|
@ -71,112 +82,3 @@ We can create a little function to ease the work:
|
|||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
6. The Complete Example File
|
||||
============================
|
||||
|
||||
The example files can be found in the ``share/doc/coriolis2/examples/scripts/``
|
||||
directory (under the the root of the |Coriolis| installation).
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
from Hurricane import *
|
||||
from CRL import *
|
||||
|
||||
|
||||
def toDbU ( l ): return DbU.fromLambda(l)
|
||||
|
||||
|
||||
def doBreak ( level, message ):
|
||||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
def buildInvertor ( editor ):
|
||||
UpdateSession.open()
|
||||
|
||||
cell = AllianceFramework.get().createCell( 'invertor' )
|
||||
cell.setTerminal( True )
|
||||
|
||||
cell.setAbutmentBox( Box( toDbU(0.0), toDbU(0.0), toDbU(15.0), toDbU(50.0) ) )
|
||||
|
||||
if editor:
|
||||
UpdateSession.close()
|
||||
editor.setCell( cell )
|
||||
editor.fit()
|
||||
UpdateSession.open()
|
||||
|
||||
technology = DataBase.getDB().getTechnology()
|
||||
metal1 = technology.getLayer( "METAL1" )
|
||||
poly = technology.getLayer( "POLY" )
|
||||
ptrans = technology.getLayer( "PTRANS" )
|
||||
ntrans = technology.getLayer( "NTRANS" )
|
||||
pdif = technology.getLayer( "PDIF" )
|
||||
ndif = technology.getLayer( "NDIF" )
|
||||
contdifn = technology.getLayer( "CONT_DIF_N" )
|
||||
contdifp = technology.getLayer( "CONT_DIF_P" )
|
||||
nwell = technology.getLayer( "NWELL" )
|
||||
contpoly = technology.getLayer( "CONT_POLY" )
|
||||
ntie = technology.getLayer( "NTIE" )
|
||||
|
||||
net = Net.create( cell, "nwell" )
|
||||
Vertical.create( net, nwell, toDbU(7.5), toDbU(15.0), toDbU(27.0), toDbU(51.0) )
|
||||
|
||||
vdd = Net.create( cell, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True )
|
||||
h = Horizontal.create(vdd, metal1, toDbU(47.0), toDbU(6.0), toDbU(0.0), toDbU(15.0) )
|
||||
NetExternalComponents.setExternal( h )
|
||||
Contact.create ( vdd, contdifn, toDbU(10.0), toDbU(47.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( vdd, contdifp, toDbU( 4.0), toDbU(45.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Vertical.create( vdd, pdif , toDbU( 3.5), toDbU( 4.0), toDbU(28.0), toDbU(46.0) )
|
||||
Vertical.create( vdd, ntie , toDbU(10.0), toDbU( 3.0), toDbU(43.0), toDbU(48.0) )
|
||||
doBreak( 1, 'Done building vdd.' )
|
||||
|
||||
vss = Net.create( cell, "vss" )
|
||||
vss.setExternal( True )
|
||||
vss.setGlobal ( True )
|
||||
h = Horizontal.create(vss, metal1, toDbU(3.0), toDbU(6.0), toDbU(0.0), toDbU(15.0))
|
||||
NetExternalComponents.setExternal( h )
|
||||
Vertical.create( vss, ndif , toDbU(3.5), toDbU(4.0), toDbU(4.0), toDbU(12.0) )
|
||||
Contact.create ( vss, contdifn, toDbU(4.0), toDbU(5.0), toDbU(1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building vss.' )
|
||||
|
||||
i = Net.create( cell, "i" )
|
||||
i.setExternal( True )
|
||||
v = Vertical.create ( i, metal1, toDbU(5.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create ( i, ptrans , toDbU( 7.0), toDbU( 1.0), toDbU(26.0), toDbU(39.0) )
|
||||
Vertical.create ( i, ntrans , toDbU( 7.0), toDbU( 1.0), toDbU( 6.0), toDbU(14.0) )
|
||||
Vertical.create ( i, poly , toDbU( 7.0), toDbU( 1.0), toDbU(14.0), toDbU(26.0) )
|
||||
Horizontal.create( i, poly , toDbU(20.0), toDbU( 3.0), toDbU( 4.0), toDbU( 7.0) )
|
||||
Contact.create ( i, contpoly, toDbU( 5.0), toDbU(20.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building i.' )
|
||||
|
||||
nq = Net.create ( cell, "nq" )
|
||||
nq.setExternal( True )
|
||||
v = Vertical.create( nq, metal1, toDbU(10.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create( nq, pdif , toDbU(10.0), toDbU( 3.0), toDbU(28.0), toDbU(37.0) )
|
||||
Vertical.create( nq, ndif , toDbU(10.0), toDbU( 3.0), toDbU( 8.0), toDbU(12.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(35.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(30.5), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifn, toDbU(10.0), toDbU(10.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building q.' )
|
||||
|
||||
UpdateSession.close()
|
||||
return
|
||||
|
||||
|
||||
def ScriptMain ( **kw ):
|
||||
editor = None
|
||||
if kw.has_key('editor') and kw['editor']:
|
||||
editor = kw['editor']
|
||||
|
||||
buildInvertor( editor )
|
||||
return True
|
||||
|
|
|
@ -23,7 +23,29 @@ All |Hurricane| objects implements the |Python| ``__str__()`` function,
|
|||
they print the result of C++ ``::getString()``.
|
||||
|
||||
|
||||
1.1 Generalities
|
||||
1.1 Terminology
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
In the |Hurricane| database, the *logical* (netlist) and *physical* (layout)
|
||||
views are fused. As the main goal of the database is to support place & route
|
||||
tools, we usually starts with a *pure* netlist which is progessively enriched
|
||||
to become a layout. Cell, in particular, is able to be in any intermediate
|
||||
state. Many of our objects have self-explanatory names, but some
|
||||
don't. Thus we summarize below the more important ones:
|
||||
|
||||
=============== =====================================================
|
||||
**Class** **Meaning**
|
||||
=============== =====================================================
|
||||
Cell_ The model. A Cell do not have terminals, only nets
|
||||
flagged as *external*
|
||||
Instance_ An instance of a model
|
||||
Net_ A grouping of electrically connecteds components
|
||||
Plug_ A terminal of an instance
|
||||
RoutingPad_ A physical connexion (*pin*) to an instance
|
||||
=============== =====================================================
|
||||
|
||||
|
||||
1.2 Generalities
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
The C++ API has been exported in Python as closely as possible. Meaning
|
||||
|
@ -85,7 +107,7 @@ The equivalent |Python| code will be:
|
|||
UpdateSession.close()
|
||||
|
||||
|
||||
1.2 Various Kinds of Constructors
|
||||
1.3 Various Kinds of Constructors
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Regarding the memory allocation, the |Hurricane| database contains two kind of objects.
|
||||
|
|
|
@ -0,0 +1,399 @@
|
|||
.. -*- Mode: rst -*-
|
||||
.. include:: ../etc/definitions.rst
|
||||
.. include:: ./definitions.rst
|
||||
|
||||
|
||||
6. Making a hierarchical Cell -- Netlist
|
||||
========================================
|
||||
|
||||
To illustrate the topic, we will build the netlist of a fulladder from
|
||||
standard cell.
|
||||
|
||||
|fulladder_1|
|
||||
|
||||
|
||||
6.1 Creating an Instance_
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Creating an Instance_ is straigthforward, the constructor needs only three
|
||||
parameters:
|
||||
|
||||
#. The Cell_ **into which** the instance is to be created.
|
||||
#. The name of the instance.
|
||||
#. The **master cell**, the Cell_ model it refers to. The master cell
|
||||
will be part of the hierarchical level just below the ``fulladder``
|
||||
cell.
|
||||
|
||||
.. note:: Do not confuse the cell the instance is create into (``fulladder``)
|
||||
and the cells it refers to (the *master cell* ``xr2_x2``).
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
af = AllianceFramework.get()
|
||||
xr2_x2 = af.getCell( 'xr2_x1', Catalog.State.Views )
|
||||
|
||||
fulladder = af.createCell( 'fulladder' )
|
||||
xr2_1 = Instance.create( fulladder, 'xr2_1', xr2_x2 )
|
||||
|
||||
|
||||
6.2 Creating Nets and connecting to Instances
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
An Instance_ as one Plug_ for each external net of the *master cell*.
|
||||
The plug allows to create a **logical** connexion bewteen a Net_ of
|
||||
``fulladder`` and a net from an Instance_ *master cell*.
|
||||
|
||||
A plug is somewhat equivalent to an *instance terminal* in others
|
||||
well known databases.
|
||||
|
||||
Therefore, a plug is related to two nets:
|
||||
|
||||
#. The net of the *master cell* it is linked to. Obviously that
|
||||
net cannot be changed. You can access the master net with the
|
||||
function ``plug.getMasterNet()``.
|
||||
|
||||
#. The net of ``fulladder`` the plug is connected to. This can
|
||||
be set, it is how we build the netlist. To set the net, use
|
||||
the function ``plug.setNet( net )``. It the argument is ``None``,
|
||||
the plug is *disconnected*.
|
||||
|
||||
To find the plug of an instance associated to a given net in
|
||||
the *master cell*, use ``instance.getPlug( masterNet )``.
|
||||
The ``masterNet`` argument being an object of class net (not
|
||||
it's name).
|
||||
|
||||
Building the :cb:`a` net of ``fulladder``:
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
a = Net.create( fulladder, "a" )
|
||||
a.setExternal( True )
|
||||
xr2_1.getPlug( xr2_x2.getNet("i0") ).setNet( a )
|
||||
a2_1 .getPlug( a2_x2.getNet("i0") ).setNet( a )
|
||||
|
||||
|
||||
.. note:: **Limitation of Hurricane Netlists.** There is no explicit
|
||||
terminal object in the |Hurricane| database. Plugs are
|
||||
generated *on the fly* for each *external net* of the
|
||||
instance. One important consequence is that a *net*
|
||||
cannot appear on the interface as two differently named
|
||||
terminals (sometimes referred as *weekly connected*
|
||||
terminals). There is a strict bijection between external
|
||||
nets and plugs.
|
||||
|
||||
While it may be restrictive, it enforce cleaner designs
|
||||
and make it possible for the HyperNet_ concept/class.
|
||||
|
||||
|
||||
6.3 Power supplies special case
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For supplies, it may be tedious to connect the Plugs_ of each cell one by one
|
||||
(and create a lot of uneeded objects). To avoid that, we may use **Named
|
||||
connections**. If a signal in ``fulladder`` is set to *global*, then it will
|
||||
be considered as connected to any signal with the *same name* and *global* in
|
||||
the master cell of the instances.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
vdd = Net.create( fulladder, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True ) # Will be connected to all the instances.
|
||||
|
||||
|
||||
6.4 Creating the physical view of a Cell netlist
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Even if loaded in the viewer, an Instance will not be displayed
|
||||
until it is placed.
|
||||
|
||||
|
||||
6.4.1 Transformation
|
||||
--------------------
|
||||
|
||||
To place an Instance, we apply a Transformation_ to the coordinate system
|
||||
of the *master cell*. A transformation is composed of two operations :
|
||||
|
||||
#. An Orientation_, which can be a symmetry or a rotation (or a combination
|
||||
of those two). The Orientation **is applied first** to the coordinate
|
||||
system of the *master cell*. The complete list of Orientation and their
|
||||
codes are given on the Orientation documentation page.
|
||||
|
||||
#. A **Translation**, applied in second. Translation are represented by
|
||||
Points_.
|
||||
|
||||
The transformation is a change of coordinate system, be aware that if the
|
||||
abutment box lower left corner of the *master* cell is **not** at ``(0,0)``
|
||||
the result of the Transformation may not be what you expect. To simplificate
|
||||
the computation of the transformation of an instance, always place the
|
||||
lower left corner of the abutment box at ``(0,0)``
|
||||
|
||||
|
||||
6.4.2 Placing an Instance
|
||||
-------------------------
|
||||
|
||||
Assuming that we want to place the cells of the ``fulladder`` into two rows,
|
||||
that the abutment box lower left corner is at ``(0,0)`` (same for the
|
||||
``xr2_x2`` *master cell* layout). Here is the code to place the ``xr2_1``
|
||||
instance to left of the second row.
|
||||
|
||||
Setting the translation on an Instance_ is not enough to make it be displayed,
|
||||
we also must set it's *placement status* to ``Instance.PlacementStatus.PLACED``.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
xr2_1.setTransformation( Transformation( DbU.fromLambda( 0.0)
|
||||
, DbU.fromLambda(100.0)
|
||||
, Transformation.Orientation.MY ) )
|
||||
xr2_1.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
|
||||
|
||||
6.4.3 Nets -- From Plugs to RoutingPads
|
||||
---------------------------------------
|
||||
|
||||
As was stated before, Plugs_ represent a logical connexion between two
|
||||
levels of hierarchy. To make the physical connexion to the *master net*
|
||||
in the instance, we now must create, in the ``fulladder``, a special
|
||||
component which is a kind of *reference* to a component of the
|
||||
*master net* (in the master cell).
|
||||
|
||||
The so called *special component* is a RoutingPad_.
|
||||
|
||||
The ``RoutingPad`` can be considered as an equivalent to ``pin`` in others
|
||||
well known databases.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
rp = RoutingPad.create( a
|
||||
, Occurrence( xr2_1.getPlug( xr2_x2.getNet("i0")) )
|
||||
, RoutingPad.BiggestArea )
|
||||
|
||||
For the second parameter, we must pass an Occurrence_. Occurrence objects will
|
||||
be explained in detail later, for now, suffice to say that we must construct the
|
||||
Occurrence object with one parameter : the Plug_ for which we want to create a
|
||||
physical connexion.
|
||||
|
||||
The RoutingPad_ ``rp`` will be a component of the ``a`` net.
|
||||
|
||||
The third argument ask the constructor of the RoutingPad_ to select in the
|
||||
master net, the component which has the biggest area.
|
||||
|
||||
.. note:: **Component selection.** Not all the components of a net can be
|
||||
selected for connexion through a RoutingPad_. The candidates must
|
||||
have been flagged with the NetExternalComponents_ class.
|
||||
|
||||
See `3.6.3 Creating a Component`_.
|
||||
|
||||
|
||||
6.4.4 Nets -- Regular wiring
|
||||
----------------------------
|
||||
|
||||
After the creation of the RoutingPads_, the wiring is to be created with
|
||||
ordinary layout components (Horizontal_, Vertical_ and Contact_ possibly
|
||||
articulated). Here is the complete code for net ``a``. We made an articulated
|
||||
layout where contacts are created over RoutingPads_ then segments over
|
||||
contacts.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
# Build wiring for a.
|
||||
# Create RoutingPads first.
|
||||
rp1 = RoutingPad.create( a
|
||||
, Occurrence( xr2_1.getPlug( xr2_x2.getNet("i0")) )
|
||||
, RoutingPad.BiggestArea )
|
||||
rp2 = RoutingPad.create( a
|
||||
, Occurrence( a2_1.getPlug( a2_x2.getNet("i0")) )
|
||||
, RoutingPad.BiggestArea )
|
||||
|
||||
# Then regular wiring.
|
||||
contact1 = Contact.create( rp1, via12, toDbU( 0.0), toDbU(-15.0) )
|
||||
contact2 = Contact.create( rp2, via12, toDbU( 0.0), toDbU( 10.0) )
|
||||
turn = Contact.create( a , via23, toDbU(10.0), toDbU( 35.0) )
|
||||
Horizontal.create( contact2, turn , metal2, toDbU(35.0), toDbU(2.0) )
|
||||
Vertical .create( turn , contact1 , metal3, toDbU(10.0), toDbU(2.0) )
|
||||
|
||||
|
||||
.. note:: In order to better see the layout of the wiring only, open the
|
||||
``Controller`` and in the :fboxtt:`Filter` tab, uncheck
|
||||
:fboxtt:`Process Terminal Cells`.
|
||||
|
||||
|
||||
6.5 The Complete Example File
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The example file ``fulladder.py`` can be found in the ``share/doc/coriolis2/examples/scripts/``
|
||||
directory (under the the root of the |Coriolis| installation).
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
from Hurricane import *
|
||||
from CRL import *
|
||||
|
||||
|
||||
def toDbU ( l ): return DbU.fromLambda(l)
|
||||
|
||||
|
||||
def doBreak ( level, message ):
|
||||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
def buildFulladder ( editor ):
|
||||
|
||||
# Get the Framework and all the master cells.
|
||||
af = AllianceFramework.get()
|
||||
xr2_x2 = af.getCell( 'xr2_x1', Catalog.State.Views )
|
||||
a2_x2 = af.getCell( 'a2_x2' , Catalog.State.Views )
|
||||
o2_x2 = af.getCell( 'o2_x2' , Catalog.State.Views )
|
||||
|
||||
UpdateSession.open()
|
||||
|
||||
fulladder = af.createCell( 'fulladder' )
|
||||
fulladder.setAbutmentBox( Box( toDbU(0.0), toDbU(0.0), toDbU(90.0), toDbU(100.0) ) )
|
||||
|
||||
if editor:
|
||||
UpdateSession.close()
|
||||
editor.setCell( fulladder )
|
||||
editor.fit()
|
||||
UpdateSession.open()
|
||||
|
||||
# Create Instances.
|
||||
a2_1 = Instance.create( fulladder, 'a2_1', a2_x2 )
|
||||
a2_2 = Instance.create( fulladder, 'a2_2', a2_x2 )
|
||||
xr2_1 = Instance.create( fulladder, 'xr2_1', xr2_x2 )
|
||||
xr2_2 = Instance.create( fulladder, 'xr2_2', xr2_x2 )
|
||||
o2_1 = Instance.create( fulladder, 'o2_1', o2_x2 )
|
||||
|
||||
# Create Nets.
|
||||
vss = Net.create( fulladder, "vss" )
|
||||
vss.setExternal( True )
|
||||
vss.setGlobal ( True )
|
||||
|
||||
vdd = Net.create( fulladder, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True )
|
||||
|
||||
cin = Net.create( fulladder, "cin" )
|
||||
cin.setExternal( True )
|
||||
xr2_2.getPlug( xr2_x2.getNet('i0') ).setNet( cin )
|
||||
a2_2 .getPlug( a2_x2.getNet('i0') ).setNet( cin )
|
||||
|
||||
a = Net.create( fulladder, 'a' )
|
||||
a.setExternal( True )
|
||||
xr2_1.getPlug( xr2_x2.getNet('i0') ).setNet( a )
|
||||
a2_1 .getPlug( a2_x2.getNet('i0') ).setNet( a )
|
||||
|
||||
b = Net.create( fulladder, 'b' )
|
||||
b.setExternal( True )
|
||||
xr2_1.getPlug( xr2_x2.getNet('i1') ).setNet( b )
|
||||
a2_1 .getPlug( a2_x2.getNet('i1') ).setNet( b )
|
||||
|
||||
sout_1 = Net.create( fulladder, 'sout_1' )
|
||||
xr2_1.getPlug( xr2_x2.getNet('q' ) ).setNet( sout_1 )
|
||||
xr2_2.getPlug( xr2_x2.getNet('i1') ).setNet( sout_1 )
|
||||
a2_2 .getPlug( a2_x2.getNet('i1') ).setNet( sout_1 )
|
||||
|
||||
carry_1 = Net.create( fulladder, 'carry_1' )
|
||||
a2_1.getPlug( a2_x2.getNet('q' ) ).setNet( carry_1 )
|
||||
o2_1.getPlug( o2_x2.getNet('i1') ).setNet( carry_1 )
|
||||
|
||||
carry_2 = Net.create( fulladder, 'carry_2' )
|
||||
a2_2.getPlug( a2_x2.getNet('q' ) ).setNet( carry_2 )
|
||||
o2_1.getPlug( o2_x2.getNet('i0') ).setNet( carry_2 )
|
||||
|
||||
sout = Net.create( fulladder, 'sout' )
|
||||
sout.setExternal( True )
|
||||
xr2_2.getPlug( xr2_x2.getNet('q') ).setNet( sout )
|
||||
|
||||
cout = Net.create( fulladder, 'cout' )
|
||||
cout.setExternal( True )
|
||||
o2_1.getPlug( o2_x2.getNet('q') ).setNet( cout )
|
||||
|
||||
# Instances placement.
|
||||
a2_1.setTransformation( Transformation( toDbU(0.0)
|
||||
, toDbU(0.0)
|
||||
, Transformation.Orientation.ID ) )
|
||||
a2_1.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
doBreak( 1, 'Placed a2_1' )
|
||||
|
||||
xr2_1.setTransformation( Transformation( toDbU( 0.0)
|
||||
, toDbU(100.0)
|
||||
, Transformation.Orientation.MY ) )
|
||||
xr2_1.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
doBreak( 1, 'Placed xr2_1' )
|
||||
|
||||
a2_2.setTransformation( Transformation( toDbU(25.0)
|
||||
, toDbU( 0.0)
|
||||
, Transformation.Orientation.ID ) )
|
||||
a2_2.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
doBreak( 1, 'Placed a2_2' )
|
||||
|
||||
xr2_2.setTransformation( Transformation( toDbU( 45.0)
|
||||
, toDbU(100.0)
|
||||
, Transformation.Orientation.MY ) )
|
||||
xr2_2.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
doBreak( 1, 'Placed xr2_2' )
|
||||
|
||||
o2_1.setTransformation( Transformation( toDbU(65.0)
|
||||
, toDbU( 0.0)
|
||||
, Transformation.Orientation.ID ) )
|
||||
o2_1.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
doBreak( 1, 'Placed o2_1' )
|
||||
|
||||
# Add filler cells.
|
||||
tie_x0 = af.getCell( 'tie_x0', Catalog.State.Views )
|
||||
rowend_x0 = af.getCell( 'rowend_x0', Catalog.State.Views )
|
||||
filler_1 = Instance.create( fulladder, 'filler_1', tie_x0 )
|
||||
filler_2 = Instance.create( fulladder, 'filler_2', rowend_x0 )
|
||||
|
||||
filler_1.setTransformation( Transformation( toDbU(50.0)
|
||||
, toDbU( 0.0)
|
||||
, Transformation.Orientation.ID ) )
|
||||
filler_1.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
|
||||
filler_2.setTransformation( Transformation( toDbU(60.0)
|
||||
, toDbU( 0.0)
|
||||
, Transformation.Orientation.ID ) )
|
||||
filler_2.setPlacementStatus( Instance.PlacementStatus.PLACED )
|
||||
doBreak( 1, 'Filler cell placeds' )
|
||||
|
||||
# Getting the layers.
|
||||
technology = DataBase.getDB().getTechnology()
|
||||
metal2 = technology.getLayer( "METAL2" )
|
||||
metal3 = technology.getLayer( "METAL3" )
|
||||
via12 = technology.getLayer( "VIA12" )
|
||||
via23 = technology.getLayer( "VIA23" )
|
||||
|
||||
# Build wiring for a.
|
||||
# Create RoutingPads first.
|
||||
rp1 = RoutingPad.create( a
|
||||
, Occurrence( xr2_1.getPlug( xr2_x2.getNet("i0")) )
|
||||
, RoutingPad.BiggestArea )
|
||||
rp2 = RoutingPad.create( a
|
||||
, Occurrence( a2_1.getPlug( a2_x2.getNet("i0")) )
|
||||
, RoutingPad.BiggestArea )
|
||||
|
||||
# Then regular wiring.
|
||||
contact1 = Contact.create( rp1, via12, toDbU( 0.0), toDbU(-15.0) )
|
||||
contact2 = Contact.create( rp2, via12, toDbU( 0.0), toDbU( 10.0) )
|
||||
turn = Contact.create( a , via23, toDbU(10.0), toDbU( 35.0) )
|
||||
Horizontal.create( contact2, turn , metal2, toDbU(35.0), toDbU(2.0) )
|
||||
Vertical .create( turn , contact1 , metal3, toDbU(10.0), toDbU(2.0) )
|
||||
|
||||
UpdateSession.close()
|
||||
|
||||
af.saveCell( fulladder, Catalog.State.Views )
|
||||
return
|
||||
|
||||
|
||||
def ScriptMain ( **kw ):
|
||||
editor = None
|
||||
if kw.has_key('editor') and kw['editor']:
|
||||
editor = kw['editor']
|
||||
|
||||
buildFulladder( editor )
|
||||
return True
|
Binary file not shown.
|
@ -0,0 +1,51 @@
|
|||
.. -*- Mode: rst -*-
|
||||
.. include:: ../etc/definitions.rst
|
||||
.. include:: ./definitions.rst
|
||||
|
||||
|
||||
7. Working in real mode
|
||||
=======================
|
||||
|
||||
The AllianceFramework_ only manage *symbolic* layout as |Alliance| do.
|
||||
But |Coriolis| is also able to work directly in *real* mode, meaning
|
||||
that distances will be expresseds in microns instead of lambdas.
|
||||
|
||||
The *real* mode will be illustrated by working with the FreePDK45_.
|
||||
|
||||
We will assume that the FreePDK45_ archives is installed under: ::
|
||||
|
||||
/home/dks/
|
||||
|
||||
|
||||
7.1 Loading a |LEF| file
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Importing a |LEF| file is simple, you just call the static function
|
||||
``LefImport.load()``. Multiple |LEF| file can be imported one after
|
||||
another.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
# You must set "DKsdir" to where you did install the NCSU FreePDK 45nm DK.
|
||||
DKsdir = '/home/dks'
|
||||
|
||||
library = LefImport.load( DKsdir + '/FreePDK45/osu_soc/lib/files/gscl45nm.lef' )
|
||||
|
||||
|
||||
.. note:: **Technology checking.** The first imported |LEF| file must contains the
|
||||
technology. The technology described in the |LEF| file will be checked
|
||||
against the one configured in the running instance of |Coriolis| to look
|
||||
for any discrepencies.
|
||||
|
||||
|
||||
7.2 Loading a |Blif| file -- |Yosys|
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The |Blif| format is generated by the Yosys_ logic synthetizer. Here again, it is
|
||||
pretty straightforward: call the static function ``Blif.load()``. If you did make
|
||||
your synthesis on a cell library not managed by AllianceFramework_, For example
|
||||
the one of the FreePDK45, you must load it prior to calling the |Blif| loader.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
cell = Blif.load( 'snx' ) # load "snx.blif" in the working directory.
|
|
@ -0,0 +1,213 @@
|
|||
.. -*- Mode: rst -*-
|
||||
.. include:: ../etc/definitions.rst
|
||||
.. include:: ./definitions.rst
|
||||
|
||||
|
||||
8. Tool Engines (CRL Core)
|
||||
==========================
|
||||
|
||||
The ToolEngine_ class is the base class for all tools developpeds in
|
||||
|Coriolis|. In the rest of the tutorial we will use the names ``tool``
|
||||
or ``engine`` as synonyms.
|
||||
|
||||
|
||||
8.1 Placer -- Etesian
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To run the placer, create the |Etesian| engine, then call the ``place()``
|
||||
function.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
import Etesian
|
||||
|
||||
# [...]
|
||||
|
||||
etesian = Etesian.EtesianEngine.create(cell)
|
||||
etesian.place()
|
||||
|
||||
You can configure the placer in two ways:
|
||||
|
||||
#. Prior to the creation of the engine, setup an abutment for the cell.
|
||||
The placer will fit the cells into that area. If the area is too
|
||||
small, it will issue an error.
|
||||
|
||||
#. Setup |Etesian| parameters through the ``settings.py`` configuration
|
||||
file. For example:
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
parametersTable = \
|
||||
( ("etesian.effort" , TypeEnumerate , 2 )
|
||||
, ('etesian.uniformDensity' , TypeBool , True )
|
||||
, ('etesian.spaceMargin' , TypePercentage, 3.0 )
|
||||
, ('etesian.aspectRatio' , TypePercentage, 100.0 )
|
||||
)
|
||||
|
||||
With this setup, the cells will be spread uniformally over the
|
||||
area (``etesian.uniformDensity``), with ``3.0%`` of free space
|
||||
added and an aspect ratio of ``100%`` (square shape).
|
||||
|
||||
|
||||
8.1 Router -- Katana
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Like for |Etesian|, you have to create the engine on the cell then call
|
||||
the sequence of functions detailed below.
|
||||
|
||||
.. note:: **Kite vs. Katana.** There are currently two router in |Coriolis|,
|
||||
|Kite| is the old one and digital only. |Katana| is a re-implementation
|
||||
with support for mixed routing (digital **and** analog).
|
||||
Until |Katana| is fully implemented we keep both of them.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
import Anabatic
|
||||
import Katana
|
||||
|
||||
# [...]
|
||||
|
||||
katana = Katana.KatanaEngine.create(cell)
|
||||
katana.digitalInit ()
|
||||
katana.runGlobalRouter ()
|
||||
katana.loadGlobalRouting( Anabatic.EngineLoadGrByNet )
|
||||
katana.layerAssign ( Anabatic.EngineNoNetLayerAssign )
|
||||
katana.runNegociate ( Katana.Flags.NoFlags )
|
||||
|
||||
|
||||
8.2 A Complete Example
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The example file ``toolengines.py`` can be found in the ``share/doc/coriolis2/examples/scripts/``
|
||||
directory (under the the root of the |Coriolis| installation).
|
||||
|
||||
This script automatically place and route the ``fulladder`` netlist as seen
|
||||
previously. The call to the ToolEngines_ is made inside the new function
|
||||
``placeAndRoute()``.
|
||||
|
||||
.. note:: As the ``ToolEngine`` take care of opening and closing UpdateSession_, we
|
||||
do not need the wrapper function ``doBreak()`` around the breakpoints.
|
||||
We directly call Breakpoint_.
|
||||
|
||||
.. note:: The space margin for this example is very high (``30%``), it's only
|
||||
because it's too small for the placer to run correctly. For normal
|
||||
case it is around ``3%``.
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
from Hurricane import *
|
||||
from CRL import *
|
||||
import Etesian
|
||||
import Anabatic
|
||||
import Katana
|
||||
|
||||
# Everybody needs it.
|
||||
af = AllianceFramework.get()
|
||||
|
||||
|
||||
def toDbU ( l ): return DbU.fromLambda(l)
|
||||
|
||||
|
||||
def buildFulladder ( editor ):
|
||||
|
||||
# Get the Framework and all the master cells.
|
||||
xr2_x2 = af.getCell( 'xr2_x1', Catalog.State.Views )
|
||||
a2_x2 = af.getCell( 'a2_x2' , Catalog.State.Views )
|
||||
o2_x2 = af.getCell( 'o2_x2' , Catalog.State.Views )
|
||||
|
||||
UpdateSession.open()
|
||||
|
||||
fulladder = af.createCell( 'fulladder' )
|
||||
|
||||
# Create Instances.
|
||||
a2_1 = Instance.create( fulladder, 'a2_1', a2_x2 )
|
||||
a2_2 = Instance.create( fulladder, 'a2_2', a2_x2 )
|
||||
xr2_1 = Instance.create( fulladder, 'xr2_1', xr2_x2 )
|
||||
xr2_2 = Instance.create( fulladder, 'xr2_2', xr2_x2 )
|
||||
o2_1 = Instance.create( fulladder, 'o2_1', o2_x2 )
|
||||
|
||||
# Create Nets.
|
||||
vss = Net.create( fulladder, "vss" )
|
||||
vss.setExternal( True )
|
||||
vss.setGlobal ( True )
|
||||
|
||||
vdd = Net.create( fulladder, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True )
|
||||
|
||||
cin = Net.create( fulladder, "cin" )
|
||||
cin.setExternal( True )
|
||||
xr2_2.getPlug( xr2_x2.getNet('i0') ).setNet( cin )
|
||||
a2_2 .getPlug( a2_x2.getNet('i0') ).setNet( cin )
|
||||
|
||||
a = Net.create( fulladder, 'a' )
|
||||
a.setExternal( True )
|
||||
xr2_1.getPlug( xr2_x2.getNet('i0') ).setNet( a )
|
||||
a2_1 .getPlug( a2_x2.getNet('i0') ).setNet( a )
|
||||
|
||||
b = Net.create( fulladder, 'b' )
|
||||
b.setExternal( True )
|
||||
xr2_1.getPlug( xr2_x2.getNet('i1') ).setNet( b )
|
||||
a2_1 .getPlug( a2_x2.getNet('i1') ).setNet( b )
|
||||
|
||||
sout_1 = Net.create( fulladder, 'sout_1' )
|
||||
xr2_1.getPlug( xr2_x2.getNet('q' ) ).setNet( sout_1 )
|
||||
xr2_2.getPlug( xr2_x2.getNet('i1') ).setNet( sout_1 )
|
||||
a2_2 .getPlug( a2_x2.getNet('i1') ).setNet( sout_1 )
|
||||
|
||||
carry_1 = Net.create( fulladder, 'carry_1' )
|
||||
a2_1.getPlug( a2_x2.getNet('q' ) ).setNet( carry_1 )
|
||||
o2_1.getPlug( o2_x2.getNet('i1') ).setNet( carry_1 )
|
||||
|
||||
carry_2 = Net.create( fulladder, 'carry_2' )
|
||||
a2_2.getPlug( a2_x2.getNet('q' ) ).setNet( carry_2 )
|
||||
o2_1.getPlug( o2_x2.getNet('i0') ).setNet( carry_2 )
|
||||
|
||||
sout = Net.create( fulladder, 'sout' )
|
||||
sout.setExternal( True )
|
||||
xr2_2.getPlug( xr2_x2.getNet('q') ).setNet( sout )
|
||||
|
||||
cout = Net.create( fulladder, 'cout' )
|
||||
cout.setExternal( True )
|
||||
o2_1.getPlug( o2_x2.getNet('q') ).setNet( cout )
|
||||
|
||||
UpdateSession.close()
|
||||
|
||||
af.saveCell( fulladder, Catalog.State.Views )
|
||||
return fulladder
|
||||
|
||||
|
||||
def placeAndRoute ( editor, cell ):
|
||||
# Run the placer.
|
||||
etesian = Etesian.EtesianEngine.create(cell)
|
||||
etesian.place()
|
||||
|
||||
if editor:
|
||||
editor.setCell( cell )
|
||||
editor.fit()
|
||||
|
||||
Breakpoint.stop( 1, 'After placement' )
|
||||
|
||||
# Run the router.
|
||||
katana = Katana.KatanaEngine.create(cell)
|
||||
katana.digitalInit ()
|
||||
katana.runGlobalRouter ()
|
||||
katana.loadGlobalRouting( Anabatic.EngineLoadGrByNet )
|
||||
katana.layerAssign ( Anabatic.EngineNoNetLayerAssign )
|
||||
katana.runNegociate ( Katana.Flags.NoFlags )
|
||||
|
||||
af.saveCell( cell, Catalog.State.Views )
|
||||
return
|
||||
|
||||
|
||||
def ScriptMain ( **kw ):
|
||||
editor = None
|
||||
if kw.has_key('editor') and kw['editor']:
|
||||
editor = kw['editor']
|
||||
|
||||
fulladder = buildFulladder( editor )
|
||||
placeAndRoute( editor, fulladder )
|
||||
return True
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
|
||||
.. Hurricane doxygen doc links.
|
||||
.. _Breakpoint: ../../hurricane/classHurricane_1_1Breakpoint.html
|
||||
.. _UpdateSession: ../../hurricane/classHurricane_1_1UpdateSession.html
|
||||
.. _Layer: ../../hurricane/classHurricane_1_1Layer.html
|
||||
.. _Layers: ../../hurricane/classHurricane_1_1Layer.html
|
||||
|
@ -9,25 +10,47 @@
|
|||
.. _DataBase: ../../hurricane/classHurricane_1_1DataBase.html
|
||||
.. _DbU: ../../hurricane/classHurricane_1_1DbU.html
|
||||
.. _Point: ../../hurricane/classHurricane_1_1Point.html
|
||||
.. _Points: ../../hurricane/classHurricane_1_1Point.html
|
||||
.. _Box: ../../hurricane/classHurricane_1_1Box.html
|
||||
.. _Cell: ../../hurricane/classHurricane_1_1Cell.html
|
||||
.. _Net: ../../hurricane/classHurricane_1_1Net.html
|
||||
.. _Nets: ../../hurricane/classHurricane_1_1Net.html
|
||||
.. _NetExternalComponents: ../../hurricane/classHurricane_1_1NetExternalComponents.html
|
||||
.. _HyperNet: ../../hurricane/classHurricane_1_1HyperNet.html
|
||||
.. _Component: ../../hurricane/classHurricane_1_1Component.html
|
||||
.. _Components: ../../hurricane/classHurricane_1_1Component.html
|
||||
.. _Contact: ../../hurricane/classHurricane_1_1Contact.html
|
||||
.. _Contacts: ../../hurricane/classHurricane_1_1Contact.html
|
||||
.. _Pad: ../../hurricane/classHurricane_1_1Pad.html
|
||||
.. _RoutingPad: ../../hurricane/classHurricane_1_1RoutingPad.html
|
||||
.. _RoutingPads: ../../hurricane/classHurricane_1_1RoutingPad.html
|
||||
.. _Horizontal: ../../hurricane/classHurricane_1_1Horizontal.html
|
||||
.. _Vertical: ../../hurricane/classHurricane_1_1Vertical.html
|
||||
.. _Plug: ../../hurricane/classHurricane_1_1Plug.html
|
||||
.. _Plugs: ../../hurricane/classHurricane_1_1Plug.html
|
||||
.. _Collection: ../../hurricane/classHurricane_1_1Collection.html
|
||||
.. _Instance: ../../hurricane/classHurricane_1_1Instance.html
|
||||
.. _Instances: ../../hurricane/classHurricane_1_1Instance.html
|
||||
.. _Transformation: ../../hurricane/classHurricane_1_1Transformation.html
|
||||
.. _Orientation: ../../hurricane/classHurricane_1_1Orientation.html
|
||||
.. _Occurrence: ../../hurricane/classHurricane_1_1Occurrence.html
|
||||
|
||||
.. Hurricane Viewer doxygen doc links.
|
||||
.. _CellViewer: ../../viewer/classHurricane_1_1CellViewer.html
|
||||
|
||||
.. CRL Core doxygen doc links.
|
||||
.. _AllianceFramework: ../../crlcore/classCRL_1_1AllianceFramework.html
|
||||
.. _ToolEngine: ../../crlcore/classCRL_1_1ToolEngine.html
|
||||
.. _ToolEngines: ../../crlcore/classCRL_1_1ToolEngine.html
|
||||
|
||||
.. Hurricane Python Tutorial internal links.
|
||||
.. _5. Make a script runnable through cgt: ./CgtScript.html
|
||||
.. _3.6.3 Creating a Component: ./CellNetComponent.html#id1
|
||||
.. _6.2 Creating Nets and connecting to Instances: ./Netlist.html#id1
|
||||
|
||||
.. |rightarrow| replace:: :math:`\rightarrow`
|
||||
|
||||
.. |fulladder_1| image:: ./images/fulladder-1.png
|
||||
:alt: The fulladder netlist
|
||||
:align: middle
|
||||
:width: 80%
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
|
@ -4,11 +4,15 @@
|
|||
|
||||
|
||||
=========================
|
||||
Hurricane Python Tutorial
|
||||
Hurricane+Python Tutorial
|
||||
=========================
|
||||
|
||||
Printable version of this document `PythonTutorial.pdf <../../../pdf/main/PythonTutorial.pdf>`_.
|
||||
|
||||
First, a small disclaimer. This tutorial assume that you are already familiar
|
||||
with the concepts of |VLSI| designs, such as *netlist*, *layout*, *instances*
|
||||
and hierarchical design.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -18,4 +22,8 @@ Printable version of this document `PythonTutorial.pdf <../../../pdf/main/Python
|
|||
CellNetComponent.rst
|
||||
Collections.rst
|
||||
CgtScript.rst
|
||||
Netlist.rst
|
||||
RealDesigns.rst
|
||||
ToolEngines.rst
|
||||
AdvancedTopics.rst
|
||||
|
||||
|
|
|
@ -5,11 +5,16 @@
|
|||
|
||||
|
||||
=========================
|
||||
Hurricane Python Tutorial
|
||||
Hurricane+Python Tutorial
|
||||
=========================
|
||||
|
||||
|pagestylefancy|
|
||||
|
||||
|noindent|
|
||||
**First, a small disclaimer.** This tutorial assume that you are already familiar
|
||||
with the concepts of |VLSI| designs, such as *netlist*, *layout*, *instances*
|
||||
and hierarchical design.
|
||||
|
||||
|
||||
.. contents::
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -147,10 +147,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -162,7 +163,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -171,10 +172,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -189,7 +191,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -471,7 +504,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../crlcore/index.htm
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../dpgen/index.html"
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../hurricane/index.h
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -337,7 +370,7 @@ mixed signal conterpart <strong>Anabatic</strong>.</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -337,7 +370,7 @@ mixed-signal conterpart Katana (<span class="sc">Kit[e]-Ana[logic]</span>).</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../patterns/index.ht
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -365,7 +398,7 @@ associated C++ namespace.</li>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -737,7 +770,7 @@ terminal or not.</li>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -667,7 +700,7 @@ the module itself. This allow to mimic closely the C++ syntax:</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -381,7 +414,7 @@ the <code class="docutils literal"><span class="pre">DbU::Unit</span>  <spa
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -495,7 +528,7 @@ like in the code below:</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -334,7 +367,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -484,7 +517,7 @@ a standalone <code class="docutils literal"><span class="pre">DBo</span></code>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -366,7 +399,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>3. Creating Cell, Net and Component — Coriolis 2 documentation</title>
|
||||
<title>3. Making a Standard Cell – Layout — Coriolis 2 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
|||
href="../genindex.html"/>
|
||||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="up" title="Hurricane Python Tutorial" href="index.html"/>
|
||||
<link rel="up" title="Hurricane+Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="4. Manipulating Cells, Nets and Components" href="Collections.html"/>
|
||||
<link rel="prev" title="2. Setting up the Environment" href="Environment.html"/>
|
||||
|
||||
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -295,9 +328,9 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li><a href="index.html">Hurricane Python Tutorial</a> »</li>
|
||||
<li><a href="index.html">Hurricane+Python Tutorial</a> »</li>
|
||||
|
||||
<li>3. Creating Cell, Net and Component</li>
|
||||
<li>3. Making a Standard Cell – Layout</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
|
@ -308,9 +341,14 @@
|
|||
</div>
|
||||
<div role="main" class="document">
|
||||
|
||||
<div class="section" id="creating-cell-net-and-component">
|
||||
<h1>3. Creating Cell, Net and Component<a class="headerlink" href="#creating-cell-net-and-component" title="Permalink to this headline">¶</a></h1>
|
||||
<p>In this part, we well show how to create and save a single <a class="reference external" href="../../hurricane/classHurricane_1_1Cell.html">Cell</a>.</p>
|
||||
<div class="section" id="making-a-standard-cell-layout">
|
||||
<h1>3. Making a Standard Cell – Layout<a class="headerlink" href="#making-a-standard-cell-layout" title="Permalink to this headline">¶</a></h1>
|
||||
<p>In this part, we well show how to create and save a terminal <a class="reference external" href="../../hurricane/classHurricane_1_1Cell.html">Cell</a>,
|
||||
that is, a cell without instances (the end point of a hierarchical
|
||||
design). To illustrate the case we will draw the layout of a
|
||||
standard cell.</p>
|
||||
<p>We will introduce the following classes : <a class="reference external" href="../../hurricane/classHurricane_1_1Cell.html">Cell</a>, <a class="reference external" href="../../hurricane/classHurricane_1_1Net.html">Net</a>, <a class="reference external" href="../../hurricane/classHurricane_1_1Component.html">Component</a>
|
||||
and it’s derived classes.</p>
|
||||
<div class="section" id="the-allianceframework-crl-core">
|
||||
<h2>3.1 The AllianceFramework (CRL Core)<a class="headerlink" href="#the-allianceframework-crl-core" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The <span class="sc">Hurricane</span> database only manage objects in memory. To load or save
|
||||
|
@ -442,9 +480,16 @@ not mandatory.</p>
|
|||
<span class="n">i</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p class="last">Unlike some other database models, in <span class="sc">Hurricane</span>,
|
||||
<strong>there is no explicit terminal object</strong>, you only need to make the
|
||||
net external. For more information about how to connect to an
|
||||
external net, see <a class="reference external" href="./Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a>.</p>
|
||||
</div>
|
||||
<div class="section" id="creating-a-component">
|
||||
<h3>3.6.3 Creating a Component<a class="headerlink" href="#creating-a-component" title="Permalink to this headline">¶</a></h3>
|
||||
</div>
|
||||
<div class="section" id="id1">
|
||||
<h3>3.6.3 Creating a Component<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Finally, we get ready to create a <a class="reference external" href="../../hurricane/classHurricane_1_1Component.html">Component</a>, we will make a <a class="reference external" href="../../hurricane/classHurricane_1_1Vertical.html">Vertical</a> segment
|
||||
of <code class="docutils literal"><span class="pre">METAL1</span></code>.</p>
|
||||
<div class="highlight-Python"><div class="highlight"><pre><span></span><span class="n">segment</span> <span class="o">=</span> <span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">i</span> <span class="c1"># The owner Net.</span>
|
||||
|
@ -499,6 +544,116 @@ will be written in the <span class="sc">Alliance</span> <code class="docutils li
|
|||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-complete-example-file">
|
||||
<h2>3.8 The Complete Example File<a class="headerlink" href="#the-complete-example-file" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The example files can be found in the <code class="docutils literal"><span class="pre">share/doc/coriolis2/examples/scripts/</span></code>
|
||||
directory (under the the root of the <span class="sc">Coriolis</span> installation).</p>
|
||||
<p>The code needed to run it through the <span class="cb">cgt</span> viewer as been added. For the
|
||||
explanation of that part of the code, refer to <a class="reference external" href="./CgtScript.html">5. Make a script runnable through cgt</a>.</p>
|
||||
<div class="highlight-Python"><div class="highlight"><pre><span></span><span class="ch">#!/usr/bin/python</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="kn">from</span> <span class="nn">Hurricane</span> <span class="kn">import</span> <span class="o">*</span>
|
||||
<span class="kn">from</span> <span class="nn">CRL</span> <span class="kn">import</span> <span class="o">*</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">toDbU</span> <span class="p">(</span> <span class="n">l</span> <span class="p">):</span> <span class="k">return</span> <span class="n">DbU</span><span class="o">.</span><span class="n">fromLambda</span><span class="p">(</span><span class="n">l</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">doBreak</span> <span class="p">(</span> <span class="n">level</span><span class="p">,</span> <span class="n">message</span> <span class="p">):</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
<span class="n">Breakpoint</span><span class="o">.</span><span class="n">stop</span><span class="p">(</span> <span class="n">level</span><span class="p">,</span> <span class="n">message</span> <span class="p">)</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">buildInvertor</span> <span class="p">(</span> <span class="n">editor</span> <span class="p">):</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
<span class="n">cell</span> <span class="o">=</span> <span class="n">AllianceFramework</span><span class="o">.</span><span class="n">get</span><span class="p">()</span><span class="o">.</span><span class="n">createCell</span><span class="p">(</span> <span class="s1">'invertor'</span> <span class="p">)</span>
|
||||
<span class="n">cell</span><span class="o">.</span><span class="n">setTerminal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">cell</span><span class="o">.</span><span class="n">setAbutmentBox</span><span class="p">(</span> <span class="n">Box</span><span class="p">(</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">50.0</span><span class="p">)</span> <span class="p">)</span> <span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">editor</span><span class="p">:</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
<span class="n">editor</span><span class="o">.</span><span class="n">setCell</span><span class="p">(</span> <span class="n">cell</span> <span class="p">)</span>
|
||||
<span class="n">editor</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
<span class="n">technology</span> <span class="o">=</span> <span class="n">DataBase</span><span class="o">.</span><span class="n">getDB</span><span class="p">()</span><span class="o">.</span><span class="n">getTechnology</span><span class="p">()</span>
|
||||
<span class="n">metal1</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"METAL1"</span> <span class="p">)</span>
|
||||
<span class="n">poly</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"POLY"</span> <span class="p">)</span>
|
||||
<span class="n">ptrans</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"PTRANS"</span> <span class="p">)</span>
|
||||
<span class="n">ntrans</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NTRANS"</span> <span class="p">)</span>
|
||||
<span class="n">pdif</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"PDIF"</span> <span class="p">)</span>
|
||||
<span class="n">ndif</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NDIF"</span> <span class="p">)</span>
|
||||
<span class="n">contdifn</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"CONT_DIF_N"</span> <span class="p">)</span>
|
||||
<span class="n">contdifp</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"CONT_DIF_P"</span> <span class="p">)</span>
|
||||
<span class="n">nwell</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NWELL"</span> <span class="p">)</span>
|
||||
<span class="n">contpoly</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"CONT_POLY"</span> <span class="p">)</span>
|
||||
<span class="n">ntie</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NTIE"</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">net</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"nwell"</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">net</span><span class="p">,</span> <span class="n">nwell</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">7.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">27.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">51.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">vdd</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||||
<span class="n">vdd</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">vdd</span><span class="o">.</span><span class="n">setGlobal</span> <span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="n">Horizontal</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">vdd</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">47.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">6.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">h</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">contdifn</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">47.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">contdifp</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">45.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">pdif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">28.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">46.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">ntie</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">43.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">48.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building vdd.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">vss</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||||
<span class="n">vss</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">vss</span><span class="o">.</span><span class="n">setGlobal</span> <span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="n">Horizontal</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">vss</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">6.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">))</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">h</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">vss</span><span class="p">,</span> <span class="n">ndif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">3.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">12.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">vss</span><span class="p">,</span> <span class="n">contdifn</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">5.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building vss.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">i</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"i"</span> <span class="p">)</span>
|
||||
<span class="n">i</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">5.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">2.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">40.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">v</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">ptrans</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">26.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">39.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">ntrans</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">6.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">14.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">poly</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">14.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">26.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Horizontal</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">poly</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">20.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">contpoly</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">5.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">20.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building i.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">nq</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"nq"</span> <span class="p">)</span>
|
||||
<span class="n">nq</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">2.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">40.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">v</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">pdif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">28.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">37.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">ndif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">8.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">12.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">contdifp</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">35.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">contdifp</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">30.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">contdifn</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building q.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
<span class="n">AllianceFramework</span><span class="o">.</span><span class="n">get</span><span class="p">()</span><span class="o">.</span><span class="n">saveCell</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="n">Catalog</span><span class="o">.</span><span class="n">State</span><span class="o">.</span><span class="n">Views</span> <span class="p">)</span>
|
||||
|
||||
<span class="k">return</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">ScriptMain</span> <span class="p">(</span> <span class="o">**</span><span class="n">kw</span> <span class="p">):</span>
|
||||
<span class="n">editor</span> <span class="o">=</span> <span class="bp">None</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s1">'editor'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">kw</span><span class="p">[</span><span class="s1">'editor'</span><span class="p">]:</span>
|
||||
<span class="n">editor</span> <span class="o">=</span> <span class="n">kw</span><span class="p">[</span><span class="s1">'editor'</span><span class="p">]</span>
|
||||
|
||||
<span class="n">buildInvertor</span><span class="p">(</span> <span class="n">editor</span> <span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">True</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -522,7 +677,7 @@ will be written in the <span class="sc">Alliance</span> <code class="docutils li
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
href="../genindex.html"/>
|
||||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="up" title="Hurricane Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="Stratus Reference" href="../Stratus/Stratus.html"/>
|
||||
<link rel="up" title="Hurricane+Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="6. Making a hierarchical Cell – Netlist" href="Netlist.html"/>
|
||||
<link rel="prev" title="4. Manipulating Cells, Nets and Components" href="Collections.html"/>
|
||||
|
||||
|
||||
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -295,7 +328,7 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li><a href="index.html">Hurricane Python Tutorial</a> »</li>
|
||||
<li><a href="index.html">Hurricane+Python Tutorial</a> »</li>
|
||||
|
||||
<li>5. Make a script runnable through <span class="cb">cgt</span></li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
@ -308,8 +341,8 @@
|
|||
</div>
|
||||
<div role="main" class="document">
|
||||
|
||||
<div class="section" id="make-a-script-runnable-through-cgt">
|
||||
<h1>5. Make a script runnable through <span class="cb">cgt</span><a class="headerlink" href="#make-a-script-runnable-through-cgt" title="Permalink to this headline">¶</a></h1>
|
||||
<div class="section" id="id1">
|
||||
<h1>5. Make a script runnable through <span class="cb">cgt</span><a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h1>
|
||||
<p>To use your you may run it directly like any other <span class="sc">Python</span> script.
|
||||
But, for debugging purpose it may be helpful to run it through the
|
||||
interactive layout viewer <span class="cb">cgt</span>.</p>
|
||||
|
@ -323,6 +356,17 @@ using the menu:</p>
|
|||
<li><span class="fboxtt">Tools</span> <img class="math" src="../_images/math/db2555e54bec0d091b2124dccd645c2d7ddaae68.png" alt="\rightarrow"/> <span class="fboxtt">Python Script</span>. The script
|
||||
file name must be given without the <code class="docutils literal"><span class="pre">.py</span></code> extension.</li>
|
||||
</ul>
|
||||
<div class="admonition note">
|
||||
<p class="first admonition-title">Note</p>
|
||||
<p>If you use breakpoints and want to see the progress of your
|
||||
script in the viewer, do not use the <code class="docutils literal"><span class="pre">--script</span></code> option of
|
||||
<span class="cb">cgt</span>.</p>
|
||||
<div class="highlight-console"><div class="highlight"><pre><span></span><span class="go">ego@home:~> cgt -V --script=invertor</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p class="last">Because the script is run <strong>before</strong> the viewer is launched,
|
||||
you will only see the end result of your script.</p>
|
||||
</div>
|
||||
<div class="highlight-Python"><div class="highlight"><pre><span></span><span class="k">def</span> <span class="nf">buildInvertor</span> <span class="p">(</span> <span class="n">editor</span> <span class="p">):</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
|
@ -369,112 +413,6 @@ The <code class="docutils literal"><span class="pre">Breakpoint.stop()</span></c
|
|||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="the-complete-example-file">
|
||||
<h1>6. The Complete Example File<a class="headerlink" href="#the-complete-example-file" title="Permalink to this headline">¶</a></h1>
|
||||
<p>The example files can be found in the <code class="docutils literal"><span class="pre">share/doc/coriolis2/examples/scripts/</span></code>
|
||||
directory (under the the root of the <span class="sc">Coriolis</span> installation).</p>
|
||||
<div class="highlight-Python"><div class="highlight"><pre><span></span><span class="ch">#!/usr/bin/python</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="kn">from</span> <span class="nn">Hurricane</span> <span class="kn">import</span> <span class="o">*</span>
|
||||
<span class="kn">from</span> <span class="nn">CRL</span> <span class="kn">import</span> <span class="o">*</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">toDbU</span> <span class="p">(</span> <span class="n">l</span> <span class="p">):</span> <span class="k">return</span> <span class="n">DbU</span><span class="o">.</span><span class="n">fromLambda</span><span class="p">(</span><span class="n">l</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">doBreak</span> <span class="p">(</span> <span class="n">level</span><span class="p">,</span> <span class="n">message</span> <span class="p">):</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
<span class="n">Breakpoint</span><span class="o">.</span><span class="n">stop</span><span class="p">(</span> <span class="n">level</span><span class="p">,</span> <span class="n">message</span> <span class="p">)</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">buildInvertor</span> <span class="p">(</span> <span class="n">editor</span> <span class="p">):</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
<span class="n">cell</span> <span class="o">=</span> <span class="n">AllianceFramework</span><span class="o">.</span><span class="n">get</span><span class="p">()</span><span class="o">.</span><span class="n">createCell</span><span class="p">(</span> <span class="s1">'invertor'</span> <span class="p">)</span>
|
||||
<span class="n">cell</span><span class="o">.</span><span class="n">setTerminal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">cell</span><span class="o">.</span><span class="n">setAbutmentBox</span><span class="p">(</span> <span class="n">Box</span><span class="p">(</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">50.0</span><span class="p">)</span> <span class="p">)</span> <span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">editor</span><span class="p">:</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
<span class="n">editor</span><span class="o">.</span><span class="n">setCell</span><span class="p">(</span> <span class="n">cell</span> <span class="p">)</span>
|
||||
<span class="n">editor</span><span class="o">.</span><span class="n">fit</span><span class="p">()</span>
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">open</span><span class="p">()</span>
|
||||
|
||||
<span class="n">technology</span> <span class="o">=</span> <span class="n">DataBase</span><span class="o">.</span><span class="n">getDB</span><span class="p">()</span><span class="o">.</span><span class="n">getTechnology</span><span class="p">()</span>
|
||||
<span class="n">metal1</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"METAL1"</span> <span class="p">)</span>
|
||||
<span class="n">poly</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"POLY"</span> <span class="p">)</span>
|
||||
<span class="n">ptrans</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"PTRANS"</span> <span class="p">)</span>
|
||||
<span class="n">ntrans</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NTRANS"</span> <span class="p">)</span>
|
||||
<span class="n">pdif</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"PDIF"</span> <span class="p">)</span>
|
||||
<span class="n">ndif</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NDIF"</span> <span class="p">)</span>
|
||||
<span class="n">contdifn</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"CONT_DIF_N"</span> <span class="p">)</span>
|
||||
<span class="n">contdifp</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"CONT_DIF_P"</span> <span class="p">)</span>
|
||||
<span class="n">nwell</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NWELL"</span> <span class="p">)</span>
|
||||
<span class="n">contpoly</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"CONT_POLY"</span> <span class="p">)</span>
|
||||
<span class="n">ntie</span> <span class="o">=</span> <span class="n">technology</span><span class="o">.</span><span class="n">getLayer</span><span class="p">(</span> <span class="s2">"NTIE"</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">net</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"nwell"</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">net</span><span class="p">,</span> <span class="n">nwell</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">7.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">27.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">51.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">vdd</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"vdd"</span> <span class="p">)</span>
|
||||
<span class="n">vdd</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">vdd</span><span class="o">.</span><span class="n">setGlobal</span> <span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="n">Horizontal</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">vdd</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">47.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">6.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">h</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">contdifn</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">47.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">contdifp</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">45.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">pdif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">28.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">46.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">vdd</span><span class="p">,</span> <span class="n">ntie</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">43.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">48.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building vdd.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">vss</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"vss"</span> <span class="p">)</span>
|
||||
<span class="n">vss</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">vss</span><span class="o">.</span><span class="n">setGlobal</span> <span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="n">Horizontal</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="n">vss</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">6.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">0.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">15.0</span><span class="p">))</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">h</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">vss</span><span class="p">,</span> <span class="n">ndif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">3.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">12.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">vss</span><span class="p">,</span> <span class="n">contdifn</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">5.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building vss.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">i</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"i"</span> <span class="p">)</span>
|
||||
<span class="n">i</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">5.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">2.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">40.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">v</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">ptrans</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">26.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">39.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">ntrans</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">6.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">14.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">poly</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">14.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">26.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Horizontal</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">poly</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">20.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">4.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">7.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">i</span><span class="p">,</span> <span class="n">contpoly</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">5.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">20.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building i.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">nq</span> <span class="o">=</span> <span class="n">Net</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">cell</span><span class="p">,</span> <span class="s2">"nq"</span> <span class="p">)</span>
|
||||
<span class="n">nq</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="bp">True</span> <span class="p">)</span>
|
||||
<span class="n">v</span> <span class="o">=</span> <span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">metal1</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">2.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">40.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">NetExternalComponents</span><span class="o">.</span><span class="n">setExternal</span><span class="p">(</span> <span class="n">v</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">pdif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">28.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">37.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Vertical</span><span class="o">.</span><span class="n">create</span><span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">ndif</span> <span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">3.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">8.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">12.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">contdifp</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">35.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">contdifp</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">30.5</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">Contact</span><span class="o">.</span><span class="n">create</span> <span class="p">(</span> <span class="n">nq</span><span class="p">,</span> <span class="n">contdifn</span><span class="p">,</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span><span class="mf">10.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">),</span> <span class="n">toDbU</span><span class="p">(</span> <span class="mf">1.0</span><span class="p">)</span> <span class="p">)</span>
|
||||
<span class="n">doBreak</span><span class="p">(</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'Done building q.'</span> <span class="p">)</span>
|
||||
|
||||
<span class="n">UpdateSession</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">ScriptMain</span> <span class="p">(</span> <span class="o">**</span><span class="n">kw</span> <span class="p">):</span>
|
||||
<span class="n">editor</span> <span class="o">=</span> <span class="bp">None</span>
|
||||
<span class="k">if</span> <span class="n">kw</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="s1">'editor'</span><span class="p">)</span> <span class="ow">and</span> <span class="n">kw</span><span class="p">[</span><span class="s1">'editor'</span><span class="p">]:</span>
|
||||
<span class="n">editor</span> <span class="o">=</span> <span class="n">kw</span><span class="p">[</span><span class="s1">'editor'</span><span class="p">]</span>
|
||||
|
||||
<span class="n">buildInvertor</span><span class="p">(</span> <span class="n">editor</span> <span class="p">)</span>
|
||||
<span class="k">return</span> <span class="bp">True</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
@ -483,7 +421,7 @@ directory (under the the root of the <span class="sc">Coriolis</span> installati
|
|||
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
|
||||
<a href="../Stratus/Stratus.html" class="btn btn-neutral float-right" title="Stratus Reference" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
<a href="Netlist.html" class="btn btn-neutral float-right" title="6. Making a hierarchical Cell – Netlist" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
<a href="Collections.html" class="btn btn-neutral" title="4. Manipulating Cells, Nets and Components" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
@ -498,7 +436,7 @@ directory (under the the root of the <span class="sc">Coriolis</span> installati
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -34,9 +34,9 @@
|
|||
href="../genindex.html"/>
|
||||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="up" title="Hurricane Python Tutorial" href="index.html"/>
|
||||
<link rel="up" title="Hurricane+Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="5. Make a script runnable through cgt" href="CgtScript.html"/>
|
||||
<link rel="prev" title="3. Creating Cell, Net and Component" href="CellNetComponent.html"/>
|
||||
<link rel="prev" title="3. Making a Standard Cell – Layout" href="CellNetComponent.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -295,7 +328,7 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li><a href="index.html">Hurricane Python Tutorial</a> »</li>
|
||||
<li><a href="index.html">Hurricane+Python Tutorial</a> »</li>
|
||||
|
||||
<li>4. Manipulating Cells, Nets and Components</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
@ -392,7 +425,7 @@ they may unexpectedly shadow cells from the libraries.</p>
|
|||
<a href="CgtScript.html" class="btn btn-neutral float-right" title="5. Make a script runnable through cgt" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
<a href="CellNetComponent.html" class="btn btn-neutral" title="3. Creating Cell, Net and Component" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
<a href="CellNetComponent.html" class="btn btn-neutral" title="3. Making a Standard Cell – Layout" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -404,7 +437,7 @@ they may unexpectedly shadow cells from the libraries.</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
href="../genindex.html"/>
|
||||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="up" title="Hurricane Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="3. Creating Cell, Net and Component" href="CellNetComponent.html"/>
|
||||
<link rel="up" title="Hurricane+Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="3. Making a Standard Cell – Layout" href="CellNetComponent.html"/>
|
||||
<link rel="prev" title="1. Introduction" href="Introduction.html"/>
|
||||
|
||||
|
||||
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -295,7 +328,7 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li><a href="index.html">Hurricane Python Tutorial</a> »</li>
|
||||
<li><a href="index.html">Hurricane+Python Tutorial</a> »</li>
|
||||
|
||||
<li>2. Setting up the Environment</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
@ -394,7 +427,7 @@ in <a class="reference external" href="../UsersGuide/ViewerTools.html">CGT - The
|
|||
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
|
||||
<a href="CellNetComponent.html" class="btn btn-neutral float-right" title="3. Creating Cell, Net and Component" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
<a href="CellNetComponent.html" class="btn btn-neutral float-right" title="3. Making a Standard Cell – Layout" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
<a href="Introduction.html" class="btn btn-neutral" title="1. Introduction" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
@ -409,7 +442,7 @@ in <a class="reference external" href="../UsersGuide/ViewerTools.html">CGT - The
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -34,9 +34,9 @@
|
|||
href="../genindex.html"/>
|
||||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="up" title="Hurricane Python Tutorial" href="index.html"/>
|
||||
<link rel="up" title="Hurricane+Python Tutorial" href="index.html"/>
|
||||
<link rel="next" title="2. Setting up the Environment" href="Environment.html"/>
|
||||
<link rel="prev" title="Hurricane Python Tutorial" href="index.html"/>
|
||||
<link rel="prev" title="Hurricane+Python Tutorial" href="index.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul class="current">
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -295,7 +328,7 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li><a href="index.html">Hurricane Python Tutorial</a> »</li>
|
||||
<li><a href="index.html">Hurricane+Python Tutorial</a> »</li>
|
||||
|
||||
<li>1. Introduction</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
@ -323,8 +356,46 @@ The only limitation is that you may not use <span class="sc">Hurricane</span> cl
|
|||
classes in <span class="sc">Python</span>.</p>
|
||||
<p>All <span class="sc">Hurricane</span> objects implements the <span class="sc">Python</span> <code class="docutils literal"><span class="pre">__str__()</span></code> function,
|
||||
they print the result of C++ <code class="docutils literal"><span class="pre">::getString()</span></code>.</p>
|
||||
<div class="section" id="terminology">
|
||||
<h2>1.1 Terminology<a class="headerlink" href="#terminology" title="Permalink to this headline">¶</a></h2>
|
||||
<p>In the <span class="sc">Hurricane</span> database, the <em>logical</em> (netlist) and <em>physical</em> (layout)
|
||||
views are fused. As the main goal of the database is to support place & route
|
||||
tools, we usually starts with a <em>pure</em> netlist which is progessively enriched
|
||||
to become a layout. Cell, in particular, is able to be in any intermediate
|
||||
state. Many of our objects have self-explanatory names, but some
|
||||
don’t. Thus we summarize below the more important ones:</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="22%" />
|
||||
<col width="78%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr class="row-odd"><th class="head"><strong>Class</strong></th>
|
||||
<th class="head"><strong>Meaning</strong></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr class="row-even"><td><a class="reference external" href="../../hurricane/classHurricane_1_1Cell.html">Cell</a></td>
|
||||
<td>The model. A Cell do not have terminals, only nets
|
||||
flagged as <em>external</em></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference external" href="../../hurricane/classHurricane_1_1Instance.html">Instance</a></td>
|
||||
<td>An instance of a model</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference external" href="../../hurricane/classHurricane_1_1Net.html">Net</a></td>
|
||||
<td>A grouping of electrically connecteds components</td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><a class="reference external" href="../../hurricane/classHurricane_1_1Plug.html">Plug</a></td>
|
||||
<td>A terminal of an instance</td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><a class="reference external" href="../../hurricane/classHurricane_1_1RoutingPad.html">RoutingPad</a></td>
|
||||
<td>A physical connexion (<em>pin</em>) to an instance</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section" id="generalities">
|
||||
<h2>1.1 Generalities<a class="headerlink" href="#generalities" title="Permalink to this headline">¶</a></h2>
|
||||
<h2>1.2 Generalities<a class="headerlink" href="#generalities" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The C++ API has been exported in Python as closely as possible. Meaning
|
||||
that, save for a slight change in syntax, any code written in <span class="sc">Python</span>
|
||||
could be easily transformed into C++ code. There is no specific documentation
|
||||
|
@ -376,7 +447,7 @@ semantic (see ??).</li>
|
|||
</div>
|
||||
</div>
|
||||
<div class="section" id="various-kinds-of-constructors">
|
||||
<h2>1.2 Various Kinds of Constructors<a class="headerlink" href="#various-kinds-of-constructors" title="Permalink to this headline">¶</a></h2>
|
||||
<h2>1.3 Various Kinds of Constructors<a class="headerlink" href="#various-kinds-of-constructors" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Regarding the memory allocation, the <span class="sc">Hurricane</span> database contains two kind of objects.</p>
|
||||
<ol class="arabic">
|
||||
<li><p class="first">Objects that are linked to others in the database and whose creation or deletion
|
||||
|
@ -416,7 +487,7 @@ to be explicitly deleted.</p>
|
|||
<a href="Environment.html" class="btn btn-neutral float-right" title="2. Setting up the Environment" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
<a href="index.html" class="btn btn-neutral" title="Hurricane Python Tutorial" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
<a href="index.html" class="btn btn-neutral" title="Hurricane+Python Tutorial" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -428,7 +499,7 @@ to be explicitly deleted.</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -147,10 +147,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -162,7 +163,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -171,10 +172,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -189,7 +191,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -316,7 +349,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Hurricane Python Tutorial — Coriolis 2 documentation</title>
|
||||
<title>Hurricane+Python Tutorial — Coriolis 2 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -294,7 +327,7 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li>Hurricane Python Tutorial</li>
|
||||
<li>Hurricane+Python Tutorial</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
|
@ -306,13 +339,17 @@
|
|||
<div role="main" class="document">
|
||||
|
||||
<div class="section" id="hurricane-python-tutorial">
|
||||
<h1>Hurricane Python Tutorial<a class="headerlink" href="#hurricane-python-tutorial" title="Permalink to this headline">¶</a></h1>
|
||||
<h1>Hurricane+Python Tutorial<a class="headerlink" href="#hurricane-python-tutorial" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Printable version of this document <a class="reference external" href="../../../pdf/main/PythonTutorial.pdf">PythonTutorial.pdf</a>.</p>
|
||||
<p>First, a small disclaimer. This tutorial assume that you are already familiar
|
||||
with the concepts of <span class="sc">vlsi</span> designs, such as <em>netlist</em>, <em>layout</em>, <em>instances</em>
|
||||
and hierarchical design.</p>
|
||||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -320,7 +357,7 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="Environment.html#user-s-configurations-file">2.2 User’s Configurations File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -328,6 +365,7 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#setting-up-the-abutment-box">3.5 Setting up the Abutment Box</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -339,7 +377,32 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -365,7 +428,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<title>Hurricane Python Tutorial — Coriolis 2 documentation</title>
|
||||
<title>Hurricane+Python Tutorial — Coriolis 2 documentation</title>
|
||||
|
||||
|
||||
|
||||
|
@ -147,10 +147,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -162,7 +163,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -171,10 +172,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -189,7 +191,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -292,7 +325,7 @@
|
|||
<ul class="wy-breadcrumbs">
|
||||
<li><a href="../index.html">Docs</a> »</li>
|
||||
|
||||
<li>Hurricane Python Tutorial</li>
|
||||
<li>Hurricane+Python Tutorial</li>
|
||||
<li class="wy-breadcrumbs-aside">
|
||||
|
||||
|
||||
|
@ -304,12 +337,16 @@
|
|||
<div role="main" class="document">
|
||||
|
||||
<div class="section" id="hurricane-python-tutorial">
|
||||
<h1><a class="toc-backref" href="#id1">Hurricane Python Tutorial</a><a class="headerlink" href="#hurricane-python-tutorial" title="Permalink to this headline">¶</a></h1>
|
||||
<h1><a class="toc-backref" href="#id1">Hurricane+Python Tutorial</a><a class="headerlink" href="#hurricane-python-tutorial" title="Permalink to this headline">¶</a></h1>
|
||||
<p></p>
|
||||
<p> <span class="raw-html"><p class="noindent"></p></span>
|
||||
<strong>First, a small disclaimer.</strong> This tutorial assume that you are already familiar
|
||||
with the concepts of <span class="sc">vlsi</span> designs, such as <em>netlist</em>, <em>layout</em>, <em>instances</em>
|
||||
and hierarchical design.</p>
|
||||
<div class="contents topic" id="contents">
|
||||
<p class="topic-title first">Contents</p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference internal" href="#hurricane-python-tutorial" id="id1">Hurricane Python Tutorial</a></li>
|
||||
<li><a class="reference internal" href="#hurricane-python-tutorial" id="id1">Hurricane+Python Tutorial</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p></p>
|
||||
|
@ -327,7 +364,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -791,7 +824,7 @@ wire width and minimal spacing for the routers. They are patly redundant.</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -350,7 +383,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="next" title="DpGen Reference" href="../DpGen/DpGen.html"/>
|
||||
<link rel="prev" title="5. Make a script runnable through cgt" href="../PythonTutorial/CgtScript.html"/>
|
||||
<link rel="prev" title="9. Advanced Topics" href="../PythonTutorial/AdvancedTopics.html"/>
|
||||
|
||||
|
||||
<script src="_static/js/modernizr.min.js"></script>
|
||||
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Stratus Reference</a></li>
|
||||
|
@ -320,7 +353,7 @@ available here: <a class="reference external" href="file:../../stratus/index.htm
|
|||
<a href="../DpGen/DpGen.html" class="btn btn-neutral float-right" title="DpGen Reference" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
<a href="../PythonTutorial/CgtScript.html" class="btn btn-neutral" title="5. Make a script runnable through cgt" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
<a href="../PythonTutorial/AdvancedTopics.html" class="btn btn-neutral" title="9. Advanced Topics" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../stratus/index.htm
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../unicorn/index.htm
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -674,7 +707,7 @@ in <span class="cb"><CWD>/.coriolis2/settings.py</span> (that is, written
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -582,7 +615,7 @@ infinite loop if it’s called again in, say <span class="cb">~/.bashrc</spa
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -359,7 +392,7 @@ copyright© Chris C. N. <span class="sc">Chu</span> from the Iowa State Universi
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -416,7 +449,7 @@ whole design down and including the standard cells.</li>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
<link rel="search" title="Search" href="../search.html"/>
|
||||
<link rel="top" title="Coriolis 2 documentation" href="../index.html"/>
|
||||
<link rel="up" title="Coriolis User’s Guide" href="index.html"/>
|
||||
<link rel="next" title="Hurricane Python Tutorial" href="../PythonTutorial/index.html"/>
|
||||
<link rel="next" title="Hurricane+Python Tutorial" href="../PythonTutorial/index.html"/>
|
||||
<link rel="prev" title="CGT - The Graphical Interface" href="ViewerTools.html"/>
|
||||
|
||||
|
||||
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -699,7 +732,7 @@ then run the <span class="sc">Python</span> script <span class="cb">doChip.py</s
|
|||
|
||||
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
|
||||
|
||||
<a href="../PythonTutorial/index.html" class="btn btn-neutral float-right" title="Hurricane Python Tutorial" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
<a href="../PythonTutorial/index.html" class="btn btn-neutral float-right" title="Hurricane+Python Tutorial" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
|
||||
|
||||
|
||||
<a href="ViewerTools.html" class="btn btn-neutral" title="CGT - The Graphical Interface" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
||||
|
@ -714,7 +747,7 @@ then run the <span class="sc">Python</span> script <span class="cb">doChip.py</s
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -150,10 +150,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -165,7 +166,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -174,10 +175,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -192,7 +194,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -1206,7 +1239,7 @@ is deleted, you will crash the application...</p>
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -371,7 +404,7 @@
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -149,10 +149,11 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane Python Tutorial</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../PythonTutorial/index.html">Hurricane+Python Tutorial</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Introduction.html">1. Introduction</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.1 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.2 Various Kinds of Constructors</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#terminology">1.1 Terminology</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#generalities">1.2 Generalities</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Introduction.html#various-kinds-of-constructors">1.3 Various Kinds of Constructors</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Environment.html">2. Setting up the Environment</a><ul>
|
||||
|
@ -164,7 +165,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Creating Cell, Net and Component</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html">3. Making a Standard Cell – Layout</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-allianceframework-crl-core">3.1 The AllianceFramework (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#session-mechanism-hurricane">3.2 Session Mechanism (Hurricane)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-new-cell-crl-core">3.3 Creating a new Cell (CRL Core)</a></li>
|
||||
|
@ -173,10 +174,11 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#adding-nets-and-components">3.6 Adding Nets and Components</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#getting-a-layer">3.6.1 Getting a Layer</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-net">3.6.2 Creating a Net</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#creating-a-component">3.6.3 Creating a Component</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#id1">3.6.3 Creating a Component</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#saving-to-disk-crl-core">3.7 Saving to Disk (CRL Core)</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CellNetComponent.html#the-complete-example-file">3.8 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Collections.html">4. Manipulating Cells, Nets and Components</a><ul>
|
||||
|
@ -191,7 +193,38 @@
|
|||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/CgtScript.html#using-breakpoints">5.1 Using Breakpoints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/CgtScript.html#the-complete-example-file">6. The Complete Example File</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/Netlist.html">6. Making a hierarchical Cell – Netlist</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-an-instance">6.1 Creating an Instance</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#id1">6.2 Creating Nets and connecting to Instances</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#power-supplies-special-case">6.3 Power supplies special case</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#creating-the-physical-view-of-a-cell-netlist">6.4 Creating the physical view of a Cell netlist</a><ul>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#id2">6.4.1 Transformation</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#placing-an-instance">6.4.2 Placing an Instance</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-from-plugs-to-routingpads">6.4.3 Nets – From Plugs to RoutingPads</a></li>
|
||||
<li class="toctree-l4"><a class="reference internal" href="../PythonTutorial/Netlist.html#nets-regular-wiring">6.4.4 Nets – Regular wiring</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/Netlist.html#the-complete-example-file">6.5 The Complete Example File</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/RealDesigns.html">7. Working in real mode</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-lef-file">7.1 Loading a <span class="sc">lef</span> file</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/RealDesigns.html#loading-a-blif-file-yosys">7.2 Loading a <span class="sc">blif</span> file – <span class="sc">Yosys</span></a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/ToolEngines.html">8. Tool Engines (CRL Core)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#placer-etesian">8.1 Placer – Etesian</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#router-katana">8.1 Router – Katana</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/ToolEngines.html#a-complete-example">8.2 A Complete Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html">9. Advanced Topics</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id1">9.1 Occurrence</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#id2">9.2 RoutingPads</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#hypernets">9.3 HyperNets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="../PythonTutorial/AdvancedTopics.html#miscellaeous-trans-hierarchical-functions">9.4 Miscellaeous trans-hierarchical functions</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Stratus/Stratus.html">Stratus Reference</a></li>
|
||||
|
@ -332,7 +365,7 @@ available here: <a class="reference external" href="file:../../viewer/index.html
|
|||
<tr>
|
||||
<td class="LFooter"><small>
|
||||
Generated by <a href="http://sphinx-doc.org/">Sphinx</a>
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 16, 2018.
|
||||
using a <a href="https://readthedocs.org">RTD</a> theme on Mar 18, 2018.
|
||||
</small></td>
|
||||
<td class="RFooter"></td>
|
||||
</tr>
|
||||
|
|
|
@ -3,10 +3,17 @@
|
|||
.. include:: ./definitions.rst
|
||||
|
||||
|
||||
3. Creating Cell, Net and Component
|
||||
=======================================
|
||||
|
||||
In this part, we well show how to create and save a single Cell_.
|
||||
3. Making a Standard Cell -- Layout
|
||||
===================================
|
||||
|
||||
In this part, we well show how to create and save a terminal Cell_,
|
||||
that is, a cell without instances (the end point of a hierarchical
|
||||
design). To illustrate the case we will draw the layout of a
|
||||
standard cell.
|
||||
|
||||
We will introduce the following classes : Cell_, Net_, Component_
|
||||
and it's derived classes.
|
||||
|
||||
|
||||
3.1 The AllianceFramework (CRL Core)
|
||||
|
@ -161,6 +168,11 @@ not mandatory.
|
|||
i = Net.create( cell, 'i' )
|
||||
i.setExternal( True )
|
||||
|
||||
.. note:: Unlike some other database models, in |Hurricane|,
|
||||
**there is no explicit terminal object**, you only need to make the
|
||||
net external. For more information about how to connect to an
|
||||
external net, see `6.2 Creating Nets and connecting to Instances`_.
|
||||
|
||||
|
||||
3.6.3 Creating a Component
|
||||
--------------------------
|
||||
|
@ -209,3 +221,118 @@ will be written in the |Alliance| ``WORK_DIR``.
|
|||
.. code-block:: Python
|
||||
|
||||
af.saveCell( cell, Catalog.State.Views )
|
||||
|
||||
|
||||
3.8 The Complete Example File
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The example files can be found in the ``share/doc/coriolis2/examples/scripts/``
|
||||
directory (under the the root of the |Coriolis| installation).
|
||||
|
||||
The code needed to run it through the |cgt| viewer as been added. For the
|
||||
explanation of that part of the code, refer to `5. Make a script runnable through cgt`_.
|
||||
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
from Hurricane import *
|
||||
from CRL import *
|
||||
|
||||
|
||||
def toDbU ( l ): return DbU.fromLambda(l)
|
||||
|
||||
|
||||
def doBreak ( level, message ):
|
||||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
def buildInvertor ( editor ):
|
||||
UpdateSession.open()
|
||||
|
||||
cell = AllianceFramework.get().createCell( 'invertor' )
|
||||
cell.setTerminal( True )
|
||||
|
||||
cell.setAbutmentBox( Box( toDbU(0.0), toDbU(0.0), toDbU(15.0), toDbU(50.0) ) )
|
||||
|
||||
if editor:
|
||||
UpdateSession.close()
|
||||
editor.setCell( cell )
|
||||
editor.fit()
|
||||
UpdateSession.open()
|
||||
|
||||
technology = DataBase.getDB().getTechnology()
|
||||
metal1 = technology.getLayer( "METAL1" )
|
||||
poly = technology.getLayer( "POLY" )
|
||||
ptrans = technology.getLayer( "PTRANS" )
|
||||
ntrans = technology.getLayer( "NTRANS" )
|
||||
pdif = technology.getLayer( "PDIF" )
|
||||
ndif = technology.getLayer( "NDIF" )
|
||||
contdifn = technology.getLayer( "CONT_DIF_N" )
|
||||
contdifp = technology.getLayer( "CONT_DIF_P" )
|
||||
nwell = technology.getLayer( "NWELL" )
|
||||
contpoly = technology.getLayer( "CONT_POLY" )
|
||||
ntie = technology.getLayer( "NTIE" )
|
||||
|
||||
net = Net.create( cell, "nwell" )
|
||||
Vertical.create( net, nwell, toDbU(7.5), toDbU(15.0), toDbU(27.0), toDbU(51.0) )
|
||||
|
||||
vdd = Net.create( cell, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True )
|
||||
h = Horizontal.create(vdd, metal1, toDbU(47.0), toDbU(6.0), toDbU(0.0), toDbU(15.0) )
|
||||
NetExternalComponents.setExternal( h )
|
||||
Contact.create ( vdd, contdifn, toDbU(10.0), toDbU(47.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( vdd, contdifp, toDbU( 4.0), toDbU(45.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Vertical.create( vdd, pdif , toDbU( 3.5), toDbU( 4.0), toDbU(28.0), toDbU(46.0) )
|
||||
Vertical.create( vdd, ntie , toDbU(10.0), toDbU( 3.0), toDbU(43.0), toDbU(48.0) )
|
||||
doBreak( 1, 'Done building vdd.' )
|
||||
|
||||
vss = Net.create( cell, "vss" )
|
||||
vss.setExternal( True )
|
||||
vss.setGlobal ( True )
|
||||
h = Horizontal.create(vss, metal1, toDbU(3.0), toDbU(6.0), toDbU(0.0), toDbU(15.0))
|
||||
NetExternalComponents.setExternal( h )
|
||||
Vertical.create( vss, ndif , toDbU(3.5), toDbU(4.0), toDbU(4.0), toDbU(12.0) )
|
||||
Contact.create ( vss, contdifn, toDbU(4.0), toDbU(5.0), toDbU(1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building vss.' )
|
||||
|
||||
i = Net.create( cell, "i" )
|
||||
i.setExternal( True )
|
||||
v = Vertical.create ( i, metal1, toDbU(5.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create ( i, ptrans , toDbU( 7.0), toDbU( 1.0), toDbU(26.0), toDbU(39.0) )
|
||||
Vertical.create ( i, ntrans , toDbU( 7.0), toDbU( 1.0), toDbU( 6.0), toDbU(14.0) )
|
||||
Vertical.create ( i, poly , toDbU( 7.0), toDbU( 1.0), toDbU(14.0), toDbU(26.0) )
|
||||
Horizontal.create( i, poly , toDbU(20.0), toDbU( 3.0), toDbU( 4.0), toDbU( 7.0) )
|
||||
Contact.create ( i, contpoly, toDbU( 5.0), toDbU(20.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building i.' )
|
||||
|
||||
nq = Net.create ( cell, "nq" )
|
||||
nq.setExternal( True )
|
||||
v = Vertical.create( nq, metal1, toDbU(10.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create( nq, pdif , toDbU(10.0), toDbU( 3.0), toDbU(28.0), toDbU(37.0) )
|
||||
Vertical.create( nq, ndif , toDbU(10.0), toDbU( 3.0), toDbU( 8.0), toDbU(12.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(35.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(30.5), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifn, toDbU(10.0), toDbU(10.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building q.' )
|
||||
|
||||
UpdateSession.close()
|
||||
AllianceFramework.get().saveCell( cell, Catalog.State.Views )
|
||||
|
||||
return
|
||||
|
||||
|
||||
def ScriptMain ( **kw ):
|
||||
editor = None
|
||||
if kw.has_key('editor') and kw['editor']:
|
||||
editor = kw['editor']
|
||||
|
||||
buildInvertor( editor )
|
||||
return True
|
||||
|
|
|
@ -21,6 +21,17 @@ using the menu:
|
|||
* :fboxtt:`Tools` |rightarrow| :fboxtt:`Python Script`. The script
|
||||
file name must be given without the ``.py`` extension.
|
||||
|
||||
.. note:: If you use breakpoints and want to see the progress of your
|
||||
script in the viewer, do not use the ``--script`` option of
|
||||
|cgt|.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
ego@home:~> cgt -V --script=invertor
|
||||
|
||||
Because the script is run **before** the viewer is launched,
|
||||
you will only see the end result of your script.
|
||||
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
|
@ -71,112 +82,3 @@ We can create a little function to ease the work:
|
|||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
6. The Complete Example File
|
||||
============================
|
||||
|
||||
The example files can be found in the ``share/doc/coriolis2/examples/scripts/``
|
||||
directory (under the the root of the |Coriolis| installation).
|
||||
|
||||
.. code-block:: Python
|
||||
|
||||
#!/usr/bin/python
|
||||
|
||||
import sys
|
||||
from Hurricane import *
|
||||
from CRL import *
|
||||
|
||||
|
||||
def toDbU ( l ): return DbU.fromLambda(l)
|
||||
|
||||
|
||||
def doBreak ( level, message ):
|
||||
UpdateSession.close()
|
||||
Breakpoint.stop( level, message )
|
||||
UpdateSession.open()
|
||||
|
||||
|
||||
def buildInvertor ( editor ):
|
||||
UpdateSession.open()
|
||||
|
||||
cell = AllianceFramework.get().createCell( 'invertor' )
|
||||
cell.setTerminal( True )
|
||||
|
||||
cell.setAbutmentBox( Box( toDbU(0.0), toDbU(0.0), toDbU(15.0), toDbU(50.0) ) )
|
||||
|
||||
if editor:
|
||||
UpdateSession.close()
|
||||
editor.setCell( cell )
|
||||
editor.fit()
|
||||
UpdateSession.open()
|
||||
|
||||
technology = DataBase.getDB().getTechnology()
|
||||
metal1 = technology.getLayer( "METAL1" )
|
||||
poly = technology.getLayer( "POLY" )
|
||||
ptrans = technology.getLayer( "PTRANS" )
|
||||
ntrans = technology.getLayer( "NTRANS" )
|
||||
pdif = technology.getLayer( "PDIF" )
|
||||
ndif = technology.getLayer( "NDIF" )
|
||||
contdifn = technology.getLayer( "CONT_DIF_N" )
|
||||
contdifp = technology.getLayer( "CONT_DIF_P" )
|
||||
nwell = technology.getLayer( "NWELL" )
|
||||
contpoly = technology.getLayer( "CONT_POLY" )
|
||||
ntie = technology.getLayer( "NTIE" )
|
||||
|
||||
net = Net.create( cell, "nwell" )
|
||||
Vertical.create( net, nwell, toDbU(7.5), toDbU(15.0), toDbU(27.0), toDbU(51.0) )
|
||||
|
||||
vdd = Net.create( cell, "vdd" )
|
||||
vdd.setExternal( True )
|
||||
vdd.setGlobal ( True )
|
||||
h = Horizontal.create(vdd, metal1, toDbU(47.0), toDbU(6.0), toDbU(0.0), toDbU(15.0) )
|
||||
NetExternalComponents.setExternal( h )
|
||||
Contact.create ( vdd, contdifn, toDbU(10.0), toDbU(47.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( vdd, contdifp, toDbU( 4.0), toDbU(45.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Vertical.create( vdd, pdif , toDbU( 3.5), toDbU( 4.0), toDbU(28.0), toDbU(46.0) )
|
||||
Vertical.create( vdd, ntie , toDbU(10.0), toDbU( 3.0), toDbU(43.0), toDbU(48.0) )
|
||||
doBreak( 1, 'Done building vdd.' )
|
||||
|
||||
vss = Net.create( cell, "vss" )
|
||||
vss.setExternal( True )
|
||||
vss.setGlobal ( True )
|
||||
h = Horizontal.create(vss, metal1, toDbU(3.0), toDbU(6.0), toDbU(0.0), toDbU(15.0))
|
||||
NetExternalComponents.setExternal( h )
|
||||
Vertical.create( vss, ndif , toDbU(3.5), toDbU(4.0), toDbU(4.0), toDbU(12.0) )
|
||||
Contact.create ( vss, contdifn, toDbU(4.0), toDbU(5.0), toDbU(1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building vss.' )
|
||||
|
||||
i = Net.create( cell, "i" )
|
||||
i.setExternal( True )
|
||||
v = Vertical.create ( i, metal1, toDbU(5.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create ( i, ptrans , toDbU( 7.0), toDbU( 1.0), toDbU(26.0), toDbU(39.0) )
|
||||
Vertical.create ( i, ntrans , toDbU( 7.0), toDbU( 1.0), toDbU( 6.0), toDbU(14.0) )
|
||||
Vertical.create ( i, poly , toDbU( 7.0), toDbU( 1.0), toDbU(14.0), toDbU(26.0) )
|
||||
Horizontal.create( i, poly , toDbU(20.0), toDbU( 3.0), toDbU( 4.0), toDbU( 7.0) )
|
||||
Contact.create ( i, contpoly, toDbU( 5.0), toDbU(20.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building i.' )
|
||||
|
||||
nq = Net.create ( cell, "nq" )
|
||||
nq.setExternal( True )
|
||||
v = Vertical.create( nq, metal1, toDbU(10.0), toDbU(2.0), toDbU(10.0), toDbU(40.0) )
|
||||
NetExternalComponents.setExternal( v )
|
||||
Vertical.create( nq, pdif , toDbU(10.0), toDbU( 3.0), toDbU(28.0), toDbU(37.0) )
|
||||
Vertical.create( nq, ndif , toDbU(10.0), toDbU( 3.0), toDbU( 8.0), toDbU(12.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(35.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifp, toDbU(10.0), toDbU(30.5), toDbU( 1.0), toDbU( 1.0) )
|
||||
Contact.create ( nq, contdifn, toDbU(10.0), toDbU(10.0), toDbU( 1.0), toDbU( 1.0) )
|
||||
doBreak( 1, 'Done building q.' )
|
||||
|
||||
UpdateSession.close()
|
||||
return
|
||||
|
||||
|
||||
def ScriptMain ( **kw ):
|
||||
editor = None
|
||||
if kw.has_key('editor') and kw['editor']:
|
||||
editor = kw['editor']
|
||||
|
||||
buildInvertor( editor )
|
||||
return True
|
||||
|
|
|
@ -23,7 +23,29 @@ All |Hurricane| objects implements the |Python| ``__str__()`` function,
|
|||
they print the result of C++ ``::getString()``.
|
||||
|
||||
|
||||
1.1 Generalities
|
||||
1.1 Terminology
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
In the |Hurricane| database, the *logical* (netlist) and *physical* (layout)
|
||||
views are fused. As the main goal of the database is to support place & route
|
||||
tools, we usually starts with a *pure* netlist which is progessively enriched
|
||||
to become a layout. Cell, in particular, is able to be in any intermediate
|
||||
state. Many of our objects have self-explanatory names, but some
|
||||
don't. Thus we summarize below the more important ones:
|
||||
|
||||
=============== =====================================================
|
||||
**Class** **Meaning**
|
||||
=============== =====================================================
|
||||
Cell_ The model. A Cell do not have terminals, only nets
|
||||
flagged as *external*
|
||||
Instance_ An instance of a model
|
||||
Net_ A grouping of electrically connecteds components
|
||||
Plug_ A terminal of an instance
|
||||
RoutingPad_ A physical connexion (*pin*) to an instance
|
||||
=============== =====================================================
|
||||
|
||||
|
||||
1.2 Generalities
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
The C++ API has been exported in Python as closely as possible. Meaning
|
||||
|
@ -85,7 +107,7 @@ The equivalent |Python| code will be:
|
|||
UpdateSession.close()
|
||||
|
||||
|
||||
1.2 Various Kinds of Constructors
|
||||
1.3 Various Kinds of Constructors
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Regarding the memory allocation, the |Hurricane| database contains two kind of objects.
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
|
||||
.. Hurricane doxygen doc links.
|
||||
.. _Breakpoint: ../../hurricane/classHurricane_1_1Breakpoint.html
|
||||
.. _UpdateSession: ../../hurricane/classHurricane_1_1UpdateSession.html
|
||||
.. _Layer: ../../hurricane/classHurricane_1_1Layer.html
|
||||
.. _Layers: ../../hurricane/classHurricane_1_1Layer.html
|
||||
|
@ -9,25 +10,47 @@
|
|||
.. _DataBase: ../../hurricane/classHurricane_1_1DataBase.html
|
||||
.. _DbU: ../../hurricane/classHurricane_1_1DbU.html
|
||||
.. _Point: ../../hurricane/classHurricane_1_1Point.html
|
||||
.. _Points: ../../hurricane/classHurricane_1_1Point.html
|
||||
.. _Box: ../../hurricane/classHurricane_1_1Box.html
|
||||
.. _Cell: ../../hurricane/classHurricane_1_1Cell.html
|
||||
.. _Net: ../../hurricane/classHurricane_1_1Net.html
|
||||
.. _Nets: ../../hurricane/classHurricane_1_1Net.html
|
||||
.. _NetExternalComponents: ../../hurricane/classHurricane_1_1NetExternalComponents.html
|
||||
.. _HyperNet: ../../hurricane/classHurricane_1_1HyperNet.html
|
||||
.. _Component: ../../hurricane/classHurricane_1_1Component.html
|
||||
.. _Components: ../../hurricane/classHurricane_1_1Component.html
|
||||
.. _Contact: ../../hurricane/classHurricane_1_1Contact.html
|
||||
.. _Contacts: ../../hurricane/classHurricane_1_1Contact.html
|
||||
.. _Pad: ../../hurricane/classHurricane_1_1Pad.html
|
||||
.. _RoutingPad: ../../hurricane/classHurricane_1_1RoutingPad.html
|
||||
.. _RoutingPads: ../../hurricane/classHurricane_1_1RoutingPad.html
|
||||
.. _Horizontal: ../../hurricane/classHurricane_1_1Horizontal.html
|
||||
.. _Vertical: ../../hurricane/classHurricane_1_1Vertical.html
|
||||
.. _Plug: ../../hurricane/classHurricane_1_1Plug.html
|
||||
.. _Plugs: ../../hurricane/classHurricane_1_1Plug.html
|
||||
.. _Collection: ../../hurricane/classHurricane_1_1Collection.html
|
||||
.. _Instance: ../../hurricane/classHurricane_1_1Instance.html
|
||||
.. _Instances: ../../hurricane/classHurricane_1_1Instance.html
|
||||
.. _Transformation: ../../hurricane/classHurricane_1_1Transformation.html
|
||||
.. _Orientation: ../../hurricane/classHurricane_1_1Orientation.html
|
||||
.. _Occurrence: ../../hurricane/classHurricane_1_1Occurrence.html
|
||||
|
||||
.. Hurricane Viewer doxygen doc links.
|
||||
.. _CellViewer: ../../viewer/classHurricane_1_1CellViewer.html
|
||||
|
||||
.. CRL Core doxygen doc links.
|
||||
.. _AllianceFramework: ../../crlcore/classCRL_1_1AllianceFramework.html
|
||||
.. _ToolEngine: ../../crlcore/classCRL_1_1ToolEngine.html
|
||||
.. _ToolEngines: ../../crlcore/classCRL_1_1ToolEngine.html
|
||||
|
||||
.. Hurricane Python Tutorial internal links.
|
||||
.. _5. Make a script runnable through cgt: ./CgtScript.html
|
||||
.. _3.6.3 Creating a Component: ./CellNetComponent.html#id1
|
||||
.. _6.2 Creating Nets and connecting to Instances: ./Netlist.html#id1
|
||||
|
||||
.. |rightarrow| replace:: :math:`\rightarrow`
|
||||
|
||||
.. |fulladder_1| image:: ./images/fulladder-1.png
|
||||
:alt: The fulladder netlist
|
||||
:align: middle
|
||||
:width: 80%
|
||||
|
|
|
@ -4,11 +4,15 @@
|
|||
|
||||
|
||||
=========================
|
||||
Hurricane Python Tutorial
|
||||
Hurricane+Python Tutorial
|
||||
=========================
|
||||
|
||||
Printable version of this document `PythonTutorial.pdf <../../../pdf/main/PythonTutorial.pdf>`_.
|
||||
|
||||
First, a small disclaimer. This tutorial assume that you are already familiar
|
||||
with the concepts of |VLSI| designs, such as *netlist*, *layout*, *instances*
|
||||
and hierarchical design.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
@ -18,4 +22,8 @@ Printable version of this document `PythonTutorial.pdf <../../../pdf/main/Python
|
|||
CellNetComponent.rst
|
||||
Collections.rst
|
||||
CgtScript.rst
|
||||
Netlist.rst
|
||||
RealDesigns.rst
|
||||
ToolEngines.rst
|
||||
AdvancedTopics.rst
|
||||
|
||||
|
|
|
@ -5,11 +5,16 @@
|
|||
|
||||
|
||||
=========================
|
||||
Hurricane Python Tutorial
|
||||
Hurricane+Python Tutorial
|
||||
=========================
|
||||
|
||||
|pagestylefancy|
|
||||
|
||||
|noindent|
|
||||
**First, a small disclaimer.** This tutorial assume that you are already familiar
|
||||
with the concepts of |VLSI| designs, such as *netlist*, *layout*, *instances*
|
||||
and hierarchical design.
|
||||
|
||||
|
||||
.. contents::
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue