Quartus® Prime Pro Edition User Guide: Timing Analyzer

ID 683243
Date 11/26/2024
Public
Document Table of Contents

2.3.1.2. Derive PLL Clocks (derive_pll_clocks)

The Derive PLL Clocks (derive_pll_clocks) constraint automatically creates clocks for each output of any PLL in your design.

Note: Only Arria® 10 and Cyclone® 10 GX devices support the Derive PLL Clocks (derive_pll_clocks) constraint. For all other supported devices, the Timing Analyzer automatically derives PLL clocks from constraints bound to the related IP.

The constraint can generate multiple clocks for each output clock pin if the PLL is using clock switchover: one clock for the inclk[0] input clock pin, and one clock for the inclk[1] input clock pin. Specify the Create base clocks (create_base_clocks) option to create base clocks on the inputs of the PLLs by default. By default the clock name is the same as the output clock pin name, or specify the Use net name as clock name (use_net_name) option to use the net name.

When you create PLLs, you must define the configuration of each PLL output. This definition allows the Timing Analyzer to automatically constrain the PLLs with the derive_pll_clocks command. This command also constrains transceiver clocks and adds multicycles between LVDS SERDES and user logic.

The derive_pll_clocks command prints an Info message to show each generated clock the command creates.

As an alternative to derive_pll_clocks you can copy-and-paste each create_generated_clock assignment into the .sdc file. However, if you subsequently modify the PLL setting, you must also change the generated clock constraint in the .sdc file. Examples of this type of change include modifying an existing output clock, adding a new PLL output, or making a change to the PLL's hierarchy. Use of derive_pll_clocks eliminates this requirement.