coriolis/documentation/PythonTutorial/RealDesigns.rst

52 lines
1.6 KiB
ReStructuredText

.. -*- Mode: rst -*-
.. include:: ../etc/definitions.rst
.. include:: ./definitions.rst
7. Working in real mode
=======================
The AllianceFramework_ only manages *symbolic* layout as |Alliance| does.
But |Coriolis| is also able to work directly in *real* mode, meaning
that distances will be expressed 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 contain 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 made
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.