52 lines
1.6 KiB
ReStructuredText
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.
|