diff --git a/documentation/UsersGuide/HTML_defs.rst b/documentation/UsersGuide/HTML_defs.rst index 68620e15..2d04ed45 100644 --- a/documentation/UsersGuide/HTML_defs.rst +++ b/documentation/UsersGuide/HTML_defs.rst @@ -10,26 +10,6 @@ .. _Here: file:///usr/share/doc/coriolis2/en/latex/users-guide/UsersGuide.pdf .. For HTML backend -.. |Key_ESC| image:: ./images/key_ESC.png -.. |Key_CTRL| image:: ./images/key_CTRL.png -.. |Key_Up| image:: ./images/key_UP.png -.. |Key_Down| image:: ./images/key_DOWN.png -.. |Key_Left| image:: ./images/key_LEFT.png -.. |Key_Right| image:: ./images/key_RIGHT.png -.. |Key_f| image:: ./images/key_F.png -.. |Key_G| image:: ./images/key_Gcap.png -.. |Key_i| image:: ./images/key_Icap.png -.. |Key_l| image:: ./images/key_Lcap.png -.. |Key_m| image:: ./images/key_M.png -.. |Key_k| image:: ./images/key_K.png -.. |Key_K| image:: ./images/key_Kcap.png -.. |Key_o| image:: ./images/key_Ocap.png -.. |Key_p| image:: ./images/key_Pcap.png -.. |Key_q| image:: ./images/key_Qcap.png -.. |Key_w| image:: ./images/key_Wcap.png -.. |Key_S| image:: ./images/key_Scap.png -.. |Key_z| image:: ./images/key_Z.png -.. |Plus| replace:: :raw-html:`+` .. |rightarrow| replace:: :raw-html:`

` .. |menu_P&R| replace:: :raw-html:`

` .. |menu_StepByStep| replace:: :raw-html:`

` @@ -54,6 +34,8 @@ .. |ControllerInspector_3| replace:: :raw-html:`
Controller Basic Snapshot
` .. |ControllerSettings_1| replace:: :raw-html:`
Controller Basic Snapshot
` .. |CoriolisSoftSchema| replace:: :raw-html:`
Coriolis Software Schematic
` +.. |ChipStructure-1| replace:: :raw-html:`
Chip Top Structure
` +.. |Etesian-1| replace:: :raw-html:`
Etesian Abutment Box
` .. |BigMouse| image:: ./images/ComputerMouse.png :scale: 25% @@ -63,4 +45,5 @@ .. |noindent| replace:: :raw-html:`

