Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
config:expropt [2025/05/27 22:56] – karthi | config:expropt [2025/05/28 01:09] (current) – [Liberty Files] karthi | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Synthesis | + | ====== |
- | The synthesis section of the configuration file specifies options for circuit synthesis in general. In particular, it has options for the expression optimizer, which is the interface between the ACT tool-suite and external logic synthesis tools, such as ABC. | + | The synthesis section of the configuration file specifies options for circuit synthesis in general. In particular, it has options for the expression optimizer |
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. | 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. | ||
Line 22: | Line 22: | ||
</ | </ | ||
- | The '' | + | The '' |
===== QDI Cells ===== | ===== QDI Cells ===== | ||
+ | |||
+ | For synthesis of a QDI datapath, we simply replace the definitions of the standard cells in the netlist with the corresponding QDI variant. This section ('' | ||
+ | < | ||
+ | string cell_lib " | ||
+ | </ | ||
+ | The location of the QDI standard cells for this technology. These must correspond to the cells provided in the liberty files for the technology above. | ||
+ | |||
+ | < | ||
+ | string cell_lib_namespace " | ||
+ | </ | ||
+ | The full name of the ACT namespace within which the cells are defined. | ||
+ | |||
+ | < | ||
+ | string cell_lib_wire_type " | ||
+ | </ | ||
+ | The typename of the wire encoding that is used. In this case '' | ||
===== Bundled Data Cells ===== | ===== Bundled Data Cells ===== | ||
+ | |||
+ | This section ('' | ||
+ | < | ||
+ | string cell_lib " | ||
+ | </ | ||
+ | The location of the standard cells for this technology. These must correspond to the cells provided in the liberty files for the technology above. | ||
+ | |||
+ | < | ||
+ | string cell_lib_namespace " | ||
+ | </ | ||
+ | The full name of the ACT namespace within which the cells are defined. | ||
+ | |||
+ | < | ||
+ | string cell_lib_wire_type " | ||
+ | </ | ||
+ | The typename of the wire encoding that is used. In this case, it is simply '' | ||
===== Expression Optimizer Options ===== | ===== Expression Optimizer Options ===== | ||
Line 32: | Line 64: | ||
This section is within a pair of '' | This section is within a pair of '' | ||
- | ==== Cache Configuration ==== | + | < |
+ | 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. | ||
- | This section ('' | + | < |
+ | int verbose 1 | ||
+ | </ | ||
+ | Defines the output verbosity for expropt. Set to 0 for no output on '' | ||
+ | |||
+ | < | ||
+ | int skip_verification 0 | ||
+ | </ | ||
+ | For genus only. Set to 1 to skip verification with '' | ||
+ | |||
+ | < | ||
+ | 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 '' | ||
+ | |||
+ | < | ||
+ | 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. | ||
+ | |||
+ | < | ||
+ | real dynamic_power_period 10e-9 | ||
+ | </ | ||
+ | Logic synthesis tools report dynamic power assuming a certain clock frequency. This is the clock period. Default is 100 MHz, or 10ns. | ||
+ | |||
+ | < | ||
+ | string captable "/ | ||
+ | </ | ||
+ | The captable for the technology (optional). Use white space to separate files inside the string. **TODO** | ||
+ | |||
+ | < | ||
+ | string lef "/ | ||
+ | </ | ||
+ | The LEF file for the technology + lib (optional). Use white space to separate files inside the string. If the tech-LEF is separate, it has to be the first file. **TODO** | ||
+ | |||
+ | ==== ABC Options ==== | ||
+ | < | ||
+ | begin abc | ||
+ | int use_constraints 1 | ||
+ | end | ||
+ | </ | ||
+ | This only option in this section, currently, which instructs ABC to use the '' | ||
+ | |||
+ | ==== Genus Options ==== | ||
+ | |||
+ | |||
+ | ==== Expression Cache Configuration ==== | ||
+ | |||
+ | This sub-section ('' | ||
< | < | ||
string global " | string global " | ||
Line 49: | Line 142: | ||
</ | </ | ||
The '' | The '' | ||
+ | |||