Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
asic:timing:constraints [2023/11/22 07:34]
rajit
asic:timing:constraints [2023/11/22 07:40]
rajit
Line 4: Line 4:
  
 Constraints are specified using timing forks. Timing forks can be used to specify a wide range of timing constraints; in particular, they can be used to specify relative timing constraints commonly used in asynchronous circuits. They are general enough to be able to specify setup and hold time constraints in clocked circuits as well. Details on how timing forks are specified can be found in the description of the ''spec'' [[language:langs:spec#timing_constraints|body]]. Constraints are specified using timing forks. Timing forks can be used to specify a wide range of timing constraints; in particular, they can be used to specify relative timing constraints commonly used in asynchronous circuits. They are general enough to be able to specify setup and hold time constraints in clocked circuits as well. Details on how timing forks are specified can be found in the description of the ''spec'' [[language:langs:spec#timing_constraints|body]].
 +
 +Consider the timing fork described below.
 +<code act>
 +spec {
 +  timing a+ : b- < c+
 +}
 +</code>
 +Cyclone searches for paths from ''a+'' to ''b-'' and ''c+'' in the timing graph. The fork constraint is satisfied if the slowest path found from ''a+'' to ''b-'' is faster than the fastest path found from ''a+'' to ''c+''.
 +
 +A violation of this fork can be attributed to two different causes:
 +   * A path that should be fast from ''a+'' to ''b-'' is in fact too slow, causing it to violate the constraint; or
 +   * A path that should be slow from ''a+'' to ''c+'' is in fact too fast, causing it to violate the constraint.
 +Both interpretations are valid, and it is up to a designer to determine what action is most appropriate to correct the timing fork violation. A simple option would be to slow down the path that is too fast, but this may lead to a slower cycle period.
 +