` .. |medskip| replace:: :raw-html:`
` .. |newpage| replace:: :raw-html:`
` +.. |br| replace:: :raw-html:`
` diff --git a/documentation/UsersGuide/LaTeX_defs.rst b/documentation/UsersGuide/LaTeX_defs.rst index c424b96c..8d48f8e1 100644 --- a/documentation/UsersGuide/LaTeX_defs.rst +++ b/documentation/UsersGuide/LaTeX_defs.rst @@ -11,26 +11,6 @@ .. |DONE| replace:: :raw-latex:`\marginpar{\fbox{\small\ding{56}}}` .. For LaTeX/PDF backend. -.. |Key_ESC| replace:: :raw-latex:`\key{ESC}\xspace` -.. |Key_CTRL| replace:: :raw-latex:`\key{CTRL}\xspace` -.. |Key_Up| replace:: :raw-latex:`\key{Up}\xspace` -.. |Key_Down| replace:: :raw-latex:`\key{Down}\xspace` -.. |Key_Left| replace:: :raw-latex:`\key{Left}\xspace` -.. |Key_Right| replace:: :raw-latex:`\key{Right}\xspace` -.. |Key_f| replace:: :raw-latex:`\key{f}\xspace` -.. |Key_G| replace:: :raw-latex:`\key{G}\xspace` -.. |Key_i| replace:: :raw-latex:`\key{i}\xspace` -.. |Key_l| replace:: :raw-latex:`\key{l}\xspace` -.. |Key_m| replace:: :raw-latex:`\key{m}\xspace` -.. |Key_k| replace:: :raw-latex:`\key{k}\xspace` -.. |Key_K| replace:: :raw-latex:`\key{K}\xspace` -.. |Key_o| replace:: :raw-latex:`\key{o}\xspace` -.. |Key_p| replace:: :raw-latex:`\key{p}\xspace` -.. |Key_q| replace:: :raw-latex:`\key{q}\xspace` -.. |Key_w| replace:: :raw-latex:`\key{w}\xspace` -.. |Key_S| replace:: :raw-latex:`\key{S}\xspace` -.. |Key_z| replace:: :raw-latex:`\key{z}\xspace` -.. |Plus| replace:: :raw-latex:`$+$\xspace` .. |rightarrow| replace:: :raw-latex:`$\rightarrow$` .. |menu_P&R| replace:: :raw-latex:`\fbox{\textsf{\textbf{{P\&R}}}}` .. |menu_StepByStep| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{S}tep by Step}}}}` @@ -55,6 +35,8 @@ .. |ControllerInspector_3| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Inspector-3.eps}\end{center}` .. |ControllerSettings_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Settings-1.eps}\end{center}` .. |CoriolisSoftSchema| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Coriolis-Soft-Schema.eps}\end{center}` +.. |ChipStructure-1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.95\textwidth]{./images/chip-structure-1.eps}\end{center}` +.. |Etesian-1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.95\textwidth]{./images/etesian-1.eps}\end{center}` .. |BigMouse| image:: ./images/ComputerMouse.eps :scale: 25% @@ -64,4 +46,5 @@ .. |noindent| replace:: :raw-latex:`\noindent` .. |medskip| replace:: :raw-latex:`\medskip` .. |newpage| replace:: :raw-latex:`\newpage` +.. |br| replace:: :raw-latex:`\\` diff --git a/documentation/UsersGuide/SoC.css b/documentation/UsersGuide/SoC.css index 8bc16800..4bca9453 100644 --- a/documentation/UsersGuide/SoC.css +++ b/documentation/UsersGuide/SoC.css @@ -1,10 +1,7 @@ html, body, th, td, tr, p, li, h1, h2, h3, h4, h5, h6 { font-size: 96%; - /* - font-family: verdana, sans-serif; - */ - font-family: "Open Sans", sans-serif; + font-family: "Open Sans", verdana, sans-serif; } body { @@ -18,9 +15,13 @@ body { background-attachment: fixed; background-repeat: no-repeat; margin: 0 0 0 0; - padding: 0 0 0 0; + padding: 20pt; + width: 550pt; margin-right: 10%; margin-left: 30%; + -moz-box-shadow: 4px 4px 5px 3px #ccc; + -webkit-box-shadow: 4px 4px 5px 3px #ccc; + box-shadow: 4px 4px 5px 3px #ccc; } body.gsummary { @@ -28,22 +29,27 @@ body.gsummary { margin-left: 10%; } -h1, h2, h3, h4, h5, h6 { - font-family: "Open Sans", sans-serif; -} +h1, h2, h3, h4, h5, h6 { font-family: "Open Sans", verdana, sans-serif; } +h1 { text-align: center; + border-top: 2px solid #09550b; + border-bottom: 2px solid #09550b; + padding-top: 7pt; + padding-bottom: 7pt; + } +h2, h3, h4, h5, h6 { text-align: left; } +h1, h2, h3 { font-family: "Open Sans"; + } +h1 { font-weight: normal; font-size: 170%; padding-top: 7pt; margin-top: 25pt; } +h2 { font-weight: normal; font-size: 140%; padding-top: 7pt; margin-top: 25pt; } +h3 { font-weight: bold; font-size: 118%; padding-top: 7pt; margin-top: 25pt; } +h4 { font-weight: bold; font-size: 100%; } +h5 { font-style: italic; font-size: 100%; } +h6 { font-variant: small-caps; font-size: 100%; } + +body.gsummary h1 { text-align: center; font-size: 220%; } + +h1 a:link { border-bottom: 0px; } -h1 { text-align: left; } -h2, h3, h4, h5, h6 { text-align: left; } -h1, h2, h3 { font-family: "Serif"; - } -h1 { font-weight: normal; font-size: 170%; padding-top: 7pt; margin-top: 25pt; } -h2 { font-weight: normal; font-size: 140%; padding-top: 7pt; margin-top: 25pt; } -h3 { font-weight: bold; font-size: 118%; padding-top: 7pt; margin-top: 25pt; } -h4 { font-weight: bold; font-size: 100%; } -h5 { font-style: italic; font-size: 100%; } -h6 { font-variant: small-caps; font-size: 100%; } - -body.gsummary h1 { text-align: center; font-size: 220%; } hr { color: #09550b; diff --git a/documentation/UsersGuide/UsersGuide.rst b/documentation/UsersGuide/UsersGuide.rst index 73c33e2b..47336834 100644 --- a/documentation/UsersGuide/UsersGuide.rst +++ b/documentation/UsersGuide/UsersGuide.rst @@ -27,6 +27,8 @@ .. |FC13| replace:: :sc:`fc13` .. |Debian| replace:: :sc:`Debian` .. |Ubuntu| replace:: :sc:`Ubuntu` +.. |LEMON| replace:: :sc:`lemon` +.. |Coin-Or| replace:: :sc:`coin-or` .. |Alexandre| replace:: :sc:`Alexandre` .. |Belloeil| replace:: :sc:`Belloeil` @@ -89,13 +91,43 @@ .. |rpm| replace:: :cb:`rpm` .. |gdb| replace:: :cb:`gdb` +.. |KeyUp| replace:: :fboxtt:`Up` +.. |KeyDown| replace:: :fboxtt:`Down` +.. |KeyLeft| replace:: :fboxtt:`Left` +.. |KeyRight| replace:: :fboxtt:`Right` +.. |KeyF| replace:: :fboxtt:`f` +.. |KeyL| replace:: :fboxtt:`l` +.. |KeyG| replace:: :fboxtt:`g` +.. |KeyZ| replace:: :fboxtt:`z` +.. |KeyM| replace:: :fboxtt:`m` +.. |KeyI| replace:: :fboxtt:`i` +.. |KeyK| replace:: :fboxtt:`k` +.. |KeyP| replace:: :fboxtt:`p` +.. |KeyO| replace:: :fboxtt:`o` +.. |KeyW| replace:: :fboxtt:`w` +.. |KeyQ| replace:: :fboxtt:`q` +.. |KeyCapK| replace:: :fboxtt:`K` +.. |KeyCapS| replace:: :fboxtt:`S` +.. |Plus| replace:: :fboxtt:`+` +.. |KeyESC| replace:: :fboxtt:`ESC` +.. |CTRL| replace:: :fboxtt:`CTRL` .. |CTRL_L| replace:: :fboxtt:`CTRL+L` +.. |CTRL_I| replace:: :fboxtt:`CTRL+I` +.. |CTRL_P| replace:: :fboxtt:`CTRL+P` +.. |CTRL_O| replace:: :fboxtt:`CTRL+O` +.. |CTRL_W| replace:: :fboxtt:`CTRL+W` +.. |CTRL_Q| replace:: :fboxtt:`CTRL+Q` +.. |CTRL_Down| replace:: :fboxtt:`CTRL+Down` +.. |CTRL_Up| replace:: :fboxtt:`CTRL+Up` +.. |CTRL_Left| replace:: :fboxtt:`CTRL+Left` +.. |CTRL_Right| replace:: :fboxtt:`CTRL+Right` .. URLs -.. _FGR: http://vlsicad.eecs.umich.edu/BK/FGR/ -.. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm -.. _hMETIS: http://glaros.dtc.umn.edu/gkhome/views/metis -.. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/ +.. _FGR: http://vlsicad.eecs.umich.edu/BK/FGR/ +.. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm +.. _hMETIS: http://glaros.dtc.umn.edu/gkhome/views/metis +.. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/ +.. _Coin Or Home: http://www.coin-or.org/index.html .. _coriolis2-1.0.2049-1.slsoc6.i686.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.slsoc6.i686.rpm .. _coriolis2-1.0.2049-1.slsoc6.x86_64.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.slsoc6.x86_64.rpm @@ -274,8 +306,8 @@ Release `2049` is Alpha. #. The |cgt| main has been rewritten in Python. -Release **v2.0.1** -~~~~~~~~~~~~~~~~~~ +Release v2.0.1 +~~~~~~~~~~~~~~ #. Migrated the repository from |svn| to |git|, and release complete sources. As a consequence, we drop the distribution packaging support and give @@ -284,7 +316,7 @@ Release **v2.0.1** achieve a speedup factor greater than 20... -Release **v3.0** +**Release v2.1** ~~~~~~~~~~~~~~~~ #. Replace the old simulated annealing placer |Mauka| by an analytic placer @@ -325,6 +357,17 @@ Main building prerequisites: * latex * latex2html. * python-docutils (for reStructuredText). +* |Coloquinte| (https://github.com/Coloquinte/Coloquinte.git). + +|Coloquinte| requires the |LEMON| component from |Coin-Or| (`Coin Or Home`_). +A repository of |Coin-Or| packages backported from |Fedora| 21 is available here: + +* |SL6|: `ftp://pub/linux/distributions/slsoc/slsoc/soc/addons/i386/RPMS `_ +* |SL7|: `ftp://pub/linux/distributions/slsoc/soc/7/addons/x86_64/RPMS `_ + +For other distributions, refer to their own packaging system. + +|newpage| Fixed Directory Tree @@ -378,6 +421,8 @@ automatically created either by |ccb| or the build system. ``Static`` do not work because I don't know yet to mix statically linked binaries and Python modules (which must be dynamic). +|newpage| + Building Coriolis ~~~~~~~~~~~~~~~~~ @@ -394,9 +439,11 @@ The first step is to create the source directory and pull the |git| repository: Second and final step, build & install: :: - dummy@lepka:src$ ./bootstrap/ccp.py --project=importeds --project=coriolis \ + dummy@lepka:src$ ./bootstrap/ccp.py --project=importeds \ + --project=coriolis \ --make="-j4 install" - dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis --doc --make="-j1 install" + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ + --doc --make="-j1 install" We need two steps because the documentation do not support to be generated with a parallel build. So we compile & install in a first step in ``-j4`` (or whatever) @@ -404,7 +451,8 @@ then we generate the documentation in ``-j1`` Under |RHEL6| or clones, you must build using the |devtoolset2|: :: - dummy@lepka:src$ ./bootstrap/ccp.py --project=importeds --project=coriolis \ + dummy@lepka:src$ ./bootstrap/ccp.py --project=importeds \ + --project=coriolis \ --devtoolset-2 --make="-j4 install" If you want to uses Qt 5 instead of Qt 4, you may add the ``--qt5`` argument. @@ -426,7 +474,8 @@ In the |Coriolis| |git| repository, two branches are present: command just after the first step: :: dummy@lepka:~$ git checkout devel - dummy@lepka:src$ ./bootstrap/ccp.py --project=importeds --project=coriolis \ + dummy@lepka:src$ ./bootstrap/ccp.py --project=importeds \ + --project=coriolis \ --make="-j4 install" --debug Be aware that it may requires newer versions of the dependencies and may introduce @@ -437,6 +486,8 @@ In the |Coriolis| |git| repository, two branches are present: dummy@lepka:work$ gdb python core.XXXX +|newpage| + Additionnal Requirement under |MacOS| ------------------------------------- @@ -615,6 +666,8 @@ simple assembly of tuples. The helpers are installed under the directory: :: Where :cb:`/` is the root of the installation. +|newpage| + .. _Alliance Helper: @@ -909,14 +962,40 @@ Etesian -- Placer ~~~~~~~~~~~~~~~~~ The |Etesian| placer is a state of the art (as of 2015) analytical placer. This |Coriolis| -tool is really an encapsulation of |Coloquinte| which *is* the placer. |Coloquinte| -is provided a separate library, see the building instructions. +tool is actually an encapsulation of |Coloquinte| which *is* the placer. |Coloquinte| +is provided as a separate library, see the building instructions. -.. note:: *Instance Duplication Problem:* a same logical instance cannot have +.. note:: *Instance Uniquification Unsupported:* a same logical instance cannot have two different placements. So, either you manually make a clone of it or you - supply a placement for it. This is currently a drawback of our *folded hierarchy* - approach. + supply a placement for it. We need to implement uniquification in the + |Hurricane| database. + +|noindent| +**Hierarchical Placement** + +The placement area is defined by the top cell abutment box. + +When placing a complete hierarchy, the abutment boxes of the cells (models) other than +the top cell are sets identical to the one of the top cell and their instances are +all placed at position ``(0,0,ID)``. That is, all the abutments boxes, whatever the +hierarchical level, defines the same area (they are exactly superposed). + +We choose this scheme because the placer will see all the instances as virtually +flattened, so they can be placed anywhere inside the top-cell abutment box. + +|Etesian-1| + + +|noindent| +**Computing the Placement Area** + +The placement area is computed using the ``etesian.aspectRatio`` and ``etesian.spaceMargin`` +parameters only if the top-cell has an empty abutment box. If the top-cell abutment +box has to be set, then it is propagated to all the instances models recursively. + + +|noindent| **Reseting the Placement** Once a placement has been done, the placer cannot reset it (will be implemented @@ -924,6 +1003,48 @@ later). To perform a new placement, you must restart |cgt|. In addition, if you have saved the placement on disk, you must erase any :cb:`.ap` file, which are automatically reloaded along with the netlist (:cb:`.vst`). +|newpage| + + +Etesian Configuration Parameters +-------------------------------- + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Etesian Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``etesian.aspectRatio`` | TypePercentage | :cb:`100` | +| +------------------+----------------------------+ +| | Define the height on width ``H/W`` aspect | +| | ratio, can be comprised between 10 and 1000 | ++-----------------------------------+------------------+----------------------------+ +|``etesian.spaceMargin`` | TypePercentage | :cb:`5` | +| +------------------+----------------------------+ +| | The extra white space added to the total area | +| | of the standard cells | ++-----------------------------------+------------------+----------------------------+ +|``etesian.uniformDensity`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Whether the cells will be spread envenly | +| | across the area or allowed to form denser | +| | clusters | ++-----------------------------------+------------------+----------------------------+ +|``etesian.effort`` | TypeInt | :cb:`2` | +| +------------------+----------------------------+ +| | Sets the balance between the speed of the | +| | placer and the solution quality | ++-----------------------------------+------------------+----------------------------+ +|``etesian.graphics`` | TypeInt | :cb:`2` | +| +------------------+----------------------------+ +| | How often the display will be refreshed, more | +| | refreshing slows the placer. | +| | | +| | * ``1`` show both upper and lower bounds | +| | * ``2`` show only lower bound | +| | * ``3`` Don't show anything | ++-----------------------------------+-----------------------------------------------+ + Knik -- Global Router ~~~~~~~~~~~~~~~~~~~~~ @@ -976,8 +1097,6 @@ saturated area and increased wirelength. This is the saturation of the which represent one track. The maximum capacity of the |SxLib| gauge is 10 tracks in two layers, that makes 20 tracks by |Knik| edge. -|newpage| - Routing a design is done in four ordered steps: #. Detailed pre-route |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteDetailedPreRoute|. @@ -1125,7 +1244,7 @@ Printing & Snapshots ~~~~~~~~~~~~~~~~~~~~ Printing or saving into a |pdf| is fairly simple, just uses the **File -> Print** -menu or the |Key_CTRL| |Plus| |Key_p| shortcut to open the dialog box. +menu or the |CTRL_P| shortcut to open the dialog box. The print functionality uses exactly the same rendering mechanism as for the screen, beeing almost *WYSIWYG*. Thus, to obtain the best results it is advisable @@ -1162,22 +1281,21 @@ The main application binary is |cgt|. +---------------+-------------------+-----------------------------------------------------------+ | Category | Keys | Action | +===============+===================+===========================================================+ -| **Moves** | | |Key_Up|, | Shift the view in the according direction | -| | |Key_Down| | | -| | | |Key_Left|, | | -| | |Key_Right| | | +| **Moves** | | |KeyUp|, | Shift the view in the according direction | +| | |KeyDown| | | +| | | |KeyLeft|, | | +| | |KeyRight| | | +---------------+-------------------+-----------------------------------------------------------+ -| **Fit** | |Key_f| | Fit to the Cell abutment box | +| **Fit** | |KeyF| | Fit to the Cell abutment box | +---------------+-------------------+-----------------------------------------------------------+ -| **Refresh** | |Key_CTRL| | Triggers a complete display redraw | -| | |Plus| |Key_l| | | +| **Refresh** | |CTRL_L| | Triggers a complete display redraw | +---------------+-------------------+-----------------------------------------------------------+ -| **Goto** | |Key_g| | *apperture* is the minimum side of the area | +| **Goto** | |KeyG| | *apperture* is the minimum side of the area | | | | displayed around the point to go to. It's an | | | | alternative way of setting the zoom level | +---------------+-------------------+-----------------------------------------------------------+ -| **Zoom** | |Key_z|, | Respectively zoom by a 2 factor and *unzoom* | -| | |Key_m| | by a 2 factor | +| **Zoom** | |KeyZ|, | Respectively zoom by a 2 factor and *unzoom* | +| | |KeyM| | by a 2 factor | | +-------------------+-----------------------------------------------------------+ | | | |BigMouse| | You can perform a zoom to an area. | | | | Area Zoom | Define the zoom area by *holding down the left | @@ -1188,52 +1306,51 @@ The main application binary is |cgt|. | | | right mouse button* while moving the mouse. | | +-------------------+-----------------------------------------------------------+ | | | |BigMouse| | You can toggle the selection of one object under | -| | | Toggle Selection| the mouse position by pressing |key_CTRL| and | +| | | Toggle Selection| the mouse position by pressing |CTRL| and | | | | pressing down *the right mouse button*. A popup | | | | list of what's under the position shows up into | | | | which you can toggle the selection state of one | | | | item. | | +-------------------+-----------------------------------------------------------+ -| | |Key_S| | Toggle the selection visibility | +| | |KeyCapS| | Toggle the selection visibility | +---------------+-------------------+-----------------------------------------------------------+ -| **Controller**| |Key_CTRL| | Show/hide the controller window. | -| | |Plus| |Key_i| | | +| **Controller**| |CTRL_I| | Show/hide the controller window. | | | | | | | | It's the Swiss Army Knife of the viewer. | | | | From it, you can fine-control the display and | | | | inspect almost everything in your design. | +---------------+-------------------+-----------------------------------------------------------+ -| **Rulers** | |Key_k|, | One stroke on |Key_k| enters the ruler mode, in | -| | |Key_ESC| | which you can draw one ruler. You can exit the | -| | | ruler mode by pressing |Key_ESC|. Once in ruler | +| **Rulers** | |KeyK|, | One stroke on |KeyK| enters the ruler mode, in | +| | |KeyESC| | which you can draw one ruler. You can exit the | +| | | ruler mode by pressing |KeyESC|. Once in ruler | | | | mode, the first click on the *left mouse button* | | | | sets the ruler's starting point and the second | | | | click the ruler's end point. The second click | | | | exits automatically the ruler mode. | | +-------------------+-----------------------------------------------------------+ -| | |Key_K| | Clears all the drawn rulers | +| | |KeyCapK| | Clears all the drawn rulers | +---------------+-------------------+-----------------------------------------------------------+ -| **Print** | |Key_CTRL| | Currently rather crude. It's a direct copy of | -| | |Plus| |Key_p| | what's displayed in pixels. So the resulting | +| **Print** | |CTRL_P| | Currently rather crude. It's a direct copy of | +| | | what's displayed in pixels. So the resulting | | | | picture will be a little blurred due to | | | | anti-aliasing mechanism. | +---------------+-------------------+-----------------------------------------------------------+ -| **Open/Close**| |Key_CTRL| | Opens a new design. The design name must be | -| | |Plus| |Key_o| | given without path or extention. | +| **Open/Close**| |CTRL_O| | Opens a new design. The design name must be | +| | | given without path or extention. | | +-------------------+-----------------------------------------------------------+ -| | |Key_CTRL| | Close the current viewer window, but do not quit | -| | |Plus| |Key_w| | the application. | +| | |CTRL_W| | Close the current viewer window, but do not quit | +| | | the application. | | +-------------------+-----------------------------------------------------------+ -| | |Key_CTRL| | `CTRL+Q` quit the application | -| | |Plus| |Key_q| | (closing all windows). | +| | |CTRL_Q| | `CTRL+Q` quit the application | +| | | (closing all windows). | +---------------+-------------------+-----------------------------------------------------------+ -| **Hierarchy** | |Key_CTRL| |Plus| | Go one hierarchy level down. That is, if there | -| | |Key_Down| | is an *instance* under the cursor position, load | +| **Hierarchy** | |CTRL_Down| | Go one hierarchy level down. That is, if there | +| | | is an *instance* under the cursor position, load | | | | it's *model* Cell in place of the current one. | | +-------------------+-----------------------------------------------------------+ -| | |Key_CTRL| |Plus| | Go one hierarchy level up. if we have entered | -| | |Key_Up| | the current model through |Key_CTRL| |Plus| | -| | | |Key_Down|, reload the previous model (the one | +| | |CTRL_Up| | Go one hierarchy level up. if we have entered | +| | | the current model through |CTRL_Down| | +| | | reload the previous model (the one | | | | in which this model is instanciated). | +---------------+-------------------+-----------------------------------------------------------+ @@ -1348,6 +1465,9 @@ Miscellaneous Settings | | To generate one set this flag to :cb:`True` | +---------------------------------------+------------------+----------------------------+ +|newpage| + + .. _The Controller: The Controller @@ -1579,11 +1699,249 @@ This typical script can be executed in two ways: +----------------------+-----------------------------------------------+ +Plugins +======= + +Plugins are |Python| scripts specially crafted to integrate with |cgt|. +Their entry point is a :cb:`ScriptMain()` method as described in +`Python Interface to Coriolis`_. They can be called by user scripts +through this method. + + + +Chip Placement +~~~~~~~~~~~~~~ + +Automatically perform the placement of a complete chip. This plugin, as well +as the other P&R tools expect a specific top-level hierarchy for the design. +The top-level hierarchy must contains the instances of all the I/O pads and +**exactly one** instance of the chip's core model. + +|ChipStructure-1| + +The designer must provide a configuration file that define the rules for the +placement of the top-level hierarchy (that is, the pads and the core). +This file must be named after the chip's name, by appending ``_chip.py`` +(obviously, it is a |Python| file). For instance if the chip netlist file +is called ``amd2901_crl.vst``, then the configuration file must be named +``amd2901_crl_chip.vst``. + +Example of chip placement configuration file (for ``AM2901``): :: + + chip = \ + { 'pads.south' : [ 'p_a3' , 'p_a2' , 'p_a1' , 'p_r0' + , 'p_vddick0', 'p_vssick0', 'p_a0' , 'p_i6' + , 'p_i8' , 'p_i7' , 'p_r3' ] + , 'pads.east' : [ 'p_zero' , 'p_i0' , 'p_i1' , 'p_i2' + , 'p_vddeck0', 'p_vsseck0', 'p_q3' , 'p_b0' + , 'p_b1' , 'p_b2' , 'p_b3' ] + , 'pads.north' : [ 'p_noe' , 'p_y3' , 'p_y2' , 'p_y1' + , 'p_y0' , 'p_vddeck1', 'p_vsseck1', 'p_np' + , 'p_ovr' , 'p_cout' , 'p_ng' ] + , 'pads.west' : [ 'p_cin' , 'p_i4' , 'p_i5' , 'p_i3' + , 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2' + , 'p_d3' , 'p_q0' , 'p_f3' ] + , 'core.size' : ( 1500, 1500 ) + , 'chip.size' : ( 3000, 3000 ) + , 'chip.clockTree' : True + } + +The file must contain *one dictionnary* named ``chip``. + ++----------------------+-------------------------------------------------------+ +| Chip Dictionnary | ++----------------------+-------------------------------------------------------+ +| Parameter Key/Name | Value/Contents type | ++======================+=======================================================+ +| ``'pad.south'`` | Ordered list (left to right) of pad instances names | +| | to put on the south side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.east'`` | Ordered list (down to up) of pad instances names | +| | to put on the east side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.north'`` | Ordered list (left to right) of pad instances names | +| | to put on the north side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.west'`` | Ordered list (down to up) of pad instances names | +| | to put on the west side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'core.size'`` | The size of the core (to be used by the placer) | ++----------------------+-------------------------------------------------------+ +| ``'chip.size'`` | The size of the whole chip. The sides must be great | +| | enough to accomodate all the pads | ++----------------------+-------------------------------------------------------+ +| ``'chip.clockTree'`` | Whether to generate a clock tree or not. This calls | +| | the ClockTree plugin | ++----------------------+-------------------------------------------------------+ + +Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Chip Plugin Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.count`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | The minimum number of rails around the core | +| | block. Must be odd and suppérior to 5. | +| | One rail for the clock and at least two pairs | +| | of power/grounds | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.hWidth`` | TypeInt | :cb:`12` | +| +------------------+----------------------------+ +| | The horizontal with of the rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.vWidth`` | TypeInt | :cb:`12` | +| +------------------+----------------------------+ +| | The vertical with of the rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.hSpacing`` | TypeInt | :cb:`6` | +| +------------------+----------------------------+ +| | The spacing, *edge to edge* of two adjacent | +| | horizontal rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.vSpacing`` | TypeInt | :cb:`6` | +| +------------------+----------------------------+ +| | The spacing, *edge to edge* of two adjacent | +| | vertical rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pck`` | TypeString | :cb:`pck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | chip external clock | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvddeck`` | TypeString | :cb:`pvddeck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vdde`` (external power) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvsseck`` | TypeString | :cb:`pvsseck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vsse`` (external ground) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvddick`` | TypeString | :cb:`pvddick_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vddi`` (internal power) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvssick`` | TypeString | :cb:`pvssick_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vssi`` (internal ground) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ + +.. note:: + If no clock tree is generated, then the clock rail is *not* created. + So even if the requested number of rails ``chip.block.rails.count`` is, say 5, + only four rails (2* ``power``, 2* ``ground``) will be generateds. + + +Clock Tree +~~~~~~~~~~ + +Insert a clock tree into a block. The clock tree uses the H strategy. +The clock net is splitted into sub-nets, one for each branch of the +tree. + +* On **chips** design, the sub-nets are createds in the model of the + core block (then trans-hierarchically flattened to be shown at + chip level). +* On **blocks**, the sub nets are created directly in the top block. +* The sub-nets are named according to a simple geometrical scheme. + A common prefix ``ck_htree``, then one postfix by level telling + on which quarter of plane the sub-clock is located: + + #. ``_bl``: bottom left plane quarter. + #. ``_br``: bottom right plane quarter. + #. ``_tl``: top left plane quarter. + #. ``_tr``: top right plane quarter. + + We can have ``ck_htree_bl``, ``ck_htree_bl_bl``, ``ch_htree_bl_tl`` and so on. + +The clock tree plugin works in four steps: + +#. Build the clock tree: creates the top-block abutment box, compute the + levels of H tree neededs and place the clock buffers. +#. Once the clock buffers are placed, calls the placer (|etesian|) to place + the ordinary standart cells, whithout disturbing clock H-tree buffers. +#. At this point we know the exact positions of all the DFFs, so we can + connect them to the nearest H-tree leaf clock signal. +#. Leaf clock signals that are not connecteds to any DFFs are removed. + +Netlist reorganisation: + +* Obviously the top block or chip core model netlist is modificated to + contains all the clock sub-nets. The interface is *not* changed. +* If the top block contains instances of other models *and* those models + contains DFFs that get re-connecteds to the clock sub-nets (from the + top level). Change both the model netlist and interface to propagate + the relevant clock sub-nets to the instanciated model. The new model + with the added clock signal is renamed with a ``_clocked`` suffix. + For example, the sub-block model ``ram.vst`` will become ``ram_clocked.vst``. + +.. note:: + If you are to re-run the clock tree plugin on a netlist, be careful + to erase any previously generated ``_clocked`` file (both netlist and + layout: ``rm *.clocked.{ap,vst}``). And restart |cgt| to clear it's + memory cache. + +Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **ClockTree Plugin Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.minimumSide`` | TypeInt | :cb:`300` | +| +------------------+----------------------------+ +| | The minimum size below which the clock tree | +| | will stop to perform quadri-partitions | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.buffer`` | TypeString | :cb:`buf_x2` | +| +------------------+----------------------------+ +| | The buffer model to use to drive sub-nets | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.placerEngine`` | TypeString | :cb:`Etesian` | +| +------------------+----------------------------+ +| | The placer to use. Other value is ``Mauka`` | +| | the simulated annealing placer which will go | +| | into retirement very soon | ++-----------------------------------+------------------+----------------------------+ + + +Recursive-Save (RSave) +~~~~~~~~~~~~~~~~~~~~~~ + +Perform a recursive top down save of all the models from the top cell +loaded in |cgt|. Force a write of any non-terminal model. This plugin is used +by the clock tree plugin after the netlist clock sub-nets creation. + + A Simple Example: AM2901 ======================== To illustrate the capabilities of |Coriolis| tools and |Python| scripting, a small example, derived from the |Alliance| :cb:`AM2901` is supplied. -This example contains only the synthetized netlists and the :cb:`design.py` script -which perform the whole P&R of the design. Just lanch |cgt| then execute :cb:`design.py`. +This example contains only the synthetized netlists and the :cb:`doChip.py` script +which perform the whole P&R of the design. + +You can generate the chip using one of the following method: + +#. **Command line mode:** directly run the script: :: + + dummy@lepka:AM2901$ ./doChip -V --cell=amd2901 + +#. **Graphic mode:** launch |cgt|, load chip netlist ``amd2901`` (the top cell) + then run the |Python| script :cb:`doChip.py`. + +.. note:: + Between two consecutive run, be sure to erase the netlist/layout generateds: :: + + dummy@lepka:AM2901$ rm *_clocked*.vst *.ap diff --git a/documentation/UsersGuide/images/Coriolis-Soft-Schema.eps b/documentation/UsersGuide/images/Coriolis-Soft-Schema.eps index ffa352cf..08c18320 100644 --- a/documentation/UsersGuide/images/Coriolis-Soft-Schema.eps +++ b/documentation/UsersGuide/images/Coriolis-Soft-Schema.eps @@ -1,11 +1,12 @@ -%!PS-Adobe-2.0 EPSF-2.0 +%!PS-Adobe-3.0 EPSF-3.0 %%Title: Coriolis-Soft-Schema.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Sun Jun 29 14:12:01 2014 +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Sat Feb 28 17:31:06 2015 %%For: jpc@lepka (Jean-Paul Chaput) -%%BoundingBox: 0 0 492 478 -%Magnification: 0.8000 +%%BoundingBox: 0 0 433 420 +%Magnification: 0.7000 %%EndComments +%%BeginProlog /MyAppDict 100 dict dup begin def /$F2psDict 200 dict def $F2psDict begin @@ -45,10 +46,6 @@ $F2psDict /mtrx matrix put /col31 {1.000 0.840 0.000 srgb} bind def end -save -newpath 0 478 moveto 0 0 lineto 492 0 lineto 492 478 lineto closepath clip newpath --200.5 418.7 translate -1 -1 scale % left30 << @@ -108,10 +105,22 @@ makepattern /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def +/pageheader { +save +newpath 0 420 moveto 0 0 lineto 433 0 lineto 433 420 lineto closepath clip newpath +-174.6 367.2 translate +1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc - 0.04800 0.04800 sc + 0.04200 0.04200 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader % % Fig objects follow % @@ -140,24 +149,6 @@ n 5100 600 m n 5160 -27 m 5100 -267 l 5040 -27 l 5160 -27 l cp gs col21 1.00 shd ef gr col21 s % Polyline gs clippath -5010 3572 m 5010 3285 l 4890 3285 l 4890 3572 l 4890 3572 l 4950 3332 l 5010 3572 l cp -eoclip -n 4950 7800 m - 4950 3300 l gs col0 s gr gr - -% arrowhead -n 5010 3572 m 4950 3332 l 4890 3572 l 5010 3572 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5160 1772 m 5160 1485 l 5040 1485 l 5040 1772 l 5040 1772 l 5100 1532 l 5160 1772 l cp -eoclip -n 5100 7800 m - 5100 1500 l gs col0 s gr gr - -% arrowhead -n 5160 1772 m 5100 1532 l 5040 1772 l 5160 1772 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath 5460 5372 m 5460 5085 l 5340 5085 l 5340 5372 l 5340 5372 l 5400 5132 l 5460 5372 l cp eoclip n 5400 6000 m @@ -176,24 +167,6 @@ n 5550 6000 m n 5610 3572 m 5550 3332 l 5490 3572 l 5610 3572 l cp gs col8 1.00 shd ef gr col8 s % Polyline gs clippath -5760 1772 m 5760 1485 l 5640 1485 l 5640 1772 l 5640 1772 l 5700 1532 l 5760 1772 l cp -eoclip -n 5700 6000 m - 5700 1500 l gs col8 s gr gr - -% arrowhead -n 5760 1772 m 5700 1532 l 5640 1772 l 5760 1772 l cp gs col8 1.00 shd ef gr col8 s -% Polyline -gs clippath -5910 -27 m 5910 -315 l 5790 -315 l 5790 -27 l 5790 -27 l 5850 -267 l 5910 -27 l cp -eoclip -n 5850 6000 m - 5850 -300 l gs col8 s gr gr - -% arrowhead -n 5910 -27 m 5850 -267 l 5790 -27 l 5910 -27 l cp gs col8 1.00 shd ef gr col8 s -% Polyline -gs clippath 4860 5372 m 4860 5085 l 4740 5085 l 4740 5372 l 4740 5372 l 4800 5132 l 4860 5372 l cp eoclip n 4800 7800 m @@ -300,23 +273,94 @@ n 14100 4800 m % arrowhead n 14160 872 m 14100 632 l 14040 872 l 14160 872 l cp gs col18 1.00 shd ef gr col18 s +% Polyline +45.000 slw +n 13800 4800 m 14400 4800 l 14400 6600 l 13800 6600 l + cp gs col18 0.50 tnt ef gr gs col18 s gr +% Polyline +15.000 slw +gs clippath +5910 -27 m 5910 -315 l 5790 -315 l 5790 -27 l 5790 -27 l 5850 -267 l 5910 -27 l cp +eoclip +n 5850 6000 m + 5850 -300 l gs col8 s gr gr + +% arrowhead +n 5910 -27 m 5850 -267 l 5790 -27 l 5910 -27 l cp gs col8 1.00 shd ef gr col8 s +% Polyline +45.000 slw +n 13200 1800 m 13800 1800 l 13800 3600 l 13200 3600 l + cp gs col18 0.50 tnt ef gr gs col18 s gr +% Polyline +15.000 slw +gs clippath +5760 1772 m 5760 1485 l 5640 1485 l 5640 1772 l 5640 1772 l 5700 1532 l 5760 1772 l cp +eoclip +n 5700 6000 m + 5700 1500 l gs col8 s gr gr + +% arrowhead +n 5760 1772 m 5700 1532 l 5640 1772 l 5760 1772 l cp gs col8 1.00 shd ef gr col8 s +% Polyline +gs clippath +5010 3572 m 5010 3285 l 4890 3285 l 4890 3572 l 4890 3572 l 4950 3332 l 5010 3572 l cp +eoclip +n 4950 7800 m + 4950 3300 l gs col0 s gr gr + +% arrowhead +n 5010 3572 m 4950 3332 l 4890 3572 l 5010 3572 l cp gs 0.00 setgray ef gr col0 s +% Polyline +45.000 slw +n 12600 -1200 m 14400 -1200 l 14400 600 l 12600 600 l + cp gs col18 0.50 tnt ef gr gs col18 s gr +% Polyline +15.000 slw +gs clippath +5160 1772 m 5160 1485 l 5040 1485 l 5040 1772 l 5040 1772 l 5100 1532 l 5160 1772 l cp +eoclip +n 5100 7800 m + 5100 1500 l gs col0 s gr gr + +% arrowhead +n 5160 1772 m 5100 1532 l 5040 1772 l 5160 1772 l cp gs 0.00 setgray ef gr col0 s % here ends figure; % % here starts figure with depth 60 % Polyline 0 slj 0 slc -15.000 slw -n 4200 7800 m 9000 7800 l 9000 8700 l 4200 8700 l - cp gs col7 1.00 shd ef gr gs col0 s gr +45.000 slw +n 9000 6000 m 10800 6000 l 10800 6900 l 9000 6900 l + cp +% Fill with pattern background color +gs /DeviceRGB setcolorspace 0.00 0.00 0.56 setcolor fill gr + +% Fill with pattern pen color +gs /DeviceRGB setcolorspace 0.00 0.00 0.56 P1 setpattern fill gr + +gs col8 s gr % Polyline -n 9000 7800 m 10800 7800 l 10800 8700 l 9000 8700 l - cp gs col7 0.00 shd ef gr gs col0 s gr +n 4200 6000 m 9000 6000 l 9000 6900 l 4200 6900 l + cp gs col7 1.00 shd ef gr gs col8 s gr % Polyline -n 4200 4200 m 6000 4200 l 6000 5100 l 4200 5100 l +n 9000 -1200 m 10800 -1200 l 10800 -300 l 9000 -300 l + cp +% Fill with pattern background color +gs /DeviceRGB setcolorspace 0.56 0.00 0.56 setcolor fill gr + +% Fill with pattern pen color +gs /DeviceRGB setcolorspace 0.56 0.00 0.56 P1 setpattern fill gr + +gs col21 s gr +% Polyline +n 4200 -1200 m 9000 -1200 l 9000 -300 l 4200 -300 l cp gs col7 1.00 shd ef gr gs col21 s gr % Polyline -n 6000 4200 m 7800 4200 l 7800 5100 l 6000 5100 l +n 4800 600 m 6600 600 l 6600 1500 l 4800 1500 l + cp gs col7 1.00 shd ef gr gs col21 s gr +% Polyline +n 6600 600 m 8400 600 l 8400 1500 l 6600 1500 l cp % Fill with pattern background color gs /DeviceRGB setcolorspace 0.56 0.00 0.56 setcolor fill gr @@ -339,10 +383,10 @@ gs /DeviceRGB setcolorspace 0.56 0.00 0.56 P1 setpattern fill gr gs col21 s gr % Polyline -n 4800 600 m 6600 600 l 6600 1500 l 4800 1500 l +n 4200 4200 m 6000 4200 l 6000 5100 l 4200 5100 l cp gs col7 1.00 shd ef gr gs col21 s gr % Polyline -n 6600 600 m 8400 600 l 8400 1500 l 6600 1500 l +n 6000 4200 m 7800 4200 l 7800 5100 l 6000 5100 l cp % Fill with pattern background color gs /DeviceRGB setcolorspace 0.56 0.00 0.56 setcolor fill gr @@ -352,98 +396,68 @@ gs /DeviceRGB setcolorspace 0.56 0.00 0.56 P1 setpattern fill gr gs col21 s gr % Polyline -n 9000 -1200 m 10800 -1200 l 10800 -300 l 9000 -300 l - cp -% Fill with pattern background color -gs /DeviceRGB setcolorspace 0.56 0.00 0.56 setcolor fill gr - -% Fill with pattern pen color -gs /DeviceRGB setcolorspace 0.56 0.00 0.56 P1 setpattern fill gr - -gs col21 s gr +n 4200 7800 m 9000 7800 l 9000 8700 l 4200 8700 l + cp gs col7 1.00 shd ef gr gs col0 s gr % Polyline -n 4200 -1200 m 9000 -1200 l 9000 -300 l 4200 -300 l - cp gs col7 1.00 shd ef gr gs col21 s gr -% Polyline -n 13200 1800 m 13800 1800 l 13800 3600 l 13200 3600 l - cp gs col7 1.00 shd ef gr gs col18 s gr -% Polyline -n 13800 4800 m 14400 4800 l 14400 6600 l 13800 6600 l - cp gs col7 1.00 shd ef gr gs col18 s gr -% Polyline -n 9000 6000 m 10800 6000 l 10800 6900 l 9000 6900 l - cp -% Fill with pattern background color -gs /DeviceRGB setcolorspace 0.00 0.00 0.56 setcolor fill gr - -% Fill with pattern pen color -gs /DeviceRGB setcolorspace 0.00 0.00 0.56 P1 setpattern fill gr - -gs col8 s gr -% Polyline -n 4200 6000 m 9000 6000 l 9000 6900 l 4200 6900 l - cp gs col7 1.00 shd ef gr gs col8 s gr +n 9000 7800 m 10800 7800 l 10800 8700 l 9000 8700 l + cp gs col7 0.00 shd ef gr gs col0 s gr % Polyline n 11700 -1200 m 12600 -1200 l 12600 8700 l 11700 8700 l - cp gs col7 1.00 shd ef gr gs col18 s gr -% Polyline -n 12600 -1200 m 14400 -1200 l 14400 600 l 12600 600 l cp gs col18 1.00 shd ef gr gs col18 s gr % here ends figure; % % here starts figure with depth 50 -/Times-Bold ff 400.00 scf sf -6600 8400 m -gs 1 -1 sc (Hurricane) dup sw pop 2 div neg 0 rm col0 sh gr -/Times-Bold ff 300.00 scf sf -9900 8400 m -gs 1 -1 sc (Isobar) dup sw pop 2 div neg 0 rm col7 sh gr -/Times-Bold ff 300.00 scf sf -6900 4800 m -gs 1 -1 sc (PyMauka) dup sw pop 2 div neg 0 rm col7 sh gr -/Times-Bold ff 400.00 scf sf -5100 4800 m -gs 1 -1 sc (Mauka) dup sw pop 2 div neg 0 rm col21 sh gr -/Times-Bold ff 400.00 scf sf -5700 3000 m -gs 1 -1 sc (Knik) dup sw pop 2 div neg 0 rm col21 sh gr -/Times-Bold ff 300.00 scf sf -7500 3000 m -gs 1 -1 sc (PyKnik) dup sw pop 2 div neg 0 rm col7 sh gr -/Times-Bold ff 400.00 scf sf -5700 1200 m -gs 1 -1 sc (Kite) dup sw pop 2 div neg 0 rm col21 sh gr -/Times-Bold ff 300.00 scf sf -7500 1200 m -gs 1 -1 sc (PyKite) dup sw pop 2 div neg 0 rm col7 sh gr -/Times-Bold ff 300.00 scf sf -9900 -600 m -gs 1 -1 sc (PyUnicorn) dup sw pop 2 div neg 0 rm col7 sh gr -/Times-Bold ff 400.00 scf sf -6600 -600 m -gs 1 -1 sc (Unicorn) dup sw pop 2 div neg 0 rm col21 sh gr -/Times-Bold ff 400.00 scf sf -13650 2700 m -gs 1 -1 sc 90.0 rot (Stratus) dup sw pop 2 div neg 0 rm col18 sh gr -/Times-Bold ff 400.00 scf sf -14250 5700 m -gs 1 -1 sc 90.0 rot (Plugin) dup sw pop 2 div neg 0 rm col18 sh gr -/Times-Bold ff 400.00 scf sf +/Helvetica-Bold ff 400.00 scf sf 6600 6600 m gs 1 -1 sc (CRL Core) dup sw pop 2 div neg 0 rm col8 sh gr -/Times-Bold ff 300.00 scf sf +/Helvetica-Bold ff 300.00 scf sf 9975 6600 m gs 1 -1 sc (PyCRL) dup sw pop 2 div neg 0 rm col7 sh gr -/Times-Bold ff 533.33 scf sf -12375 3150 m -gs 1 -1 sc 90.0 rot (Python) dup sw pop 2 div neg 0 rm col18 sh gr -/Times-Bold ff 533.33 scf sf +/Helvetica-Bold ff 533.33 scf sf 13650 -300 m gs 1 -1 sc 90.0 rot (cgt) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 300.00 scf sf +9900 -600 m +gs 1 -1 sc (PyUnicorn) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 400.00 scf sf +6600 -600 m +gs 1 -1 sc (Unicorn) dup sw pop 2 div neg 0 rm col21 sh gr +/Helvetica-Bold ff 400.00 scf sf +5700 1200 m +gs 1 -1 sc (Kite) dup sw pop 2 div neg 0 rm col21 sh gr +/Helvetica-Bold ff 300.00 scf sf +7500 1200 m +gs 1 -1 sc (PyKite) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 400.00 scf sf +5700 3000 m +gs 1 -1 sc (Knik) dup sw pop 2 div neg 0 rm col21 sh gr +/Helvetica-Bold ff 300.00 scf sf +7500 3000 m +gs 1 -1 sc (PyKnik) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 300.00 scf sf +6900 4800 m +gs 1 -1 sc (PyEtesian) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 400.00 scf sf +5100 4800 m +gs 1 -1 sc (Etesian) dup sw pop 2 div neg 0 rm col21 sh gr +/Helvetica-Bold ff 533.33 scf sf +12375 3600 m +gs 1 -1 sc 90.0 rot (Python) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 400.00 scf sf +13650 2700 m +gs 1 -1 sc 90.0 rot (Stratus) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 400.00 scf sf +14250 5700 m +gs 1 -1 sc 90.0 rot (Plugin) dup sw pop 2 div neg 0 rm col7 sh gr +/Helvetica-Bold ff 400.00 scf sf +6600 8400 m +gs 1 -1 sc (Hurricane) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica-Bold ff 300.00 scf sf +9900 8400 m +gs 1 -1 sc (Isobar) dup sw pop 2 div neg 0 rm col7 sh gr % here ends figure; -$F2psEnd -rs -end +pagefooter showpage %%Trailer +end %EOF diff --git a/documentation/UsersGuide/images/Coriolis-Soft-Schema.fig b/documentation/UsersGuide/images/Coriolis-Soft-Schema.fig index b7753022..7b95cc4b 100644 --- a/documentation/UsersGuide/images/Coriolis-Soft-Schema.fig +++ b/documentation/UsersGuide/images/Coriolis-Soft-Schema.fig @@ -1,4 +1,4 @@ -#FIG 3.2 Produced by xfig version 3.2.5a +#FIG 3.2 Produced by xfig version 3.2.5c Landscape Center Inches @@ -83,9 +83,6 @@ Single 11700 -1200 12600 -1200 12600 8700 11700 8700 11700 -1200 2 2 0 4 18 18 70 -1 30 0.000 0 0 -1 0 0 5 13800 4800 14400 4800 14400 6600 13800 6600 13800 4800 -2 1 0 2 0 7 70 -1 -1 0.000 0 0 -1 1 0 2 - 1 1 2.00 120.00 240.00 - 5100 7800 5100 1500 2 1 0 2 8 7 70 -1 -1 0.000 0 0 -1 1 0 2 1 1 2.00 120.00 240.00 5850 6000 5850 -300 @@ -99,6 +96,9 @@ Single 4950 7800 4950 3300 2 2 0 4 18 18 70 -1 30 0.000 0 0 -1 0 0 5 12600 -1200 14400 -1200 14400 600 12600 600 12600 -1200 +2 1 0 2 0 7 70 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + 5100 7800 5100 1500 4 1 8 50 -1 18 24 0.0000 4 300 1920 6600 6600 CRL Core\001 4 1 7 50 -1 18 18 0.0000 4 285 990 9975 6600 PyCRL\001 4 1 7 50 -1 18 32 1.5708 4 480 810 13650 -300 cgt\001 @@ -108,8 +108,8 @@ Single 4 1 7 50 -1 18 18 0.0000 4 285 945 7500 1200 PyKite\001 4 1 21 50 -1 18 24 0.0000 4 300 900 5700 3000 Knik\001 4 1 7 50 -1 18 18 0.0000 4 285 1020 7500 3000 PyKnik\001 -4 1 7 50 -1 18 18 0.0000 4 285 1290 6900 4800 PyMauka\001 -4 1 21 50 -1 18 24 0.0000 4 300 1275 5100 4800 Mauka\001 +4 1 7 50 -1 18 18 0.0000 4 285 1425 6900 4800 PyEtesian\001 +4 1 21 50 -1 18 24 0.0000 4 300 1455 5100 4800 Etesian\001 4 1 7 50 -1 18 32 1.5708 4 510 1830 12375 3600 Python\001 4 1 7 50 -1 18 24 1.5708 4 300 1410 13650 2700 Stratus\001 4 1 7 50 -1 18 24 1.5708 4 390 1275 14250 5700 Plugin\001 diff --git a/documentation/UsersGuide/images/Coriolis-Soft-Schema.pdf b/documentation/UsersGuide/images/Coriolis-Soft-Schema.pdf index 27fb14d2..60cd1650 100644 Binary files a/documentation/UsersGuide/images/Coriolis-Soft-Schema.pdf and b/documentation/UsersGuide/images/Coriolis-Soft-Schema.pdf differ diff --git a/documentation/UsersGuide/images/Coriolis-Soft-Schema.png b/documentation/UsersGuide/images/Coriolis-Soft-Schema.png index 40ab26b4..93c9135c 100644 Binary files a/documentation/UsersGuide/images/Coriolis-Soft-Schema.png and b/documentation/UsersGuide/images/Coriolis-Soft-Schema.png differ diff --git a/documentation/UsersGuide/images/chip-structure-1.eps b/documentation/UsersGuide/images/chip-structure-1.eps new file mode 100644 index 00000000..71b1f531 --- /dev/null +++ b/documentation/UsersGuide/images/chip-structure-1.eps @@ -0,0 +1,544 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: chip-structure-1.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Thu Mar 5 23:52:42 2015 +%%For: jpc@lepka (Jean-Paul Chaput) +%%BoundingBox: 0 0 1018 438 +%Magnification: 1.0000 +%%EndComments +%%BeginProlog +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +/pageheader { +save +newpath 0 438 moveto 0 0 lineto 1018 0 lineto 1018 438 lineto closepath clip newpath +403.1 488.6 translate +1 -1 scale +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.06000 0.06000 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 70 +% Polyline +0 slj +0 slc +0.000 slw +n 3075 2925 m 3075 2475 l 3525 2475 l 3525 2925 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 4575 975 m 5025 975 l 5025 1425 l 4575 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 5175 975 m 5625 975 l 5625 1425 l 5175 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 5775 975 m 6225 975 l 6225 1425 l 5775 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 6375 975 m 6825 975 l 6825 1425 l 6375 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 6975 975 m 7425 975 l 7425 1425 l 6975 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 7575 975 m 8025 975 l 8025 1425 l 7575 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 8175 975 m 8625 975 l 8625 1425 l 8175 1425 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 3075 3525 m 3075 3075 l 3525 3075 l 3525 3525 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 3075 4125 m 3075 3675 l 3525 3675 l 3525 4125 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 3075 4725 m 3075 4275 l 3525 4275 l 3525 4725 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 3075 5325 m 3075 4875 l 3525 4875 l 3525 5325 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 3075 5925 m 3075 5475 l 3525 5475 l 3525 5925 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 3075 m 10125 3525 l 9675 3525 l 9675 3075 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 3675 m 10125 4125 l 9675 4125 l 9675 3675 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 4275 m 10125 4725 l 9675 4725 l 9675 4275 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 4875 m 10125 5325 l 9675 5325 l 9675 4875 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 5475 m 10125 5925 l 9675 5925 l 9675 5475 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 6075 m 10125 6525 l 9675 6525 l 9675 6075 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 6225 8025 m 5775 8025 l 5775 7575 l 6225 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 6825 8025 m 6375 8025 l 6375 7575 l 6825 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 7425 8025 m 6975 8025 l 6975 7575 l 7425 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 8025 8025 m 7575 8025 l 7575 7575 l 8025 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 5625 8025 m 5175 8025 l 5175 7575 l 5625 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 8625 8025 m 8175 8025 l 8175 7575 l 8625 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 5025 8025 m 4575 8025 l 4575 7575 l 5025 7575 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 10125 2475 m 10125 2925 l 9675 2925 l 9675 2475 l + cp gs col1 0.50 tnt ef gr +% Polyline +n 3075 6525 m 3075 6075 l 3525 6075 l 3525 6525 l + cp gs col1 0.50 tnt ef gr +% here ends figure; +% +% here starts figure with depth 60 +% Polyline +0 slj +0 slc +7.500 slw +n 5100 3000 m 8100 3000 l 8100 6000 l 5100 6000 l + cp gs 0.50 setgray ef gr gs col0 s gr +% here ends figure; +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +45.000 slw +n 3000 3000 m 3000 2400 l 4500 2400 l 4500 3000 l + cp gs col0 s gr +% Polyline +n 4500 900 m 5100 900 l 5100 2400 l 4500 2400 l + cp gs col0 s gr +% Polyline +n 5100 900 m 5700 900 l 5700 2400 l 5100 2400 l + cp gs col0 s gr +% Polyline +n 5700 900 m 6300 900 l 6300 2400 l 5700 2400 l + cp gs col0 s gr +% Polyline +n 6300 900 m 6900 900 l 6900 2400 l 6300 2400 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +6600 1650 m +gs 1 -1 sc 90.0 rot (pvddeck_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 6900 900 m 7500 900 l 7500 2400 l 6900 2400 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +7200 1650 m +gs 1 -1 sc 90.0 rot (pvsseck_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 7500 900 m 8100 900 l 8100 2400 l 7500 2400 l + cp gs col0 s gr +% Polyline +n 8100 900 m 8700 900 l 8700 2400 l 8100 2400 l + cp gs col0 s gr +% Polyline +n 3000 3600 m 3000 3000 l 4500 3000 l 4500 3600 l + cp gs col0 s gr +% Polyline +n 3000 4200 m 3000 3600 l 4500 3600 l 4500 4200 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +3750 3900 m +gs 1 -1 sc 180.0 rot (pvssick_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 3000 4800 m 3000 4200 l 4500 4200 l 4500 4800 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +3750 4500 m +gs 1 -1 sc 180.0 rot (pvddick_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 3000 5400 m 3000 4800 l 4500 4800 l 4500 5400 l + cp gs col0 s gr +% Polyline +n 3000 6000 m 3000 5400 l 4500 5400 l 4500 6000 l + cp gs col0 s gr +% Polyline +n 10200 3000 m 10200 3600 l 8700 3600 l 8700 3000 l + cp gs col0 s gr +% Polyline +n 10200 3600 m 10200 4200 l 8700 4200 l 8700 3600 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +9450 3900 m +gs 1 -1 sc (pvddeck_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 10200 4200 m 10200 4800 l 8700 4800 l 8700 4200 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +9450 4500 m +gs 1 -1 sc (pvsseck_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 10200 4800 m 10200 5400 l 8700 5400 l 8700 4800 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +9450 5100 m +gs 1 -1 sc (pck_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 10200 5400 m 10200 6000 l 8700 6000 l 8700 5400 l + cp gs col0 s gr +% Polyline +n 10200 6000 m 10200 6600 l 8700 6600 l 8700 6000 l + cp gs col0 s gr +% Polyline +n 6300 8100 m 5700 8100 l 5700 6600 l 6300 6600 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +6000 7350 m +gs 1 -1 sc 270.0 rot (pvddick_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 6900 8100 m 6300 8100 l 6300 6600 l 6900 6600 l + cp gs col0 s gr +/Courier-Bold ff 200.00 scf sf +6600 7350 m +gs 1 -1 sc 270.0 rot (pvssick_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +n 7500 8100 m 6900 8100 l 6900 6600 l 7500 6600 l + cp gs col0 s gr +% Polyline +n 8100 8100 m 7500 8100 l 7500 6600 l 8100 6600 l + cp gs col0 s gr +% Polyline +n 5700 8100 m 5100 8100 l 5100 6600 l 5700 6600 l + cp gs col0 s gr +% Polyline +n 8700 8100 m 8100 8100 l 8100 6600 l 8700 6600 l + cp gs col0 s gr +% Polyline +n 5100 8100 m 4500 8100 l 4500 6600 l 5100 6600 l + cp gs col0 s gr +% Polyline +n 10200 2400 m 10200 3000 l 8700 3000 l 8700 2400 l + cp gs col0 s gr +% Polyline +n 3000 6600 m 3000 6000 l 4500 6000 l 4500 6600 l + cp gs col0 s gr +% Polyline +n -1800 4500 m -2400 4500 l -2400 4125 l -2175 3900 l -1200 3900 l -1200 4500 l + + -1800 4500 l cp gs col0 s gr +/Helvetica-Bold ff 233.33 scf sf +-1800 4275 m +gs 1 -1 sc (pck_px) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +15.000 slw +n -6600 2400 m -5400 2400 l -5400 3000 l -6600 3000 l + cp gs col0 s gr +% Polyline +n -4800 2400 m -3600 2400 l -3600 3000 l -4800 3000 l + cp gs col0 s gr +% Polyline +n -3000 2400 m -1800 2400 l -1800 3000 l -3000 3000 l + cp gs col0 s gr +% Polyline +n -1200 2400 m 0 2400 l 0 3000 l -1200 3000 l + cp gs col0 s gr +% Polyline +n 600 2400 m 1800 2400 l 1800 3000 l 600 3000 l + cp gs col0 s gr +% Polyline +45.000 slw +n -6000 4500 m -6600 4500 l -6600 4125 l -6375 3900 l -5400 3900 l -5400 4500 l + + -6000 4500 l cp gs col0 s gr +% Polyline +n -4200 4500 m -4800 4500 l -4800 4125 l -4575 3900 l -3600 3900 l -3600 4500 l + + -4200 4500 l cp gs col0 s gr +% Polyline +15.000 slw +gs clippath +-6059 3628 m -6060 3915 l -5940 3915 l -5939 3628 l -5939 3628 l -5999 3868 l -6059 3628 l cp +eoclip +n -6000 3000 m + -6000 3900 l gs col0 s gr gr + +% arrowhead +n -6059 3628 m -5999 3868 l -5939 3628 l -6059 3628 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +-4259 3628 m -4260 3915 l -4140 3915 l -4139 3628 l -4139 3628 l -4199 3868 l -4259 3628 l cp +eoclip +n -4200 3000 m + -4200 3900 l gs col0 s gr gr + +% arrowhead +n -4259 3628 m -4199 3868 l -4139 3628 l -4259 3628 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +-3696 3708 m -3943 3856 l -3881 3959 l -3634 3810 l -3634 3810 l -3871 3883 l -3696 3708 l cp +eoclip +n -2400 3000 m + -3900 3900 l gs col0 s gr gr + +% arrowhead +n -3696 3708 m -3871 3883 l -3634 3810 l -3696 3708 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +-1617 3689 m -1848 3861 l -1776 3957 l -1545 3785 l -1545 3785 l -1773 3881 l -1617 3689 l cp +eoclip +n -600 3000 m + -1800 3900 l gs col0 s gr gr + +% arrowhead +n -1617 3689 m -1773 3881 l -1545 3785 l -1617 3689 l cp gs 0.00 setgray ef gr col0 s +% Polyline +gs clippath +1140 3628 m 1140 3915 l 1260 3915 l 1260 3628 l 1260 3628 l 1200 3868 l 1140 3628 l cp +eoclip +n 1200 3000 m + 1200 3900 l gs col0 s gr gr + +% arrowhead +n 1140 3628 m 1200 3868 l 1260 3628 l 1140 3628 l cp gs 0.00 setgray ef gr col0 s +% Polyline +45.000 slw +n -6000 7200 m -6600 7200 l -6600 6825 l -6375 6600 l -5400 6600 l -5400 7200 l + + -6000 7200 l cp gs col0 s gr +% Polyline +15.000 slw +n -6600 7500 m -5400 7500 l -5400 8100 l -6600 8100 l + cp gs col0 s gr +% Polyline +7.500 slw +n 3000 900 m 10200 900 l 10200 8100 l 3000 8100 l + cp gs col0 s gr +% Polyline +45.000 slw +n -2400 3150 m -6675 3150 l -6675 1875 l -6225 1425 l 1875 1425 l 1875 3150 l + + -2400 3150 l cp gs col0 s gr +% Polyline +n -3300 1425 m -3300 1875 l -1500 1875 l + -1500 1425 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +-5740 2293 m -6025 2343 l -6004 2461 l -5720 2411 l -5720 2411 l -5967 2394 l -5740 2293 l cp +eoclip +n -3000 1875 m + -6000 2400 l gs col0 s gr gr + +% arrowhead +n -5740 2293 m -5967 2394 l -5720 2411 l -5740 2293 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-3967 2245 m -4235 2349 l -4192 2461 l -3923 2356 l -3923 2356 l -4169 2388 l -3967 2245 l cp +eoclip +n -2850 1875 m + -4200 2400 l gs col0 s gr gr + +% arrowhead +n -3967 2245 m -4169 2388 l -3923 2356 l -3967 2245 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-2459 2128 m -2460 2415 l -2340 2415 l -2339 2128 l -2339 2128 l -2399 2368 l -2459 2128 l cp +eoclip +n -2400 1875 m + -2400 2400 l gs col0 s gr gr + +% arrowhead +n -2459 2128 m -2399 2368 l -2339 2128 l -2459 2128 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-876 2366 m -605 2461 l -566 2348 l -836 2253 l -836 2253 l -630 2389 l -876 2366 l cp +eoclip +n -2100 1875 m + -600 2400 l gs col0 s gr gr + +% arrowhead +n -876 2366 m -630 2389 l -836 2253 l -876 2366 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +921 2409 m 1203 2461 l 1225 2343 l 942 2291 l 942 2291 l 1168 2394 l 921 2409 l cp +eoclip +n -1650 1875 m + 1200 2400 l gs col0 s gr gr + +% arrowhead +n 921 2409 m 1168 2394 l 942 2291 l 921 2409 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +45.000 slw +n 1200 5100 m 0 5100 l 0 4275 l 375 3900 l 2400 3900 l 2400 5100 l + + 1200 5100 l cp gs col0 s gr +% Polyline +n 600 3900 m 600 4275 l 1800 4275 l + 1800 3900 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +682 4533 m 540 4783 l 644 4842 l 787 4593 l 787 4593 l 616 4772 l 682 4533 l cp +eoclip +n 900 4275 m + 600 4800 l gs col0 s gr gr + +% arrowhead +n 682 4533 m 616 4772 l 787 4593 l 682 4533 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +1140 4528 m 1140 4815 l 1260 4815 l 1260 4528 l 1260 4528 l 1200 4768 l 1140 4528 l cp +eoclip +n 1200 4275 m + 1200 4800 l gs col0 s gr gr + +% arrowhead +n 1140 4528 m 1200 4768 l 1260 4528 l 1140 4528 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +1612 4593 m 1755 4842 l 1859 4783 l 1717 4533 l 1717 4533 l 1784 4772 l 1612 4593 l cp +eoclip +n 1500 4275 m + 1800 4800 l gs col0 s gr gr + +% arrowhead +n 1612 4593 m 1784 4772 l 1717 4533 l 1612 4593 l cp gs col7 1.00 shd ef gr col0 s +/Courier-Bold ff 266.67 scf sf +-5100 6975 m +gs 1 -1 sc (Cell \(Model\)) col0 sh gr +/Courier ff 266.67 scf sf +-5100 7875 m +gs 1 -1 sc (Instance) col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +-6000 4275 m +gs 1 -1 sc (pi_px) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +-4200 4275 m +gs 1 -1 sc (po_px) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-6000 2775 m +gs 1 -1 sc (p_a0) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-4200 2775 m +gs 1 -1 sc (p_ovr) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-2400 2775 m +gs 1 -1 sc (p_ng) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-600 2775 m +gs 1 -1 sc (p_ck) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +1200 2775 m +gs 1 -1 sc (core) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-6000 7875 m +gs 1 -1 sc (i_name) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +-6000 6975 m +gs 1 -1 sc (m_name) dup sw pop 2 div neg 0 rm col0 sh gr +/Courier-Bold ff 300.00 scf sf +6525 4575 m +gs 1 -1 sc (coeur) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +-2400 1725 m +gs 1 -1 sc (amd2901) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +1200 4125 m +gs 1 -1 sc (coeur) dup sw pop 2 div neg 0 rm col0 sh gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/documentation/UsersGuide/images/chip-structure-1.fig b/documentation/UsersGuide/images/chip-structure-1.fig new file mode 100644 index 00000000..a3658fca --- /dev/null +++ b/documentation/UsersGuide/images/chip-structure-1.fig @@ -0,0 +1,280 @@ +#FIG 3.2 Produced by xfig version 3.2.5c +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +6 2925 2325 4575 3075 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 3000 3000 2400 4500 2400 4500 3000 3000 3000 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 2925 3075 2475 3525 2475 3525 2925 3075 2925 +-6 +6 4425 825 5175 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 4500 900 5100 900 5100 2400 4500 2400 4500 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 4575 975 5025 975 5025 1425 4575 1425 4575 975 +-6 +6 5025 825 5775 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 5100 900 5700 900 5700 2400 5100 2400 5100 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 5175 975 5625 975 5625 1425 5175 1425 5175 975 +-6 +6 5625 825 6375 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 5700 900 6300 900 6300 2400 5700 2400 5700 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 5775 975 6225 975 6225 1425 5775 1425 5775 975 +-6 +6 6225 825 6975 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 6300 900 6900 900 6900 2400 6300 2400 6300 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 6375 975 6825 975 6825 1425 6375 1425 6375 975 +4 1 0 50 -1 14 12 1.5708 4 165 1200 6600 1650 pvddeck_px\001 +-6 +6 6825 825 7575 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 6900 900 7500 900 7500 2400 6900 2400 6900 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 6975 975 7425 975 7425 1425 6975 1425 6975 975 +4 1 0 50 -1 14 12 1.5708 4 165 1200 7200 1650 pvsseck_px\001 +-6 +6 7425 825 8175 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 7500 900 8100 900 8100 2400 7500 2400 7500 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 7575 975 8025 975 8025 1425 7575 1425 7575 975 +-6 +6 8025 825 8775 2475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 8100 900 8700 900 8700 2400 8100 2400 8100 900 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 8175 975 8625 975 8625 1425 8175 1425 8175 975 +-6 +6 2925 2925 4575 3675 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 3600 3000 3000 4500 3000 4500 3600 3000 3600 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 3525 3075 3075 3525 3075 3525 3525 3075 3525 +-6 +6 2925 3525 4575 4275 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 4200 3000 3600 4500 3600 4500 4200 3000 4200 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 4125 3075 3675 3525 3675 3525 4125 3075 4125 +4 1 0 50 -1 14 12 3.1416 4 165 1200 3750 3900 pvssick_px\001 +-6 +6 2925 4125 4575 4875 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 4800 3000 4200 4500 4200 4500 4800 3000 4800 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 4725 3075 4275 3525 4275 3525 4725 3075 4725 +4 1 0 50 -1 14 12 3.1416 4 165 1200 3750 4500 pvddick_px\001 +-6 +6 2925 4725 4575 5475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 5400 3000 4800 4500 4800 4500 5400 3000 5400 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 5325 3075 4875 3525 4875 3525 5325 3075 5325 +-6 +6 2925 5325 4575 6075 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 6000 3000 5400 4500 5400 4500 6000 3000 6000 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 5925 3075 5475 3525 5475 3525 5925 3075 5925 +-6 +6 8625 2925 10275 3675 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 3000 10200 3600 8700 3600 8700 3000 10200 3000 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 3075 10125 3525 9675 3525 9675 3075 10125 3075 +-6 +6 8625 3525 10275 4275 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 3600 10200 4200 8700 4200 8700 3600 10200 3600 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 3675 10125 4125 9675 4125 9675 3675 10125 3675 +4 1 0 50 -1 14 12 0.0000 4 165 1200 9450 3900 pvddeck_px\001 +-6 +6 8625 4125 10275 4875 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 4200 10200 4800 8700 4800 8700 4200 10200 4200 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 4275 10125 4725 9675 4725 9675 4275 10125 4275 +4 1 0 50 -1 14 12 0.0000 4 165 1200 9450 4500 pvsseck_px\001 +-6 +6 8625 4725 10275 5475 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 4800 10200 5400 8700 5400 8700 4800 10200 4800 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 4875 10125 5325 9675 5325 9675 4875 10125 4875 +4 1 0 50 -1 14 12 0.0000 4 165 720 9450 5100 pck_px\001 +-6 +6 8625 5325 10275 6075 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 5400 10200 6000 8700 6000 8700 5400 10200 5400 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 5475 10125 5925 9675 5925 9675 5475 10125 5475 +-6 +6 8625 5925 10275 6675 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 6000 10200 6600 8700 6600 8700 6000 10200 6000 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 6075 10125 6525 9675 6525 9675 6075 10125 6075 +-6 +6 5625 6525 6375 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 6300 8100 5700 8100 5700 6600 6300 6600 6300 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 6225 8025 5775 8025 5775 7575 6225 7575 6225 8025 +4 1 0 50 -1 14 12 4.7124 4 165 1200 6000 7350 pvddick_px\001 +-6 +6 6225 6525 6975 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 6900 8100 6300 8100 6300 6600 6900 6600 6900 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 6825 8025 6375 8025 6375 7575 6825 7575 6825 8025 +4 1 0 50 -1 14 12 4.7124 4 165 1200 6600 7350 pvssick_px\001 +-6 +6 6825 6525 7575 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 7500 8100 6900 8100 6900 6600 7500 6600 7500 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 7425 8025 6975 8025 6975 7575 7425 7575 7425 8025 +-6 +6 7425 6525 8175 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 8100 8100 7500 8100 7500 6600 8100 6600 8100 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 8025 8025 7575 8025 7575 7575 8025 7575 8025 8025 +-6 +6 5025 6525 5775 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 5700 8100 5100 8100 5100 6600 5700 6600 5700 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 5625 8025 5175 8025 5175 7575 5625 7575 5625 8025 +-6 +6 8025 6525 8775 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 8700 8100 8100 8100 8100 6600 8700 6600 8700 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 8625 8025 8175 8025 8175 7575 8625 7575 8625 8025 +-6 +6 4425 6525 5175 8175 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 5100 8100 4500 8100 4500 6600 5100 6600 5100 8100 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 5025 8025 4575 8025 4575 7575 5025 7575 5025 8025 +-6 +6 8625 2325 10275 3075 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 10200 2400 10200 3000 8700 3000 8700 2400 10200 2400 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 10125 2475 10125 2925 9675 2925 9675 2475 10125 2475 +-6 +6 2925 5925 4575 6675 +2 2 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 6600 3000 6000 4500 6000 4500 6600 3000 6600 +2 2 0 0 1 1 70 -1 30 0.000 0 0 -1 0 0 5 + 3075 6525 3075 6075 3525 6075 3525 6525 3075 6525 +-6 +6 -2475 3825 -1125 4575 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -1800 4500 -2400 4500 -2400 4125 -2175 3900 -1200 3900 -1200 4500 + -1800 4500 +4 1 0 50 -1 18 14 0.0000 4 225 840 -1800 4275 pck_px\001 +-6 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -6600 2400 -5400 2400 -5400 3000 -6600 3000 -6600 2400 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -4800 2400 -3600 2400 -3600 3000 -4800 3000 -4800 2400 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -3000 2400 -1800 2400 -1800 3000 -3000 3000 -3000 2400 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -1200 2400 0 2400 0 3000 -1200 3000 -1200 2400 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 600 2400 1800 2400 1800 3000 600 3000 600 2400 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -6000 4500 -6600 4500 -6600 4125 -6375 3900 -5400 3900 -5400 4500 + -6000 4500 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -4200 4500 -4800 4500 -4800 4125 -4575 3900 -3600 3900 -3600 4500 + -4200 4500 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -6000 3000 -6000 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -4200 3000 -4200 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -2400 3000 -3900 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -600 3000 -1800 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + 1200 3000 1200 3900 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -6000 7200 -6600 7200 -6600 6825 -6375 6600 -5400 6600 -5400 7200 + -6000 7200 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -6600 7500 -5400 7500 -5400 8100 -6600 8100 -6600 7500 +2 2 0 1 0 0 60 -1 10 0.000 0 0 -1 0 0 5 + 5100 3000 8100 3000 8100 6000 5100 6000 5100 3000 +2 2 0 1 0 1 50 -1 -1 0.000 0 0 -1 0 0 5 + 3000 900 10200 900 10200 8100 3000 8100 3000 900 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 7 + -2400 3150 -6675 3150 -6675 1875 -6225 1425 1875 1425 1875 3150 + -2400 3150 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + -3300 1425 -3300 1875 -1500 1875 -1500 1425 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -3000 1875 -6000 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -2850 1875 -4200 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -2400 1875 -2400 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -2100 1875 -600 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -1650 1875 1200 2400 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 7 + 1200 5100 0 5100 0 4275 375 3900 2400 3900 2400 5100 + 1200 5100 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + 600 3900 600 4275 1800 4275 1800 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + 900 4275 600 4800 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + 1200 4275 1200 4800 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + 1500 4275 1800 4800 +4 0 0 50 -1 14 16 0.0000 4 210 1980 -5100 6975 Cell (Model)\001 +4 0 0 50 -1 12 16 0.0000 4 150 1320 -5100 7875 Instance\001 +4 1 0 50 -1 18 14 0.0000 4 225 630 -6000 4275 pi_px\001 +4 1 0 50 -1 18 14 0.0000 4 180 720 -4200 4275 po_px\001 +4 1 0 50 -1 16 14 0.0000 4 210 540 -6000 2775 p_a0\001 +4 1 0 50 -1 16 14 0.0000 4 165 600 -4200 2775 p_ovr\001 +4 1 0 50 -1 16 14 0.0000 4 165 540 -2400 2775 p_ng\001 +4 1 0 50 -1 16 14 0.0000 4 225 510 -600 2775 p_ck\001 +4 1 0 50 -1 16 14 0.0000 4 120 465 1200 2775 core\001 +4 1 0 50 -1 16 14 0.0000 4 225 795 -6000 7875 i_name\001 +4 1 0 50 -1 18 14 0.0000 4 180 975 -6000 6975 m_name\001 +4 1 0 50 -1 14 18 0.0000 4 135 900 6525 4575 coeur\001 +4 1 0 50 -1 18 14 0.0000 4 180 1035 -2400 1725 amd2901\001 +4 1 0 50 -1 18 14 0.0000 4 135 660 1200 4125 coeur\001 diff --git a/documentation/UsersGuide/images/chip-structure-1.png b/documentation/UsersGuide/images/chip-structure-1.png new file mode 100644 index 00000000..8af23393 Binary files /dev/null and b/documentation/UsersGuide/images/chip-structure-1.png differ diff --git a/documentation/UsersGuide/images/etesian-1.eps b/documentation/UsersGuide/images/etesian-1.eps new file mode 100644 index 00000000..a413c9d0 --- /dev/null +++ b/documentation/UsersGuide/images/etesian-1.eps @@ -0,0 +1,437 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Title: etesian-1.fig +%%Creator: fig2dev Version 3.2 Patchlevel 5d +%%CreationDate: Fri Mar 6 00:13:07 2015 +%%For: jpc@lepka (Jean-Paul Chaput) +%%BoundingBox: 0 0 507 267 +%Magnification: 0.7000 +%%EndComments +%%BeginProlog +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def + +/pageheader { +save +newpath 0 267 moveto 0 0 lineto 507 0 lineto 507 267 lineto closepath clip newpath +253.8 315.9 translate +1 -1 scale +$F2psBegin +10 setmiterlimit +0 slj 0 slc + 0.04200 0.04200 sc +} bind def +/pagefooter { +$F2psEnd +restore +} bind def +%%EndProlog +pageheader +% +% Fig objects follow +% +% +% here starts figure with depth 50 +% Polyline +0 slj +0 slc +45.000 slw +n -5100 6600 m -5700 6600 l -5700 6225 l -5475 6000 l -4500 6000 l -4500 6600 l + + -5100 6600 l cp gs col0 s gr +% Polyline +15.000 slw +n -5700 6900 m -4500 6900 l -4500 7500 l -5700 7500 l + cp gs col0 s gr +/Courier ff 266.67 scf sf +-4200 7275 m +gs 1 -1 sc (Instance) col0 sh gr +/Helvetica ff 233.33 scf sf +-5100 7275 m +gs 1 -1 sc (i_name) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +-5100 6375 m +gs 1 -1 sc (m_name) dup sw pop 2 div neg 0 rm col0 sh gr +/Courier-Bold ff 266.67 scf sf +-4200 6375 m +gs 1 -1 sc (Cell \(Model\)) col0 sh gr +% Polyline +45.000 slw +n -5400 4800 m -6000 4800 l -6000 4125 l -5775 3900 l -4350 3900 l -4350 4800 l + + -5400 4800 l cp gs col0 s gr +% Polyline +n -5550 3900 m -5550 4200 l -4875 4200 l + -4875 3900 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +-5459 4378 m -5460 4665 l -5340 4665 l -5339 4378 l -5339 4378 l -5399 4618 l -5459 4378 l cp +eoclip +n -5400 4200 m + -5400 4650 l gs col0 s gr gr + +% arrowhead +n -5459 4378 m -5399 4618 l -5339 4378 l -5459 4378 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-5009 4378 m -5010 4665 l -4890 4665 l -4889 4378 l -4889 4378 l -4949 4618 l -5009 4378 l cp +eoclip +n -4950 4200 m + -4950 4650 l gs col0 s gr gr + +% arrowhead +n -5009 4378 m -4949 4618 l -4889 4378 l -5009 4378 l cp gs col7 1.00 shd ef gr col0 s +/Helvetica-Bold ff 233.33 scf sf +-5175 4125 m +gs 1 -1 sc (alu) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +45.000 slw +n -3600 4800 m -4200 4800 l -4200 4125 l -3975 3900 l -2550 3900 l -2550 4800 l + + -3600 4800 l cp gs col0 s gr +% Polyline +n -3750 3900 m -3750 4200 l -3000 4200 l + -3000 3900 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +-3659 4378 m -3660 4665 l -3540 4665 l -3539 4378 l -3539 4378 l -3599 4618 l -3659 4378 l cp +eoclip +n -3600 4200 m + -3600 4650 l gs col0 s gr gr + +% arrowhead +n -3659 4378 m -3599 4618 l -3539 4378 l -3659 4378 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-3209 4378 m -3210 4665 l -3090 4665 l -3089 4378 l -3089 4378 l -3149 4618 l -3209 4378 l cp +eoclip +n -3150 4200 m + -3150 4650 l gs col0 s gr gr + +% arrowhead +n -3209 4378 m -3149 4618 l -3089 4378 l -3209 4378 l cp gs col7 1.00 shd ef gr col0 s +/Helvetica-Bold ff 233.33 scf sf +-3375 4125 m +gs 1 -1 sc (accu) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +45.000 slw +n -1800 4800 m -2400 4800 l -2400 4125 l -2175 3900 l -750 3900 l -750 4800 l + + -1800 4800 l cp gs col0 s gr +% Polyline +n -1950 3900 m -1950 4200 l -1200 4200 l + -1200 3900 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +-1859 4378 m -1860 4665 l -1740 4665 l -1739 4378 l -1739 4378 l -1799 4618 l -1859 4378 l cp +eoclip +n -1800 4200 m + -1800 4650 l gs col0 s gr gr + +% arrowhead +n -1859 4378 m -1799 4618 l -1739 4378 l -1859 4378 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-1409 4378 m -1410 4665 l -1290 4665 l -1289 4378 l -1289 4378 l -1349 4618 l -1409 4378 l cp +eoclip +n -1350 4200 m + -1350 4650 l gs col0 s gr gr + +% arrowhead +n -1409 4378 m -1349 4618 l -1289 4378 l -1409 4378 l cp gs col7 1.00 shd ef gr col0 s +/Helvetica-Bold ff 233.33 scf sf +-1575 4125 m +gs 1 -1 sc (ram) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +45.000 slw +n 0 4800 m -600 4800 l -600 4125 l -375 3900 l 1050 3900 l 1050 4800 l + + 0 4800 l cp gs col0 s gr +% Polyline +n -225 3900 m -225 4200 l 675 4200 l + 675 3900 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +-60 4378 m -60 4665 l 60 4665 l 60 4378 l 60 4378 l 0 4618 l -60 4378 l cp +eoclip +n 0 4200 m + 0 4650 l gs col0 s gr gr + +% arrowhead +n -60 4378 m 0 4618 l 60 4378 l -60 4378 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +390 4378 m 390 4665 l 510 4665 l 510 4378 l 510 4378 l 450 4618 l 390 4378 l cp +eoclip +n 450 4200 m + 450 4650 l gs col0 s gr gr + +% arrowhead +n 390 4378 m 450 4618 l 510 4378 l 390 4378 l cp gs col7 1.00 shd ef gr col0 s +/Helvetica-Bold ff 233.33 scf sf +225 4125 m +gs 1 -1 sc (muxs) dup sw pop 2 div neg 0 rm col0 sh gr +% Polyline +7.500 slw +gs clippath +1860 1473 m 1860 1185 l 1740 1185 l 1740 1473 l 1740 1473 l 1800 1233 l 1860 1473 l cp +eoclip +n 1800 5400 m + 1800 1200 l gs col0 s gr gr + +% arrowhead +15.000 slw +n 1860 1473 m 1800 1233 l 1740 1473 l col0 s +% Polyline +7.500 slw +gs clippath +5727 5160 m 6015 5160 l 6015 5040 l 5727 5040 l 5727 5040 l 5967 5100 l 5727 5160 l cp +eoclip +n 1500 5100 m + 6000 5100 l gs col0 s gr gr + +% arrowhead +15.000 slw +n 5727 5160 m 5967 5100 l 5727 5040 l col0 s +% Polyline +45.000 slw + [150] 0 sd +n 1800 1800 m 5100 1800 l 5100 5100 l 1800 5100 l + cp gs col0 s gr [] 0 sd +% Polyline +15.000 slw + [90] 0 sd +n 1875 5025 m 5025 5025 l 5025 1875 l 1875 1875 l + cp gs col1 s gr [] 0 sd +% Polyline + [180] 0 sd +n 1950 1950 m 4950 1950 l 4950 4950 l 1950 4950 l + cp gs col4 s gr [] 0 sd +% Polyline +n 1800 6300 m + 2100 6300 l gs col1 s gr +% Polyline +n 1800 6000 m + 2100 6000 l gs col4 s gr +% Polyline +45.000 slw +n 1800 5700 m + 2100 5700 l gs col0 s gr +% Polyline +15.000 slw + [360] 0 sd +n 2025 2025 m 4875 2025 l 4875 4875 l 2025 4875 l + cp gs col12 s gr [] 0 sd +% Polyline +n 1800 6600 m + 2100 6600 l gs col12 s gr +% Polyline +45.000 slw +n -2400 3150 m -5775 3150 l -5775 2175 l -5325 1725 l 975 1725 l 975 3150 l + + -2400 3150 l cp gs col0 s gr +% Polyline +n -3000 1725 m -3000 2025 l -1800 2025 l + -1800 1725 l gs col0 s gr +% Polyline +15.000 slw +gs clippath +-4840 2296 m -5124 2343 l -5104 2461 l -4820 2414 l -4820 2414 l -5067 2395 l -4840 2296 l cp +eoclip +n -2850 2025 m + -5100 2400 l gs col0 s gr gr + +% arrowhead +n -4840 2296 m -5067 2395 l -4820 2414 l -4840 2296 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-3082 2225 m -3340 2353 l -3286 2460 l -3028 2332 l -3028 2332 l -3270 2386 l -3082 2225 l cp +eoclip +n -2550 2025 m + -3300 2400 l gs col0 s gr gr + +% arrowhead +n -3082 2225 m -3270 2386 l -3028 2332 l -3082 2225 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +-1769 2332 m -1513 2460 l -1459 2353 l -1715 2225 l -1715 2225 l -1528 2386 l -1769 2332 l cp +eoclip +n -2250 2025 m + -1500 2400 l gs col0 s gr gr + +% arrowhead +n -1769 2332 m -1528 2386 l -1715 2225 l -1769 2332 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +gs clippath +21 2414 m 304 2461 l 324 2343 l 41 2296 l 41 2296 l 268 2395 l 21 2414 l cp +eoclip +n -1950 2025 m + 300 2400 l gs col0 s gr gr + +% arrowhead +n 21 2414 m 268 2395 l 41 2296 l 21 2414 l cp gs col7 1.00 shd ef gr col0 s +% Polyline +n -5700 2400 m -4500 2400 l -4500 3000 l -5700 3000 l + cp gs col0 s gr +% Polyline +gs clippath +-5159 3628 m -5160 3915 l -5040 3915 l -5039 3628 l -5039 3628 l -5099 3868 l -5159 3628 l cp +eoclip +n -5100 3000 m + -5100 3900 l gs col0 s gr gr + +% arrowhead +n -5159 3628 m -5099 3868 l -5039 3628 l -5159 3628 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n -3900 2400 m -2700 2400 l -2700 3000 l -3900 3000 l + cp gs col0 s gr +% Polyline +gs clippath +-3359 3628 m -3360 3915 l -3240 3915 l -3239 3628 l -3239 3628 l -3299 3868 l -3359 3628 l cp +eoclip +n -3300 3000 m + -3300 3900 l gs col0 s gr gr + +% arrowhead +n -3359 3628 m -3299 3868 l -3239 3628 l -3359 3628 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n -2100 2400 m -900 2400 l -900 3000 l -2100 3000 l + cp gs col0 s gr +% Polyline +gs clippath +-1559 3628 m -1560 3915 l -1440 3915 l -1439 3628 l -1439 3628 l -1499 3868 l -1559 3628 l cp +eoclip +n -1500 3000 m + -1500 3900 l gs col0 s gr gr + +% arrowhead +n -1559 3628 m -1499 3868 l -1439 3628 l -1559 3628 l cp gs 0.00 setgray ef gr col0 s +% Polyline +n -300 2400 m 900 2400 l 900 3000 l -300 3000 l + cp gs col0 s gr +% Polyline +gs clippath +240 3628 m 240 3915 l 360 3915 l 360 3628 l 360 3628 l 300 3868 l 240 3628 l cp +eoclip +n 300 3000 m + 300 3900 l gs col0 s gr gr + +% arrowhead +n 240 3628 m 300 3868 l 360 3628 l 240 3628 l cp gs 0.00 setgray ef gr col0 s +/Helvetica-Bold ff 233.33 scf sf +2400 5700 m +gs 1 -1 sc (coeur) col0 sh gr +/Helvetica ff 233.33 scf sf +2400 6000 m +gs 1 -1 sc (ialu) col0 sh gr +/Helvetica ff 233.33 scf sf +2400 6300 m +gs 1 -1 sc (iaccu) col0 sh gr +/Helvetica ff 233.33 scf sf +2400 6600 m +gs 1 -1 sc (iram) col0 sh gr +/Helvetica-Bold ff 233.33 scf sf +-2400 1950 m +gs 1 -1 sc (coeur) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-5100 2625 m +gs 1 -1 sc (ialu) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-5100 2925 m +gs 1 -1 sc (\(0,0,ID\)) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-3300 2625 m +gs 1 -1 sc (iaccu) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-3300 2925 m +gs 1 -1 sc (\(0,0,ID\)) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-1500 2625 m +gs 1 -1 sc (iram) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +-1500 2925 m +gs 1 -1 sc (\(0,0,ID\)) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +300 2625 m +gs 1 -1 sc (imuxs) dup sw pop 2 div neg 0 rm col0 sh gr +/Helvetica ff 233.33 scf sf +300 2925 m +gs 1 -1 sc (\(0,0,ID\)) dup sw pop 2 div neg 0 rm col0 sh gr +% here ends figure; +pagefooter +showpage +%%Trailer +%EOF diff --git a/documentation/UsersGuide/images/etesian-1.fig b/documentation/UsersGuide/images/etesian-1.fig new file mode 100644 index 00000000..7b1231c9 --- /dev/null +++ b/documentation/UsersGuide/images/etesian-1.fig @@ -0,0 +1,148 @@ +#FIG 3.2 Produced by xfig version 3.2.5c +Landscape +Center +Inches +Letter +70.00 +Single +-2 +1200 2 +6 -5775 5925 -2175 7575 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -5100 6600 -5700 6600 -5700 6225 -5475 6000 -4500 6000 -4500 6600 + -5100 6600 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -5700 6900 -4500 6900 -4500 7500 -5700 7500 -5700 6900 +4 0 0 50 -1 12 16 0.0000 4 150 1320 -4200 7275 Instance\001 +4 1 0 50 -1 16 14 0.0000 4 225 795 -5100 7275 i_name\001 +4 1 0 50 -1 18 14 0.0000 4 180 975 -5100 6375 m_name\001 +4 0 0 50 -1 14 16 0.0000 4 210 1980 -4200 6375 Cell (Model)\001 +-6 +6 -6075 3825 -4275 4875 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -5400 4800 -6000 4800 -6000 4125 -5775 3900 -4350 3900 -4350 4800 + -5400 4800 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + -5550 3900 -5550 4200 -4875 4200 -4875 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -5400 4200 -5400 4650 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -4950 4200 -4950 4650 +4 1 0 50 -1 18 14 0.0000 4 180 345 -5175 4125 alu\001 +-6 +6 -4275 3825 -2475 4875 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -3600 4800 -4200 4800 -4200 4125 -3975 3900 -2550 3900 -2550 4800 + -3600 4800 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + -3750 3900 -3750 4200 -3000 4200 -3000 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -3600 4200 -3600 4650 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -3150 4200 -3150 4650 +4 1 0 50 -1 18 14 0.0000 4 135 555 -3375 4125 accu\001 +-6 +6 -2475 3825 -675 4875 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + -1800 4800 -2400 4800 -2400 4125 -2175 3900 -750 3900 -750 4800 + -1800 4800 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + -1950 3900 -1950 4200 -1200 4200 -1200 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -1800 4200 -1800 4650 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -1350 4200 -1350 4650 +4 1 0 50 -1 18 14 0.0000 4 135 435 -1575 4125 ram\001 +-6 +6 -675 3825 1125 4875 +2 1 0 4 0 7 50 -1 -1 0.000 0 0 -1 0 0 7 + 0 4800 -600 4800 -600 4125 -375 3900 1050 3900 1050 4800 + 0 4800 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + -225 3900 -225 4200 675 4200 675 3900 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + 0 4200 0 4650 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + 450 4200 450 4650 +4 1 0 50 -1 18 14 0.0000 4 135 630 225 4125 muxs\001 +-6 +2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2 + 0 0 2.00 120.00 240.00 + 1800 5400 1800 1200 +2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2 + 0 0 2.00 120.00 240.00 + 1500 5100 6000 5100 +2 2 1 4 0 7 50 -1 -1 10.000 0 0 -1 0 0 5 + 1800 1800 5100 1800 5100 5100 1800 5100 1800 1800 +2 2 1 2 1 7 50 -1 -1 6.000 0 0 -1 0 0 5 + 1875 5025 5025 5025 5025 1875 1875 1875 1875 5025 +2 2 1 2 4 7 50 -1 -1 12.000 0 0 -1 0 0 5 + 1950 1950 4950 1950 4950 4950 1950 4950 1950 1950 +2 1 0 2 1 7 50 -1 -1 12.000 0 0 -1 0 0 2 + 1800 6300 2100 6300 +2 1 0 2 4 7 50 -1 -1 12.000 0 0 -1 0 0 2 + 1800 6000 2100 6000 +2 1 0 4 0 7 50 -1 -1 20.000 0 0 -1 0 0 2 + 1800 5700 2100 5700 +2 2 1 2 12 7 50 -1 -1 24.000 0 0 -1 0 0 5 + 2025 2025 4875 2025 4875 4875 2025 4875 2025 2025 +2 1 0 2 12 7 50 -1 -1 24.000 0 0 -1 0 0 2 + 1800 6600 2100 6600 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 7 + -2400 3150 -5775 3150 -5775 2175 -5325 1725 975 1725 975 3150 + -2400 3150 +2 1 0 4 0 7 50 -1 -1 40.000 0 0 -1 0 0 4 + -3000 1725 -3000 2025 -1800 2025 -1800 1725 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -2850 2025 -5100 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -2550 2025 -3300 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -2250 2025 -1500 2400 +2 1 0 2 0 7 50 -1 -1 24.000 0 0 -1 1 0 2 + 1 0 2.00 120.00 240.00 + -1950 2025 300 2400 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -5700 2400 -4500 2400 -4500 3000 -5700 3000 -5700 2400 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -5100 3000 -5100 3900 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -3900 2400 -2700 2400 -2700 3000 -3900 3000 -3900 2400 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -3300 3000 -3300 3900 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -2100 2400 -900 2400 -900 3000 -2100 3000 -2100 2400 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + -1500 3000 -1500 3900 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + -300 2400 900 2400 900 3000 -300 3000 -300 2400 +2 1 0 2 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 1 2.00 120.00 240.00 + 300 3000 300 3900 +4 0 0 50 -1 18 14 0.0000 4 135 660 2400 5700 coeur\001 +4 0 0 50 -1 16 14 0.0000 4 180 390 2400 6000 ialu\001 +4 0 0 50 -1 16 14 0.0000 4 180 570 2400 6300 iaccu\001 +4 0 0 50 -1 16 14 0.0000 4 180 465 2400 6600 iram\001 +4 1 0 50 -1 18 14 0.0000 4 135 660 -2400 1950 coeur\001 +4 1 0 50 -1 16 14 0.0000 4 180 390 -5100 2625 ialu\001 +4 1 0 50 -1 16 14 0.0000 4 225 780 -5100 2925 (0,0,ID)\001 +4 1 0 50 -1 16 14 0.0000 4 180 570 -3300 2625 iaccu\001 +4 1 0 50 -1 16 14 0.0000 4 225 780 -3300 2925 (0,0,ID)\001 +4 1 0 50 -1 16 14 0.0000 4 180 465 -1500 2625 iram\001 +4 1 0 50 -1 16 14 0.0000 4 225 780 -1500 2925 (0,0,ID)\001 +4 1 0 50 -1 16 14 0.0000 4 180 630 300 2625 imuxs\001 +4 1 0 50 -1 16 14 0.0000 4 225 780 300 2925 (0,0,ID)\001 diff --git a/documentation/UsersGuide/images/etesian-1.png b/documentation/UsersGuide/images/etesian-1.png new file mode 100644 index 00000000..80552016 Binary files /dev/null and b/documentation/UsersGuide/images/etesian-1.png differ diff --git a/documentation/UsersGuide/socstyle.tex b/documentation/UsersGuide/socstyle.tex index 21f564fa..c2577ee7 100644 --- a/documentation/UsersGuide/socstyle.tex +++ b/documentation/UsersGuide/socstyle.tex @@ -78,7 +78,7 @@ \renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\thesection\ #1}} \renewcommand{\subsectionmark}[1]{} \lhead[]{Documentation \SoC} - \rhead[]{March 2014} + \rhead[]{March 2015} \lfoot[]{\UPMC/\LIP/\SoC} \rfoot[]{\thepage} \cfoot[]{} diff --git a/documentation/examples/AM2901/.coriolis2/kite.py b/documentation/examples/AM2901/.coriolis2/kite.py new file mode 100644 index 00000000..6332c785 --- /dev/null +++ b/documentation/examples/AM2901/.coriolis2/kite.py @@ -0,0 +1,4 @@ + +from Hurricane import DebugSession + +#DebugSession.addToTrace( kite.getCell().getNet( 'f_i(3)' ) ) diff --git a/documentation/examples/AM2901/.coriolis2/settings.py b/documentation/examples/AM2901/.coriolis2/settings.py new file mode 100644 index 00000000..4a1aed48 --- /dev/null +++ b/documentation/examples/AM2901/.coriolis2/settings.py @@ -0,0 +1,31 @@ + +# -*- Mode:Python -*- + + +defaultStyle = 'Alliance.Classic [black]' + +parametersTable = \ + ( ('misc.catchCore' , TypeBool , False ) + , ('misc.info' , TypeBool , False ) + , ('misc.paranoid' , TypeBool , False ) + , ('misc.bug' , TypeBool , False ) + , ('misc.logMode' , TypeBool , False ) + , ('misc.verboseLevel1' , TypeBool , False ) + , ('misc.verboseLevel2' , TypeBool , True ) + , ('misc.traceLevel' , TypeInt , 1000 ) + , ('etesian.spaceMargin' , TypePercentage, 5.0 ) + , ('etesian.aspectRatio' , TypePercentage, 100.0 ) + # Kite parameters. + , ("kite.eventsLimit" , TypeInt , 1000000 ) + , ('katabatic.topRoutingLayer', TypeString , 'METAL5') + , ("kite.hTracksReservedLocal", TypeInt , 4 ) + , ("kite.vTracksReservedLocal", TypeInt , 3 ) + ) + +#import os +# +#print ' o Cleaning up ClockTree previous run.' +#for fileName in os.listdir('.'): +# if fileName.endswith('.ap') or (fileName.find('_clocked.') >= 0): +# print ' - <%s>' % fileName +# os.unlink(fileName) diff --git a/documentation/examples/AM2901/.coriolis2/techno.py b/documentation/examples/AM2901/.coriolis2/techno.py new file mode 100644 index 00000000..3444c29b --- /dev/null +++ b/documentation/examples/AM2901/.coriolis2/techno.py @@ -0,0 +1,2 @@ +symbolicTechno = 'cmos' +realTechno = 'hcmos9' diff --git a/documentation/examples/AM2901/CMakeLists.txt b/documentation/examples/AM2901/CMakeLists.txt index f53d027f..905beb98 100644 --- a/documentation/examples/AM2901/CMakeLists.txt +++ b/documentation/examples/AM2901/CMakeLists.txt @@ -8,6 +8,10 @@ muxe.vst muxs.vst ram.vst - design.py - DESTINATION ${examplesInstallDir}/AM2901 ) + amd2901_chip.py DESTINATION ${examplesInstallDir}/AM2901 ) + install ( FILES doChip.py PERMISSIONS OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE + OWNER_READ GROUP_READ WORLD_READ + OWNER_WRITE + DESTINATION ${examplesInstallDir}/AM2901 ) + install ( DIRECTORY .coriolis2 DESTINATION ${examplesInstallDir}/AM2901 ) diff --git a/documentation/examples/AM2901/amd2901_chip.py b/documentation/examples/AM2901/amd2901_chip.py new file mode 100644 index 00000000..ba638662 --- /dev/null +++ b/documentation/examples/AM2901/amd2901_chip.py @@ -0,0 +1,12 @@ +#!/usr/bin/env python + + +chip = { 'pads.south' : [ 'p_a3' , 'p_a2', 'p_a1', 'p_r0', 'p_vddick0', 'p_vssick0', 'p_a0' , 'p_i6', 'p_i8' , 'p_i7' , 'p_r3' ] + , 'pads.east' : [ 'p_zero', 'p_i0', 'p_i1', 'p_i2', 'p_vddeck0', 'p_vsseck0', 'p_q3' , 'p_b0', 'p_b1' , 'p_b2' , 'p_b3' ] + , 'pads.north' : [ 'p_noe' , 'p_y3', 'p_y2', 'p_y1', 'p_y0' , 'p_vddeck1', 'p_vsseck1', 'p_np', 'p_ovr', 'p_cout', 'p_ng' ] + #, 'pads.west' : [ 'p_i5', 'p_i3', 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2', 'p_d3' , 'p_q0' , 'p_f3' ] + , 'pads.west' : [ 'p_cin' , 'p_i4', 'p_i5', 'p_i3', 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2', 'p_d3' , 'p_q0' , 'p_f3' ] + , 'core.size' : ( 1500, 1500 ) + , 'chip.size' : ( 3000, 3000 ) + , 'chip.clockTree' : True + } diff --git a/documentation/examples/AM2901/design.py b/documentation/examples/AM2901/design.py deleted file mode 100755 index faa5ff8e..00000000 --- a/documentation/examples/AM2901/design.py +++ /dev/null @@ -1,246 +0,0 @@ -#!/usr/bin/env python - -try: - import sys - import traceback - import os.path - import optparse - import Cfg - import Hurricane - from Hurricane import DbU - from Hurricane import UpdateSession - from Hurricane import Breakpoint - from Hurricane import Transformation - from Hurricane import Instance - import Viewer - import CRL - from helpers import ErrorMessage - import Nimbus - import Metis - import Mauka - import Katabatic - import Kite - import Unicorn - import placeandroute -except ImportError, e: - serror = str(e) - if serror.startswith('No module named'): - module = serror.split()[-1] - print '[ERROR] The <%s> python module or symbol cannot be loaded.' % module - print ' Please check the integrity of the package.' - if str(e).find('cannot open shared object file'): - library = serror.split(':')[0] - print '[ERROR] The <%s> shared library cannot be loaded.' % library - print ' Under RHEL 6, you must be under devtoolset-2.' - print ' (scl enable devtoolset-2 bash)' - sys.exit(1) -except Exception, e: - print '[ERROR] A strange exception occurred while loading the basic Coriolis/Python' - print ' modules. Something may be wrong at Python/C API level.\n' - print ' %s' % e - sys.exit(2) - - -# Check that all the instances have been placed by Mauka. -def checkForUnplaceds ( cell ): - unplaceds = [] - for instance in cell.getInstances(): - if instance.getPlacementStatus() == Instance.PlacementStatus.UNPLACED: - unplaceds += [ instance ] - if unplaceds: - message = [ 'Some instances are still unplaceds:' ] - for instance in unplaceds: - message += [ '<%s> of model <%s>'%(str(instance.getName()) - ,str(instance.getMasterCell().getName())) ] - raise ErrorMessage( 3, message ) - return - - -# Small wrapper to display breakpoints, when in graphic mode only. -def breakpoint ( editor, level, message ): - if editor: - editor.fit() - editor.refresh() - Breakpoint.stop( level, message ) - return - - -def ScriptMain ( cell=None ): - # Force removal of any previouly generated placement (.ap files) - # as they would prevent the the placer to run again. - # This is a little bit inconvenient, but will change in the future. - print ' o Cleaning up any previous run.' - for fileName in os.listdir('.'): - if fileName.endswith('.ap'): - print ' - <%s>' % fileName - os.unlink(fileName) - - editor = None - if globals().has_key('__editor'): - print ' o Editor detected, running in graphic mode.' - editor = __editor - - Cfg.Configuration.pushDefaultPriority(Cfg.Parameter.Priority.CommandLine) - Cfg.getParamBool('misc.verboseLevel1').setBool(True) - Cfg.getParamBool('misc.verboseLevel2').setBool(True) - Cfg.Configuration.popDefaultPriority() - - errorCode = 0 - framework = CRL.AllianceFramework.get() - - padHeight = DbU.fromLambda( 400.0) - padWidth = DbU.fromLambda( 200.0) - coreSide = DbU.fromLambda(1400.0) - - # Cell must be loaded *before* opening the UpdateSession. - print ' o Placing .' - modelCoeur = framework.getCell('coeur',CRL.Catalog.State.Logical) - - UpdateSession.open() - try: - modelCoeur.setAbutmentBox( Hurricane.Box( DbU.fromLambda(0) - , DbU.fromLambda(0) - , coreSide - , coreSide - ) ) - # Cannot place a rail if at least one instance is placed. - # (to compute the orientation of the cells rows) - #placeandroute.pyAlimVerticalRail( modelCoeur, coreSide/DbU.fromLambda(5.0*2) ) - - except Exception, e: - print e; errorCode = 1 - - # For the geometrical modifications to be taken into account, we must - # close this UpdateSession now. So the chip will see the core correctly. - UpdateSession.close() - if errorCode: sys.exit(errorCode) - - print ' o Placing .' - amd2901 = framework.getCell('amd2901',CRL.Catalog.State.Logical) - if editor: editor.setCell(amd2901) - - UpdateSession.open() - try: - - chipSide = 11*padWidth + 2*padHeight # Le chip est carre, avec 11 plots par face. - abutmentBoxChip = Hurricane.Box( DbU.fromLambda(0.0) - , DbU.fromLambda(0.0) - , chipSide - , chipSide - ) - amd2901.setAbutmentBox( abutmentBoxChip ) - - instanceCoeur = amd2901.getInstance( 'core' ) - instanceCoeur.setTransformation(Hurricane.Transformation( (chipSide-coreSide)/2 - , (chipSide-coreSide)/2 - , Transformation.Orientation.ID ) ) - instanceCoeur.setPlacementStatus( Instance.PlacementStatus.PLACED ) - - # Placing Pads - southPads = [ 'p_a3' , 'p_a2', 'p_a1', 'p_r0', 'p_vddick0', 'p_vssick0', 'p_a0' , 'p_i6', 'p_i8' , 'p_i7' , 'p_r3' ] - eastPads = [ 'p_zero', 'p_i0', 'p_i1', 'p_i2', 'p_vddeck0', 'p_vsseck0', 'p_q3' , 'p_b0', 'p_b1' , 'p_b2' , 'p_b3' ] - northPads = [ 'p_noe' , 'p_y3', 'p_y2', 'p_y1', 'p_y0' , 'p_vddeck1', 'p_vsseck1', 'p_np', 'p_ovr', 'p_cout', 'p_ng' ] - westPads = [ 'p_cin' , 'p_i4', 'p_i5', 'p_i3', 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2', 'p_d3' , 'p_q0' , 'p_f3' ] - - for (key,listPads) in {'south':southPads, 'east':eastPads, 'north':northPads, 'west':westPads}.iteritems(): - print ' o Pads on %s side:' %key - for ipad in range(len(listPads)): - pad = amd2901.getInstance( listPads[ipad] ) - print ' - Placing pad: <%s> (model:<%s>).' % (listPads[ipad],str(pad.getMasterCell().getName())) - - # south - if key == 'south' : - xpad = abutmentBoxChip.getXMin() + padHeight + ipad*(padWidth) - ypad = abutmentBoxChip.getYMin() + padHeight - pad.setTransformation( Hurricane.Transformation( xpad, ypad, Transformation.Orientation.MY) ) - - # east - if key == 'east' : - xpad = abutmentBoxChip.getXMax() - padHeight - ypad = padHeight + padWidth + ipad*(padWidth) - pad.setTransformation( Hurricane.Transformation( xpad, ypad, Transformation.Orientation.R3) ) - - # north - if key == 'north' : - xpad = padHeight + ipad*(padWidth) - ypad = abutmentBoxChip.getYMax() - padHeight - pad.setTransformation( Hurricane.Transformation( xpad, ypad, Transformation.Orientation.ID) ) - - # west - if key == 'west' : - xpad = padHeight - ypad = padHeight + ipad*(padWidth) - pad.setTransformation( Hurricane.Transformation( xpad, ypad, Transformation.Orientation.R1) ) - - pad.setPlacementStatus( Instance.PlacementStatus.PLACED ) - - except ErrorMessage, e: - print e; errorCode = e.code - except Exception, e: - print '\n\n', e; errorCode = 1 - traceback.print_tb(sys.exc_info()[2]) - - UpdateSession.close() - if errorCode: sys.exit(errorCode) - - breakpoint( editor, 1, 'Chip After Pad Placement' ) - - try: - # Now run the tools. - coeur = framework.getCell('coeur',CRL.Catalog.State.Logical) - - mauka = Mauka.MaukaEngine.create(coeur) - mauka.run() - mauka.destroy() - - breakpoint( editor, 1, 'Core After Standard Cell Placement' ) - - placeandroute.pyAlimConnectors(coeur) - - # This is gross. It's the ghost of Wu Yifei and his demonic code... - # Will not be needed in the future (dynamic detection based on the - # transformations). - for pad in southPads: placeandroute.pad_south += [ amd2901.getInstance(pad) ] - for pad in northPads: placeandroute.pad_north += [ amd2901.getInstance(pad) ] - for pad in eastPads: placeandroute.pad_east += [ amd2901.getInstance(pad) ] - for pad in westPads: placeandroute.pad_west += [ amd2901.getInstance(pad) ] - - placeandroute.pyPowerRing( amd2901, amd2901.getInstance('core'), 3 ) - placeandroute.pyRouteCk ( amd2901, amd2901.getNet('ckc') ) - breakpoint( editor, 1, 'Core After Clock & Power Routing' ) - - kite = Kite.KiteEngine.create( amd2901 ) - kite.runGlobalRouter( Kite.KtBuildGlobalRouting ) - kite.loadGlobalRouting( Katabatic.EngineLoadGrByNet, [] ) - kite.layerAssign( Katabatic.EngineNoNetLayerAssign ) - kite.runNegociate() - breakpoint( editor, 1, 'Routing done, but router still active for inspection.' ) - kite.finalizeLayout() - kite.destroy() - - # Write back layout to disk if everything has gone fine. - # Must write all the sub-blocks of the core but *not* the - # standard cell (mainly the feed-through). - for instance in modelCoeur.getInstances(): - masterCell = instance.getMasterCell() - if not masterCell.isTerminal(): - framework.saveCell( masterCell, CRL.Catalog.State.Physical ) - - framework.saveCell( modelCoeur, CRL.Catalog.State.Physical ) - framework.saveCell( amd2901 , CRL.Catalog.State.Physical ) - - except ErrorMessage, e: - print e; errorCode = e.code - except Exception, e: - print '\n\n', e; errorCode = 1 - traceback.print_tb(sys.exc_info()[2]) - - if editor: editor.setCell(amd2901) - - return 0 - - -if __name__ == '__main__': - ScriptMain() - - sys.exit(0) diff --git a/documentation/examples/AM2901/doChip.py b/documentation/examples/AM2901/doChip.py new file mode 100755 index 00000000..4a0eed7b --- /dev/null +++ b/documentation/examples/AM2901/doChip.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python + +try: + import sys + import traceback + import os.path + import optparse + import Cfg + import Hurricane + from Hurricane import DbU + from Hurricane import UpdateSession + from Hurricane import Breakpoint + from Hurricane import Transformation + from Hurricane import Instance + import Viewer + import CRL + from helpers import ErrorMessage + import Nimbus + import Metis + import Mauka + import Katabatic + import Kite + import Unicorn + import plugins.ChipPlugin + import plugins.RSavePlugin +except ImportError, e: + serror = str(e) + if serror.startswith('No module named'): + module = serror.split()[-1] + print '[ERROR] The <%s> python module or symbol cannot be loaded.' % module + print ' Please check the integrity of the package.' + sys.exit(1) + if str(e).find('cannot open shared object file'): + library = serror.split(':')[0] + print '[ERROR] The <%s> shared library cannot be loaded.' % library + print ' Under RHEL 6, you must be under devtoolset-2.' + print ' (scl enable devtoolset-2 bash)' + sys.exit(1) +except Exception, e: + print '[ERROR] A strange exception occurred while loading the basic Coriolis/Python' + print ' modules. Something may be wrong at Python/C API level.\n' + print ' %s' % e + sys.exit(2) + + +DoPlacement = 0x0001 +DoRouting = 0x0002 +AllStages = DoPlacement|DoRouting + +framework = CRL.AllianceFramework.get() + + +def ScriptMain ( **kw ): + success = False + doStages = AllStages + if kw.has_key('doStages'): + doStages = kw['doStages'] + try: + cell, editor = plugins.kwParseMain( **kw ) + + if doStages & DoPlacement: + success = plugins.ChipPlugin.ScriptMain( **kw ) + if not success: return False + + if doStages & DoRouting: + routingNets = [] + kite = Kite.KiteEngine.create( cell ) + #kite.printConfiguration() + + kite.runGlobalRouter ( Kite.KtBuildGlobalRouting ) + kite.loadGlobalRouting( Katabatic.EngineLoadGrByNet, routingNets ) + kite.layerAssign ( Katabatic.EngineNoNetLayerAssign ) + kite.runNegociate () + success = kite.getToolSuccess() + kite.finalizeLayout() + kite.destroy() + cell.setName( cell.getName()+'_kite' ) + framework.saveCell( cell, CRL.Catalog.State.Logical ) + + plugins.RSavePlugin.ScriptMain( **kw ) + + except Exception, e: + print e + + return success + + +if __name__ == '__main__': + parser = optparse.OptionParser() + parser.add_option( '-c', '--cell' , type='string', dest='cell' , help='The name of the chip to build, whithout extension.') + parser.add_option( '-s', '--script', type='string', dest='script' , help='The name of a Python script, without extension.') + parser.add_option( '-v', '--verbose' , action='store_true', dest='verbose' , help='First level of verbosity.') + parser.add_option( '-V', '--very-verbose' , action='store_true', dest='veryVerbose', help='Second level of verbosity.') + parser.add_option( '-p', '--place' , action='store_true', dest='doPlacement', help='Perform chip placement step only.') + parser.add_option( '-r', '--route' , action='store_true', dest='doRouting' , help='Perform routing step only.') + (options, args) = parser.parse_args() + + + doStages = 0 + if options.verbose: Cfg.getParamBool('misc.verboseLevel1').setBool(True) + if options.veryVerbose: Cfg.getParamBool('misc.verboseLevel2').setBool(True) + if options.doPlacement: doStages |= DoPlacement + if options.doRouting: doStages |= DoRouting + if not doStages: doStages = AllStages + + kw = { 'doStages':doStages } + if options.script: + try: + module = __import__( options.script, globals(), locals() ) + if not module.__dict__.has_key('ScriptMain'): + print '[ERROR] Script module <%s> do not contains a ScripMain() function.' % options.script + sys.exit(1) + + cell = module.__dict__['ScriptMain']( **kw ) + kw['cell'] = cell + + except ImportError, e: + module = str(e).split()[-1] + + print '[ERROR] The <%s> script cannot be loaded.' % module + print ' Please check your design hierarchy.' + sys.exit(1) + except Exception, e: + print '[ERROR] A strange exception occurred while loading the Python' + print ' script <%s>. Please check that module for error:\n' % options.script + traceback.print_tb(sys.exc_info()[2]) + print ' %s' % e + sys.exit(2) + elif options.cell: + kw['cell'] = framework.getCell( options.cell, CRL.Catalog.State.Views ) + + success = ScriptMain( **kw ) + shellSuccess = 0 + if not success: shellSuccess = 1 + + sys.exit( shellSuccess )