SDC Description Guideline LLWEB 10067594
SDC Description Guideline LLWEB 10067594
For details of the SDC (Version 2.1), refer to the following document released by Synopsys.
Using the Synopsys® Design Constraints Format Application Note Version 2.1, December 2017
http://edasite.eda.renesas.com/cgi-bin/lv2in/tools/REL/data/manual/manual_4265.pdf
For types and positioning of the SDC checking tools from Renesas and design phases where checking against
rules is required, refer to the following document.
タイミング制約検証フローガイド (LLWEB-10004653)
*This document is described in Japanese
set_case_analysis
create_clock
create_generated_clock
set_propagated_clock
set_clock_uncertainty
set_clock_latency
set_clock_sense
set_sense
set_clock_groups
set_clock_gating_check
set_input_delay
set_output_delay
set_false_path
set_multicycle_path
set_max_delay
set_min_delay
set_disable_timing
Important
1. Contact information regarding GCA, PTC, ConCert, check rules, and SVA:
Please access the websites below.
General GCA/PTC, native rules Synopsys, Inc.
https://solvnet.synopsys.com/
ConCert (SVA), custom rules Inquiry about EDA tool
http://edasite.eda.renesas.com/cgi-bin/support/top.cgi
2. Mismatch in specifications of the set_clock_sense command between PrimeTime and Design Compiler/ICC
There is a problem with the set_clock_sense command, that is, it behaves differently depending on tool
versions. To solve this problem, you can have the tools read the tbc file (clock_sense_compatibility.tbc) and
change the specifications of the command. In this case, however, note the differences from the vendor-
supplied documentation. For the behavior of tools after the change in specifications, refer to the following
table.
Note that whether reading of tbc file is necessary varies with the version of the set of Renesas custom rules.
* Do not use V01.09.00, V02.00.00, V02.01.00, or V02.01.01 since they have problems.
4. Setting timing constraints for objects that may be deleted due to logic synthesis or timing optimization
When setting timing constraints for objects that may be deleted due to logic synthesis or timing optimization,
set “set_dont_touch” and “set_size_only” in advance.
5. For error messages regarding syntax analysis (while reading the SDC file) and causes of errors that are not
described in this document, refer to the Message Guide from Synopsys (on SolvNet).
A message correspondence (between PrimeTime and GCA/PTC) table is being created by Synopsys.
STAR 9000884692 (Synopsys has not yet determined when this document is to be released.)
Request document for error code correspondences between GCA and PrimeTime
Page 11/257
4. Limitations
・ SDC verification in the RTL design phase is excluded.
(Because SpyGlassConstraints is no longer supported by Synopsys.)
・ The “set_clock_groups” check rules are supported by Rule Set v02.01.06 and later versions.
・ SVA is not supported as of the end of March 2019, but will be released in 2019.
Page 12/257
5. How to Read This Document
5.1. Configuration of This Document
This document, in which the SDC Description Guideline is integrated with the SDC Check Rule User’s Guide,
describes recommended descriptions, notice, and check rules for SDC files. When creating a new SDC file or
adding a new SDC command, follow the recommended description. Even in cases where you cannot strictly
follow the recommended description, refer to the notice on the command and ensure that SDC descriptions
will suit the product specifications. Furthermore, when referring to specific SDC commands, also refer to the
recommended description and notice common to all SDC commands (7.1 For All SDC Commands).
Category Description
The check in this category is intended to check consistency between
Consistency with designs SDC descriptions and designs.
Example) The source of a generated clock is not an upstream node.
The check in this category is intended to detect any problem with SDC
descriptions (regardless of designs) when there is no problem with
SDC semantics syntax.
Example) The specification of a target object is unclear. (The get_xxx
command is not used.)
Tools may put different interpretations on an unclear constraint. The
check in this category is intended to detect a circuit configuration or
Detection of unclear constraints constraint which may lead to an unclear analysis result.
Example) “set_case_analysis” is specified more than once for the
same network.
Constraint check for timing driven layout.
The check in this category is intended to make sure that each
TDL (Timing Driven Layout)
constraint is specific to critical path optimization.
Example) There is a timing path for which optimization is not required.
The check in this category is intended to make sure that each
SDC Description Guideline description follows the rules written in the SDC Description Guideline.
Example) Set a latency for a clock.
Classification of constraints
GCA/PTC message
xxxxxxxx GCA or PTC message displayed if the rule is violated.
Action
Limitations
Limitations when the rule is applied, if any.
● Constant
Description example)
set_case_analysis <0|1> [get_ports <input port name> ]
As <input port name>, specify the name of an input port of the chip or module for which you are describing
constraints.
● Clock
create_clock
Description example)
create_clock -period 10 -waveform {2 7} -name CLK1 [get_ports CLOCK_PORT1]
create_generated_clock
Description example)
create_clock -period 20 -waveform {0 10} -name CLK1 [get_ports P1]
create_generated_clock -name MU_CLK -multiply_by 2 -source [get_ports P1] ¥
-master_clock [get_clocks CLK1] [get_pins MU1/Q]
set_clock_groups
Description example)
create_clock -period 2 -name CLK_T2 [get_ports CLK1]
create_clock -period 4 -name CLK_T4 [get_ports CLK2]
create_clock -period 6 -name CLK_T6 [get_pins OSC/OUT]
set_clock_groups -asynchronous -group {CLK_T2} -group {CLK_T6}
● Clock gating
Description example)
set_clock_gating_check -setup 1.0 -hold 1.0 [get_cells I1]
When you are describing constraints for a chip, specify an input port of the chip.
When you are describing constraints for a module, specify an input port of the module.
● Input/output constraints
Description example)
create_clock -period 5.0 -name CLK -waveform { 1.0 3.0 } [get_ports CLK]
set_input_delay 1.0 -clock [get_clocks CLK] [get_ports DIN]
For the set_input_delay or set_output_delay command, use the -clock option to define which clock is
synchronized. Be sure to specify the -clock option.
When making verification using multiple on-chip clocks or off-chip clocks, specify the -add_delay option.
Input delays are affected by blunting of the input waveform and output delays are affected by the output
load capacity. Make settings according to these characteristics as needed.
● Exceptions
set_false_path
Description example)
set_false_path -from [get_clocks {<launch clock name>}] -through [get_pins {<data pin name>}] ¥
-to [get_clocks {< capture clock name>}]
Indicate the launch clock and the capture clock with the –from option and -to option respectively. (This
item can be checked by R0067.)
Specify the –from and -to options together. Do not specify the -through option alone. (This item can be
checked by R0068 and R0071.)
Do not specify the net name using the -through option. (This item can be checked by R0121.)
set_multicycle_path
Description example)
Multicycle path of data line (with higher frequency on the capture clock)
set_multicycle_path –setup <number of cycles for setup> -end -from [get_clocks {<launch clock name>}]
-through [get_pins {<data pin name>}] -to [get_clocks {<capture clock name>}]
set_multicycle_path –hold <number of cycles for hold> -end -from [get_clocks {<launch clock name>}] ¥
-through [get_pins {<data pin name>}] -to [get_clocks {<capture clock name>}]
Multicycle path of data line (with higher frequency on the launch clock)
set_multicycle_path –setup <number of cycles for setup> -start -from [get_clocks {<launch clock name>}] ¥
-through [get_pins {<data pin name>}] -to [get_clocks {<capture clock name>}]
set_multicycle_path –hold <number of cycles for hold> -start -from [get_clocks {<launch clock name>}] ¥
-through [get_pins {<data pin name>}] -to [get_clocks {<capture clock name>}]
Set multicycle path constraints for paths with a data flow control circuit.
Set the -setup multicycle path and the -hold multicycle path in pair.
Indicate the clock to be the reference of the multicycle path with the –end or -start option.
Indicate the launch clock and the capture clock with the –from option and -to option respectively.
Specify the data pin as a midpoint using the -through option.
set_max_delay|set_min_delay
Description example)
set_max_delay -from [get_ports {D0}] -to [get_pins {F0/DATA}] 1.0
set_min_delay -from [get_ports {D0}] -to [get_pins {F0/DATA}] 0.5
Specify the start point (input port, bidirectional port, or register’s clock pin) of a path by -from option and
specify the end point (output port, bidirectional port, or register’s data pin) of a path by -to option.
When the route of the path which has constraints is indicated, specify the route by using the -through
option.
Page 17/257
When the signal transition states at the start point, end point, and a point in the halfway route of a path
can be indicated, specify the signal transition states using the -rise_from, -fall_from, -rise_to, -fall_to, -
rise_through, -fall_through options respectively instead of the -from, -to, and -through options.
● Others
set_disable_timing
Description example)
set_disable_timing [get_pins <pin name>]
・ Specify the name of the pin on which you wish to disconnect the timing arc.
Page 18/257
The following settings are applicable to basic commands (such as get_pins and get_ports used in SDC
commands) and SDC commands used for setting constraints for hierarchy pins.
◆ Recommended usage
The following description methods are recommended as settings for all commands.
When specifying an object in an SDC command, indicate the type of object specified by get_* commands
(including get_pins, get_ports, get_nets, and get_clocks).
To avoid ambiguity of constraints, do not specify middle hierarchy pin as objects.
Constraints are set for the cell pin instead of the middle hierarchy pin.
set_case_analysis 0 [get_pins BLOCK/buf/Y]
BLOCK
D Q
buf CK
D Q Y D Q
CK CK
clk
Constraints are set
for the cell pin
◆ Notice
When you choose not to indicate the object type for some reasons, use the timing report command to see
to which object the tool handling SDC has applied constraints.
When you choose to set constraints for a hierarchy pin for some reasons, use the timing report command
to see for which object the tool handling SDC has enabled constraints.
Page 19/257
7.1.2. Check rules
◼ Description
It is inhibited to specify set_case_analysis for a hierarchical pin because, in that case, the constraint point is
extinguished by hierarchical expansion. If the command is specified for a hierarchical output pin, the range in
which the value propagates may vary depending on the tool that is used. This rule displays the name of
hierarchical pin for which set_case_analsys is specified.
PrimeTime propagates the value only to output direction. However, ICC propagates the value to both output
and input 19irection.
GCA Message
HIER_001:
Hierarchical pin pin has constraints defined on it.
◼ Description
It is inhibited to specify create_clock/create_generated_clock for a hierarchical pin because, in that case, the
constraint point is extinguished by hierarchical expansion. If create_clock/create_generated_clock is specified
for a hierarchical pin, PrimeTime handles the specified hierarchical pin as a clock set point as it is but ICC
replaces it with the preceding or following instance pin. In this way the behavior differs between PrimeTime
and ICC. Therefore, setting create_clock / create_generated_clock for hierarchical pins (including bi-directional
pins) is inhibited.
create_ create_
mod1 mod1
clock clock
setting setting
point point
m1 m1 This path is
recognized
as a clock.
GCA Message
CLK_0015 :
Clock clock is created on a hierarchical pin.
Page 21/257
R0017 Prohibition of create_generated_clock definition for the middle hierarchical pin
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
PTC UDEF_GclockMasterPinOnHierPin
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
It is inhibited to specify the -source option of create_clock for a hierarchical pin because, in that case, the
constraint point is extinguished by hierarchical expansion. While PrimeTime handles the specified hierarchical
pin as a clock set point as it is, ICC replaces it with the preceding or following instance pin. In this way the
behavior differs between PrimeTime and ICC. Therefore, setting the -source option of create_clock for
hierarchical pins (including bi-directional pins) is inhibited.
m1 m1
GCA Message
CLK_0015 :
Clock clock is created on a hierarchical pin.
Page 22/257
R0024 Prohibition of set_clock_latency definition for the middle hierarchical pin
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
PTC UDEF_ClkLatOnHierPin
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
It is inhibited to specify set_clock_latency for a hierarchical pin because, in that case, the constraint point is
extinguished by hierarchical expansion. If the clock latency is specified, PrimeTime holds the hierarchical pin
and sets the clock latency, but ICC replaces it with the preceding or following instance pin when setting the
clock latency. Therefore, setting a hierarchical pin in this case is inhibited when ICC is to be used.
GCA Message
UDEF_ClkLatOnHierPin :
set_clock_latency is wrongly set on hierarchical module pin ('hier_pin'). Please set_clock_latency is set
clock with get_clocks.
Page 23/257
R0033 Prohibition of set_clock_uncertainty definition for the middle hierarchical pin
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
PTC UDEF_ClkUncOnHierPin
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
It is inhibited to specify set_clock_uncertainty for a hierarchical pin because, in that case, the constraint point
is extinguished by hierarchical expansion. In this case, PrimeTime holds the hierarchical pin and sets the skew
but ICC replaces it with an instance pin when setting the skew. PrimeTime and ICC make different
interpretations in this case and therefore, it is inhibited to specify set_clock_uncertainty for any hierarchical pin.
mod1 mod1
set_clock_un set_clock_un
certainty certainty
setting point setting point
clk Clock clk
skew: 1ns Clock
m1 m1 skew: 1ns
create_clock
create_clock Clock setting point
setting point skew: 0ns
GCA Message
UDEF_ClkUncOnHierPin :
set_clock_uncertainty is wrongly set on hierarchical module pin ('hier_pin'). Please
set_clock_uncertainty is set clock with get_clocks.
Page 24/257
R0037 Prohibition of set_input/output_delay definition for the middle hierarchical pin
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
PTC EXD_0008
UDEF_EXD_0008_NoSeqPin
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
It is inhibited to specify set_input_delay/set_output_delay for a hierarchical pin because, in that case, the
constraint point is extinguished by hierarchical expansion. If the set_input_delay/set_output_delay command
is specified for a hierarchical pin, PrimeTime holds the hierarchical pin and sets the input delay but ICC
replaces it with an instance pin when setting the delay. For this reason, do not specify a hierarchical pin in the
object list.
mod1 mod1
D Q D Q
The
CK CK
instances
D Q that the input D Q The
delay is set instances
m1 CK m1 CK
that the input
D Q delay is set
D Q
set_input_delay set_input_delay
setting point CK CK
setting point
GCA Message
EXD_0008 :
The input delay at pin pin is forcing a start point that blocks paths through this pin.
The output delay at pin pin is forcing a end point that blocks paths through this pin.
EXD_0008 also reports when pin objects in the design are specified.
This rule is a custom rule that filters out non-sequential cell pins from violations of EXD_0008.
Added in Rule Set V02.01.06.
GCA/PTC MESSAGE
UDEF_EXD_0008_NoSeqPin :
"set_’inoutput’_delay command is NOT set on the sequential cell pin ‘obj_name’
Limitations
◼ Description
When set_disable_timing is specified to bi-directional middle hierarchical pin, the operation is different in
Prime Time and ICC. PrimeTime invalidated both input and output timing paths. However ICC invalidated
output timing path but does not input timing path. Therefore, this rule reports the middle hierarchical pin name
when set_disable_timing is specified to bi-directional middle hierarchical pin.
BLOCK
disabled timing path
Interpretation
of PrimeTime QD IOP D Q
CK CK
(INOUT) QD
D Q
CK CK
disabled timing path
BLOCK
Interpretation
of ICC not disabled timing D
path
Q
QD IOP
CK CK
D Q (INOUT) QD
CK CK
disabled timing path
GCA Message
HIER_001 :
Hierarchical pin pin has constraints defined on it.
Page 27/257
R0073 Prohibition of set_false_path definition for the middle hierarchical pin
Severity RTL Layout I/F STA IP
n/a Error Error n/a
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
PTC HIER_001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
It is inhibited to specify the -through option of set_false_path for a hierarchical pin because, in that case, the
constraint point is extinguished by hierarchical expansion. It must also be noted that ICC is likely to add a
logical port to the hierarchy for fanout net optimization, resulting in a path for which the constraints applied to
the original port become invalid. This rule detects the condition in which the -through option of set_false_path
is specified for a hierarchical pin.
mod1 mod1
exceptoin
D Q pass D Q exceptoin
m1 m1 pass
CK CK
GCA Message
HIER_001 :
Hierarchical pin pin has constraints defined on it.
Page 28/257
R0089 Prohibition of set_min/max_delay definition for the middle hierarchical pin
Severity RTL Layout I/F STA IP
n/a Error Error n/a
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
PTC HIER_001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
It is inhibited to specify set_min_delay/set_max_delay for a hierarchical pin because, in that case, the
constraint point is extinguished by hierarchical expansion. If the constraint by set_min_delay/set_max_delay
is specified for a hierarchical pin which is likely to be removed from the design during optimization, the expected
constraint may not be applied. Therefore, setting set_min_delay/set_max_delay for a hierarchical pin is
inhibited. Specifying any of -from, -to, and -through is inhibited.
mod1
set_input_del
ay setting
point
clk
m1
create_clock
setting point
GCA Message
HIER_001 :
Hierarchical pin pin has constraints defined on it.
Page 29/257
R0097 When an Object Is Specified, the Object Type Is Explicitly Specified
Severity RTL Layout I/F STA IP
n/a Error Error Warning
Category consistency ◼semantics unclear TDL check rule user's manual
PTC UIC-067
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When specifying an instance name, external pin name, pin name, net name, clock name, or the like, use the
get_xxx command to explicitly specify the type of the target object. For example, an external pin and the net
connected to the pin have the same name, so the constraint target becomes unclear if a type is not
specified.
GCA Message
UIC-067:
Option '%s' contains implicit reference to objects, use '[get_* %s]' instead.
Confirmation method
UIC-067 outputs to the log as shown below.
but you cannot check the corresponding SDC command in the log.
Error: Option '' contains implicit references to objects, use '[get_* ]' instead. (UIC-067)
The violated constraint can be confirmed with UserMessageBrower ont the GUI.
In the list on the left side of the figure below, violated constraints are not displayed.
Please select one violation message. Then click on the blue text in "Reference" on the right window.
You can see the violated constraints.
Action (common)
Limitations (GCA/PTC)
UIC-067 and UIC-068 are used when reading SDCs. But these rules are also detected when rule checking
after reading SDCs. So ‘Renesas_sdc_start’ and ‘Renesas_sdc_end’ command is prepared to suppress
messages by their rules. Using these commands before and behind ‘read_sdc’ make suppress detection of
unnecessary message about UIC-067 and UIC-068. Please refer to the following sample to use them.
◼ Description
It is inhibited to specify set_disable_timing for a hierarchical pin because, in that case, the constraint point is
extinguished by hierarchical expansion.
PrimeTime disables all paths through output pins of hierarchical cell. ICC (DC) does not disable any paths.
This causes discrepancy between PrimeTime and ICC (DC) timing results.
Hierarchical cell
U1
q1
Disabled timing paths in PrimeTime
q2
GCA Message
HIER_001:
Hierarchical pin 'U1/q1' has constraints defined on it.
Hierarchical pin 'U1/q2' has constraints defined on it.
Page 31/257
7.2. Constants
7.2.1. set_case_analysis
The set_case_analysis command is used to set a constant value (1, 0) for a specific point.
◆ Recommended usage
The following description methods are recommended for setting the set_case_analysis command.
When you are describing constraints for a chip, specify an input port of the chip.
When you are describing constraints for a module, specify an input port of the module.
◆ Notice
If two or more constants are set on the same timing path, a conflict may occur. Do not set two or more
constants. (This item can be checked by R0004, but rising and falling are not checked by the check rule.)
When set_case_analysis is used, timing arc related to constant propagation is disabled and thus not
applicable to timing analysis.
If a constant is set for a register input pin, timing analysis is not performed. The constant is not propagated
to the output pin.
If a constant is set for an input pin in the halfway route of the circuit, the constant is not set for other
input pins of the same net. In the example below, 0 is not propagated to A of I2 by PrimeTime. When
setting a constant in the entire net, set it for Q of F1.
F1 I1
A
Q B 0 is propagated
0
I2
A
B 0 is not propagated
Page 32/257
◆ Supplement
The following description is possible with the set_case_analysis command though it is not recommended.
Example 1: Signal transition (rise/fall) setting
A constant (0 or 1) is usually set for the set_case_analysis command. However, signal transitions can also
be specified by rising/falling. F1/Q is an output from a register and has rising and falling transitions. Setting
rising for A of I1 disables a falling transition and enables only a rising transition.
Page 33/257
◼ Description
When constant is specified for all data pins of multiplexer by set_case_analysis, the operation is different
between Prime Time and ICC. ICC disables timing arc from selector pin to output. However, ICC does not
disable its timing arc. Therefore, this rule reports the instance name of multiplexer as an error when constant
is specified for all the data pins.
S1 S0 Y
set_case_analysis 1 [get_pins MX4/D0]
set_case_analysis 1 [get_pins MX4/D1] 0 0 (D0)
set_case_analysis 0 [get_pins MX4/D2] 0 1 (D1)
set_case_analysis 0 [get_pins MX4/D3] 1 0 (D2)
1 1 (D3)
1 D0
1 D1
Y
0 D2
0 D3
S1 PrimeTime does not disable this timing arc.
S0
ICC disable this timing arc.
GCA Message
UDEF_FixedMuxSetCaseAnalysis :
All of MUX data signals are fixed by set_case_analysis command (Instance: cell ).
Action
The logic or timing constraints should be modified if possible. But when it’s not impossible, please ignore a
timing calculation result of PrimeTime for paths with the MUXs or cut the timing arc from selector to output of
the MUXs with set_disable_timing command before running PrimeTime.
Therefore, if any of the following conditions is met, it can be judged as a false error.
Condition 1: The case where the selector pin of the multiplexer is used only for data signal selection.
If the timing arc from the selector pin to the output pin is used as part of the logic, and the role is just to pass
the constant of the input data pin to the subsequent stage, it can be a pseudo error.
Condition 2: If condition 1 is not met, a multiplexer that guarantees that no glitch will occur when the selector
pin is switched is used.
Generally, a multiplexer multi is composed of a combination circuit of AND and OR. If the selector pin is
switched and there is a deviation in signal propagation to AND or OR, glitches may occur. It can be a false
error if the corresponding multiplexer is guaranteed not to glitch.
For example, if there is a 3-input AND, and there is a signal propagation deviation between S0 and S1 as
shown on the right side, there is a concern that a glitch will occur in the output Y, affecting the logic of the
subsequent stage.
S0 S0
S1 S1
A A
Y Y
Condition 3: If this condition cannot be handled as a pseudo error in conditions 1 and 2, and there is no problem
with this multiplexer even if the above unintended glitch occurs, this rule can be set as a pseudo error.
◼ Confirmation method
<Violation>
All of MUX data signals are fixed by set_case_analysis command(Instance: BLK2/MUX01).
<Constraint>
set_case_analysis 1 [get_pins BLK2/MUX01/0]
set_case_analysis 1 [get_pins BLK2/MUX01/1]
<Debug method>
The constant of each data pin of the multiplexer can be confirmed by the following method. You can also check
the constant of the output pin of cell BLK2/MUX01 by using the get_attribute command. In the example below,
the constant “1” is propagated to all input data pins.
ptc_shell> get_attribute -quiet [get_pins cell /* -filter "direction==in && is_mux_select_pin==false"] case_value
11
◼ Limitations
Only inspected if the cell type is a multiplexer (cell type: is_mux = true).
When configured with AND or OR circuit connections, this rule does not detect them. Even if all the inputs of
the multiplexer are constants, each is set to a different value, and when a transition occurs between the selector
and the output due to the transition of the select pin, a timing calculation is required, so there is a difference in
behavior between ICC and PrimeTime I do not. However, even if the transition of the value of the output pin
does not occur at the transition of the select pin, there is a possibility that a glitch may appear, but ICC does
not consider it. Originally, such a hazard is not verified in STA, but PrimeTime verifies that even if a glitch
appears within one cycle, it is considered as a result.
◼ Description
Since FFs with a fixed clock are not subject to STA, care must be taken to ensure that the results after mounting
are as expected.
Also note that the signal is disconnected in the timing path with latches whose enable is fixed off. This rule
detects when the FF clock or latch enable is fixed at High or Low.
・ constant nets (both supply nets and nets due to set_case_analysis settings)
・ hanging nets
・ output pin or a non-toggling sequential cell (cell whose either data or clock pin is constant)
FF1
OR1
D Q
CLK B
DATA A CK
1
GCA Message
CLK_0006:
Clock clock source source has a logic constant or case value.
0 LAT1
AND1
D Q
EN B
DATA A EN
GCA Message
CLK_0006:
Clock clock source source has a logic constant or case value.
Page 37/257
◼ Action
In order not to stop the propagation of the clock, it is necessary to prevent the constant or logic constant from
propagating to the clock pin.
Check if there is an error in the fixed setting or circuit connection.
◼ Confirmation method
<Debug method>
CLK_0006 reports the clock name and the source pin name of that clock. Use the report_case_details
command to determine the fixed source that propagates to that source pin. This constant includes not only
set_case_analysis, but also constants connected to Tri-Hi (pull-up)/Tri-Low (pull-down), power supply and
ground in Netlist.
Check whether the constants set in this report and the constants of Netlist are accompanied by product
specifications.
If a constant is propagated to the clock pin, the clock signal becomes invalid, and the STA that is affected by
the clock signal cannot be created, causing verification failure.
Page 38/257
R0004 set_case_analysis Settings Are Not Made to Conflict with Each Other.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category ◼consistency ◼semantics ◼unclear TDL check rule user's
manual
PTC CAS_0003
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
A conflict between case settings refers to a condition in which the value that is set for a path to which a constant
(clamp cell or case setting) is propagated has the state opposite to that of the propagated value. Such a value
makes the intention of the constraint unclear and leads to a verification error. Therefore, any conflict between
case settings must be inhibited.
Prohibited. Prohibited.
H
GCA Message
CAS_0003 :
Pin/Port 'buf_1_2/Z' propagated value conflicts with a user case analysis value
◼ Action
Check if the reported pin / port constant is correct and correct if necessary.
◼ Confirmation method
The confict point is reported on the back side when different constants are set on the same timing path.
Therefore, to check the constant in the previous stage for the reported pin / port, check the content of the
conflict with report_case_details -to <confiict point>.
Here is an example.
<violation>
Pin/Port 'buf_1_2/Z' propagated value conflicts with a user case analysis value.
<Constraint>
set_case_analysis 1 buf_1_1/Z
set_case_analysis 0 buf_1_2/Z
<Debug method>
gca_shell> report_case_details -to buf_1_2/Z
****************************************
If an unnecessary constant is set, delete set_case_analysis specified on the path that though “<conflict point>”.
You can also check the Violation Details on the GUI. You can execute the report_case_details command by
clicking execute in this vibration details.
Click "execute" to display the "ViolationSchemeatic" tab and display the constants on the schematic.
If you don't need a schematic, click "echo command" and add "-text_only" to the displayed command.
report_case_details -to BLK1/FF01/D
↓
ptc_shell> report_case_details -to BLK1/FF01/D -text_only
If you want to check the constant in the latter part, check with “report_case_details -from <confiict point>”.
Page 40/257
S0001 The value specified as a Constant logic value must match the actual behavior
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category ◼consistency semantics unclear TDL check rule user's
manual
GCA/PTC No applicable rule
LITMUS No applicable rule
ConCert SDC_CASE_ANALYSIS
(Dynamic Simulation)
◼ Description
Verify that the constant of the pin with the Case constraint specified is the same on the logic simulation /
emulation. If there is a discrepancy on the functional simulation / emulation, check the violation report to see
if it is as designed. Note that the SVA Flow utility is used for this verification. Please refer to the reference for
usage.
The above set_case_anaysis is intended to give a constant of 1 to the pin MUX/S. Is it actually the same
constant at the specified pin?
Or, confirm on logic simulation/emulation that there is no signal change.
SIM/HWE result
SIM(VCS)
HWE(Palladium)
Same as VCS.
◼ Action
The expected value of the Case constraint is that the constant of the specified pin does not change on the
logic simulation/emulation. In the case of the above example, there is a period that changes to a constant
different from the Case constraint, so it can be seen that the STA differs from the verification environment on
the logic simulation / emulation. Therefore, check whether the selection of the reset signal is appropriate in the
functional simulation / emulation environment, and whether the file to be input to the SIM / HWE environment
is appropriate, and correct accordingly. In the same way, check whether there is an error in the constant of the
Case constraint and correct it accordingly.
Page 41/257
7.3. Clock
7.3.1. create_clock
The create_clock command is used to create a clock for a specific point and set its waveform.
◆ Recommended usage
Specify clock input ports or output pins of clock generating cells as definition points.
Specify the following options for the create_clock command.
Use the -name option to specify the clock name.
Use the -period option to specify the clock period.
Use the -waveform option to specify the clock waveform.
If the -waveform option is not specified, a waveform is automatically set with rising edge = 0.0 and
duty = 50%.
We recommend that you specify the -waveform option.
When creating a virtual clock, set the create_clock command without specifying any definition point.
The following shows an example to create CLK1 (period: 10, rising edge: 2, falling edge: 7) for the external
port "CLOCK_PORT1".
When creating CLK3 with a period of 10 for the external port "CLOCK_PORT3", if the -waveform option is
omitted, a clock with a rising edge of 0.0 and a falling edge of 5.0 (1/2 of the period specified by the -period
option) is created.
A clock is created for the specified point. The clock propagates from the specified instance pin and a clock
delay to the sequential cells (such as FF, latch, and RAM) is also calculated from the specified instance pin.
When an instance pin is specified as shown below, for example, the clock is supplied to both F1 and F2.
Unlike the above case, when an instance pin is specified as shown below, the clock is supplied to F2 but is not
supplied to F1.
Page 43/257
Creating multiple clocks for the same point
To create multiple clocks for the same point, use the -add option as shown below. When using the -add option,
the -name option must be specified together. Furthermore, when multiple clocks are created for the same point,
path timing is analyzed for all possible combinations of clock transmission/reception relationship (CLK1 →
CLK1, CLK1 → CLK2, CLK2 → CLK1, and CLK2 → CLK2).
Virtual clock
If the create_clock command is used without setting any definition point (source_objects), a virtual clock is
created. The virtual clock can be used as the reference clock of the set_input_delay command and the
set_output_delay command.
◆ Notice
Do not set the create_clock command on the same clock network. (R0014)
Do not use the create_clock command to define any clock for the selector port of the MUX (selector cell).
(R0099)
◆ Supplement
None
Page 44/257
7.3.2. create_generated_clock
The create_generated_clock command is used to create a new clock (generated clock) based on the existing
clock (master clock). Using the create_generated_clock command ensures synchronization between the
master clock and a generated clock. When the master clock changes, the generated clock is also automatically
changed.
When the master clock is a propagation clock, the source latency of the master clock and the propagation
delay from the master clock to the generated clock are automatically considered.
When the master clock is an ideal clock, set_clock_latency, set_clock_transition, and set_clock_uncertainty
that were set for the master clock do not affect the generated clock. Set these commands individually.
◆ Recommended usage
Use the -name option to specify the generated clock name.
Use the -source option to specify a master clock propagation point.
Use the -master_clock option to specify the name of the master clock (reference clock).
Use any the generated clock waveform, to specify of the following options.
➢ To generate a divided clock, use the -divide_by option.
➢ To generate a multiplied clock, use the -multiply_by option.
➢ To generate a generated clock with the edge positions of the master clock specified, use the -edges
option.
➢ To generate a generated clock (division ratio = 1), use the -combinational option.
Use the -invert option to invert the waveform of the generated clock.
To create two or more generated clocks for the same definition point, use the -add option.
Also use the -name option to specify the generated clock name.
In the figure below, a generated clock (CLK1 divided by 2) is also specified for Q of DV1, but I1/YB is specified
by the -source option. In this case, the generated clock waveform is formed based on the inverted waveform
of clock CLK1 at I1/YB.
To specify a simple divided clock, use the -divide_by option. In the figure below, the clock DV_CLK (CLK1
waveform at port P1 divided by 2) is created for Q of DV1.
To specify a simple multiplied clock, use the -multiply_by option. In the figure below, the clock DV_CLK (CLK1
waveform at port P1 multiplied by 2) is created for Q of MU1.
When using the -multiply_by option to specify a multiplied clock, the -duty_cycle option can be used to
specify the percentage of the clock period that the clock is high. In the example below, the high-level pulse
width is 8 because a value of 80 is specified for -duty_cycle of the multiplied clock (period: 10).
Specifying a generated clock with the edge positions of the master clock specified
The -edges option can be used to create a complex generated clock with the edge positions of the master
clock specified. In the figure below, edge positions (1), (3), and (5) on the clock CLK1 waveform at port P1 are
specified to create a generated clock DV_CLK (CLK1 divided by 2) for Q of DV1.
As shown below, specifying 1 for the -divide_by option makes it possible to create the generated clock with
the same waveform as the master clock waveform at the point specified by the source_objects option. The
generated clock latency is calculated from the point of the master clock. Creating a new generated clock that
is the same as the master clock with a different clock name is useful for setting timing exceptions (e.g. by the
set_false_path command) for the master clock and generated clock separately.
Page 48/257
Inverting a generated clock
As shown below, using the -invert option inverts the generated clock waveform of the divided clock (-divide_by)
or multiplied clock (-multiply_by). This does not mean generation of a divided clock waveform or multiplied
clock waveform based on the waveform inverted from the master clock at the point specified by the
source_objects option.
To create multiple generated clocks for the same point, use the -add option. When using this option, the -name
option must be specified together.
In the figure below, since multiple clocks have reached the generated clock definition point, the master clock
to be referenced must be specified by the -master_clock option.
◆ Notice
When using the create_generated_clock command to create a generated clock, do not make an option
setting that generates a waveform different from that of the circuit configuration. (This item can be checked
by R0018, R0112, and R0019.)
Make settings to generate a single delay calculation path from the master clock propagation point
specified by the -source option to the generated clock definition point. (This item can be checked by
R0023.)
◆ Supplement
None
Page 49/257
7.3.3. set_propagated_clock
The set_propagated_clock command is used to set propagation of delay to the clock network.
If set_propagated_clock is not set for any clock, this will be an ideal clock independent of the delay of both
cells and nets through the clock networks.
◆ Recommended usage
The following description methods are recommended for setting the set_propagated_clock command.
To propagate the delay to the clock network, set the set_propagated_clock command for all clocks.
The set_propagated_clock command need not be set for an ideal clock (to propagate no delay to the
clock network).
set_propagated_clock [all_clocks]
◆ Notice
The set_propagated_clock command makes it possible to set a propagation clock by specifying a clock, port,
or pin. Since an ideal clock and a propagation clock do not exist together, make the propagation clock setting
for all clocks as described in “Recommended example of command description”.
Page 50/257
◆ Supplement
The following provides examples for setting the set_propagated_clock command for a clock, port, and pin.
Since an ideal clock and a propagation clock do not exist together, make the following propagation clock setting.
set_propagated_clock [all_clocks]
◆ Recommended usage
Setting skew between clocks is recommended.
Use the -from and -to options to specify the clocks for which you want to set skew.
To specify either rising or falling of the clock or set different skew at rising and falling, use the -rise and -
fall options.
To change the skew at the setup timing and hold timing, use the -setup and -hold options.
When setting skew between clocks, use the -from and -to options as shown below. In the path from CLK1 to
CLK2, a value of 1.0 is set as the skew between clocks. If skew is also required for the path from CLK2 to
CLK1, “-from [get_clocks CLK2] -to [get_clocks CLK1]” must be set.
Skew = 1.0
When setting skew values for rising and falling edges, use the -rise and -fall options as shown below. This
setting is applied to the skew at rising and falling edges of the capture clock. If neither the -rise nor -fall option
is specified, the same skew value is set for both rising and falling edges. When both the -rise and -fall options
are specified, respective skew values are set for rising and falling edges. If only the -rise option is specified
and the -fall option is not specified, the default value 0.0 is set for falling. Similarly, if only the -fall option is
specified, the default value 0.0 is set for rising.
When setting a skew value in each setup analysis and hold analysis, use the -setup and -hold options. In the
example below, the -setup value is set as the skew of the setup analysis and no skew value is set in the hold
analysis.
Skew = 1.0
In the example below, the -hold value is set as the skew of the hold analysis and no skew value is set in the
setup analysis.
Skew = 1.0
If neither -setup nor -hold option is specified, skew is set in both setup analysis and hold analysis.
◆ Notice
When using the -setup and -hold options, set constraints for both -setup and -hold.
(This item can be checked by R0035)
If multiple clock input ports exist, use the set_clock_uncertainty command by specifying the clock name
to be defined for the designated clock input port. Avoid using the set_clock_uncertainty command with
the clock input port specified. (R0120)
Page 53/257
◆ Supplement
The set_clock_uncertainty command makes it possible to set the clock skew by specifying a clock, port, or pin.
The following provides examples for setting the clock skew for a clock, port, and pin.
The following figure shows an example where the set_clock_uncertainty command is set for the clock (CLK2).
The skew is set for the clock pins of all the sequential cells (including FF, latch, and RAM) within the transition
fan-out of the clock.
The following figure shows an example where the set_clock_uncertainty command is set for a port on which a
clock is created. The skew is set for the clock pins of all the sequential cells (including FF, latch, and RAM)
within the transition fan-out of the port.
The following figure shows an example where the set_clock_uncertainty command is set for the instance pin
on which a clock is created. The skew is set for the clock pins of all the sequential cells (including FF, latch,
and RAM) within the transition fan-out of the instance pin.
The set_clock_latency command is used to set clock latency. Two types of clock latency can be set with this
command.
One is clock source latency, that is, a delay set to a clock definition point.
The other is clock network latency, that is, the time required for propagation from a clock definition point to the
clock pins of sequential cells (including FF, latch, and RAM).
◆ Recommended usage
Options to be used vary with the clock latency type to be set.
When setting clock source latency:
Use the -source option.
Specify a clock or clock definition point as objects.
When setting clock network latency:
Do not use the -source option.
Items other than a clock and clock definition point can be specified as objects.
In the example below, a clock source latency value of 1.0 is set between clock CLK and the clock definition
point (port CLK).
In the example below, the clock from the clock definition point (clock CLK) to the clock pin of the sequential
cell (such as FF, latch, and RAM) is treated as an ideal clock, and a clock network latency value of 1.0 is set.
◆ Supplement
The set_clock_latency command allows the following settings. Each setting is described below.
Clock latency for rising and falling edges
Clock latency with minimum and maximum delays
Clock source latency -early and -late
Page 56/257
Clock latency for rising and falling edges
When setting clock latency values for rising and falling edges, use the -rise and -fall options as shown below.
If neither the -rise nor -fall option is specified, the same clock latency value is set for rising and falling edges.
When both the -rise and -fall options are specified, respective clock latency values are set for rising and
falling edges. If only the -rise option is specified and the -fall option is not specified, the default value 0.0 is
set for falling. Similarly, if only the -fall option is specified, the default value 0.0 is set for rising.
When CLK
source waveform when
source latency is set
latency
When setting clock latency values with the minimum and maximum delays, use the -min and -max options.
The values to be set for these options vary with -analysis_type (single, bc_wc, or on_chip_variation) of
set_operating_conditions. When -analysis_type is single, analysis is made with single operating conditions.
When -analysis_type is bc_wc, the setup analysis is made for all paths with the maximum delay and the hold
analysis is made for all paths with the minimum delay. When -analysis_type is on_chip_variation, the setup
analysis is made with the maximum delay for the data path or with the minimum delay for the clock path, and
the hold analysis is made with the minimum delay for the data path or with the maximum delay for the clock
path.
In the example below (where -analysis_type is on_chip_variation and -min is specified), the -min value is set
for the capture clock (F2/CLK) in the setup analysis and for the launch clock (F1/CLK) in the hold analysis.
<Setup analysis>
When F2/CLK
waveform when
source latency is
not set
When F2/CLK
waveform when
source latency is set
Clock
source
latency
<Hold analysis>
When F1/CLK
waveform when
source latency is
not set
When F1/CLK
waveform when
source latency is set
In the example below (where -analysis_type is on_chip_variation and -max is specified), the -max value is set
for the launch clock in the setup analysis and for the capture clock in the hold analysis.
Page 57/257
<Setup analysis>
When F1/CLK
waveform when
source latency is
not set
When F1/CLK
waveform when
source latency is set
Clock
source
latency
<Hold analysis>
When F2/CLK
waveform when
source latency is
not set
When F2/CLK
waveform when
source latency is set
When setting the clock source latency with the clock source specified, early clock source latency can be set
by specifying the -early option or late clock source latency can be set by specifying the -late option. In the
example below, in the setup analysis, the -late value is set for the launch clock and the -early value is set for
the capture clock. In the hold analysis, the -early value is set for the launch clock and the -late value is set for
the capture clock.
When CLK
waveform when
source latency is
not set
Clock
source
latency
The set_clock_latency command can be used to set the clock latency for a clock, port, or pin. The following
provides examples for setting the clock source latency for a clock, port, and pin.
The following figure shows an example where the set_clock_latency command (with -source specified) is set
for a clock. With this setting, a clock source latency value of 1.0 is set for the clock definition point (clock CLK).
Page 58/257
When CLK
waveform when
source latency is
not set
The following figure shows an example where the set_clock_latency command (with -source specified) is set
for a port. With this setting, a clock source latency value of 1. 0 is set for the clock definition point (port CLK).
When CLK
waveform when
source latency is
not set
The following figure shows an example where the set_clock_latency command (with -source specified) is set
for a pin. With this setting, a clock source latency value of 1.0 is set for the clock definition point (instance pin
I2/Y).
The set_clock_sense and set_sense commands are used to stop propagation of a clock from specific pins.
◆ Recommended usage
Use the set_clock_sense or set_sense command to specify a pin on which you wish to stop clock
propagation.
If two or more clocks have reached the pin and you wish to stop one of the clocks, use the -clocks option
to specify the name of the clock.
Be sure to specify the -stop_propagation option.
When the set_sense command is used:
Specify the -type clock option.
In this example, propagation of CLK1 stops at the Z pin of MUX. Therefore, CLK1 does not propagate to the
flip-flop F1 (only CLK2 propagates to F1).
◆ Note
The set_clock_sense command is available in version 2.0 and earlier versions of SDC.
The set_sense command is available in version 2.1 and later versions of SDC. Use an appropriate SDC
version.
◆ Supplement
The set_clock_sense and set_sense commands can also be used to control the polarity of the clock to be
propagated. The following provides an example to control the polarity of clock.
The set_clock_groups command is used to set the asynchronous transfer relationship between clocks.
◆ Recommended usage
Using the -asynchronous option is recommended.
Use the -group option to specify clock(s) for which you want to set asynchronous transfer relationship.
If you want to set the transfer relationship between two or more clocks to asynchronous, specify the -
group option twice or more times.
If you want to set the transfer relationship between two or more specific clocks and other clocks to
asynchronous, specify two or more clocks for the argument of the -group option.
Setting the asynchronous transfer relationship with the set_clock_groups command affects the crosstalk
analysis.
It can be declared that two clocks are in asynchronous relationship. In this case, the timing path (lanched by
one clock and captured by the other clock) is not checked as in the case of declaration of a false path between
two clocks.
In the crosstalk analysis, infinite timing windows are assumed between two clocks, which results in pessimistic
crosstalk.
The following set_clock_groups command set the transfer relationship between CLK_T2 and CLK_T6 to
asynchronous.
In this example, the clock domain of CLK_T2 and CLK_T4 and the clock domain of CLK_T4 and CLK_T6 are
synchronous.
Page 61/257
Setting a single clock and all other clocks to asynchronous
In this example, the clock domain of CLK_T2 and the clock domain of CLK_T4 are synchronous.
When two or more groups are specified, each group and other groups become exclusive.
Description example to specify mutual exclusion among CK1 and CK2, CK3 and CK4, and CK5
set_clock_groups -asynchronous ¥
-group {CK1 CK2} ¥
-group {CK3 CK4} ¥
-group {CK5}
◆ Note
Note that set_clock_groups -group {CK1} -group {CK2} and set_clock_groups -group {CK1 CK2} lead to
different asynchronous transfer relationships.
➢ The set_clock_groups -group {CK1} -group {CK2} command sets asynchronous transfer relationship
between CK1 and CK2.
➢ The set_clock_groups -group {CK1 CK2} command sets asynchronous transfer relationship between
CK1 or CK2 and other clocks.
◆ Supplement
Exclusive clocks
The set_clock_groups command can be used with the -logically_exclusive or -physically_exclusive option for
clocks that are to be exclusively used due to circuit configuration.
The -logically_exclusive option is used in a configuration to select multiple input clocks with a selector.
The -physically_exclusive option is used when clocks set for the same pin are not input simultaneously.
Using the -physically_exclusive option affects the crosstalk analysis. It is assumed that there is no interaction
of crosstalk between two clocks in the crosstalk analysis.
CLK1 and CLK2 are synchronous with the other clocks that are not specified as a clock group. In the example
above, CLK1 and CLK3 are synchronous and CLK2 and CLK3 are also synchronous.
Page 62/257
Specifying multiple clocks for a clock group
Since CLK1 or CLK2 is selected by MUX1 in this circuit configuration, they must be exclusive. Furthermore,
since a divided clock is supplied to FF3, specify synchronous relationship between CLK1 and CLK1_DIV2 and
between CLK2 and CLK2_DIV2.
A desired name can be assigned to the declaration of clock group, making it possible to easily delete specific
declarations later. However, the deletion command is not SDC.
set_clock_groups -logically_exclusive -name EX1 -group {CK1 CK2} -group {CK3 CK4}
Page 63/257
◼ Description
Timing calculation will get inaccurate if a clock definition is placed in a location where it is not to be used as a
clock (in the case of an ideal clock). Any unused clock definition may result in the increase in the execution
time of the layout tool. No clock should be defined for any signal that is not to be used as a clock. This rule
detects the condition in which create_clock or create_genearated_clock propagates to a pin other than the
clock pin and for unused clocks (that do not propagate to the clock pin of FFs or not referenced by
create_generated_clock/set_input_delay/set_output_delay).
IV1
FF1 FF2
D Q D Q
IV2
CLK CK CK
create_generate_clock
create_clock
GCA Message
CLK_0026:
Clock clock is used as data. One or more sources of the clock fans out to a register data pin or to a
constrained primary output or inout port.
GCA Message
CLK_0021:
Clock clock is not used in this scenario.
*GCA reports that clocks do not propagate to registers with analyze_unclocked_pins command
Page 64/257
ex.)
analyze_unclocked_pins -include {register_disabled unclocked case_disabled}
4. The clock definition is cut along the way and the clock does not propagate to the clock pin
No clock propagates to the clock pin of the FF and thus, the clock resultantly propagates to the data pin of
AND1 and this is detected.
FF
set_case_analysis 0 DATA D1 Q
CK
GATE1
CLK
AND1
create_clock
create_clock -name CLK1 -period 18 -waveform { 0 9 } [get_ports {CLK}]
set_case_analysis 0 [get_ports {GATE1}]
GCA Message
CLK_0021:
Clock ‘clock’ is not used in this scenario.
*GCA reports that clocks do not propagate to registers with analyze_unclocked_pins command
ex.)
analyze_unclocked_pins -include {register_disabled unclocked case_disabled}
Action
IV1
FF1 FF1
D Q D Q
IV2
CLK CK CK
create_generate_clock
create_clock
Confirmation method
●CASE: CLK_0026
<Debug method>
You can check the location of the clock definition by clicking the “Schematic” button in the Violation detail
Window of the GUI.
Check that the relevant clock is stopped according to the design specifications.
Page 65/257
By pressing the ”Schematic” button, the clock definition location can be confirmed on the schematic.
In this case, you can see that the clock is defined on the output pin of the register.
You can check the timing constraints of the clock with “report_clocks”.
ptc_shell> report_clocks POSTCK
Attributes:
p - Propagated clock
G - Generated clock
I - Inactive clock
In addition, when there is a Black Box, there is no timing arc, so the propagation of data signals and clocks
stops there. Therefore, check whether LNK-805 is reported in the GCA / PTC execution log. If this LNK-805 is
reported, there is a library or Netlist shortage or specification error. Check again whether the input file is
complete.
● CASE:CLK_0021
<Debug method>
By clicking the name of the GUI Violation detail Window or the clock name of Master Clock, you can check the
corresponding restrictions. Make sure that the clock is not used in this scenario according to the design
specifications.
Page 66/257
Limitations
CLK_0026 erroneously detects the generated clock which propagates to the data pin of the FF for the clock
divider as a feedback loop because CLK_0026 also detects the non-clock pin to which the clock definition
propagates.
Page 67/257
R0006 Multiple paths exist from the clock pin of a sequential cell to different clock sources
Severity RTL Layout I/F STA IP
n/a Info Info Info
Category □consistency ■semantics □unclear □TDL ■check rule user’s manual
GCA CLK_0024
SpyGlass Clk_Gen06
◼ Description
② If the set_case_analysis constraint is not specified on the select pin of the mux
then the rule will flag
create_clock [get_ports {CLK2}] -name CLK2 -period 10 -waveform { 0 5 }
create_clock [get_ports {CLK3}] -name CLK3 –period 30 –waveform {0 15}
① ②
FF FF
D1 Q D1 Q
CK MUX1 CK
CLK2 net
net1 Z
1
CLK CLK3 S
If the set_case_analysis constraint is not specified on the select pin of the mux then the rule will flag
GCA Message
CLK_0024:
Register Clock pin ‘pin’ has ‘count’ clocks.}.
Since the number of active paths is not fixed at 1, the net that is connected to the clock pin of FF1 is
driven by CLK2 and CLK3. (②)
Analyze_clock_networks command enables a related clock information reference.
ex.)analyze_clock_networks -to FF1/CK
Confirmation method
<Violation>
Register Clock pin 'FF02/CP' has '2' clocks.
<Debug method>
Use the analyze_clock_networks command to check the clock network on pin FF02/CP.
Check if the clock propagation is correct based on the product specifications.
ptc_shell> analyze_clock_networks -to [get_pins FF02/CP] -max_endpoints 1 -style full -end_types {register}
-nosplit
Page 68/257
****************************************
Clock Sense Abbreviations:
P - positive
Clock Network End Type Abbreviations:
REG - register
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source CLK2 (in)
1 P BLK2/MUX01/I0 (library_cell_name)
2 P BLK2/MUX01/Z (library_cell_name)
3 P REG FF02/CP (library_cell_name)
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source CLK3 (in)
1 P BLK2/MUX01/I1 (library_cell_name)
2 P BLK2/MUX01/Z (library_cell_name)
3 P REG FF02/CP (library_cell_name)
GCA Limitations
The value of rule property "max_clocks_per_register" is changed from the initial value of 4 to 1.
This will report CLK_0024 when more than one clock is propagating to the clock pin of the register.
Page 69/257
R0008 A Clock Constraint Is Set to All Register Clock Pins
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA DES_0001
DES_0002
SpyGlass Clk_Gen01a
◼ Description
If there is no clock definition for a register (F/F, RAM, or hardware macro), timing analysis cannot be performed
normally for the paths related to the register.
For this reason, checks are made to make sure that a clock is set for all registers.
FFA
CLK
GCA Message
DES_0001 :
Register clock pin 'FFA/CLK' has no clock signal
CLK
CEN
CGA Message
DES_0002 :
Register clock pin ‘pin’ is disabled due to case values or disabled constraint arcs.
◼ Action
Check if a clock definition is needed for the undefined clock signal that reported the error.
If the clock definition is necessary as a result of the check, correct the SDC.
Confirmation method
■DES_0001
<Violation>
Register clock pin 'FF02/CP' has no clock signal
Page 70/257
<Debub method>
Then use the analyze_clock_netowrks command to see why the clock “CK” is not reaching pin “FF02/CP”.
In this case, you can see that the set_disable_timing is set on the clock network and the signal is blocked.
Check if the set_disable_timing setting is appropriate.
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source CK (in)
1 P CG CGC/CP (library_cell_name)
2 [P,FF] DT#0 CGC/Q (library_cell_name)
3 [P,FF] REG FF02/CP (library_cell_name)
1
Page 71/257
■DES_0002
<Violation>
Register clock pin ‘FF02/CP’ is disabled due to case values or disabled constraint arcs.
* The report is an old message, but the debugging method has not changed.
<Debug method>
First, use the analyze_unclocked_pins command to check the status of pin FF02 / CP.
In this case, you can see that DES_0002 is reported because a Constant logic value is propagated.
Summary
-----------------------------------------------------------------
Register Clock Pin Status Number of Pins
-----------------------------------------------------------------
Clocked 0
Unclocked 0
Case disabled clock pin 1
Register behavior disabled 0
-----------------------------------------------------------------
Total register clock pins 1
Next, use the analyze_path command to check if a constant is propagated to “FF02/CP” pin.
In this case, you can see that the constant set in the route is propagating.
Check if the set_disable_timing setting is appropriate.
gca_shell> analyze_paths -from [get_clocks CK2] -to [get_pins FF02/CP] -traverse_disabled -path_type full
-unconstrained
****************************************
Summary of Paths:
Dominant Overridden Count Clocks
Startpoint Endpoint Constraint Constraints (r,f,R,F) Launch/Capture
--------------------------------------------------------------------------------
CLK2 (in) FF02/CP (library_cell_name)
CASE#0,CASE#1 (2,2,2,2) unclocked/unclocked
CASE#1 = case_value_source
Sources of Case Values
Value: 1 at Pin: CLK2
・DES_0002 detects all timing checks (setup, hold, recovery, removal) and clock pins of cells where the
sequential arc from CK to Q is disabled. For this reason, if the enable pin of the Clock gating cell is fixed to
inactive, all timing checks will be disabled, and will be detected.
Among them, if the case setting is as intended for the pin through which the active clock passes through the
Enable pin of the DES_0002 clock gating cell, judge it as pseudo. You can get a list of pins in the following
ways:
<Use Case>
gca_shell> source EDA16-RELG-T10-D-004_GCA_DES_0002_filter_v2.tcl
gca_shell> get_pseudo_error_of_DES0002
・If there is a false error, the following message and pin name will be reported.
** <INFO> The following clock pin of the ICG cell propagates the clocks to clock out. Only the
setup/hold constraints of EnablePin/TestEnable with the clock pin are disabled. It can be judged as a false
error of DES_0002.
CGC/CPN
・If there are no false errors, nothing is reported.
If the black-box model has no logic description in the library such as IP core or RAM, and the clock attribute is
not attached to the clock pin, it is not possible to detect the leakage of the clock definition for that clock pin.
In STA, such a terminal is not handled as a clock terminal, so there may be a problem with the library.
Page 73/257
R0010 It Is Specified That All Clocks Are Treated as Ideal (before CTS Execution)
Severity RTL Layout I/F STA IP
n/a Error n/a Error
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA CLK_0034
SpyGlass Clk_Gen20
◼ Description
Before CTS execution, the clock tree structure is not fixed. If it is specified that a clock is treated as
propagated, accurate timing analysis cannot be performed and unnecessary timing analysis may be performed.
For this reason, checks are made to make sure that it is specified that all clocks are treated as ideal in pre-
CTS design phases.
When the SDC file contains "set_propagated_clock" as shown below and a template file for the RTL or Gates
(pre-CTS) is used, the following error message is output.
GCA Message
CLK_0034 :
Clock 'CLK' has propagated latency during pre-layout analysis.
SpyGlass Message
Clk_Gen20 Error ./top.sdc 4 10 set_propagated_clock should not be set for clock "CLK" in
synthesis/prelayout script [Also File(Lines): ./top.sdc(xx)]
Action (common)
From the clock definition for which an error is reported, remove the "set_propagated_clock" setting.
Page 74/257
Confirmation method
Use the report_clock command to see the timing constraints that define the reported clock.
An example is shown below.
<violation>
Clock 'CLK' has propagated latency during pre-layout analysi
<constraint>
create_clock -name CLK -period 10 -waveform {0 5} [get_ports CLK]
ptc_shell> report_clock
****************************************
Attributes:
p - Propagated clock
G - Generated clock
I - Inactive clock
You can also view timing constraints by clicking on the clock name in the GUI's ”ViolationBrowser”.
Page 75/257
R0011 It Is Specified That All Clocks Are Treated as Propagated (after CTS Execution)
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA CLK_0033
SpyGlass Clk_Gen10
◼ Description
After CTS execution, the clock tree structure is fixed. Specifying that a clock is treated as propagated makes
it possible to perform timing analysis more accurately. For this reason, checks are made to make sure that it
is specified that all clocks are treated as propagated in post-CTS design phases.
When a clock definition is made, but "set_propagated_clock" is commented out as shown below, and a
template file for Gates (post-CTS) is used, the following error message is output.
GCA Message
CLK_0033:
Clock “clock” has ideal latency during post-layout analysis.
SpyGlass Message
Clk_Gen10 Error ./top.sdc 2 5 set_propagated_clock constraint not set for clock "CLK" in postlayout
analysis
Action (common)
For the clock definition for which an error is reported, set "set_propagated_clock".
Page 76/257
R0012 A Clock Does Not Converge through More Than One Path
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category consistency ◼semantics unclear ◼TDL ◼check rule user's
manual
GCA CLK_0030
SpyGlass Clk_Gen29
◼ Description
If a clock is propagated to a flip-flop (level latch) via more than one path, unintended timing analysis may be
performed.
Prohibited.
GCA Message
CLK_0030 :
There is reconvergent logic in the network for clock 'clk1'.
SpyGlass Message
Clk_Gen29 Warning TEST.sdc 1 10 Same clock CLK11 defined on port/pin "clk1[1]", converges through
different combinational paths [Also File(Lines): TEST.v(12)]
Action
◼ Description
To consider the slew and duty of a clock signal in STA, it is necessary to set the clock to the point at which the
clock signal is generated. Basically, set the clocks to the points listed below. This rule makes a check on
create_clock. No virtual clocks are checked, however.
GCA Message
UDEF_ClockSetPointCheck :
Master Clock 'Clock' is not defined on a port or at the output pin of PLL/OSC(PLL_OSC_inst). Clock is
not defined at a proper point.
Action
Please check if the specified part of the clock reported by UDEF_ClockSetPointCheck is valid.
Confirmation method
<Violation>
A Clock 'NGclk' on 'CFF02/CP' is not defined on a port or at the output pin of PLL/OSC(PLL_OSC_inst). Clock
is not defined at a proper point.
<Constraint>
create_clock -name NGclk -period 10 [get_pins CFF02/CP]
<Debug method>
Attributes:
p - Propagated clock
G - Generated clock
I - Inactive clock
Or, you can check the specified clock point on the GUI's “ViolationBrowser”.
Page 78/257
GCA Limitations
Setting create_clock at the output pin of PLL or OSC causes detection of UDEF_ClockSetPointCheck.
When removing these terminals from detection target, these instances have to be specified for GCA. Please
refer to GCA’s use guide in for more information.
Page 79/257
R0014 Prohibition of overlap between create_clock commands on the same clock network.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency ■semantics □unclear □TDL ■check rule user’s manual
PTC UDEF_TransAnotherClock
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When plural create_clock are set on the same clock network, setting nearer a sequential cell becomes effective.
It should be careful that the clock latency is calculated from each clock setting points. This rule flags message
when plural create_clock are set on the same clock network
This rule does detect any clocks that are specified for the same location with the -add option. It does not take
into account the set_false_path setting between clocks.
FF1
(1) INV1 D Q
CLK CK
① The overlap specify the create_clock on -add with the same clock network
FF1
(1) INV1 D Q
CLK CK
UDEF_TransAnotherClock:
The clock clock1 is defined on the object that is in the transitive fanout of another clock clock2'.
Action
When considering a clock latency from (1) with setting clock at (2), create_generated_clock must be not
create_clock
Confirmation method
<Debug method>
Check the relationship between the two reported clocks.
<violation>
The clock 'clk2' on 'FF01/CP' that is in the transitive fanout of another clock 'CLK_D' on 'MUX01/Z' in the SDC
file '{{/full_path/sdc.tcl 2}}'. Valid clocks are 'n/a'
<constraint>
create_clock -name clk1 -period 10 [get_pins MUX01/Z]
create_clock -name clk2 -period 10 [get_pins FF01/CP]
<Debug method>
Use the analyze_clock_networks command to check the clock reaching "FF01/CP" (clock_source).
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P REG, source
FF01/CP (library_cell_name)
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source MUX01/Z (library_cell_name)
1 P CS FF01/CP (library_cell_name)
Or, enter the command displayed in Violation Details on the GUI's “ViolationBrowser” into the Console.
Page 81/257
Based on this information, consider whether this error is true or false, delete “clk2” (clock), and replace “clk2”
with a generated clock (defined by create_generateed_clock).
Page 82/257
R0016 Clock Waveform Definitions Are Set as Clock Constraints
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
PTC UIC-068
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
If there is an omitted clock waveform definition, timing analysis may be performed with an incorrect clock
waveform. For this reason, checks are made to see if period and waveform are assigned as clock constraints.
When the -period option is not defined in a clock definition as shown below, the following
message is output.
GCA Message
UIC-068:
Warning: The -waveform option for the clock is not specified. A default waveform is assumed. (UIC-068)
This UIC-068 is not a rule reported when performing SDC validation (analyze_design). This rule is reported
when SDC is read. In the case of GUI, it is displayed in UserMessage Browser (CLK_ * etc. are displayed
in Violations Browser). To output this information to a file, set the option -include {user_messages} of the
report_constraint command.
Action
Modify the SDC description to define -period and -waveform for the clock definition for which an error is
reported.
Confirmation method
In order to confirm that there is no -waveform option during SDC verification, UIC-068 must be displayed
(default is hidden). Set “suppress_message UIC-068” in the GCA / PTC execution script.
If the -waveform option is not set, a waveform with a rising edge of 0.0 and a falling edge of 1/2 the period
specified with the -period option is set. You can check the status of the clock with the report_clocks command.
ptc_shell> report_clocks
****************************************
Attributes:
p - Propagated clock
G - Generated clock
I - Inactive clock
UIC-067 and UIC-068 are used when reading SDCs. But these rules are also detected when rule checking
after reading SDCs. So ‘Renesas_sdc_start’ and ‘Renesas_sdc_end’ command are prepared to suppress
messages by their rules. Using these commands before and behind ‘read_sdc’ make suppress detection of
unnecessary message about UIC-067 and UIC-068. Please refer to the following sample to use them.
◼ Description
STA does not calculate the timing while assuming inverted clock source even if there is an inverter in the circuit
between clock-source and generated clock when defining a generated clock with create_generated_clock
command. It detects any inconsistency between the clock polarity in the circuit configuration and the clock
polarity of the generated clock (specified in the -invert option).
CLK
FF0
D Q D Q
INV0 reference waveform by INV0/Z
PI the circuit
Z
waveform by constraint 1
create_clock –name CLK [get_ports PI] FF0/Q
waveform by constraint 2
fig.1 fig.2
The clock waveform of INV2/Z that is expected from the circuit shown in fig. 1 is the "waveform that is expected from the
circuit configuration” shown in fig. 2. Since an inverter exists on the path that runs after the frequency division, the
waveform associated with the constraint 1 differs from the "waveform expected from the circuit configuration" because the
-invert option is not specified.
constraint 1
On the other hand, if setting 'CLK' as source-clock and using '-invert' option like fig.2,
that expects "waveform by constraint 2", it differs from "reference waveform by the circuit".
This constraint causes inconvenience for implementation by logical synthesis and layout tool.
constraint 2
create_generated_clock –name GCK –source [get_ports PI] -divide_by 2 [get_pins FF0/Q] -invert
GCA Message
CLK_0036 :
Generated clock 'clock' has incorrect waveform inversion.
GCA/PTC LIMITATIONS
・CLK_0036 cannot be detected when the -edge option is used to invert the clock waveform (revision request
to Synopsys).
ex) create_clock -name CLK -period 10
create_generated_clock –name GCK –source [get_pins INVO/Z] -edges {3 5 7}
・CLK_0036 does not report for clocks for which CLK_0020 or CLK_0008 is reported.
Page 85/257
Action (common)
Desk check how the clock that is set up in create_clock propagates into the register that generates a generated
clock. If the clock is inverted along the path following the frequency divider circuit, specify the correct clock
polarity using the -invert option.
Therefore, check how the clock set by create_clock propagates to the register that outputs the generated clock,
and specify the -invert option if the clock is inverted in the path after the divider circuit. Set the correct clock
polarity.
Confirmation method
Clock propagation can be checked with the analyze_clock_networks command.
<Violation>
Generated clock 'gclk1' has incorrect waveform inversion.
<Constraint>
create_generated_clock -name gclk1 -divide_by 1 -source [get_ports CLK1] -master_clock [get_clocks CK1]
[get_pins BLK1/FF01/Q] -add -invert
<Debug method>
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source CLK1 (in)
1 P REG BLK1/FF01/CP (library_cell_name)
2 P BLK1/FF01/CP (library_cell_name)
3 R CS BLK1/FF01/Q (library_cell_name)
Or, use the report_clock command to check the clock definition information.
Page 86/257
ptc_shell> report_clock
****************************************
Attributes:
p - Propagated clock
G - Generated clock
I - Inactive clock
◼ Description
Please do not set different constraints from design structure, because it cause unexpected waveform if set
different value with –divide_by option of create_generated_clock command.
If a value different from the division ratio determined by the circuit configuration is set to the -divid_by option
of create_generated_clock, the waveform expected as the device operation cannot be obtained. This is a
pessimistic and optimistic timing check. Furthermore, depending on the conditions, the
create_generated_clock command may fail and the timing check may not be performed. Avoid constraint
settings that are different from the design structure. If the path to the master clock is a combinational circuit, it
is recommended to use the “-combinational” option instead of using “-divide_by 1”.
CLK
FF0
reference waveform
D Q D Q
by the circuit
PI wrong waveform FF0/Q
by constraint 1
wrong waveform
create_clock –name CLK [get_ports PI]
by constraint 2
fig.1 fig.2
When setting create_generated_clock for FF0/Q at fig.1, ‘-divide_by 1’ setting cause wrong
waveform by constraint 1.
Constraint 1
create_generated_clock –name GCK –source [get_ports PI] -divide_by 1 [get_pins FF0/Q]
To get expected waveform same reference waveform by the circuit, set suitable divide ratio to ‘-divide_by’
option as ‘Constraint 2’.
Constraint 2
GCA Message
CLK_0020 :
Generated clock 'clock' has edge relationships with its master clock 'master_clock' that can not be
satisfied. Only paths with 'path_sense' sense exist from the master clock to source pin 'source_pin'.
A 'expected_sense' sense is expected.
Limitations
Even if source-latency-path appoints -divide_by 1 in the case of a combined circuit, GCA cannot detect it.
Page 88/257
Generated clock
FFB
CLK1 CLK
GCA Message
CLK_0020 :
Generated clock 'clock' has edge relationships with its master clock 'master_clock' that can not be
satisfied. Only paths with 'path_sense' sense exist from the master clock to source pin 'source_pin'.
A 'expected_sense' sense is expected.
Setting -divide_by n (n >= 2) when the master pin and the source pin are the same (combinational circuit)
B1
Generated clock
FFB
CLK1 CLK
GCA Message
CLK_0032 :
Non-combinational generated clock 'clock' has a source identical to its master source object.
Action
Desk check the designed frequency division ratio and, when setting the timing constraint, give the same design
frequency division ratio with -divide_by or specify the -combinational option.
If the cycle ratio to the master clock exceeds 1000 times, STA tool signals an error and performs no timing
analysis on the slow clock side. In such a case, specify an appropriate frequency division ratio since the same
design frequency division ratio cannot be set.
Confirmation method
・CLK_0020
Use the report_clock command to check the relationship between the master clock and the generated clock.
You can check the relationship between the generated clock and the master clock using the report_clock
command. In the above example, the report shows that the waveform of “g1” is the same as the waveform of
the master clock “clk1”.
Page 89/257
ptc_shell> report_clock {clk1 g1}
****************************************
Attributes:
p - Propagated clock
G - Generated clock
I - Inactive clock
・CLK_0008
There are multiple paths from the master clock to the generated clock. Verify that the path depth (latency path
is different. For example, the number of cells, for example, the sequential path consisting of FF or the
combinational path of the combinational circuit is close)
****************************************
Clock Sense Abbreviations:
P - positive
R - rise_triggered
Clock Network End Type Abbreviations:
REG - register
CS - clock_source
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 S1 P source CLK1 (in)
1 P REG FF01/CP (library_cell_name)
2 P FF01/CP (library_cell_name)
3 R FF01/Q (library_cell_name)
4 R MUX01/I0 (library_cell_name)
5 E1 R CS MUX01/Z (library_cell_name)
Limitations
To check whether the clock edge which is referenced by a generated clock is reachable from the master
clock, an ordinary 1/2 frequency divider circuit will generate no error when the value specified in -
divide_by is 2*n. (only the rise edge of the master clock can pass through a rise edge triggered FF).
If the frequency divider clock is generated by a counter + clock gating, the clock gating circuit will
generate no error whatever value is specified in the -divide_by option because the edges of all master
clocks can reach the clock generation point.
B1
CLK
CEN
GCLK
Page 92/257
R0020 A Correct Source Clock Is Specified for a Generated Clock
R0020
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
PTC CLK_0016
CLK_0017
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
If there is an error in the source clock description used for generating a generated clock, clock generation may
not be performed as intended by the designer, resulting in incorrect timing analysis being performed. For this
reason, checks are made to see if a correct source clock is specified for a generated clock.
1. If you specify the source of the CLK2 create_generated_clock there is no connection with
the FFB
There is a physical path between the specified point of “CLK2” and the specified point of the generated
clock, but the master clock signal is blocked due to some influence.
Generated clock
FFB
CLK1
GCA Message
CLK_0016 :
Generated clock clock has no source latency path from its master clock master_clock.
Action
Check the generated clock definition for which an error is reported to see whether the source clock is correct.
After checking, modify the SDC description to specify the correct source clock.
Confirmation method
■CLK_0016
<Violation>
Generated clock 'GCLK' has no source latency path from its master clock 'CK1'.
<Constraint>
create_clock -name CK1 -period 20 -waveform {0 10} [get_ports CLK1]
reate_generated_clock -name GCLK -divide_by 4 -source [get_ports CLK1] [get_pins MUX01/Z]
set_case_analysis 1 [get_ports SEL]
<Debug method>
For the reported clock, use analyze_clock_networks to determine the clock propagation path.
Page 93/257
In this case, we can see that there are two paths from the master clock “CK1” to the generated clock “GCLK”.
Of these, the branch 1 path shows that the clock signal stops due to the Constant logic value of the multiplexer
selector pin. Based on this information, the authenticity of the report is determined, and the Constant logic
value is changed.
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 S1 P source CLK1 (in)
1 [P] REG FF01/CP (library_cell_name)
2 [P] FF01/CP (library_cell_name)
3 [R] FF01/Q (library_cell_name)
4 [R] MUX01/I0 (library_cell_name)
5 E1 [R] CS, COND#0 MUX01/Z (library_cell_name)
Limitations
“No topological connection” is the reason for reporting CLK_016. Since there is no clear debugging method
in this case, a debugging method is currently being developed by Synopsys.
STAR 9001194921: (CLK_0016) Enhance Debug and violation section - No topological connection case
In the case of “No topological connection”, the clock may be blocked in the timing path.
Therefore, find “Internal clock break points” with the analyze_clock_networks command.
sample:
clk (port) ---|>--U8(buff)----------|>---U9(Black_box)---->Flop---(Gen_clock definition)---->
This analyze_clock_network command finds where the master clock clk is stopped.
At this time, by setting the option -end_types internal_end, you can report where the clock stops.
Page 95/257
ptc_shell> analyze_clock_networks -from [get_ports clk] -end_types internal_end
****************************************
Clock Network End Type Abbreviations:
I - internal_end
End
Example End Pin/Port Type Clocks Count
--------------------------------------------------------------------------------
U8/Z (IV) I set 0 1
Clock Sets:
set 0 (1 clocks):
clk - positive
From this report we can see that the master clock clk stops at “U8/Z” pin.
Then find the cell connected to that “U8/Z” pin.
In this case, since the clock is propagated up to cell “U8”, it turns out that the problem is in cell “U9”.
Since cell “U9” is a block box cell, the timing arc has disappeared, so the clock propagation has also stopped.
Related message
If CLK2 with no FFB connection is specified as the source of create_generated_clock, and there is no physical
path between the specified point of CLK2 and the specified point of the generated clock, CLK_0017 is reported.
Generated clock
FFB
CLK1
FFA
CLK2
GCA/PTC MESSAGE
CLK_0017 :
The master source of generated clock clock is not in the fanin of the generated clock source pin.
Limitations
In the rule set (before V02.01.01), CLK_0017 is not enabled_rule. Switch enable / disable by the following
method as required.
〈設定例〉
ptc_shell> enable_rule CLK_0017
ptc_shell> set_rule_severity error CLK_0017
ptc_shell> analyze_design
Page 96/257
R0023 There Is One Delay Calculation Path for a Generated Clock
Severity RTL Layout I/F STA IP
n/a Warning Warning Error
Category consistency semantics unclear TDL ◼check rule user's manual
PTC UDEF_GclockMultiDelayCalcPathCheck
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When a generated clock is set, the latency (delay for the original clock) is automatically calculated. If there are
multiple paths for calculating the latency, an unintended clock latency is calculated. A path through an F/F is
also considered. Design the circuit so that there is one path for a generated clock.
In the circuit in the figure below, there are <1> and <2> as latency calculation paths for generated clock GCLK.
<1>
GCLK
create_geneated_clock
–source [get_ports CLK]
CLK <2>
–divideby 2
GCA Message
UDEF_GclockMultiDelayCalcPathCheck:
Generated Clock 'gen_clk' in the SDC file 'SDCfile', has multiple paths to its master clock 'master_clk'.
Action
set_disable_timing
GCLK
create_geneated_clock
–source [get_ports CLK]
CLK –divideby 2
Confirmation method
<Violation>
Generated Clock 'CLK_D' in the SDC file '{/full_path/sdc.tcl 9}', has multiple paths to its master clock 'CLK'.
Page 97/257
<Constraint>
create_clock -name CLK -period 10 -waveform {0 5} [get_ports CLK]
create_generated_clock -name CLK_D -divide_by 4 -source [get_ports CLK] [get_pins MUX01/Z]
<Debug method>
To check the unnecessary path, check the path from CLK (master_clk) to CLK_D (gen_clk).
As indicated by the violation message, there are multiple routes (Branch0 and Branch1) from CLK to CLK_D,
and Branch0 is reconverged.
Check if this clock definition is valid.
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 S1 P source CLK (in)
1 P REG CFF01/CP (library_cell_name)
2 P CFF01/CP (library_cell_name)
3 R CFF01/Q (library_cell_name)
4 R REG CFF02/CP (library_cell_name)
5 R CFF02/CP (library_cell_name)
6 R CFF02/Q (library_cell_name)
7 R MUX01/I1 (library_cell_name)
8 E1 R CS MUX01/Z (library_cell_name)
Or you can check it with Schmatic by executing the above command in Console of GUI.
Page 98/257
After execution, you can see the clock propagation and two paths in Schmatic.
GCA/PTC LIMITATIONS
◼ Description
When set_clock_latency is not set, the layout tool sets the default value (0ns) to the clock
propagation delay value. Therefore, it reports on the clock pin to which set_clock_latency is not set so that the
designer may judge the necessity of the setting of set_clock_latency.
set_clock_lat
ency setting
point(clock The clock latency reach
buufer output the clock pin.
pin)
l1 l3
CK
Z
l2 l4
CLK CK
Z
GCA Message
CNL_0005 :
All register clock pins in the fanout of 'object' have no clock latency for clock 'clock'.
Action
◼ Description
Since virtual clocks usually correspond to real clocks, latency should be set. If Latency is not set, input or
output timing calculations related to the virtual clock may be inaccurate. This rule detects a virtual clock that
has no set_clock_latency specified or has a source latency/network latency of 0.
GCA Message
UDEF_VclkSrcLatencyCheck:
Virtual Clock 'Clock' has no/partial source latency defined.
GCA Message
UDEF_VclkSrcLatencyCheck:
Virtual Clock 'Clock' in the SDC ('SDCfile') has no/partial source latency defined.
◼ Action
Specify a value greater than 0 for the latency value specified with the set_clock_latency command.
* Negative values cannot be specified for the Latency value. If specified, UIC-028 is reported in the log. please
check the log file.
Warning: Negative clock latency specified: -1 (UIC-028)
Page 101/257
Confirmation method
Please check clock latency with report_clock command.
You can check the clock latency value using the report_clock command for the current value.
<Violation>
Virtual Clock 'VClk' in the SDC ('/full_path/sdc.tcl') has no/partial source latency defined.
<Constraint>
create_clock -name VClk -period 10 -waveform { 0 5 }
set_clock_latency -source 0 {VClk}
<Debug method>
The same message is displayed when the latency is not specified for the virtual clock, but if you check with
the report_clock command, an empty report is displayed.
<Violation>
Virtual Clock 'VClk' in the SDC ('/full_path/sdc.tcl') has no/partial source latency defined.
<Constraint>
create_clock -name VClk -period 10 -waveform { 0 5 }
# set_clock_latency -source 0 {VClk}
<Debug method>
Limitations
If it falls under "2.No latency specified for virtual clock", report_clock -skew will not report the virtual clock.This
is because the clock latency value for the virtual clock is not set by default.Check the design specifications to
see if the latency value is required for the virtual clock for which UDEF_VclkSrcLatencyCheck is reported.
◼ Description
When latency is defined, different specifications can be defined for early and late conditions. If only either of
these conditions is defined, necessary timing analysis may not be performed because latency is not considered
for the undefined condition.
For this reason, checks are made to see if constraints supposed to be paired are defined in latency definition.
When only -early is valid and -late is invalid in "set_clock_latency" as shown below, an error related to this rule
is detected.
set_clock_latency -source -early 5.432 [get_clocks {CLK}]
# set_clock_latency -source -late 6.789 [get_clocks {CLK}] ←no constraint
GCA Message
CNL_0005 :
All register clock pins in the fanout of 'pin' have no clock latency for clock 'clock'.
Action
Check the latency definition for which an error is reported to see whether the insufficient condition definition is
required.
After checking, if the definition is required, modify the SDC description.
Confirmation method
Limitations
◼ Description
In Front-end design, an ideal clock is set. At this time, the clock path delay is 0 by default. Actually, a delay is
also generated on the clock path, so any problem with timing caused by the clock path delay cannot be
analyzed. For this reason, set a clock delay for all clocks including generated clocks as an estimated value.
GCA Message
CNL_0005 :
All register clock pins in the fanout of 'object' have no clock latency for clock 'clock'.
CSL_0004
Generated clock 'clock' master clock 'master_clock' is not propagated and has zero or incomplete
source latency values.
Page 104/257
R0029The Source Latency Is Set for a Generated Clock. (Before CTS)
R0029
Severity RTL Layout I/F STA IP
n/a Info n/a n/a
Category consistency ◼semantics unclear TDL check rule user's manual
PTC CSL_0004
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
In Front-end design, an ideal clock is set. At this time, the source latency (delay up to the generated clock
setting pin) is 0 for a generated clock. Actually, a delay is also generated on the clock path, so any problem
with timing caused by the generated clock delay cannot be analyzed. For this reason, set the source latency
for the generated clock as an estimated value.
Source latency
GCA Message
CSL_0004:
Generated clock 'clock' master clock 'master_clock' is not propagated and has zero or incomplete
source latency values.
Page 105/257
R0030 set_clock_transition should not be set on clock in postlayout (After CTS)
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
PTC CTR_0006
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The Clk_Trans11 rule flags set_clock_transition constraints set on clocks in the postlayout phase.
In post-layout, transition values are supposed to be computed through the clock network.
If you specify set_clock_transition, it directly annotates the transition value on the clock terminal of the register,
which could be different. from what will actually propagate.
* Due to the low usage frequency, the Renesas recommended rules are currently not supported.
clk
create_clock
setting point
GCA Message
CTR_0006 :
Clock clock has clock transition values in post-layout.
Page 106/257
R0031 Clock transition value set by using set_clock_transition is outside technology bounds
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
PTC TRN_0001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When clock transition value is set out of tolerance level of library or technology, chip implementation becomes
difficult. Therefore, the set_clock_transition should have suitable value.
clk
create_clock
setting point
GCA Message
TRN_0001 :
The transition constraint on 'object_type’ ‘object' is larger than the maximum transition design rule.
◼ Action
Specify a clock transition value that is smaller than the maximum transition value defined in the library definition.
Confirmation method
Check whether the value specified in the timing constraint is correct.
<Violation>
The transition constraint on 'pin' 'CFF01/CP' is larger than the maximum transition design rule.
<Constraint>
set_annotated_transition 5 [get_pins CFF01/CP]
<Debug method>
Page 107/257
You can check the “value defined in the library” and “specified value of set_annotated_transition” of the pin
reported by ViolationBrower of GUI.
◼ Description
In Front-end design, an ideal clock is set. At this time, the transition time of a clock signal is 0 (ideal
waveform) by default. Actually, a transition time is generated for the clock signal, so any problem with timing
caused by the slew cannot be analyzed. For this reason, set a clock transition time for all clocks including
generated clocks as an estimated value.
Due to the low usage frequency, the Renesas recommended rules are currently not supported.
GCA/PTC MESSAGE
CTR_0005 :
Clock 'clock' has no clock transition values in pre-layout.
◼ Action
Limitations
<violation>
Clock 'CLK' has no clock transition values in pre-layout.
<constraint>
create_clock -name CLK -period 10 -waveform {0 5} [get_ports CLK]
Page 109/257
◼ Description
If "set_clock_uncertainty" corresponding to a clock constraint is not defined, EDA tools do not take jitter
into account. So, necessary timing analysis may not be performed.
For this reason, checks are made to see if "set_clock_uncertainty" is defined for each clock constraint.
When an SDC description contains only a clock definition, and does not contain "set_clock_uncertainty"
as shown below, the following message is output. Targets of this rule are both of simple uncertainty and
interclock uncertainty.
GCA Message
UNC_0003 :
Clock uncertainty is incomplete or incorrect between two interacting clocks 'clock1' and 'clock2'’
Action
Check the clock definition for which an error is reported to see whether a jitter definition is required.
After checking, if a jitter definition is required, modify the SDC description.
◼ Confirmation method
Use the report_clock command to check the uncertainty of the reported clock.
<Violation>
Clock uncertainty is incomplete or incorrect between two interacting clocks 'CLK' and 'CLK'
<Constraint>
set_clock_uncertainty -hold 0.2 -from [get_clocks CLK] -to [get_clocks CLK]
If you look at the report of the report_clock command, you can see that the Uncertainty between clocks is
specified as the Uncertainty on the Hold side, and the value on the Setup side is not specified.
Hold Setup
rise-rise 0.20 -
rise-fall 0.20 -
fall-rise 0.20 -
fall-fall 0.20 -
◼ Limitations
・UNC_0003 also detects when set_clock_uncertainty is not set or the set value is 0.
・Check specification change of UNC_0003 is changed in the rule set (RenesasCommonRule_IP / Layout /
STA).
<Settings>
If you are using a ruleset, you do not need to set this variable.
set_rule_property suppress_violations_for_incorrect_uncertainty true UNC_0003
<Specification change>
In addition to the normal check, by default (when the above variable is false), set_clock_uncertainty setup
and also check the size of hold (if setup value> hold value). This rule check is excluded when using rule sets.
Page 111/257
R0035 Confirm the lack of conditions in the definition of uncertainty
Severity RTL Layout I/F STA IP
n/a Warning Warning Error
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA/PTC UNC_0003
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When uncertainty is defined, different specifications can be defined for setup and hold conditions. If only
either of these conditions is defined, necessary timing analysis may not be performed because uncertainty is
not considered for the undefined condition.
For this reason, checks are made to see if constraints supposed to be paired are defined in uncertainty
definition. Targets of this rule are both of simple uncertainty and interclock uncertainty
This rule detects the case in which latency is set for any object other than the clock objects.
GCA Message
UNC_0003 :
Clock uncertainty is incomplete or incorrect between two interacting clocks clock1 and clock2
Action
Check the uncertainty definition for which an error is reported to see whether the insufficient condition definition
is required.
After checking, if the definition is required, modify the SDC description.
◼ Confirmation method
Use the report_clock command to check the uncertainty of the reported clock.
One sample:
<Violation>
Clock uncertainty is incomplete or incorrect between two interacting clocks 'CLK' and 'CLK'
<Constraint>
set_clock_uncertainty -hold 0.2 -from [get_clocks CLK] -to [get_clocks CLK]
If you look at the report of the report_clock command, you can see that the Uncertainty between clocks is
specified as the Uncertainty on the Hold side, and the value on the Setup side is not specified.
Hold Setup
rise-rise 0.20 -
rise-fall 0.20 -
fall-rise 0.20 -
fall-fall 0.20 -
GCA Limitations
UNC_0003 checks any valid timing paths. In addition, the rule property
suppress_violations_for_incorrect_uncertainty is set to true to suppress the magnitude relation check between
setup and hold.
・UNC_0003 also detects when set_clock_uncertainty is not set or the set value is 0.
・Check specification change of UNC_0003 is changed in the rule set (RenesasCommonRule_IP/Layout/ STA).
<Settings>
If you are using a ruleset, you do not need to set this variable.
set_rule_property suppress_violations_for_incorrect_uncertainty true UNC_0003
<Specification change>
In addition to the normal check, by default (when the above variable is false),
set_clock_uncertainty setup and also check the size of hold (if setup value> hold value). Use rulesets
If you're excluding this size check.
Page 113/257
R0056 set_input_transition must be defined on clock ports in postlayout stage (After CTS)
Severity RTL Layout I/F STA IP
n/a Info Error Info
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA/PTC DRV_0001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The Clk_Trans07 rule flags primary clock ports (specified using the create_clock constraint) without
set_input_transition constraint set in the post-layout phase.
In post-layout, the clock transition and delay values are propagated through the network. Therefore, transition
values should be defined at the input port, so that the values may be propagated across the clock network.
clk
create_clock
setting point
GCA Message
DRV_0001 :
Input/inout port 'port' has no input transition or driving cell or drive resistance specified.
Limitations
DRV_0001 also detects undefined conditions for input ports other than clock ports and input/output ports.
Page 114/257
R0099 Prohibition of specification for clock definition to the select pin of MUX
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC UDEF_definedClockMuxSelPin
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
Usually, signals which goes via control pin of MUX does not become clocks.
FFA
If clock is set at a control signal of MUX on the following circuit, the following message appears.
SEL
GCA Message
UDEF_definedClockMuxSelPin
The clock 'clock' is passed on the MUX select pin 'select_pin'. This clock is set in the SDC file'SDCfile'.
Please analyze w/ analyze_clock_network -from 'clock_name' -style full.
Action
Please visually confirm whether clock definition is wrong or not to repair clock source if it’s a setting mistake.
Page 115/257
◼ Confirmation method
<Violation>
The clock 'clk1' is passed on the MUX select pin 'MUX01/S'. This clock is set in the SDC file'{{/full_path/sdc.tcl
3}}'. Please analyze w/ analyze_clock_network -from 'clk1' -style full.
<Constraint>
create_clock -name clk1 -period 10 -waveform {0 5} [get_ports SEL]
<Debug method>
As indicated by the violation message, the clock has reached the multiplexer selector pin "MUX01/S".
If you want to check details, you can use the analyze_clock_network command to check the status of the clock
network where clock clk1 reaches pin "MUX01/S".
ptc_shell> analyze_clock_network -from [get_clocks clk1] -through [get_pins MUX01/S] -style full
****************************************
Clock Sense Abbreviations:
P - positive
P,N - positive, negative
Clock Network End Type Abbreviations:
CS - clock_source
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source SEL (in)
1 P MUX01/S (library_cell_name)
2 P,N CS MUX01/Z (library_cell_name)
Or, you can check with “Schematic” by entering the above command in the “Console” of the GUI.
Page 116/257
R0112 A Clock Does Not Converge through More Than One Path.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category ■consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC CLK_0020
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
STA does not calculate the timing while assuming inverted clock source even if there is an inverter in the circuit
between clock-source and generated clock when defining generated clock with create_generated_clock
command.
Notice: ‘-invert’ option of create_generated_clock command is used to invert the polarity of the generated clock.
CLK
FF0
D Q D Q INV0/Z
INV0 reference waveform by
PI the circuit
Z
waveform by constraint 1 FF0/Q
create_clock –name CLK [get_ports PI]
waveform by constraint 2
fig.1 fig.2
The divided clock at FF0/Q at fig.1 expects “reference waveform by the circuit" at fig.2. We must set clock-source to
"INV0/Z" which inverts CLK, not "CLK", when defining divided clock synchronized in the falling edge at the FF0/Q (Refer
to constraint 1). This setting makes "waveform by constraint 1" same as “reference waveform by the circuit".
constraint 1
On the other hand, if setting 'CLK' as source-clock and using '-invert' option like fig.2,
that expects "waveform by constraint 2", it differs from "reference waveform by the circuit".
This constraint causes inconvenience for implementation by logical synthesis and layout tool.
constraint 2
create_generated_clock –name GCK –source [get_ports PI] -divide_by 2 [get_pins FF0/Q] -invert
GCA Message
CLK_0020 :
Generated clock 'clock' has edge relationships with its master clock 'master_clock' that can not be
satisfied. Only paths with 'path_sense' sense exist from the master clock to source pin 'source_pin'.
A 'expected_sense' sense is expected.
Action
Please visually confirm how clock set by create_clock propagate at FFs that output generated clock. Then use
the output of the last stage inverter which inverts clock as clock source for generated clock if inverted clock
propagate. Use the -edges option as follows:
R0119 Wildcard Which Matches Object Besides Clock Is Prohibited for set_clock_latency
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC UIC-002
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
PrimeTime applies clock latency to any valid clock-sources specified by ‘*’. ICC(DC: Design Compiler ) does
not apply clock latency to any clock-source or non-clock source specified by ‘*’. This causes discrepancy
between PrimeTime and ICC(DC) timing results.
This rule detects the case in which latency is set for any object other than the clock objects.
GCA/PTC MESSAGE
UIC-002:
Unable to set %s on '%s'; %s.
ex)
Unable to set clock source latency on 'C1/Y'; the object is not a clock source.
◼ Action
Define the clock name and pin / pin name directly for the object specified by the set_clock_latency command,
without using the wild card ‘*’.
The set_clock_latency command defines the time required for propagation from the clock setting location to
the clock pin from the clock setting location to the first sequential cell as the clock source latency as the clock
source latency and the clock network latency depending on the specified location. Check the design
specifications.
The following is an example of clock source latency.
create_clock -period 10 -waveform {1 6} -name CK1 [get_ports CLK1]
create_clock -period 10 -waveform {2 7} -name CK2 [get_pins C2/Y]
create_clock -period 10 -waveform {3 8} -name CK3 [get_pins C3/Y]
set_clock_latency -source 2.0 [get_clocks CK1]
set_clock_latency -source 2.0 [get_clocks CK2]
set_clock_latency -source 2.0 [get_clocks CK3]
Page 118/257
◼ Confirmation method
You can check the timing constraints reported by “UserMessageBrowser” in the GUI.
Or, the corresponding object can be confirmed in the log with the following message.
source ./sdc.tcl
Error: Unable to set clock source latency on 'CINV01/ZN'; the object is not a clock source. (UIC-002)
Error: Unable to set clock source latency on 'CINV02/ZN'; the object is not a clock source. (UIC-002)
Error: Unable to set clock source latency on 'CINV03/ZN'; the object is not a clock source. (UIC-002)
Page 119/257
R0120 Prohibition of specification of a clock port for a set_clock_uncertainty multi-clock
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC UDEF_clock_uncertainty_mux
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
PrimeTime and ICC(DC) may use different clock uncertainty set on clock ports for a convergence clock from
multiple clocks. This causes discrepancy between PrimeTime and ICC(DC) timing results.
GCA Message
UDEF_clock_uncertainty_mux:
set_clock_uncertainty is wrongly set point at 'clockpin_source'. Because the multiple
clocks('converged_clocks') are converged at the instance ('instance'). Please each clock is set
"set_clock_uncertainty [get_clocks 'clock']".
Action
◼ Confirmation method
<Violation>
Violation 1: set_clock_uncertainty is wrongly set point at 'CLK2'. Because the multiple clocks('CK2 CK1') are
converged at the instance ('MUX01'). Please each clock is set "set_clock_uncertainty [get_clocks 'CK2']".
Violation 2: set_clock_uncertainty is wrongly set point at 'CLK1'. Because the multiple clocks('CK2 CK1') are
converged at the instance ('MUX01'). Please each clock is set "set_clock_uncertainty [get_clocks 'CK1']".
<Constraint>
create_clock -name CK1 -period 10 -waveform {0 5} [get_ports CLK1]
create_clock -name CK2 -period 20 -waveform {0 10} [get_ports CLK2]
set_clock_uncertainty 1 [get_ports CLK1]
set_clock_uncertainty 2 [get_ports CLK2]
<Debug method>
Page 120/257
You can check the part reported by “ViolationBrowser” of GUI and the description of the corrective action.
GCA Limitations
R0124 A generated clock that has two or more clock sources with branches must not be present
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC UDEF_UndefinedPartClockGene
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When there are more than one clock source with branches, OCV timing analysis calculates the generated
clock constraints pessimistically. A common point is searched every clock object, and source point outside the
course is also analyzed. Therefore, OCV timing analysis becomes pessimistic at the following case. Because
GCK1 set at I4/Z outside clock course is also considered and common point I2/Y is used when analyzing the
path from F2 to F3.
F2
GCK0
GCK1
F3
GCK2
I5 I6
F1
I1 I2 I3 I4
clk
GCA Message
UDEF_UndefinedPartClockGene
Mismatch between generated clock definitions at pin from_pin -> to_pin and potential master clocks.
Clock name : clock
Action
1. Rename GCK1, which the clock set as more than one points(I2/ZY、I4/Z), to handle as different clocks.
create_generated_clock -divide_by 1 -name GCK1_1 ¥
-source [get_pins {I1/Z}] [get_pins {I2/Z}] -master_clock GCK0 –add
create_generated_clock -divide_by 1 -name GCK1_2 ¥
-source [get_pins {I1/Z}] [get_pins {I4/Z}] -master_clock GCK0 –add
◼ Description
If there are two or more locations that will serve as master clocks with a generated clock constraint, a generated
clock is set two or more master clocks, resulting in an unclear generated clock definition unless the --
master_clock option is specified. This condition is therefore inhibited.
This rule checks that no master clock is explicitly specified with the -master_clock option when there are two
or more locations that will serve as master clocks with a generated clock constraint.
FF1
CLK
GCA Message
CLK_0004
Mismatch between generated clock definitions at pin_or_port and potential master clocks.
Action
Use the -master_clock option to create_generated_clock command to define the master clock.
◼ Confirmation method
<violation>
Mismatch between generated clock definitions at ' FF01/Q ' and potential master clocks.
<constraint>
create_clock -name CLK_33 -period 33 [get_ports CLK1]
create_clock -name CLK_48 -period 48 [get_ports CLK1] -add
create_generated_clock -name CLK_DIV2 -divide_by 2 -source [get_ports CLK1] [get_pins FF01/Q]
Check the relationship between the master clock and the generated clock on the GUI ViolationBeroser.
In this case, the master clock of the generated clock “CLK_DIV2” is automatically set to “CLK_33”, which has
a faster clock.
To prevent automatic interpretation by the tool in this way, define a master clock for the generated clock
“CLK_DIV2”.
Page 123/257
◼ Description
If the section that is to be the master clock of the generated clock constraints there is more than one, you can
detect when you have not set the clock derived constraints to the master clock of all. Sealing the clock
constraint at the specified -master_clock options.
FF1
CLK
GCA Message
CLK_0004
Mismatch between generated clock definitions at pin_or_port and potential master clocks.
Confirmation method
<violation>
Mismatch between generated clock definitions at 'FF01/Q' and potential master clocks.
<constraint>
create_clock -name CLK_33 -period 33 [get_ports CLK1]
create_clock -name CLK_48 -period 48 [get_ports CLK1] -add
create_generated_clock -name CLK_33_DIV2 -master_clock CLK_33 -divide_by 2 ¥
-source [get_ports CLK1] [get_pins FF01/Q] -add
Check the relationship between the master clock and the generated clock on the GUI “ViolationBeroser”.
In this case, the master clock of the generated clock “CLK_DIV2” is automatically set to “CLK_33”, which has
a faster clock.
To prevent automatic interpretation by the tool, define all master clocks for the generated clock “CLK_DIV2”.
GCA Limitations
◼ Description
Specified after the create_clock/create_generated_clock command is enabled, without any warning message
output ICC, PrimeTime to command -name options in duplicate. However, the ban for the intentions of the
constraints is difficult to understand.
Explanation
create_clock -name CLK -period 10 [get_ports P3]
GCA Message
UIC-034
Redefining clock '%s'. %s
ex)
Redefining generated clock create_clock_name. Previously defined at: SDCfile, line lineNo
UIC-065
Redefining generated clock '%s'. %s
ex)
Redefining generated clock generated_clock_name. Previously defined at: ‘SDCfile, line lineNo
Action
Remove the duplicate clock name for the clock definition for which this message was reported.
Confirmation method
◼ Description
When the skew between clocks and the skew of a clock are set as the same pin, port or clock, set a large
value to the way of the skew between clocks by set_clock_uncertainty.
The in phase clock, or the clock between different frequency is not subject to check by the rule.
FFA FFB
Q DATA Q
DIN DATA
CLK1
①The skew between clocks should be larger than the simple clock skew.
create_clock -name "clk1" -period 10 [get_ports CLK1]
set_clock_uncertainty 0.5 -from [get_clock clk1] -to [get_clock clk1] ・・・ constraint A
set_clock_uncertainty 0.6 [get_clock clk1] ・・・ constraint B
Regarding the "constraint A" and "constraint B", if the skew value of "constraint B" is larger than the skew
value of "constraint A" the GCA reports following message.
Min Rise Min Fall Max Rise Max Fall Hold Setup Related
Object Delay Delay Delay Delay Uncertainty Uncertainty Clock
-----------------------------------------------------------------------------------------------
clk1 - - - - 0.60 0.60 --
constraint B
From To Hold Setup
Object Object Uncertainty Uncertainty constraint A
-----------------------------------------------------------------------------------------------
clk1 clk1 0.50 0.50
GCA Message
UNC_0004
Inter-clock uncertainty is smaller than simple uncertainty for clock X.
Page 128/257
Action
Set the skew value of "constraint A" to the value exceeded in the skew value of "constraint B".
“Value of constraint A” >= “Value of constraint B”
Limitations
In the following case, a path which is set by set_false_path is also checked by the rule.
A port is defined as a clock and the port is specified by "-from" of set_false_path.
(GCA does not regard the path as a false path.)
②The skew between clocks should be larger than the clock skew of pin/port.
create_clock -name "clk1" -period 10 [get_ports CLK1]
set_clock_uncertainty 0.5 -from [get_clock clk1] -to [get_clock clk1] ・・・ constraint A
set_clock_uncertainty 0.6 [get_ports CLK1] ・・・ constraint B
Regarding the "constraint A" and "constraint B", if the skew value of "constraint B" is larger than the skew value
of "constraint A" the GCA reports following message.
Min Rise Min Fall Max Rise Max Fall Hold Setup Related
Object Delay Delay Delay Delay Uncertainty Uncertainty Clock
-----------------------------------------------------------------------------------------------
CLK1 - - - - 0.60 0.60 --
GCA Message
UNC_0005
Inter-clock uncertainty is smaller than object based uncertainty at pin/port for clock X.
Action
Set the skew value of "constraint A" to the value exceeded in the skew value of "constraint B".
Limitations
In the following case, a path which is set by set_false_path is also checked by the rule.
A port is defined as a clock and the port is specified by "-from" of set_false_path.
(GCA does not regard the path as a false path.)
③The skew of a clock network should be the same as the clock of a pin/port or larger.
create_clock -name "clk1" -period 10 [get_ports CLK1]
set_clock_uncertainty 0.5 [get_port CLK1] ・・・ constraint A
set_clock_uncertainty 0.6 [get_clocks clk1] ・・・ constraint B
Regarding the "constraint A" and "constraint B", if the skew value of "constraint B" is larger than the skew value
of "constraint A" the GCA reports following message.
Min Rise Min Fall Max Rise Max Fall Hold Setup Related
Object Delay Delay Delay Delay Uncertainty Uncertainty Clock
-----------------------------------------------------------------------------------------------
clk1 - - - - 0.60 0.60 --
CLK1 - - - - 0.50 0.50 --
constraint B
constraint A
UNC_0006
Object-based uncertainty at pin/port is smaller than simple uncertainty for clock X.
◼ Action
Set the skew value so that the value of Constraint A is greater than or equal to Constraint B.
- “Value of constraint A” >= “Value of constraint B”
Limitations
In the following case, a path which is set by set_false_path is also checked by the rule.
A port is defined as a clock and the port is specified by "-from" of set_false_path.
(GCA does not regard the path as a false path.)
Page 130/257
R0136 Specified point should not be set to jump over the frontward of the generated clock
definition
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category consistency ◼semantics unclear TDL check rule user’s manual
GCA/PTC UDEF_JumpGclkForSourcePin
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
Previously PrimeTime 2014.12-SP3-1, if multiple generated clocks are defined on the basis of the same master
clock, and the source point of the latter stage of the generated clock is set to jump the generation portion of
the front of the generated clock, clock information is updated incrementally, CRPR (pessimism removal of the
common clock path) was possible to be an incorrect.
Therefore, please do not specify the source point of the generated clock skips the generation position of the
other generated clock. This problem has been fixed in the PrimeTime 2015.12-SP1.
GCK0
GCK1
GCK1
F2
GCK0
F1
GCK0 clock source I3 I4
latency
clk
CLK GCK1 clock source
latency
GCA/PTC MESSAGE
UDEF_JumpGclkForSourcePin
Multiple generated clocks Gclk2 and Gclk3 based on same master clock Mclk are connected serially and
it's based on the same source point. The latter stage of the generated clock should be based on the previous
stage of the generated clock.
Action
Limitations
1) This rule does not consider other timing constraints. So, it verifies false path between clocks specified in
set_false_path command.
2) This rule is verify physical connection there is no path at the source point of the master clock and the
specified generation portion of the generated clock.
Page 131/257
3) This rule does not take into account the contradiction of -source option and -master options.
Therefore, to verify even if there is a difference “-source <point>” and “-master <clock-name>”.
◼ Confirmation method
amaYou can check whether the message is a pseudo error corresponding to restrictions (1) and (2) using the
following procedure.
In the following example, there is no physical path, so it can be determined as a false error.
****************************************
No Valid Paths. ⇐ No path. In this case, it can be judged as a pseudo error.
Page 132/257
◼ Description
Although different specifications can be defined for pairs of min and max conditions, early and late conditions,
and setup and hold conditions, if only one item of a pair is defined, the tool may not be able to perform
necessary timing analysis because it does not take the the undefined condition into consideration. This rule is
therefore used to check whether the constraints supposed to be paired are defined.
Target options:
⚫ -early / -late
⚫ -rise / -fall
⚫ -min / -max
⚫ Valid combinations of the above
GCA Message
CNL_0005 :
All register clock pins in the fanout of 'object' have no clock latency for clock 'clock'.
Action
Check whether it is necessary to define the missing conditions for the latency for which the error is reported.
If a definition proves necessary as the result of the check, modify the SDC.
GCA Limitations
◼ Description
Although different specifications can be defined for pairs of min and max conditions, early and late conditions,
and setup and hold conditions, if only one item of a pair is defined, the tool may not be able to perform
necessary timing analysis because it does not take the the undefined condition into consideration. This rule is
therefore used to check whether the constraints supposed to be paired are defined.
Target options:
⚫ -hold / -setup
⚫ -rise / -fall
⚫ Valid combinations of the above
GCA Message
UNC_0003 :
Clock uncertainty is incomplete or incorrect between two interacting clocks 'clock1' and 'clock2'
Action
Check whether it is necessary to define the missing conditions for the uncertainty for which the error is reported.
If a definition proves necessary as the result of the check, modify the SDC.
GCA Limitations
UNC_0003 checks not only for missing uncertainty between clocks but also the magnitude relation between
setup and hold; it detects the case in which the setup side value > hold side value.
・UNC_0003 also detects when set_clock_uncertainty is not set or the set value is 0.
・Check specification change of UNC_0003 is changed in the rule set (RenesasCommonRule_IP/Layout/STA).
<Settings> If you are using a ruleset, you do not need to set this variable.
set_rule_property suppress_violations_for_incorrect_uncertainty true UNC_0003
<Specification change> In addition to the normal check, the default (when the above variable is false) also
checks the set_clock_uncertainty setup and hold relationship (if the value on the setup side is greater than the
value on the hold side). This rule check is excluded when using rule sets.
Page 134/257
R0139 Generated Clocks from the same master clock must be declared exclusive
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to detect excessive constraints on the set_clock_groups command.
As a rule of SDC, clocks generated from the same master clock are treated as exclusive (meaning that all
clocks other than their own clocks or clocks specified in the same group are excluded).
Therefore, it is possible to delete the constraints for which this rule is output.
Cases in which clocks generated from the same master clock are set in an exclusive
relationship
GCA/PTC MESSAGE
CGR_0001:
Clocks generated from the same master clock master_clock are declared as asynchronous.
◼ Action
In the above example, “set_clock_groups -name CG1 -asynchronous -group {GCLK1} -group {GCLK2}” is
deleted, or multiple generated clocks are not generated from the same master clock MCLK.
Page 135/257
R0140 The definition of clock exclusive relationship between parent and child clocks should be
eliminated due to over-setting.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0002
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to detect illegal restrictions on the set_clock_groups command.
As an SDC rule, you cannot set an exclusive relationship between clocks in a parent-child relationship.
Therefore, it is necessary to review the constraints for which this rule is output.
◼ Sample circuit configuration and constraints
In this example, the generated clock GCLK1 is generated from the master clock MCLK. In such a case,
MCLK and GCLK1 have a parent-child relationship and are detected by this rule.
GCA/PTC MESSAGE
CGR_0002:
Clock clock1 is generated directly or indirectly from the clock clock2. They should not be declared as
asynchronous.
◼ Action
In the above example, “set_clock_groups -name CG1 -asynchronous -group {GCLK1} -group {GCLK2}” is
deleted.
Page 136/257
R0141 Set up an exclusive relationship between non-interfering clocks
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0003
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to suggest a recommended setting for the set_clock_groups command as an SDC
description.
For clocks that do not interfere with each other between clocks, this should be stated as an exclusive
relationship. In addition, as a rule of SDC description, it is necessary to set an exclusive relationship for each
generated clock generated from each master clock with a master clock exclusive relationship because it does
not inherit the exclusive relationship.
Therefore, consider setting an exclusive relationship between the clocks detected by this rule.
◼ Sample circuit configuration and constraints
GCA/PTC MESSAGE
CGR_0004 :
Clock clock1 and clock clock2 are defined asynchronous with each other. There are clocks generated
directly or indirectly from these clocks which are not defined as asynchronous.
◼ Action
In the above example, set_clock_groups -name CG1 -asynchronous -group {clk1 clk3} -group {clk2 clk4}
Page 137/257
R0142 Confirm that there is no shortage in the setting of exclusive relationship between clocks
R0142
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0004
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The clock reported by this rule has one or more clocks that have an exclusive relationship with that clock.
Therefore, an exclusive relationship must be set for one or more exclusive relationship clocks.
Therefore, consider adding an exclusive relationship to the clock from which this rule is output.
Cases where no exclusive relationship is set between clocks that do not interfere with each
other
Clock generation point of clock Clock generation point of clock Clock generation point of clock
MCLK1 MCLK2 MCLK3
In this example, MCLK1 and MCLK2 are in an exclusive relationship, but there is no definition for MCLK3.
Since it is necessary to set an exclusive relationship with MCLK1 or MCLK2 for MCLK3, it is detected by this
rule.
GCA/PTC MESSAGE
CGR_0004 :
clock clock1 is missing an asynchronous definition with at least one clock in each of the following
asynchronous clock pairs.
◼ Action
In the above example, add an exclusive relationship definition for clock MCLK3.
set_clock_groups -asynchronous -group {MCLK1 MCLK2} -group {MCLK3}
Page 138/257
R0143 Confirm that there is no error in using the set_clock_groups option.
R0143
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0005
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to detect incorrect usage of the set_clock_groups command options. Use of the -
physically_exclusive option is inappropriate because the clocks of constraints verified by this rule are not
physically exclusive.
Therefore, it is necessary to review the constraint options output by this rule.
◼ Sample circuit configuration and constraints
Cases where -physically_exclusive is used between clocks that are not physically exclusive
In this example, the generated clock GCLK2 is generated from the clock MCLK1. In this case, because
there is a physical relationship, it is wrong to declare MCLK1 and GCLK2 as “physically exclusive” (-
physically_exclusive).
GCA/PTC MESSAGE
CGR_0005 :
Clock clock1 is generated directly or indirectly from the clock clock2. They should not be declared as
physically exclusive.
◼ Action
In the above example, delete the following clock group
set_clock_groups -name CG1 -physically_exclusive -group {MCLK1} -group {GCLK2}
Or, check whether the master clock/derived clock definition relationship is correct.
Page 139/257
R0144 Use the -physically_exclusive option between clocks that do not physically interfere
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0006
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to detect a shortage of set_clock_groups commands.
Must be defined as being physically exclusive (-physically_exclusive) to between physically exclusive clocks
There is. Therefore, it is necessary to add or review the constraints between the clocks that output this rule.
◼ Sample circuit configuration and constraints
Cases in which parent clocks are in an exclusive relationship but child clocks are not in an
exclusive relationship setting
In this example, set_clock_groups is defined between master clocks MCLK1 and MCLK2, but
set_clock_groups is not defined between its derived clocks GCLK1 and GCLK2, so this rule detects them.
GCA/PTC MESSAGE
CGR_0006 :
Clock clock1 and clock clock2 are defined physically exclusive with each other. There are clocks
generated from these clocks which are not defined as physically exclusive.
◼ Action
In the above example, use
“set_clock_groups -name CG1 –physically_exclusive -group {MCLK1 GCLK1} -group {MCLK2 GCLK2}“
and -physically_exclusive option
Page 140/257
R0145 Confirm that the set_clock_groups command is set between clocks of the same
definition location.
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0007
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to detect a shortage of set_clock_groups commands. As a rule of SDC, when
multiple clocks are defined on the same port/pin, or is physically exclusive (-physically_exlusive) or exclusive
relationship (-asynchronous) to the reference clock of set_input_delay/set_output_delay command Must be
defined.
Therefore, this rule requires additional consideration of the set_clock_groups command for the clock.
◼ Sample circuit configuration and constraints
Cases where multiple clocks are defined for the same port
In this example, multiple clocks are defined for the same port. In such a case, the clocks MCLK1 and MCLK2
do not operate simultaneously on the actual chip. Therefore, it must be physically exclusive of each other, so
it is detected by this rule.
GCA/PTC MESSAGE
CGR_0007 :
Multiple clocks or a clock with either set_input_delay or set_output_delay are defined at pin/port pin_port.
In both cases, (the defined multiple clocks or a defined clock with the reference clock), these clocks should
be defined as exclusive/asynchronous.
◼ Action
In the above example, add the exclusive relationship setting as physically exclusive.
set_clock_groups -name CG1 -physically_exclusive -group {MCLK1} -group {MCLK2}
Page 141/257
R0146 Use the set_clock_groups command to set the false value between clocks
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CGR_0008
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The purpose of this rule is to detect candidates that replace the false definition method between clocks from
the set_false_path command to the set_clock_groups command. Consider reviewing the restrictions that
output this rule.
Cases in which false between clocks is set with the set_false_path command
GCA/PTC MESSAGE
CGR_0008:
Multiple clocks defined at pin/port pin_port have false path set between them. For accurate signal integrity
results use the set_clock_groups command.
◼ Action
In the above example, replace set_false_path with the set_clock_groups command.
set_clock_groups -name CG1 -physically_exclusive -group {MCLK1} -group {MCLK2}
Page 142/257
◼ Description
There is a valid timing between the detected clocks, but the common base period (the least common multiple
of the period between the two clocks) exceeds the clock period. Even with such a valid timing path, the STA
tool detects the problem during SDC verification because it is out of the support (guarantee) range when the
common base period exceeds the tool threshold.
In this example, one SDC mode consists of function 1 “clocks VCLK1, CLK1, CLK2” and function 2 “clocks
VCLK1_test, CLK1_test, CLK2_test”. However, since there is no definition of set_clock_groups, it is detected
by this rule.
GCA/PTC MESSAGE
CGR_0009:
Clocks clock1 and clock2 have valid timing paths between them, but their common base period is more
than the limit times the clock period.
“Valid timing paths” in the message does not matter whether the clock is a virtual clock or a real clock. In
addition, regarding data path, it is physically present and set_false_path is not specified.
Page 143/257
◼ Action
・If Multicycle path is set between two clocks and you want to exclude this rule from checking, set the following
variable to true. Between clocks CGR_0009 violation is no longer output between clocks for which Multicycle
path is set.
・ The equivalent message in PT of CGR_0009 of PTC is PTE-053. The above restriction relaxation by PTC
is effective only by PTC. Therefore, CGR_0009 is not reported by PTC when the above restrictions are relaxed,
but PTE-053 may be reported by PT.
Warning: For computing a common base period for a number of clocks PrimeTime limits the waveform
expansion of the smallest period to be no more than 1000 times and the waveform expansion of the largest
period to be no more than 101 times. PrimeTime has computed a common base period bounded by these
limits. (PTE-053)
Page 144/257
R0148 Attention to the multiple specification order of the -through option of the timing
exception command.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC No applicable rule
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Attention
With the -through option of the timing exception command, you can specify all paths through one or more
specific pins, ports, or instances. There are a method of specifying passing points in order and a method of
specifying passing through one of the specified points, and there is also a specifying method that combines
these. When using -through, be careful of these specification methods.
It specifies a path with F1/CLK as the start point, B1 and C1 (in this order), and F2/DATA as the end point.
set_false_path -from [get_pins {F1/CLK}] -to [get_pins {F2/DATA}] -through B1 -through C1
The path is specified with F1/CLK as the start point, B1 or C1 and F2/DATA as the end point.
set_false_path -from [get_pins {F1/CLK}] -to [get_pins {F2/DATA}] -through { B1 C1 }
The path that uses F1/CLK as the start point, passes B1 or B2, then passes C1 or C2, and uses F2/DATA as
the end point is specified.
set_false_path -from [get_pins {F1/CLK}] -through {B1 B2} -through {C1 C2} -to [get_pins {F2/DATA}]
Page 145/257
R0150 Do not mix ideal clock and propagate clock (after CTS execution)
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC CLK_0019
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
All clocks should be treated as "ideal clocks" before running CTS, and all clocks should be treated as
"propagated clocks" after running CTS. In this rule CLK_0019, check that the ideal clock and propagated clock
are mixed.
GCA/PTC MESSAGE
CLK_0019 :
Design has both propagated and ideal non-virtual clocks.
◼ Action
Please set all clocks "propergeted cloks" or "ideal cloks"
(A) After CTS (If CTS is executed, set all clocks as propagate)
create_clock -name CK1 -period 4 -waveform { 1 2 } [get_ports {CLK1}]
create_clock -name CK2 -period 6 -waveform { 0 3 } [get_ports {CLK2}]
set_propagated_clock [all_clocks]
(B) Before CTS: (If CTS is not running, set all clocks to ideal)
create_clock -name CK1 -period 4 -waveform { 1 2 } [get_ports {CLK1}]
create_clock -name CK2 -period 6 -waveform { 0 3 } [get_ports {CLK2}]
#set_propagated_clock [get_clocks {CLK1}]
Confirmation method
<Violation>
Design has both propagated and ideal non-virtual clocks.
<Constraint>
* Omitted
create_clock -name rclk -period 4 [get_ports CLK1]
create_clock -name clk -period 6 [get_ports CLK2]
create_clock -name gclk7 -period 8 [get_ports CLK2]
set_propagated_clock [get_clocks {rclk clk}]
A list of “ideal clock” and “propagated clock” is displayed in “Violation Details” of “ViolationBrower”.
Please empty either clock list.
Page 146/257
GCA/PTC LIMITATIONS
・CLK_0019 doesn’t check the clock and virtual clock defined for the output terminal. The virtual clock has no
source and doesn’t affect the registers in the design. Therefore, the virtual clock cannot be propagated, and if
set_propagated_clock is applied to the virtual clock, UIC-025 is reported in the log when reading SDC.
・V02.01.05 does not check CLK_0019 (scheduled to be introduced in the next version). If necessary, the
designer can switch between enabling and disabling the settings below.
〈Setting example〉
ptc_shell> enable_rule CLK_0019
ptc_shell> set_rule_severity error CLK_0019
ptc_shell> analyze_design
Page 147/257
S0002 Confirm that the pin specified as ClockSense does not transition
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC No applicable rule
LITMUS No applicable rule
ConCert SDC_SENSE_ANALYSIS
(Dynamic Simulation)
◼ Description
Confirm that there is no Toggle (signal change) on the logic simulation / emulation of the pin with the
ClockSense constraint. If there is Toggle on functional simulation/emulation, check if it is as designed. Note
that the SVA Flow utility is used for this verification. Please refer to the procedure manual (scheduled to be
issued in the second half of 2019) for usage.
The above set_clock_sense is intended to stop clock propagation of clock MCLK1 on STA at pin MUX/D0.
Confirm that there is no signal change at the specified pin on the logic simulation/emulation.
SIM/HWE result
SIM(VCS)
HWE(Palladium)
◼ Action
The Toggle coverage at the specified pin of the ClockSense constraint is expected to have no signal change
on logic simulation/emulation. In the above example, there is a signal change (with Toggle), so it can be seen
that the STA differs from the verification environment on the functional simulation/emulation. Therefore, check
whether the selection of the reset signal is appropriate in the functional simulation/emulation environment or
whether the file to be input to the SIM/HWE environment is appropriate, and correct it accordingly. Similarly,
check if there are any shortages in the clock specified in the ClockSense constraint, and correct accordingly.
Page 148/257
Limitations
・There may be cases where the design intent cannot be determined based on the tool results alone. Please
check the SENSE setting information table to see if it is as designed.
Page 149/257
S0003 Confirm that the settings specified in the derived clock (items that can be checked with SVA)
match the actual operation.
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC No applicable rule
LITMUS No applicable rule
ConCert <Clock Name>___<Additional information on the
(Dynamic Simulation) clock>___<checker_type>
◼ Description
The SVA of this rule verifies whether the waveform of the point defining the generaeted clock actually matches
the waveform defined by the timing constraint (create_generated_clock) on the functional simulation/emulation.
If the logic simulation/emulation does not match (FAIL), the RESET signal at the time of verification is
appropriate, the correspondence between the logic simulation/emulation environment and the SVA checker is
correct, or the specified point and division/multiplication of the generaeted clock are correct Review is required.
Delay factor
## test.sdc.
create_clock -name CLK_100M -period 10 -waveform {0 5 } [get_ports CLK1]
create_generated_clock -name CLK_100M_DIV_2 -divide_by 2 -source [get_ports CLK1] [get_pins DFF1/Q]
The above create_generated_clock generates a clock divided by 2 of the master clock CLK_100M. However,
if there is a factor that hinders signal propagation from the master clock to the designated point of the
genereated clock on the circuit, an unintended genereated clock may be generated. Therefore, for this
genereated clock, use the following SVA to check whether the genereated clock point is the intended one.
・Properties :
With this property, it is possible to confirm that the point where the derived clock is specified is divided by 2
with respect to the master clock after one cycle of the startup of the evaluation clock (CLK), excluding the non-
evaluation period (RST) .
`TOP_INST and `CHK_DISABLE_CG should be defined before SIM/HWE execution using define
macro.
・`TOP_INST : Netlist top hierarchy name
・`CHK_DISABLE_CG :Set a reset signal that is a condition for excluding generated clocks.
SIM/HWE result
SIM(VCS)
HWE(Palladium)
Limitations
・Constraints that include -edges_shift option are outside the scope of this rule's SVA.
-edges_shift option is outside the scope of this rule's SVA. Please confirm the validity of SDC by rule check
and ConCert GUI.
Page 152/257
7.4.1. set_clock_gating_check
The set_clock_gating_check command is used to set setup time and hold time values for checking timing of
clock gating cells. Checking of the setup time is used to make sure that the control data signal is stable
before the clock is activated in a combination circuit to which the clock signal propagates. On the other hand,
checking of the hold time is used to make sure that the control data signal is stable after the clock is active.
◆ Recommended usage
The following description method is recommended for setting the set_clock_gating_check command.
Use simple gates (such as AND, NAND, OR, and NOR) on the clock line as definition points.
When specifying elements other than simple gates as definition points, indicate the timing check polarity
by using the -high or -low option.
Example for setting setup time and hold time for checking clock gating
◆ Supplement
The following describes differences depending on whether the set_clock_gating_check setting is present.
・ Since cell I1 is an AND cell and the tool can automatically determine the polarity of the clock gating checking,
the checking is enabled even if set_clock_gating_check is not specified. For an AND cell, checking is to
make sure that the control signal remains unchanged while the clock is at a high level, and the setup time
and hold time are the default value of 0.0.
・ Since cell I2 is a simple logic cell (OR), checking of the clock gating timing is automatically performed. For
an OR cell, checking is to make sure that the control signal remains unchanged while the clock is at a low
level.
・ Since cell I3 is an XOR cell and the tool cannot automatically determine the polarity of the clock gating
timing checking, the tool does not perform checking automatically.
Page 154/257
Setting clock gating setup and hold constraint values
A default constraint value of 0.0 is set for clock gating setup and hold time. To change this value to a specific
value, use the -setup and -hold options of the set_clock_gating_check command as shown below.
When checking timing as in the case of clock gating with OR and NOR cells, use the -low option as shown
below.
The polarity of clock gating cells automatically determined by the PrimeTime can be changed by using the -
high and -low options. However, if the automatically determined polarity differs from the polarity specified by
the -high and -low options, the PrimeTime outputs the following message and the polarity specified by the -
high and -low options is used for the analysis.
Page 155/257
Setting clock gating setup and hold time for each transition of control signal
To set the constraint value of clock gating timing checking for each transition (rising and falling) of a control
signal, use the -rise and -fall options.
・ When neither -rise nor -fall option is specified, the same set of setup time and hold time values is applied
to both transitions.
・ When both -rise and -fall options are specified, the respective sets of setup time and hold time values are
applied to both transitions.
・ When only the -rise option is specified, the default value 0.0 is set for falling.
・ When only the -fall option is specified, the default value 0.0 is set for rising.
R0061 Specification for cells except simple function cell like AND, NAND, OR or NOR, etc
Severity RTL Layout I/F STA IP
n/a Error Error n/a
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC CLK_0035
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The complex cells such as XOR, XNOR and MUX, which tool cannot automatically distinguished their polarity
either high or low for clock gating timing check, are needed to specify polarity with ‘-high’ or ‘-low’ option. This
rule reports the instance of complex cells even if with or without polarity, when the set_clock_gating_check is
specified for cell except simple function cell such as AND, NOR, etc.
X1
D Q
CLK B
DATA A CK
specify exclusive OR
GCA Message
CLK_0035 :
2014.12-SP3-1 previous :
No clock-gating check inferred for the instance: cell clock pin: clk_pin enable pin: enable_pin lib cell:
lib_cell
In PTC.2017.12-SP3-3-VAL-20190404, “clock name + blank” in “clk name: clock” was deleted, and only “clock
name” was added.
X1
D Q
CLK B
DATA A CK
GCA Message
CLK_0035 :
2014.12-SP3-1 previous :
Page 158/257
No clock-gating check inferred for the instance: cell clock pin: clk_pin enable pin: enable_pin lib cell:
lib_cell
Confirmation method
<Violation>
No clock-gating check inferred for the instance: 'MUX01' clock pin: 'MUX01/I0' enable pin: 'MUX01/S' lib cell:
'library_name/library_cell_name' clk name: 'CK1 '
<Constraint>
create_clock -name CK1 -period 10 -waveform {0 5} [get_ports CLK1]
<Debug method>
For the reported clock, use analyze_clock_networks to check the clock propagation path.
As described in “Description”, the multiplexer cannot set the polarity of the clock gating timing check
automatically, so set_clock_gating_check should be set.
ptc_shell> analyze_clock_networks -from [get_clocks CK1] -style full -end_types {register port clock_source}
-max_endpoints 1
****************************************
Clock Sense Abbreviations:
P - positive
Clock Network End Type Abbreviations:
REG - register
Branch 0:
Branch
Level Info Sense Notes Port/Pin
--------------------------------------------------------------------------------
0 P source CLK1 (in)
1 P MUX01/I0 (library_cell_name)
2 P MUX01/Z (library_cell_name)
3 P REG FF04/CP (library_cell_name)
<Addition >
You can also display clock information by executing the above analze_clock_networks on the “Console” of the
GUI.
◼ Description
When two set_clock_gating_check commands are specified to the same cell such as the following figures,
both commands have an influence on AND1/A. In this way, when the different values are specified to the same
clock gating cell, the operation is different in Prime Time and ICC. Prime Time adopts value set for pin, but
it is not clear that ICC adopts either values. Therefore, this rule reports the instance name of clock
gating cell when the different values are specified to the same clock gating cell.
DATA D Q
(1)
CK
GATE1 A
CLK
AND1
(2)
GCA Message
Check UIC-045.
And, report_clock_gating_check command can confirm the setting point and the set value.
Page 161/257
DATA D Q
(1) (2)
CK
GATE1 A
CLK
AND1
GCA Message
UIC-045:
set_clock_gating command at %s is overwritten by the command at %s for %s.
ex)
set_clock_gating command at abc.sdc, line 12 overwrites a previously issued command at abc.sdc, line
10 for pin AND1/A.
Page 162/257
R0063 Prohibition of specification for cell for exclusive use of clock gating
Severity RTL Layout I/F STA IP
n/a Error Error n/a
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC UDEF_IntegratedCellSetClockGating
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When combinational cell is used as clock gating cell, constraint value for setup and hold is set with
set_clock_gating_check. In the other, clock gating integrated cell, which is exclusive use of clock gating and
has latch within cell for hazard free, has constrant value for setup and hold. When the clock gating integrated
cell is used, the operation is different in Prime Time and ICC.
Prime Time analysis timing with the constraint value by set_clock_gating_check, but ICC uses the constraint
value within cell library. Therefore, this rule reports the instance name of cell for attention when
set_clock_gating_check command is used for clock gating integrated cell.
FF
GCLK1 D1 Q
CEN GCK CK
CLK
GCA Message
Before conducting STA for the signal interface between the LSI and off-chip registers, define input delay and
output delay for input pins, output pins, and input/output pins. To be exact, define a value including the skew
of the clock driving the off-chip registers and that driving the registers in the LSI.
Use the set_input_delay and set_output_delay commands to define input delay and output delay.
◆ Recommended usage
For the set_input_delay or set_output_delay command, use the -clock option to define which clock is
synchronized. Be sure to specify the -clock option.
When making verification using multiple on-chip clocks or off-chip clocks, specify the -add_delay option.
Input delays are affected by blunting of the input waveform and output delays are affected by the output
load capacity. Make settings according to these characteristics as needed.
In the figure above, the reference clock of block A (verification target) is the clock of the register at the start
point of block B (not a verification target).
If no clock to be analyzed by IO exists in the block, a virtual clock is used.
Since input delay is affected by blunting of waveforms, make the following drive strength setting as needed
assuming the information of connections outside the block, and calculate the waveform blunting value. If these
constraints are not set, the estimated value of the wiring delay from the input port becomes 0.
Page 164/257
In the figure above, the reference clock of block B (verification target) is the clock of the register at the end
point of block A (not a verification target). If no clock to be analyzed by IO exists in the block, a virtual clock is
used.
Furthermore, set the output load capacity as needed, assuming the information of connections in block A (not
a verification target).
First, set an input delay value of 1.2 at the rising edge of CLK1 for the input port DIN. Next, to additionally set
an input delay value of 2.2 at the rising edge of CLK2 for the same input port DIN, specify -add_delay for the
set_input_delay command. Note that, if -add_delay is omitted, the input delay that was set previously based
on CLK1 is overwritten by the input delay that was set later based on CLK2.
◆ Notice
Operation when set_input_delay is specified for clock ports varies with tools.
A problem occurs when the reference clock of the set_input_delay command is the same as the clock set for
a clock port. The input delay is ignored by the tool. Be careful particularly when specifying all_inputs as shown
below.
Proposed measures
If a virtual clock is declared as shown below, no problem will occur.
create_clock -name clk [get_ports CLK]
create_clock -name vclk
set_input_delay 1 -clock [get_clocks vclk]
◆ Supplement
◼ Description
If the delay constraint is set to 0 or less in set_input_delay/set_output_delay, it is more likely that the mounted
chip will be defective, so it is necessary to give a constraint that assumes the actual input delay. This rule
detects input/input/output terminals that specify a value of 0 or less for the set_input_delay/set_output_delay
constraint value.
din D Q dout
clk CK
PTC Message
UDEF_ZeroValueSetInOutDly :
zero value is set on 'input_delay_or_output_delay' - 'attrname' command (pin:'pin') in the SDC file
'SDCfile'.
UDEF_MinusValueSetInOutDly
minus value ('delay') is set on 'input_delay_or_output_delay' - 'attrname' command (pin:'pin') in the
SDC file 'SDCfile'.
din D Q dout
clk CK
PTC Message
UDEF_ZeroValueSetInOutDly :
zero value is set on 'input_delay_or_output_delay' - 'attrname' command (pin:'pin') in the SDC file
'SDCfile'.
169/257頁
R0040 Necessary Conditions Are Defined for an External Port Constraint Definition
R0040
Severity RTL Layout I/F STA IP
n/a Error Error n/a
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA/PTC EXD_0004
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
In the set_input_delay/set_output_delay option, specify both -min (minimum delay value) and -max (maximum
delay value) at the same time, or do not specify both. If neither is specified, the minimum and maximum input
delay will be the same. The same applies to the combination of -rise (rise delay) and -fall (fall delay). This rule
detects set_input_delay/set_output_delay settings where only one of these combinations is specified.
din
GCA Message
EXD_0004 :
The input_or_output delay on object_type object_name has incomplete values.
170/257頁
R0042 Input/output port not constrained by set_input_delay/set_output_delay
Severity RTL Layout I/F STA IP
n/a Warning Warning Error
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA/PTC EXD_0001
EXD_0002
EXD_0003
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
In order to perform timing verification (STA) correctly, the input delay value for the clock is required. Without
such clock information, timing verification will not be performed correctly. Therefore, set_input_delay is
required.
If the input delay is not set based on the clock with the set_input_delay command (when -clock is not specified),
the path to the sequential cell is verified based on time 0 using the specified input. Please specify the clock
with -clock because it is an unintended restriction depending on the waveform. These rules detect ports for
which the set_input_delay/set_output_delay command is not specified or ports whose
set_input_delay/set_output_delay command does not match the clock.
No set_input_delay setting
BLOCK
FF0 FF1
DIN D Q D Q
CK CK
CLK
GCA/PTC MESSAGE
EXD_0001 :
Input/inout port port has no input delay specified.
◼ Action
Set the input delay for the associated clock to the data input/output port.
Confirmation method
The following is an example.
<violation>
EXD_0001:
Input/inout port 'DIN' has no input delay specified.
<constraint>
# There is no timing constraint for set_input_delay.
Limitations (GCA/PTC)
Added EXD_0001 in Rule Set V02.01.06. EXD_0001 is not set to enable_rule in rulesets released before
V02.01.05. Switch enable/disable by the following method as required.
[example]
ptc_shell> enable_rule EXD_0001
ptc_shell> set_rule_severity error EXD_0001
ptc_shell> analyze_design
FF0 FF1
DIN D Q D Q
CK CK
CLK
GCA Message
EXD_0002 :
Input/inout port port has no clock-related input delay specified.
For such timing constraints, GCA / PTC reports the following UIC-070 in “UserMessageBrowser” and log files.
%s without related clock (via -clock) can potentially trigger behavior mismatch from different timers. (UIC-070)
ex)
Warning: set_input_delay without related clock (via -clock) can potentially trigger behavior mismatch from
different timers. (UIC-070)
Action
Please set input delay at the data port for related clock.
Confirmation method
In this case, an input delay is defined for port DIN, but you can see that the delay criterion (Clock) is not linked.
172/257頁
ptc_shell> report_port -input_delay [get_ports DIN]
****************************************
Input Delay
Min Max Related Related
Input Port
Rise Fall Rise Fall Clock Pin
---------------------------------------------------------------
DIN 1.00 1.00 1.00 1.00 -- --
Attention (GCA/PTC)
If the reference clock is not specified in set_input_delay with the -clock option, the input delay is set to the input
terminal based on time 0.In the following cases, an input value of 1.5 is set to the input terminal DIN.
The set_output_delay command sets the output delay of the output terminal with respect to the edge of the
reference clock (specified clock of -clock). However, if set_output_delay is not set, or if the reference clock is
propagated to that pin, output delay 0 is set.
No set_output_delay setting
BLOCK
FF0 FF1
DIN D Q D Q OUT
CK CK
CLK
GCA/PTC MESSAGE
EXD_0003 :
Output/inout port port has no clock-related output delay specified.
◼ Action
Set the input/output delay for the Related clock on the data input/output port.
Confirmation method
<constraint>
# No timing constraint for set_output_delay.
Output Delay
Min Max Related Related
Output Port
Rise Fall Rise Fall Clock Pin
---------------------------------------------------------------
OUT -- -- -- -- -- --
If the reference clock is not specified for the specified pin and other clocks are not propagated, the timing
check results in “unconstraint path”.
FF0 FF1
DIN D Q D Q OUT
CK CK
CLK
GCA/PTC MESSAGE
EXD_0003 :
Output/inout port port has no clock-related output delay specified.
Action
Please set output delay at the data port for related clock.
Confirmation method
<constraint>
set_output_delay 1 [get_ports OUT]
Output Delay
Min Max Related Related
Output Port
Rise Fall Rise Fall Clock Pin
---------------------------------------------------------------
OUT 1.00 1.00 1.00 1.00 -- --
175/257頁
◼ Description
If no timing constraint is set to an external port, timing analysis may not be performed correctly for that external port.
For this reason, checks are made for the following items to see if there is no consistency in constraints set to all
external ports:
- Whether there is no min value greater than the relevant max value
- Whether no delay value is set which exceeds the relevant clock period
When the -min value is greater than the -max value in "set_input_delay", the following message is
output.
set_input_delay 3 -clock [get_clocks {CLK}] [get_ports {SEL}] -max
set_input_delay 5 -clock [get_clocks {CLK}] [get_ports {SEL}] -min
GCA Message
EXD_0015:
The input delay at object_type object has inconsistent values.
When the delay value specified in "set_output_delay" exceeds the relevant clock period, the following
message is also output.
GCA Message
EXD_0010 :
The output delay at object_type object_name has values larger than max_percent % of the relative
clock's period.
Action
Check each detected external port to see whether there is a problem in the reported information.
If there is a problem, modify the SDC description.
GCA Limitations
The upper limit of EXD_0010 was changed to 99% from 50% of default values.
When larger than the clock period to which the delay value specified by set_input_delay relates
create_clock -name CLK -period 4 -waveform { 1 2 } [get_ports {CLK}]
set_input_delay 8 -clock [get_clocks {CLK}] -max [get_ports {IN}]
GCA Message
EXD_0009 :
The input delay at object_type object_name has values larger than max_percent % of the relative
clock's period.
176/257頁
Action (common)
The contents of a report about the detected external terminal are checked.
Please correct SDC, when there is a problem.
Limitations
The upper limit of EXD_0009 was changed to 99% from 50% of default values.
GCA Message
EXD_00013 :
The output delay at object_type object_name has inconsistent values.
177/257頁
R0054 A Required Input or Output Delay Is Set for All Connected Clock Domains.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category consistency ◼semantics unclear TDL check rule user's manual
GCA/PTC UDEF_InputDelayCheck_0001
UDEF_OutputDelayCheck_0001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
An input or output delay is set for a clock domain. When an external pin is connected to multiple clock
domains, it is necessary to set the delay for all of the clock domains. If the delay is not set for any of these
clock domains, unintended timing analysis may be performed or the timing may not be verified.
DIN0 DOUT0
CLKA
Set an input delay for Set an output delay
each of CLKA and CLKB. for each of CLKA and
CLKB.
CLKB
GCA Message
UDEF_InputDelayCheck_0001:
UDEF_OutputDelayCheck_0001:
DATA1 FFA
CLK1
FFB
CLK2
GCA/PTC Message
UDEF_InputDelayCheck_0001:
・Rule-Set V01.07.00 or later
The input/inout port/pin ("Port") is not set set_input_delay for the clocks ("MissClock"). However, the
others ("GenClock") are set.
UDEF_OutputDelayCheck_0001:
When CLK2 is associated with DOUT in set_output_delay, but the -add_delay option is not specified
GCA/PTC Message
UDEF_OutputDelayCheck_0001:
set_clock_group
GCA Messge
UDEF_InputDelayCheck_0001:
No input delay is specified for port 'Port' for the required clock(s) 'Clocks'
UDEF_OutputDelayCheck_0001:
No output delay is specified for port 'Port' for the required clock(s) 'Clocks'
GCA Limitations
• This rule will report a false error. For example, if you set the set_input_delay command, not only real clock,
also compares with Viratul clock. At that time, this rule, it is determined that different from the clock driving the
end point, and then report the false error. Therefore, if you set the Virtatul clock as intended, please treat it as
"false error".
Action
Please set the input delay for all clock domains on every data input port.
180/257頁
R0057 No input transition constraints defined for inputs/inouts
Severity RTL Layout I/F STA IP
n/a Info Error Info
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC DRV_0001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The Inp_Trans01a rule flags input/inout ports where none of the input transition constraints -
set_input_transition, set_drive, or set_driving_cell constraint are specified.
data
GCA/PTC Message
DRV_0001 :
Input/inout port pin has no input transition, driving cell or drive resistance specified.
◼ Action
Please set input transition constraint at input or inout port with set_input_transition, set_drive or
set_driving_cell.
Confirmation method
Violation : Input/inout port 'E' has no input transition or driving cell or drive resistance specified.
Resistance (min/max)
Input Port Rise Fall
--------------------------------------------------------------------------------
E -- --
<Refer>
・In the PrimeTime, you can check with "no_driving_cell (report when there is no driving cell in the port)" of
the check_timing command. However, it is reported only if the net connected to the port has parasitics
information.
181/257頁
R0058 Load on output or inout ports not set or zero
Severity RTL Layout I/F STA IP
n/a Info Warning Info
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC CAP_0001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
You need to define load constraints for output ports/inout (bidirectional) ports.
The CAP_0001 rule flags missing or incorrect load constraints for output or inout ports.
The CAP_0001 rule flags following cases:
1. An output or inout port without corresponding set_load constraint
2. An output or inout port with zero set_load constraint value
outport
D Q
clk
CK
create_clock
setting point
GCA/PTC MESSAGE
CAP_0001 :
Output/inout port port has zero or incomplete capacitance values.
no set_load constraint
outport
D Q
clk CK
create_clock
setting point
GCA/PTC MESSAGE
CAP_0001 :
Output/inout port port has zero or incomplete capacitance values.
◼ Action
Please output load with set_load at out port or inout port.
Confirmation method
182/257頁
Violation 1: Output/inout port 'OUT' has zero or incomplete capacitance values.
Use the report_port command to check the status of the port 'OUT'.
◼ Description
Although different specifications can be defined for pairs of min and max conditions, early and late conditions,
and setup and hold conditions, if only one item of a pair is defined, the tool may not be able to perform
necessary timing analysis because it does not take the the undefined condition into consideration. This rule is
therefore used to check whether the constraints supposed to be paired are defined.
Target commands :
⚫ set_input_delay
⚫ set_output_delay
Target potions :
⚫ -hold / -setup
⚫ -early / -late
⚫ -rise / -fall
⚫ -min / -max
⚫ Valid combinations of the above
din
GCA/PTC MESSAGE
EXD_0004 :
The 'input_or_output' delay on 'object_type' 'object' has incomplete values.
184/257頁
◼ Description
The tool may not be able to perform timing analysis properly on any constraints on the min and max values if
they have an inconsistency. This rule checks whether the magnitude relation between the min and max values
is reversed. This rule applies to the following SDC commands:
Two SDC commands of this rule, set_input_delay and set_output_delay, are objects.
The following commands don’t support in RENESAS’s recommendation rules. Because those commands
have not been use much. If you check this rule for those commands, please use A) "report_port -drive" and
B) "report_clocks -skew" if needed.
GCA/PTC MESSAGE
EXD_0015:
The input delay at 'object_type' 'object' has inconsistent values.
◼ Action
The bottom concerned checks the magnitude correlation of the restrictions value (max and min) of an
external terminal. SDC is corrected so that a restrictions value may turn into a "min value < max value."
GCA/PTC MESSAGE
EXD_0013:
The output delay at 'object_type' 'object' has inconsistent values.
185/257頁
◼ Action
The bottom concerned checks the magnitude correlation of the restrictions value (max and min) of an
external terminal. SDC is corrected so that a restrictions value may turn into a "min value < max value."
186/257頁
7.6. Exceptions
7.6.1. set_false_path
The set_false_path command is used to exclude some paths between clocks from the target of timing analysis.
Use the set_clock_groups command to set synchronous or asynchronous relationship between clocks.
◆ Recommended usage
The following description method is recommended for setting the set_false_path command.
Indicate the launch clock and the capture clock with the -from option and -to option respectively. (This
item can be checked by R0067.)
Specify the -from and -to options together. Should not specify the -through option alone. (This item can
be checked by R0068 and R0071). If constraints are correct, we can ignore these warnings and use -
through option for false setting.
Do not specify the net name using the -through option. (This item can be checked by R0121.)
Data line
set_false_path -from [get_clocks {<launch clock name>}] -through [get_pins {<data pin name>}] ¥
-to [get_clocks {<capture clock name>}]
set_false_path -from [get_clocks CLK1] -through [get_pins FF2/Q] -through [get_pins FF4/D] -to [get_clocks
CLK2]
CLK2
CLK1
187/257頁
set_false_path -from [get_clocks {CLK}] -through [get_pins {B1/Y}] -through [get_pins {C1/Y}] -to
[get_pins {F2/DATA}]
set_false_path -from [get_clocks {CLK}] -through [get_pins {B1/Y C1/Y}] -to [get_pins {F2/DATA}]
* The -through option can also be used instead of the -from and -to options but this method consumes many
calculation resources (particularly in large-scale circuits). Use the -from and -to option to specify paths as much
as possible"for more clearly.
188/257頁
◆ Notice
The set_false_path command differs from the set_disable_timing command that the set_false_path
disables the timing analysis of specific pins, instances, or ports. The use of the set_disable_timing
command does not delete timing constraints from paths but disconnects timing paths at object points. If
all paths that pass through a pin are false paths, using the set_disable_timing command is more effective.
However, it would be better to specify paths with the set_false_path command when multimode SDC is
considered. Use these commands appropriately. When an arc is broken by the set_disable_timing
command, edges are not physically propagated forward and do not act as crosstalk aggressors
downstream. This could lead to optimistic crosstalk analysis. If there is a true edge that could be
propagated for crosstalk analysis and you only want to suppress the timing analysis of the path, use the
set_false_path command. If the edge cannot truly propagate past a point, use the set_disable_timing
command.
set_false_path or set_disable_timing affects the result of crosstalk noise. When the arc is cut by the
set_disable_timing command, the edge is not physically propagated forward and does not function as a
downstream crosstalk aggressor. This can lead to optimistic crosstalk analysis. Use the set_false_path
command if you have true edges that can be propagated for crosstalk analysis and you only want to
suppress path timing analysis. Use the set_disable_timing command when an edge cannot truly
propagate beyond a point.
Though a false path can be specified by various methods, it is effective to select a method for specifying
all paths (affected by timing exception) most easily. If a wildcard is used for -through or paths are specified
one by one, the number of paths will increase as well as memory usage volume and execution time. Avoid
using a wildcard or specifying paths one by one as much as possible. If a wildcard (*) is set, it also applies
to all points that do not have a physical path. As a result, paths that do not require verification are actually
verified, which may increase the verification time.
◆ Supplement
The following descriptions are possible with the set_false_path command though they are not recommended.
false path
* The set_clock_groups command is recommended for setting a path between clock domains.
189/257頁
Example 2: Setting a multi-clock path
In the case of the following figure, CLK1 and CLK2 can reach the FF in STA, but these clocks cannot reach
the FF at the same time due to MUX in the actual circuit. CLK1 and CLK2 are logically exclusive clocks.
When switching clocks dynamically, however, the selector signal of MUX must be switched while the clock is
at a low level. Measures to switch the selector signal are required in specifications or circuits.
set_false_path -from [get_clocks CLK1] -to [get_clocks CLK2]
set_false_path -from [get_clocks CLK2] -to [get_clocks CLK1]
To conduct verification by single execution of STA for multiple clock modes, define clocks for the same object.
Clocks in each mode will be set false path with clocks in others mode.
Multicycle path constraints are intended to relieve verification edges to avoid any path with a data-flow control
circuit from being verified with pessimistic clock edges. Refer Figure 7-1 for more information
◆ Recommended usage
The following description method is recommended for setting the set_multicycle_path command.
Set multicycle path constraints for paths with a data flow control circuit.
Indicate the launch clock and the capture clock with the -from option and -to option respectively.
Indicate the clock to be the reference of multicycle paths with the -end or -start option.
Use the -through option to specify the data pin as a midpoint.
Use the “set_multicycle_path with the -setup option” and “set_multicycle_path with the -hold options”
combinatorially to describe a multicycle path.
Multicycle path between clocks (with higher frequency on the launch clock)
set_multicycle_path –setup <number of cycles for setup> -start ¥
-from [get_clocks {<launch clock name>}] -to [get_clocks {<capture clock name>}]
Multicycle path of data line (with higher frequency on the capture clock)
set_multicycle_path –setup <number of cycles for setup> -end ¥
-from [get_clocks {<launch clock name>}] ¥
-through [get_pins {<data pin name>}] ¥
-to [get_clocks {<capture clock name>}]
Multicycle path of data line (with higher frequency on the launch clock)
set_multicycle_path –setup <number of cycles for setup> -start ¥
-from [get_clocks {<launch clock name>}] ¥
-through [get_pins {<data pin name>}] ¥
-to [get_clocks {<capture clock name>}]
◆ Notice
It is prohibited to use only the -hold option without using the set_multicycle_path command for -setup.
Do not specify the -setup and -hold options simultaneously with a single command.
Consider the number of cycles based on the clock of higher frequency.
Be sure to specify the -setup or -hold option.
◆ Supplement
Multicycle path constraints are used in some cases even when a data flow control circuit is not provided. The
following pages illustrate cases where engineers familiar with product specifications use multicycle path
constraints exceptionally to avoid restrictions on STA tool specifications or prevent timing constraints from
being excessively relieved by false paths. If you use multicycle path constraints just because “such constraints
were used in the previous product” or “timing violation does not converge” without understanding product
specifications, timing specifications may not be met, leading to a product failure. Follow the above
recommendations whenever possible.
192/257頁
The hold verification is not required because a synchronizer to prevent metastability is provided in the circuit.
Since the number of clock cycles is limited, the most critical clock edge is unclear.
There are two methods of setting a multicycle path: correcting the clock definition and using the clock definition
as it is.
Figure 7-3 Case where the capture clock frequency is lower than that of the launch clock
The hold verification is not required because a synchronizer to prevent metastability is provided in the circuit.
Since the number of clock cycles is limited, the most critical clock edge is unclear.
There are two methods of setting a multicycle path: correcting the clock definition and using the clock definition
as it is.
If the launch clock frequency differs from the capture clock frequency, consider the multicycle path setting
based on the most critical clock edge.
When the data flow control circuit is not provided, the hold time must be set one clock cycle before the setup
time to prevent FF2 from being in the metastable state.
The set_max_delay command is used to specify the maximum delay of a path as a constraint value, and the
set_min_delay command is used to specify the minimum delay of a path as a constraint value. The constraint
value set by the set_max_delay command is checked during the setup analysis. The constraint value set by
the set_min_delay command is checked during the hold analysis.
◆ Recommended usage
The following description method is recommended for setting the set_max_delay and set_min_delay
commands.
Specify the start point (input port, bidirectional port, or register’s clock pin) of a path by “-from” option and
specify the end point (output port, bidirectional port, or register’s data pin) of a path by “-to” option.
When the route of the path which has constraints is indicated, specify the route by using the -through
option.
When the signal transition states at the start point, end point, and a point in the halfway route of a path
can be indicated, specify the signal transition states using the -rise_from, -fall_from, -rise_to, -fall_to, -
rise_through, -fall_through options respectively instead of the -from, -to, and -through options.
When a pin in the route of an existing path is specified for “-to”, constraint setting is applied to the section
from the start point of the existing path to the specified pin, generating a new path. The existing path and
the section from the pin specified by the -to option to the end point of the existing path are not constrained.
Unconstrain
When multiple set_max_delay commands or set_min_delay commands are set for pins other than the
start and end points in an existing path, constraint definition target points vary with tools. When such
setting is required, use your design/verification tool to check whether desired type of analysis is possible
at specific points.
report_timing -to I0/Z
report_timing -from I0/A
197/257頁
◆ Supplement
The following describes various setting examples and constraints to be applied.
Example: Setting output delay and delay constraints for the same end point
set_output_delay -clock CLK 0.1 [get_ports OUT]
set_max_delay -to [get_ports OUT] 1.0
set_min_delay -to [get_ports OUT] 0.5
The path from F0/CLK to OUT and the path from F1/CLK to OUT are constrained as follows.
Maximum delay: set_max_delay constraint value - output delay value (1.0 - 0.1 = 0.9)
Minimum delay: set_min_delay constraint value - output delay value (0.5 - 0.1 = 0.4)
Example: Setting input delay and delay constraints for the same start point
set_input_delay -clock CLK 0.1 [get_ports D0]
set_max_delay -from [get_ports D0] 1.0
set_min_delay -from [get_ports D0] 0.5
The path from D0 to F0/DATA is constrained as follows.
Maximum delay: set_max_delay constraint value + clock latency - input delay - F0 cell setup constraint
value
Minimum delay: set_min_delay constraint value + clock latency - input delay + F0 cell hold constraint
value
198/257頁
7.6.4. Check rules
◼ Description
When overlappiing between set_false_path and set_multicycle_path, multicycle path dose not
effective for priority of timing exception. Therefore it should be careful that the multicycle paths which should
be effective does not overlap false paths. This rule flags when each timing exception commands overlap.
FF1 FF2
D Q D Q
CK CK
FF3 FF4
D Q D Q
CK CK
FF5 FF6
D Q D Q
CK CK
false path
CLK
multicycle path
GCA/PTC MESSAGE
EXC_0014 :
A multicycle_path exception at file, line number; file, line number is fully overridden by other exceptions.
Please use ‘analyze_paths” command to confirm the overlap of the timing exceptions.
ex)The following command can check the timing exception information of constraints to pass every
endpoint.
analyze_paths -from [all_clocks] -nosplit > Output filename
UDEF_EXC_0014and15_FilterMcpOverlap :
A multicycle path command at ‘file_line_one’ in the rule ‘rule_name’ is overridden by other multicycle path
commands ‘file_line_two’
Of the violations reported by EXC_0014 and EXC_0015, the overwriting of only set_multicycle_path is filtered
and reported by this rule.
◼ GCA/PTC LIMITATIONS
* set_clock_groups command is checked out of EXC_0014 and EXC_0015.
Overlap between set_false_path command and set_clock_groups command checks the syntax analysis in
the CST-006 and CSTR-007. In addition, duplication of each other set_clock_groups command (read-ahead
priority) is checked by the parsing error UIC-030 and UIC-031 at the time of SDC read.
These errors GUI of UserMessage Browser or, can be found in the "report_constraint_analysis -output
<output file name> -include {user_messages}".
・If different timing exception commands are set for the same path, the command with the higher priority is
enabled and the command with the lower priority is disabled. The command priority is as follows.
Priority High:set_clock_groups
↑:set_false_path
↓:set_max_delay and set_min_delay are at the same level
Low:set_multicycle_path
・To check for set_clock_groups, set the following in the GCA / PTC execution script, and then execute
analyze_design.
enable_rule {CGR_*}
・ If the existing environment for GCA summarizer esults is used, the judgment result of
UDEF_EXC_0014and15_FilterMcpOverlap cannot be taken over and will be handled as New.
◼ Action
Please confirm wheter it is problem or not that low priority constraint become invalid when some timing
exception constraints overlap on the same timing paths.
201/257頁
R0067 Prohibition of specification for the asynchronous set or reset of register
Severity RTL Layout I/F STA IP
n/a Error Error n/a
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC UDEF_SyncRstSetExceptionTo
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When the endpoint of set_false_path/set_multicycle_path is specified for the asynchronous set or reset pin of
a register, the operation is different between Prime Time and ICC. PrimeTime set it through the set or reset
pin. However, ICC set it to set or reset pin as endpoint. Therefore, this rule reports the instance name of set or
reset pin as an error when endpoint of set_false_path is specified for the asynchronous set or reset of register.
The asynchronous reset pin of register is specified for the object of optional -to
f1 f2 f3 f1 f2 f3
D Q Q D Q D Q Q D Q
CK RB CK CK RB CK
GCA/PTC MESSAGE
UDEF_SyncRstSetExceptionTo :
◼ Action
If reset pin of register is set as end point, please move end point to the output pin of the cell which drives its
reset.
202/257頁
R0068 Option -from/-to not specified for set_false_path/set_multicycle_path command
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC UDEF_NoSetFromToFalsePath
UDEF_NoSetFromToMultiPath
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The False_Path11/MCP08 rule flags set_false_path/set_multicycle_path commands where the -from, -to or
both the options are not specified.
False/Multi-cycle paths should ideally be specified using both the -from and -to options. This reduces the
possibility of specifying a single cycle path as false path.
Single cycle path specified as false/multi-cycle path leads to sub-optimization, as the STA tool gets
relaxed for such paths.
(3) set_false_path command where the -from, -to both the options are not specified.
GCA/PTC MESSAGE
UDEF_NoSetFromToFalsePath :
UDEF_NoSetFromToMultiPath :.
◼ Action
Pleaese set set_false_path or set_multicycle_path with start point and end point to clear set point.
204/257頁
R0069 False/multi-cycle path reference points are not connected
Severity RTL Layout I/F STA IP
n/a Warning Warning Error/Warning
Category ■consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC EXC_0006 (IP: Error)
UDEF_InvalidPartialException
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
These rules checks for existence of paths specified using the -from, -to, or -through arguments of timing
exception constraint in the SDC file(s). These rule also applies to any points for which there is no physical path
if points are set with a wildcard (*). Also, if you set the timing constraints and “-through object1 -through
object2”, GCA/PTC is summarized as one of “thorugh” group. Therefore, GCA /PTC is might output the
excessive report.
CLK1
FFA
FFB
CLK2
In the following circuit configuration, when "set_false_path" is specified for a nonexistent path, the
following message is output.
GCA/PTC MESSAGE
EXC_0006 :
A false_path exception at file, line number does not specify any valid paths.
UDEF_InvalidPartialException:
◼ GCA/PTC LIMITATIONS
The specification point of detected set_false_path or set_multicycle_path is checked. A timing exception setup
is invalid. When you specify the same port as a clock generation point in order to set up effectively, please set
up a clock name (the following, the pattern A).
This problem is the specification of a tool, and when the port which carried out the clock definition is specified
as "-from" option, it becomes invalid (The following, the pattern B).
GCA/PTC MESSAGE
EXC_0006 :
A false_path exception at file, line number does not specify any valid paths.
UDEF_InvalidPartialException:
Exception defined at ''file_line'' is not specify partially valid paths.
create_clock -name CLK1 -period 5.0 -waveform { 0.0 2.5 } [get_ports {T1}]
set_false_path -from [get_pins {I5/Q_reg/CP}] -to [get_pins {I3/Q_reg/D I11/Q_reg/D}]
GCA/PTC MESSAGE
UDEF_InvalidPartialException:
Exception defined at ''file_line'' is not specify partially valid paths.
206/257頁
◼ Action
Check whether the "set_false_path" and "set_multicycle_path" settings are correct.
After checking, modify the SDC description to set "set_false_path" and "set_multicycle_path" correctly.
◼ Confirmation method
<Violation>
A ‘false_path exception at /full_path/sdc.tcl, line 5’ does not specify any valid paths.
<Constraint>
create_clock -period 5 [get_ports clk1]
create_clock -period 5 [get_ports clk2]
create_clock -period 5 [get_ports clk3]
set_case_analysis 1 [get_pins reg1/Q]
set_false_path -thr [get_pins reg1/Q]
<Debug method>
###############################################################################
## Redundant exceptions (totally overridden by other exceptions):
## none.
###############################################################################
## Exceptions that do not cover any constrained paths:
# /full-path/sdc.tcl, line 5
set_false_path -through [get_pins {reg1/Q}]
Note that set_case_analysis and set_false_path cannot be set to the same path at the same time.
This is the default behavior for PrimeTime.
When doing so, the false path you set earlier is automatically disabled.
Attributes
c - case-analysis
C - Conditional arc
The method of confirming this state by GCA/PTC can be detected by EXC_0006 (report when timing exception
path is invalid). By clicking “execute” using the GUI, a detailed report and schematic will be displayed and you
can see why it was disabled. In this case, you can see that it is the “user_case_value” of the Case that was
set earlier.
The false path itself is already disabled because the timing arc is breaked by the Case setting, so it is reported
as an effect of the set_case_analysis, not overwriting the constraint.
◼ GCA/PTC LIMITATIONS
・EXC_0006 cannot be detected if there is a path that does not exist partially.
It takes much time to process UDEF_InvalidPartialException for tracing all constrainted paths. So
UDEF_InvalidPartialException rule is disabled by default. Please use enable_rule command to check its rule
as the need arises.
set_max_delay or set_min_delay command cuts a timing path compulsorily and generates ‘start point’ or ‘end
point’ when setting ‘-from’ or ‘-to’ option at the middle point of path besides ‘start point’ and ‘end point’. Even if
points which ‘-from’ or ‘-to’ were set isn't already ‘start point’ or ‘end point’ of paths by ‘-from’ or ‘-to’ option of
set_max_delay command, EXC_0006 rule will be detected. Because the rule checks without recognizing a
generated pass as a result of the set_max_delay command.
On the other hand, ‘UIC-011’ reports that the ‘start point’ or ‘end point’ are changed compulsorily.
(UIC-011 (warning) %s is forcing pin ’%s’ to be a timing %s.)
。
- It will be improved so that EXC_0006 does not flag when the path is cut.
・If the path specified in the timing exception command is set with the wildcard “*”, EXC_0006 is reported
when there is no path among the multiple paths. Therefore, to confirm the validity of the report, it is necessary
to check the path of each set timing exception constraint with “*”. Please refrain from specifying “*”. In addition,
as a debugging aid, we are requesting a message refurbishment to report the applicable timing exception
constraint from the message reporting the current SDC file and line number.
STAR: 9000823331
report_constraint_analysis should give the command directly in text/csv output is registered.
・When using rule set V01.09.00 or earlier, CMD-012 is reported in UserMessageBrowser, but please ignore
the following two cases. It has been modified so that it does not report in V02.00.00.
As for the influence before V01.09.00, SDC reported to EXC_0006 should not be reported again by
UDEF_InvalidPartialException. However, before V01.09.00, there is a possibility that it will be reported twice
(it is an excessive report and there is no omission of verification).
◼ Description
Any object can be specified for a path point (-through) in a timing exception constraint. If
-through is used for an object for which -from and -to can be used, however, the target object becomes unclear
and timing analysis may not be performed correctly.
This rule detects no command in which a clock is specified in the -from/-to option.
set_false_path, set_multicycle_path
-from -through -to
Clock ⎯
External input pin Used Not Used Not Used
(No problem with syntax
when used)
External output pin Not Used Not Used Used
(No problem with syntax
when used)
F/F clock pin Used Not Used Not Used
(No problem with syntax
when used)
F/F data pin Not Used Not Used Used
(No problem with syntax
when used)
F/F output pin Not Used Used Not Used
UDEF_ReportThPointException:
◼ Action
When the timing exception with ‘-through option’ is set to the site where is able to be set with ‘-from’ or ‘-to’,
please change ‘-through’ to ‘-from’ or ‘-to’ option.
◼ GCA/PTC LIMITATIONS
The upper limit value beyond which an error is raised is set to 10000. The limit value can be changed by setting
the maxerr rule property.
◼ Description
When the -through option of set_false_path is specified for the asynchronous set or reset pin of register, the
operation is different in PrimeTime and ICC/EDI. PrimeTime sets a timing path through the set or reset pin as
a false path, while ICC/EDI does not set it as a false path. Therefore, this rule reports the specified point when
the -through option is specified for the asynchronous set or reset of register.
The asynchronous reset pin of register is specified for the object of optional -through
f1 f2 f3 f1 f2 f3
D Q Q D Q D Q Q D Q
CK RB CK CK RB CK
GCA/PTC MESSAGE
UDEF_SyncRstSetExceptionThrough :
◼ Action
When set_false_path is set through reset pin of register, please re-set set_false_path in 2 paths, which are at
the register before the register with through point and at the next regsiter after the register with through point.
◼ GCA/PTC LIMITATIONS
・Reports when the specified point of -through option is other than the asynchronous set / reset pin of the
register.
212/257頁
➢ Limitation: Rule-set V02.00.00 or earlier
It is also reported when the asynchronous set/reset pin is not specified with the -through option of the
set_false_path command. For this reason, the designer must confirm that the specified point of the -through
option is not an asynchronous set/reset pin. If the specified point is not an asynchronous set/reset pin, it must
be treated as a falseerror.
* Rule-set V02.00.00 previous was reported without -through option of set_false_path command specifies the
"asynchronous set / reset pin". Therefore, it is false error unless you specify "asynchronous set / reset pin" in
-through option. This issue is resolved in the Rule-set V02.01.00.
213/257頁
R0074 set_false_path constraint is specified and there exists a crossing among the clocks
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC No applicable rule
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
The DomainInfo flags an informational message in the following cases:
・ If set_false_path constraint is only specified and there exists a crossing among the clocks.
・ If set_clock_uncertainty constraint is only specified and there exists a crossing among the clocks.
The DomainInfo rule generates a .sgdc file that contains all the domain information inferred from the SDC
constraints. This domain information can be used for further analysis.
-to
D Q
clk2 CK
I2 out1
D Q
D Q Z
clk1 CK clk1 CK
D Q
clk2 CK
I1
in1 D Q D Q
Z
clk1 CK clk3 CK
-from
GCA/PTC MESSAGE
UDEF_NoSetFromToFalsePath :
UDEF_NoSetFromToMultiPath :
・Rule-Set V02.01.00 or later
Option "option" is not specified by the command in the SDC file "SDCfile "
◼ Description
A false-path constraint is usually set to paths between clock domains because they are normally excluded from
timing analysis. If no false-path constraint is given, the paths are also subjected to timing analysis, and
unnecessary timing analysis may be performed. For this reason, checks are made to see if a false-path
constraint is given to paths between clock domains
FFA FFB
CLK1
CLK2
◼ GCA/PTC MESSAGE
No adaptation rule in GCA now.
However, report_clock_crossing command can confirm false paths between clock domains.
◼ Action
Check the path between clock domains to see whether the "set_false_path" specification is required.
After checking, modify the SDC description to specify "set_false_path" when required.
215/257頁
R0077 Prohibition of specification for different values to the same path in
set_multicycle_path
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency ■semantics ■unclear □TDL □check rule user’s manual
GCA UDEF_DiffvaluetoPathSetMultiPath1
UDEF_DiffvaluetoPathSetMultiPath2
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When the different value with ‘-through’ option of set_false_path is specified to the same path, the operation is
different between PrimeTime and ICC. In case of setup, both Prime time and ICC validate a smaller set value
of set_multicycle_path, on the other hand, in case of hold, Prime Time validates a bigger set value of it, but
ICC calculates hold value from a combination of a bigger set value of setup and a smaller set value of hold.
Therefore, this rule reports set points as an error when the different value with ‘-through’ option of
set_false_path is specified to the same path
FF
1D Q
and1
CK Y
and2 FF
Different value on the same path D2 Q
CK
<setup>
Both PT and ICC make more small value 2 effective from (1) and (3).
<hold >
PT makes more larger value 2 effective from (2) and (4). But ICC calculate hold value from
combination of the large value in (1) and (3), and the small value in (2) and (4).
FF
1D Q
and1
CK Y
and2 FF
In the areas that affect the same path
does not match the start/-end option D2 Q
CK
GCA/PTC MESSAGE
UDEF_DiffvaluetoPathSetMultiPath1 :
"Difference path multiplier values are setting to between to muticycle path "file_line" and "file_line_ow"
UDEF_DiffvaluetoPathSetMultiPath2 :
Difference -start/-end option are setting to between to muticycle path "file_line" and "file_line_ow"
◼ Action
Please visually confirm to summarize to one if some multicycle paths are on the same timing path.
◼ GCA/PTC LIMITATIONS
1) When the constraint is overwritten (UIC-056 is the flag), the original constraint and the overwritten constraint
are held within GCA in a mixed manner, causing a false error.
set_multicycle_path 5 -from CLK -through mod1/in1 ;# -- M0
set_multicycle_path 5 -through mod1/in1 ;# -- M1
set_multicycle_path 3 -through mod1/in1 ;# -- M2
Although a specification error in different multicycle counts on the same path is expected for M0 and M2, since
M1 and M2 are mixed together, errors are detected both for M0 and M1 and for M0 and M2.
2) Rule-set V02.00.00 previously reported to the UIC-0009 is a double at the time of the check at the SDC
read (UserMessage Browser to display). This issue is resolved in the Rule-set V02.01.00.
In addition, the contents of the UserMessage Browser of the GUI, can be output in
"report_constraint_analysis -output <output file name> -include {user_messages}"
3) GCA is not recognize the forced start / end point by set_min_delay / set_max_delay. Therefore, it can not
be detected even if there is a duplicate of the associated path to it.
4) Rule-set V02.00.00 earlier is very time consuming to detect the duplication of the path. It takes very run time
depending on this for design. This issue is solved in the Rule-set V02.01.00.
When performing SDC verification (analyze_design), be sure to enable EXC_0014 and verify this rule. If you
use the Renesas standard Template (IP/Layout/STA), there is no additional setting.
217/257頁
R0078 set_multicycle_path setup or hold over or under defined
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA UDEF_InvalidValueMultiPath
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
This rule detects the set_multicycle_path command in which the value specified in the -setup option is not
greater than the value that is set in the -hold option. When the start and end clocks have different waveforms,
this rule has meaning if the -start and -end options are explicitly specified.
set_multicycle_path command with both -setup and -hold options are set to value 1
GCA Message
UDEF_InvalidValueMultiPath :
The multiplier of set_multicycle_path command is set on invalid value.
Setup[Rise] : %d, Setup[Fall] : %d, Hold[Rise] : %d, Hold[Fall] : %d.
Source File. file , Line number
GCA Message
UDEF_InvalidValueMultiPath :
The multiplier of set_multicycle_path command is set on invalid value.
Setup[Rise] : %d, Setup[Fall] : %d, Hold[Rise] : %d, Hold[Fall] : %d.
Source File. file , Line number
◼ Action
Please check the cycle number of the multi-cycle path on the same timing path.
218/257頁
R0080 Prohibition of specification for the output pin of cell on clock line
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC EXC_0008
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
There are cases in which the layout tool and PrimeTime make different interpretations if the output pin of a cell
on the clock line is specified in the -from option of set_min/max_delay. While PrimeTime performs timing
analysis using the the path delay from the specified pin up to the clock pin of the sequential cell and the
maximum and minimum delay constraints, the layout tool behaves differently. For this reason, do not designate
the output pin of a cell on the clock line as the starting point.
The output pin of the cell on the clock line is specified for the object of optional -from
l1
CLK
Q
In the above case, the specified point is valid as the PrimeTime start point, but the clock latency is different
because it is invalid in the layout tool.
GCA/PTC MESSAGE
EXC_0008 :
A exception is forcing start and/or end points, breaking the clock network.
◼ Related message
If set_input_delay, set_min_delay, set_max_delay is given to a place that is not a start point, it will be forced
to start point. For these limitations, GCA /PTC reports UIC-011 when reading SDC. UIC-011 can be confirmed
with “UserMessageBrowser”.
ex) Forcibly set output pin as start point with set_min_delay command
ptc_shell> set_min_delay 1.0 -from [get_pins mux_clk/Z]
Warning: set_min_delay is forcing pin 'mux_clk/Z' to be a timing startpoint. (UIC-011)
219/257頁
R0082 Reporting any set point that is specified in set_min/max_delay as the start point
with an object other than the clock to an FF/Latch/hard module or external input
R0082
Severity RTL Layout I/F STA IP
n/a Warning Warning Info
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC UDEF_ReportFromNonClkSetMinMaxDly
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When giving the minimum/maximum delay as constraint values to between 2 points on a timing path with
set_min_delay/set_max_delay, the starting point of the path is specified using the -from option. It must be
noted that the path subject to timing constraints varies depending on the starting point. This rule reports the
point that is specified in the -from option to urge the user to check the path under the timing constraint when
an object other than the clock of an FF or latch or external input port is specified in the -from option.
FF0 FF1
D Q D Q
I INV
CK CK
GCA/PTC MESSAGE
UDEF_ReportFromNonClkSetMinMaxDly :
set_max_delay and set_min_delay of -from option is not set on neither the clock pin of registers nor input
ports pin.
220/257頁
R0084 When the ending point of the timing constraint path is set to besides a data pin of FF and an
output port, the setting point specified by -to option is reported.
Severity RTL Layout I/F STA IP
n/a Warning Warning Info
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC UDEF_ReportToNonDataSetMinMaxDly
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
set_min_delay/set_max_delay command specifies the required minimum/maximum delay for timing path in
the current design. And -to option specifies ending point of the timing path. It is necessary to note the setting
point, because a path for the timing constraint is different according to the place in the ending point. When the
ending point of the timing constraint path is set to besides a data pin of FF and an output port, this rule report
the setting point specified by -to option for confirmation of timing constraint path.
INV
FF0 ZN FF1
D Q D Q
CKend point CK
GCA/PTC MESSAGE
UDEF_ReportToNonDataSetMinMaxDly :
set_max_delay and/or set_min_delay of -to option are not set on neither the data pin of registers nor output
ports "pin" in the SDC file "SDCfile".
◼ Description
This rule flags paths with set_max_delay and set_min_delay constraints set but the maximum delay value is
less than the minimum delay value.
221/257頁
This rule does not check for existence of the path; it just checks whether both maximum and minimum
delay values are specified for the path and the maximum delay value is not less than the minimum delay value.
GCA/PTC MESSAGE
EXC_0010 :
A 'exception' has no corresponding min_delay for a max_delay exception.
EXC_0011 :
A 'exception' has no corresponding max_delay for a min_delay exception.
Specification for the path and the maximum delay value is not less than the minimum delay value.
GCA/PTC MESSAGE
EXC_0009 :
Inconsistent 'exception'; min_delay must be less than max_delay.
222/257頁
R0087 set_min/max_delay reference points are not connected
R0087
Severity RTL Layout I/F STA IP
n/a Warning Warning Error/Warning
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC EXC_0006 (IP:Error)
UDEF_InvalidPartialException (IP:Warning)
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
If you specify set_min_delay/set_max_delay to a point where there is no path in the specified section,
PrimeTime does not generate an error. If the layout tool is executed with the same constraints, the processing
time may be long, so you should not specify set_min_delay/set_max_delay to a point where there is no path
in the specified section.
Detected when set_min_delay/set_max_delay is specified for a point where there is no path in the specified
section.
In this rule, when points are set using “*” (wild card), points that do not have a physical path are also detected.
FF1 FF2
D Q D Q
CK CK
FF3 FF4
D Q D Q
CK CK
GCA/PTC MESSAGE
EXC_0006 :
A 'exception' does not specify any valid paths.
UDEF_InvalidPartialException:
Exception defined at 'file_line" is not specify partially valid paths.
◼ GCA/PTC LIMITATIONS
EXC_0006 cannot detect any partially nonexistent paths.
223/257頁
R0092 Timing Constraints Are Given to Paths Consisting Only of Combinational Logic
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category □consistency □semantics □unclear □TDL ■check rule user’s manual
GCA/PTC UDEF_ComboPath_001
UDEF_ComboPath_002
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
If no timing constraint is given to a path consisting only of combinational logic, timing analysis may not be
performed correctly for the path. For this reason, checks are made for the following items to see if timing constraints
are given to paths consisting only of combinational logic:
• Whether a constraint is given to paths consisting of combinational logic
• Whether both max delay and min delay constraints are given to paths consisting of combinational logic
In the following circuit configuration, when no constraint is defined for the path from DATA1 to DATAOUT, the
following message is output.
DATA1
DATAOUT
DATA2
GCA/PTC MESSAGE
UDEF_ComboPath_001:
There are no timing constraints set for a combinational path from input port 'input' to output port 'output'.
In the above circuit configuration, when either of "set_max_delay" and "set_min_delay" is only given for the
path from DATA1 to DATAOUT, the following message is also output.
GCA/PTC MESSAGE
UDEF_ComboPath_002:
There are no timing constraints set for a combinational path from input port 'input' to output port 'output'.
Min-Max delay are not fully specified for a combinational path from port/pin " from_port_pin" to port/pin
" to_port_pin". MaxRise/MaxFall/MinRise/MinFall "SpecVal".
◼ Action
Check each detection path consisting of combinational logic to see whether there is no problem when no
constraint is given.
If there is a problem, modify the SDC description.
224/257頁
R0093 No Inconsistent Constraint Is Given to Paths Consisting Only of Combinational Logic
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency ■semantics □unclear □TDL □check rule user’s manual
GCA/PTC EXC_0009
EXC_0010
EXD_0014
EXD_0013
EXD_0015
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
If an inconsistent constraint is given to a path consisting only of combinational logic, timing analysis may not be
performed for the path under the condition the designer intends.
For this reason, checks are made for the following items to make sure that there is no inconsistency in constraints
given to paths consisting only of combinational logic:
• Whether there is no min value greater than the relevant max value
• Whether the sum of the "set_input_delay" and "set_output_delay" values does not exceed the relevant
clock period
• Whether the sum of the "set_input_delay" and "set_output_delay" values does not exceed the
"set_max_delay" value.
◼ Sample circuit configuration and constraints
When the "set_max_delay" value is smaller than the "set_min_delay" value as shown below, the following
message is output.
GCA/PTC MESSAGE
EXC_0009 :
Inconsistent 'exception'; min_delay must be less than max_delay.
ex)
Inconsistent 'max_min_delay exception at test.sdc, line 33; test.sdc, line 34'; min_delay must be less
than max_delay.
When the sum of the "set_input_delay" and "set_output_delay" values exceeds the clock period, the following
message is also output.
GCA/PTC MESSAGE
EXD_0014:
The input/output delay set on the combinational path from 'from_object_type' 'from_object' to
'to_object_type' 'to_object' is incorrect.
225/257頁
When the sum of the "set_input_delay" and "set_output_delay" values exceeds the "set_max_delay" value, the
following message is also output.
GCA/PTC MESSAGE
If the sum of set_input_delay and set_output_delay exceeds the value of set_max_delay, it is not checked.
GCA/PTC MESSAGE
EXD_0013:
The output delay at 'object_type' 'object' has inconsistent values.
◼ Action
Check if there is a problem with the reported content of the path detected by the combinational logic.
If there is a problem, correct the SDC.
◼ GCA/PTC LIMITATIONS
This rule does not check any condition in which the sum of set_input_delay and set_output_delay exceeds the
value of set_max_delay. It does not check any condition when the min value of set_input_delay is greater than
the max value.
226/257頁
R0095 A Combinational Circuit Contains No Timing Loop.
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category consistency semantics ◼unclear TDL check rule user's manual
GCA/PTC LOOP_001
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When a loop circuit consists of only a combinational circuit, tools automatically cut a timing loop at a point on
the loop path. At this time, a timing path to be verified may be cut. The cut point is different among tools, so
the timing analysis result becomes inconsistent.
GCA/PTC MESSAGE
LOOP_001 :
Arc from pin 'from_pin' to 'to_pin' is disabled due to combinational loop.
◼ Action
Use the set_disable_timing command to cut the timing loop.
Cut and carry out the timing loop from an input pin to the output pin of a cell of a cell by a set_disable_timing
command. When only an input pin is set up, there are the following limitations.
◼ Limitations
If only the input pin of a cell is set up when check_timing -loop and a report_disable_timing command are used
by PrimeTime and loop information is checked (restrictions 1), There is fault reported without disabl(ing) the
timing arc of input pin "output pin from A"" Y", and it is.
It is during an improvement of a function at a tool vendor.
Originally, the restrictions as which the set_disable_timing command specified only the "pin" also become
effective. The false error was outputted on the problem of check_timing or a report_disable_timing command.
At the time of a set_disable_timing command setup, it is specifying the input pin (-from) of a cell, and the output
pin (-to) of a cell (restrictions 2).
◼ Description
PrimeTime enables false paths if a net is specified in the -through option. ICC (DC) supports no net with the -
through option. Therefore, PrimeTime and ICC (DC) yield different timing analysis results.
PrimeTime accepts the constraint, but ICC(DC) does not support false path through nets. This causes
discrepancy between PrimeTime and ICC(DC) timing results
GCA/PTC MESSAGE
No applicable rule
◼ Limitations
This is a timing exception constraint that should be reported in UIC-076 (Error Messages) of GCA/PTC, but is
not reported in GCA/PTC (up to 2016.12-SP1).
UIC-076 (Information) The '-through' option for net '%s' is interpreted to imply its load pins.
229/257頁
R0122 Set Value to Cell and Clock Pin for set_mux_delay or set_min_delay Must Be Same
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category □consistency □semantics ■unclear □TDL □check rule user’s manual
GCA/PTC UDEF_exception_pin_cell
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
PrimeTime takes the latest settings; ICC(DC) takes the most pessimistic settings. This causes discrepancy
between PrimeTime and ICC(DC) timing results.
GCA/PTC Message
UDEF_exception_pin_cell
set_max_delay or set_min_delay from pin 'pin' is conflicting with another constraint specified on cell
'cell'. Please change the SDC specification: 'pin_constraint_sdc' and 'cell_constraint_sdc'.
◼ Related message・rule
◼ Description
It is recommended that the -from and -to options be specified in pair to minimize errors in minimum
delay/maximum delay specification. This rule detects set_min_delay or set_max_delay commands in which
either one or both of the -from and -to options are missing.
GCA/PTC MESSAGE
UDEF_NoSetFromToSetMinMaxDly :
・Rule-Set V02.01.00 or later
Option "option" is not specified by the command in the SDC file "SDCfile".
◼ Action
When specifying set_min_delay or set_max_delay, specify the start and end points in pair to make the set
points clear.
231/257頁
R0131 Prohibition of specification of set_min/max_delay that affects other paths by being specified
for a point other than start/end points
Severity RTL Layout I/F STA IP
n/a Error Error Error
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC EXC_0005
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
If points that are neither start nor end points are specified in -from and -to when the minimum and maximum
delays are given as constraint values to between two points on a timing path using
set_min_delay/set_max_delay, the specified points become the new start and end points. Unintended timing
analysis will be performed if the new start/end points exist on a path other than the path that is specified in
set_min_delay/set_max_delay.
The points specified in -from/-to become the new start/end points even if there is no path between BF0/Z and
BU1/A. Therefore, the default path from FF0/CLK to FF1/D is not subjected to timing analysis.
Path subject to timing constraints
set_max_delay
FF2 BF1 FF3
Since latch DL1 is fixed in the through mode, the Data pin DL1/D of the latch is not an end point. Consequently,
the default path DL1/D to FF3/D is not subjected to timing analysis.
Case 0
GCA/PTC MESSAGE
EXC_0005 :
A 'exception' will create startpoints or endpoints and break other timing paths through those pins.
232/257頁
R0132 Exclusive setting must be made for convergence clocks
Severity RTL Layout I/F STA IP
n/a Warning/Info Warning/Info Warning/Info
Category consistency ◼semantics unclear TDL check rule user’s manual
GCA/PTC UDEF_ConvClkOnComb (Warning)
UDEF_ConstUnSelPinOnClkMUX (Warning)
UDEF_NoConvClkOnMUX (info)
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
For a path between F/Fs that are driven by the clock output from a MUX or similar device into which two or
more clocks merge, an error will be detected unless an exclusive setting (false path) is configured for the timing
paths between different clocks for that path. Although no asynchronous transfer occurs on this path because
the two F/Fs are configured always to be driven by the same clock, pessimistic detection is likely to bring in
because not only the timing paths between synchronous clocks but also timing paths between different clocks
are subjected to timing analysis.
Different clock propagation to the two or more input pins of conbinational gates except for MUX gates.
Path subject
CLK1
D0
D1
CLK2
GCA/PTC MESSAGE
UDEF_ConvClkOnComb
The combinational gate (inst:'instance', lib_cell:'reference_name') has more than one input-pins w/ clocks.
Please see the input-pins list ('inputpins_list').
Clock propagation to one of the Data pin of a MUX gate with the select pin which is not fixed
Path subject
SEL =1 -> CLK
SEL =0 -> DIN
FFA FFB
CLK
D0
DIN D1
0/1
SEL
Check the clock propagation to Data pin D0 with the selecter pin which is not fixed at 0 or 1
233/257頁
create_clock -period 10 -waveform {0 5} -name CLK
GCA/PTC MESSAGE
UDEF_NoConvClkOnMUX
The MUX gate (inst:'instance', lib_cell:'reference_name') which is on a clock-tree, has no clocks on the other
input_pin. Please check inputs list ('inputpins_list').
Clock propagation to one of the Data pin of a MUX gate with the select pin which select the clock propation
pin
Path subject
SEL =1 -> CLK
SEL =0 -> DIN
FFA FFB
CLK
D0
DIN D1
1
SEL
Check the clock propagation to Data pin D0 with the selecter pin which is fixed at 1
GCA/PTC MESSAGE
UDEF_ConstUnSelPinOnClkMUX
The MUX gate (inst:'instance', lib_cell:'reference_name') on a clock-tree has no clocks on the unselected
input_pins. Please see for information list ('inputpins_list').
◼ Action
Check the following and correct the SDC so that a false path is set up for paths between F/Fs with different
clocks if all of them are evaluated to be true:
⚫ There is a path between F/Fs.
⚫ The clock pins of the F/Fs are connected to the same line.
[Example of an action]
Add the following constraints:
◼ Description
When there is overlap with the object that is specified by the other options, Object that is specified by the –
through option of timing exception command is prohibited becase the PrimeTime and ICC, the interpretation
is different. To detect the case where there is an overlap of the object of the same type.
U1
FFA FFB
CLK1
CLK2
(2) hierarchy pin and leaf pin object that is specified in the –through option
Be careful when carrying out the process of moving a constraint on the leaf pin.
SUB1
U1
OUT
IN
FFB
FFA
CLK1
CLK2
GCA/PTC MESSAGE
UDEF_ExceptionSameThrPoint
timing exception ‘exception_type’ has common objects ‘common_object’ in ‘exception’ ‘fileline’
◼ Action
Please delete the redundant object.
◼ GCA/PTC LIMITATIONS
Duplication of the same object can be detected as a hierarchy pin and hierarchy pin. However, example (2)
can not be detected.
235/257頁
R0134 The -start/-end options must be specified explicitly for a multicycle path between clocks of
different frequencies
Severity RTL Layout I/F STA IP
n/a Warning Warning Warning
Category consistency ◼semantics unclear TDL check rule user’s manual
GCA/PTC UDEF_NoSetStartEndMultipath
LITMUS No applicable rule
ConCert No applicable rule
(Dynamic Simulation)
◼ Description
When specifying multicycle paths between clocks of different frequencies, it is necessary to specify explicitly
which of the start or end clock is to serve as the reference clock using the -start or -end option. This rule detects
an error if either -start nor -end options is missing when the frequencies of the start and end clocks differ. An
error is also detected unless the -start or -end option is specified so that the clock with a higher frequency is
designated as the reference clock.
FFA FFB
CLK1
CLK2
(2) -start option for End point with a high clock frequency
(3) -end option for Start point with a high clock frequency
GCA/PTC MESSAGE
UDEF_NoSetStartEndMultiPath
・Rule-Set V02.01.00 or later
'option' in the SDC file 'file_line'.
◼ GCA/PTC LIMITATIONS
If you set start point(-from), through point(-through) and end point(-to) are the same path. Warning report were
output in multi lines for the constraints of –setup and –hold option separately.
U1
Set the same path
① Setup FFA FFB
② Hold
CLK1
CLK2
If you set set_multicycle_path command the following two are on the same path. Therefore, during the Warning
report (2) the (1) and (2) of both command lines.
create_clock –period 10 [get_port CLK1]
create_clock –period 20 [get_port CLK2]
(1) set_multicycle_path 3 -setup -start –from [get_clocks CLK1] –through U1/X –to [get_clock CLK2]
(2) set_multicycle_path 2 –hold –from [get_clocks CLK1] –through U1/X –to [get_clock CLK2]
237/257頁
S0004 The pin specified in FalsePath must not transition to <cycle number -1>
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
GCA/PTC No applicable rule
LITMUS No applicable rule
ConCert FP_<Cmd-ID>(_<NUM>)
(Dynamic Simulation)
◼ Description
The verification methods using False path and Multicycle Path SVA are similar. The SVA of this rule verifies
that there is no transition at the specified pin in the time after the signal of Start point transitions on the pin
specified by the set_false_path command on the logic simulation/emulation. If the signal of the specified pin
inadvertently transits once or more on the functional simulation/emulation, there is a discrepancy between the
SDC and the functional simulation/emulation environment. The SDC constraint or the logic
simulation/emulation environment [reset signal, stable (expected number of cycles of the signal transition No
applicable rule)] must be reviewed (when SDC is as designed).
The above set_false_path is specified only with -through. The expected value of this constraint is that the
signal at the AND / Y pin does not change after CLK1 changes. Therefore, for this false path, use the following
SVA and confirm that there is no signal change of the specified pin.
・Properties
With this property, after one cycle of the evaluation clock (CLK) startup, excluding the non-evaluation period
(RST), the signal is output for a specific period (FP cycle number minus 1) on all pins specified by the false
path constraint. ) Can be confirmed not to transition.
assert property
(p_fp_stable_all( `TOP_INST.CLK1,`CHK_DISABLE_FP,$stable(`TOP_INST.AND.Y),`CYCLE));
`TOP_INST,` CHK_DISABLE_FP, and `CYCLE should be defined before executing SIM/HWE using the define
macro.
・`TOP_INST : Netlist top hierarchy name
・`CHK_DISABLE_FP : Set a reset signal that is an FP check exclusion condition.
・`CYCLE:Set an arbitrary period specified by the user (period when the specified pin does not change).
238/257頁
SIM/HWE result
SIM(VCS)
HWE(Palladium)
◼ Action
The false path SVA is expected not to change the signal of the set_false_path command pin within the set
number of cycles (defined by `CYCLE in the define macro). In the case of the above example, there is a period
that is not the expected operation because there is a Fail judgment more than once. Therefore, make sure that
the selection of the reset signal is appropriate, the SVA checker input to the SIM / HWE environment is
appropriate, and whether the number of cycles is correct.
◼ Limitations
・-hold option is not subject to SVA under this rule. Please confirm the validity of SDC by rule check.
・If set_false_path is specified only with a clock, this rule does not apply to SVA. Please confirm the validity
of SDC by rule check.
239/257頁
S0005 The pin specified in MultiCyclePath must not transition to <cycle number -1>
Severity RTL Layout I/F STA IP
n/a n/a Error n/a
Category ■consistency □semantics □unclear □TDL □check rule user’s manual
◼ Description
The verification methods using False path and Multicycle Path SVA are similar. The SVA of this rule verifies
that there is no transition in the specified pin at the time after the signal of Start point transitions on the pin
specified by the set_multicycle_path command on the logic simulation / emulation. If the signal of the specified
pin changes unintentionally on the logic simulation/emulation, there is a discrepancy between the SDC and
the logic simulation/emulation environment. SDC constraints or logic simulation/emulation environment [reset
signal, stable (expected number of cycles of signal transition No applicable rule)] must be reviewed (when
SDC is as designed).
The above set_multicycle_path is specified only with -through option. The expected value of this constraint is
that the signal at the AND Y pin does not change after CLK1 changes. Therefore, for this multicycle path, use
the following SVA and check that there is no signal change of the specified pin.
・ Properties
With this property, except for the period not to be evaluated (RST), after one cycle of the rising edge of the
evaluation clock (CLK), the signal is output for a specific period (FP cycle number -1) on all pins specified by
the false path constraint. ) Can be confirmed not to transition.
property p_mcp_stable_all(CLK, RST, STABLE_COND, SETUP);
@(posedge CLK) disable iff (RST)
##1 !STABLE_COND |=> STABLE_COND[*SETUP-1];
endproperty
240/257頁
・SVA (assertion) converted from SDC
This SVA is obtained by applying actual clock pins and specified pins to the above properties.
assert property
(p_mcp_stable_all( `TOP_INST.CLK1,`CHK_DISABLE_MCP,$stable(`TOP_INST.AND.Y),4));
`TOP_INST and` CHK_DISABLE_MCP should be defined before SIM/HWE execution using define macro.
・`TOP_INST : Netlist top hierarchy name
・`CHK_DISABLE_MCP :Set the reset signal that is an MCP check exclusion condition.
・`CYCLE:Set an arbitrary period specified by the user (period during which the specified pin does not
transition).
SIM/HWE result
SIM(VCS)
HWE(Palladium)
◼ Action
The SVA of false path expects that the set_false_path command pin will not change during the set number of
cycles (defined by `CYCLE in the define macro). In the case of the above example, there is a period that is not
the expected operation because there is a Fail judgment more than once. Therefore, check whether the
selection of the reset signal is appropriate, whether the SVA checker input to the SIM/HWE environment is
appropriate, and whether the number of cycles is correct.
◼ Limitations
・-hold option is not subject to SVA under this rule. Please confirm the validity of SDC by rule check.
・If set_multicycle_path is specified by clock only, this rule does not apply to SVA. Please confirm the validity
of SDC by rule check.
241/257頁
7.7. Others
7.7.1. set_disable_timing
The set_disable_timing command disables the specified timing arc. Thus, timing analysis is not applied to the
timing path including the disabled route. When a loop due to a combination circuit exists in the design, the tool
automatically determines the disconnection point and disconnects the loop. This disconnection point may vary
with tools. For this reason, engineers should use the set_disable_timing command to explicitly disconnect the
timing arc.
◆ Recommended usage
・ Specify the name of the pin on which you wish to disconnect the timing arc.
Setting example when disconnecting the timing arc from pin H02 to pin N01 of instance cell U3
set_disable_timing -from [get_pins H02] -to [get_pins N01] [get_cells U3]
◆ Recommended example of command description
・ When disconnecting the timing arc on a specific pin, set only the pin name.
set_disable_timing [get_pins <pin name>]
・ When disconnecting the timing arc in a specific instance, indicate the names of the instance and pins (-
from, -to).
set_disable_timing -from <pin name> -to <pin name> [get_cells <instance name>]
◆ Notice
・ When the set_false_path command is used, delay and noise are calculated in the timing analysis.
However, because this set_disable_timing command disables the specified timing arc, timing analysis is
not applied to the specified timing path.
・ Specific library cells (get_lib_cells) and library cell pins (get_lib_pins) can also be specified as objects for
the set_disable_timing command. However, the set_disable_timing command is applied to all instance
cells in the design that uses these library cells. Therefore, unintended timing paths may be deleted (= no
path).
242/257頁
◆ Supplement
The following provides setting examples.
Differences in timing path analysis depending on whether the set_disable_timing setting is present
In the following example, when set_disable_timing is not set, the timing paths F1 to F3 and F2 to F3
(Constrained Path) are analyzed. The following describes cases where the set_disable_timing command is
specified.
◼ Description
It is not effective for disable timing that set_disable_timing is specified for the data pin of a register. Therefore,
this rule reports its data pin as an error when set_disable_timing is specified
at the pin of a register.
f1 f2
D Q D Q
CK CK
CLK ②
GCA/PTC MESSAGE
UDEF_FFDataSetDisableTimingObj :
set_disable_timing command is specified on the data pin of register('cell').
◼ Action
To disable the above path, specify the f2 clock as the start point and the data pin as the end point as shown
below.
set_disable_timing –from CK –to D [get_cells f2]
246/257頁
8. Appendix
A template file is loaded during SDC checking.
It contains the flag parameters that specify whether to execute check rules and to change severity, and rule parameters that control the rule check specifications. Renesas
Electronics prepares template files corresponding for each design phases.
Table given below shows the relationship between the GCA/PTC rules and the design phases.
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
The value specified as a Constant logic SDC_CASE_ANALY
S0001 None None n/a n/a n/a Error
value must match the actual behavior SIS
Confirm that the pin specified as SDC_SENSE_ANAL
S0002 None None n/a n/a n/a Error
ClockSense does not transition YSIS
<Clock
Confirm that the settings specified in
Name>___<Additiona
the derived clock (items that can be
S0003 None None l information on the n/a n/a n/a Error
checked with SVA) match the actual
clock>___<checker_t
operation
ype>
The pin specified in FalsePath must FP_<Cmd-
S0004 None None n/a n/a n/a Error
not transition to <cycle number -1> ID>(_<NUM>)
The pin specified in MultiCyclePath
MCP_<Cmd-
S0005 must not transition to <cycle number - None None n/a n/a n/a Error
ID>(_<NUM>)
1>
Prohibition of set_case_analysis
R0001 HIER_001 None None n/a n/a Error Error
definition for the middle hierarchical pin
Prohibition of specification of constant
R0002 UDEF_FixedMuxSetCaseAnalysis None None n/a Error Warning Warning
for all data pins of multiplexer
Clock driven by a constant value or
R0003 CLK_0006 None None n/a Error Info Info
hanging
set_case_analysis Settings Are Not
R0004 CAS_0003 None None n/a Error Error Error
Made to Conflict with Each Othe
247/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
R0005 Constrained clock not used as a clock CLK_0021 None None n/a Error Warning Warning
R0005 (Same as above) CLK_0026 None None n/a Warning Warning Warning
Multiple paths exist from the clock pin
R0006 of a sequential cell to different clock CLK_0024 None None n/a Info Info Info
sources
Prohibition of
R0007 create_clock/create_generated_clock CLK_0015 None None n/a Error Error Error
definition for the middle hierarchical pin
A Clock Constraint Is Set to All
R0008 DES_0001 None None n/a Error Error Error
Register Clock Pins
R0008 (Same as above) DES_0002 None None n/a Error Error Error
It Is Specified That All Clocks Are
R0010 Treated as Ideal (before CTS CLK_0034 None None n/a Error Error n/a
Execution)
It Is Specified That All Clocks Are
R0011 Treated as Propagated (after CTS CLK_0033 None None n/a n/a n/a Error
Execution)
A Clock Does Not Converge through
R0012 CLK_0030 None None n/a Error Error Error
More Than One Path
A Clock Is Set to the Point at Which the
R0013 UDEF_ClockSetPointCheck None None n/a Error Warning Warning
Clock Signal Is Generated
Prohibition of overlap between
R0014 create_clock commands on the same UDEF_TransAnotherClock None None n/a Error Error Error
clock network
Clock Waveform Definitions Are Set as
R0016 UIC-068 None None n/a Warning Warning Warning
Clock Constraints
Prohibition of create_generated_clock
R0017 UDEF_GclockMasterPinOnHierPin None None n/a Error Error Error
definition for the middle hierarchical pin
Prohibition of specification of the -invert
option in create_generated_clock that
R0018 CLK_0036 None None n/a Error Error Error
is incompatible with the circuit
configuration
248/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
Do not specify different value with –
divide_by option of
R0019 create_generated_clock command CLK_0020 None None n/a Error Error Error
from divide ratio which is decided by
the circuit
R0019 (Same as above) CLK_0008 None None n/a Error Error Error
R0019 (Same as above) CLK_0032 None None n/a Error Error Error
A Correct Source Clock Is Specified for
R0020 CLK_0016 None None n/a Error Error Error
a Generated Clock
R0020 (Same as above) CLK_0017 None None n/a Error Error Error
There Is One Delay Calculation Path UDEF_GclockMultiDelayCalcPathChec
R0023 None None n/a Error Warning Warning
for a Generated Clock k
Prohibition of set_clock_latency
R0024 UDEF_ClkLatOnHierPin None None n/a Error Error Error
definition for the middle hierarchical pin
Detection of the clock pin in which
R0025 clock latency is not defined (Before CNL_0005 None None n/a Info Info n/a
CTS)
Source or network latency not defined
R0026 UDEF_VclkSrcLatencyCheck None None n/a Info Info Info
for a virtual clock
Necessary Conditions Are Defined for
R0027 CNL_0005 None None n/a Info Warning Warning
Latency
R0028 A Clock Latency is Set (Before CTS) CNL_0005 None None n/a n/a Info n/a
R0028 (Same as above) CSL_0004 None None n/a n/a Info n/a
The Source Latency Is Set for a
R0029 CSL_0004 None None n/a n/a Info n/a
Generated Clock. (Before CTS)
set_clock_transition should not be set
R0030 CTR_0006 None None n/a n/a n/a Error
on clock in postlayout (After CTS)
Clock transition value set by using
R0031 set_clock_transition is outside TRN_0001 None None n/a Error Error Error
technology bounds
Clock should be set transition time
R0032 CTR_0005 None None n/a Warning Warning n/a
(Before CTS)
249/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
Prohibition of set_clock_uncertainty
R0033 UDEF_ClkUncOnHierPin None None n/a Error Error Error
definition for the middle hierarchical pin
Uncertainty Is Defined for Clock
R0034 UNC_0003 None None n/a Error Warning Warning
Constraints
Confirm the lack of conditions in the
R0035 UNC_0003 None None n/a Error Warning Warning
definition of uncertainty
Prohibition of set_input/output_delay
R0037 EXD_0008 None None n/a Error Error Error
definition for the middle hierarchical pin
R0037 (Same as above) UDEF_EXD_0008_NoSeqPin None None n/a Error Error Error
Input/Output constraints are incorrect
R0038 UDEF_ZeroValueSetInOutDly None None n/a Error Error Error
relative to a range of clock period
R0038 (Same as above) UDEF_MinusValueSetInOutDly None None n/a Error Error Error
Necessary Conditions Are Defined for
R0040 EXD_0004 None None n/a n/a Error Error
an External Port Constraint Definition
Input/output port not constrained by
R0042 EXD_0001 None None n/a Error Warning Warning
set_input_delay/set_output_delay
R0042 (Same as above) EXD_0002 None None n/a Error Warning Warning
R0042 (Same as above) EXD_0003 None None n/a Error Warning Warning
Check conflicts in the external terminal
R0052 EXD_0009 None None n/a Error Error Error
constraint values
R0052 (Same as above) EXD_0010 None None n/a Error Error Error
R0052 (Same as above) EXD_0013 None None n/a Error Error Error
R0052 (Same as above) EXD_0015 None None n/a Error Error Error
A Required Input or Output Delay Is
R0054 UDEF_InputDelayCheck_0001 None None n/a Error Error Error
Set for All Connected Clock Domains
R0054 (Same as above) UDEF_OutputDelayCheck_0001 None None n/a Error Error Error
set_input_transition must be defined on
R0056 clock ports in postlayout stage (After DRV_0001 None None n/a Info Info Error
CTS)
250/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
No input transition constraints defined
R0057 DRV_0001 None None n/a Info Info Error
for inputs/inouts
Load on output or inout ports not set or
R0058 CAP_0001 None None n/a Info Info Warning
zero
Prohibition of specification for the data
R0059 UDEF_FFDataSetDisableTimingObj None None n/a Error Error Error
pin of register
Prohibition of set_disable_timing
R0060 definition for the bi-directional middle HIER_001 None None n/a n/a Error Error
hierarchical pin
Specification for cells except simple
R0061 function cell like AND, NAND, OR or CLK_0035 None None n/a n/a Error Error
NOR, etc
Prohibition of specification for the
R0062 Check with report_clock_gating_check None None n/a Error Error Error
different value to the same cell
R0062 (Same as above) UIC-045 None None n/a Error Error Error
Prohibition of specification for cell for
R0063 UDEF_IntegratedCellSetClockGating None None n/a n/a Error Error
exclusive use of clock gating
Prohibition of overlap between timing
R0064 EXC_0014 None None n/a Error Info Info
exceptions commands
R0064 (Same as above) EXC_0015 None None n/a Error Info Info
UDEF_EXC_0014and15_FilterMcpOve
R0064 (Same as above) None None n/a Error Warning Warning
rlap
Prohibition of specification for the
R0067 UDEF_SyncRstSetExceptionTo None None n/a n/a Error Error
asynchronous set or reset of register
Option -from/-to not specified for
R0068 set_false_path/set_multicycle_path UDEF_NoSetFromToFalsePath None None n/a Warning Warning Warning
command
R0068 (Same as above) UDEF_NoSetFromToMultiPath None None n/a Warning Warning Warning
False/multi-cycle path reference points
R0069 EXC_0006 None None n/a Errror Warning Warning
are not connected
R0069 (Same as above) UDEF_InvalidPartialException None None n/a Warning Warning Warning
-through Is Not Used for an Object for
R0071 Which -from/-to Can Be Used in a UDEF_ReportThPointException None None n/a n/a Error Error
Timing Exception Constraint
251/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
Prohibition of specification for the
R0072 UDEF_SyncRstSetExceptionThrough None None n/a n/a Warning Warning
asynchronous set or reset of register
Prohibition of set_false_path definition
R0073 HIER_001 None None n/a n/a Error Error
for the middle hierarchical pin
set_false_path constraint is specified
R0074 and there exists a crossing among the No corresponding rule None None n/a Warning Warning Warning
clocks
Paths between Clock Domains Are
R0075 Check with report_clock_crossing None None n/a n/a Warning Warning
Specified as a False Path
Prohibition of specification for different
R0077 values to the same path in UDEF_DiffvaluetoPathSetMultiPath1 None None n/a Error Error Error
set_multicycle_path
R0077 (Same as above) UDEF_DiffvaluetoPathSetMultiPath2 None None n/a Error Error Error
set_multicycle_path setup or hold over
R0078 UDEF_InvalidValueMultiPath None None n/a Error Error Error
or under defined
Prohibition of specification for the
R0080 EXC_0008 None None n/a Error Error Error
output pin of cell on clock line
Reporting any set point that is specified
in set_min/max_delay as the start point
UDEF_ReportFromNonClkSetMinMax
R0082 with an object other than the clock to None None n/a Info Warning Warning
Dly
an FF/Latch/hard module or external
input
When the ending point of the timing
constraint path is set to besides a data
UDEF_ReportToNonDataSetMinMaxDl
R0084 pin of FF and an output port, the None None n/a Info Warning Warning
y
setting point specified by -to option is
reported
Inconsistent set_max_delay and
R0086 EXC_0009 None None n/a Errror Error Error
set_min_delay commands
R0086 (Same as above) EXC_0010 None None n/a Info Error Error
R0086 (Same as above) EXC_0011 None None n/a Info Error Error
set_min/max_delay reference points
R0087 EXC_0006 None None n/a Error Warning Warning
are not connected
R0087 (Same as above) UDEF_InvalidPartialException None None n/a Warning Warning Warning
252/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
Prohibition of set_min/max_delay
R0089 HIER_001 None None n/a n/a Error Error
definition for the middle hierarchical pin
Timing Constraints Are Given to Paths
R0092 UDEF_ComboPath_001 None None n/a Warning Warning Warning
Consisting Only of Combinational Logic
R0092 (Same as above) UDEF_ComboPath_002 None None n/a Warning Warning Warning
No Inconsistent Constraint Is Given to
R0093 Paths Consisting Only of EXC_0009 None None n/a Error Error Error
Combinational Logic
R0093 (Same as above) EXC_0010 None None n/a Info Error Error
R0093 (Same as above) EXD_0014 None None n/a Error Error Error
R0093 (Same as above) EXD_0013 None None n/a Error Error Error
R0093 (Same as above) EXD_0015 None None n/a Error Error Error
R0093 (Same as above) UDEF_ConstUnSelPinOnClkMUX None None n/a Warning Info Info
R0093 (Same as above) UDEF_NoConvClkOnMUX None None n/a Info Info Info
A Combinational Circuit Contains No
R0095 LOOP_001 None None n/a Error Error Error
Timing Loop
When an Object Is Specified, the
R0097 UIC-067 None None n/a Warning Error Error
Object Type Is Explicitly Specified
Prohibition of specification for clock
R0099 UDEF_definedClockMuxSelPin None None n/a Error Error Error
definition to the select pin of MUX
A Clock Does Not Converge through
R0112 CLK_0020 None None n/a Error Error Error
More Than One Path
Wildcard Which Matches Object
R0119 Besides Clock Is Prohibited for UIC-002 None None n/a Error Error Error
set_clock_latency
Prohibition of specification of a clock
R0120 port for a set_clock_uncertainty multi- UDEF_clock_uncertainty_mux None None n/a Error Error Error
clock
set_false_path Must Not Be set to Net
R0121 None None None n/a n/a Error Error
With ‘-through’
253/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
Set Value to Cell and Clock Pin for
R0122 set_mux_delay or set_min_delay Must UDEF_exception_pin_cell None None n/a Error Error Error
Be Same
Prohibition of set_disable_timing
R0123 definition for the middle hierarchical HIER_001 None None n/a n/a Error Error
cell
A generated clock that has two or more
R0124 clock sources with branches must not UDEF_UndefinedPartClockGene None None n/a Warning Warning Warning
be present
A generated clock of which the master
R0125 clock is a multi-clock must not be CLK_0004 None None n/a Error Error Error
present
Generated clocks must be defined for
R0126 CLK_0004 None None n/a Error Error Error
all master clocks
Care must be taken with respect to
R0127 duplicated -name options for a clock UIC-034 None None n/a Warning Warning Warning
definition
R0127 (Same as above) UIC-065 None None n/a Warning Warning Warning
R0128 Defining constraints in pair EXD_0004 None None n/a Warning Warning Error/info
Inconsistency between min/max option
R0129 EXD_0013 None None n/a Error Error Error
values
R0129 (Same as above) EXD_0015 None None n/a Error Error Error
Prohibition of specification such that
both of -from/-to options are not
R0130 UDEF_NoSetFromToSetMinMaxDly None None n/a Warning Warning Warning
specified in
set_min_delay/set_max_delay_path
Prohibition of specification of
set_min/max_delay that affects other
R0131 EXC_0005 None None n/a Error Error Error
paths by being specified for a point
other than start/end points
Exclusive setting must be made for
R0132 UDEF_ConvClkOnComb None None n/a Warning Warning Warning
convergence clocks
Prohibition of duplicate objects in the -
R0133 UDEF_ExceptionSameThrPoint None None n/a Warning Warning Warning
through timing exception option
254/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
The -start/-end options must be
R0134 specified explicitly for a multicycle path UDEF_NoSetStartEndMultipath None None n/a Warning Warning Warning
between clocks of different frequencies
Note the size relation of skew when
R0135 UNC_0004 None None n/a Warning Warning Warning
using set_clock_uncertainty
R0135 (Same as above) UNC_0005 None None n/a Warning Warning Warning
R0135 (Same as above) UNC_0006 None None n/a Warning Warning Warning
Specified point should not be set to
R0136 jump over the frontward of the UDEF_JumpGclkForSourcePin None None n/a Warning Warning Warning
generated clock definition
Defining constraints in pair
R0137 CNL_0005 None None n/a info Warning Warning
(set_clock_latency)
Defining constraints in pair
R0138 UNC_0003 None None n/a Error Warning Warning
(set_clock_uncertainty)
Generated Clocks from the same
R0139 master clock must be declared CGR_0001 None None n/a Error Error Error
exclusive
The definition of clock exclusive
relationship between parent and child
R0140 CGR_0002 None None n/a Error Error Error
clocks should be eliminated due to
over-setting
Set up an exclusive relationship
R0141 CGR_0003 None None n/a Error Error Error
between non-interfering clocks
Confirm that there is no shortage in the
R0142 setting of exclusive relationship CGR_0004 None None n/a Error Error Error
between clocks
Confirm that there is no error in using
R0143 CGR_0005 None None n/a Error Error Error
the set_clock_groups option
Use the -physically_exclusive option
R0144 between clocks that do not physically CGR_0006 None None n/a Warning Warning Warning
interfere
Confirm that the set_clock_groups
R0145 command is set between clocks of the CGR_0007 None None n/a Warning Warning Warning
same definition location
Use the set_clock_groups command to
R0146 CGR_0008 None None n/a Warning Warning Warning
set the false value between clocks
255/257頁
RuleI
Rule overview Rule Name Design phase
D
GCA/PTC Litmus ConCert RTL IP Layout STA
STA tool accuracy is difficult to
R0147 CGR_0009 None None n/a Error Error Error
guarantee
Attention to the multiple specification
R0148 order of the -through option of the None None None n/a Error Error Error
timing exception command
Do not mix ideal clock and propagate
R0150 CLK_0019 None None n/a Error Error Error
clock (after CTS execution)