Zynq UltraScale+ MPSoC Power Advantage Tool 2016.3




Now that you have installed and run the Pre-Built Power Advantage Tool in the previous section, let’s take a moment to see what else you can do with it. The Power Advantage Tool Control Console can be used as a tool, with designs, to monitor the power budget during the design process. In addition, the Power Advantage Tool can be used as a demonstration of the power savings with processing designs.

Document History

DateVersionAuthorDescription of Revisions
Mar 7, 2017
jerrywoCreated


1 Power Advantage Tool

1.1 Launching the Power Advantage Tool Control Console

Warning: If you have connected Micro USB (UART) (J83) to PC for the first time, or switched boards, you may need to wait a few minutes for the PC to recognize the new hardware. Then you can open the Power Advantage Tool.

Launch the Power Advantage Tool Shortcut at C:\ZynqUS_Demos\ZynqusPowerTool.exe Shortcut.
In a few seconds, you should see a Power Advantage Tool Control Console window with a Power Report. The Power numbers should update every few seconds.
If it is not displayed properly, refer to “Common Setup Issues”, and debug until the “Power Advantage Tool is alive” before returning here to continue.

Warning: The Power Advantage Tool must always be launched after the ZCU102 board has been powered on. The reason for this is: The Power Advantage Tool initializes the power measurement circuits (INA226’s) before they can make measurements. Any Power cycling clears these INA226 initializations. Re-launching the Power Advantage Tool fixes this.

1.2 Getting to Know the Power Advantage Tool Control Console


After successfully launching the Power Advantage Tool, you should see the following Power Advantage Tool Control Console window (may take a few seconds):


Figure 1. Power Advantage Tool Control Console
This interface is important to most of the demonstrations, so it would be good to familiarize yourself with it. Take a moment to identify the following:
  • Zoom Display (transparent button [ ]) (A) resizes to fill a 1920x1080 display.
  • Close (transparent button [X]) (B)
  • Minimize (C)
  • Select (D) Selects the display mode (Rails, Plot, About contains the version number)
  • Preset (E) Places the ZCU102 into a selected state.
  • Block Diagram of Zynq (F) shows the current device state.
  • Power Totals for various domains (G) (Note: There can be a few seconds delay for measurement and update.)

Note: The Temperature is polled only every few seconds, so it appears after a short time.

Here is a Table of the Rails for ZCU102:
  • VCCPSINTFP – Core Full Power Domain
  • MGTRAVCC – GTX Power
  • MGTRAVTT – GTX Termination Power
  • VCCO_PSDDR_504 – PS DDR Controller IO
  • VCCPSDDRPLL – PS DDR PLL Power
  • VCCPSINTLP – Core Low Power Domain
  • VCCPSAUX – Aux and GPIO
  • VCCPSPLL – PS PLL Power
  • VCCOPS – PS IO Banks MIO0/1/2
  • VCCOPS3 – Dedicated PS IO
  • VCCINT – PL Operating
  • VCCBRAM – Block RAM
  • VCCAUX – Auxiliary Circuits
  • VCC1V2 – DDR Termination
  • VCC3V3 – Main PMBUS Utility Rails
  • MGTAVCC – Receiver and Transmitter Internal
  • MGTAVTT – Transmit Driver

It is a power advantage to be able to turn off unused circuitry. The more power islands you have, the more flexibility you have to save power.
Islands switch power internally to the Zynq UltraScale+ MPSoC, whereas Domains switch power rails externally to the Zynq device. When Domain switching can be done, this has the advantage of drawing no power by being able to completely turn off a portion of the silicon device.
Note: Switching off domains can clear the program memory until reboot.
Control can be over entire Domains or individual Islands. The next sections will demonstrate the Power Domains.

1.3 Domain Control


Power Domains are broad sections of the Zynq UltraScale+ MPSoC.
The Power Advantage Tool setup requires no further setup to have access to the Power Domain Controls.


Figure 2. Power Domain Controls

With the Power Advantage Tool running, identify the following controls:
(A) Preset Button
(B) Low Power Domain Button
(C) FulI Power Domain Button
(D) Four A53 Processor Core Power Island Buttons
(E) Programmable Logic Domain Button

1.4 Power Island Control


The Four Power Islands for the four A53 Processor Cores can be switched from the GUI: A53 0, A53 1, A53 2, and A53 3 (D).

Turning off the A53 Processor Cores will usually crash the Zynq Linux Application. We do not yet support the "CPU Offline" feature that fully turns off Cores when they are not in use.

