The present disclosure relates generally to circuit modeling and analysis, and more particularly to techniques for performing stochastic steady-state and AC analyses of mixed-signal systems.
Linear system analysis has long been an indispensable tool for analog circuit designers. In order to benefit from such analysis, circuits are typically analyzed in their small-signal models from which various linear system parameters, such as poles, zeros, gain, and bandwidth, can be derived. Linear analyses, such as AC and periodic AC (PAC) analyses, effectively simulate the linearized response of the circuits. Due to the prevalence of linear analysis tools, analog circuit designers often strive to achieve certain linear system behaviors while minimizing nonlinearities such as offset and distortion. Linear analysis, however, is not easily applied to mixed-signal circuits because mixed-signal circuits do not have a steady-state response that is either time-invariant or periodically time-varying (PTV).
It is a steady trend in integrated circuit (IC) design to implement increasingly more analog circuits into mixed-signal systems with the digital circuits either replacing or assisting the analog circuits, due in part to CMOS transistors being poor gain elements but good, fast switches. For example, by leveraging the fast speed of digital logic, delta-sigma (ΔΣ) data converters can achieve high resolutions without requiring the stringent accuracy required for analog circuits, namely, the uniform distribution of the effective threshold levels in data conversions between analog and digital domains. Also, many phase-locked loops (PLLs) now implement time-to-digital converters and digital-controlled oscillators so that the loop filters can be realized entirely in digital logic, thus reducing the large filter area and enabling more sophisticated control of the loop dynamics. Furthermore, many analog front-end circuits in wireless and wired communication systems are equipped with digital calibration loops that monitor and correct undesired properties of the circuits such as offset, skew, or duty-cycle error.
A common characteristic of these emerging mixed-signal systems is random behavior. For example, most digitally-controlled feedback loops including digital PLLs, delayed-locked loops (DLLs), and calibration loops show a periodic dithering when approaching the steady states rather than the exponential convergence shown by linear circuits, meaning the feedback systems do not settle into a constant state but rather alternate among multiple discrete states. Sometimes this randomness is even intentional. For example, ΔΣ modulators rely on randomness to shape the deterministic quantization errors to out-of-band random noise. Furthermore, injecting pseudo-random dithering into ΔΣ data converters has been found to improve linearity and suppress periodic idle tones. Dynamic element matching is another technique that randomizes the selection of the sub-elements so that any mismatch among them appears as random noise. Also in digital calibration loops, it has been reported that randomizing the calibration period can help reduce undesired harmonic tones that arise due to periodicity.
Despite the fact that many mixed-signal systems are stochastic, their design intents are still linear and simulating their adjoint linear system responses at the steady-states (e.g. the frequency-domain transfer function) is of high interest to the designers. An adjoint linear system refers to a hypothetical linear system which describes the responses of the original system at the designated steady state (also called operating point) for infinitesimal changes in an input signals. For example, the ΔΣ data converters are designed with specific signal transfer functions (STF) and noise transfer functions (NTF) to maximize the signal-to-noise ratio (SNR). Also, phase transfer functions are the most common way of describing the characteristics, such as bandwidth and jitter peaking, of a digital PLL. While AC and PAC analyses available in today's circuit simulators can efficiently simulate the adjoint linear responses for the circuits that have DC or periodic steady-states, these simulators cannot be applied to the above-mentioned mixed-signal systems that have stochastic steady-states.
Due to the unavailability of AC and PAC analyses, circuit designers often use time-domain analysis, also referred to as transient analysis, to simulate mixed-signal systems. The time required to perform transient analysis on complicated circuit designs, however, is often thousands or even hundreds of thousands times greater than the time required to perform AC or PAC analyses, and even with this increased testing time, the simulating achieved by transient analysis is less complete than that of AC or PAC analyses. It is therefore desirable to extend steady-state and AC analyses to mixed-signal systems with Stochastic steady states.
Techniques and embodiments described in the disclosure are illustrated by way of example, and not by way of limitation, in the following figures:
a-b show representations of probability distributions over continuous state space as a set of probability masses and a set of Gaussian basis functions.
a-b show a probability distribution after the state projection y=4 tan h(x/2) for a set of probability masses and a set of Gaussian basis functions.
a-b show diagrams of a digitally-controlled phase-locked loop and its discrete-time system model.
a-d show simulated jitter histograms.
a-b show a first-order ΔΣ ADC and its discrete-time system model.
Implementations disclosed include a method for efficiently enabling a system analysis tool to perform linear analyses on mixed-signal systems that have a Stochastic (i.e. statistical) steady state instead of a time-invariant steady state or a periodically time-varying steady state. When a mixed-signal system reaches its Stochastic steady state, the probabilities of transitioning from a current state to one of a discrete number of possible next states are time-invariant and can be determined by a Markov chain model. Techniques disclosed include limiting the number of states included in a Markov chain model by discretizing the states based on Gaussian decomposition, utilizing a state exploration algorithm that discovers only recurrent states, and/or utilizing a state truncation algorithm that eliminates states with negligible stationary probabilities.
A finite, discrete-time Markov chain is characterized by its transition probability matrix T={Tij}'s whose elements describe the probabilistic progression of the states from time n to n+1:
T
ij
=P(s[n+1]=si|s[n]=sj) for i, j=1, 2, . . . , N, (1)
where s[n] is the system state vector at time n and the Markov chain is assumed to have N discrete states s1, s2, . . . , sN. The Markov chain property states that the state probability distribution at time n+1, p[n+1], depends solely on p[n] via the expression:
p[n+1]=T·p[n], (2)
where p[n] is an N×1 vector {pi[n]}'s and pi[n] is P(s[n]=si). If the matrix T is constant regardless of n (i.e. time-homogeneous), then Perron-Frobenius theorem states that the stationary distribution vector π of the Markov chain can be found by solving:
With continuous state variables in mixed-signal systems, the number of states in the Markov chain model can grow quickly with the number of variables. Therefore, techniques disclosed include constructing, from a circuit model, a Markov chain model with a feasible number of states for performing time-efficient analysis on a system such as a personal computer.
A Markov chain model describes how the state probability distribution evolves over time, making it desirable to represent the probability distribution over continuous state space. In theory, the distribution is best represented with continuous probability density functions (PDFs), but techniques disclosed herein include discretizing the distribution, both in time and value, to enable time-efficient numerical computation. As most mixed-signal systems are sampled-data systems, the time axis is often already discretized, thus requiring only an efficient way of expressing the probability distribution and projecting it across a unit time step.
A PDF can be approximated by a probability mass function defined for a set of discrete points covering the continuous state space, as illustrated in
s[n+1]=f(s[n]), (4)
then the probabilities at time n+1, p[n+1], can be computed based on p[n] via the following expression:
where δij is 1 if the quantized f(sj) is equal to si and 0 otherwise.
One problem with this approach is that the probability masses from time n may project non-uniformly onto the state grids at time n+1, resulting in a probability distribution that differs from the true results.
To mitigate this problem, techniques disclosed herein include representing a PDF with a set of Gaussian basis functions, as shown in
where wi's are non-negative real numbers with their sum equal to 1 and g(·) is the normal distribution function with mean of 0 and variance of σG2. With σG equal to half the grid spacing, any function which is smooth on scales below σG can be decomposed into a set of Gaussians basis functions. For purposes of explanation, a one-dimensional case will be described, but the techniques disclosed herein can be extended to multi-dimensional cases as well.
Gaussian decomposition can simply and accurately compute the projected probability distribution at the next time step, fPDF(s[n+1]), even when the grids are coarse. Assuming the same state-projection function f(·) defined as before, fPDF(s[n+1]) can be computed via:
Each of the sub-Gaussian component g(s[n]−si) in equation (6) takes a new mean f(si) and a new variance σG 2·(df/dsi)2 where df/dsi is the derivative off with respect to the state si. If g((s[n+1]−f(si))/(df/si)) can be decomposed to the original set of Gaussians g(s[n+1]−sj) with a new set of weighting coefficients w′ij, for j=1, . . . N, the expression for fPDF(s[n+1]) becomes:
b) plots the projected PDF based on the Gaussian decomposition method with the same set of grid points as in the previous case of
Decomposition of the projected Gaussian PDF into the original set of Gaussian bases can be carried out by a simplified expectation-maximization (EM) algorithm which performs the maximum likelihood fitting of the weighting coefficients. The initial weights computed based on the adjusted Gaussian PDF with variance equal to σ2−σG2 give estimates that limit the number of iterations, for example to less than 20 with 0.1% tolerance.
Based on the Gaussian mixture representation, the probability distribution vector p[n]={pi[n]}'s corresponds to the weights {wi[n]}'s and the transition probability Tji can be computed as:
T
ji
=w
j
[n+1] of fPDF(s[n+1]) in (8) given s[n]˜N(sj, σG2). (9)
This new transition probability matrix T remains stochastic (i.e. the elements are non-negative and the sum of each row is equal to 1) and all the existing methods to compute the stationary distribution π of a Markov chain can still apply.
Once π is computed, various statistics of the system such as mean E[X], variance Var[X], auto-correlation RXX[n], and power spectral density PSD(f) can be derived as follows:
E[X]=v
X
T·π, (10)
Var[X]=(vX−E[X])T·diag(π)·(vX−E[X])+σG2, (11)
R
XX
[n]=v
X
T
·T
n·diag(π)·vX+σG2, (12)
PSD(f)=Discrete Fourier Transform of Rxx[n] (13)
where vX is an N×1 vector of {vx,i's} and vx,i is the value of the signal X at state si. For discrete states whose probabilities are represented with point masses, the equations (11) and (12) still remain valid except that σG is set to zero.
Once a set of discrete points to cover the continuous state space is determined, the next step is to determine which state points should be included in the Markov chain model. As discussed earlier, including all the points is frequently infeasible as the number increases exponentially with the dimension of the state space. To limit the number of state points to a manageable number, techniques disclosed herein include eliminating transient states and limiting the set of state points to recurrent states, i.e., the states with positive stationary probabilities. A state is called recurrent if once the system visits that state, there is a non-zero probability that it will visit the state again in the future.
The algorithm incrementally updates the list of reachable states as well as the transition probability matrix T whenever it encounters a new reachable state. The algorithm terminates when no more reachable states are found and the transition probabilities for all the known states are computed.
Using the state exploration algorithm of
Although all the reachable states found by the state exploration algorithm of
The state exploration algorithm of
This so-called probability leakage can be computed by solving an intermediate Markov chain with all the transition probabilities originating from the unevaluated states and arriving at the evaluated states set to 1/Ne, where Ne is the number of the currently evaluated states. In other words, the probability flux that leaves the evaluated set immediately returns to the evaluated set uniformly. It can be shown that the stationary probability πi associated with an unevaluated state si corresponds to the probability leakage from the evaluated states via the state si:
An unevaluated state with a large probability leakage is likely to have significant contribution by itself or lead to other unvisited states that have large contributions. The computational cost of repeatedly solving the intermediate Markov chain can be kept low by iteratively refining the solution found in the previous step. Using the power method, the solution π is refined by the following iteration:
The iteration is a sparse matrix multiplication and converges to a solution within 0.1% in less than 10 iterations. These intermediate solutions need not be accurate as they are only to evaluate the termination criteria and to select the next state for evaluation.
A probability leakage identifying the probability of transitioning from any state in the set of evaluated states to any state in the set of unevaluated states can be calculated as discussed above (block 470). If the probability leakage is below a threshold value, then the algorithm can end (block 480, “yes” path). If the probability is greater than a threshold value (block 480, “no” path), then a specific unevaluated state with a high probability leakage is chosen as the next starting unevaluated state (block 490), and the algorithm returns to block 430.
Stochastic AC (SAC) analysis measures the steady-state, sinusoidal perturbations in the stationary distribution π in response to a small-signal, sinusoidal input u. As the AC and PAC analyses do for time-invariant and PTV circuits, respectively, the SAC analysis provides the frequency-domain transfer function of a stochastic mixed-signal system linearized at its steady states.
To simulate the SAC transfer function, a perturbation matrix ΔT is first considered, whose elements {ΔTij}'s describe the changes in the transition probabilities due to a change in u:
ΔT
ij
=∂T
ij
/∂u (17)
The adjoint linear system can be derived by substituting T with T+ΔT·δu and p[n] with π+δπ[n] in the Markov chain model (2):
π+δπ[n+1]=(T+ΔT·δu)·(π+δπ[n])≅T·π+T·δπ[n]+ΔT·πδu (18)
Since π=T·π, a linear, first-order ODE that governs the time progression of the perturbation in the probability vector δπ can be obtained as follows:
δπ[n+1]=T·δπ[n]+ΔT·πδu (19)
The steady-state sinusoidal response can be computed by solving this adjoint linear ODE via phasor analysis. The phasor analysis starts by substituting the input and output variables in the ODE with their respective phasor expressions:
δu[n]=U·exp(jnωTs) (20)
δπ[n]=P·exp(jnωTs) (21)
where U is a complex scalar, P is a N×1 complex vector, and Ts is the sampling period of the system. Substituting these expressions in (19) yields:
P·exp(j(n+1)ωTs)=T·P·exp(jnωTs)+ΔT·π·U·exp(jnωTs) (22)
(exp(jωTs)·I−T)·P=ΔT·π·U (23)
Therefore, the SAC response P can be obtained by solving (23).
From the SAC response phasor P, the frequency-domain transfer function for various statistical parameters of the system can be computed using the equations similar to (10)-(13). For example, the transfer function from the input u to the mean value of the signal X, E[X], can be computed by:
H
X(jω)=E[X(jω)]/U(jω)=vXT·P(ω) (24)
a depicts an example of a digitally-controlled PLL with a binary phase detector (PD), and
First, the stochastic steady-state (SSS) analysis is performed in various noise settings. The results are summarized in Table I and the jitter histograms are shown in
Next, the stochastic AC (SAC) analysis is performed to measure the jitter transfer function of the PLL. The results are plotted in
a shows the schematic of a first-order low-pass ΔΣ ADC with 4-level quantizer.
The SSS and SAC analyses are performed for various levels of dither noise and the simulated quantization noise PSD and noise transfer function (NTF) are plotted in
According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
For example,
Computer system 1100 also includes a main memory 1106, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 1102 for storing information and instructions to be executed by processor 1104. Main memory 1106 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1104. Such instructions, when stored in storage media accessible to processor 1104, render computer system 1100 into a special-purpose machine that is customized to perform the operations specified in the instructions.
Computer system 1100 further includes a read only memory (ROM) 1108 or other static storage device coupled to bus 1102 for storing static information and instructions for processor 1104. A storage device 1110, such as a magnetic disk or optical disk, is provided and coupled to bus 1102 for storing information and instructions.
Computer system 1100 may be coupled via bus 1102 to a display 1112, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 1114, including alphanumeric and other keys, is coupled to bus 1102 for communicating information and command selections to processor 1104. Another type of user input device is cursor control 1116, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1104 and for controlling cursor movement on display 1112. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
Computer system 1100 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 1100 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 1100 in response to processor 1104 executing one or more sequences of one or more instructions contained in main memory 1106. Such instructions may be read into main memory 1106 from another storage medium, such as storage device 1110. Execution of the sequences of instructions contained in main memory 1106 causes processor 1104 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The term “storage media” as used herein refers to any media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1110. Volatile media includes dynamic memory, such as main memory 1106. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1102. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 1104 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 1100 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 1102. Bus 1102 carries the data to main memory 1106, from which processor 1104 retrieves and executes the instructions. The instructions received by main memory 1106 may optionally be stored on storage device 1110 either before or after execution by processor 1104.
Computer system 1100 also includes a communication interface 1118 coupled to bus 1102. Communication interface 1118 provides a two-way data communication coupling to a network link 1120 that is connected to a local network 1122. For example, communication interface 1118 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 1118 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1118 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 1120 typically provides data communication through one or more networks to other data devices. For example, network link 1120 may provide a connection through local network 1122 to a host computer 1124 or to data equipment operated by an Internet Service Provider (ISP) 1126. ISP 1126 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 1128. Local network 1122 and Internet 1128 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1120 and through communication interface 1118, which carry the digital data to and from computer system 1100, are example forms of transmission media.
Computer system 1100 can send messages and receive data, including program code, through the network(s), network link 1120 and communication interface 1118. In the Internet example, a server 1130 might transmit a requested code for an application program through Internet 1128, ISP 1126, local network 1122 and communication interface 1118.
The received code may be executed by processor 1104 as it is received, and/or stored in storage device 1110, or other non-volatile storage for later execution.
In the foregoing specification, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject matter being discussed. It will be apparent, however, that aspects of the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the disclosure. Furthermore, the approaches described in background section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in the background section qualify as prior art merely by virtue of their inclusion in that section.
In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
This application claims benefit of Provisional Application 61/080,919, filed Jul. 15, 2008, the entire contents of which is hereby incorporated by reference as if fully set forth herein, under 35 U.S.C. §119(e).
Number | Date | Country | |
---|---|---|---|
61080919 | Jul 2008 | US |