Abstract:
A method and a system for timing analysis of a VLSI circuit or chip design considering manufacturing and environmental variations, where the design includes multiple instances of a gate or macro instantiated at more than one voltage domain by sharing and re-using abstracts. The timing analysis of the chip includes a macro abstract instantiated in a voltage domain different from the domain during abstract generation. Timing models are re-used across chip voltage domains or across chip designs. Moreover, a statistical timing analysis of a chip design takes into consideration the voltage domains wherein at least one timing abstract model generation time voltage domain condition differs from the macro instantiation domain in the chip. The invention further provides sharing and re-using the statistical timing models or abstracts.

Description:
FIELD OF THE INVENTION 
     The present invention relates to the field of Electronic Design Automation, and more particularly, to timing analysis of integrated circuit (IC) chips. Yet more particularly, it relates to timing analysis involving sharing and re-using timing models considering voltage domains in a chip while taking manufacturing and environmental variations into account. 
     BACKGROUND 
     Static timing analysis (STA) is one of the pillars for verifying digital Very Large Scale Integrated (VLSI) circuit designs, and is widely used to predict the performance of the designs. STA is often used on very large designs for which exhaustive timing analyses are impossible or impractical in view of the number of patterns required to perform the analysis. State of the art static timing analysis tools make it possible to model designs with multiple timing modes and multiple corners only in a single environment. STA furthermore verifies that a VLSI circuit design performs correctly at a required frequency before it is released for manufacturing. When performing an STA, the design is represented as a timing graph; the points in the design where timing information is desired constitute the nodes or timing points of this graph, while electrical or logic connections between these nodes are represented as timing arcs of the graph. 
     With modern chip manufacturing technology scaling minimum device feature sizes to sub 65 nanometers, VLSI designs are increasingly getting larger in terms of size and complexity. Current day Application Specific Integrated Circuit (ASIC) designs contain several million gates while microprocessor designs can contain upwards of one billion transistors. While circuit simulation based timing analysis is most accurate, it is also run-time intensive, and is not practical to use it in a timing flow where timing runs are made regularly during the design cycle of a large chip. In essence, static timing analysis of such large circuits as a single flattened design is run-time prohibitive. 
     The aforementioned considerations have led to the concept of design partitioning and hierarchical timing. A given circuit is partitioned into several components labeled cores or units, which can be further partitioned into macros. A macro can simply be a collection of several to several thousand transistors or gates interconnected via wires designed to perform a certain task in the chip. In the simplest case, a macro can refer to a logic gate (e.g., logic AND gate). Macros are typically timed using accurate timing analysis techniques, (e.g. using transistor level timing tools with circuit simulation type accuracy in the case of microprocessor designs), and is followed by the generation of timing abstract models that reflect in a simpler form the actual timing characteristic of the macros. The latter step is termed timing macro-modeling or abstraction. The generated abstract of a macro captures its timing characteristic by the use of slew and load dependent tables to model the timing behavior of the logic. Delays and output slews (or waveforms) of timing arcs near the primary inputs (PI) of the macro are characterized as functions of input slew, while delays and output-slews of arcs closer to the primary outputs (PO) are characterized as functions of an output load, and sometimes a combination of both. This allows the generated abstract model to be used in multiple boundary condition (PI and PO) settings (i.e., wherein the input slews and the output loads during abstract usage differ from values during the generation of the abstract). Timing abstraction can employ techniques to reduce the size of the timing graph by performing graph pruning and arc compression. These techniques can reduce the number of timing arcs to be timed at the next level of hierarchy significantly. At the parent level of hierarchy, macros are typically represented by abstracts. 
     The timing abstraction process can be performed in a hierarchical fashion. A unit comprising several macro abstracts can itself be abstracted and used at the parent (core or chip) level. For ease of notation, the term macro will be used to denote any circuit component being abstracted, even if a unit containing other abstracts is being abstracted. The hierarchical timing approach enables fast timing analysis and productivity at the parent level (termed chip level for ease of notation in the present invention), since the abstract models facilitate fast timing analysis and allow re-use. The benefits are significantly highlighted when multiple instances of a macro are present at the chip level since timing analysis of the multiple instances can use the same timing abstract model instead of more accurate models being used for each instance. Timing abstracts are often referred to as intellectual property (IP) timing models. The abstracts can be used across different chip designs that need the same functionality provided by the abstracted macro. Essentially, abstracts provide a mechanism for sharing the same timing model across multiple instances of a macro within a design as well as across designs, and are therefore highly desirable for design productivity. 
     The impact of process variability in modern day chip design and manufacturing is significant in terms of the timing performance of a given VLSI circuit design. In addition to process variability, environmental variations (e.g. variations in voltage and temperature) contribute to the uncertainty in the design timing characteristics. Statistical Static Timing Analysis (SSTA) has subsequently emerged as a solution to address these issues and assess the impact of variations during timing analysis and optimization. In SSTA, timing quantities like delays and slews are treated as random variables with known distributions. Each timing quantity can be sensitive to multiple global sources of variability which are labeled parameters (e.g. voltage, temperature, channel length, transistor width, voltage-threshold, dopant concentration, and the like). Mathematically, the set of global parameters is denoted as: {X 1 , X 2 , X 3 , . . . , X n }. A commonly used linear canonical form representation of a statistical timing quantity T is the following. 
     
       
         
           
             
               
                 
                   T 
                   = 
                   
                     
                       t 
                       0 
                     
                     + 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           1 
                         
                         n 
                       
                       ⁢ 
                       
                         
                           t 
                           i 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           X 
                           i 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     EQ 
                     . 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   ) 
                 
               
             
           
         
       
     
     In the model shown, t 0  represents the mean value of the timing quantity T and denotes the nominal value of T in the absence of variability. t i  denotes the sensitivity of T to a variation ΔX i  of the global parameter X i . To achieve commonality between parameters, ΔX i  is denotes in sigma units instead of absolute parameter units (e.g. degree Celsius for parameter temperature). Typically, a −3 to  + 3 sigma range denotes the range of parametric variation. By way of example, if the expected temperature variation is between 0 degree Celsius and 100 degrees Celsius, the range can be denoted as a 6 sigma spread wherein −3 sigma, +3 sigma, and the nominal value (0 sigma) of parameter temperature corresponds to 0° Celsius, 100° Celsius, and 50° Celsius, respectively. If a timing quantity (e.g., delay) changes by 24 picoseconds due to temperature going from −3 to +3 sigma, the sensitivity of the timing quantity is computed as (24/6) or 4 picoseconds per sigma. 
     The operation voltage (V) value for a device (transistor or gate) strongly impacts the timing characteristics of the device. Typically, a given gate delay is smaller at a higher operating voltage compared to a lower operating voltage. In addition, the operating voltage also impacts the sensitivity of other parameters. As a result, the sensitivity t i  corresponding to a process parameter X i  (e.g., dopant concentration) is a function of the parameter voltage (V) and can be denoted as t i (V). U.S. Application No. 2012/0117527 describes an approach to model the voltage dependence in t i (V) using a linear form: (t i0 +t iV ΔV). The term t i0  denotes a constant sensitivity of the timing quantity T to parameter X i  at the nominal condition of voltage (ΔV=0 sigma), while the term t iV  denotes the cross-term sensitivity of T to both voltage and parameter X i . In other words, t iV  describes how the sensitivity of T to X i  changes with a change in voltage ΔV. Using the cited notation, the equation EQ. 1 can now be expressed as follows: 
     
       
         
           
             
               
                 
                   T 
                   = 
                   
                     
                       t 
                       0 
                     
                     + 
                     
                       
                         t 
                         V 
                       
                       ⁢ 
                       Δ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       V 
                     
                     + 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           
                             1 
                             ⁢ 
                             
                               ( 
                               
                                 
                                   X 
                                   i 
                                 
                                 ≠ 
                                 V 
                               
                               ) 
                             
                           
                         
                         n 
                       
                       ⁢ 
                       
                         
                           t 
                           i 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           X 
                           i 
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           
                             1 
                             ⁢ 
                             
                               ( 
                               
                                 
                                   X 
                                   i 
                                 
                                 ≠ 
                                 V 
                               
                               ) 
                             
                           
                         
                         n 
                       
                       ⁢ 
                       
                         
                           t 
                           
                             i 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             V 
                           
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           X 
                           i 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         V 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     EQ 
                     . 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   ) 
                 
               
             
           
         
       
     
     During statistical abstraction, statistical timing quantities and their sensitivities to all the parameters (including sensitivity to voltage) are captured for all the arcs in the timing graph of the macro. Traditionally, the mean value and sensitivity of any timing quantity captured in the abstract to either V or any other process parameter X i  is valid for the defined (sigma) range of chip operating voltage when the macro was abstracted. By way of an example, consider the statistical delay D of an arc inside a macro represented as follows:
 
 D= 10+2 ΔV+ 3 ΔX   1 +0.4 ΔVΔX   1   (EQ. 3)
 
     In the aforementioned model, the delay is 10 units at the nominal corner of V and X i , that is, D(ΔV=0, ΔX i =0)=10. At a given ΔV value, for instance ΔV=+1 sigma, the sensitivity of the delay to ΔX i  is {+3+(0.4×1)}=3.4 units per sigma. This suggests that a key assumption to using the delay model is to use the model where the voltage condition definitions are identical to the conditions when the macro was abstracted. By way of example, assuming that the nominal voltage condition when the macro was abstracted equals 1.05 volts, i.e., ΔV=0 sigma corresponds to V=1.05 volts. Further, assuming that the lowest operating voltage is 0.65 volts corresponds to ΔV=+3 sigmas, if the abstract is employed for another chip design where the nominal voltage is not 1.05 volts, the delay obtained from the abstract at the new nominal voltage (still 10 units) would be incorrect. Similarly, if the +3 sigma condition of the new design is not 0.65 volts, the sensitivity of delay to parameter X i  will be incorrectly computed as 3.4 units per sigma. Subsequently, a statistical timing abstract can traditionally be used for multiple instances within a chip only if all of the instances are on the same voltage domain as the domain used during generation of the abstract. The same applies for re-using an abstract across chip designs. The term voltage domain hereinafter will be used interchangeably with voltage islands as well. 
     Two embodiments make use of statistical abstracts across voltage domains for the same macro instantiation. In a first embodiment, abstracts can be generated for a macro per voltage domain. By way of example, if a chip has 2 domains, namely Vdd with voltage range 0.7 volts to 1.3 volts, and Vio with range 1 volt to 1.1 volts, two abstracts would need to be generated for each macro in the chip that can be instantiated in both domains. The first embodiment displays multiple disadvantages including increased abstract generation time, higher abstract storage requirements, and the limitation that voltage domains for new designs where the macro can potentially be re-used cannot be known in advance. 
     In a second embodiment, a single statistical abstract can be used for all domains by adding pessimistic guard-bands or margins. This approach typically suffers from pessimism, potential optimism, and the limitation that enough guard-bands may not be present for new designs with new voltage domains where the same macro can be instantiated. The limitations prohibit timing abstract re-use across designs, and negatively impact design productivity. 
     Referring to  FIG. 1 , a block diagram illustrates the intent to use a common abstract of a given macro instantiated at different voltage domains within and across designs. The macro M is instantiated twice in two domains, namely domain Vdd and domain Vio within Design B and once in a new domain Vdd* within Design B. The potential use of a single timing abstract without pessimistic margins for each of these three instantiations would aid design productivity and avoid overheads of maintaining multiple abstracts per domain for a given macro. 
     In more complicated cases, a chip can contain multiple voltage domains that are correlated instead of being independent, i.e., the operating voltage on each domain does not change independently. When multiple instances of the same macro are present on the domains and a path or timing test exists between the instances, leveraging the interdependence between the domains is crucial for accurate timing analysis. 
     Referring to  FIG. 2 , a block diagram is illustrated to show the paths between abstracts instantiated on multiple domains within the chip, showing the complexity of timing analysis with abstracts and multiple voltage domains. By way of example, if all domains in the figure are perfectly correlated, timing analysis considering any domain at a high voltage condition must consider all other domains at their corresponding high voltage conditions. However, if the domains are independent, multiple combinations of voltage domain conditions for each domain must be considered to obtain the potentially critical condition for timing analysis. 
     Accordingly, a need exists for sharing and re-using timing models considering voltage domains and their interdependence while taking manufacturing and environmental variations into account during a timing analysis of integrated circuit (IC) chips. 
     SUMMARY 
     In one aspect, an embodiment of the present invention provides a method and a system for timing analysis of a VLSI circuit or chip design considering manufacturing and environmental variations, where the design contains multiple instances of a gate or macro instantiated at more than one voltage domain by sharing and re-using abstracts, and wherein the timing analysis of the chip containing the macro abstract can be instantiated in a voltage domain that differs from the domain during abstract generation. 
     In another aspect, an embodiment provides a method and a system for re-using timing models across within-chip voltage domains or across chip designs. 
     In a further aspect, an embodiment provides a method of statistical timing analysis of the chip design considering voltage domains in which at least one timing abstract models&#39; generation time voltage domain conditions differs from the macro&#39;s instantiation domain within the chip. 
     In yet a further embodiment, a method is provided that includes: a) using a computer, computing timings of the macro employing the macro voltage parameterized statistical timing model, obtaining information of the at least one voltage domain for macro instantiation; b) obtaining information of voltage domain for the macro instantiation; c) dynamically updating results of the macro timing computations based on voltage domain conditions of the timing model and the voltage domain information of the macro instantiation; and d) using the updated timing results, performing the timing analysis of the IC chip design as part of design closure prior to manufacture. 
     These and other aspects, aspects and advantages of embodiments of the invention are achieved by a method and a system of dynamically mapping of statistical timing models based on the voltage domain definitions during abstract model generation and usage. The method facilitates using a common statistical abstract model for macro instances with the chip containing different voltage domains, as well as using the same abstract across chip designs where the macro can be instantiated at yet different voltage domains. This aids design productivity and faster design closure as well as reduced time to market of the chip design. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The accompanying drawings, which are incorporated in and which constitute part of the specification, illustrate the presently preferred embodiments of the invention which, together with the general description given above and the detailed description of the preferred embodiments given below serve to explain the principles of the invention. 
         FIG. 1  is a block diagram illustrating a prior art use of a common abstract for a given macro instantiated at different voltage domains within and across designs. 
         FIG. 2  is a block diagram illustrating the paths between abstracts instantiated on multiple domains within the chip, and further illustrates the complexity of the timing analysis including abstracts and multiple voltage domains. 
         FIG. 3  is a flow diagram illustrating an embodiment of the timing analysis of a given VLSI circuit/chip design. 
         FIG. 4  shows the dependence of a timing quantity such as delay on voltage, and depicts the delay dependence as a function of the voltage, while illustrating a non-linear dependence. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention will now be described in greater detail by way of the following discussion with reference to the drawings that accompany the present application. It is observed that the drawings of the present application are provided for illustrative purposes only. 
     Referring to  FIG. 3 , there is shown a flow diagram illustrating one embodiment of a method  300  for timing analysis of a given VLSI circuit/chip design. The method  300  is initialized in step  301 . In step  302 , the design is read along with the statistical timing abstracts for all macros in the design. The design can contain non-abstracted logic components (gates) with original timing models. Timing models for macros (abstracts) and other logic gates are read in this step. Timing assertions for the circuit and other inputs needed for timing analysis can also be advantageously read in this step. 
     Referring to steps  303 - 305 , the timing analysis of the circuit is performed next. Delays and slews are computed for all the arcs in the timing graph to compute the arrival times at all the timing points. In the case of a statistical timing analysis, timing quantities like delays and slews are represented as random variables with known distributions propagated throughout the timing graph. Required arrival times are propagated in a traditional manner and slacks are obtained at every timing point in the timing graph. This step can include traditional static timing analysis components like coupling analysis and common path pessimism reduction. Since the timing information of the macros are captured accurately as look-up tables in the abstract, timing analysis of the macros can be performed very efficiently. 
     Timing analysis involves computation of various timing quantities like delays and output slews (waveforms) for every timing arc in the timing graph model of the design in a topological fashion. In step  303 , for each arc in the graph whose timing at the source pin is already computed, timing analysis is performed to compute the desired timing quantities corresponding to that arc. For illustrative purposes, a timing quantity T obtained as a result of this step is considered in the following canonical form: 
     
       
         
           
             
               
                 
                   T 
                   = 
                   
                     
                       t 
                       0 
                     
                     + 
                     
                       
                         t 
                         V 
                       
                       ⁢ 
                       Δ 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       V 
                     
                     + 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           
                             1 
                             ⁢ 
                             
                               ( 
                               
                                 
                                   X 
                                   i 
                                 
                                 ≠ 
                                 V 
                               
                               ) 
                             
                           
                         
                         n 
                       
                       ⁢ 
                       
                         
                           t 
                           i 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           X 
                           i 
                         
                       
                     
                     + 
                     
                       
                         ∑ 
                         
                           i 
                           = 
                           
                             1 
                             ⁢ 
                             
                               ( 
                               
                                 
                                   X 
                                   i 
                                 
                                 ≠ 
                                 Y 
                               
                               ) 
                             
                           
                         
                         n 
                       
                       ⁢ 
                       
                         
                           t 
                           iV 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           X 
                           i 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         V 
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     EQ 
                     . 
                     
                         
                     
                     ⁢ 
                     4 
                   
                   ) 
                 
               
             
           
         
       
     
     In step  304 , each timing quantity obtained resulting from step  303  is conditionally updated based on voltage domain mappings. There are three fundamental cases of voltage domain mappings. Embodiments for voltage domain mappings for these cases are illustrated for simplicity using the model in EQ. 4 without limiting the scope of the embodiments of the invention. It is assumed that the (abstract) timing model of the arc was generated for a voltage domain with a certain voltage range that maps to voltage sigma range (S L , S H ) based on a global voltage sigma mapping reference. 
     Case I: If the voltage domain corresponding to the arc being timed in step  303  matches the domain definition of the timing model (e.g. timing abstract), no updates are required. The input timing quantity T is returned as the final timing quantity in the absence of voltage domain mappings. 
     
       
         
           
             
               
                 
                   
                     T 
                     out 
                   
                   = 
                   
                     T 
                     = 
                     
                       
                         t 
                         0 
                       
                       + 
                       
                         
                           t 
                           V 
                         
                         ⁢ 
                         Δ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         V 
                       
                       + 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             
                               1 
                               ⁢ 
                               
                                 ( 
                                 
                                   
                                     X 
                                     i 
                                   
                                   ≠ 
                                   V 
                                 
                                 ) 
                               
                             
                           
                           n 
                         
                         ⁢ 
                         
                           
                             t 
                             i 
                           
                           ⁢ 
                           Δ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             X 
                             i 
                           
                         
                       
                       + 
                       
                         
                           ∑ 
                           
                             i 
                             = 
                             
                               1 
                               ⁢ 
                               
                                 ( 
                                 
                                   
                                     X 
                                     i 
                                   
                                   ≠ 
                                   V 
                                 
                                 ) 
                               
                             
                           
                           n 
                         
                         ⁢ 
                         
                           
                             t 
                             iV 
                           
                           ⁢ 
                           Δ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             X 
                             i 
                           
                           ⁢ 
                           Δ 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           V 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     EQ 
                     . 
                     
                         
                     
                     ⁢ 
                     5 
                   
                   ) 
                 
               
             
           
         
       
     
     Case II: If the voltage domain corresponding to an arc being timed does not have a voltage variation range, but is at a fixed voltage that corresponds to a sigma of S 0  with reference to the range (S L , S H ), the voltage dependence of the timing quantity is removed following proper adjustments to the mean and sensitivities of other parameters that are voltage dependent (i.e., having cross terms). During the process, each ΔV variable in T is substituted with a known fixed value of ΔV=S 0 . Using the example in EQ. 4, T is updated as follows: 
     
       
         
           
             
               
                 
                   
                     
                       T 
                       out 
                     
                     = 
                     
                       
                         T 
                         ⁡ 
                         
                           ( 
                           
                             
                               Δ 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               V 
                             
                             = 
                             
                               S 
                               0 
                             
                           
                           ) 
                         
                       
                       = 
                       
                         
                           t 
                           
                             0 
                             ⁢ 
                             
                               S 
                               0 
                             
                           
                         
                         + 
                         
                           
                             ∑ 
                             
                               i 
                               = 
                               
                                 1 
                                 ⁢ 
                                 
                                   ( 
                                   
                                     
                                       X 
                                       i 
                                     
                                     ≠ 
                                     V 
                                   
                                   ) 
                                 
                               
                             
                             n 
                           
                           ⁢ 
                           
                             
                               t 
                               
                                 iS 
                                 0 
                               
                             
                             ⁢ 
                             Δ 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               X 
                               i 
                             
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     where 
                     , 
                     
                       
 
                     
                     ⁢ 
                     
                       
                         t 
                         
                           0 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             S 
                             0 
                           
                         
                       
                       = 
                       
                         
                           t 
                           0 
                         
                         + 
                         
                           
                             t 
                             V 
                           
                           ⁢ 
                           
                             S 
                             0 
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       t 
                       
                         i 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           S 
                           0 
                         
                       
                     
                     = 
                     
                       
                         t 
                         i 
                       
                       + 
                       
                         
                           t 
                           
                             i 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             V 
                           
                         
                         ⁢ 
                         
                           S 
                           0 
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     EQ 
                     . 
                     
                         
                     
                     ⁢ 
                     6 
                   
                   ) 
                 
               
             
           
         
       
     
     The updated timing quantity T out  shows no sensitivity to parameter voltage. In addition, sensitivities of T out  to other parameters that were voltage dependent are no longer voltage dependent. 
     Case III: If the voltage domain corresponding to the arc being timed has a different voltage domain mapping (corresponding to parameter V out ) than that of the timing model, the timing quantity T necessitates to be updated. For illustration, it is assumed that the domain corresponding to the arc has a voltage range that corresponds to the sigma range (S i , S 2 ) with respect to the global reference. It is further assumed that the range is denoted as a sigma range (S L* , S H* ) which obviously does not match the global reference. Such a scenario is possible when the abstract is being re-used in another design with completely different voltage sigma mappings, or when the same macro is being instantiated in multiple voltage domains within the same design. For the present mapping, the mean and sensitivities of T out  are computed such that T out (ΔV out =S L* ) matches T(ΔV=S 1 ) and T out (ΔV out =S H* ) matches T(ΔV=S 2 ). Using the example in EQ. 4 for illustration, T out  is computed as follows: 
     
       
         
           
             
               
                 
                   
                     
                       ⇒ 
                       
                         
                           t 
                           0 
                           out 
                         
                         + 
                         
                           
                             t 
                             V 
                             out 
                           
                           ⁢ 
                           
                             S 
                             
                               L 
                               * 
                             
                           
                         
                       
                     
                     = 
                     
                       
                         
                           t 
                           0 
                         
                         + 
                         
                           
                             t 
                             V 
                           
                           ⁢ 
                           
                             S 
                             1 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           and 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           
                             t 
                             0 
                             out 
                           
                         
                         + 
                         
                           
                             t 
                             V 
                             out 
                           
                           ⁢ 
                           
                             S 
                             
                               H 
                               * 
                             
                           
                         
                       
                       = 
                       
                         
                           
                             
                               t 
                               0 
                             
                             + 
                             
                               
                                 t 
                                 V 
                               
                               ⁢ 
                               
                                 S 
                                 2 
                               
                             
                           
                           ⁢ 
                           
                             
 
                           
                           ⇒ 
                           
                             t 
                             0 
                             out 
                           
                         
                         = 
                         
                           
                             
                               
                                 
                                   t 
                                   0 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     
                                       S 
                                       
                                         H 
                                         * 
                                       
                                     
                                     - 
                                     
                                       S 
                                       
                                         L 
                                         * 
                                       
                                     
                                   
                                   ) 
                                 
                               
                               + 
                               
                                 
                                   t 
                                   V 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     
                                       
                                         S 
                                         1 
                                       
                                       ⁢ 
                                       
                                         S 
                                         
                                           H 
                                           * 
                                         
                                       
                                     
                                     - 
                                     
                                       
                                         S 
                                         2 
                                       
                                       ⁢ 
                                       
                                         S 
                                         
                                           L 
                                           * 
                                         
                                       
                                     
                                   
                                   ) 
                                 
                               
                             
                             
                               ( 
                               
                                 
                                   S 
                                   
                                     H 
                                     * 
                                   
                                 
                                 - 
                                 
                                   S 
                                   
                                     L 
                                     * 
                                   
                                 
                               
                               ) 
                             
                           
                           = 
                           
                             
                               
                                 
                                   t 
                                   0 
                                 
                                 + 
                                 
                                   
                                     
                                       t 
                                       V 
                                     
                                     ⁡ 
                                     
                                       ( 
                                       
                                         
                                           
                                             S 
                                             1 
                                           
                                           ⁢ 
                                           
                                             S 
                                             
                                               H 
                                               * 
                                             
                                           
                                         
                                         - 
                                         
                                           
                                             S 
                                             2 
                                           
                                           ⁢ 
                                           
                                             S 
                                             
                                               L 
                                               * 
                                             
                                           
                                         
                                       
                                       ) 
                                     
                                   
                                   
                                     ( 
                                     
                                       
                                         S 
                                         
                                           H 
                                           * 
                                         
                                       
                                       - 
                                       
                                         S 
                                         
                                           L 
                                           * 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                               ⁢ 
                               
                                 
 
                               
                               ⁢ 
                               
                                   
                               
                               ⇒ 
                               
                                 t 
                                 V 
                                 out 
                               
                             
                             = 
                             
                               
                                 
                                   t 
                                   V 
                                 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     
                                       S 
                                       1 
                                     
                                     - 
                                     
                                       S 
                                       2 
                                     
                                   
                                   ) 
                                 
                               
                               
                                 ( 
                                 
                                   
                                     S 
                                     
                                       L 
                                       * 
                                     
                                   
                                   - 
                                   
                                     S 
                                     
                                       H 
                                       * 
                                     
                                   
                                 
                                 ) 
                               
                             
                           
                         
                       
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                       
                     
                       
                         ⇒ 
                         
                           
                             t 
                             i 
                             out 
                           
                           + 
                           
                               
                           
                           ⁢ 
                           
                             
                               t 
                               iV 
                               out 
                             
                             ⁢ 
                             
                               S 
                               
                                 L 
                                 * 
                               
                             
                           
                         
                       
                       = 
                       
                           
                       
                       ⁢ 
                       
                         
                           
                             t 
                             i 
                           
                           + 
                           
                               
                           
                           ⁢ 
                           
                             
                               t 
                               iV 
                             
                             ⁢ 
                             
                               S 
                               1 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             and 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             
                               t 
                               i 
                               out 
                             
                           
                           + 
                           
                             
                               t 
                               iV 
                               out 
                             
                             ⁢ 
                             
                               S 
                               
                                 H 
                                 * 
                               
                             
                           
                         
                         = 
                         
                             
                         
                         ⁢ 
                         
                           
                             
                               
                                 t 
                                 i 
                               
                               + 
                               
                                 
                                   t 
                                   iV 
                                 
                                 ⁢ 
                                 
                                   S 
                                   2 
                                 
                               
                             
                             ⁢ 
                             
                               
 
                             
                             ⇒ 
                             
                               t 
                               i 
                               out 
                             
                           
                           = 
                           
                             
                               
                                 
                                   
                                     t 
                                     i 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         S 
                                         
                                           H 
                                           * 
                                         
                                       
                                       - 
                                       
                                         S 
                                         
                                           L 
                                           * 
                                         
                                       
                                     
                                     ) 
                                   
                                 
                                 + 
                                 
                                   
                                     t 
                                     iV 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         
                                           S 
                                           1 
                                         
                                         ⁢ 
                                         
                                           S 
                                           
                                             H 
                                             * 
                                           
                                         
                                       
                                       - 
                                       
                                         
                                           S 
                                           2 
                                         
                                         ⁢ 
                                         
                                           S 
                                           
                                             L 
                                             * 
                                           
                                         
                                       
                                     
                                     ) 
                                   
                                 
                               
                               
                                 ( 
                                 
                                   
                                     S 
                                     
                                       H 
                                       * 
                                     
                                   
                                   - 
                                   
                                     S 
                                     
                                       L 
                                       * 
                                     
                                   
                                 
                                 ) 
                               
                             
                             = 
                             
                               
                                 
                                   
                                     t 
                                     i 
                                   
                                   + 
                                   
                                     
                                       
                                         t 
                                         iV 
                                       
                                       ⁡ 
                                       
                                         ( 
                                         
                                           
                                             
                                               S 
                                               1 
                                             
                                             ⁢ 
                                             
                                               S 
                                               
                                                 H 
                                                 * 
                                               
                                             
                                           
                                           - 
                                           
                                             
                                               S 
                                               2 
                                             
                                             ⁢ 
                                             
                                               S 
                                               
                                                 L 
                                                 * 
                                               
                                             
                                           
                                         
                                         ) 
                                       
                                     
                                     
                                       ( 
                                       
                                         
                                           S 
                                           
                                             H 
                                             * 
                                           
                                         
                                         - 
                                         
                                           S 
                                           
                                             L 
                                             * 
                                           
                                         
                                       
                                       ) 
                                     
                                   
                                 
                                 ⁢ 
                                 
                                   
 
                                 
                                 ⁢ 
                                 
                                     
                                 
                                 ⇒ 
                                 
                                   t 
                                   iV 
                                   out 
                                 
                               
                               = 
                               
                                 
                                   
                                     t 
                                     iV 
                                   
                                   ⁡ 
                                   
                                     ( 
                                     
                                       
                                         S 
                                         1 
                                       
                                       - 
                                       
                                         S 
                                         2 
                                       
                                     
                                     ) 
                                   
                                 
                                 
                                   ( 
                                   
                                     
                                       S 
                                       
                                         L 
                                         * 
                                       
                                     
                                     - 
                                     
                                       S 
                                       
                                         H 
                                         * 
                                       
                                     
                                   
                                   ) 
                                 
                               
                             
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   
                     EQ 
                     . 
                     
                         
                     
                     ⁢ 
                     7 
                   
                   ) 
                 
               
             
           
         
       
     
     If the voltage domain corresponding to the arc (parameter V out ) is in synchronism with an existing voltage domain (parameter V) whose mapping corresponds to that of the abstract model, V out  can be replaced with V in T out . However, for an independent domain, T out  is no longer dependent on parameter V, but depends on parameter V out . If it is desired that other process parameters not be dependent on V out  either for modeling simplicity or for reasons including that the range of V out  be small, approximations can be performed to remove the dependence (cross terms) of V out  from other parameter sensitivities of T out . 
     In step  305 , it is verified whether any arcs are left for timing analysis. Each of such arcs is timed using steps  303  and  304 . Once all the arcs are timed, and the timing analysis for the graph is complete, the overall timing results are used in step  306  optionally for various steps like timing report generation and timing optimization. If required, steps  303 - 306  can be performed several times. The method  300  terminates in step  307 . 
     It is not required that statistical static timing analysis be performed in the method  300 . Deterministic corner based timing can be performed using statistical abstract timing models, and the present invention applies to such scenarios as well. 
     In another embodiment, voltage to voltage sigma mappings are required for mapping timing quantities that are obtained from a timing model at a voltage domain to the voltage domain during instantiation of a macro using that model. While linear mapping and linear interpolation can be performed for the same, the inherent non-linear impact of voltage on timing characteristics can introduce inaccuracies when used with a linear statistical timing model as in EQ. 4. Non-linear mappings can be performed for a given semiconductor technology or a class of VLSI designs and stored in a form that can either be looked up or efficiently computed during mappings. 
       FIG. 4  illustrates the dependence on voltage of a timing quantity (e.g. delay represented by D). Plot  401  shows the delay dependence as a function of voltage in absolute volts units and illustrates a non-linear dependence. Given delay values at voltage conditions of V1 and V4, attempting to obtain the delay at V2 using a linear interpolation would lead to inaccuracies. Such interpolations are required during voltage domain mappings, wherein the instantiated domain of a macro differs from that of the timing model, and where new voltage sigma values are required for the domain mapping. A linear interpolation to obtain new sigma values, followed by computing a delay based on the interpolated sigmas can cause inaccuracies. To alleviate the problem, the entire voltage range (V1 through V4 in  FIG. 4 ) is mapped to a sigma range, as shown in plot  402 . Mapping is preferably done in a non-linear fashion such that a linear interpolation in the voltage sigma space yields accurate delay results. The voltage to sigma mapping can be stored as a table or a function. As an example, to obtain the delay corresponding to V2, a voltage to voltage sigma lookup is performed to first obtain the sigma range S1 and S4, and the desired value S2. To compute the delay, a linear interpolation can now be performed in the delay and voltage sigma space to accurately obtain the delay at S2 (corresponding to V2). Voltage to voltage sigma mappings can also be stored separately for various timing quantities like delay, slew, and different parameter sensitivities. They can even be stored separately in accordance to different logic gate types. 
     It should be noted that although not explicitly specified, one or more steps of the methods described herein can include a storing, displaying and/or outputting step as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device as required for a particular application. Furthermore, steps or blocks in the accompanying figures that recite a determining operation or involve a decision, do not necessarily require that both branches of the determining operation be practiced. In other words, one of the branches of the determining operation can be deemed as an optional step. 
     While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention can be devised without departing from the basic scope thereof. Various embodiments presented herein, or portions thereof, can be combined to create further embodiments.