Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
config:start [2019/04/21 22:01] – [Specification directives] rajit | config:start [2025/06/05 09:58] (current) – rajit | ||
---|---|---|---|
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 27: | 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 38: | Line 50: | ||
Drops the last prefix | Drops the last prefix | ||
- | + | In addition, strings | |
- | Finally, a ''#'' | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Technology-independent configuration ===== | + | |
- | + | ||
- | ==== Generic ==== | + | |
< | < | ||
- | begin act | + | string my_test_path " |
- | + | ||
- | int max_recurse_depth 1000 | + | |
- | int max_loop_iterations 1000 | + | |
- | + | ||
- | end | + | |
</ | </ | ||
- | These two parameters control the expansion/ | + | The environment variable '' |
- | 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 | + | |
- | < | ||
- | begin act | ||
- | string mangle_chars " | ||
- | 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 '' | ||
- | ==== Devices ==== | + | Finally, a '' |
- | + | ||
- | In most technologies, circuits can be implemented with devices of different types. In CMOS, n-type and p-type transistors come in a number of flavors. Common flavors include standard threshold voltage, low threshold voltage, and high threshold voltage for core circuits. Special transistors can also exist that support higher voltages (typically used for I/O devices). Instead of building in these concepts into the library implementation, | + | |
- | + | ||
- | < | + | |
- | prs { | + | |
- | in < | + | |
- | ~in < | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | Here '' | + | |
- | + | ||
- | < | + | |
- | begin act | + | |
- | string_table dev_flavors " | + | |
- | end | + | |
- | </ | + | |
- | + | ||
- | 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 | + | |
- | < | + | |
- | bool a, b; | + | |
- | bool x[10]; | + | |
- | spec { | + | |
- | | + | |
- | | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | ==== Attributes ==== | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Technology-specific configuration ===== | + | |
+ | ===== 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: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | Any configuration parameter can be over-ridden by using the '' | ||
+ | others (e.g. warnings, definitions of macros) may need [[config: | ||