UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 63018

Vivado Power Analysis - How doI set switching activities for control sets (use set_switching_activity command on all global/regional resets and clock enable signals)?

Description

How do I set switching activities for control sets?

I am using the set_switching_activity command on all global/regional resets and clock enable signals

Solution

Global & Regional Resets:
 
The Activity rate on Global Reset can change the Power Estimation dramatically.

It conveys the state of each logic blocks in the design and the probability of logic output changes.

If the reset does not have the correct switching information, the power analysis will be unrealistic. 

For example, ideally 'reset' is expected to be asserted (active) at the beginning of the run for a few cycles and remains inactive the rest of the time.

This could be denoted in terms of switching activity as:
 
set_switching_activity -static_probability 0.01 -signal_rate 2 [get_ports glb_reset]
 
report_power identifies all primary ports which are found to be global resets and applies a default switching activity.

The ports/nets which are directly connected to 'RESET' pins of leaf primitives are labeled as global resets. 
 
However this does not help on complex designs where the 'reset' logic is generated internally through special logic (reset generator, debouncer, reset stretching, etc ).

Currently when there is a logic involved to generate 'reset', report_power is not aware of design intent and does not apply any default switching information on it. 


In this situation, the 'reset' activity information is derived from the generated logic using probabilistic computation and propagation algorithm.

Probabilistic computation is done at the leaf primitive level.

At times, probabilistic algorithm has difficulty handling specific logic blocks like deep nested feedback logic.

This results in unexpected switching activities on 'reset' nets.


***RECOMMENDATION*** Ensure correct switching information on the global/regional 'reset' nets.

You can set activity rates directly on the reset nets in the GUI by clicking 'Signal Properties -> Power Tab'

Alternatively, use the below command in the Tcl command interface:
 
set_switching_activity -static_probability 0.01 -signal_rate 2 [get_nets u1/clkRst_gen/user_reset]
 
report_power results also identify 'reset' nets in the design, so that your can quickly validate the switching information on those nets and take the corrective actions.

It also gives the number of logic cells that are affected by these 'reset' nets - Fanout and Logic Type.

If initial switching activity estimation does not seem correct, you can simply select the 'net' in the Power view and edit the Power property under the 'Net Properties' window. 

Report Power displays both 'Preset/Set' and 'Reset' nets combined in the design.

The same guidelines applied to 'Preset/Set' nets in the design.

Global Clock Enables:
 
In general, handling Clock Enables is less complex than 'reset'.
 
In most cases, the clock enables are more straight forward.

However it can potentially grow as complex as 'reset' on power aware designs where the clock enables are extensively used and controlled using special logic.

Dynamic Power on logic cells depends on the switching activity of Clock Enables.

If the activity rates are not set property, the resulting power analysis will be inaccurate. 

For example, ideally 'Enable' is expected to be asserted (active) throughout the run and remains inactive only when the logic cell is not being used. This is in order to save power.

This could be denoted in terms of switching activity as:

set_switching_activity -static_probability 0.99 -signal_rate 2 [get_ports glb_enable]

Report Power identifies primary ports which are found to be global enables and applies the default switching activity. 

The ports/nets which are directly connected to "CE" pins of leaf primitives are labeled as global enables.

***RECOMMENDATION*** Ensure correct switching info on global/regional 'enable' nets.

The report_power window also identifies 'enable' nets in the design, so that you can quickly validate the switching information on those nets and take corrective action.

It also gives information about the number of logic cells that are affected by these 'enable' nets - Fanout and the Logic Type.

If initial switching activity estimation does not seem correct, you can simply select the 'net' in the Power view and edit the Power property under the 'Net Properties' window. 

Note: Refer to (UG907) Power Analysis & Optimization for more information on Tcl command usage and signal rate or toggle rate usage.

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
63015 Vivado Power Analysis - How do I get the most accurate results from report_power? N/A N/A
AR# 63018
Date Created 12/03/2014
Last Updated 12/04/2014
Status Active
Type General Article
Tools
  • Vivado Design Suite - 2014.4
  • Vivado Design Suite - 2014.3
  • Vivado Design Suite - 2014.2
  • Vivado Design Suite - 2014.1