Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tools:start [2019/05/11 10:52] rajit |
tools:start [2023/06/23 11:23] (current) rajit [Tools] |
||
---|---|---|---|
Line 3: | Line 3: | ||
In addition to the core ACT library, we have also implemented a number of tools for asynchronous circuit design. Some of the core tools are included as part of the main Github repository, while others have their own repository. For completeness, | In addition to the core ACT library, we have also implemented a number of tools for asynchronous circuit design. Some of the core tools are included as part of the main Github repository, while others have their own repository. For completeness, | ||
- | * [[prsim|prsim]]: a digital production-rule | + | |
- | * [[netgen|netgen]]: a production rule to SPICE netlist generator | + | * [[actsim|actsim]]: an ACT simulator. |
+ | * [[netgen|prs2net]]: a production rule to SPICE netlist generator | ||
* [[prs2sim|prs2sim]]: | * [[prs2sim|prs2sim]]: | ||
- | | + | |
+ | * [[tools: | ||
+ | * [[lvp|lvp]]: | ||
+ | |||
+ | These are core ACT tools--i.e. tools that use the core ACT library | ||
Standalone tools: | Standalone tools: | ||
+ | * [[prsim|prsim]]: | ||
+ | * aflat and prspack: a production rule flattener and compaction tool. See the documentation for [[prsim|prsim]]. | ||
* [[AMC: | * [[AMC: | ||
- | * [[ext2sp|ext2sp]]: | + | |
- | * [[lvp|lvp]]: | + | |
External open-source tools: | External open-source tools: | ||
Line 17: | Line 23: | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | * {{ : | + | |
+ | * Gemini: a netlist comparison for strict layout-versus-schematic checking | ||
+ | * [[http:// | ||
+ | |||
+ | Two useful concepts to keep in mind when using the ACT tools are //expanded names// and //mangled names//. | ||
+ | ===== Expanded names ===== | ||
+ | |||
+ | A concept one should be familiar with, especially when debugging and/or understanding error messages is the notion of expanded names. This is best illustrated with an example. Consider the following templated process definition: | ||
+ | <code act> | ||
+ | template< | ||
+ | |||
+ | example< | ||
+ | example< | ||
+ | </ | ||
+ | The type of the process defined is '' | ||
+ | |||
+ | If the template list contains multi-dimensional arrays, the expanded name contains a linear list of the parameters separated by commas. | ||
+ | |||
+ | ===== Mangled names ===== | ||
+ | |||
+ | Expanded ACT type names can contain characters like ''<'','' | ||
+ | |||
+ | The standard name mangling prefix character is an underscore. Name mangling operates character-by-character as follows: | ||
+ | | ||
+ | * A character that is not in the mangle string is a pass-through, | ||
+ | * If a character is at position k in the name mangling string, it is replaced with an underscore followed by k. The position character is 0 to 9 for positions 0 to 9, followed by a-z. Up to 36 characters can be mangled. | ||
+ | |||
+ | Name mangling can at most double the length of the string. | ||
+ | Process names have a special case in terms of name mangling. If an expanded process has no parameters, its mangled name is obtained simply be omitting the trailing ''<>'' |