When designing an NPU at a low-power AI semiconductor startup, you stake your life on the goal of "achieving maximum performance with minimum power." After finishing the RTL coding and successfully running Synthesis and Implementation, you nervously click the Report Power button in Vivado.
Have you ever been horrified to see the result window proudly display: Total On-Chip Power: 200 W?
Every hardware engineer has probably felt a chill down their spine at least once, thinking, "My low-power architecture is burning 50W? Is the chip going to melt?" Especially if you are targeting a massive, aircraft-carrier-sized chip like the Versal VP1902, this number feels incredibly threatening.
But don't despair just yet. Today, we will uncover the trap of Vivado's power estimation and learn how to find the 'true' power consumption using SAIF files extracted from simulation data.
1. The Culprit Behind 200W: Vectorless Estimation and the Thermal Butterfly Effect
If you look closely at a 200W+ power report, you'll notice something very strange:
- Dynamic Power: 200 W
- Device Static (Leakage Power): 48 W
- Junction Temperature: 100.0°C (Reached the absolute limit)
What is the truth behind these numbers? It means, "The tool thinks the chip is boiling at 100 degrees, causing semiconductor leakage current to explode exponentially." So, why did the tool conclude the chip reached 100 degrees?
When Vivado has no information about your actual input data, it estimates power using a default mode called Vectorless. This mode assumes the absolute worst-case scenario: "Every single signal and flip-flop is frantically toggling at a constant probability (usually 12.5%)." This fake switching activity generates unnecessary Dynamic Power, which raises the junction temperature, which in turn generates massive Static Power. It is a vicious butterfly effect.
2. SAIF (Switching Activity Interchange Format)
Think about the actual operation of an AI accelerator (MAC array). There are countless moments when a 0 is multiplied, or the Enable signal is off because there's no incoming data (Idle states). In other words, Vivado's assumption that all circuits are constantly firing at 12.5% is completely wrong.
To clear your name, you must provide Vivado with evidence: "Look, my circuit actually operates this quietly!" That evidence is the SAIF file. A SAIF file is a text file that records the actual toggle count (0 to 1, 1 to 0 transitions) of all signals during a simulation run.
3. Extracting and Applying SAIF via the Tcl Console
SAIF files are not generated automatically. Because they can grow to gigabytes (GB) in size, the user must explicitly command the tool to record them using Tcl commands.
Step 1: Run Behavioral Simulation and Wait
Click Run Behavioral Simulation in the GUI to open the simulator. When the waveform window appears, do not press the Run (Play) button at the top yet. Stay at 0ns.
Step 2: Enter Extraction Commands in the Tcl Console
# 1. Create the SAIF file to record (name it as you like)
open_saif "power_data.saif"
# 2. Set the scope to record (recursively include all objects under the testbench)
log_saif [get_objects -r *]
# 3. Run the simulation (for enough time to capture realistic activity)
run 10us
# 4. Close and save the file (Crucial: The file is written to disk only after this command!)
close_saifStep 3: Apply SAIF to Report Power
Now, open your Implemented Design and click Report Power again. Navigate to the Switching tab in the settings window. In the Simulation Activity File (SAIF) field, browse and select the power_data.saif file you just extracted, then click OK.
How did the results change? By reflecting the actual switching rates, the Dynamic Power drops to a realistic level. As the heat generation decreases, the temperature normalizes from 100 degrees down to 60~70 degrees, and as a result, Device Static Power plummets dramatically. You will experience the magic of that 200W figure shrinking down to a realistic wattage suitable for the chip's baseline (e.g., 50W).
(Note: A massive chip like the Versal 1902 has a high baseline static power, so it won't drop to 0W).
References: AMD