Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
tools:start [2023/01/14 10:58] rajit |
tools:start [2023/04/07 08:59] rajit [Mangled names] |
||
---|---|---|---|
Line 24: | Line 24: | ||
* Gemini: a netlist comparison for strict layout-versus-schematic checking {{: | * Gemini: a netlist comparison for strict layout-versus-schematic checking {{: | ||
+ | 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 ''<>'' |