diff --git a/documentation/output/pages/documentation.html b/documentation/output/pages/documentation.html index 9bdcbda0..8006718e 100644 --- a/documentation/output/pages/documentation.html +++ b/documentation/output/pages/documentation.html @@ -4,7 +4,7 @@ - + @@ -125,6 +125,11 @@
The git repositories of all the components of the project:
Component | @@ -132,13 +132,13 @@||
---|---|---|
Alliance | -https://gitlab.lip6.fr/jpc/alliance.git | +https://gitlab.lip6.fr/vlsi-eda/alliance.git |
Coriolis | -https://gitlab.lip6.fr/jpc/coriolis.git | +https://gitlab.lip6.fr/vlsi-eda/coriolis.git |
Alliance Check Toolkit | -https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git | +https://gitlab.lip6.fr/vlsi-eda/alliance-check-toolkit.git |
Printable version of this document PythonCpp.pdf.
+Contents
As a first example we will consider the Hurrican::Library class. To export a class into Python, we must create three files:
As example, we take Library. This a DBo derived class, but we choose not to export the parent classes. From Python, it will appear as a base class.
@@ -660,7 +664,7 @@ the module itself. This allow to mimic closely the C++ syntax:Now we want to export the following C++ class hierarchy into Python:
PyEntity <-- PyComponent <-+- PyContact @@ -1060,7 +1064,7 @@ terminal or not.
Let's have a look at the encapsulation of Hurricane::Point.
Non-BDo derived classes do not support the bi-directionnal communication.
So each Python object is associated with one C++ object. The C++ object
@@ -1213,7 +1217,7 @@ a standalone DBo class and a non-
-6. Encapsulating DbU
+6. Encapsulating DbU
While Hurricane::DbU is a class, the Hurricane::DbU::Unit is only a typedef over uint64_t. The DbU class only provides a set of static methods to manipulate and convert to and from other units. @@ -1261,7 +1265,7 @@ the DbU::Unit PyAny_
Printable version of this document PythonTutorial.pdf.
-First, a small disclaimer. This tutorial assumes that you are already familiar -with the concepts of vlsi designs, such as netlist, layout, instances -and hierarchical design.
+Contents
First, a small disclaimer. This tutorial assumes that you are already familiar +with the concepts of vlsi designs, such as netlist, layout, instances +and hierarchical design.
+This tutorial is aimed at two goals :
To simplify the tedious task of configuring your environment, a helper is provided. @@ -352,7 +356,7 @@ in CGT - The
In this part, we will show how to create and save a terminal Cell, that is, a cell without instances (the end point of a hierarchical design). To illustrate the case we will draw the layout of a @@ -658,7 +662,7 @@ explanation of that part of the code, refer to
In this part, we will show how to navigate through the Nets and Components of a Cell.
To use your script you may run it directly like any other Python script. But, for debugging purpose it may be helpful to run it through the interactive layout viewer cgt.
@@ -801,7 +805,7 @@ The Breakpoint.stop() function takes two argumTo illustrate the topic, we will build the netlist of a fulladder from standard cell.
@@ -1157,7 +1161,7 @@ directory (under the the root of the Coriolis installatiThe AllianceFramework only manages symbolic layout as Alliance does. But Coriolis is also able to work directly in real mode, meaning that distances will be expressed in microns instead of lambdas.
@@ -1196,7 +1200,7 @@ the one of the FreePDK45, you must load it prior to calling theThe ToolEngine class is the base class for all tools developped in Coriolis. In the rest of the tutorial we will use the names tool or engine as synonyms.
@@ -1396,7 +1400,7 @@ case it is around 3%.This is a place holder as well as a reminder to myself to write this part of the documentation.
Disclaimer: This document is still far from complete.
-Printable version of this document RDS.pdf.
+Contents
Disclaimer: This document is still far from complete.
+A symbolic layout is, in practice, made of only of three objects:
RDS file:
DEFINE PHYSICAL_GRID 0.005 @@ -374,7 +378,7 @@ the LAMBDA value can be any multiple of the fo
The MBK_TO_RDS_SEGMENT table control the way segments are translated into real rectangles. Be aware that we are translating segments and not rectangles. Segments are defined by their axis (source & target points) and their width. @@ -469,7 +473,7 @@ rectangles).
This table is to translate default VIAs into real via. In the symbolic layout the default VIA is simply a point and a set of layers. All layers are converted in squares shapes centered on the VIA coordinate. The one dimension given is the @@ -503,7 +507,7 @@ END
In s2r, when generating BIGVIAs, the matrix of holes they contains is not draw relative to the position of the BIGVIA itself, but on a grid which is common througout all the design real layout. This is to allow overlap @@ -537,7 +541,7 @@ To avoid that case, if the either side of the BIGVIA is less than
This table describe how the metal part of a BIGVIA is expanded (for the hole part, see the previous table MBK_TO_RDS_BIGVIA_HOLE). The rule give for each metal:
@@ -568,7 +572,7 @@ ENDFrom a strict standpoint this table shouldn't be here but put in a separate configuration file, because it contains informations only used by the symbolic layout tools (ocp, nero, ring).
diff --git a/documentation/output/pages/stratus-developpers.html b/documentation/output/pages/stratus-developpers.html index 72973c1f..3bf70959 100644 --- a/documentation/output/pages/stratus-developpers.html +++ b/documentation/output/pages/stratus-developpers.html @@ -4,7 +4,7 @@ - + @@ -119,17 +119,21 @@ -Printable version of this document Stratus.pdf.
+Contents
diff --git a/documentation/output/pages/stratus-dpgen.html b/documentation/output/pages/stratus-dpgen.html index d917a85d..4f930bc8 100644 --- a/documentation/output/pages/stratus-dpgen.html +++ b/documentation/output/pages/stratus-dpgen.html @@ -4,7 +4,7 @@ - + @@ -119,52 +119,56 @@ -Printable version of this document Stratus.pdf.
++Printable version of this Document
++Contents
-
- DpgenInv
-- DpgenBuff
-- DpgenNand2
-- DpgenNand3
-- Dpgennand4
-- DpgenAnd2
-- DpgenAnd3
-- DpgenAnd4
-- DpgenNor2
-- DpgenNor3
-- DpgenNor4
-- DpgenOr2
-- DpgenOr3
-- DpgenOr4
-- DpgenXor2
-- DpgenXnor2
-- DpgenNmux2
-- DpgenMux2
-- DpgenNbuse
-- DpgenBuse
-- DpgenNand2mask
-- DpgenNor2mask
-- DpgenXnor2mask
-- DpgenAdsb2f
-- DpgenShift
-- DpgenShrot
-- DpgenNul
-- DpgenConst
-- DpgenRom2
-- DpgenRom4
-- DpgenRam
-- DpgenRf1
-- DpgenRf1d
-- DpgenFifo
-- DpgenDff
-- DpgenDfft
-- DpgenSff
-- DpgenSfft
+- Printable version of this Document
+- DpgenInv
+- DpgenBuff
+- DpgenNand2
+- DpgenNand3
+- Dpgennand4
+- DpgenAnd2
+- DpgenAnd3
+- DpgenAnd4
+- DpgenNor2
+- DpgenNor3
+- DpgenNor4
+- DpgenOr2
+- DpgenOr3
+- DpgenOr4
+- DpgenXor2
+- DpgenXnor2
+- DpgenNmux2
+- DpgenMux2
+- DpgenNbuse
+- DpgenBuse
+- DpgenNand2mask
+- DpgenNor2mask
+- DpgenXnor2mask
+- DpgenAdsb2f
+- DpgenShift
+- DpgenShrot
+- DpgenNul
+- DpgenConst
+- DpgenRom2
+- DpgenRom4
+- DpgenRam
+- DpgenRf1
+- DpgenRf1d
+- DpgenFifo
+- DpgenDff
+- DpgenDfft
+- DpgenSff
+- DpgenSfft
-DpgenInv
+DpgenInv
- @@ -244,7 +248,7 @@ class inst_inv ( Model ) :
Name : DpgenInv – Inverter Macro-Generator
-DpgenBuff
+DpgenBuff
- @@ -324,7 +328,7 @@ class inst_buff ( Model ) :
Name : DpgenBuff – Buffer Macro-Generator
-DpgenNand2
+DpgenNand2
- @@ -407,7 +411,7 @@ class inst_nand2 ( Model ) :
Name : DpgenNand2 – Nand2 Macro-Generator
-DpgenNand3
+DpgenNand3
- @@ -493,7 +497,7 @@ class inst_nand3 ( Model ) :
Name : DpgenNand3 – Nand3 Macro-Generator
-Dpgennand4
+Dpgennand4
- @@ -582,7 +586,7 @@ class inst_nand4 ( Model ) :
Name : DpgenNand4 – Nand4 Macro-Generator
-DpgenAnd2
+DpgenAnd2
- @@ -665,7 +669,7 @@ class inst_and2 ( Model ) :
Name : DpgenAnd2 – And2 Macro-Generator
-DpgenAnd3
+DpgenAnd3
- @@ -751,7 +755,7 @@ class inst_and3 ( Model ) :
Name : DpgenAnd3 – And3 Macro-Generator
-DpgenAnd4
+DpgenAnd4
- @@ -840,7 +844,7 @@ class inst_and4 ( Model ) :
Name : DpgenAnd4 – And4 Macro-Generator
-DpgenNor2
+DpgenNor2
- @@ -923,7 +927,7 @@ class inst_nor2 ( Model ) :
Name : DpgenNor2 – Nor2 Macro-Generator
-DpgenNor3
+DpgenNor3
- @@ -1009,7 +1013,7 @@ class inst_nor3 ( Model ) :
Name : DpgenNor3 – Nor3 Macro-Generator
-DpgenNor4
+DpgenNor4
- @@ -1099,7 +1103,7 @@ class inst_nor4 ( Model ) :
Name : DpgenNor4 – Nor4 Macro-Generator
-DpgenOr2
+DpgenOr2
- @@ -1183,7 +1187,7 @@ class inst_or2 ( Model ) :
Name : DpgenOr2 – Or2 Macro-Generator
-DpgenOr3
+DpgenOr3
- @@ -1269,7 +1273,7 @@ class inst_or3 ( Model ) :
Name : DpgenOr3 – Or3 Macro-Generator
-DpgenOr4
+DpgenOr4
- @@ -1358,7 +1362,7 @@ class inst_or4 ( Model ) :
Name : DpgenOr4 – Or4 Macro-Generator
-DpgenXor2
+DpgenXor2
- @@ -1441,7 +1445,7 @@ class inst_xor2 ( Model ) :
Name : DpgenXor2 – Xor2 Macro-Generator
-DpgenXnor2
+DpgenXnor2
- @@ -1524,7 +1528,7 @@ class inst_xnor2 ( Model ) :
Name : DpgenXnor2 – Xnor2 Macro-Generator
-DpgenNmux2
+DpgenNmux2
- @@ -1604,7 +1608,7 @@ class inst_nmux2 ( Model ) :
Name : DpgenNmux2 – Multiplexer Macro-Generator
-DpgenMux2
+DpgenMux2
- @@ -1692,7 +1696,7 @@ class inst_mux2 ( Model ) :
Name : DpgenMux2 – Multiplexer Macro-Generator
-DpgenNbuse
+DpgenNbuse
- @@ -1770,7 +1774,7 @@ class inst_nbuse ( Model ) :
Name : DpgenNbuse – Tristate Macro-Generator
-DpgenBuse
+DpgenBuse
- @@ -1848,7 +1852,7 @@ class inst_buse ( Model ) :
Name : DpgenBuse – Tristate Macro-Generator
-DpgenNand2mask
+DpgenNand2mask
- @@ -1943,7 +1947,7 @@ class inst_nand2mask ( Model ) :
Name : DpgenNand2mask – Programmable Mask Macro-Generator
-DpgenNor2mask
+DpgenNor2mask
- @@ -2038,7 +2042,7 @@ class inst_nor2mask ( Model ) :
Name : DpgenNor2mask – Programmable Mask Macro-Generator
-DpgenXnor2mask
+DpgenXnor2mask
- @@ -2133,7 +2137,7 @@ class inst_xnor2mask ( Model ) :
Name : DpgenXnor2mask – Programmable Mask Macro-Generator
-DpgenAdsb2f
+DpgenAdsb2f
- @@ -2224,7 +2228,7 @@ class inst_ADSB2F ( Model ) :
Name : DpgenAdsb2f – Adder/Substractor Macro-Generator
-DpgenShift
+DpgenShift
- @@ -2304,7 +2308,7 @@ class inst_shifter ( Model ) :
Name : DpgenShift – Shifter Macro-Generator
-DpgenShrot
+DpgenShrot
- @@ -2388,7 +2392,7 @@ class inst_shrot ( Model ) :
Name : DpgenShrot – Shift/Rotation Macro-Generator
-DpgenNul
+DpgenNul
- @@ -2458,7 +2462,7 @@ class inst_nul ( Model ) :
Name : DpgenNul – Zero Detector Macro-Generator
-DpgenConst
+DpgenConst
- @@ -2532,7 +2536,7 @@ class inst_const ( Model ) :
Name : DpgenConst – Constant Macro-Generator
-DpgenRom2
+DpgenRom2
- @@ -2610,7 +2614,7 @@ class inst_rom2 ( Model ) :
Name : DpgenRom2 – 2 words ROM Macro-Generator
-DpgenRom4
+DpgenRom4
- @@ -2698,7 +2702,7 @@ class inst_rom4 ( Model ) :
Name : DpgenRom4 – 4 words ROM Macro-Generator
-DpgenRam
+DpgenRam
- @@ -2778,7 +2782,7 @@ class inst_ram ( Model ) :
Name : DpgenRam – RAM Macro-Generator
-DpgenRf1
+DpgenRf1
- @@ -2878,7 +2882,7 @@ class inst_rf1 ( Model ) :
Name : DpgenRf1, DpgenRf1r0 – Register File Macro-Generator
-DpgenRf1d
+DpgenRf1d
Name : DpgenRf1d, DpgenRf1dr0 – Register File with Decoder Macro-Generator
@@ -2987,7 +2991,7 @@ class inst_rf1d ( Model ) :-DpgenFifo
+DpgenFifo
- @@ -3093,7 +3097,7 @@ class inst_fifo ( Model ) :
Name : DpgenFifo – Fifo Macro-Generator
-DpgenDff
+DpgenDff
- @@ -3173,7 +3177,7 @@ class inst_dff ( Model ) :
Name : DpgenDff – Dynamic Flip-Flop Macro-Generator
-DpgenDfft
+DpgenDfft
Name : DpgenDfft – Dynamic Flip-Flop with Scan-Path Macro-Generator
@@ -3265,7 +3269,7 @@ class inst_dfft ( Model ) :-DpgenSff
+DpgenSff
- @@ -3345,7 +3349,7 @@ class inst_sff ( Model ) :
Name : DpgenSff – Static Flip-Flop Macro-Generator
-DpgenSfft
+DpgenSfft
Name : DpgenSfft – Static Flip-Flop with Scan-Path Macro-Generator
diff --git a/documentation/output/pages/stratus-language.html b/documentation/output/pages/stratus-language.html index 7ca9a957..71b6b143 100644 --- a/documentation/output/pages/stratus-language.html +++ b/documentation/output/pages/stratus-language.html @@ -4,7 +4,7 @@ - + @@ -119,22 +119,26 @@ -Printable version of this document Stratus.pdf.
-Stratus – Procedural design language based upon Python
++Printable version of this Document
++Contents
-
- Introduction
-- Description of a netlist
-- Description of a layout
-- Patterns generation extension
-- Place and Route
-- Instanciation facilities
-- Useful links
+- Printable version of this Document
+- Introduction
+- Description of a netlist
+- Description of a layout
+- Patterns generation extension
+- Place and Route
+- Instanciation facilities
+- Useful links
Stratus – Procedural design language based upon Python
+-Introduction
+Introduction
Stratus
@@ -369,7 +373,7 @@ Inst ( "my_addaccu_%dbits" % n-Description of a netlist
+Description of a netlist
Nets
@@ -616,7 +620,7 @@ False by default)-Description of a layout
+Description of a layout
Place
@@ -1145,7 +1149,7 @@ abtument box-Patterns generation extension
+Patterns generation extension
Description of the stimuli
The stimuli used for the simulation are described in a Stimuli @@ -1172,7 +1176,7 @@ self._stim.add()
-Place and Route
+Place and Route
PlaceSegment
@@ -1796,7 +1800,7 @@ The pads must be placed before calling RoutageCk.-Instanciation facilities
+Instanciation facilities
Buffer
@@ -2524,7 +2528,7 @@ The mapping file is not given in the environment variable.-Useful links
+Useful links
DpGen generators
You can find the documentation of the DPGEN library at : ./DpGen.html
diff --git a/documentation/output/pages/stratus-patterns.html b/documentation/output/pages/stratus-patterns.html index 16a67715..19b37aa3 100644 --- a/documentation/output/pages/stratus-patterns.html +++ b/documentation/output/pages/stratus-patterns.html @@ -4,7 +4,7 @@ - + @@ -119,18 +119,22 @@ -Printable version of this document Stratus.pdf.
++Printable version of this Document
++Contents
-Description
+Description
The patterns module of Stratus is a set of Python classes and methods that allows a procedural description of input pattern file for the logic simulator. The Stratus Pattern method produces a pattern @@ -139,7 +143,7 @@ in pat format, so IT IS STRONGLY RECOMMENDED TO SEE pat(5) manual BEFORE TO USE IT.
-Syntax
+Syntax
From a user point of view, Pattern method is a pattern description language using all standard Python facilities. Here follows the description of the Pattern method. @@ -181,7 +185,7 @@ output file (see pattern_end [pattern:sub:
-Methods
+Methods
PatWrite
This class is used to create patterns for Stratus models. Currently it @@ -309,7 +313,7 @@ vectors.
-Example
+Example
Pattern method for an addaccu
def Pattern(self): diff --git a/documentation/output/pages/users-guide.html b/documentation/output/pages/users-guide.html index a730af68..5ed351c9 100644 --- a/documentation/output/pages/users-guide.html +++ b/documentation/output/pages/users-guide.html @@ -4,7 +4,7 @@ - + @@ -114,23 +114,28 @@ ++Printable Version of this Document
++Contents
-
- Credits & License
-- Complete Design Flow & Examples
-- Installation
-
- Fixed Directory Tree
-- Building Coriolis
-- Coriolis & Docker
-- Packaging Coriolis
-- Hooking up into Alliance
-- Setting up the Environment (coriolisEnv.py)
+- Printable Version of this Document
+- Abstract
+- Credits & License
+- Complete Design Flow & Examples
+- Installation
-- CGT - The Graphical Interface @@ -142,6 +147,9 @@ +
+Abstract
Coriolis is a set of tools for vlsi backend. It's main features are :
- An analytic placer Etesian (based on Coloquinte).
@@ -153,8 +161,9 @@ is currently under development. +-Credits & License
+Credits & License
Hurricane @@ -192,7 +201,7 @@ copyright© Chris C. N. Chu from the Iowa State Universi-Complete Design Flow & Examples
+Complete Design Flow & Examples
While Coriolis can be used stand-alone, it is in fact part of a more complete design flow build upon Yosys and Alliance. In addition, a set of demos and examples are supplied in the repository alliance-check-toolkit.
@@ -210,7 +219,7 @@ examples are supplied in the repository-Installation
+Installation
Note
As the sources are being released, the binary packaging is dropped. @@ -254,7 +263,7 @@ If you really want to re-generate it, add the
For other distributions, refer to their own packaging system.
-Fixed Directory Tree
+Fixed Directory Tree
In order to simplify the work of the ccb installer, the source, build and installation tree is fixed. To successfully compile Coriolis you must follow it exactly. The tree is relative to the home directory of the user @@ -347,12 +356,12 @@ and Python modules (which must be dynamic).
-Building Coriolis
+Building Coriolis
The actively developed branch
The devel_anabatic branch is now closed and we go back to a more classical scheme where master is the stable version and devel the development one.
-The Coriolis git repository is https://www-soc.lip6.fr/git/coriolis.git
+The Coriolis git repository is https://gitlab.lip6.fr/vlsi-cad/coriolis.git
Note
Again, the devel_anabatic branch is now closed. Please revert to devel @@ -408,7 +417,7 @@ dummy@lepka:support> git clone http://github.com/miloyip/rapidjson
Create the source directory and pull the git repository:
dummy@lepka:~> mkdir -p ~/coriolis-2.x/src dummy@lepka:src> cd ~/coriolis-2.x/src -dummy@lepka:src> git clone https://www-soc.lip6.fr/git/coriolis.git +dummy@lepka:src> git clone https://gitlab.lip6.fr/vlsi-cad/coriolis.git
Build & install:
@@ -519,7 +528,7 @@ this will confuse the installer and end up with a non functional softwareSecond step is to create the source directory and pull the git repository:
dummy@lepka:~> mkdir -p ~/coriolis-2.x/src dummy@lepka:src> cd ~/coriolis-2.x/src -dummy@lepka:src> git clone https://www-soc.lip6.fr/git/coriolis.git +dummy@lepka:src> git clone https://gitlab.lip6.fr/vlsi-cad/coriolis.git
Third and final step, build & install:
dummy@lepka:src> cd coriolis @@ -543,7 +552,7 @@ the system.
-Coriolis & Docker
+Coriolis & Docker
Under bootstrap/docker/ scripts and configuration files are provided that allow to rebuild Alliance and Coriolis and perform the regression tests of alliance-check-toolkit. You may have a look at the Dockerfile.system @@ -551,13 +560,13 @@ configuration file to see exactly how to setup a vanilla system to build Coriolis.
To run the docker tests, call the dockerManage.sh scripts with the relevant arguments:
-ego@home:debian-9> ../../dockerManage.sh -scb # build system, coriolis & bash images. -ego@home:debian-9> ../../dockerManage.sh -r # run the bash image. -ego@home:debian-9> ../../dockerManage.sh --remove # clear all images. +ego@home:debian-9> ../../dockerManage.sh -bS # build both system & coriolis images. +ego@home:debian-9> ../../dockerManage.sh -r # compile & check coriolis. +ego@home:debian-9> ../../dockerManage.sh -C # clear the images.-Packaging Coriolis
+Packaging Coriolis
Packager should not use ccb, instead bootstrap/Makefile.package is provided to emulate a top-level autotool makefile. Just copy it in the root of the Coriolis git repository (~/corriolis-2.x/src/coriolis/) and build.
@@ -568,7 +577,7 @@ to emulate a top-level autotool makefile. Just-Hooking up into Alliance
+Hooking up into Alliance
Coriolis relies on Alliance for the cell libraries. So after installing or packaging, you must configure it so that it can found those libraries.
The easiest way is to setup the Alliance environment (i.e. sourcing @@ -577,7 +586,7 @@ packaging, you must configure it so that it can found those libraries.
have look to the Alliance Helper.-Setting up the Environment (coriolisEnv.py)
+Setting up the Environment (coriolisEnv.py)
To simplify the tedious task of configuring your environment, a helper is provided in the bootstrap source directory (also installed in the directory .../install/etc/coriolis2/) :
@@ -600,7 +609,7 @@ infinite loop if it's called again in, say ~/.bashrc.-CGT - The Graphical Interface
+CGT - The Graphical Interface
The Coriolis graphical interface is split up into two windows.
- The Viewer, with the following features:
@@ -629,7 +638,7 @@ They are closely related to Configuration & Initialisation.
-Viewer & Tools
+Viewer & Tools
Stratus Netlist Capture
Stratus is the replacement for GenLib procedural netlist capture language. @@ -1322,7 +1331,7 @@ To generate one set this flag to True
-The Controller
+The Controller
The Controller window is composed of seven tabs:
- The Look Tab to select the display style.