Abstract:
The present invention is a method and system for simulating the aging process of a circuit. A two-step process is employed whereby, in a first simulation step, a simulation is conducted to obtain node voltages for the original circuit and the node voltages are stored in a file. In the second step, a subsequent simulation is run after transistors of the circuit are replaced by aging subcircuits, which contain aging models, and initial node voltages are updated. A script is used to set the bias voltage inputs for the aging models using the node voltages stored in the file from the first step. With more accurate bias voltage inputs for the aging models, the aging simulations are conducted to compute the circuit degradation.

Description:
FIELD OF THE DISCLOSURE 
     The disclosure relates to estimating aging, i.e. reliability, of a circuit, more particularly to simulation of a circuit with aging models that have adjusted bias parameters. 
     BACKGROUND 
     Reliability of electrical/electronic circuitry is crucial in many environments, such as, for example, medical devices, weapons systems, communications system, etc. Such systems and devices utilize various types of electronic circuits, including integrated circuits. As circuits age, they become less reliable until, at some point in time, performance becomes unacceptable. Thus it is important to estimate the effective life of a circuit during the initial circuit design to enable design optimization. 
     One aging defect, commonly known as Negative Bias Temperature Instability (NBTI), can be attributed to a shift of a threshold voltage of a circuit transistor element. Threshold voltages increase over time due to interface states and fixed charges in the gate oxide of a semiconductor. As the absolute value of the gate to source voltage (Vgs) increases, NBTI worsens; i.e., the threshold voltage increase is a function of NBTI. Higher Vdd results in higher operating Vgs voltages and elevated temperatures increase the NBTI effect. NBTI is an important concern that requires frequent monitoring. 
     Another aging defect is caused by the phenomenon known as Hot Carrier Injection (HCI), which relates to the change in mobility of electrons/holes, over time. An electron or a “hole” gaining sufficient energy to pass through a potential barrier becomes a “hot carrier,” migrating to a different area of the device. For example, in a MOSFET device, an electron may be injected from the silicon substrate to the gate dielectric. The misplacement of the hot carrier degrades performance. As hot carrier injection increases with time, failure due to drain current reduction will eventually occur. As the drain to source voltage (Vds) increases, HCI worsens. Other aging factors are related to effects of temperature, and changes in channel length and gate oxide, for example. As temperature increases, both NBTI and HCI worsen. 
     Aging models have been created for use in simulation of designed circuits. In the simulation process for circuits that include, for example, JFETs, MESFETs, MOSFETs, and like elements, aging models with input bias values, for example, gate-to-source, Vgs, or drain-to-source, Vds voltages and the like are utilized. The bias voltages can be obtained through node voltages. Vgs can be computed as Vgs=Vg−Vs and Vds can be computed as Vds=Vd−Vs, where Vd and Vs are the node voltages at the drain and source of a transistor, respectively. The aging models also depend on an effective stress time that is a factor in estimating the effects of NBTI and HCI. Effective stress time is dependent on input switching activity, i.e., frequency, duty cycle, rise/fall time of signals at the gate of each transistor, and is a parameter in equations describing NBTI and HCI. One problem with conventional methods of simulation is that since each transistor in a circuit degrades differently, it is difficult to judge the overall age of the circuit when many transistors are involved. 
     A known simulation technique employs “SPICE” software. SPICE is a general-purpose circuit simulation program for nonlinear dc, nonlinear transient, and linear ac analysis. In SPICE simulations, bias voltages, such as Vgs and Vds voltages, are manually set using initial bias conditions. As the number of circuits increases, it becomes unwieldy, and infeasible for a designer to manually set the bias voltages for each circuit element. As an approach to alleviating these problems, bias value assumptions for the aging models have been made in lieu of individualized bias settings. For example, for transistor circuits, such solution assumes that Vgs=Vdd and Vds=Vdd for each transistor. However, the accuracy of the aging simulation model is significantly compromised since accurate bias voltages are not used. 
     The need thus exists for a more accurate and efficient aging simulation technique. 
     DISCLOSURE 
     The problems imposed by manually setting initial bias voltage conditions for the aging models, by compromising accuracy through “converged” voltages and by making assumptions such as Vgs=Vdd, are obviated. “Converged” voltages may result if aging subcircuits are inserted in a circuit netlist and the node voltages computed by a single step simulation are directly used in the aging models. Subcircuits may be thought of as subroutines of the SPICE software program. Each subcircuit may be given a file name and specify circuit nodes that will connect to the overall main circuit. In the present disclosure, a two-step simulation provides greater accuracy and more realistic results. Such a two-step approach provides a more accurate aging simulation that, in turn, provides a more accurate assessment when deciding whether to improve the existing technology or to improve the existing circuit design. 
     During the simulation process, initial bias conditions are set to nominal values. The Vds-HCI parameter is set to the initial Vdd solution. The Vgs-NBTI parameter is set to the initial Vgs voltage for each transistor individually. Using a Perl (Practical Extraction and Reporting Language) script, a known script programming language similar in syntax to C language, the bias conditions obtained are collected. The initial bias voltages are then used in aging models and the simulation checks are updated. The simulation is run in order to obtain the actual Vgs and Vdd bias voltages as aging model inputs for each and every transistor in the circuit. These more accurate bias voltage values for the aging models are then used as a model in a second simulation step after which circuit degradation may be calculated. That is, the subsequent simulation is performed using the results obtained in the first step. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various exemplary embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which: 
         FIG. 1  is a waveform diagram for conventional effective stress time calculation. 
         FIGS. 2A and 2B  are NMOS and PMOS subcircuit diagrams, respectively, with aging reference characters. 
         FIG. 3  is a flowchart depicting SPICE DC Solutions for calculating node voltages. 
         FIG. 4  is a flowchart depicting the two-step aging methodology in accordance with the present invention. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  is a waveform indicative of the operation of a semiconductor device. Shown in the figure is a rise time, Trise, and a fall time, Tfall. Stress is greater in the device when operated in DC mode than when operated in AC mode. In AC mode, the device does recover some of the degradation lost due to stress. Aging, employing the HCI type of simulation, may be represented by:
 
