Site icon High-Level Synthesis & Embedded Systems

Voltage Scaling on Xilinx Zynq

Goal Voltage scaling on Zynq
Approach Using PMBus protocol to change the value on voltage rails
Benefits Power and energey reduction
Credit  This work has been done under the ENPOWER project (funded by EPSRC) at University of Bristol.

The power monitoring library contains a few functions to determine the value of voltage on a given voltage rail available on the ZC702 Evaluation Board.

The two function to scale the voltage rails VCCINT and VCCPINT are

int set_VCCINT_voltage(float target_voltage);

int set_VCCPINT_voltage(float target_voltage);

in which target_voltage is a value less than 1.0.

Example:

[code language=”c”]
#include "stdio.h"
#include <stdlib.h>
#include "measurement.h"

int main(int argc, char *argv[]) {
float target_value;
if (argc == 2) {
target_value = atof(argv[1]);
if (target_value < 0.7 || target_value > 1) {
printf("target voltage should be less than 1 v and greater than 0.7 v\n");
return -1;
}
} else {
printf("The command had no other arguments.\n");
return -1;
}
printf("target voltage would be = %f v\n", target_value);
set_VCCINT_voltage(target_value);
return 0;
}
[/code]

The monitoring library can be found at here.

 

Please use this citation to refer to this work.

 

Exit mobile version