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.