Age HCI   =t   operation   ·f ( T rise+ T fall),
 
wherein aging employing HCI simulation is represented by the time a device is operational multiplied by the product of the frequency and the total of the rise time and the fall time. Age HCI  is the effective stress time for HCI.
 
     Aging, employing NBTI simulation, may be represented by:
 
Age NBTI   =t   operation ·Duty Cycle,
 
wherein aging employing NBTI simulation is represented by the time a device is operational multiplied by the duty cycle of the waveform. Age NBTI  is the effective stress time for NBTI. The duty cycle, as is known, is defined as the width of a pulse, or the amount of time the input signal is high in a period, divided by the period between pulses. Stated another way, duty cycle is the proportion of time during which a component, device, or system is operated. t operation  is the time of operation, in years, of the device, and is internally converted to the effective stress time. Duty Cycle is a value between 0 and 1. HCI models can be turned off by setting frequency to a value of 0, while NBTI models can be turned off by setting Duty Cycle to a value of 0.
 
     The useful life of a circuit component is related to the number and length of its activations. Higher duty cycle usage should thus lead to the shorter useful life expectancy. If a memory drive, for example, has a life expectancy of 1,000,000 hours based on a one percent duty cycle usage, the life expectancy would decrease to about 500,000 hours for duty cycle usage of two percent or increase to about 2,000,000 hours for duty cycle usage of 0.5 percent. 
       FIG. 2A  is a representation of an NMOS subcircuit,  201 , used to implement the inventive aging models and  FIG. 2B  is a representation of a PMOS subcircuit,  203 , used to implement the inventive aging models. The NMOS and PMOS devices shown are transistors having a gate G, source S, and drain D. An ammeter,  205 , is shown at the source in both the NMOS device, and the PMOS device, for measuring the source current,  207 , and drain current,  209 , respectively. It should be noted, however, that the ammeter may just as well be located at the drain in each of these devices. Moreover, the drain or source currents may also be simulated in an initial simulation step. The ammeters  205  may also be implemented by simulating the drain or source currents in the initial simulation step. The node names and their corresponding voltage values are recorded in a computer memory location or a temporary file. These node voltage values are then used in a second step of the simulation process in order to compute Vgs and Vds of the aging models for transistors. ▴ Vt represents the NBTI effect, and can be implemented using a parameter describing a threshold voltage shift, such as the delvto parameter in Hspice, which is a common circuit simulator. ▴ Vt can alternatively be implemented using a voltage source at the gate terminal of a transistor. The ▴Vt value is defined by the NBTI aging models, which are a function of bias voltages and effective NBTI stress time amongst other process parameters. ▴Idsat represents the saturation current degradation effect for HCI. The current source,  207  or  209 , shown functions as a current controlled current source, effectively reducing the drawn current. ▴Idsat can alternatively be implemented using a mobility multiplier parameter, such as mulu0 in Hspice. The ▴Idsat value is defined by the HCI aging models, which are a function of bias voltages and effective HCI stress time amongst other process parameters. 
     A preferred embodiment runs an initial simulation by using, for example, a conventional SPICE simulation technique. This may be performed, for example, by obtaining all the nodes voltages in a circuit. Other known circuit simulation tools such as, for example, HSPICE, PSPICE, and Spectre may also be used without departing from the invention described herein. These voltages are used in aging models to obtain degradation values. The degradation values are then used to perform a simulation with the computed voltages. Unlike the conventional NBTI and HCl methods of setting Vgs=Vdd and Vds=Vdd, resulting in inaccuracies by overestimating degradation, the present invention removes the inaccuracy by the using computed Vgs and Vds on each transistor in the circuit. All voltages values are saved in a file by associating a node name with a corresponding bias voltage. For a circuit, all of the node voltages are known. These node voltage values are then correlated to certain transistor nodes and node names. Thus, the voltage for each named node is known and stored in a file for future use. 
       FIG. 3  is a flowchart,  300 , depicting SPICE DC Solutions for calculating node voltages. A DC solution is the first step that a circuit simulator conducts before conducting other types of simulations such as AC and transient simulations. In fact, AC and transient simulations will employ the results obtained in the DC solution. In order to obtain a DC solution, the simulator first converts the circuit netlist into a matrix at  301 . A circuit netlist may contain a list of logic gates and their interconnections which make up the circuit or a text file describing the circuit. A netlist is used as input to the simulator, which then uses the netlist and input stimulus files to imitate the function of the circuit design without having to incorporate the design in hardware. Simulating a circuit by providing netlists and stimulus data is an efficient and cost effective method of testing a circuit. The simulator then opens up capacitances and shorts inductances in the circuit, at  303 . Then, with the circuit in this condition, i.e., capacitances shorted and inductances open, the node voltages are calculated, at  305 , at each node, using Vdd, at  307 , and input bias voltages,  309 . The calculated node voltages result in what is known as the operating initial conditions, or the DC solution. The values in this DC solution are then stored in a file for use later in order to realize the two-step aging simulation of the present invention. 
       FIG. 4  is a flowchart,  400 , describing the two-step simulation process. Using the original flat netlist, a first simulation is performed at step  401  in order to obtain initial operation points. These operation points, the DC solution, are then stored in a file, at step  403 . This may be performed, for example, by a “.save” command in HSPICE. However, those skilled in the art will recognize that the operation points, or node names, and the node voltage values may also be stored in various places, such as, for example, the memory of a computer. 
     A “flat netlist” is a netlist representing the primitive elements of a circuit in a flattened, single level. The inventive method may also be applied to hierarchical netlists. Next, a script is used, e.g., a PERL script, for updating, at step  405 , the original netlist in order to generate a new netlist. However, any appropriate script may be used, including, for example, programming languages such as C, C++, and scripting languages such as TCL. The updating is performed, for example, by replacing each transistor with a corresponding aging subcircuit and adding instance parameters, such as Vgs-NBTI, Vds-HCI, Duty Cycle, t operation , and frequency. The Duty Cycle, t operation , and frequency may be set the same way using global parameters, or they may be set differently for each transistor using an input file that maps the transistor names to corresponding Duty Cycle, t operation , and frequency values. Then, Vgs-NBTI and Vds-HCI are updated, at step  407 , using the DC operating initial condition file, at step  403 , generated in the first step described with regard to  FIG. 3 . Finally, a second step of a final simulation is performed, at step  409 , using the updated voltage values, to obtain the aging simulation results indicative of the estimated age of the simulated circuit. 
     In the preceding specification, various preferred embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The specification and the drawings are accordingly to be regarded in an illustrative rather than restrictive sense.