With only the primary input clock constrained, the auto-generated generated-clock constraints may cause the timing report to show frequencies substantially lower than configured. For a 40 MHz input configured for 40 MHz, 10 MHz, and 0.1 MHz outputs, the report may show approximately 3.077 MHz, 0.769 MHz, and 0.400 MHz respectively, while the primary input clock itself is reported correctly. Simulation of the same design returns the configured frequencies.
The PLL does not divide the input clock directly. It first multiplies the input to produce a high-frequency internal VCO signal, and the output dividers then operate on that VCO frequency. In a configuration with a 40 MHz input and a 520 MHz VCO, a divide-by-13 on the VCO yields the correct 40 MHz output.
The auto-generated generated-clock constraints name the input clock as the source but apply the VCO-referenced divider values without the corresponding multiplication term. Static timing analysis therefore applies the divider directly to the input clock and reports a frequency that is low by exactly the VCO-to-input ratio. The device configuration itself is unaffected.
The recommended action is to supply the missing multiplication term explicitly in the generated-clock constraints. This aligns the timing report with the configured PLL output frequencies, requires no change to the PLL IP configuration, and does not alter device behaviour, so the PLL remains fully usable in the current design and tool version.
The multiplier is the ratio of the VCO frequency to the input clock frequency for the specific configuration in use; it is not a fixed value of 13. The divider is the total VCO-referenced division for that output, which for a cascaded output is the product of the dividers in the chain.
For a 40 MHz input with a 520 MHz VCO, giving a multiplier of 13:
The CLKOS3 divider of 5200 reflects the cascaded path, being the product of the preceding stage divider and the CLKOS3 divider, rather than the CLKOS3 divider alone.
With the constraints applied, Map and Place and Route report critical:
Applying the override may produce warnings:
If the constraint is placed in a pre-synthesis .sdc file, it is passed to synthesis before mapping, at which stage the PLL IP is still a black box and a pin path such as .../lscc_pll_inst/u_pll/CLKOP does not yet exist as a resolvable object. Moving the same constraint into a post-synthesis .pdc file applies it at Map, where the hierarchy is fully instantiated and the pin paths resolve correctly, producing the corrected frequencies without these warnings.
The PLL IP GUI may present more than one cascade source for a given output. For cascade configuration, follow the sysCLOCK PLL description in the MachXO4 datasheet, which documents the CLKOS2 to CLKOS3 cascade path. Users considering a cascade arrangement not described in the datasheet should contact Lattice Technical Support before committing to it in a production design.
The frequency reporting behaviour described in this article is independent of cascade configuration. Outputs taken directly from the VCO and outputs derived through a cascade both exhibit the same misreport, so cascading is neither the cause nor a contributing factor.
The discrepancy is confined to how output frequencies are reported in static timing analysis. The PLL generates the configured frequencies, and neither the IP configuration nor the implemented design requires modification. Supplying the VCO-to-input multiplier alongside the existing divider in a post-synthesis .pdc file restores accurate reporting and allows full use of the PLL in the current tool version, with critical 70001942 understood as an expected consequence rather than a configuration error. This adjustment is the advised approach for designs in progress. A correction to the reporting model is planned for a future Radiant release, after which the constraints may be reverted to the auto-generated form. For assistance with a specific configuration, contact Lattice Technical Support.