Ug440 Xilinx Power Estimator
Ug440 Xilinx Power Estimator
User Guide
Introduction
The Xilinx Power Estimator (XPE) spreadsheet is a power estimation tool typically used in
the pre-design and pre-implementation phases of a project. XPE assists with architecture
evaluation, device selection, appropriate power supply components, and thermal
management components specific for your application.
XPE considers your design’s resource usage, toggle rates, I/O loading, and many other
factors which it combines with the device models to calculate the estimated power
distribution. The device models are extracted from measurements, simulation, and/or
extrapolation.
• Device utilization, component configuration, clock, enable, and toggle rates, and other
information you enter into the tool
• Device data models integrated into the tool
For accurate estimates of your application, enter realistic information which is as complete
as possible. Modeling a certain aspect of the design over conservatively or without
sufficient knowledge of the design can result in unrealistic estimates. Some techniques to
drive the XPE to provide worst-case estimates or typical estimates are discussed in this
document.
XPE is a pre-implementation tool for use in the early stages of a design cycle or when the
RTL description is incomplete. After implementation, the XPower Analyzer (XPA) tool
(available in the ISE® Design Suite software) can be used for more accurate estimates and
power analysis. For more information about XPA, see the XPower Analyzer Help.
XPE is a spreadsheet, so all Microsoft Excel functionality is fully retained in the writable or
unprotected sections of the spreadsheet. XPE has additional functionality oriented to ease
of use. The drop-down menus and the comment-enabled cells are helpful features to inform
and guide you.
The XPE spreadsheet also includes the Quick Estimate Wizard, the Memory Interface
Configuration Wizard, the Memory Generator Wizard (for block memory and distributed
memory), and the Transceiver Configuration Wizard. These wizards help novice and expert
users to quickly enter the important configuration parameters, which will then generate
relevant lines in the I/O, Logic, Block RAM (BRAM), Transceiver, and Other sheets, helping
with accurate power analysis.
Microsoft Excel 2010 is not officially supported in this release of XPE. OpenOffice and
Google Docs spreadsheet editors are not supported in this release of XPE.
2. Download the latest available spreadsheet for your targeted device. The XPE
spreadsheets are available at the Power Advantage webpage here:
http://www.xilinx.com/power
° Microsoft Excel 2003 - By default, the macro security level is set to High, which
disables macros. To change the macro security level, follow these steps (actual
menu names will vary with language of Microsoft Excel):
a. On the Tools menu, point to Macro and click Security.
a. In the Security dialog box, click the Security Level tab.
b. Select Medium, then click OK.
c. Open or, if already open, reopen the XPE spreadsheet.
d. When prompted whether to enable or disable macros, click Enable Macros.
° Microsoft Excel 200 7 or Windows Vista - The following steps are required:
a. From the Microsoft Office button select Excel Options.
b. In the Options dialog, click on Trust Center.
c. In the Trust Center dialog, click on Trust Center Settings and select the Macro
Security tab.
d. Select Enable all macros, then click OK.
e. Open or, if already open, reopen the XPE spreadsheet.
TIP: You can save an Excel 2007 or later spreadsheet as an .xlsm file (Macro Enabled Workbook), and
this will enable macro content. Calculations in XPE will not be affected if you decide to change to this
extension. You can also enable the macro content each time you open the workbook. Enabling macro
content by changing the Trust Center settings is a potentially dangerous way of enabling macro
content.
IMPORTANT: If you save an Excel 2007 or later spreadsheet as an .xlsx file (Excel Workbook) you will
lose the macro capability and render XPE nonfunctional. You will be warned of this if you try to save as
an .xlsx file.
As a general rule, input as much information about your design as available, then leave the
remaining settings to default values. This strategy will allow you to determine the device
power supply and heat dissipation requirements.
TIP: Use Excel formulas to link different cells together. For instance type '=CLOCK!E9' in the Logic sheet
lines which list the resources driven by this clock domain.
• Power by Voltage Supplies - For each required voltage source, this information is
useful to select and size power supply components such as regulators, etc. Supply
power includes both off-chip and on-chip dissipated power.
• Power by User Logic Resources - For each type of user logic in the design, XPE reports
the expected power. This allows you to experiment with architecture, resources, and
implementation trade-off choices in order to remain within the allotted power budget.
• Thermal Power - XPE lets you enter device environment settings and reports thermal
properties of the device for your application, such as the expected junction
temperature. With this information you can evaluate the need for passive or active
cooling for your design.
The Summary sheet in XPE shows the total power for the device. Other sheets show
usage-based power. Leakage within the unused portion of the considered resource (if any)
is not shown.
The following sections provide more details on how to enter settings and review results.
Definitions/Terminology
Supported Device Families
Separate spreadsheets are available depending on the targeted architecture. These
spreadsheets are updated when new device data become available or when new features
are added to XPE.
• Spartan-3E
• Spartan-3
IMPORTANT: Download the latest available spreadsheet from the Power Efficiency webpage on the
Xilinx website at this location: http://www.xilinx.com/products/technology/power.
Advance
The data integrated into XPE with this designation is based primarily on measurements and
characterization data made on early production devices. A set of widely used device
resources are included in the characterization. Characterization data is limited to these few
blocks. This data is typically available within a year of product launch. Although the data
with this designation is considered relatively stable and conservative, some under-reporting
or over-reporting may occur. Advance data accuracy is considered lower than the
Preliminary and Production data.
Preliminary
The data integrated into XPE with this designation is based on complete early production
silicon. Almost all the blocks in the device fabric are characterized. Data for most of the
dedicated blocks like TEMAC and PCIe block are also characterized and integrated into XPE.
The probability of accurate power reporting is improved compared to Advance data.
Production
The data integrated into XPE with this designation is released after enough production
silicon of a particular device family member has been characterized to provide full power
correlation over numerous production lots. Characterization data for all blocks in the device
fabric is included.
Total Power
The total FPGA power is calculated as follows:
The power estimates are modeled to account for temperature and voltage sensitivity.
Ambient temperature and regulated voltage on the system can be keyed into the
appropriate cells provided for that purpose.
For design static power calculations, XPE starts by assuming a blank bitstream. To
"instantiate" design elements for the design static power calculations, you must enter the
appropriate resource counts on the sheets with count fields and non-zero clock frequencies
for the sheets without count fields. I/O termination must also be set to match the board and
the design.
Activity Rates
XPE shows values for these types of activity rates:
• Toggle Rates
• Signal Rates
Toggle Rates
Providing accurate toggle rates in the various XPE sheets is essential to get quality power
estimates. This information, however, may not be readily available at the stage in the design
cycle where you enter data in XPE. Activity may be refined as the design gets more defined.
Below are guidelines you can follow to help you enter design toggle activity.
• For synchronous paths, toggle rate reflects how often an output changes relative to a
given clock input and can be modeled as a percentage between 0–100%. The max data
toggle rate of 100% means that the output toggles every active clock edge. For
instance, consider a free running binary counter with a 100MHz clock. For the Least
Significant Bit you would enter 100% in the Toggle Rate column since this bit toggles
every rising edge of the clock. For the second bit you would enter 50% since this bit
toggles every other rising edge of the clock.
• For non-periodic or event-driven state machine designs, toggle rates cannot be easily
predicted. An effective method of estimating average toggle rates for a given design is
to segregate the different sections of the design based on their functionality and
estimate the toggle rates for each of the sub-blocks. An average toggle rate can then
be arrived at by calculating the average for the entire design. Most logic-intensive
designs work at around 12.5% average toggle rate, which is the default toggle rate
setting in XPE. For a worst- case estimate, a toggle rate of 20% can be used. Average
toggle rates greater than 20% are not very common. Arithmetic-intensive modules of a
design seem to take toggle rates of up to 50%, which is representative of the absolute
worst case.
IMPORTANT: In all the sheets which do not have a dedicated Clock Enable column make sure you
scale the toggle rate to account for any signal which gates this logic. For example, if the data toggle
rate is modeled at 50% but the synchronizing clock is enabled 50 percent of the time, the resulting
toggle rate should be 25% (50% x 50%).
IMPORTANT: To appreciate what 100% toggle rate means, think of a constantly enabled toggle
flip-flop (TFF) whose data input is tied High. The T-output of this flip-flop toggles every clock edge.
Very few designs could possibly have an average toggle rate that high (100%).
Note: The IO sheet has a column to specify signal Data Rate. Make sure you adjust the Toggle
Rate and Data Rate columns accurately. For example, on an input signal which toggles on both
edges of the clock you would enter Toggle Rate = 100% and Data Rate = DDR (Dual Data Rate).
Signal Rates
Signal rate defines the number of millions of transitions per second for the element
considered. This is a read-only column that appears on some of the XPE sheets (for
example, the Logic, I/O, DSP, and Block RAM sheets). The general equation to calculate
signal rate is:
Signal Rate (Mtr/s) = Clock Frequency (Mhz) * Effective Toggle Rate (%)
Fanout
Fanout defined in XPE is similar to the fanout reported by the synthesis tool and can differ
from the fanout reported by the implementation tool. This difference is expected because
fanout will vary with placement and packing of the logic.
• In XPE fanout represents the number of individual loads or logic elements the
considered element is connected to (LUTs, flip-flops, block RAM, I/O flip-flops,
distributed RAM, and shift registers).
• In the implementation tool (ISE PAR Report), fanout is the number of SLICEs the
considered net is routed to. A SLICE typically contains multiple logic elements and
users generally do not control packing of the different elements into SLICEs. XPE
algorithms will estimate this packing before calculating the power.
Effective Θ JA (C/W)
This coefficient defines how power is dissipated from the FPGA to the environment (device
junction to ambient air). Typically this option is calculated by XPE, taking into account,
among other things, the different environment parameters in the Settings panel of the
Summary sheet. Entering a value in this field will override XPE calculations. Use this option
if you have calculated this parameter by simulations. You may also want to use this feature
to factor out environmental parameters when analyzing power differences with another
spreadsheet in which environment settings have been set differently.
Θ SA (C/W)
Heatsink to ambient air thermal resistance. By default XPE obtains this value from a
representative selection of heatsink data matched to the device package, combined with
the Heat Sink value you set (Low Profile, Medium Profile, or High Profile) and the
Airflow value you set. The value used by XPE is shown in the Θ SA field on the Summary
sheet.
The heatsink values for Low Profile, Medium Profile, and High Profile for the different
device packages are defined in Table 1.
If you have the ΘSA information for your system you can enter your specific value. First
set the Heat Sink drop-down menu on the Summary sheet to Custom, then enter your
ΘSA value.
Θ JB (C/W)
Device junction to board thermal resistance. By default XPE estimates the junction to board
thermal resistance based on standard JEDEC four-layer measurements. If you have done
thermal simulations of your system you can enter your own specific value. First set the
Board Selection drop-down menu on the Summary sheet to Custom, then enter your ΘJB
value.
User Interface
XPE has these spreadsheet sheets:
• The Summary sheet lets you enter and edit all device and environment settings. This
sheet also displays a summary of the power distribution and provides buttons to
import data into XPE, export results, and globally adjust settings.
• Other sheets allow you to enter usage and activity details for the different resource
types available in the targeted device (for example, IO, Block RAM (BRAM), and
Multi-Gigabit Transceivers (MGTs)). These sheets report design power based on the
resource usage. Resource leakage power is shown on the Summary sheet.
TIP: XPE is intended to be intuitive to the novice spreadsheet-user. For information about a cell in the
spreadsheet, move the mouse over the comment indicators (red triangle at the top right corner of the
title cells) to read the relevant notes for the intended use (see Figure 1).
Note: The toolbar displayed below is the toolbar for the 7 series/Zynq-7000 XPE spreadsheet.
Toolbar buttons for earlier architecture spreadsheets may have different names than the names
displayed below.
X-Ref Target - Figure 2
Import File
Depending on what stage your design is in the FPGA development cycle, use this dialog box
to import design information and activity into the spreadsheet. In the dialog box, select the
Files of type field to determine whether you will import an .xls or .xlsm, .mrp, or .xpe file.
For a description of the import feature, see Importing Data into XPE, page 21.
Export File
The Export File button lets you export the following information from the current
spreadsheet:
• The current settings for your design within XPE. These settings can be imported into an
XPower Analyzer session within the ISE Design Suite.
• A text power report, which allows you to analyze the power information in the XPE
spreadsheet in a textual format.
For a description of the export feature, see Exporting XPE Results, page 23.
Quick Estimate
The Quick Estimate button opens the Quick Estimate wizard. This wizard is a simple
interface to allow novice and expert users to quickly enter the important parameters
required for an accurate power analysis of a design implemented in a Xilinx device.
For a description of the Quick Estimate wizard, see Quick Estimate Wizard and the Summary
Sheet, page 49.
Reset to Defaults
The Reset to Defaults button resets all user settings to their default values, except for
values in the Device selection table on the Summary sheet, and deletes all user entered
values on the block details sheets (Clock, Logic, etc.).
• Toggle Rates
Each field changes activity of the related sheet only. Acceptable range: 0 to 100%.
To learn more about toggle rates, refer to Toggle Rates, page 12.
• Enable Rates
Each field changes activity of the related sheet only. Acceptable range: 0 to 100%.
The clock frequency entered here applies to CLOCK, LOGIC, IO, BRAM and DSP sheets.
Acceptable range: 0 to 500MHz.
• Output Load
The equivalent capacitance seen by the output driver for the routing and components
connected to this board trace. This setting does not affect power calculations for inputs.
In a typical development process you will first perform power estimation in XPE to size
the voltage supply sources, evaluate thermal power dissipation paths, and allocate the
total power budget to the different blocks in the FPGA system. Later in the development
cycle you will want to perform post implementation power analysis in XPower Analyzer
to validate against your power and thermal goals. Instead of manually re-entering this
environmental data into XPA you can export to a file and have XPA read it for your next
analysis. This process exports all environment, thermal, and voltage settings which in
turn helps getting realistic power estimations in XPA that can easily be compared
between the two tools.
For step-by-step export instructions, see Exporting XPE Results, page 23.
° The reported power exceeds your requirements and you want to evaluate different
scenarios, adjusting resources used, count, and configuration. You can also estimate
power gains from techniques such as logic gating or resource time sharing, without
modifying your code.
° Your project uses (or reuses) IP blocks already implemented in a previous design or
acquired. You can import these existing blocks into XPE to quickly get resource and
power usage for these blocks. You can then focus your efforts in XPE to enter data
for the new pieces of logic not yet defined.
° Team-based design – A project manager can regularly monitor power for the entire
design by integrating resource usage and power consumption for modules
developed by the different teams.
For step-by-step import instructions, see Importing Data into XPE, page 21.
• The reported power exceeds your requirements and you want to evaluate different
scenarios, adjusting resources used, count, and configuration. You can also estimate
power gains from techniques such as logic gating or resource time sharing, without
modifying your code.
• Your project uses (or reuses) IP blocks already implemented in a previous design or
acquired. You can import these existing blocks into XPE to quickly get resource and
power usage for these blocks. You can then focus your efforts in XPE to enter data for
the new pieces of logic not yet defined.
• Team-based design - A project manager can regularly monitor power for the entire
design by integrating resource usage and power consumption for modules developed
by the different teams.
For step-by-step import instructions, see Importing Data into XPE, page 21.
• The reported power exceeds your requirements and you want to evaluate different
scenarios, adjusting resources used, count, and configuration. You can also estimate
power gains from techniques such as logic gating or resource time sharing, without
modifying your code.
• Your project uses (or reuses) IP blocks already implemented in a previous design or
acquired. You can import these existing blocks into XPE to quickly get resource and
power usage for these blocks. You can then focus your efforts in XPE to enter data for
the new pieces of logic not yet defined.
• Team-based design - A project manager can regularly monitor power for the entire
design by integrating resource usage and power consumption for modules developed
by the different teams.
For step-by-step import instructions, see Importing Data into XPE, page 21.
Use this option to import an existing XPE workbook (.xls or .xlsm file). This option is
useful when starting a new design which reuses previous IP blocks or when updating the
design information into the latest spreadsheet version. This action deletes all data in the
current spreadsheet, then imports all data from the selected spreadsheet.
IMPORTANT: When the import is complete, make sure to verify and adjust the imported data where
appropriate. For example, adjust utilization and resources count columns when porting a design to a
new architecture.
Use this option to further analyze your design by importing complete designs or IP
blocks. The .xpe file you are importing can come from either the ISE Design Suite or the
Vivado Design Suite.
° ISE Design Suite - The .xpe file was produced by XPower Analyzer or by the -xpe
option to the xpwr command. See the XPower Analyzer Help or the description of
the -xpe option to the xpwr command line in the Command Line Tools User Guide
(UG628) for details on how to generate this interoperability file.
° Vivado Design Suite - The .xpe file was produced by the report power tool or by the
-xpe option to the report_power Tcl command. See the Vivado User Guide:
Power Analysis and Optimization (UG907) for details on how to generate this
interoperability file.
Benefits and use model for this flow are presented in Exchanging Power Information
with XPower Analyzer, page 19 or Importing Results from Vivado Power Analyzer,
page 20.
Select the import from Map Report (.mrp file) when portions of the design have been
implemented in the ISE Design Suite. You can import the exact resource count from a
Map Report to get a more accurate power estimation after the design is placed. This
flow is also used when portions of the design are implemented while others are still
being designed, so you can add details for the expected remaining logic and evaluate
the total design power distribution.
Note: This process overwrites any utilization data, but preserves environment settings.
TIP: After import you will notice resources used are grouped into a minimum set of lines. The map
report only contains the counts of the various blocks and you will need to set the bit width, data rate,
clock, mode, enable, and other configurations on each XPE sheet to match your design.
TIP: The I/O and BRAM sheets are populated based on unique configuration. I/Os are grouped by bus
and all BRAMs with the same configuration appear on a single line. You may therefore need to add
additional rows and adjust the counts to group by clock domain, module, or functionality.
Use this format to export XPE settings so they can then be applied to an XPower
Analyzer session. This tool is typically used later in the design cycle when you are ready
to perform a post place and route power analysis. The tool will create an .xpa file which
contains all the environment settings, such as thermal, board and voltage properties.
This simplifies the analysis setup in XPower Analyzer and ensures power data can be
compared between the two tools.
Note: To read the data exported from XPE into XPower Analyzer, enter the Settings file name
(*.xpa) in the dialog box that appears when you open a design in XPower Analyzer (File > Open
Design).
Note: In the XPower (XPWR) command line tool, which performs a power analysis on your
design within the ISE Design Suite, use the -x <file_name> switch to read in the XPE exported
data.
• Export as Text Power Report (*.pwr)
Use this format to export XPE Summary sheet results in a text format. XPE will save all
the information on the Summary sheet in a sequence of tables so the information is easy
to read. This feature can be used to archive or compare multiple scenarios. It can also
help if your design flow uses scripts to parse and use XPE results.
Use this format to export the contents of an XPE spreadsheet in a smaller file, and then
restore it by importing it into another spreadsheet.
• Quick Estimate wizard - The Quick Estimate wizard populates the XPE sheets with
information about your entire design, allowing XPE to perform a rough power estimate
for the design. The Quick Estimate wizard is often used as the first step in specifying
your design in XPE to determine its power requirements.
• IP Module wizards - The IP Module Wizards extend XPE to allow you to easily populate
the XPE spreadsheet with information about:
° Various types of external memory interfaces (for example, DDR3, DDR3L, LPDDR2,
QDR+, and RLDRAM).
° Transceiver based interfaces (for example, 10GBASE-R, Interlaken, PCIe, Aurora, and
CPRI.
If you run the Quick Estimate wizard a second time, you will replace all the spreadsheet
entries from the previous run with entries from the current run.
The following manuals will help you supply information to the Quick Estimate Wizard:
To populate the 7 Series XPE sheets using the Quick Estimate wizard:
1. In the Summary sheet Settings Panel specify the target part, including the Speed
Grade and Temp Grade.
2. On the Summary sheet, click the Quick Estimate button.
3. In the XPE Quick Estimate dialog box, fill out the information in the dialog box for your
design.
The entries available in the dialog box depend on the Xilinx device in which you will
implement your design.
° Conditions
OR
- A Maximum process and maximum voltages, with the Junction temperature set
for a worst case power analysis at the specified temperature grade limit.
° Environment
Allows you to select the airflow environment under which your device will operate
(Still Air, 250 LFM, or 250 LFM (w/Heatsink)).
° Voltage
Allows you to specify whether XPE will calculate power assuming the device is
operating with all supplies at their Nominal or Maximum voltages.
° Design Activity
For the Logic (configurable logic blocks (CLBs) and interconnect) and BRAM (block
RAM), enter these values:
- Clock
- Toggle
Enter a single Toggle rate (in %). This toggle rate will apply to all the resources in
the Logic or to the BRAM.
- Enable
Enter a single Enable rate (in %). The Enable rate will apply to the slice clock
enable in the Logic or to the BRAM enable.
° Design Utilization
Enter the number of each resource (LUT, FF, BRAM, and DSP) you estimate your
design will use.
The % column shows the percentage of utilization for the resource in the specified
device.
You can enter a number in the box provided or use the spin buttons (the up and
down arrowheads) to increase or decrease the utilization % by 5% each click.
If you try to enter a value greater than the total number of the resource in the device
(for example, you try to enter 10,000 LUTs for a device that only contains 9600 LUTs),
the value displayed will change to the total number of the resource in the device (in
this example, 9600 LUTs) and the utilization % will be 100%.
° Physical Interfaces
For the memory interface (Memory) you specify, enter a bit width (Width) and a
data rate (Rate) in Mb/s.
For the transceiver interfaces (GTP, GTX, etc.) you specify, enter a bit width (Width)
and a data rate (Rate) in Gb/s.
For LVDS, specify the number of input pins (In), output pins (Out), and the data rate
(Rate) in Mb/s.
4. When you have filled out the values for your design, click OK.
After a DRC (Design Rules Check) runs, the sheets in Xilinx Power Estimator spreadsheet
will be populated based on the values you entered, and XPE will estimate power for the
design you specified.
IP Module Wizards
The IP Module wizards extend XPE to allow you to easily enter various types of external
memory interfaces (e.g. DDR3, DDR3L, LPDDR2, QDR+, RLDRAM), transceiver based
interfaces (e.g. 10GBASE-R, Interlaken, PCIe, Aurora, and CPRI) and block memory or
distributed memory.
To populate the 7 Series/Zynq-7000 Logic sheet using the XPE Memory Generator Wizard:
OR
Figure 10: Distributed Memory Tab - XPE Memory Generator Dialog Box
(Virtex-7)
The fields in the Distributed Memory tab are:
° Memory Type
For a description of these memory types, see the 7 Series FPGAs Configurable Logic
Block User Guide (UG474).
° Clock
Enter the clock frequency at which the distributed memory will operate.
For dual-port memory types, XPE assumes the same clock frequency for both ports.
° Toggle
Enter the average toggle rate of the data signals. A toggle rate of 50% means that
half of the data signals toggle each clock cycle.
° Width
° Depth
Enter the depth of the memory. Width × Depth is the total number of bits in the
memory.
° Registered Inputs
Specify whether the memory inputs will be registered (Registered Inputs selected)
or not (Registered Inputs deselected).
For a description of input registering, see the 7 Series FPGAs Configurable Logic Block
User Guide (UG474).
° Registered Outputs
For a description of output registering, see the 7 Series FPGAs Configurable Logic
Block User Guide (UG474).
° Module name
3. When you have filled out the values for this distributed memory, click Apply.
A row in the Logic sheet will be filled in with the information you entered in the dialog
box.
4. For each distributed memory type in your design, fill out the dialog box and click Apply.
Each time you click Apply a row will be added to the Logic sheet.
5. When you have configured all of the distributed memory in your design, click Close to
close the XPE Memory Generator dialog box.
To understand the capabilities of the 7 series block memory and the settings you will enter
within XPE refer to the 7 Series FPGAs Memory Resources User Guide (UG473).
To populate the 7 Series Block RAM sheet using the XPE Memory Generator Wizard:
OR
Figure 13: Block Memory Tab - XPE Memory Generator Dialog Box (Virtex-7)
The fields in the Block Memory tab are:
° Memory Type
For a description of these memory types, see the 7 Series FPGAs Memory Resources
User Guide (UG473).
° Clock
Enter the clock frequency at which the block RAM will operate.
For dual-port memory types, XPE will assume the same clock frequency for both
Port A and Port B.
° Algorithm
Specify which of these algorithms the Xilinx design tools will use to configure block
RAM primitives and connect them together:
- Minimum Area
The memory is generated using the minimum number of block RAM primitives.
- Low Power
The memory is generated such that the minimum number of block RAM
primitives are enabled during a Read or Write operation.
° Toggle
Enter the average toggle rate of the data signals. A toggle rate of 50% means that
half of the data signals toggle each clock cycle.
If you have selected a single port Memory Type, you will enter information for Port
A only. If you have selected a dual port Memory Type, you will enter information for
both Port A and Port B.
- Width
- Depth
Enter the depth of the port. Width × Depth is the total number of bits in the
memory.
- Enable
- Mode
Select the operating mode for the block RAM: READ_FIRST, WRITE_FIRST, or
NO_CHANGE.
For a description of these modes, see the 7 Series FPGAs Memory Resources User
Guide (UG473).
° Module name
Allows you to assign a name to the generated block memory configuration. This will
help to distinguish multiple configurations in the XPE worksheets.
3. When you have filled out the values for this block memory, click Apply.
A row in the Block Ram sheet and a row in the Logic sheet will be filled in with the
information you entered in the dialog box.
4. For each block memory type in your design, fill out the dialog box and click Apply.
Each time you click Apply a row is added to the Block RAM sheet and the Logic sheet.
5. When you have configured all of the block memory in your design, click Close to close
the XPE Memory Generator dialog box.
When you configure a memory interface using the wizard, rows will be added to the I/O
sheet for each output line (for example, Data, Address, and Clock) from the FPGA that will
be applied to the external memory. The wizard will also place rows on the Clock sheet and
on the sheet for any clock manager (for example, PLL or MMCM) that is part of the memory
interface.
The Memory Interface Configuration wizard does not support all memory interface
standards or all interface parameters for the supported standards. The wizard covers many
of the common Memory Interface Standards. For a specific standard there could be more
pins associated than configured by the wizard. In these cases you may need to modify the
output of the wizard or enter the extra pins manually in the I/O sheet for your specific case.
Also, if a selection is not available for a specific field, you may be able to manually override
the selections in the field.
To understand the 7 series memory interfaces and the settings you will enter within XPE
refer to the 7 Series FPGAs Memory Interface Solutions User Guide (UG586).
To add memory interface I/Os to the 7 series I/O sheet using the Memory Interface
Configuration Wizard:
1. Open the Memory Interface Configuration wizard by doing one of the following:
OR
The fields in the XPE Memory Interface Configuration dialog box are:
° Standard
- DDR2
- DDR3
- DDR3L
- QDR2+
- RLDRAM2
- RLDRAM3
- LPDDR2
You can also manually enter a memory interface of any other standard in the XPE
spreadsheet.
For a listing of the supported I/O standards and limits for your specific device, see
the appropriate data sheet:
° Bank Type
° Data Rate
° Termination (DQ/S)
Refers to the DQ (data) and DQS (data strobe) pins. For memory interfaces using the
HP banks DCI termination is used as appropriate depending on the Standard
selected. For the HR banks INTERM_40, INTERM_50, INTERM_60 or external
termination (no entry) may be selected.
° Data Width
Values from 8-144 in increments of 8 are supported, with memory type and device
restrictions. Address, data, and control signals must be in the same I/O column so
the limit is often lower than 144. Stacked Silicon Interconnect (SSI) technology
devices are limited to a width of 72 due to this restriction.
° Address Width
The total number of address lines used in the interface, which includes Row, Col,
Bank, and, if used, Rank and CS lines.
° Number of Interfaces
Enter the number of memory interfaces that will use the settings that you are
currently entering in the dialog box. When the I/O sheet is populated with the
outputs to external memory, the number of pins for each type of line (for example,
Address, Data, and Clock lines) will reflect the number of Interfaces you specify.
° Read/Write (%)
Specifies the percentage of the time the memory interface is used for reading from
and writing to the external memory. The total must be less than or equal to 100%
and the interface is assumed to be idle for 100% - (Read% + Write%) of the time. This
is reflected in the Output Enable, Term Disable and IBUF Disable percentages.
° Module Name
Allows you to assign a name to the generated configuration. This will help to
distinguish multiple configurations on the I/O sheet.
3. When you have filled out the values for this memory interface, click Apply.
Rows in the I/O sheet will be populated with the information you entered in the dialog
box.
4. For each memory interface in your design, fill out the information in the XPE Memory
Interface Configuration dialog box and click Apply.
Each time you click Apply rows will be added to the I/O sheet.
5. When you have configured all of the memory interfaces in your design, click Close to
close the XPE Memory Interface Configuration dialog box.
IMPORTANT: The Transceiver Configuration wizard does not support all transceiver protocols or all
transceiver parameters for the supported protocols. Any options not available in a dialog box field need
to be entered manually in the field. Any cases where a quad has transceivers using both CPLL and
QPLL, different transmit and receive rates, or different power modes, will also have to be entered
manually. The wizard covers many common protocols, but you may need to modify the output of the
wizard or enter the data manually in the MGT sheet for your specific case.
To understand the capabilities of the 7 series MGTs and the settings you will enter within
XPE refer to the 7 Series FPGAs GTX/GTH Transceivers User Guide (UG476) and the 7 Series
FPGAs GTP Transceivers User Guide (UG482).
To populate the 7 Series MGT sheet using the XPE Transceiver Configuration Wizard:
° On the applicable MGT sheet, click the Add GT Interface button (sample shown
below).
X-Ref Target - Figure 17
OR
° Protocol
Allows you to select from a list of available protocols. Device, package, and speed
grade limitations will limit the choices available. In some cases the number of
Channels, Data Mode and Clock Source selections will default to values defined by
the Protocol. The GTP configuration will not have Power Mode or Clock Source
selections. The Data Rate and number of Channels will also be reflected in the PCIe
information (on a GTX, GTP, or GTH sheet) as appropriate. No clocks or fabric are
populated in their respective sheets.
° Data Rate
After selecting the Protocol the Data Rate will either display as a fixed value
defined by the Protocol or allow you to enter the specific Data Rate used in your
system. Except for the rare cases where receive and transmit rates are different, both
RX and TX rates will match.
° Channels
Some protocols (for example, PCIe) have specific restrictions for the number of
channels and others allow you to enter the number of channels used in your system.
° Operation Mode
By default the Transceiver configuration is used, but you can select Transmitter or
Receiver only operation.
The width of the port can be configured to be two, four, or eight bytes wide. With
8b/10b encoding used the port widths can be 16, 32 or 64 bits. With 64b/66b
encoding used the port width must be 64 bits. In Raw mode the port widths can be
16, 20, 32, 40, 64, or 80 bits.
° Power Mode
Where the choice exists (as defined by the target transceiver) you can choose to use
the power-efficient adaptive linear equalizer mode called the Low Power mode
(LPM) or the high-performance, adaptive decision feedback equalization (DFE)
mode.
° Clock Source
Where the choice exists (as defined by the target device and data rate) you can
choose to use the LC tank (QPLL) or ring oscillator (CPLL) based PLL.
° Module name
Allows you to assign a name to the generated configuration. This will help to
distinguish multiple configurations in the XPE worksheets.
3. When you have filled out the values for this set of transceivers, click Apply.
A row in the MGT Sheet will be filled in with the information you entered in the dialog
box.
4. For each set of transceivers in your design, fill out the dialog box and click Apply.
Each time you click Apply a row will be added to the MGT sheet.
5. When you have configured all of the transceivers in your design, click Close to close the
XPE Transceivers Configuration dialog box.
Summary Sheet
The Summary sheet is the default sheet on launch and allows you to enter all device and
environment settings. On this sheet the tool also reports estimated power rail-wise and
block-wise so you can quickly review thermal and supply power distribution for your design
(see Figure 20).
You can ad a description, short details about the design, or calculations related to the
design in the following places:
• A Project field at the top of the Summary sheet allows you to add a description of the
design.
• In the 7 Series/Zynq-7000 spreadsheet, an area of boxes to the right of the Summary
sheet allows you to add a description, details about the design, or calculations related
to the design. In this area you can add links, data tables, graphics, or any other object
you can enter in a regular Excel document.
• In spreadsheets for pre-7 series devices, a Comment field at the bottom of the
Summary sheet allows you to add a description or short details about the design.
• If your data does not fit in the boxes on the Summary sheet, go to the User sheet.
There you can add links, data tables, graphics, or any other object you can enter in a
regular Excel document.
TIP: The Spartan-3, Spartan-3E and Virtex-4 spreadsheets have a slightly different layout for this
sheet. The description of the different user settings and data presented in this view is, however,
applicable to these spreadsheets.
X-Ref Target - Figure 20
Figure 20: Summary Sheet (Kintex-7) - Adjust Settings and Display Power Results
Settings Panel
Use the Settings panel to specify details of the device, board, cooling and ISE Design Suite
settings. This panel varies slightly depending on the targeted device. A Virtex-6 example is
presented in Figure 21.
Some settings are dependent on other settings. When this occurs the dependent cell
becomes un-editable and turns to a grey background.
X-Ref Target - Figure 21
• Device
The 7 series spreadsheet has a Voltage ID Used entry, which applies to Virtex®-7, -1
Speed Grade, Commercial Temp Grade, and Maximum Process FPGAs only. If Voltage
ID Used is set to Yes, XPE will perform all of its power calculations based on the device
operating at the Voltage ID voltage. The Voltage ID (VID) voltage is the minimum
possible VCCINT voltage at which the FPGA can run and still meet its performance
specifications. This voltage is tested when the FPGA is manufactured and the value is
programmed into the DNA eFuse register on the FPGA. Activating the VID feature in
your design to operate the FPGA at this VID voltage can result in a significant power
savings over operating the FPGA at its nominal voltage.
• Environment
For XPE to report the estimated junction temperature it needs to understand how the
device logic is configured and activated. It also needs a description of the device
environment. The information of how heat can be transferred into the surrounding air
(ΘSA) or PCB (ΘJB) affects the device junction temperature. If these parameters are
known enter them; otherwise, select from the different drop-down menus the
environment settings closest to your specific project. This will help to indirectly
determine Effective ΘJA.
For more details about the thermal parameters of the Xilinx Power Estimator, please
refer to Chapter 3: Thermal Management & Thermal Characterization Methods &
Conditions in the Device Package User Guide (UG112).
° Implementation (7 series)
° PL Implementation (Zynq-7000)
Settings in this section are available to focus the synthesis and implementation tools on
minimizing towards different objectives. Adjust this area to best match the ISE or Vivado
Design Suite settings you plan on using. This option affects the core dynamic power by
an amount seen in a suite of customer designs.
° Minimum Runtime
° Timing Performance
These options are described in the ISE Design Suite documentation for Design Goals
and Strategies.
TIP: In a 7 series spreadsheet, this section is labeled Implementation, and only Balanced and Power
Optimization settings are available. In a Zynq-7000 spreadsheet, this section is labeled PL
Implementation, and Balanced, Power Optimization, and Powered Off settings are available.
• Power mode
This setting allows you to review the estimated power for the different active and power
down modes of the device. Power Mode is available for some device families.
In this view you can click on the resource name to directly jump to the detailed sheet for this
resource.
For design static power calculations, XPE starts by assuming a blank bitstream. To
"instantiate" design elements for the design static power calculations, you must enter the
appropriate resource counts on the sheets with count fields and non-zero clock frequencies
for the sheets without count fields. I/O termination must also be set to match the board and
the design.
You can adjust individual voltages within the supported range and XPE will calculate and
display the total current required. When Maximum Process is selected in the Device table
and any power-on supply current values exceed the estimated operating current
requirements, the Power Supply panel will display the minimum power-on supply
requirements, in blue. If any current values do appear in blue, the total power indicated in
the Power Supply panel will not match the Total On-Chip power in the Summary Panel.
Multiple power supplies are required to power an FPGA. For logic resources typically
available in Xilinx FPGAs, Table 3 presents the voltage source that typically powers them.
This table is provided only as a guideline because these details may vary across Xilinx device
families.
Table 3: FPGA Resources and the Power Supply that Typically Powers Them
Power Supply Resources Powered
VCCINT • All CLB resources
& • All routing resources
VCCBRAM(3) • Entire clock tree, including all clock buffers
• Block RAM/FIFO (1)
• DSP slices (1)
• All input buffers
• Logic elements in the IOB (ILOGIC/OLOGIC) (1)
• ISERDES/OSERDES (1)
• PowerPC™ processor(1)
• Tri-Mode Ethernet MAC(1)
• Clock Managers (DCM, PLL, etc.) (minor)
• PCIE and PCS portion of MGTs
VCCAUX • Clock Managers (MMCM, PLL, DCM, etc.) (1)
& • IODELAY/IDELAYCTRL(1)
VCCAUX_IO(4) • All output buffers
• Differential Input buffers
• V REF-based, single-ended I/O standards, e.g., HSTL18_I
• Phaser
VCCO • All output buffers
• Some input buffers
• Digitally Controlled Impedance (DCI) circuits, also referred to as
On-Chip Termination (OCT) (2)
MGT* • PMA circuits of transceivers
Notes:
1. These resources are available only in certain device families. Refer to the appropriate data sheets
and user guides for more information.
2. VCCO in bank 0 (VCCO_0 or VCCO_CONFIG) powers all I/Os in bank 0 as well as the configuration
circuitry. See the applicable Configuration User Guide.
3. Xilinx 7 series Block RAM/FIFO only.
4. Xilinx 7 series High Performance (HP) I/O banks only.
Summary Panel
The Summary panel presents in a concise format the main data of interest (see Figure 23).
X-Ref Target - Figure 23
Estimated junction temperature as the design operates. Each device operates within a
temperature grade specified in the datasheet. The background for this cell turns orange
when the value is outside the operating range (timing may be affected) and turns red
when outside the absolute maximum temperature (device damage possible). The
background color turns light blue when the value is set by user.
Includes power consumed and dissipated by the device across all supply sources. Also
referred to as thermal power. This cell follows the color scheme of the Junction
Temperature cell described above.
• Thermal Margin
Temperature and power margin up to or in excess of the maximum accepted range for
this device Grade. Thermal margin is negative when estimated junction temperature
exceeds the maximum specified value. In this case, use this information to decide how
best to address the excess power consumed on-chip.
• Effective ΘJA
The calculated Effective Thermal Resistance (Effective ΘJA) summarizes how heat is
transferred from the die to the environment. The value is calculated from the settings
entered in the Environment panel. If you have run thermal simulations of your
environment then you may also override this value (in the Environment panel).
The Quick Estimate wizard can be started from the Summary sheet by clicking the Quick
Estimate button.
X-Ref Target - Figure 24
For a description of the Quick Estimate wizard and how you can run the wizard from the
Summary sheet, see Quick Estimate Wizard, page 25.
The following manuals will help you supply information to the Quick Estimate Wizard:
• Power information for this XPE spreadsheet, captured at a certain time. When you
create the snapshot, all of this information is copied from the Summary sheet of this
spreadsheet to the Power Comparison Snapshots sheet.
• Power information for a different XPE spreadsheet, captured at a certain time. When
you create the snapshot, all of this information is copied from the Summary sheet of
the other spreadsheet to this Power Comparison Snapshots sheet.
• Power information for a design implemented in ISE, captured at a certain time. When
you create the snapshot, the power information is imported from the ISE Power Report
into the Power Comparison Snapshots sheet.
The Power Comparison Snapshots sheet allows you to explore What If? scenarios, changing
the part or the environmental conditions under which the part will operate and observing
the effect on power the changes will have. You can also create a snapshot of the power
calculated when your design is implemented in ISE, to see how the power calculated for the
implemented design compares to the power calculated before the design was
implemented.
° Source and version of the snapshot data creator (for example, “ISE: 13.4” for an
imported snapshot)
° The Part (device, package, and speed grade) for which the power values were
calculated.
° The value for Ambient Temperature under which the device will operate, as
specified when the snapshot was taken.
° The Process (Typical or Maximum) specified when the snapshot was taken. The
Process setting accounts for the power dissipation caused by the manufacturing
process.
° Total On-Chip Power - The total power consumed within the device for each
snapshot. It includes device static and design dependent static and dynamic power.
° The values for Junction Temperature and Effective ΘJA under which the device
will operate, as specified when the snapshot was taken.
• On-Chip Power - The On-Chip Power section presents the total power consumed
within the device by each resource type.
In some cases, more than one resource will be included in a single row. For example, the
Clocking row may include the power associated with clock nets as well as the power
associated with clock managers such as the PLL and the MMCM, and the Transceiver
row may include the power associated with Multi-Gigabit Transceivers (MGTs) as well as
the power associated with a PCIe block.
• Supply Summary - Displays the estimated current across the different supply sources.
The table includes all power required by the internal logic along with power eventually
sourced and consumed outside the FPGA, such as in external board terminations. This
view includes both static and dynamic power.
A snapshot for the current XPE spreadsheet appears in the far right column of the table
in the sheet.
Importing a Snapshot
You can import a snapshot containing power values calculated from a different XPE
spreadsheet or power values calculated when the design is implemented in the ISE Design
Suite.
Note: When you import power information into the Power Comparison Snapshots sheet, the FPGA
or AP SoC device represented in the imported data does not have to match the device specified in
the current XPE spreadsheet.
1. Click the Import button at the top of the Power Comparison Snapshots sheet.
X-Ref Target - Figure 27
A snapshot for the current XPE spreadsheet will appear in the far right column of the
table in the sheet.
2. In the Select XPE File to Import dialog box, select the following in the Files of type box:
° XPE Workbook (*.xls*), if you are importing information from a different XPE
spreadsheet.
° Power Report (*.pwr), if you are importing information from a Power Report
generated within the ISE Design Suite.
3. Browse to the file you will import and click Open.
A snapshot appears in the far right column of the table in the Power Comparison Snapshots
sheet. If desired, rename the snapshot at the top row of the table.
To delete all of the snapshots on the Power Comparison Snapshots sheet, click the Clear All
button at the top of the sheet.
Each IP module displayed in the IP Manager sheet represents the device resources used to
implement one of the following in a Xilinx device:
• Block memory - Created using the Memory Generator Wizard (for Block Memory).
• Distributed memory - Created using the Memory Generator Wizard (for Distributed
Memory).
• Memory interface - Created using the Memory Interface Configuration Wizard.
• Transceiver interface - Created using the Transceiver Configuration Wizard.
X-Ref Target - Figure 28
The IP Modules table indicates the power associated with each IP module created, as well
as the power associated with the resource sheets populated by the IP module. As shown in
the IP Modules table in Figure 28, IP modules may populate more than one resource sheet.
For example, a block memory IP module may place rows in both the Block RAM sheet
(BRAM column) and the Clock sheet (Clocking column).
n some cases, more than one resource will be included in a single column in the IP Modules
table. For example, the Clocking column may include the power associated with clock nets
as well as the power associated with clock managers such as the PLL and the MMCM, and
the Transceiver column may include the power associated with Multi-Gigabit Transceivers
(MGTs) as well as the power associated with a PCIe block.
• Block Memory - See Memory Generator Wizard (for Block Memory), page 32.
• Distributed Memory - See Memory Generator Wizard (for Distributed Memory),
page 28.
• Memory Interface - See Memory Interface Configuration Wizard, page 35.
• Transceiver Interface (7 Series only) - See Transceiver Configuration Wizard, page 39.
2. In the Manage IP tab of the IP Manager dialog box, select the IP module you want to
delete and click Delete.
All of the rows in the appropriate resource sheets are deleted, and the IP Module is
removed from the IP module table on the IP Manager sheet.
2. In the Manage IP tab of the XPE IP Manager dialog box, select the IP module you want
to export and click Export.
3. In the Export Xilinx Power Estimator IP Module dialog box, specify a File name for the
.xpe file representing the selected IP module. Then click Save.
The selected IP module is exported to an .xpe (XPE Exchange) file. This file can be
imported into another XPE spreadsheet.
2. In the Manager IP tab of the XPE IP Manager dialog box, click Import.
3. In the Import Xilinx Power Estimator IP Module dialog box, specify the File name of the
.xpe file to be imported. Then click Save.
Resource Sheets
The following sections provide details for entering data into or interpreting results in the
different available resource sheets. XPE only shows sheets available on the particular FPGA
family and device selected. These resource sheets are organized with a center table where
you enter utilization, configuration, and activity of the device resources you use. Above this
main table are tables representing the total utilization and a summary of the resource’s
contribution to the total power per voltage supply.
These sheets represent usage based power; therefore, they include all power related to the
utilization and configuration of the specified resource. The sheets do not include the
leakage power contribution, since this is accounted for on the Summary sheet.
RECOMMENDED: On sheets in which you specify a clock frequency for resources, XPE will assume that
all resources on a single row in the sheet (for example, 4000 Shift Registers and 3000 FFs in a single row
on the Logic sheet) are in the same clock domain. For an accurate power estimation, make sure to enter
resources in different clock domains on separate rows in the spreadsheet.
Clock Sheet
Important factors in dynamic power calculation are the activity and the load capacitance
that needs to be switched by each net in the design. Some of the factors in determining the
loading capacitance are fanout, wire length, etc. With clocks typically having higher activity
and fanouts, the power associated with clock nets can be significant and thus is reported in
a separate worksheet sheet (see Figure 32).
X-Ref Target - Figure 32
Xilinx devices have different types of buffers capable of driving the clock routing
structures and these types are modeled within XPE. Refer to the applicable Device User
Guide to select the appropriate buffer type.
Gates the clock net at its source. The value is the percentage of the time in which the
clock buffer is active. Reduce this percentage if you plan on disabling the clock net at
the source when this portion of the design is not used. This reduces power.
Gates the clock net at its loads. Reduce this percentage if you plan on disabling some of
the clock loads with slice level Clock Enable signals. This reduces power.
Note: Some algorithms in software such as “Intelligent Clock Gating” will remap or change the
packing in order to minimize this number.
Logic Sheet
The Logic sheet (see Figure 33) is used to estimate the power consumed in the CLB
resources. The estimated power accounts for both the logic components and the routing.
Two types of information should be entered:
• Utilization – Enter the number of LUTs configured as Logic, Shift Registers and
LUT-based RAMs and ROMs. If your design or a previous generation has been
implemented within ISE use the Import button in the Summary sheet to automatically
import this information. Otherwise, use your experience to estimate utilization required
to implement the desired functionality.
• Activity – Enter the Clock domain this logic belongs to. Then enter the Toggle Rate
the logic is expected to switch and the Average Fanout.
TIP: The default setting for Toggle Rate (12.5%) and Average Fanout (3) are based on an average
extracted from a suite of customer designs. In the absence of a better estimate for your specific design,
Xilinx recommends using the default setting.
Note: The Signal Rate column defines the number of millions of transitions per second for the
considered element. This is a read-only column.
Figure 33: Effect of LUT Configuration, Toggle Rates and Average Fanout on Power Estimation (Virtex-7)
To enter information on the Logic sheet related to distributed memory, you can use the XPE
Memory Generator wizard, which appears when you click the Add Memory button on the
Logic sheet. The XPE Memory Generator wizard provides a simplified method of adding
memory-related rows to the Logic sheet. For information about using this wizard, see
Memory Generator Wizard and the Logic Sheet (Distributed Memory), page 60.
The Memory Generator wizard can be started from the Logic sheet by clicking the Add
Memory button.
X-Ref Target - Figure 34
For a description of the Memory Generator wizard and how you can run the wizard from the
Logic sheet, see Memory Generator Wizard (for Distributed Memory), page 28.
I/O Sheet
With higher switching speeds and capacitive loads, switching I/O power can be a
substantial part of the total power consumption of an FPGA. Because of this, it is important
to accurately define all I/O related parameters. In the I/O sheet XPE helps you calculate the
on-chip and, eventually, off-chip power for your I/O interfaces.
For 7 series devices, XPE provides a Memory Interface Configuration wizard to allow you to
quickly enter the important parameters required for an accurate power estimate of the I/Os
involved in the FPGA’s interface to external memory. For step-by-step instructions about
how to use the wizard to fill out the memory interface information in the I/O sheet, see
Memory Interface Configuration Wizard and the I/O Sheet, page 66.
Figure 35 shows the top section of the I/O sheet (for the 7 series spreadsheet). Note that
this sheet, as well as other sheets in the 7 series spreadsheet, contains a button to display
applicable documentation from the Xilinx website (in this case, the 7 Series FPGAs SelectIO
Resources User Guide).
X-Ref Target - Figure 35
Figure 36 illustrates the three main types of information entered on the I/O sheet: IO
Settings, Activity, and, if needed, External Termination.
Figure 36: I/O Sheet - Effect of Output Enable Rate on Power Estimates for Inputs, Outputs, and
Bidirectional I/Os (7 Series)
The following paragraphs provide more information on how to fill in each of these columns.
• I/O Settings
° I/O Standard
Specify here the expected I/O standard you will use for this interface. Configurations
which use the on-chip terminations are shown with a DCI suffix in this drop-down
menu. Differential I/O standards have a (pair) suffix. For calculations, XPE assumes
the standard VCCO level (for example, 3.3V) that is closest to the nominal listed in the
datasheet for that I/O standard.
Note: For Spartan-6 FPGAs, the open drain standards I2C and SMBUS can use a VCCO from
2.7V to 3.45V, with a 3.0V nominal voltage. In XPE these are calculated using a VCCO of 3.3V.
TIP: To minimize on output signals always use the weakest driver settings which meet your
performance goals (lpowerower the drive strength and slew rate).
TIP: Using on-chip terminated standards is a good way to improve the signal integrity of the
waveforms seen by the receiver. Since the terminations are embedded inside the FPGA, the termination
power will contribute to raising the device junction temperature. In order to minimize this power try to
use the tri-statable on-chip terminated standards (denoted T_DCI) whenever possible.
Enter the number of Input, Output and Bidir (bidirectional) signals for each I/O
interface.
TIP: Since toggling activity of inputs and outputs is often very different, Xilinx recommends you place
each direction on a separate row.
TIP: Enter one pin for each differential I/O pair. For instance, if your memory has four differential DQS
pairs, enter 4 on the Input Pins column.
TIP: Typically performance settings increase power consumption. Try to enable these setting only if
your I/O interface absolutely requires them.
• Activity
Enter in these four columns the expected activity for each I/O interface.
° Clock (MHz)
Synchronous signals: Enter the frequency of the clock capturing or generating these
signals.
Asynchronous signals: Calculate the equivalent frequency of the signal. For instance,
if you can determine the signal will toggle (change state) 2 million times per second
then enter 1 in this column (when converting signal rate to frequency you need 2
transitions to make a period: the transition from 0 to 1 and the transition from 1 to
0).
° Toggle Rate
Synchronous elements: Enter how often compared to the clock this signal is
expected to change state. For instance if the data changes every 8 clock cycles on
average, enter 12.5% (1/8, converted to a percentage).
° Data Rate
Synchronous elements: Enter DDR if the signal is sampled on both the positive and
negative edges of the clock.
° Output Enable
Output and bi-directional signals: Specify for a long period of time how much of this
time the output buffer is driving a value (compared to the time the driving buffer is
disabled or tri-stated.
TIP: As shown in Figure 36 (red frame) for line 1 and 2, setting Output Enable to 100% is a common
mistake which degrades the tool accuracy.
° Signal Rate
Defines the number of millions of transitions per second for the considered element.
This is a read-only column.
For Inputs:
Signal Rate (Mtr/s) = Clock Frequency (Mhz) * Toggle rate (%) * Data Rate
For Outputs:
Signal Rate (Mtr/s) = Clock Frequency (MHz) * Toggle Rate (%) * Data Rate *
Output Enable Rate (%)
• External Termination
When not using the available on-chip termination you can use XPE to calculate the
power supplied by the FPGA to off-chip components such as external board
termination resistor networks. When the Show External Board Termination
Multiple termination types are supported for I/Os configured as outputs. External
input terminations are not supported since calculations often require details of the
driver side but these details are not available to XPE.
° Term. Type
° R/RDIFF and RS
Some termination schemes require two resistor values while others require only a
single value. Refer to the termination graphic then enter the resistor value on the
appropriate column. Figure 37 shows the supported I/O termination topologies in
this release.
When you configure a memory interface using the wizard, rows will be added to the I/O
sheet for each output line (for example, Data, Address, and Clock) from the FPGA that will
be applied to the external memory.
The Memory Interface Configuration wizard can be started from the I/O sheet by clicking
the Add Memory Interface button.
For a description of the Memory Interface Configuration wizard and how you can run the
wizard from the I/O sheet, see Memory Interface Configuration Wizard, page 35.
To understand the 7 series memory interfaces and the settings you will enter within XPE
refer to the 7 Series FPGAs Memory Interface Solutions User Guide (UG586).
Note: Distributed RAM/ROM and SRL usage should be specified in the Logic Sheet.
To enter information on the Block RAM sheet, you can use the XPE Memory Generator
wizard, which appears when you click the Add Memory button on the Block RAM sheet.
The XPE Memory Generator wizard provides a simplified method of adding rows to the
Block RAM sheet. For information about using this wizard, see Memory Generator Wizard
and the Block RAM Sheet (Block Memory), page 69.
Use the Enable Rate to specify the percentage of time each block RAM’s ports are
enabled for reading and/or writing. To save power, the RAM enable can be driven Low
on clock cycles when the block RAM is not used in the design. BRAM Enable Rate,
together with Clock rate, are important parameters that must be considered for power
optimization.
The Write Rate represents the percentage of time that each block RAM port performs
write operations. The read rate is understood to be 100% – write rate.
Defines the number of millions of transitions per second for the considered BRAM
output port. This is a read-only column which takes into account port enable rates and
a weighted average of the port widths.
Figure 38 illustrates the effect of block RAM configuration modes and bit widths on power
estimates.
Figure 38: Block RAM Sheet - Effect of Block RAM Configuration Modes and Bit Widths on Power
Estimates (Kintex-7)
In True dual-port mode the following data write mode options are available:
• WRITE_FIRST – The port will first write to the location and then read out the newly
written data.
• READ_FIRST – The old data is first read out and then the new data is written in. This
mode effectively allows 4 operations per clock cycle (saving power or resource
utilization) – as the old data can be read out and replaced with new data on the same
clock cycle of each port.
• NO_CHANGE – When a Write happens the block RAM outputs remain unchanged.
Memory Generator Wizard and the Block RAM Sheet (Block Memory)
For the 7 Series/Zynq-7000 XPE spreadsheet, you can enter block memory information in
the Block RAM sheet by using the Memory Generator wizard. The Memory Generator wizard
provides a simplified method of populating the Block RAM sheet with rows related to block
memory, displayed as BRAMs on the Block RAM sheet.
The Memory Generator wizard can be started from the Block RAM sheet by clicking the Add
Memory button.
For a description of the Memory Generator wizard and how you can run the wizard from the
Block RAM sheet, see Memory Generator Wizard (for Block Memory), page 32.
To understand the capabilities of the 7 series block memory and the settings you will enter
within XPE refer to the 7 Series FPGAs Memory Resources User Guide (UG473).
The clock management resource sheets are presented in a different way in the XPE
spreadsheets that support the various FPGA and AP SoC architectures.
• In the 7 Series/Zynq 7000 XPE spreadsheet, information for the two clock managers,
MMCM and PLL, is supplied on a single sheet, the Clock Manager Power sheet. An
MMCM or PLL column in the Clock Manager Power sheet lets you specify whether you
are supplying information for the MMCM or the PLL.
• In spreadsheets for earlier devices (for example, the Virtex-5/Virtex-6 spreadsheet or
the Spartan-3A/Spartan-6 spreadsheet), there will be a different sheet for each clock
manager used. For example, separate DCM Power and PLL Power sheets may be
displayed in these earlier spreadsheets.
Figure 39 shows a sample clock management resource sheet (the PLL Power sheet).
TIP: For random input data, a good Toggle Rate approximation for DSP operations is 50%.
TIP: DSP slices have clock enable (CE) ports. When entering data in the Toggle Rate column remember
to multiply your data input toggle rate with the DSP slice clock enable rate. For example, if random
data (typically ~38% data toggle rate) is input into the DSP slice and the slice is clock enabled only
50% of the time, then the output data toggle rate should be scaled by the CE rate such that the data
toggle rate becomes 19% (38% x 50%). see Figure 40 for a Virtex-7 example.
TIP: For families which have a register within the multiplier (MREG), using this pipeline register helps
lower dynamic power.
X-Ref Target - Figure 40
Figure 40: DSP48E1 Power Sheet (Virtex-7) - Effect of Clock, Toggle Rate, and MREG on Power
Estimates
IMPORTANT: In the 7 series/Zynq 7000 XPE spreadsheet, PCI Express (PCIe) information is specified on
a GTX, GTP, or GTH sheet. Spreadsheets for earlier Xilinx FPGA devices have a separate PCIe sheet.
To simplify data entry, drop-down menus are provided with parameter preferred or required
values. Figure 41 shows an example Kintex-7 XC7K325T design. The tables in the sheet
header report design power and currents. Device leakage for each supply is reported on the
Summary sheet.
For 7 series devices, XPE provides a Transceiver Interface Configuration wizard to allow you
to quickly enter the important parameters required for an accurate transceiver power
estimate. For step-by-step instructions about how to use the wizard to fill out the MGT
sheets, see Transceiver Configuration Wizard, page 39.
XPE calculates power for each channel including the power of all associated circuits, shared
resources between channels, IO buffers, reference clock circuitry, etc. You therefore do not
have to enter resource usage on any other sheet (for example, Clock or I/O) to describe the
transceiver resources used.
TIP: For Spartan-6 FPGAs, you can specify a GTPA1_DUAL with different settings for each channel by
entering each channel on a separate row using the same base name suffixed with _0 and _1 (for
example, GTP_0 and GTP_1). A red border around the cells of two adjacent rows indicates the two
GTPA1s are inferred to be in the same GTPA1_DUAL.
The Power Planes field in the MGT sheet represents the number of power planes used in
the design. MGT transceivers require multiple analog power supplies for the PMA (Physical
Medium Attachment). The number of power planes varies by device and package. When not
all available MGTs are used, it may be possible to ground unused power planes to reduce
the static power.
In the 7 series/Zynq-7000 spreadsheet, the GTX, GTP, and GTH sheets have an OOB Used
column. The OOB feature uses out-of band (OOB) signaling for PCIe and other protocols
where the physical connection may be unplugged during operation. OOB is supported
using high-speed amplitude detection on the inputs and squelch on the corresponding
outputs. A Yes in the OOB Used column indicates that your design will use this feature.
XPE does not support all of the possible MGT configurations. See the specific Transceiver
User Guide for more information.
Figure 41: GT Power Sheet (Kintex-7) Illustrating Data Rate and Power Estimates
The Transceiver Configuration wizard can be started from a GT sheet by clicking the Add GT
Interface button (sample shown below).
For a description of the Memory Generator wizard and how you can run the wizard from the
GT sheet, see Transceiver Configuration Wizard, page 39.
To understand the capabilities of the 7 series GTs and the settings you will enter within XPE
refer to the 7 Series FPGAs GTX/GTH Transceivers User Guide (UG476) and the 7 Series FPGAs
GTP Transceivers User Guide (UG482).
If the recommended sequences are not followed, current drawn can be higher than
specifications during power-up and power-down. XPE calculates GT power assuming the
recommended power-up, power-down sequence is used by the design, and the power
numbers reflect this.
To calculate the extra power as a result of not following the recommended power up/down
sequence, consult the Xilinx Answer Records.
TEMAC Sheet
Different Xilinx device families contain Tri-Mode Embedded Ethernet Media Access
Controller (MAC) blocks, which are used in Ethernet applications. The Ethernet MACs are
paired within a TEMAC block, share a common host and DCR interface, but are
independently configurable to meet all common Ethernet system connectivity needs. Refer
to the applicable EMAC User Guide for a detailed description of the block capabilities and
configuration.
In XPE, you need only enter the TEMAC operating clock frequency (See Figure 42). You
typically need to know the mode and operating speed to obtain the correct clock frequency.
PCIe Sheet
Different Xilinx device families have Integrated Endpoint Block for PCI Express® designs
(integrated Endpoint block). For detailed PCIe information, refer to the applicable PCIe User
Guide and enter in XPE the settings which correspond to your application.
Note: The 7 series/Zynq 7000 XPE spreadsheet does not have a PCI Express sheet. For these devices,
PCIe information is specified on the Multi-Gigabit Transceiver sheets. See Multi-Gigabit Transceiver
Sheets (MGT, GT, GTP, GTX, GTH, GTZ).
X-Ref Target - Figure 43
For power estimation, these blocks are represented in a separate sheet within XPE. Details
for each PowerPC’s settings are available in the applicable Device User Guide. Typically you
can provide the processor main clock frequency along with details of the processor local
bus, memory and eventual DMA controllers. Figure 44 presents a Virtex-5 example.
X-Ref Target - Figure 44
The PS has between two and five voltage sources depending on the exact configuration.
The VCCO_DDR voltage is dependent on the memory interface selected and the VCCO_MIO0
and VCCO_MIO1 voltages are dependent on the I/O interfaces and standards used in the
respective banks.
• Processor
The processor used in the PS is a dual core Cortex A9. The number of A9 Cores used and
their clock frequency (Clock (MHz)) are required information. Processor Load of 50% is
for average usage and may be adjusted up or down as needed to reflect the processor
loading in a specific design.
• Memory Interface
DDR2, LPDDR2 and DDR3 memory interfaces (Memory Type) are supported in either 16
or 32 bit Data Width. The clock frequency (Clock (MHz)) is half the data rate since
these are all DDR interfaces. The Read Rate and Write Rate represent the usage and
may be set to any values that together are less than or equal to 100%.
The Data Toggle Rate is the average for the data lines with 50% being random data. The
Output Load is the board capacitance and the external termination (External Term) is
the far end parallel termination used for the data lines.
• I/O Interface
The PS supports a variety of standard interfaces (I/O Standard) and some general
purpose I/O. There are two I/O banks and all interfaces on a bank must use the same
voltage. Available I/O Interfaces, I/O Standards, Number of Interfaces, and I/O Bank
placement are represented in the XPE tool.
• PLLs
There are three PLLs in the PS that must be set to the correct frequency (MHz) when
used. By default the Processor and Memory PLLs run at twice their associated clock
frequency.
X-Ref Target - Figure 45
• XADC - The XADC (Xilinx® Analog-to-Digital Converter) is the basic building block that
enables agile mixed signal functionality in Xilinx® 7 series devices. The XADC includes
a dual 12-bit, 1 Mega sample per second (MSPS) ADC and on-chip sensors.
In the XADC table, XADC Clock (MHz) specifies the frequency of the DRP clock if your
design uses the XADC. Leave this blank if your design does not use the XADC.
The XADC is described in the 7 Series FPGAs XADC Dual 12-Bit 1MSPS Analog-to-Digital
Converter User Guide (UG480).
• Config - The Config (Configuration) table allows you to specify these device
configuration features:
Readback CRC is described in the 7 Series FPGAs Configuration User Guide (UG470).
° Config Bank Voltage - Specifies the setting of the Configuration Bank Voltage
Select (CFGBVS), which determines the I/O voltage operating range and voltage
tolerance for the configuration-related I/O banks in the device.
• PHASER - Phaser blocks are available in 7 Series devices to simplify the interface with
high-speed memory devices. For power estimation, these blocks are represented in a
table on the Other sheet. Details for each Phaser setting are available in the 7 Series
FPGAs Memory Interface Solutions User Guide (UG586).
In the Phaser table, the Phaser INs column is used to specify the number of PHASER_IN
and PHASER_IN_PHY blocks used. Similarly, the Phaser OUTs column is used for both
PHASER_OUT and PHASER_OUT_PHY blocks.
User Sheet
This sheet is intentionally left blank and user editable. On this sheet you can provide any
documentation (text, image or hyperlinks), details about the project, assumed conditions,
or collect the results important to your application.
Automating XPE
To simplify data entry and export or to assist with data manipulation Microsoft Excel offers
a variety of mechanisms which you can use to increase your productivity or the breadth of
your power estimation and analysis. The following section provides reference material and
examples to help you get started quickly with Excel internal automation features and
interface with some of the most common external scripting languages.
Examples:
Formulas to quickly set device utilization and evaluate thermal effects when varying device,
package or cooling parameters:
= INT(NUM_LUTS * 0.75) Sets total LUT utilization to 75% of device capacity (if
entered on the Logic sheet)
= INT(NUM_DSPS * 0.90) Sets DSP block utilization to 90% of device capacity (if
entered in DSP sheet)
Example:
Formula to enter into the user Junction Temperature cell on the Summary sheet to force
the device junction temperature to the maximum allowed while evaluating different
temperature or device and package combination
= TJ_MAX
Using Formulas
With Excel formulas you can simplify data entry, spreadsheet parameterization or create
customer reports as explained in the following examples
Example1: Set clock frequency of all attached synchronous loads in a single place.
Typically a clock net may reach multiple types of resources. Instead of entering the clock
frequency on each sheet the following formula can be used on the resource sheets while the
clock frequency is only defined once in the Clock sheet. Any change of the clock frequency
would immediately be reflected on all the linked resource sheets
=CLOCK!E19
Example 2: Calculate the fanout sum of all the different loads driven by a clock.
On the clock sheet you may find it useful to enter formulas similar to:
=SUM(LOGIC!G10:I10,BRAM!E10,DSP!E8)
=SUM(IO!I10:K12)
Example 3: Select the GTX data rates to the PCIe interface speed and number of lanes.
Entering the following formulae for GTX line rate and number of channels will track the PCIe
interface.
• Set channel data rate based on the PCIE bock configuration (if entered on the GTX
sheet)
=IF(PCIE!E8="GEN3",8,IF(PCIE!E8="GEN2",5,2.5))
• Set the number of GTX channels to reflect the number of PCIE lanes (if entered on the
GTX sheet)
=PCIE!G8
Example 4: Parameterize the spreadsheet entry using formulas and the User sheet.
Figure 47 illustrates how to evaluate power when a module is replicated more or fewer
times in the design. By varying the number of instances, the quantity of resources for the
base blocks, or clock frequency, an Excel formula can automatically recalculate the values
which need to be entered in other sheets. In Figure 47, the value for Number instance
(named num_inst) in the User sheet automatically calculates utilization and activity for cells
that appear in the Logic sheet.
X-Ref Target - Figure 47
Figure 47: Parameterizing Data Entry Using Formulas on the User Sheet
• Create a text power report and save with name specified as argument.
Public Sub GeneratePowerReportFile(FileName As String)
• Create a settings file and save with name specified as argument. This file can later be
used in XPower Analyzer.
Public Sub GenerateXPAFile(FileName As String)
• Create an XPE file and save with name specified as argument. This file can later be used
to restore the current settings in XPE.
Public Sub GenerateXPEFile(FileName As String)
• Import a place and route map report (.mrp path/file specified as argument).
Public Sub ImportMapReportFile(FileName As String)
• Import a implementation results in the .xpe format. Review the Import dialog options
for details and format of the different arguments.
Public Sub ImportXmlFile(FileName As String, Append As Boolean,DevSettings As
Boolean, EnvSettings As Boolean, VoltSettings As Boolean, IOSettings As Boolean)
• Set the default voltages for all supply voltages. Set argument to False for Nominal
voltages and to true for Maximum voltage levels.
Public Sub SetDefaultVoltages(Maximum As Boolean)
• Set the Device field on the Summary sheet (will automatically adjust the Family field if
required).
Public Function SetDevice(Device As String) As Boolean
• Set the Process field on the Summary sheet. Set argument to False for Typical process
and True for Maximum process.
Public Sub SetProcess (Maximum As Boolean)
• Set the Temp Grade field on the Summary sheet. Options are "Commercial",
"Industrial", "Q-Grade", "Extended”, etc.
Public Function SetTemperatureGrade (Grade as String) as Boolean
• Set the Speed Grade field on the Summary sheet. Options are "-1", "-1L", etc.
Public Function SetSpeedGrade (Grade as String) as Boolean
• Set the Heat Sink field on the Summary sheet. Options are "Custom", "None", "Low
Profile"
Public Function SetHeatSink (Sink as String) as Boolean
• Set the Board Selection field on the Summary sheet. Options are "Custom", "JEDEC",
"Small", "Medium", "Large".
Public Function SetBoard (BoardSize as String, BoardLayers as Integer) as Boolean
• Set the User Override for the Junction Temperature, and value.
Public Function SetJunctionTemperature(Temperature As Double, OverRide As
Boolean) As Boolean
• Set the User Override for the Effective ThetaJA, and value.
Public Function SetEffectiveThetaJA(ThetaJA As Double, OverRide As Boolean) As
Boolean
Scripting XPE
Microsoft Excel capabilities described in the previous paragraphs can be accessed from any
framework with access to the COM interface. This Component Object Model (COM) is a
binary interface standard for software that enable interprocess communications in a large
range of programming languages (for example, Visual Basic, Perl, Java). The following
examples illustrate how you can set XPE environment parameters, run calculations and read
or export results from different languages.
MsgBox ("XPE Open Failed: " & XPEfilename & "Err=" & Err)
Exit Function
End If
End If
' Set Vccint voltage
XPE.Sheets("Summary").Range("VCCINT").Value = myVccint
TotalPower = XPE.Sheets("Summary").Range("TOTAL_POWER").Value
' Export XPE results into a text power report
XPESub = "'" & XPE.Name & "'!" & "ThisWorkBook.GeneratePowerReportFile"
Application.Run(XPESub, FileName)
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
my $myXPEfilename = "C:\\Power\\7_Series_XPE_13_1.xls";
# Opening XPE
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
my $Book = $Excel->Workbooks->Open($myXPEfilename);
# Export XPE results into a text power report
$Excel->Run("ThisWorkBook.GeneratePowerReportFile", "$path/${design}.pwr");
Conclusion
The ability to estimate power consumption in a design is imperative for efficient part
selection, board design, and system reliability.
The Xilinx Power Estimator tool with its up to date power models and ease of use features
is meant to guide and simplify design utilization entry. Although gathering FPGA utilization
data may seem difficult in the early design development phases, with a little thought and
using XPE, accurate power estimations can be derived. XPE simplifies device selection and
helps parallel development of the FPGA logic and the Printed Circuit Board. Finally, XPE
helps exploration of alternative implementation and resource configuration when supply
power or thermal budgets are exceeded.
Additional Resources
Xilinx Resources
For support resources such as Answers, Documentation, Downloads, and Forums, see the
Xilinx Support website at:
www.xilinx.com/support.
www.xilinx.com/company/terms.htm.
Solution Centers
See the Xilinx Solution Centers for support on devices, software tools, and intellectual
property at all stages of the design cycle. Topics include design assistance, advisories, and
troubleshooting tips.
References
• The following are especially pertinent to the subject of this User Guide.
° Vivado Design Tools User Guide: Power Estimation and Optimization (UG907)
° Seven Steps to an Accurate Worst-Case Power Analysis Using Xilinx Power Estimator
(XPE) (WP353)
° Test Boards for Area Array Surface Mount Package Thermal Measurements