To Recover:
  • Turn off all the Power Domains LPD (B), FPD (C), and PLD (E)
  • Select Preset (A) > Performance

This will turn on all the Zynq Power Domains, forcing a reboot of Linux.

1.5 PL Control


The demo PL design contains a configurable design.
Changing the PL design configuration allows the Power to be compared for various designs.


Figure 3. PL Controls.

PL design controls:
  • Work Utilization and Clock Rate (A): Select the PL algorithm and set standard operating parameters.
  • Options (B): Select the PL algorithm and set the non-standard operating parameters.
  • Information i (C): Display information (block diagram) of the PL algorithm. Turn off all the Power Domains (B) (C) (E)

1.6 Selecting Displays


Pressing the Select button gives a menu to select from various displays:
  • Plot: Graphically displays the power for each of the three domains and total power.

Figure 4. Plot.
  • Rails: This is the default display. Rails displays the voltage and power for each of the rails, as well as the chip temperature, and the total power. The power measurements are made external to the Zynq by TI INA226 chips.

Figure 5. Rails.
  • Sysmon: This displays the temperature and voltages read by the System Monitor on the Zynq.

Figure 6. Sysmon.
  • Legend: This page defines each of the Zynq rails.

Figure 6. Legend.
  • About: This page contains the legal notice, as well as the software revisions for Qt and MSP430 code.

Figure 7. About.

1.7 Linux


You can demonstrate the power consumption of the Zynq device using the terminals demonstration:
  • From C:\ZynqUS_Demos, launch 01_open_terminals_ZCU102.ahk.

Figure 10. Linux Terminals.
  • When the APU window has the login prompt, launch 02_demo_start_ZCU102.ahk. This launches four applications and Linux Top.
  • The Mandelbrot application takes a full CPU core. You can launch three more Mandelbrot applications by launching 03_demo_add_ZCU102_3mbrots.ahk.

1.7.1 Linux A53 Power On Suspend to RAM

From Linux, we can Suspend, but first we program a wake source.

To suspend and wake from UART:
echo enabled > /sys/devices/platform/amba/ff000000.serial/tty/ttyPS0/power/wakeup
echo mem > /sys/power/state
Note the drop in power ... Then press a key to resume.

To suspend and wake from a timer:

echo +30 > /sys/class/rtc/rtc0/wakealarm
echo mem > /sys/power/state
Note the drop in power ... Then 30 seconds later, we resume.

For more on the Linux Suspend API, please refer to
Zync UltraScale+ MPSoC Power Management - Linux Kernel

1.7.2 Linux A53 CPU Hotplug

The user may take one or more APU cores on-line and off-line as needed.

Keep one CPU core busy with
yes > /dev/null &
top (Control-C exits top)
Top indicates that the A53 is 25% busy.
Note the change in power.

Fill the remaining CPU cores with
yes > /dev/null &
yes > /dev/null &
yes > /dev/null &
top
Note the change in power.
Note that top reports were 100% busy

Take cpu3 offline with
echo 0 > /sys/devices/system/cpu/cpu3/online
Note the change in power

Repeat this two more times
echo 0 > /sys/devices/system/cpu/cpu2/online
echo 0 > /sys/devices/system/cpu/cpu1/online
top
And note the change in power
But also note that top thinks were still 100% busy (of the cores in the system)

Try one more time
echo 0 > /sys/devices/system/cpu/cpu0/online
cat /sys/devices/system/cpu/cpu0/online
top
There's no change in power
The core still thinks its on
And we're still 100% busy (the PMU does not allow us to turn off all the CPU cores this way)

Turn the cores back on again and finally remove the tasks keeping the cores busy
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online
top
killall yes
top

For more on the Linux CPU Hotplug API, please refer to
Zync UltraScale+ MPSoC Power Management - Linux Kernel

1.7.3 Linux A53 Debugfs

Warning: This API is for debug, and is likely cause unexpected problems with normal Power Management.

Here's an example of the format:
echo request_node 22 1 100 1 > /sys/kernel/debug/zynqmp_pm/power
Node 22 = USB_0
Capabilities 1 = Preserve context
QoS 100 = Quality of Service max
Ack 1 = Blocking acknowledge requested

For more on the Linux Debugfs API, please refer to XPm_RequestNode
Zync UltraScale+ MPSoC Power Management - Linux Kernel
Power Management Framework User Guide: For Zynq UltraScale+ MPSoC Devices UG1199

Related Links

Home Previous Back Next

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy