Optimization with Constrained Overclocking

Why Constrain Overclocking?

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 to Use Constrained Overclocking

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.

Set Overclocking Constraints

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 resultWithout OptimizationsWith Optimizations
Unlimited overclocking

MaxOversampling = 0

MaxOversampling = 0

Max computation latency > 1

Overclocking with constraints

MaxOversampling > 1

MaxOversampling > 1

MaxComputationLatency > 1

No overclocking (single rate)

MaxOversampling = 1

MaxOversampling = 1

MaxComputationLatency > 1

To learn how to specify MaxOversampling and MaxComputationLatency, see:

Constrained Overclocking Limitations

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.

Was this topic helpful?