Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
language:langs:spec [2023/04/09 19:38] rajit [Timing constraints] |
language:langs:spec [2024/12/19 07:18] (current) rajit [Exclusive directives] |
||
---|---|---|---|
Line 20: | Line 20: | ||
} | } | ||
</ | </ | ||
- | states that the signals '' | + | states that the signals '' |
To simplify modeling of arbiters that cannot be modeled purely at the digital level of abstraction, | To simplify modeling of arbiters that cannot be modeled purely at the digital level of abstraction, | ||
Line 37: | Line 37: | ||
The directive '' | The directive '' | ||
- | ==== Timing | + | ==== Timing |
- | Timing constraints in ACT are specified using timing forks. Timing forks are used to specify a point of divergence constraint. The constraint | + | There are two types of timing directives: constraints, |
+ | |||
+ | === Tick specifiers === | ||
+ | |||
+ | Asynchronous circuits oscillate, and each oscillation can be viewed as an iteration of the circuit. For [[asic: | ||
+ | <code act> | ||
+ | spec { | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | This directive says that '' | ||
+ | |||
+ | === Timing constraints === | ||
+ | |||
+ | Timing constraints in ACT are specified using [[asic:timing:forks|timing forks]]. Timing forks are used to specify a point of divergence | ||
<code act> | <code act> | ||
spec { | spec { | ||
Line 64: | Line 78: | ||
This has the same meaning as the earlier fork, except that the tools are provided with a hint that says that it is okay to add delays to correct any violations of this fork. | This has the same meaning as the earlier fork, except that the tools are provided with a hint that says that it is okay to add delays to correct any violations of this fork. | ||
- | Asynchronous circuits oscillate, and each oscillation can be viewed as an iteration of the circuit. For timing analysis, it is important to indicate connections from one iteration to the next---i.e. when a signal transition from the current indication leads to a transition from the next iteration. Such directives can be computed during logic synthesis, and ACT expects all logic synthesis tools to emit these directives along with the gate-level implementation. | + | |
- | <code act> | + | |
- | spec { | + | |
- | | + | |
- | } | + | |
- | </ | + | |
- | This directive says that '' | + | |
Finally, timing forks may relate transitions from adjacent iterations. | Finally, timing forks may relate transitions from adjacent iterations. |