.. -*- Mode: rst -*- 2. Setting up the Environment ============================= 2.1 Setting up the Paths ~~~~~~~~~~~~~~~~~~~~~~~~~ To simplify the tedious task of configuring your environment, a helper is provided. It will setup or modify the :cb:`PATH`, :cb:`LD_LIBRARY_PATH` (or :cb:`DYLD_LIBRARY_PATH` under |Darwin|), :cb:`PYTHONPATH` and :cb:`CORIOLIS_TOP` variables. It should automatically adapt to your kind of shell (``Bourne`` like or ``C-Shell`` like). :: /etc/coriolis2/coriolisEnv.py Use it like this (don't forget the ``eval`` **and** the backquotes): .. code-block:: console dummy@lepka:~> eval `/etc/coriolis2/coriolisEnv.py` .. note:: **Do not call that script in your environment initialisation.** When used under |RHEL6| or clones, it needs to be run in the |devtoolset| environment. The script then launches a new shell, which may cause an infinite loop if it's called again in, say :cb:`~/.bashrc`. Instead you may want to create an alias: .. code-block:: sh alias c2r='eval "`/etc/coriolis2/coriolisEnv.py`"' 2.2 User's Configurations File ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You may create, in the directory you are lanching |Coriolis| tools, a special sub-directory ``coriolis2/`` that can contain the configuration files: * ``__init__.py`` to tell |Python| this directory is a module. * ``settings.py`` can override almost any default configuration setting. .. note:: Those two files will by processed by the |Python| interpreter, so they can contain any code in addition to the mandatory variables. 2.3 The :cb:`settings.py` File ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The attributes name and definitions of :cb:`cfg` are detailed in `CGT - The Graphical Interface <../UsersGuide/ViewerTools.html>`_. **Selecting the Technology** The important line here is: .. code-block:: Python import symbolic.cmos This import loads and setup the technology used througout this run of |Coriolis|. One and only one technology can be loaded in a |Coriolis| run. Example of file: .. code-block:: Python # -*- Mode:Python -*- import os import Cfg import Viewer import CRL import symbolic.cmos from helpers import overlay if 'CELLS_TOP' in os.environ: cellsTop = os.environ['CELLS_TOP'] else: cellsTop = '../../../cells' with overlay.CfgCache(priority=Cfg.Parameter.Priority.UserFile) as cfg: cfg.misc.catchCore = False cfg.misc.info = False cfg.misc.paranoid = False cfg.misc.bug = False cfg.misc.logMode = True cfg.misc.verboseLevel1 = True cfg.misc.verboseLevel2 = True cfg.misc.minTraceLevel = 1900 cfg.misc.maxTraceLevel = 3000 cfg.katana.eventsLimit = 1000000 cfg.katana.termSatReservedLocal = 6 cfg.katana.termSatThreshold = 9 Viewer.Graphics.setStyle( 'Alliance.Classic [black]' ) af = CRL.AllianceFramework.get() env = af.getEnvironment() env.setCLOCK( '^ck$|m_clock|^clk$' ) env.addSYSTEM_LIBRARY( library=cellsTop+'/nsxlib', mode=CRL.Environment.Prepend ) env.addSYSTEM_LIBRARY( library=cellsTop+'/niolib', mode=CRL.Environment.Prepend )