BYU Home page BRIGHAM YOUNG UNIVERSITY
Department Title
Navigation Menu


Power Studies

XPower

XPower is a Xilinx tool which estimates the power consumption of a given placed FPGA design. The design inputted to XPower can either be in the form of a *.par.ncd file or *.ncd and *.pcf files.

In order for XPower to be able to determine the power consumption of a given design, every net in the design must have an activity rate assigned to it. There are three ways in which to specify activity rates for each net:

  • Manually assign them with the XPower graphical tool (GOOD LUCK!)
  • Import the information with XPower's XML settings format
  • Import the information from a *.vcd or a *.xad file

  • Regardless of which method is used, XPower can report the confidence level of it's power estimation. When all the nets have activity rates assigned to them, XPower reports an 'accurate' confidence level. If some of the nets do not have activity rates assigned, the confidence level is reported as 'reasonable', and if a significant number of nets do not have an activity rate assigned to them, XPower reports an 'inaccurate' confidence level. Whichever method is used to assign activity rates to a design's nets, an 'accurate' XPower confidence level is important.

    XPower XML
    XPower can create XML files as a means of saving session settings. An XPower-created XML file can be loaded to restore a previous XPower session. A JHDL program can be used to determine the activity rates of the nets from a given design, and then use that information to create an XML file that is readable by XPower. An example of such a JHDL class is given below. This example is specific to Nathan Rollins' TMR counter tests, but can easily be modified for any design:

    Creating XML files using JHDL successfully assigns activity rates to every net of a design (and acheive an 'accurate' confidence level in XPower), however JHDL is unable to simulate transient signals. Without being able to simulate transient signals, the activity rates produced by JHDL will be too low resulting in inaccurate XPower power consumption reports. Due to the inaccuracy in this method, back-annotation was investigated as a method importing net activity rate information.

    Back Annotation
    ModelSim can be used to create a *.vcd file needed by XPower to import net activity rates. The Xilinx tools can be used to create the back annotated files needed by ModelSim. An important difference between the back annotation method and the XPower XML method of importing net activity rate information is that net timing information can be back annotated with the Xilinx tools. This timing information will take into account transient signals in the design (information that is lacking in the XPower XML method). The following makefile can be used to generate back annotated files, given an EDIF file:

    Once the back annotated files have been created, ModelSim can be used to generate the *.vcd files needed by XPower. Unfortunately, the net names in the *.vcd files created by ModelSim are not in the format required by XPower. Thus, a Perl script is used to fix the net names in the *.vcd files. ModelSim can be run in commandline mode and can also import commands in script files called 'do' files. An example of how *.vcd files can be created and corrected using ModelSim and two Perl scripts is given below. These files were used for Nathan Rollins' TMR counter tests:

    Once The *.vcd files have been created and the net names have been 'fixed', they can be imported into XPower. XPower will then estimate the power consumption of the design. Below is a Perl script that uses a command-line version of XPower to find the current used in a design run at a range of different frequencies:

    Related Links