In integrated circuit (IC) manufacturing, ICs are usually tested to screen for defective ICs by automated methods. Such testing can use much more power than the ICs are designed to handle, leading to burn out of the ICs. Additionally, testing can cost up to 50% of the cost of manufacturing the ICs. Power consumption has become a critical concern in testing ICs, and peak power/current detection for testing is needed to help identify hazardous vectors and ensure both power safety and test power integrity. Test power analysis (TPA) has its own characteristics: (1) TPA is vector-based, (2) TPA requires a large number of timing windows to be analyzed, and (3) TPA should be layout-aware to understand current distribution among power mesh network. There are no existing tools for TPA that meet all the above criteria. These and other shortcomings are addressed in the present disclosure.
It is to be understood that both the following general description and the following detailed description are exemplary and explanatory only and are not restrictive, as claimed. Provided are methods and systems for test power analysis. An example method can comprise creating a test pattern from topology data of an integrated circuit and creating a map from the topology data of the integrated circuit. A test power analysis of the integrated circuit can be performed using the created test pattern and the map.
In an aspect, an example method can comprise obtaining transition information via monitoring transitions of a plurality of test cycles in a test session of an integrated circuit. Simulation data can be obtained via simulating a plurality of functions of the plurality of test cycles in the test session of the integrated circuit using the transition information. A test power analysis of the plurality of test cycles in the test session of the integrated circuit can be performed using the obtained simulation data.
Additional advantages will be set forth in part in the description which follows or may be learned by practice. The advantages will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive, as claimed.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments and together with the description, serve to explain the principles of the methods and systems:
Before the present methods and systems are disclosed and described, it is to be understood that the methods and systems are not limited to specific methods, specific components, or to particular configurations. It is also to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting.
As used in the specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from “about” one particular value, and/or to “about” another particular value. When such a range is expressed, another embodiment includes from the one particular value and/or to the other particular value. Similarly, when values are expressed as approximations, by use of the antecedent “about,” it will be understood that the particular value forms another embodiment. It will be further understood that the endpoints of each of the ranges are significant both in relation to the other endpoint, and independently of the other endpoint.
“Optional” or “optionally” means that the subsequently described event or circumstance may or may not occur, and that the description includes instances where said event or circumstance occurs and instances where it does not.
Throughout the description and claims of this specification, the word “comprise” and variations of the word, such as “comprising” and “comprises,” means “including but not limited to,” and is not intended to exclude, for example, other additives, components, integers or steps. “Exemplary” means “an example of” and is not intended to convey an indication of a preferred or ideal embodiment. “Such as” is not used in a restrictive sense, but for explanatory purposes.
Disclosed are components that can be used to perform the disclosed methods and systems. These and other components are disclosed herein, and it is understood that when combinations, subsets, interactions, groups, etc. of these components are disclosed that while specific reference of each various individual and collective combinations and permutation of these may not be explicitly disclosed, each is specifically contemplated and described herein, for all methods and systems. This applies to all aspects of this application including, but not limited to, steps in disclosed methods. Thus, if there are a variety of additional steps that can be performed it is understood that each of these additional steps can be performed with any specific embodiment or combination of embodiments of the disclosed methods.
The present methods and systems may be understood more readily by reference to the following detailed description of preferred embodiments and the Examples included therein and to the Figures and their previous and following description.
As will be appreciated by one skilled in the art, the methods and systems may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the methods and systems may take the form of a computer program product on a computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in the storage medium. More particularly, the present methods and systems may take the form of web-implemented computer software. Any suitable computer-readable storage medium may be utilized including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices.
Embodiments of the methods and systems are described below with reference to block diagrams and flowchart illustrations of methods, systems, apparatuses and computer program products. It will be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus create a means for implementing the functions specified in the flowchart block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including computer-readable instructions for implementing the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
Accordingly, blocks of the block diagrams and flowchart illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the block diagrams and flowchart illustrations, and combinations of blocks in the block diagrams and flowchart illustrations, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
Disclosed methods and systems can be implemented to perform Test Power Analysis (TPA) on ICs to test and identify potentially hazardous vectors associated with high peak power/current. In an aspect, the analysis can be fast, accurate, vector-based and applicable to many, if not all, types of test pattern sets. The analysis can be technology aware and layout aware. The disclosed TPA can be applicable to both wire-bond and flip-chip designs. In an aspect, the disclosed TPA can be performed on hundreds or thousands of test cycles in one or more simulations run by integrating TPA engines in gate-level simulation through IEEE Verilog Procedural Interface (VPI).
Power Model
Power dissipation in CMOS logic has two components: static and dynamic. Leakage power (static component) can remain a constant throughout an operation session and can be ignored in power modeling. In an aspect of the present disclosure, only dynamic power dissipation caused by charging and discharging of load capacitances is considered. The power consumption of each instance P can be obtained using Equation (1). Without considering voltage droop, supply voltage V can be assumed to be a constant, thus the two variants that could impact power would be load capacitance CL and switching frequency f. In an aspect, switching frequency can be considered via transition monitoring. For low power designs with multi-VDD domains [1], supply voltage V can becomes a variable. In this case, DEF parser can be associate each instance with its power source level.
In an aspect, WSA can be used to model current strength. It can be represented by energy consumption at each switching site and independent of test frequency. When zero delay model is considered, current spike can accumulate at the rising edge of each clock cycle, and the strength of the current spike can be proportional to energy consumption. In an aspect, WSA can be a good representative of peak current. o is a scaling factor used internally to normalize absolute energy values.
Transition Monitoring
In an aspect, in order to observe the power behavior across an entire test session, including both shift and capture cycles, transition monitoring can be test cycle based. The disclosed method can monitor transitions along with a simulation process. More specifically, a VPI routine can be utilized to access internal simulation data while test patterns are applied and simulated. As an example, information collected during a simulation process can include: 1) rising edge of primary test clocks to determine the start and end time of each test cycle; 2) state of scan enable signal to determine the working mode, for example, shift or capture; 3) advent time of each transition to determine to which test cycle it belongs; and 4) fan-out gates of each transition, as well as the parasitic wire capacitance at the transition site. Collected information can be recorded cycle by cycle during simulation and analyzed to determine the number of transitions in a specific test cycle. Equation (1) can be applied to translate the transition information into WSA and power values for subsequent layout based analysis. In an aspect, the transition monitoring can be embedded in pattern simulation. All test cycles can be handled in batch processing. The equivalent power values can be recorded along with simulation internal structures.
Power Calculation
In an aspect, power consumption can comprise three parts: leakage, internal and switching power, among which the leakage can be static while the internal and switching power can be dynamic. Leakage can be calculated by summing up leakage power of all instances, which can be looked up from cell or block Liberty files. Dynamic power can be based on transition monitoring. Whenever a transition is detected, information such as the switching cell type, its loading capacitance as well as transition time (e.g., slew rate) can be determined by VPI routine. The information combined with voltage level, clock period, can be used to calculate switching and internal power. The disclosed methods and systems can sum up three power parts for each test cycle, and thus can monitor total average power consumption cycle by cycle. In an aspect, average power calculation can rely on standard cell library and transition monitoring, and can be independent of physical structure, such as place and route, power delivery or package.
Layout Partition and Regional Power
In an aspect, in order to locate transitions in the circuit, topology (e.g., layout) information can be used to identify location of each gate. As an example, a DEF file can be used to extract gate coordinates, as well as the power supply network. A two-dimensional array (matrix) can be overlaid on top of the layout that divides it into smaller partitions.
In one aspect, the partition matrix can be created once for each design. When a switching is detected, the location of the switching instance can be looked up and mapped to a region in the matrix, for example, Aij, then WSA calculated using Equation (1) for that instance can be added to the region Aij. When simulation ends, each region can be filled with a sum of WSA of instances. WSAA can be defined as WSA related to a specific region, as shown in Equation (2). As an example, when applying a delay test pattern, all regions having WSAA can be initialized to 0 at the beginning of launch-to-capture cycle. When the same cycle ends, the matrix with each region Aij can have a one-to-one mapped WSAA, as shown in
Each region in the matrix can have a WSAA value that represents the amount of current needed from a power supply, which can be combined with a resistance network to determine how much current that region can draw from each power bump. In an aspect, a region with a 0 value (WSAA=0) in the matrix implies no switching in the region or even no instance placement. This can potentially happen in peripheral regions.
In an aspect, circuit test power calculation can be simplified by assigning a group of instances to a virtual region and analyzing the regional power, which equals the sum of each individual component's power falling into that region. As a result, a power grid model can be simplified by analyzing a regional power grid model instead of for each instance node. When partitioning the layout of a circuit, the components in each region can have similar power grid characteristic, which can impose a limitation on the maximum region size. In an aspect, too large a region can lose details of current flow along power grid over the region, and can make a bump's current value indistinguishable around the region, whereas too small a region can have numerous tiny partitions, the power grid characteristic of which can still require extensive computation time for solving node voltage or current. In an extreme scenario, each standard cell or memory cell can take up one region. In an aspect, global Power Distribution Network (PDN) can be the start point of layout partitioning. For example, location of power straps and rails on highest metal layer (M6) can be used for dividing layout into N×N regions [2]. For industry designs, as one example in
Power Grid Analysis
In high performance digital ICs, power and ground distribution networks are typically designed hierarchically. A grid structured network can be widely used for global PDN design, while the structure for local PDN, also called block level PDN can be different from block to block. Typically, the lower the metal layer, the smaller the width and pitch of lines, as shown in
The ground network can be considered in resistive network as well.
An example of resistance network is illustrated in
Power Bump WSA Analysis
In an aspect, suppose the layout is partitioned into X×Y regions. The package has M power bumps, N ground bumps. WSAA is obtained for all regions during one test cycle. Bump WSA for the cycle can be represented, WSABm, as the WSA for power or ground bump m, reflecting the amount of current drawn from or sink to the bump. Equation (9) can be understood as WSA on a power bump m draws a portion of WSA from each region. The ratio for each region can be determined by the region's resistive path to bump m versus to all power bumps.
Power Validation Flow
In an aspect, the disclosed methods and systems can be used to monitor peak power and current across an entire test session. A plurality of subsequent measures can be taken for the test power reduction or safety purposes, such as locating hotspots during test, test pattern short-listing based on peak power or current, power probes assignment for balancing current delivery during wafer test, and the like. The disclosed methods can be specifically adapted to perform dynamic test power analysis in a fast manner without losing power results accuracy. The disclosed methods and systems can be compared with a commercial back-end power-integrity sign-off tool. Test results can comprise one or more of: (1) switching activity report; (2) absolute power report; (3) WSAA*R matrix plots, which can be compared with Dynamic Voltage Drop (DvD) plots in a commercial tool; (4) power bump WSA, which can be correlated with absolute power bump current reported by commercial tool.
The validation steps are illustrated in
In an aspect, compressed TDF patterns can be generated. A plurality of patterns can be randomly selected for serial simulation. Value change dump (VCD) files can be stored for all levels of design toward entire simulation session. Test power analysis VPI routine can be embedded in simulation. In an aspect, regional WSA and resistance network can be obtained. All power bumps' WSA can be calculated cycle by cycle. Based on the VCD files, a commercial EDA tool can perform dynamic power and rail analysis. In an aspect, IR-drop plots can be obtained for several test cycles, which can be compared with WSA*R plots to locate hotspots. Real power bump current can be obtained cycle by cycle, which can be correlated with power bump WSA values.
In an aspect, illustrated in
At step 1104, a map from the topology data of the integrated circuit can be created. In an aspect, the map can be a gate-region map. The map can be generated using a parser, such as a DEF parser. For example, in order to locate transitions in the integrated circuit, topology information can be used to identify a location of each gate. As an example, a DEF file can be used to extract gate coordinates, as well as the power supply network. A two-dimensional array (matrix) can be overlaid on top of the topology data that divides it into smaller partitions.
At step 1106, a test power analysis of the integrated circuit can be performed using the created test pattern and the map. In an aspect, performing a test power analysis can comprise generating a dynamic weighted switching activity (WSA) current matrix from the created test pattern and the created map. In an aspect, the dynamic weighted switching activity (WSA) current matrix can be generated using a simulator. For example, a Verilog Procedural Interface (VPI) core can use a power model called weighted switching activity (WSA), to translate each switching event to power/current equivalents and creates a dynamic WSA current matrix. In an aspect, the dynamic weighted switching activity (WSA) current matrix can comprise a plurality of regional WSA current matrices. Each regional WSA matrix can have a WSAA value that represents the amount of current needed from power supply, which can be combined with a resistance network to determine how much current that region can draw from each power bump. In an aspect, a region with a 0 value (WSAA=0) in the matrix implies no switching in the region or even no instance placement. This can potentially happen in peripheral regions.
In another aspect, performing a test power analysis can further comprise obtaining package data of the integrated circuit and generating a resistance matrix from the topology data and the package data. As an example, the package data comprises wire bond package data and flip chip package data. In an aspect, power grid analysis can be performed using PDN structure information as well as pad location information in the obtained package data and a resistance matrix for the specific package data can be built. The dynamic current and resistance matrices can be combined to produce test power results such as dynamic voltage drop, hotspots, peak current on power pads, and the like. All analysis can be cycle-based, that is, all test cycles can be monitored in case there is any pattern with excessive power or current.
In an aspect, a test power analysis can comprise one or more of: switching activity analysis, average power analysis, regional power analysis, peak current data analysis, current distribution analysis. In an aspect, performing the average power analysis can comprise using power data from a standard cell library.
In an aspect, illustrated in
At step 1204, simulation data can be obtained via simulating a plurality of functions of the plurality of test cycles in the test session of the integrated circuit using the transition information. In an aspect, the simulation data can be obtained via a Verilog procedural interface (VPI). The VPI can retrieve simulation data from a simulation engine, combined with extra read-in topology data, and performs a serial analysis to obtain power data and current data for each simulation cycle. As an example, the simulation data comprises one or more of start time of a test cycle, end time of a test cycle, type of a test cycle, relation of a specific transition and a specific test cycle, fan-out gates, and parasitic wire capacitance at a transition site. As an example, rising edge of primary test clocks can be used to determine start and end time of each test cycle. As another example, state of scan can be used to determine type of test cycles such as shift cycles or capture cycles. As another example, advent time of a transition can be used to determine to which test cycle the transition belongs. As another example, fan-out gates of each transition and parasitic wire capacitance at the transition site can be determined. All simulation data can be recorded cycle by cycle during simulation and analyzed to determine the number of transitions in a specific test cycle.
At step 1206, a test power analysis of the plurality of test cycles in the test session of the integrated circuit can be performed using the obtained simulation data. In an aspect, performing a test power analysis can comprise translating simulation data to weighted switching activity (WSA) and power value. In an aspect, the power value can comprise power leakage value, internal power value and switching power value. In an aspect, monitoring transitions of a plurality of test cycles in a test session and simulating a plurality of functions of the plurality of test cycles in the test session can occur simultaneously. In another aspect, the test power analysis can be performed along with the simulation at step 1204. Thus, when simulation is finished, power values and/or current values can be available.
The present methods and systems can be operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that can be suitable for use with the systems and methods comprise, but are not limited to, personal computers, server computers, laptop devices, and multiprocessor systems. Additional examples comprise set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that comprise any of the above systems or devices, and the like.
The processing of the disclosed methods and systems can be performed by software components. The disclosed systems and methods can be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers or other devices. Generally, program modules comprise computer code, routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The disclosed methods can also be practiced in grid-based and distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote computer storage media including memory storage devices.
The methods and systems can employ Artificial Intelligence techniques such as machine learning and iterative learning. Examples of such techniques include, but are not limited to, expert systems, case based reasoning, Bayesian networks, behavior based AI, neural networks, fuzzy systems, evolutionary computation (e.g. genetic algorithms), swarm intelligence (e.g. ant algorithms), and hybrid intelligent systems (e.g. Expert inference rules generated through a neural network or production rules from statistical learning).
The following examples are put forth so as to provide those of ordinary skill in the art with a complete disclosure and description of how the compounds, compositions, articles, devices and/or methods claimed herein are made and evaluated, and are intended to be purely exemplary and are not intended to limit the scope of the methods and systems. Efforts have been made to ensure accuracy with respect to numbers (e.g., amounts, temperature, etc.), but some errors and deviations should be accounted for. Unless indicated otherwise, parts are parts by weight, temperature is in ° C. or is at ambient temperature, and pressure is at or near atmospheric.
Power Results
Power validation flow, including the disclosed methods and a commercial tool, was performed on a plurality of hierarchical industrial hard macros, A and B with 168, 136 and 1,199,930 gates respectively. The plurality of hard macros comprising tens of VDD bumps and VSS bumps evenly distributed over core area. TDF patterns were generated using Mentor Graphics' Test Kompress. 10 randomly patterns were selected from Macro A for result collecting, including both shift and capture cycles. Pattern simulation, integrated with the disclosed methods was running using Synopsys VCS. 64 bit Linux server was used with 2.4 GHz CPU and 8G RAM memory for the power validation. Table I shows the average CPU runtime of one test cycle for the disclosed method and the commercial power tool. As an example, for a smaller macro A, the disclosed method can be 110 faster than commercial tool in terms of dynamic test vector power analysis. For a larger macro B, The disclosed methods can be 43 times faster.
Switching Activity Analysis
The disclosed methods and systems can provide switching activity calculation for both signal nets and scan flip-flops.
Average Power Report
Hotspot Analysis
DvD analysis is performed to validate the power grid robustness and detect local hotspot. Extensive switching or a non-robust power grid usually experiences large voltage drop on an instance. If a group of clustered instances experience large voltage drop together, the respective region is a hotspot. The disclosed method can combine regional WSA matrix, as exemplified in
The voltage drop plots for three cycles: P.4_S.290, P.2_S.273 and P.9_C.1, are shown in
IR-Drop Analysis
IR-drop analysis is performed to validate the robustness of power grid and detect local hotspot. Extensive switching in the design or ill designed power grid can experience large voltage drop on the components.
WSA/Current Correlation Analysis
The correlation between bump WSA and current is analyzed. Data points for shift and capture cycles are collected separately. In order to analyze the battery current or current strength on each power pad/bump, the disclosed method can internally calculates WSAs. 43,500 total data points were selected for all shift cycles in the 10 randomly selected patterns. On one specific VDD or VSS bump, the data points are 2,900. Commercial power sign-off tool also performed power pad current analysis on selected test cycles. The correlation between WSA8 and absolute current on each power bump was observed to around 97%. Because of the good correlation, WSA8 can be used to estimate absolute current value by establishing a linear model between these two variables, as shown in Equation (10), where A is the scaling factor and B is the offset. 10% of all data points are chosen for establishing linear model between WSA8 and current, and estimated the rest 90% of data points. Most of the power pad absolute current estimation error is with 5%.
I=A*wsa+B (10)
As there are much more shift cycles than capture cycles in typical TDF patterns, correlation between shift WSA and current are studied. There are 43,500 total data points for all shift cycles in the 10 randomly selected patterns. On one specific VDD or VSS bump, the data points are 2,900. Correlation result of current behavior for each power bump is given in Table III. A 0.98 correlation coefficient for almost all power bumps are observed.
Current Estimation
The current (I) estimation can be described as performing a linear Mean Square (MS) estimation of random variable I by WSA using the function shown in Equation (11), while achieving a minimum estimation error e=em. Applying the probability and estimation theory, when the scaling factor A and offset B are set values in Equation (12), e is minimum. Note that, r is the correlation coefficient between WSA and I, u is standard deviation of each variable, and rJ is the expected value, i.e. mean of the variable.
The high correlation between bump WSA and current makes it possible to estimate the current using the bump WSA. This is useful if a real power bump current value is needed, for example, when power safety needs to be guaranteed during wafer test, and current supplied by power probes connecting to bumps must be under a limit specified in unit ampere. A small set of learning data establishes a estimation model for current. Using it, the real current values for all power bumps during entire test session can be estimated.
While the methods and systems have been described in connection with preferred embodiments and specific examples, it is not intended that the scope be limited to the particular embodiments set forth, as the embodiments herein are intended in all respects to be illustrative rather than restrictive.
Unless otherwise expressly stated, it is in no way intended that any method set forth herein be construed as requiring that its steps be performed in a specific order. Accordingly, where a method claim does not actually recite an order to be followed by its steps or it is not otherwise specifically stated in the claims or descriptions that the steps are to be limited to a specific order, it is no way intended that an order be inferred, in any respect. This holds for any possible non-express basis for interpretation, including: matters of logic with respect to arrangement of steps or operational flow; plain meaning derived from grammatical organization or punctuation; the number or type of embodiments described in the specification.
Throughout this application, various publications are referenced. The disclosures of these publications in their entireties are hereby incorporated by reference into this application in order to more fully describe the state of the art to which the methods and systems pertain.
It will be apparent to those skilled in the art that various modifications and variations can be made without departing from the scope or spirit. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit being indicated by the following claims.
This application claims priority to U.S. Provisional Application No. 61/807,106 filed Apr. 1, 2013, herein incorporated by reference in its entirety.
This invention was made with government support under CCF-0811632 awarded by the National Science Foundation. The government has certain rights in the invention.
Number | Date | Country | |
---|---|---|---|
61807106 | Apr 2013 | US |