Monte Carlo simulation for analyzing yield of an electric circuit
09846753 · 2017-12-19
Assignee
Inventors
Cpc classification
G06F30/367
PHYSICS
International classification
Abstract
In a simulation system and method thereof, the simulation includes, when a function value for a nominal point (NP) of an input is a first value, running a first simulation on the input; and when the function value for the NP of the input is a second value different from the first value, running a second simulation on the input. Here, the running of the second simulation may include (a) setting a boundary of an input distribution for the second value as a first distribution value, (b) generating input samples within the set boundary of the input distribution, (c) obtaining a worst case point (WCP) for the input by performing machine learning on the generated input samples, and (d) repeatedly performing the steps (a) to (c) while shifting the boundary of the input distribution until the boundary of the input distribution reaches a minimum critical value.
Claims
1. A simulation method for a computing system including one or more processors, the simulation method comprising: performing a main simulation as one of a first simulation and a second simulation based on an input deviation, wherein the input deviation is a distribution of a characteristic of a design of an electric circuit; in a case where a function value for a nominal point of the input deviation is a first value, providing a zero point (ZP) for the input deviation to the main simulation, and the main simulation perfoiming the first simulation in response thereto; and in a case where the function value for the nominal point of the input deviation is a second value that is different than the first value, performing a worst case point (WCP) determination for the input deviation by repeatedly performing generating samples of an input within a set boundary of the input deviation while shifting a boundary of the input deviation by reducing the input deviation until the input deviation reaches a minimum critical value, providing the determined worst case point (WCP) value to the main simulation, and the main simulation performing the second simulation in response thereto, wherein the input is the characteristic of the design of the electric circuit.
2. The simulation method of claim 1 wherein performing the worst case point determination further comprises: (a) setting the boundary of the input deviation as a first deviation value; (b) generating samples of the input within the set boundary of the input deviation; (c) obtaining function values for the respective generated samples of the input; (d) obtaining a boundary plane by performing machine learning on the respective generated samples of the input; (e) determining the worst case point (WCP) for the input on the boundary plane; and (f) repeatedly performing the steps (a) to (e) while shifting the boundary of the input deviation by reducing the input deviation until the input deviation reaches a minimum critical value.
3. A simulation method using a computing system including one or more processors, the simulation method comprising: when a function value for a nominal point (NP) of an input is a first value, running a first simulation on the input, wherein the input is a characteristic of a design of an electric circuit; and when the function value for the NP of the input is a second value different from the first value, running a second simulation on the input; wherein the running of the second simulation comprises: (a) setting a boundary of an input deviation for the second value as a first deviation value, wherein the input deviation is a deviation of the characteristic of the design of the electric circuit; (b) generating samples of the input within the set boundary of the input deviation; (c) obtaining a worst case point (WCP) for the input by performing machine learning on the generated samples of the input; and (d) repeatedly performing the steps (a) to (c) while shifting the boundary of the input deviation by reducing the input deviation until the input deviation reaches a minimum critical value.
4. The simulation method of claim 3, wherein the first simulation includes a Monte Carlo simulation.
5. The simulation method of claim 4, wherein the second simulation includes an importance sampling.
6. The simulation method of claim 1, wherein the generating of the samples of the input within the set boundary of the input deviation comprises generating the samples of the input within the set boundary of the input deviation using uniform distribution sampling.
7. The simulation method of claim 3 wherein the first value corresponds to a fail condition and wherein the second value corresponds to a pass condition.
8. A simulation method using a computing system including one or more processors, the simulation method comprising: (a) setting a boundary of an input deviation as a first deviation value, wherein the input deviation is a deviation of a characteristic of a design of an electric circuit; (b) generating samples of the input within the set boundary of the input deviation, wherein the input is the characteristic of the design of the electric circuit; (c) obtaining function values for the respective generated samples of the input; (d) obtaining a boundary plane by performing machine learning on the respective generated samples of the input; (e) determining a worst case point (WCP) for the input on the boundary plane; and (f) repeatedly performing the steps (a) to (e) while shifting the boundary of the input deviation by reducing the input deviation until the input deviation reaches a minimum critical value.
9. The simulation method of claim 8, wherein the shifting of the boundary of the input deviation comprises changing the boundary of the input deviation from the first deviation value to a second deviation value.
10. The simulation method of claim 9, wherein the second deviation value is smaller than the first deviation value.
11. The simulation method of claim 9, wherein at least one of the minimum critical value, the first deviation value and the second deviation value is a value that can be set by a user.
12. The simulation method of claim 8, wherein the generating of the input samples within the set boundary of the input deviation comprises generating the input samples within the set boundary of the input deviation using uniform distribution sampling.
13. The simulation method of claim 8, wherein the obtaining of the boundary plane by performing machine learning on the input samples and function values comprises obtaining the boundary plane using a support vector machine (SVM).
14. The simulation method of claim 8, wherein determining the WCP for the input on the boundary plane comprises determining the WCP using an evolutionary algorithm (EA).
15. A simulation system comprising: a storage unit in which a plurality of module program codes are stored; one or more processors configured to execute the plurality of module codes; and wherein the plurality of module codes comprise: a main simulation module running a simulation operation based on a center of an input deviation, wherein the input deviation is a deviation of a characteristic of a design of an electric circuit; a determining module providing a zero point (ZP) for an input to the main simulation module when a function value for a nominal point (NP) of the input is a first value, and running a second simulation on the input when the function value for the NP of the input is a second value different from the first value, wherein the input is the characteristic of the design of the electric circuit; and a worst case point (WCP) determining module obtaining a WCP for the input by repeatedly performing generating samples of the input within a set boundary of the input deviation while shifting a boundary of the input deviation for the second value by reducing the input deviation until the input deviation reaches a minimum critical value, and providing the obtained WCP to the main simulation module.
16. The simulation system of claim 15, wherein the WCP determining module obtains the WCP for the input by repeatedly performing generating samples of the input within the set boundary of the input deviation while shifting a boundary of the input deviation for the second value comprises: (a) setting a boundary of the input deviation for the second value as a first deviation value; (b) generating samples of the input within the set boundary of the input deviation; (c) obtaining function values for the respective generated samples of the input; (d) obtaining a boundary plane by performing machine learning on the respective generated samples of the input; (e) determining a worst case point (WCP) for the input on the boundary plane; and (f) repeatedly performing the steps (a) to (e) while shifting the boundary of the input deviation by reducing the input deviation until the input deviation reaches a minimum critical value.
17. The simulation system of claim 16, wherein the shifting of the boundary of the input deviation comprises changing the boundary of the input deviation from the first deviation value to a second deviation value.
18. The simulation system of claim 17, wherein the second deviation value is smaller than the first deviation value.
19. The simulation system of claim 16, wherein at least one of the minimum critical value, the first deviation value and the second deviation value is a value that can be set by a user.
20. The simulation system of claim 16, wherein the obtaining of the boundary plane by performing machine learning on the samples of the input and function values comprises obtaining the boundary plane using a support vector machine (SVM).
21. The simulation system of claim 16, wherein the WCP determining module determines the WCP for the input on the boundary plane using an evolutionary algorithm (EA).
22. The simulation system of claim 15, wherein the main simulation module, the determining module and the WCP determining module are driven by one or more processors.
23. The simulation system of claim 15 wherein the first value corresponds to a fail condition and wherein the second value corresponds to a pass condition.
24. The simulation system of claim 15, wherein the simulation operation includes a Monte Carlo simulation.
25. The simulation system of claim 15, wherein the generating of the samples of the input within the set boundary of the input deviation comprises generating the samples of the input within the set boundary of the input deviation using uniform distribution sampling.
26. A computing system comprising: one or more processors; and a storage unit in which program codes for performing a simulation for an input using the processors are stored, wherein the input is a characteristic of a design of an electric circuit and, wherein when a function value for a nominal point (NP) of the input is a first value, a first simulation for the input is run, by the one or more processors, and when the function value for the NP of the input is a second value different from the first value, a second simulation for the input is run, by the one ore more processors, the running of the second simulation comprising: (a) setting a boundary of an input deviation for the second value as a first deviation value, wherein the input deviation is a deviation of the characteristic of the design of the electric circuit; (b) generating samples of the input within the set boundary of the input distribution deviation; (c) obtaining a worst case point (WCP) for the input by performing machine learning on the generated input samples; and (d) repeatedly performing the steps (a) to (c) while shifting the boundary of the input deviation by reducing the input deviation until the input deviation reaches a minimum critical value.
27. The computing system of claim 26, wherein the first simulation includes a Monte Carlo simulation and the second simulation includes an importance sampling.
28. The computing system of claim 26, wherein the shifting of the boundary of the input deviation comprises changing the boundary of the input deviation from the first deviation value to a second deviation value, and the generating of the samples of the input within the set boundary of the input deviation comprises generating the samples of the input within the set boundary of the input deviation using uniform distribution sampling.
29. The computing system of claim 28, wherein the second deviation value is smaller than the first deviation value.
30. The computing system of claim 26 wherein the first value corresponds to a fail condition and wherein the second value corresponds to a pass condition.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above and other features and advantages of the present inventive concepts will become more apparent by describing in detail embodiments thereof with reference to the attached drawings in which:
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION OF EMBODIMENTS
(7) Advantages and features of the present inventive concepts and methods of accomplishing the same may be understood more readily by reference to the following detailed description of embodiments and the accompanying drawings. The present inventive concepts may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the concept of the inventive concepts to those skilled in the art, and the present inventive concepts will only be defined by the appended claims. In the drawings, the thickness of layers and regions are exaggerated for clarity.
(8) It will be understood that when an element or layer is referred to as being “on” or “connected to” another element or layer, it can be directly on or connected to the other element or layer or intervening elements or layers may be present. In contrast, when an element is referred to as being “directly on” or “directly connected to” another element or layer, there are no intervening elements or layers present. Like numbers refer to like elements throughout. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
(9) The use of the terms “a” and “an” and “the” and similar referents in the context of describing the inventive concepts (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted.
(10) It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. Thus, for example, a first element, a first component or a first section discussed below could be termed a second element, a second component or a second section without departing from the teachings of the present inventive concepts.
(11) Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present inventive concepts belong. It is noted that the use of any and all examples, or exemplary terms provided herein is intended merely to better illuminate the inventive concepts and is not a limitation on the scope of the inventive concepts unless otherwise specified. Further, unless defined otherwise, all terms defined in generally used dictionaries may not be overly interpreted.
(12)
(13) Referring to
(14) For example, if the simulation system 100 according to some embodiments of the present inventive concepts is a system for analyzing the yield of dynamic random access memory (DRAM) cells, as shown in
(15) Meanwhile, the simulation system 100 performs a simulation on the n inputs X1 to Xn, and a result value y may be indicated in the following equation (1):
y=f(x) (1)
(16) Here, the inputs X1 to Xn derive the result value y through a transfer function (f), and the result value y is a real number. In order to define whether the result value y indicates a pass status or a fail status, an indicator function I(y) is defined as expressed by the following equation (2), by which an indicator function value is calculated and a probability of a set of characteristic values to be analyzed:
(17)
where F means a set of fail statuses, a function value 1 of the indicator function I(y) means a fail status and a function value −1 of the indicator function I(y) means a pass status.
(18) That is to say, the simulation system 100 may output a failure probability (P) of the DRAM cell based on the n inputs X1 to Xn. Unless otherwise defined, the term “function value” used herein will be understood as the indicator function value, but aspects of the present inventive concepts are not limited thereto.
(19) The simulation system 100 may include a determining module 110, a worst case point (WCP) searching module 120, and a main simulation module 140.
(20) As used herein, the “unit” or “module” can refer to either a software element or a hardware element, such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), which performs a predetermined function, or both. However, the unit or module does not necessarily have a meaning limited to software or hardware. The module may be constructed in some embodiments to be stored in an addressable storage medium or in some embodiments, to execute one or more processors, or both. Therefore, the module includes, for example, software elements, object-oriented software elements, class elements or task elements, processes, functions, properties, procedures, sub-routines, segments of a program code, drivers, firmware, micro-codes, circuits, data, database, data structures, tables, arrays, and parameters. The elements and functions provided by the modules may be either combined into a smaller number of elements or modules or divided into a larger number of elements or modules.
(21) The determining module 110 may determine a simulation method for an input (Xi) (X1≦Xi≦Xn) according to the value of the indicator function value I(Xi) for a nominal point (NP) of the input Xi. In further detail, when an indicator function value I(Xi.sub.NP) for the NP of the input Xi (Here, the NP value may be, for example, a mean value (μi) of the input Xi in the present embodiment.) is a first value (e.g., 1), the determining module 110 may provide a zero point (ZP) for the input Xi, (X1≦Xi≦Xn) to the main simulation module 140 to perform a main simulation for the input Xi, (X1≦Xi≦Xn) in view of the ZP. When the indicator function value I(Xi.sub.NP) for the NP of the input Xi is a second value (e.g., −1), the determining module 110 may provide the input Xi to the WCP searching module 120 to search the WCP for the input Xi.
(22) When the NP of the arbitrary input Xi corresponds to, for example, a fail status, that is, when the indicator function value I(Xi.sub.NP) is 1, it is possible to generate a sufficiently large number of failed inputs Xi even by a relatively small number of samplings. However, when the NP of the arbitrary input Xi corresponds to, for example, a pass status, that is, when the indicator function value I(Xi.sub.NP) is −1, it is not possible to know how many samplings need to be run to generate a number of failed inputs Xi. In an extreme case, for example, if a distribution of failed inputs Xi is greater than or equal to 6σ relative to the NP, 380/z(−6) (=3.85*10.sup.11) times of sampling or simulations should be run.
(23) Therefore, the simulation system 100 according to some embodiments of the present inventive concepts includes the determining module 110 configured to determine the simulation method for the input Xi according to the value of the indicator function value I(Xi) for the NP of the input Xi, such an extreme case in which the huge number of samplings need to be run can be avoided. That is to say, since the determining module 110 can variably determine the simulation method for the input Xi according to the Probability Distribution Function (PDF) of the input PDF(Xi) of the input Xi, the case, in which the number of times simulations are run is extremely increased, can be avoided. Therefore, the overall analysis speed of the simulation system 100 can be improved.
(24) The WCP searching module 120 may be configured to obtain a WCP for the input Xi by repeatedly performing generating input samples within the set boundary of the input distribution while shifting a boundary of an input distribution for the input Xi and may provide the obtained WCP to the main simulation module 140. In some embodiments of the present inventive concepts, in order to accurately search the WCP for the input Xi, the WCP searching module 120 may repeatedly perform the generating of the input samples within the set boundary of the input distribution while decreasing the distribution boundary for the input Xi. In such a manner, if the generating of the input samples within the set boundary of the input distribution is repeatedly performed while decreasing the distribution boundary for the input Xi, the WCP for the input Xi can be more accurately searched, which will be herein described in further detail.
(25) Meanwhile, in some embodiments of the present inventive concepts, the sampling run by the WCP searching module 120 may include, for example, uniform distribution sampling, which will also be described herein in further detail.
(26) The main simulation module 140 may be configured to run a predetermined simulation based on the provided distribution center (for example, ZP or WCP of the input Xi). Here, the predetermined simulation may include, for example, a Monte Carlo simulation. That is to say, the main simulation module 140 may output a probability P that a particular function value (e.g., −1) exists by performing a Monte Carlo simulation on the input Xi. Meanwhile, when the WCP for the provided input Xi is obtained, the main simulation module 140 runs the Monte Carlo simulation on the input Xi in consideration of a calibration coefficient (W) generated in the course of searching the WCP. The main simulation module 140 will be described herein in further detail.
(27) Hereinafter, a simulation system and method according to some embodiments of the present inventive concepts will be described with reference to
(28)
(29) First, referring to
(30) In detail, referring to
(31) More specifically, when the function value for the NP of inputs (Xj, Xk) corresponds to a fail status, as shown in
(32) In some embodiments of the present inventive concepts, the nominal point NP of inputs (Xi, Xk) and the zero point ZP of the inputs (Xi, Xk) may be equal to each other, but aspects of the present inventive concepts are not limited thereto. In modified embodiments, the NP of the inputs (Xi, Xk) and the ZP of the inputs (Xi, Xk) may be different from each other.
(33)
(34) Referring again to
(35) In order to implement the importance sampling, the WCP or shift vector of the inputs (Xj, Xk) is determined. Therefore, when the function value for the NP of inputs (Xj, Xk) corresponds to a pass status, as shown in
(36) Referring to
(37) Next, referring to
(38) Next, referring to
(39) Next, referring to
(40)
(41) Next, referring to
(42) Referring again to
(43) In some embodiments of the present inventive concepts, the minimum critical value St of the distribution boundary of the inputs (Xj, Xk) may be set to a. As shown, the distribution boundary of the inputs (Xj, Xk) may gradually decrease. Hereinafter, a process of searching the WCP through the above-described procedure will be described in more detail.
(44) First, referring to
(45) Next, referring to
(46) Next, referring to
(47) Next, referring to
(48) Now that the distribution boundary of the inputs (Xj, Xk) is a that is the minimum critical value St, the searched fourth WCP (WCP4) is the final WCP of the inputs (Xj, Xk). Therefore, referring to
(49) In some embodiments of the present inventive concepts, at least one of the minimum critical value St, the first distribution value Si, and the second distribution value Si/2 set by decreasing the first distribution value Si, may be optionally set by a user.
(50) In the above-described embodiment, it has been illustrated that the second distribution value Si/2 is decreased from the first distribution value Si, but aspects of the present inventive concepts are not limited thereto. In some other embodiments of the present inventive concepts, the second distribution value Si/2 may be set to increase from the first distribution value Si. In addition, in some other embodiments of the present inventive concepts, the second distribution value Si/2 and the first distribution value Si may be set to be equal to each other. In the respective cases, the minimum critical value St may be differently set in various manners.
(51) Referring back to
(52) As described above, in the simulation system and method according to embodiments of the present inventive concepts, simulation methods for an input may vary in consideration of characteristics of the input. In detail, when a function value for the NP of an input corresponds to a fail status, a sufficiently large number of failed inputs Xi can be generated even by a relatively small number of samplings. Thus, a Monte Carlo simulation is run based on the ZP of the input as the center of the input distribution. When a function value for the NP of an input corresponds to a pass status, in order to avoid an extremely increasing simulation time, a simulation is run on the input using importance sampling. Accordingly, it is possible to prevent the simulation time from extremely increasing according to the characteristics of the input.
(53) The following table 1 shows results of experiments for comparison of numbers of times samplings or simulations need to be run according to the failure rate of inputs for the purpose of accounting for the performance of the above-described simulation system (100 of
(54) Here, inputs (1) to (5) are set such that a distribution of the inputs is a normal distribution, and the reliability level of the experiments was set to 95%. In table 1, X indicates results of Monte Carlo simulations run on the inputs (1) to (5), Y indicates results of the above-described simulation methods according to some embodiments of the present inventive concepts performed on the inputs (1) to (5), and Z indicates results of other simulation methods using clustering, an alternative approach to the simulation methods of the inventive concepts.
(55) TABLE-US-00001 TABLE 1 X Y Z Failure Run Failure Run Failure Run Input rate no. rate no. rate no. (1) 1.77e−1 470 1.60e−1 2770 1.81e−1 3520 (2) 7.63e−3 13100 6.58e−3 2910 5.74e−3 9280 (3) 1.79e−4 559000 1.80e−4 3390 1.70e−4 3968 (4) 9.05e−6 7262500 9.12e−6 3500 7.30e−6 9856 (5) 3.14e−6 9324300 3.21e−6 3500 2.87e−6 16704
(56) Referring to Table 1, as the failure rate of inputs is reduced, the number of X-simulations increases exponentially while the number of Y-simulations increases little. Meanwhile, for inputs having substantially the same failure rate, the number of X-simulations is smaller than the number of Y-simulations. That is to say, according to the above-described simulation system and method according to some embodiments of the present inventive concepts, it is possible to prevent the simulation time from extremely increasing by modifying the simulation according to the characteristics of the input.
(57) Meanwhile, in order to efficiently perform importance sampling, the WCP is searched for the input. Therefore, in the present embodiment, in order to accurately search the WCP for the input, the WCP for the input is searched while gradually reducing the boundary of the input distribution. The thus searched WCP has much increased accuracy, and the reliability of the simulation result is therefore greatly improved.
(58) Hereinafter, a computing system employing a simulation system according to some embodiments of the present inventive concepts will be described with reference to
(59)
(60) Referring to
(61) The computing system 1001 may include a central processing unit (CPU) 1000, an accelerated graphics port (AGP) controller 1010, a main memory 1100, a storage 1040 (e.g., SSD, HDD, etc.), a bus 1020, a keyboard controller 1060, and a printer controller 1050. In
(62) In some embodiments, the computing system 1001 shown in
(63) In the computing system 1001, the CPU 1000, the AGP controller 1010, the main memory 1100, the storage 1040, the keyboard controller 1060, the printer controller 1050, and other peripheral devices may be connected to the bus 1020, but aspects of the present inventive concepts are not limited thereto. The bus 1020 may be modified to be incorporated into the CPU 1000.
(64) In some embodiments, the AGP may have a bus specification to provide for fast implementation of 3D graphic representation. The AGP controller 1010 may include a video card for playback of a monitor image.
(65) In some embodiments, the CPU 1000 may be configured to perform various operations required for driving the computing system 1001 and may execute an operating system (OS) and application programs. In
(66) In some embodiments, the main memory 1100 may load data required to perform the operation of the CPU 1000 from the storage 1040 and may store the loaded data. An exemplary memory of the main memory 1100 may comprise a DRAM, but aspects of the present inventive concepts are not limited thereto.
(67) In some embodiments, the storage 1040 may comprise a large-capacity data storage device storing data, and may be implemented by, for example, a computer readable recording medium, such as HDD or SSD, but aspects of the present inventive concepts are not limited thereto. In addition, in the computing system 1001 according to the embodiment of the present inventive concepts, the storage 1040 is connected to the bus 1020, but aspects of the present inventive concepts are not limited thereto. That is to say, the storage 1040 may be modified to be directly connected to the CPU 1000.
(68) When the computing system 1001 according to embodiments of the present inventive concepts employs the simulation system (100 of
(69) In detail, the determining module (110 of
(70) The respective modules 110, 120 and 140 stored in the storage 1040 are loaded to the main memory 1100 and then processed by the CPU 1000, thereby outputting a probability value (P of
(71) A program recordable recording medium according to some embodiments of the present inventive concepts will now be described.
(72) Examples of the program recordable recording medium for implementing a simulation method according to some embodiments of the present inventive concepts may include, a computer hard disk, a floppy disk, a 3.5 inch disk, a computer storage tape, a magnetic drum, an SRAM cell, a DRAM cell, an electrically erasable memory, such as an EEPROM cell, an EPROM cell, or a flash cell, a nonvolatile cell, a ferroelectric memory, a magnetic random access memory, a compact disk (CD), a laser disk, an optical disk, and so on, but aspects of the present inventive concepts are not limited thereto. Indeed, any type or form of storage media that are readable using a computer may be used as the program recordable recording medium for implementing a simulation method according to some embodiments of the present inventive concepts.
(73) While the present inventive concepts have been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made herein without departing from the spirit and scope of the inventive concepts as defined by the following claims. It is therefore desired that the present embodiments be considered in all respects as illustrative and not restrictive, reference being made to the appended claims rather than the foregoing description to indicate the scope of the inventive concepts.