Power Estimation in ispXPLD 5000MX Devices April 2003 Technical Note TN1031 Introduction The ispXPLD™ 5000MX family is a unique architecture built around the Multi-Function Block (MFB). This block allows users to implement CPLD logic, dual-port memory (DPRAM), single port-memory (SRAM), pseudo dualport memory (PDPRAM), contents addressable memory (CAM), and FIFO memory. This technical note explains how to estimate current consumption for the ispXPLD 5000MX devices based on device utilization and operating frequency. These power estimates should be confirmed with devices operating in the actual system. It is assumed that the reader has knowledge of the ispXPLD5000MX architecture. Please refer to the ispXPLD 5000MX family data sheet for more details. The device utilization information in this technical note can be obtained from the ispLEVER™ design tool. Power Supply Current Calculations The ispXPLD 5000MX devices have multiple power pins: VCCJ, VCCO, VCC, and VCCP. This section provides the detail to calculate current requirements for each of the power supplies. VCCJ Supply The JTAG power supply pin (VCCJ) current has two components: background current and I/O related current. • Background current consumption for the VCCJ pin is minimal. – At 2.5V, less than 0.5mA – At 3.6V less than 1.3mA • I/O related current is dependent on loads connected to the JTAG pins. The JTAG pins are tri-stated and only have background current consumption when the JTAG port is inactive. VCCO Supply The power supply pins for I/O banks (VCCO0, VCCO1, VCCO2, VCCO3) are used to drive the four bank output pins. The typical unloaded (DC) VCCO current (per I/O bank) is 3mA. The AC current component is dependent on capacitance, output voltage swing, number of outputs, and average output frequency. Each bank supply has associated current, therefore use the equation for each of the four banks. VOH and VOL can be found in the sysIO™ sections of the ispXPLD 5000MX Family data sheet. Parameters: • IVCCO = Total current of VCCO per I/O bank • Fn = Output frequency of output (MHz) • Cn = Capacitive loading of output (when the output pin is connected to a CMOS input, typical load is 5-10pf) • VOH = Output voltage high of the output (V) • VOL = Output voltage low of the output (V) • VCC = Operating voltage of the device (V) • n = Number of outputs in the bank • IVCCO_DC = Typical unloaded VCCO current per I/O bank = 3mA IVCCO = [Σn=1 Cn * (VOH - VOL) * Fn] + IVCCO_DC www.latticesemi.com 1 tn1031_01 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor VCC Supply The power supply pin for core logic (VCC) is divided into six components for current consumption calculations: ICC = ICC_DC + IMFB_CPLD + IMFB_ SRAM/PDPRAM/FIFO + IMFB_DPRAM + IMFB_CAM + IPLL_D Where: • ICC = Current consumption of VCC power supply (mA) • ICC_DC = ICC DC component - Current consumption at 0MHz (mA) • IMFB_CPLD = CPLD (non-memory logic) current consumption (mA) • IMFB_SRAM/PDPRAM/FIFO = Current consumption for SRAM, PDPRAM, and FIFO (mA) • IMFB_DPRAM = Current consumption for DPRAM (mA) • IMFB_CAM = Current consumption for CAM (mA) • IPLL_D = PLL current consumption of digital VCC power supply (mA) Current Estimation Equations for VCC Supply The ispXPLD 5000MX data sheet Power Estimation Coefficient tables specify the coefficient values for each of the devices in the family. The coefficients are defined as: • • • • • • • • • • • • • K0 = Current per MFB input (µA/MHz) K1 = Current per Product Term (µA/MHz) K2 = Current per Global Routing Pool (GRP) line driven from MFB (µA/MHz) K3 = Current per GRP line driven from I/O (µA/MHz) K4 = Global clock tree current (µA/MHz) K5 = PLL digital (mA/MHz) K6 = PLL analog (mA/MHz) K7 = PLL analog baseline (mA) DC = Baseline current at 0MHz (mA) K8 = CAM frequency component (mA/MHz) K9 = CAM DC component (mA) K10 = Current per row decoder (µA/MHz) K11 = Current per column driver (µA/MHz) ICC_DC (mA) Use the appropriate value for ispXPLD 5000MC (1.8V power supply) or ispXPLD 5000MV/B (2.5V/3.3V power supply) from the data sheet. IMFB_CPLD (mA) = (((K0 * CPLD MFB inputs + K1 * CPLD Logical Product Terms + K2 * CPLD GRP from MFB + K3 * CPLD GRP from IFB) * AF+ K4) / 1000µA/mA) * FREQ IMFB-CAM (mA) = CAM Memory MFBs * ((FREQ * K8) + K9) (CAM operating in typical mode) IMFB_ SRAM/PDPRAM/FIFO (mA) = ((WR_ PERCENT * (K1 + WR_ PERCENT * 8 * K0 + K10 + K11) + RD_ PERCENT * (K1 + 128 * RD_PERCENT * K0 + 8 * OSW_PERCENT * K2)) * SRAM/PDPRAM/FIFO Memory MFBs / 1000µA/mA) * FREQ 2 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor IMFB_ DPRAM (mA) = (WR_ PERCENT * (2 * K1 + 2 * WR_ PERCENT * 8 * K0 + K10 + K11) + RD_ PERCENT * (2 * K1 + 2 * 128 * RD_PERCENT * K0 + 8 * OSW_PERCENT * K2)) * DPRAM Memory MFBs / 1000µA/mA) * FREQ IPLL_D (mA) = K5 * PLL_FREQ * number of PLLs used IPPL_D is the PLL digital component of the VCC supply current. Current Estimation Equations for VCCP Supply The power supply for PLLs (VCCP pin) has current consumption if the PLL is used. If the PLL is not used, the current consumption on the VCCP pin is minimal. • IPLL_A = PLL analog power pin current consumption (VCCP pin) IPLL_A (mA) = (K6 * PLL_FREQ + K7) * number of PLLs used Equation Parameters Design-Based Parameters Design-based parameters need to be determined or estimated when using the current calculation equations: • FREQ = Average frequency of device operation (MHz). • AF = PLD activity factor as a percentage (12.5% for a 16-bit counter). As a rule of thumb, use 25% if this can’t be estimated (%). • PLL_FREQ = Average PLL input frequency (MHz). • WR_ PERCENT = Writes as a percentage of memory accesses. As a rule of thumb, use 50% if this can’t be estimated (%). • RD_PERCENT = Reads as a percentage of memory accesses. As a rule of thumb, use 50% if this can’t be estimated (%). • OSW_PERCENT = RAM output switching activity factor (how often the outputs change on the RAM). As a rule of thumb, use 50% if this can’t be estimated (%). CPLD Parameters Device statistics are taken from the ispLEVER design tool report file. If memory is used, the resources associated with the memory need to be removed to get an accurate CPLD ICC estimate. The Cluster_Table section of the report file will show which MFBs are used for memory. If a memory needs to use any portion of a MFB, the entire MFB is used and unused MFB resources are not available for CPLD logic. This equation will help determine unknown CPLD parameters: TOTAL report file parameter = CPLD related parameter + Memory related parameter • CPLD MFB Inputs: Total MFB Inputs are reported in Device_Resource_Summary. Use this if no memory is used in the design. In the MFB_Resource_Summary section, the “Fanin” column is equivalent to MFB Inputs. Determine the CPLD MFB inputs by using the MFB_Resource_Summary, not counting the memory MFB related “Fanin”. • CPLD Logical Product Terms: Total Logical Product Terms are reported in Device_Resource_Summary. Use this if no memory is used in the design. In the MFB_Resource_Summary section, the “Logic PTs” column is equivalent to Logical Product Terms. Determine the CPLD Logical Product Terms by using the MFB_Resource_Summary, not counting the memory MFB related “Logic PTs”. 3 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor • CPLD GRP from MFB: (MFB Feedback to the Global Routing Pool) Total GRP from MFB is reported in the Device_Resource_Summary. Use this if no memory is used in the design. Determine the number of CPLD GRPs from MFB by estimating the number of memory inputs from CPLD logic and subtracting this from the total GRPs from MFB. • CPLD GRP from IFB: (I/O Feedback to the Global Routing Pool) Total GRP from IFB is reported in the Device_Resource_Summary. Use this if no memory is used in the design. Determine the number of CPLD GRPs from IFB by estimating the number of input pins used for CPLD logic. Alternatively, estimate the number of pins used for memory, and subtract this number from Total GRPs from IFB. Note: the Logic_Array_Fanin section gives source information per MFB (pin or macrocell). It can be used to estimate CPLD GRP from MFB (macrocell) and CPLD GRP from IFB (pin), but duplicated signals should be counted only once and will complicate using this information. Memory Parameters Memory usage is reported per macrocell in the report file. In the ispXPLD family, there are 32 macrocells per MFB. • SRAM/PDPRAM/FIFO Memory MFBs: Memory MFBs used by SRAM/PDPRAM/FIFO (at 16k bits per MFB). For example, if a 16k x 2 SRAM is used, with 64 memory macrocells reported, two Memory MFBs are used. • DPRAM Memory MFBs: Memory MFBs used by DPRAM (at 8k bits per MFB). For example if a 4k x 4 DPRAM is implemented, two Memory MFBs will be used (16k / 8k = 2). • CAM Memory MFBs: Memory MFBs used by CAM (at 16k bits per MFB). • Number of PLLs used: This is reported in the PLL section of the report file if PLLs are used. Sample ICC vs. Frequency Curves Figure 1 and Figure 2 show trends of VCC pin current versus frequency for two ispXPLD 5512MX designs. Figure 1. ICC vs. Frequency of ispXPLD 5512MX Filled with 16-Bit Counters (12.5% Activation Factor) ispXPLD 5512MX CPLD Icc vs. Frequency 350 300 Icc (mA) 250 200 150 Icc (mA) 100 50 0 0 50 100 150 Frequency (MHz) 4 200 250 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor Figure 2. ICC vs. Frequency of ispXPLD 5512MX Filled with 14 GLB 1x8 DPRAM at 12.5% Output Switching Levels ispXPLD 5512MX DPRAM Icc vs. Frequency 200 180 160 Icc (mA) 140 120 100 80 Icc (mA) 60 40 20 0 0 20 40 60 80 100 Frequency (MHz) Note: The power calculations as described in this technical note are only estimates. These estimates should be confirmed with devices operating in the actual system. VCC Supply Current Calculation Example As an example calculation, a sample design was fit into an ispXPLD 5512MC device. The design contains one 8k x 2-bit DPRAM, and four 16-bit counters all running at 80MHz. Below is an abbreviated ispLEVER report file from the design. Device_Resource_Summary Total Available Used Available Utilization ---------------------------------------------------------------------Dedicated Pins Clock Pins 2 2 0 --> 100 Clock/Clock Enable Pins 2 2 0 --> 100 Enable Pins 2 0 2 --> 0 Reset Pins 1 0 1 --> 0 I/O Pins 253 102 151 --> 40 Logic Macrocells 765 274 491 --> 35 Input Registers 253 0 253 --> 0 Unusable Macrocells .. 0 .. --> .. MFB Inputs Logical Product Terms Occupied MFBs Occupied Macrocells Two Function Macrocells One Function Macrocells Zero Function Macrocells Memory Macrocells Arithmetic Macrocells Occupied Product Terms Control Product Terms: Segment Product Term Enable MFB Clocks 1088 2560 16 512 .. .. .. .. .. 2624 216 611 13 222 1 107 2 64 48 747 872 1949 3 290 .. .. .. .. .. 1877 --> --> --> --> --> --> --> --> --> --> 19 23 81 43 .. .. .. .. .. 28 16 16 0 0 16 16 --> --> 0 0 5 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor MFB Resets Macrocell Clocks Macrocell Clock Enables Macrocell Enables Macrocell Resets Macrocell Presets 16 512 512 512 512 512 9 0 0 0 15 3 7 512 512 512 497 509 --> --> --> --> --> --> 56 0 0 0 2 0 Global Routing Pool 765 147 618 --> 19 GRP from IFB .. 34 .. --> .. (from input signals) .. 34 .. --> .. (from output signals) .. 0 .. --> .. (from bidir signals) .. 0 .. --> .. GRP from MFB .. 113 .. --> .. ---------------------------------------------------------------------<Note> 1 : IFB is I/O feedback. <Note> 2 : MFB is macrocell feedback. ... MFB_E_CLUSTER_TABLE MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM GGGGSBBB I P P EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE CCORECCA / B T MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM KEEEBKER Type O Y E Signal ------------------------------------------------------------------------------M00 U0\RamBaseBlockInst0{RAMB8K_X2_X2} -------M01 U0\RamBaseBlockInst0{RAMB8K_X2_X2} -------M02 U0\RamBaseBlockInst0{RAMB8K_X2_X2} -------... MFB_F_CLUSTER_TABLE MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM GGGGSBBB I P P EEEE EEEE EEEE EEEE EEEE EEEE EEEE EEEE CCORECCA / B T MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM KEEEBKER Type O Y E Signal ------------------------------------------------------------------------------M00 U0\RamBaseBlockInst1{RAMB8K_X2_X2} -------M01 U0\RamBaseBlockInst1{RAMB8K_X2_X2} -------M02 U0\RamBaseBlockInst1{RAMB8K_X2_X2} -------... 6 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor MFB_Resource_Summary # of PT I/O Input Macrocells Macrocells Logic clusters Fanin Pins Regs Used Unusable available PTs used -----------------------------------------------------------------------------Maximum MFB 68 *(1) 16 --32 160 32 ============================================================================== MFB A 13 10/16 0 22 0 10 46 22 MFB B 14 6/16 0 16 0 16 28 16 MFB C 0 0/11 0 0 0 32 0 0 MFB D 0 0/14 0 0 0 32 0 0 -----------------------------------------------------------------------------MFB E 35 0/14 0 32 0 0 160 32 MFB F 35 0/14 0 32 0 0 160 32 MFB G 32 8/16 0 24 0 8 39 24 MFB H 22 8/16 0 17 0 15 23 17 -----------------------------------------------------------------------------MFB I 1 10/16 0 1 0 31 1 1 MFB J 0 0/16 0 0 0 32 0 0 MFB K 19 16/18 0 29 0 3 53 29 MFB L 9 16/18 0 9 0 23 22 9 -----------------------------------------------------------------------------MFB M 8 11/18 0 4 0 28 6 4 MFB N 9 3/18 0 6 0 26 7 6 MFB O 13 10/16 0 22 0 10 46 22 MFB P 6 4/16 0 8 0 24 20 8 -----------------------------------------------------------------------------<Note> 1 : For LC5000MX devices, the number of IOs depends on the MFB. <Note> 2 : Four rightmost columns above reflect last status of the placement process. To calculate ICC for the VCC supply: ICC = ICC-DC + IMFB_CPLD + IMFB_SRAM/DPRAM/FIFO + IMFB_CAM + IPLL_D ICC-DC = 17mA IMFB_CPLD = (((K0 * CPLD MFB inputs + K1 * CPLD Logical Product Terms + K2 * CPLD GRP from MFB + K3 * CPLD GRP from IFB) * AF+ K4) / 1000µA/mA) * FREQ Looking at the cluster table, MFB E and MFB F are where the DPRAM is placed. Therefore, remove resources associated with these memory MFBs. • CPLD MFB inputs: 216 (total MFB inputs) - 70 (MFB E, MFB F Fanin) = 146. • CPLD Logical Product Terms: 611 (Total Logical Product Terms) - 320 (MFB E, MFB F Logic PTs) = 291. • CPLD GRP from MFB: 113 (Total GRP from MFB). Memory is connected to external pins. Assume 0 GRP from MFB associated with memory. Use CPLD GRP from MFB = 113. • CPLD GRP from IFB: 34 (Total GRP from IFB). Memory is connected to pins, 0 input pins used for counters (don’t count clock and reset). Use CPLD GRP from IFB = 0. • AF = 12.5% (for 16-bit counters) • FREQ = 80MHz 7 Power Estimation in ispXPLD 5000MX Devices Lattice Semiconductor IMFB-CPLD = (((2.2µA/MHz * 146 + 8.4µA/MHz * 291+ 9.4µA/MHz * 113 + 27.6µA/MHz * 0) * .125 + 151µA/MHz) 1000µA/mA) * 80MHz/ = 50mA IMFB_CAM = 0 (CAM Memory MFBs = 0) IMFB_ SRAM/PDPRAM/FIFO = 0 (Memory MFBs = 0) IMFB_ DPRAM = ((WR_ PERCENT * (2 * K1 + 2 * WR_ PERCENT * 8 * K0 + K10 + K11) + RD_ PERCENT * (2 * K1 + 2 * 128 * RD_PERCENT * K0 + 8 * OSW_PERCENT * K2)) * DPRAM Memory MFBs / 1000µA/mA) * FREQ Where: • WR_PERCENT = 50% • RD_ PERCENT = 50% • OSW_PERCENT = 50% • DPRAM Memory MFBs = 2 • FREQ = 80MHz IMFB_ DPRAM = (.5 * (2 * 8.4µA/MHz + 2 * .5 * 8 * 2.2µA/MHz + 4.4µA/MHz + 2.9µA/MHz) + .5 * (2 * 8.4µA/MHz + 2 * 128 * .5 * 2.2µA/MHz + 8 * .5 * 9.4µA/MHz)) * 2 / 1000µA/mA) * 80MHz = 30mA IPLL_D = 0 (number of PLLs used = 0) ICC = ICC-DC + IMFB_CPLD + IMFB_SRAM/DPRAM/FIFO + IMFB_CAM + IPLL_D ICC = 17mA + 50mA + 0 + 30mA + 0 + 0 = 97mA Technical Support Assistance Hotline: 1-800-LATTICE (Domestic) 1-408-826-6002 (International) e-mail: [email protected]. 8