Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| language:langs:spec [2023/04/09 23:38] – [Timing constraints] rajit | language:langs:spec [2024/12/19 12:18] (current) – [Exclusive directives] rajit | ||
|---|---|---|---|
| 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. | ||