Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
config:start [2023/01/30 11:50] – [Generic configuration settings] rajit | config:start [2025/06/05 09:58] (current) – rajit | ||
---|---|---|---|
Line 32: | Line 32: | ||
</ | </ | ||
Here the variable is an array (a.k.a. table) that corresponds to the space-separated list of values. | Here the variable is an array (a.k.a. table) that corresponds to the space-separated list of values. | ||
+ | |||
+ | < | ||
+ | int_tablex <var> values | ||
+ | real_tablex <var> values | ||
+ | string_tablex <var> values | ||
+ | </ | ||
+ | Here the variable is an array (a.k.a. table) as before, but the values are appended to the existing table; i.e. the table is extended. | ||
< | < | ||
Line 52: | Line 59: | ||
Finally, a ''#'' | Finally, a ''#'' | ||
+ | ===== The configuration files ===== | ||
+ | There are a number of different configuration files used by a technology. The bulk of the configuration options are technology-specific. These are used to convert a technology-independent ACT description into a technology-specific output (e.g. a SPICE netlist). The standard set of configuration files we expect are: | ||
- | ===== Technology-independent configuration ===== | + | * '' |
- | + | * '' | |
- | Technology-independent configuration is stored in '' | + | * '' |
- | | + | * '' |
- | | + | * '' |
- | * '' | + | * '' |
- | + | ||
- | Other common names are: | + | |
- | * '' | + | |
- | * '' | + | |
- | + | ||
- | ==== Generic configuration settings ==== | + | |
- | + | ||
- | These settings have to do with various options that can impact ACT circuit construction and output generation. | + | |
- | + | ||
- | === Circuit construction complexity === | + | |
- | + | ||
- | < | + | |
- | begin act | + | |
- | + | ||
- | int max_recurse_depth 1000 | + | |
- | int max_loop_iterations 1000 | + | |
- | + | ||
- | end | + | |
- | </ | + | |
- | These two parameters control the expansion/ | + | |
- | include while loops, as well as recursive circuit constructions. To ensure that the ACT expansion phase will always terminate (albeit with an error), these two parameters control the maximum depth of recursive expansions as well as the maximum number of iterations of a while loop. | + | |
- | + | ||
- | < | + | |
- | begin act | + | |
- | int subconnection_limit 16384 | + | |
- | end | + | |
- | </ | + | |
- | This specifies a limit on array sizes that also have internal sub-connections (i.e. arrays that are not just simple memories, for example). The limit should be increased as needed, but can have a performance impact if you have a very large array with internal sub-connections. | + | |
- | + | ||
- | === Warnings === | + | |
- | + | ||
- | The following warnings can be turned on/off using an ACT configuration setting. They can also be adjusted via the standard act [[stdoptions:start|command-line options]]. These are integer ACT configuration | + | |
- | | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | * '' | + | |
- | + | ||
- | + | ||
- | === Output generation and name mangling === | + | |
- | + | ||
- | < | + | |
- | begin act | + | |
- | string mangle_chars ".:()<>[],{}"" | + | |
- | end | + | |
- | </ | + | |
- | Sometimes it is useful | + | |
- | < | + | |
- | begin act | + | |
- | string mangle_letter " | + | |
- | end | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== Devices ==== | + | |
- | + | ||
- | In most technologies, | + | |
- | + | ||
- | < | + | |
- | prs { | + | |
- | in < | + | |
- | ~in < | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Here '' | + | |
- | + | ||
- | < | + | |
- | begin act | + | |
- | string_table dev_flavors | + | |
- | end | + | |
- | </code> | + | |
- | + | ||
- | The first flavor in the list ('' | + | |
- | < | + | |
- | prs { | + | |
- | in < | + | |
- | ~in <20> -> out+ | + | |
- | } | + | |
- | </ | + | |
- | would use '' | + | |
- | + | ||
- | ==== Specification directives ==== | + | |
- | + | ||
- | The '' | + | |
- | + | ||
- | < | + | |
- | begin act | + | |
- | string_table spec_types " | + | |
- | end | + | |
- | </ | + | |
- | + | ||
- | These directives can be added as new tools that developed that might want additional information from the design. An example of using a directive is shown below: | + | |
- | < | + | |
- | bool a, b; | + | |
- | bool x[10]; | + | |
- | spec { | + | |
- | | + | |
- | | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Attributes ==== | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Technology-specific configuration ===== | + | |
- | + | ||
- | The bulk of the configuration options are technology-specific. These are used to convert a technology-independent ACT description into a technology-specific output (e.g. a SPICE netlist). The standard set of configuration files we expect are: | + | |
- | | + | Any configuration parameter can be over-ridden by using the '' |
- | * '' | + | others (e.g. warnings, definitions of macros) may need [[config:runtime|user customization]]. |
- | * '' | + | |