Learning Outcome
By the end of this post we’ll be able to describe the three major phases in the power design workflow, and define the most important terms used when discussing power design with AMD FPGAs.
Power Design Process
There are three major phases in the power design process with AMD FPGAs: power estimation, power analysis, and power optimization.
Power Estimation
In the power estimation phase we approximate the power draw of our design before implementing any logic. Because we don’t yet have a design, this takes place outside of Vivado. We can use one of two tools for the power estimation: the Xilinx Power Estimator and the Power Design Manager. The new Power Design Manager supports versal and ultrascale plus FPGAs and SoCs, while the Xilinx Power Estimator supports RF SoC devices, ultrascale devices, and earlier architectures, like the 7 series.
Power Analysis
Once we have described our logic, we can analyze its power draw at each stage of the development flow: post-synthesis, post-placement and post-routing. The post-routing power analysis is the more accurate, because it accounts for the exact logic and routing resources of the final design.
We use the Power Report within Vivado to perform the Power Analysis. The Power Report tool analyzes the power requirements of our design using information from the physical domain and the functional domain. Information from the physical domain includes the power supplies, the thermal power dissipation system, the enclosure, and the properties of the printed circuit board. This information is usually provided by the electronics and mechanics engineers.
Information from the functional domain includes the type of logic in our design, like the number of registers, block RAMs, and transceivers; as well as the switching activity, like how often the signals in our design change state, and how long they stay asserted. As FPGA designers, we are responsible for generating the information in the functional domain.
Power Optimisation
There are two major strategies for reducing the power draw in our design. On the one hand, we can use power-saving techniques in our code, like adding pipeline stages, sharing resources across logic functions, or disabling unused Block RAMs. On the other hand, we can let Vivado perform power optimization automatically.
There are two ways in which Vivado optimizes power automatically: clock gating and block RAM optimization. During clock gating, Vivado adds clock enable signals to the sequential logic in our design, and disables the clock input whenever it detects that the signals toggle without contributing to the output. During Block RAM optimization, Vivado can adjust the write mode of dual-port Block RAMs, or disable unused cascaded Block RAMs.
Iterative Power Design
Power Design in FPGA development is an iterative process. We may start by estimating the power draw before writing any logic to have a rough reference for our power budget. We then analyze the power consumption of the actual design within Vivado to get a more accurate estimate. We can then rerun the power estimation with the first results of the power analysis to refine our initial estimate - this is especially helpful if we haven’t yet implemented all of the logic. At this point we might notice that we have exceeded the power budget for a portion of our design, so we can run power optimization on that section to try to bring the power down. Next we can generate a power report for the optimized design to confirm that we are back within budget. From there, we can run power optimization for other critical sections or further refine our initial estimate with the newest power report.
Power Terminology
Here’s a definition of the most important terms that we’ll use when talking about power design with AMD FPGAs.
- The static power is the power from transistor leakage required for the device to operate normally, after it has been configured. This power is drawn regardless of the actual logic in the design
- The dynamic power is the power consumed by the design at run time, due to the input data pattern and the design internal activity
- The total on-chip power is the sum of device static power and design power.
- The off-chip power is the current that flows from the supply source through the device power pins, then out of the I/Os and dissipated in external board components.
- The power-on current is transient current that occurs when power is first applied to the device.
- The ambient temperature is the temperature of the air immediately surrounding the device under the expected system operating conditions.
- The effective thermal resistance to air is a coefficient that defines how power is dissipated from the device silicon to the environment. Typically this combines thermal resistance and interdependencies from the two main paths by which the generated heat can escape onto the environment:
- Upward from the die to the air
- Downward from the die through the board and into the air
- The signal rate is the number of times an element changes state (high-to-low and low-to-high) per second. AMD tools express this as millions of transitions per second
- The toggle rate is the rate at which the output of a synchronous logic element switches with respect to a given clock input. It is modeled as a percentage between 0 - 100%. A toggle rate of 100% means that, on average, the output toggles once during every clock cycle. For asynchronous elements such as nets the toggle rate cannot be computed, in which case Vivado uses the Signal Rate
- The static probability defines the fraction of time during which an element is driven at a high logic level. For example, if a signal is at logic one for forty nanoseconds in a measurement period of a hundred nanoseconds, its static probability is zero point four.
Summary
In this post we described the three major steps in the power design process with AMD FPGAs: power estimation, power analysis and power optimization. We also talked about how the power design process is iterative, jumping between phases before, during, and after the implementation. Finally, we defined the terminology that we will use when discussing power design, like static and dynamic power, signal and toggle rate, and static probability.
Isaac