By default, the Timing Analyzer uses a single-cycle analysis. When analyzing a path, the setup launch and latch edge times are determined by finding the closest two active edges in the respective waveforms. For a hold analysis, the timing analyzer analyzes the path against two timing conditions for every possible setup relationship (not just the worst-case). Therefore, the hold launch and latch times may be completely unrelated to the setup launch and latch edges.
A multicycle constraint relaxes setup or hold relationships by the specified number of clock cycles based on the source (-start) or destination (-end) clock. An end multicycle constraint of 2 extends the worst-case setup latch edge by one destination clock period.
Hold multicycle constraints are based on the default hold position (the default value is 0). An end hold multicycle constraint of 1 effectively subtracts one destination clock period from the default hold latch edge. You can use the set_multicycle_path command to specify the multicycle constraints in the design. The following list shows the set_multicycle_path command including the available options:
set_multicycle_path [-setup | -hold] [-start | -end] [-from <from list>] [-to <to list>] [-thru <thru list>] <path multiplier>
Table 1 describes the options for the set_multicycle_path command.
Table 1. Options Description for set_false_path Command
Option |
Description |
---|---|
-setup | -hold |
Specifies the type of multicycle to be applied. |
-start | -end |
Specifies whether the start or end clock acts the source or destination for the multicycle. |
-from <from list> |
The <from list> is a collection or list of objects in the design. The <from list> acts as the start point of the path. |
-to <to list> |
The <to list> is a collection or list of objects in the design. The <to list> acts as the end point of the path. |
-thru <thru list> |
The <thru list> is a collection or list of objects in the design. The <thru list> acts as the thru point of the path. |
<path multiplier> |
Specifies the multicycle multiplier value. |
When the objects are timing nodes, the multicycle constraint only applies to the path between the two nodes. When an object is a clock, the multicycle constraint applies to all paths where the source node (for - from) or destination node (for -to) is clocked by the clock.