Kernel Timing Failure - 2021.2 English

Vitis Guidance Messaging (UG1315)

Document ID
UG1315
Release Date
2021-10-27
Version
2021.2 English

Description

One or more timing paths failed timing requirements. The intended kernel frequency cannot be achieved and the auto frequency scaling mechanism reduced the kernel clock frequency to enable proper functionality.

Explanation

The current implementation cannot operate on the desired target frequency. The frequency of the kernel clock was automatically reduced to achieve correct functionality. While this ensures correct functionality, this might not satisfy the overall implementation goal. To achieve the overall system performance (implementation goal), the user will have to investigate timing paths and determine the root cause for the problematic paths.

Resource constraints and general timing constraints can over-constrain the scheduler, which results in sub optimum implementations.

Recommendation

Timing path violations can best be examined using the HLS schedule viewer for C++/OpenCL implementations. RTL paths can best be examined using the Vivado critical path analysis. In both cases, it will be necessary to break the timing paths to resolve timing violations.

When using HLS and the design is not over constrained, generic performance options can be used to change the implementation. The options are the xocc option –kernel_frequency and the clock uncertainty parameter of HLS.

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