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.
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.
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.