System Clock Timing Violation - 2020.2 English

Vitis Guidance Messaging (UG1315)

Document ID
UG1315
Release Date
2020-11-24
Version
2020.2 English

Description

A module associated with an unscalable system clock does not meet timing. The achieved frequency associated with a specific kernel does not allow components with an unscalable system clock to operate correctly.

Explanation

The automatic frequency scaling feature allows user kernels to operate in hardware, even at a lower frequency than intended. The compiler could not achieve the target kernel clock frequency or a scaled kernel clock frequency while still meeting timing for all unscalable clocks. An example of an unscalable clock is one used by IO components that depend on a fixed clock frequency. In addition, any clock not controllable at runtime by the runtime software is unscalable. Ultimately, the platform defines scalable and unscalable clock domains.

Recommendation

In general, xocc supports the –kernel_frequency option, which allows the definition of the kernel frequency for synthesis. Alternatively, clock uncertainty can be used to influence how much time is available for the HLS scheduler to schedule operations within a cycle. Either way, the resulting schedule will be different and should meet timing requirements if the design is not over constrained.

Note: Slack values, including WNS values, have an associated sign. A negative slack value has failed to meet timing. A zero or positive slack value typically passes the timing check; the possible exception is when the threshold value is also a positive value.