It is possible to rename the generated clocks that are automatically created by the tool.
The renaming process consists in calling the
command with a limited number of parameters:
create_generated_clock -name new_name [-source master_pin] [-master_clock master_clk] source_object
The arguments that must be specified are the new generated clock name and the source
object of the generated clock. The source object of the generated clock is the object
where the auto-derived clock is created (CMB output pin, GT output pin for UltraScale, and so on). The
-master parameters must be used only when more than one clock
propagates through the source pin in order to remove any ambiguity.
Important: If any of the
-invertoptions is passed to the
create_generated_clockcommand, the generated clock is not renamed. Instead a new generated clock is created with the specified characteristics.
Important: When a module (IP/BD/DFx/...) is synthesized Out-Of-Context, the module is inferred as a black-box when the top level is synthesized and the module internal pins and clock names are not anymore accessible. In that scenario, the top level XDC constraints used for synthesis cannot refer to a clock name or rename an auto-derived clock that is generated inside the module. With OOC synthesis, the top-level timing constraints must point to the OOC clocks through the module ports that propagate those clocks. This can be done using some queries such as
‘get_clocks -of_objects [get_pins <OOC_MODULE_OUTPUT_CLOCK_PORT>]. The XDC constraints used for implementation do not have this limitation since the entire design is rebuilt before the XDC constraints are applied.