Overclocking can cause your design clock rate to exceed the maximum clock rate of your target hardware when your original clock rate is high. Without constrained overclocking, automated speed and area optimizations can modify the design implementation architecture and often result in local upsampling.
For example, the following optimizations and implementations can result in upsampled rates in your design:
RAM mapping
Streaming
Resource sharing
Loop streaming
Specific block implementations, such as cascade architectures, Newton-Raphson architectures, and some filter implementations
When using area and speed optimizations, you can specify constraints on overclocking using the Max oversampling and Max computation latency parameters. If you want a single-rate design, you can use these parameters to prevent overclocking, or limit overclocking within a range.
Suppose that you have a design that does not currently fit in the target hardware, but is already running at the target device maximum clock frequency, and you know that the inputs to your design can change at most every N cycles. You can enable area optimizations, such as resource sharing, and specify a single-rate implementation using Max oversampling. You can use Max computation latency to give HDL Coder™ a latency budget of N cycles to perform the computation. In this situation, HDL Coder can reuse the shared resource at the original clock rate over N cycles, instead of implementing the sharing optimization by overclocking the shared resource.
To learn more about the Max oversampling parameter, see Maximum Oversampling Ratio.
To learn more about the Max computation latency parameter, see Maximum Computation Latency.
You can use the MaxOversampling
and MaxComputationLatency
parameters
to constrain overclocking when optimizing area and speed.
The following table shows how to set MaxOversampling
and MaxComputationLatency
for
different design implementation results:
Desired implementation result | Without Optimizations | With Optimizations |
---|---|---|
Unlimited overclocking |
|
Max computation latency > 1 |
Overclocking with constraints |
|
|
No overclocking (single rate) |
|
|
To learn how to specify MaxOversampling
and MaxComputationLatency
,
see:
When you constrain overclocking, the following limitations apply:
If you set Max oversampling = 1, your DUT must be single-rate.
Loop streaming and RAM mapping are disabled when you set Max oversampling = 1, even if Max computation latency > 1.