In parallel with all stages of the design development, perform simulations to verify that the design behaves as expected. Different verification techniques are available depending on the design development state, the design complexity, or company policy. The following sections highlight the valuable data you can capture and common pitfalls related to using this data to perform power analysis. An important factor for getting an accurate power estimation is that the design activity needs to be realistic. It should represent typical or worst case scenario for data coming into the simulated block. This type of information is not necessarily provided while performing verification or validating functions. Sometimes, invalid data is given as input to verify that the system can handle it and remain stable even when invalid data or commands are given to it. Using such test cases to perform power analysis can result in inaccurate power estimation because the design logic is not stimulated as it would be under typical system operation.
Note: SAIF sources are not supported for AMD Versal™ devices.
- System Transaction Level
- Very early in the design cycle, you can have created a description of transactions which occur between devices on a PCB or between the different functions of your device application. You can extract from this the expected activity per functional block for certain I/O ports and most of the clock domains and use it for power estimation.
- Device Description Level
- While defining the RTL for your application you can want to verify the functionality by performing behavioral simulations. This helps you verify the data flow and the validity of calculations to the clock cycle. At this stage, exact device resources used, count, and configuration data is not available. You can manually extrapolate resource usage and extract activity for I/O ports or internal control signals (Set, Reset, Clock Enable). This information can be applied to refine the power estimation. Your simulator should be able to extract node activity and export it in the form of a SAIF file. You can save this file for more accurate power analysis in the AMD Vivado™ design flow, for example after place and route, if you do not plan to run post-implementation simulations.
- Device Implementation Level
- Simulation can be performed at different stages in the
implementation process with different outcomes in terms of the power-related
information which can be extracted. This additional information can also be
used to refine the Xilinx Power Estimator
spreadsheet and the Vivado power
analysis as well. It can also save I/O ports and specific module activity,
which can later be reused in the Vivado
power analysis feature at any stage of the design completion
(post-synthesis, post-placement, or post-route).
- Post Synthesis
- The netlist is mapped to the actual resources available in the target device.
- Post Placement
- The netlist components are placed into the actual device resources. With this packing information the final logic resource count and configuration becomes available and you can update the Xilinx Power Estimator spreadsheet for your design.
- Post Routing
- After routing is complete all the details about routing resources used and exact timing information for each path in the design are defined. In addition to verifying the implemented circuit functionality under best and worst case gate and routing delays, the simulator can also report the exact activity of internal nodes and include glitching. Power analysis at this level provides you the most accurate power estimation before you actually measure power on your prototype board.