Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
config:runtime [2023/04/04 20:00] – [External Black Box Support] rajit | config:runtime [2025/05/27 18:12] (current) – [Verilog global signal prefix] rajit | ||
---|---|---|---|
Line 32: | Line 32: | ||
</ | </ | ||
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. | 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. | ||
- | |||
- | ===== Attributes ===== | ||
- | |||
- | ACT supports attributes on both instances and production rules. An ACT instance can be assigned an attribute in the following way: | ||
- | |||
- | <code act> | ||
- | bool v @ [attr=0]; | ||
- | bool w; | ||
- | w @ [attr=5]; | ||
- | </ | ||
- | In these two examples, the signal '' | ||
- | |||
- | < | ||
- | begin act | ||
- | string_table instance_attr " | ||
- | end | ||
- | </ | ||
- | |||
- | This specifies three instance attributes: '' | ||
- | * The first component ''// | ||
- | * The second component ''// | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * '' | ||
- | * ''&'': | ||
- | |||
- | A second set of attributes can be specified per-production rule. | ||
- | |||
- | < | ||
- | string_table prs_attr " | ||
- | </ | ||
- | The syntax for these is the same, except the attributes are applied per production rule. These attributes are interpreted by the [[tools: | ||
Line 127: | Line 93: | ||
</ | </ | ||
- | ===== Verilog global signal prefix ===== | ||
- | |||
- | Since ACT can refer to global signals, this functionality may be needed when converting ACT files into Verilog netlists. Different systems may have different ways that a user can access signals | ||
- | |||
- | < | ||
- | begin act | ||
- | string global_signal_prefix " | ||
- | end | ||
- | </ | ||
- | |||
- | This specifies that a global signal '' | ||
Line 173: | Line 128: | ||
The expanded name is the fully expanded name for the process (in this case '' | The expanded name is the fully expanded name for the process (in this case '' | ||
+ | ==== Generalized External Black Box ==== | ||
+ | |||
+ | Sometimes we require a more sophisticated model for an external black box. In particular, we might want to specify internal nodes within the black box so that the timing model for the black box can be made more precise. For this purpose, a more general black box syntax is supported. | ||
+ | |||
+ | <code act> | ||
+ | defproc bbproc (bool? A, B, C; bool! D) { bool int1, int2; } | ||
+ | </ | ||
+ | This process will also be treated as a black box, but with the understanding that there are also internal nodes that might be used to build a more sophisticated timing model. | ||
+ | |||
+ | A generalized black box body can only contain instances of signals that are of type '' |