Visible to Intel only — GUID: uwo1534882369871
Ixiasoft
Visible to Intel only — GUID: uwo1534882369871
Ixiasoft
2.3.5.2.1. Entity-Bound SDC Constraint Scope
Constraint Scope Type | Features | To Enable Instance-bound Scoping |
---|---|---|
Automatic |
|
Default mode for SDC_ENTITY_FILE. No additional steps required. |
Manual |
|
Use -no_sdc_promotion. Append each collection filter with get_current_instance to target nodes within the entity boundaries. For example: get_registers [get_current_instance]|reg[*] |
Disabled |
|
Use -no_sdc_promotion and -no_auto_inst_discovery arguments. |
When you define entity-bound SDC files either through the GUI or via .qsf assignments (excluding the -no_sdc_promotion and -no_auto_inst_discovery arguments), the constraints use automatic scoping. 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_keepers a] | set_false_path -from [get_keepers X|Y|a] |
set_false_path -from [get_registers a] -to [get_registers b] | set_false_path -from [get_registers X|Y|a] -to [get_registers X|Y|b] |
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_registers A] 2.0 | set_max_delay –from [get_ports in] -to [get_registers X|Y|A] 2.0 |
get_ports *
Note: get_ports in conventional entity SDC's always refers to top level ports, and cannot be used to refer to boundary ports on an entity, as boundary ports do not exist in a flattened netlist.
|
get_ports * |
get_clocks * | get_clocks * |
get_ports a | get_ports a |
get_clocks a | get_clocks a |
When you disable automatic scoping 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_current_instance command to return the top-level path of the current instance. The following table illustrates how paths are interpreted when the -get_current_instance command is employed to add the top-level path to certain Tcl commands:
Constraint Example | Manual Scope Constraint Interpretation |
---|---|
set_false_path –from [get_current_instance]|d\ –to [get_current_instance]|e |
set_false_path –from i1|inner|d –to i1|inner|e set_false_path –from i2|inner|d –to i2|inner|e set_false_path –from i3|d –to i3|e |
create_generated_clock –divide_by 2 –source \ [get_ports inclk] –name \ [get_current_instance]_divclk \ [get_current_instance]|div set_multicycle_path –from [get_current_instance]|a \ –to [get_current_instance]|b 2 |
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 |