ReFlow is a combination of scriptlets for the simulations of one of the following domain:
For each domain, tools dedicated to it are gathered in a folder tools. A tool is a collection of scripts to perform a precise task inside a folder entitled by the name of the tool. It results then in a greater flexibility and personalisation of the flow. The hierarchy can be represented as follow:
+ analog
|--+ tools
| |--+ irun
| |--+ eldo
| |--+ hspice
| |--+ ltspice
| +--+ ngspice
| +--+ gwave
| +--+ simvision
|
+ digital
|--+ tools
| |--+ iverilog
| |--+ xcellium
| |--+ verilator
| |--+ covered
| +--+ gtkwave
|
...
As many functions are common to all tools (list all used files, order by dependencies, ...) A common category as been added to:
In order to use the tool, we recommend to install somehow
all the tools in the same folder linking to the version
of tools desired. And make the tool available to the user
by adding them in $PATH
.
A great tools such as module,
or Lmod streamline the
process of providing a collection of version specific program
available in $PATH
. This allows one to change easily the version
of the tools.
A more basic strategy would consist in "sourcing" a bash
script editing $PATH
or changing link of programs.
For example:
export CADTOOLS=path/to/user/folder
ln -s $(CADTOOLS)/yosys /mnt/ed/cad/digital/yosys/0.8/bin/
ln -s $(CADTOOLS)/incisive /mnt/ed/cad/digital/lnx/rh/53/64/INCISIVE15.20.051/tools/bin/
ln -s $(CADTOOLS)/iverilog /mnt/ed/cad/digital/iverilog/11.0/bin/
Concerning ReFlow, it relies on a python virtual environment. In consequence one load the environment
# for bash
source envs/bin/activate
# for csh
source envs/bin/activate.csh
# for fish
source envs/bin/activate.fish
# for powershell
. envs/bin/activate.ps1
Automatically, one can call the utilities developped
in ReFlow. For instance, user can call run
utility.
(envs) ~/projects/electronic/reflow$ run -h
usage: run [-h] [-c]
[--sim | --cov | --lint | --tree | --view-sim | --view-cov | --synth]
Reflow Unified ruNner
---------------------
For arguments starting with by double dash --,the double dashes can be
omitted. ex: 'run sim' is equal to 'run --sim'
optional arguments:
-h, --help show this help message and exit
-c, --clean clean working directory
--sim run a simulation
--cov run a coverage simulation
--lint apply lint checks on a design
--tree display the design tree
--view-sim display waveforms
--view-cov display coverage results
--synth synthesize a design
The tool looks into the project directory for any configuration files having the extension *.config. It shall exist only one configuration in a given directory tree.
If there is none, the default configuration applies. This default configuration can be found in the root of ReFlow.
For almost all flows (Analog/Digital/Mixed), there share common commands:
In addition to that, some domain can support extra command (the digital also support run cov, view-cov, synth).
For the sake of lazyness, one can write run -c [sim|lint|...]
to perform a run clean before the operation ordered.
For more details which command is supported by which domain please refer to their associated documentation: