* New: In NetBuilderHybridVH::_do_1G_xM1_1PinM1(), added configuration to manage pins on the north/south sides for VH,2RL. * Bug: In NetBuilderHybridVH::doRp_xG_xM1_xM3(), correct misplaced vertical creation (buildind invalid topologies). * New: EtesianEngine::toColoquinte(), display histograms of the cells widths (in pitch) before and after bloating to get a better feeling of the behavior. * New: In EtesianEngine, add support for track avoidance. Portions of tracks to avoid are specified by a Box, which should flat and on the axis of the request track. This feature is used by the H-Tree to clear the vertical tracks under the tree from any terminal. * New: In Etesian::Area, Slice and SubSlice, add support for track avoidance. Exported to the Python wrapper. * New: SubSlice::getUsedVTracks() to get a set of tracks blocked by the cell. * New: SubSlice::trackAvoid(), shift left/rigth the cell under the requested vertical track. Try only to move the cell under the track and not it's neighbor, so it assume that there is sufficient space left or right of the cell. * Bug: In cumulus/plugins.block.configuration.BlockConf, the Cfg parameters may be read too early from the Cfg space into the various sub-conf objects (like FeedsConf). Delay the reading of the parameters in a _postInit() functions. Modify Block and CoreToChip to call _postInit(). * New: In cumulus/plugins.block.configuration.BlockConf._loadRoutingGauge, allow the cell gauge name to differ from the routing gauge name. * New: In cumulus/plugins.block.configuration.FeedsConf, allow to select the default feed to be used with 'etesian.defaultFeed' parameter. * New: In cumulus/plugins.block.spares.BufferPool, allow to control whether or not we want tie to either side of the pool. (for latch up). * New: In cumulus/plugins.block.HTree._connectLeaf(), add support for track avoidance. * Bug: In cumulus/plugins.block.HTree._connectLeaf(), the TL2 contact, the one on the *top* auxiliary buffer seemed to have been badly positioned until now (too low, not using tl2Y). This is strange because it should have caused disconnections, but I didn't see it in the wiring and the regressions tests didn't flag anything wrong. Still a bit weird and worrying. |
||
---|---|---|
Seabreeze | ||
anabatic | ||
bootstrap | ||
bora | ||
coloquinte | ||
crlcore | ||
cumulus | ||
documentation | ||
equinox | ||
etesian | ||
flute | ||
foehn | ||
hurricane | ||
ispd | ||
karakaze | ||
katabatic | ||
katana | ||
kite | ||
knik | ||
lefdef | ||
mauka | ||
metis | ||
nimbus | ||
nix | ||
oroshi | ||
solstice | ||
stratus1 | ||
tutorial | ||
unicorn | ||
unittests | ||
vlsisapd | ||
.gitignore | ||
COPYRIGHT.rst | ||
LICENSE.rst | ||
Makefile | ||
README.rst | ||
SUPPORT.rst | ||
compat.nix | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
shell.nix |
README.rst
.. -*- Mode: rst -*- =============== Coriolis README =============== Coriolis is a free database, placement tool and routing tool for VLSI design. Purpose ======= Coriolis provides several tools to perform the layout of VLSI circuits. Its main components are the Hurricane database, the Etesian placer and the Katana router, but other tools can use the Hurricane database and the parsers provided. The user interface <cgt> is the prefered way to use Coriolis, but all Coriolis tools are Python modules and thus scriptable. Documentation ============= The complete documentation is available here, both in pdf & html: ./documentation/output/html ./documentation/UsersGuide/UsersGuide.pdf The documentation of the latest *stable* version is also available online. It may be quite outdated from the *devel* version. https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/latex/users-guide/UsersGuide.pdf Building Coriolis ================= To build Coriolis, ensure the following prerequisites are met: * Python 3. * cmake. * boost. * bison & flex. * Qt 4 or 5. * libxml2. * RapidJSON * A C++11 compliant compiler. The build system relies on a fixed directory tree from the root of the user currently building it. Thus first step is to get a clone of the repository in the right place. Proceed as follow: :: ego@home:~$ mkdir -p ~/coriolis-2.x/src/support ego@home:~$ cd ~/coriolis-2.x/src/support ego@home:~$ git clone http://github.com/miloyip/rapidjson ego@home:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd ego@home:~$ cd ~/coriolis-2.x/src ego@home:src$ git clone https://gitlab.lip6.fr/vlsi-eda/coriolis.git ego@home:src$ cd coriolis Then, build the tool: :: ego@home:coriolis$ make install If you encounter issues, please consult SUPPORT.rst for tips. Coriolis gets installed at the root of the following tree: :: ~/coriolis-2.x/<OS>.<DISTRIB>/Release.Shared/install/ Where ``<OS>`` is the name of your operating system and ``<DISTRIB>`` your distribution. Using Coriolis ============== The Coriolis main interface can be launched with the command: :: ego@home:~: ~/coriolis-2.x/<OS>.<DISTRIB>/Release.Shared/install/bin/coriolis The ``coriolis`` script detects its location and setups the UNIX environment appropriately, then lauches ``cgt`` (or *any* command, with the ``--run=<COMMAND>`` option). Conversely, you can setup the current shell environement for Coriolis by using the helper ``coriolisEnv.py``, then run any Coriolis tool: :: ego@home:~$ eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py` ego@home:~$ cgt -V