Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
asic:timing:start [2024/08/16 18:31] – [Creating the timing graph] rajitasic:timing:start [2024/08/19 12:32] (current) – [Timing] rajit
Line 11: Line 11:
    * [[asic:timing:constraints|Timing constraints]]    * [[asic:timing:constraints|Timing constraints]]
  
-Note that timing analysis requires that the design has been mapped to [[asic:cells:start|cells]].+Note that timing analysis requires that the design has been mapped to [[asic:cells:start|cells]], and these 
 +cells have been [[asic:timing:xcell:start|characterized]] using extensive circuit simulations that are summarized in a Liberty file.
  
 ==== Loading the timer ==== ==== Loading the timer ====
Line 88: Line 89:
 ^ Command ^ Meaning  ^ ^ Command ^ Meaning  ^
 | timer:build-graph | Construct a timing graph from the ACT design only. | | timer:build-graph | Construct a timing graph from the ACT design only. |
 +| timer:tick <net1>+/- <net2>+/ | If the timing edge between the specified net transition exists, then the edge is ticked in the timing graph. |
 +| timer:add-constraint <root>+/- [*]<fast>[+/-] [*]<slow>[+/-] [margin] | This adds a timing fork. The root of the fork must include a direction (''+'' or ''-''). A timing margin can also be specified. The syntax ''*'' is used to indicate that the event of interest is from the //next iteration// of the circuit relative to the root. |
 | timer:init <lh1> <lh2> ... <lhN> | This initializes the timing engine (including creating the timing graph if necessary) using the Liberty file handles <lh1> through <lhN>. Multiple Liberty files are used to specify different corners, etc.  | | timer:init <lh1> <lh2> ... <lhN> | This initializes the timing engine (including creating the timing graph if necessary) using the Liberty file handles <lh1> through <lhN>. Multiple Liberty files are used to specify different corners, etc.  |
  
Line 104: Line 107:
 ^ Command ^ Meaning  ^ ^ Command ^ Meaning  ^
 | timer:run  | Runs timing analysis on the design. This command returns a list ''(p M)'', where ''p'' is the cycle period and ''M'' is the unfolding factor. | | timer:run  | Runs timing analysis on the design. This command returns a list ''(p M)'', where ''p'' is the cycle period and ''M'' is the unfolding factor. |
 +
 +==== Queries ====
 +
 +Once the run command is complete, a number of queries can be used to interrogate the computed timing.  To see the critical cycle in the design, use
 +<code>
 +interact> timer:crit
 +</code>
 +
 +Timing information for a net can be viewed using
 +<code>
 +interact> timer:info a.b.signal
 +</code>
  
 ==== Reading in parasitics ==== ==== Reading in parasitics ====