Visible to Intel only — GUID: myg1706921583924
Ixiasoft
Visible to Intel only — GUID: myg1706921583924
Ixiasoft
2.3.5.1.2. Entity Based SDC-on-RTL Constraint Scope
Constraint Scope Type | Features | To Enable Instance-based Scoping |
---|---|---|
Automatic |
|
Use the following arguments:name RTL_SDC_FILE <sdc_on_rtl_file_name> -entity <entity_name> -library <library_name> |
Manual |
|
Use the following arguments:-name RTL_SDC_FILE <sdc_on_rtl_file_name> -entity <entity_name> -library <library_name> -no_sdc_promotionPrepend each collection filter with get_entity_current_instance to target nodes within the entity boundaries.
For example:
get_pins [get_entity_current_instance]|reg[*]|q |
Disabled |
|
Use the following arguments:-name RTL_SDC_FILE <sdc_on_rtl_file_name> -entity <entity_name> -library <library_name> -no_sdc_promotion -no_auto_inst_discovery |
When you define entity-bound SDC files, the software applies the constraints using automatic scoping, unless the -no_sdc_promotion or -no_auto_inst_discovery arguments are present.
Automatic scoping involves prepending filters with the instance's path. To provide clarity, the following table illustrates how paths are interpreted in various Tcl commands due to the automatic scoping of constraints:
Constraint Example | Auto-Scope Constraint Interpretation for Instance X|Y |
---|---|
set_false_path -from [get_pins reg_a|clk] | set_false_path -from [get_pins X|Y|reg_a|clk] |
set_false_path -from [get_pins reg_a|clk] -to [get_pins reg_b|d] | set_false_path -from [get_pins X|Y|reg_a|clk] -to [get_pins X|Y|reg_b|d] |
set_false_path –from [get_clocks clk_1] –to [get_clocks clk_2] | set_false_path –from [get_clocks clk_1] –to [get_clocks clk_2] |
set_max_delay –from [get_ports in] -to [get_pins reg_a|d] 2.0 | set_max_delay –from [get_ports in] -to [get_pins X|Y|reg_a|d] 2.0 |
get_ports * | get_ports * |
get_clocks * | get_clocks * |
get_ports a | get_ports a |
get_clocks a | get_clocks a |
When automatic scoping is disabled through QSF assignments, including the use of the -no_sdc_promotion argument, you must manually prepend the top-level path to achieve the same behavior as automatic scoping. To simplify this process, use the -get_entity_current_instance command that returns the top-level path of the current instance. The following table illustrates how paths are interpreted when you use the -get_entity_current_instance command to add the top-level path to certain Tcl commands:
Constraint Example | Manual Scope Constraint Interpretation |
---|---|
set_false_path –from [get_entity_current_instance |reg_a|clk –to [get_entity_current_instance]|reg_b|d |
set_false_path –from i1|inner|reg_a|clk –to i1|inner|reg_b|d set_false_path –from i2|inner|reg_a|clk –to i2|inner|reg_b|d set_false_path –from i3|reg_a|clk –to i3|reg_b|d |
create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name \ [get_entity_current_instance]_divclk \ [get_entity_current_instance]|div set_multicycle_path –from \ [get_entity_current_instance]|a \ –to [get_entity_current_instance]|b 2 |
# Evaluated for instances i1 and i2 create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name i1_divclk i1|div set_multicycle_path –from i1|a –to i1|b 2 \ create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name i2_divclk \ i2|div set_multicycle_path –from i2|a \ –to i2|b 2 \ |