Abstract:
A computer system includes a printed circuit board manufactured in accordance with simulated trace impedances and topologies. The printed circuit board includes trace impedances characterizing at least three dimensions of a multi-dimensional space of the printed circuit board. The printed circuit board design includes trace impedances and topologies obtained with the use of a quasi-Monte Carlo simulation methodology.

Description:
BACKGROUND  
         [0001]    The disclosures herein relate generally to computer systems and more particularly to printed circuit boards for computer systems manufactured with a quasi-Monte Carlo simulation technique for multi-dimensional spaces.  
           [0002]    Simulation of multi-dimensional systems is becoming more necessary because of narrower constraints in modern designs. For example, determination of a printed-circuit board&#39;s trace impedance usually requires 3 or more dimensions (or parameters), trace width, dielectric height, dielectric constant, trace height, etc. Additional dimensions, such as solder mask thickness and permittivity constant, previously ignored because of their minimal effect in the days of wide constraints, now need to be considered. Each of these dimensions has manufacturing tolerances that affect the error of the impedance.  
           [0003]    Simulation methods to determine the range of error on the final solution are needed to answer questions of which parameters are important to monitor or specify, and those parameters that are not. Undue lengthy simulation times pose problems in a manufacturing environment. As the number of dimensions increases, the number of simulation combinations grow geometrically, and can reach astronomical limits if high resolution is required. Accordingly, a need exists to efficiently determine this information within a reasonable simulation time.  
           [0004]    In addition, signal integrity simulation may involve complex wiring topologies with multiple trace segments. For example, the combinations of ten (10) trace segments each with ten (10) possible lengths amounts to ten (10) billion possible topologies. It is unwise to methodically simulate every possible combination.  
           [0005]    One prior method used is the grid method, briefly mentioned above. With the grid method, each dimension is defined to have a minimum and a maximum value, in addition to having a fixed number of evenly-spaced values in between. If there are ten dimensions that need to be resolved each into 10 points, then the simulation space is 10^ 10, or 10 billion simulations. Not withstanding the extreme number of combinations, there are areas between the grid points that will never be simulated, which may miss some non-linear anomaly (such as resonance phenomena). FIG. 1 illustrates a graphical view of 5000 grid method points on a 1×1 grid.  
           [0006]    A common stochastic method is the classic Monte Carlo technique, where a value for each dimension is randomly picked for each simulation. The Monte Carlo technique allows a smaller sample of values than the grid method, and can be set to obtain off-grid values. However, because of ‘random clumping’ (see FIG. 2), some areas will be redundantly sampled, while others may be ignored due to voids. The Monte Carlo method&#39;s error decreases inversely proportional to the square root of the number of samples, and doubling the sampling rate decreases the error by approximately 30%. FIG. 2 illustrates a 2D plot of 5000 Monte Carlo points on a 1×1 grid. Using the Monte Carlo method, undesirable clumping and voiding occur within the grid.  
           [0007]    In addition to the Monte Carlo method, there exists a quasi-Monte Carlo method. The quasi-Monte Carlo method is a relatively new method (ca. 1992) that generates a hard-coded point-cloud that substantially evenly covers the dimensional space. The quasi-Monte Carlo method error drops at almost the rate of 1/N for multiple dimensions, wherein doubling the samples halves the error. This is very important in limiting the computations for medium to large dimensions.  
           [0008]    A problem with quasi-Monte Carlo method, however, is that a sequence of generated numbers from one base cannot be indexed into the dimensional space without producing very non-random correlations. One accepted technique is to use multiple bases to generate separate quasi-MC sequences for each dimension. Base numbers of 2, 3, and 5 are most often used for 3-dimensional work. The problem is that as the base gets larger, the point cloud becomes more sparse.  
           [0009]    Accordingly, a need exists for a simulation method to determine a range of error to identify which parameters are important to monitor within a reasonable simulation time.  
         SUMMARY  
         [0010]    According to one embodiment, a computer system is disclosed that includes a printed circuit board manufactured in accordance with simulated trace impedances and topologies. The printed circuit board includes trace impedances characterizing at least three dimensions of a multi-dimensional space of the printed circuit board. The printed circuit board design includes trace impedances and topologies obtained with the use of a quasi-Monte Carlo simulation methodology.  
           [0011]    A technical advantage of the embodiments of the present disclosure is an improved efficiency in the simulation and coverage of multi-dimensional spaces, such as in simulating trace impedances in printed circuit board manufacturing.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]    [0012]FIG. 1 illustrates a graphical view of 5000 grid method points on a 1×1 grid.  
         [0013]    [0013]FIG. 2 illustrates a graphical view of 5000 Monte Carlo points on a 1×1 grid.  
         [0014]    [0014]FIG. 3 illustrates a graphical view of 5000 quasi-Monte Carlo points on a 1×1 grid according to an embodiment of the present disclosure.  
         [0015]    [0015]FIG. 4 illustrates a plot view comparison of Monte Carlo vs. Quasi-Monte Carlo errors for a 3-D simulation.  
         [0016]    [0016]FIG. 5 illustrates a block diagram view of a computer system having a printed circuit board manufactured according to the embodiments of the present disclosure. 
     
    
     DETAILED DESCRIPTION  
       [0017]    According to the present embodiments, the method and system apparatus handle signal integrity simulations with stochastic techniques, further as discussed herein.  
         [0018]    Further according to an embodiment of the present disclosure, the technique uses one base, 2, and maps the sequence into as many dimensions as desired for a given simulation of a multidimensional system application.  
         [0019]    According to the present embodiments, a quasi-Monte Carlo number generator produces a sequence of numbers. Each number is mapped into N dimensions with a simple mapping function, providing N pseudo-random numbers from one. The technique produces very good coverage of the dimensional space, and can be used to sample a huge multi-dimensional problem, either for statistical purposes or to perform numerical integrations. Note that quasi-Monte Carlo is also referred to herein as “quasi-MC” or “QMC.”  
         [0020]    The present embodiments include the use of a quasi-MC generator algorithm, shown here in pseudo-code:  
         [0021]    Begin QMC Generator (request for a floating point number between 0.0 and 1.0)  
         [0022]    //previously generated QMC number is x, an 16-bit number in this case x=x+1; //generate next QMC number in the sequence R=x0/P+x1/P^ 2+x2/P^ 3+x3/P^ 4 . . . x15/P^ 16;  
         [0023]    //where xi is the ith bit in the number x, and P is the base value (usually 2) return R //this is the pseudo-random number that the QMC generator returns, its value is between 0 and 1  
         [0024]    End  
         [0025]    This number, R, is then used to find the D dimension values (i.e., parameters).  
         [0026]    //Assume D dimensions, each with a minimum and a maximum value, and each with  
         [0027]    //S intervals. The first dimension, numbered D0, has these values defined as D0.min and  
         [0028]    //D0.max, the second, D1.min and D1.max, etc.  
         [0029]    The value of S has an impact on the accuracy of the final simulation value, as it defines a grid. Setting S to 1000 will produce a finely-meshed 3D grid of one billion points. The QMC generator then picks a subset of those points. The simulation done in the 3D sphere determination of π, (as discussed further herein with reference to FIG. 3), used S=1037.  
         [0030]    Get Dvalue(i) //i is the index of the dimension value we wish to find, 0, 1, 2, . . . etc.  
         [0031]    TC=(S+1)^ D; //this is the Total Combinations of dimensional value points  
         [0032]    Index=R*TC; //Index is a long integer value, less than TC (0&lt;R&lt;1)  
         [0033]    num=1;  
         [0034]    for(j=0; j&lt;D−i−1; j++)  
         [0035]    num=num * (S+1); //find sub combinations of other dimensions (long integer)  
         [0036]    num1=Index/num; //divide Index value by sub-combinations (long integer)  
         [0037]    Index2=num1% (S+1); //modulo division by S intervals to find (long integer)  
         [0038]    D[i].delta=( D[i].max−D[i].min)/S; //delta is the value of each interval, (note not S+1)  
         [0039]    D[i]=D[i].min+ (double)lndex2*D[i].delta; //Index2 is a value between 0 and S, D[i] is scaled accordingly  
         [0040]    return D[i]; //deliver the unique value of this dimension based on the Index  
         [0041]    Selection of the Value S  
         [0042]    S is the resolution of each dimension, and can be selected on that basis. However, according to the present embodiments, certain combinations are 
         
       r=s 
       D 
       /P 
       N 
     
         [0043]    avoided, such that r, as defined below, is not factorable by either 2 (or other base, P) or D (the number of dimensions). 
         
       r=s 
       D 
       /P 
       N 
     
         [0044]    According to one embodiment, the ratio, r, can be predetermined to be a prime number. For example, r can equal 37. Accordingly, a value for S can then be derived from the equation for r.  
         [0045]    Referring now to FIG. 3, a Quasi-Monte Carlo 5000 point cloud on the same 1×1 grid as in FIG. 2 is shown, wherein the point cloud of FIG. 3 was generated according to the method of the present disclosure. Note that while there exists some regularity in the quasi-Monte Carlo point cloud, there also exist a possibility for variables to occur outside the regularity of the point cloud.  
         [0046]    3-D Sphere Simulation to Determine the Value of π 
         [0047]    A test was conducted using both the Monte Carlo and the Quasi-Monte Carlo methods on a 3 dimensional simulation problem. The test illustrates the superior error capability of the QMC method according to the present embodiments. The test simulation included the use of a sphere of 0.5 radius centered in a cube with sides of 1 unit. Sets of x, y, and z point-clouds were generated within the cube using the common Monte Carlo method and the quasi-MC method of the present disclosure. The ratio of points falling inside the sphere to the total number of points generated provided an estimate of the sphere&#39;s volume. In addition, the value of π is estimated from the volume. Since the real value of π is known, the error of the simulation can be determined.  
         [0048]    [0048]FIG. 4 provides a graphical illustration of the errors of both the MC and QMC methods for various size point-clouds, from 20 to 400. The number of integration samples is equivalent to the size of a respective point cloud. The errors were determined (for each point-cloud size) by averaging 100 simulations.  
         [0049]    For each simulation, error was determined according to the following: 
         Error=Absolute Value of ( V sim −V act)/ V act, 
         [0050]    where Vsim represents a simulated value and Vact represents an actual value.  
         [0051]    Trend line equations (i.e., fitting of respective data points to corresponding equations) for each of the MC and QMC data simulations were generated. The trend line equations, shown in FIG. 4, illustrate that the MC method has a classic 1/{square root}N error decrease, (the exponent of x is approximately −0.5), whereas, the QMC error drops much faster. For instance, an average QMC simulation of 80 points is equivalently accurate to an MC simulation using 320 points. Accordingly, the QMC method of the present disclosure provides an advantage in reducing simulation time.  
         [0052]    Accordingly, the present embodiments advantageously reduce the number of simulations in a multi-dimensional space and still provide a reasonable level of accuracy/completeness within a limited time frame.  
         [0053]    The present embodiments are applicable for simulations in designs of trace impedances and topologies for electrical signal integrity of a circuit of a printed circuit board, such as a computer system motherboard. Exemplary parameters or variables may include trace width, dielectric height, relative strength of drivers, trace thickness, dielectric constants, series termination resistors, slew rate of devices (fast, slow, etc.), capacitances (large, small, etc.), multiple traces on the printed circuit board, topology, common segments, etc. The present embodiments are also applicable for use in mechanical designs or other designs involving simulations characterized as multi-dimensional or having many parameters.  
         [0054]    The present embodiments provide a unique combination of quasi-Monte Carlo number generation and a prescribed mapping function. The prescribed mapping function maps the quasi-Monte Carlo random variables into a parameter space of the corresponding real world simulation.  
         [0055]    According to one embodiment of the present disclosure, the mapping function provides a unique set of variables for each random number generated by the quasi-Monte Carlo number method as described herein.  
         [0056]    The variable S helps determine how precise one desired the variable to be. The value of S is selected so that certain variables or combinations are avoided. That is, the value of S is selected to avoid the occurrence of resonance or the remapping of random numbers to the same variable. With the Monte Carlo method, there can occur missed variables (i.e., voids or gaps in the variable space) or repeated variables (i.e., clumps), where multiple of the random numbers get mapped to the same variable.  
         [0057]    With the grid method alone, if an important point (i.e., variable) is not on the grid, then that point gets overlooked. In addition, in certain cases, a random number may cause a resonance, however, the variable gets overlooked because of the grid method. With the grid method, achieving a higher resolution can only be accomplished by increasing the number of random numbers generated.  
         [0058]    Referring briefly to FIG. 5, a system block diagram of a computer system  50  is shown having a printed circuit board PCB or other system element manufactured in accordance with the simulation method of the present disclosure. The computer system includes a central processing unit (CPU)  52 , input/output (I/O) devices, such as a display, a keyboard, a mouse or other pointer device, and associated controllers, collectively designated by a reference numeral  54 , a hard disk drive  56 , and other storage devices, such as may include a floppy disk drive, CD-ROM drive, and the like, collectively designated by reference numeral  58 , and various other subsystems, such as a network interface card, collectively designated by reference numeral  60 , all interconnected via one or more buses, shown collectively as a bus  62 . A computer readable media  64  (such as a floppy disk, CD-ROM, or the like) is also included. Computer system  50  may be coupled to a network via a suitable network or modem cable  66 . One or more of the components of the computer system may be manufactured on a printed circuit board manufactured in accordance with the simulation of trace impedances and topologies of the present disclosure.  
         [0059]    Although only a few exemplary embodiments have been described in detail above, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages described herein. Accordingly, all such modifications are intended to be included within the scope of the embodiments as defined in the following claims. In the claims, means-plus-function clauses are intended to cover the structures described herein as performing the recited function and not only structural equivalents, but also equivalent structures.