Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
config:start [2019/04/20 09:57] rajit [Devices] |
config:start [2023/06/25 11:14] rajit [Generic configuration settings] |
||
---|---|---|---|
Line 9: | Line 9: | ||
We separate out the technology-specific and technology-independent information, | We separate out the technology-specific and technology-independent information, | ||
+ | |||
+ | ===== Configuration file location ===== | ||
+ | |||
+ | Configuration files are located in the '' | ||
+ | |||
===== Configuration file format ===== | ===== Configuration file format ===== | ||
Line 37: | Line 42: | ||
</ | </ | ||
Drops the last prefix | Drops the last prefix | ||
+ | |||
+ | In addition, strings in a configuration file can use environment variables. The syntax for this is shown below: | ||
+ | < | ||
+ | string my_test_path " | ||
+ | </ | ||
+ | The environment variable '' | ||
Line 45: | Line 56: | ||
===== Technology-independent configuration ===== | ===== Technology-independent configuration ===== | ||
- | ==== Generic ==== | + | Technology-independent configuration is stored in '' |
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Other common names are: | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== Generic | ||
+ | |||
+ | These settings have to do with various options that can impact ACT circuit construction and output generation. | ||
+ | |||
+ | === Circuit construction complexity | ||
< | < | ||
Line 57: | Line 81: | ||
These two parameters control the expansion/ | 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. | 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: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | |||
+ | === Output generation and name mangling === | ||
< | < | ||
Line 63: | Line 106: | ||
end | end | ||
</ | </ | ||
- | Sometimes it is useful to export files from the ACT format to other formats to interact with external tools. Examples of such formats include Verilog and SPICE. Since these are different languages, they use different syntax for identifiers. (Different commercial SPICE simulators use different identifier syntax too.) ACT identifiers and names include characters including '' | + | Sometimes it is useful to export files from the ACT format to other formats to interact with external tools. Examples of such formats include Verilog and SPICE. Since these are different languages, they use different syntax for identifiers. (Different commercial SPICE simulators use different identifier syntax too.) ACT identifiers and names include characters including '' |
+ | |||
+ | < | ||
+ | begin act | ||
+ | string mangle_letter " | ||
+ | end | ||
+ | </ | ||
+ | If the mangle character needs to be changed, then a different character can be set by modifying the '' | ||
+ | |||
+ | < | ||
+ | begin act | ||
+ | int output_window_width 72 | ||
+ | end | ||
+ | </ | ||
+ | For tools that use pretty-printing, | ||
+ | |||
==== Devices ==== | ==== Devices ==== | ||
Line 80: | Line 139: | ||
< | < | ||
begin act | begin act | ||
- | string_table | + | string_table |
end | end | ||
</ | </ | ||
Line 101: | Line 160: | ||
string_table spec_types " | string_table spec_types " | ||
end | 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 { | ||
+ | | ||
+ | | ||
+ | } | ||
</ | </ | ||
Line 109: | Line 178: | ||
===== Technology-specific configuration ===== | ===== 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: | ||
- | + | * '' | |
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||