This is an old revision of the document!
Synthesis configuration
The synthesis section of the configuration file specifies options for circuit synthesis in general. In particular, it has options for the expression optimizer (expropt), which is the interface between the ACT tool-suite and external logic synthesis tools, such as ABC. We use these external tools to perform synthesis of expressions into combinational logic by emitting Verilog files which correspond to a logical expression, running the synthesis tool to get a mapped Verilog file, and converting that back to an ACT netlist.
Most of these options in this file are technology-specific. The configuration file name is expropt.conf
. The entire set of parameters are surrounded by begin synth
and end
.
Liberty Files
This section, within a pair of begin liberty
and end
blocks, contains paths to liberty files for the cells for this particular technology.
string typical "${ACT_HOME}/act/syn/liberty/osu018_stdcells.lib"
This is the path to the liberty file for the typical corner. This is required for logic synthesis with all currently supported logic synthesis tools (ABC, Yosys, Genus). For Yosys and Genus, additional liberty files for the different corners may also be provided.
string max_power "/path/to/file" string min_delay "/path/to/file" string max_delay "/path/to/file"
The max_power
corner is the liberty file corresponding to the maximum power corner, which is usually the FF, high-temperature corner. The min_delay
corner is the liberty file corresponding to the minimum delay corner, which is usually the FF, low-temperature corner.The max_delay
corner is the liberty file corresponding to the maximum delay corner, which is usually the SS, high-temperature corner.
QDI Cells
Bundled Data Cells
Expression Optimizer Options
This section is within a pair of begin expropt
and end
blocks and contains options for the expression optimizer.
int clean_tmp_files 1
This option deletes temporary files that are generated during expression synthesis such as the behavioral Verilog file that is passed in to the synthesis tool, the resultant mapped verilog file, log files etc. Set to 0 to keep these files.
int verbose 1
Defines the output verbosity for expropt. Set to 0 for no output on stdout
, 1 for dots, 2 for full dump of commands that are being run internally.
int skip_verification 0
For genus only. Set to 1 to skip verification with lec
.
int synthesis_effort 2
For genus only. Set the synthesis effort level: 0 for low, 1 for medium, 2 for high. The default value is 2.
int vectorize_all_ports 0
When the Verilog file is printed out for mapping, variables of bitwidth 1 are printed with as a single wire
type, but all larger bitwidths are printed as wire arrays, such as wire [7:0]
. This may lead to incompatibility with other tools that use the output of expropt, and expect the ports of the process to always contain arrays of bools and not single bools. Setting this option to 1 will print single wires as wire [0:0]
instead.
string driving_cell LATCH
Set the driving cell for static timing analysis of the mapped combinational gate-level netlist.
real default_load 8.7
Set the default load capacitance on the output of a gate, for static timing analysis of the mapped combinational gate-level netlist. The default value is 1.0.
Cache Configuration
This sub-section (cache
) within the expropt
section contains the location of the expression caches, which contained mapped verilog netlists corresponding to arithmetic/logic expressions for this technology. There are two cache locations - global and local. The global cache must be set. A typical location would be a folder within your ACT_HOME
.
string global "${ACT_HOME}/shared_cache/expropt/generic"
As an example, this is the path to the global cache for the generic technology. The expression optimizer will automatically create subdirectories within this directory for each logic synthesis tool and use the appropriate cache.
string local "~/local_expr_cache/generic"
If the local
cache location is specified, then it is used instead of the global cache. To use the global cache, simply leave this string unset (commented out).
int invalidate 0
The invalidate
option erases the entire cache for this technology when the expression optimizer starts up.