This section introduces aspects that may help facilitate a better understanding of embodiments of the invention. Accordingly, the statements of this section are to be read in this light and are not to be understood as admissions about what is prior art or what is not prior art.
The IBIS (input/output buffer information specification) standard along with its AMI (algorithmic modeling interface) extension provide a format for modeling and simulating the operations of electronic devices, such as those implemented in integrated circuits. IBIS can be used to perform two different approaches to device modeling and simulation flow: (i) statistical simulation mode when the device has a linear and time-invariant (LTI) model and (ii) time-domain or bit-by-bit simulation mode for a non-linear and/or time-variant (NLTV) device model. NLTV modeling, also known as bit-accurate modeling, is more accurate than LTI modeling, but requires more computational resources and, as a result, typically takes longer to perform, especially for low bit-error rate (BER) simulations. LTI modeling, also known as statistical modeling, simplifies math and/or computing power required to perform serial link analysis and, as a result, can be performed more quickly, but is typically less accurate than NLTV modeling.
Other aspects, features, and advantages of the invention will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which like reference numerals identify similar or identical elements.
As indicated in
According to one embodiment of the disclosure, an LTI (linear and time-invariant) model for an electronic device is generated by first simulating the step response of the device using an NLTV model. The results are then differentiated with respect to time to determine the impulse response of the device.
The impulse response is then transformed (e.g., using Fourier transform (FT)) into the frequency domain. Frequency-domain characteristics of the impulse response are then determined and used to generate the LTI model for the device. In this way, the NLTV model for a device is used to generate the LTI model for the device.
Values for the setup and hold durations Tsetup and Thold can be determined from impulse-response or pulse-response analysis performed automatically in electronic design automation (EDA) tools before running any NLTV or LTI channel simulations. In particular, the setup duration Tsetup can be determined from the time difference between the maximum impulse/pulse value and the last, preceding continuous steady-state value, while the hold duration Thold can be determined from the time difference between the maximum impulse/pulse value and the first, subsequent continuous steady state value.
Note that the duration of the window function Twindow is specifically selected to be long enough so that sufficient information will be captured for statistical analysis, while being short enough so that adaptive loops are considered static or quasi-static given the underlying model implementations.
The transition from low to high that occurs at about time=13155.5 ns can be used to simulate the step response of the device because (i) the duration of the input signal being low prior to the transition is greater than (Tsetup+Tguard
Note that a “positive” step occurs when the input signal transitions from low to high, while a “negative” step occurs when the input signal transitions from high to low. A transition from high to low can be used to simulate a negative step response of the device if (i) the duration of the input signal being high prior to the transition is greater than (Tsetup+Tguard
In step 406, the bit-accurate NLTV model is executed to perform a time-domain simulation of the device. In step 408, the window function is applied to determine whether any of the (low-to-high or high-to-low) transitions in the input waveform are suitable (in terms of Twindow) for generating time-domain, step-response simulation results corresponding to step inputs and, if so, the step-response data corresponding to those transitions is recorded. In one possible (e.g., multi-detection) implementation of method 400, the step-response simulation results for all suitable transitions are accumulated (e.g., averaged) in step 408. In other implementations, the step-response simulation results for only a subset of the suitable transitions are accumulated in step 408, where the subset might be only the first or only the last suitable transition in a so-called single-detection simulation.
Note that the results from both positive and negative step inputs can be accumulated in step 408. In one possible implementation, for example, where the modeled device has different rise and fall times, positive step-response results can be averaged together to characterize a typical positive step response, while .negative step-response results are separately averaged together to characterize a typical negative step response. In another possible implementation, for example, where the modeled device has balanced rise and fall times, the negative step-response results can be inverted (along the zero-crossing line) and averaged with the positive step-response results to characterize a single, typical step response that applies to both types of step inputs.
If step 408 determines that the input signal for the simulation does not have enough or even any suitable transitions (in terms of Twindow), then, in step 410, some appropriate adjustment is made to the simulation. One possible adjustment is to select an input signal having a different bit pattern in the hope that some of its transitions would be suitable for simulating the step response of the device. Another possible adjustment is to modify one or more of the non-adaptive parameters that define the NLTV model. For example, transmit and/or receive non-adaptive equalizers can be adjusted to offset channel inter-symbol-interference (ISI) so that the output signal of the NLTV model settles faster (having sharper transition edges). Another possible adjustment is to modify the window that defines what a suitable transition is. This can be achieved by, for example, (1) reducing the guard band duration and/or (2) reducing the TStepResponse time duration. When using TStepResponse instead of Twindow to determine which transitions are suitable, the guard band time duration is reduced to 0. TStepResponse reduced by reducing Tsetup and/or Thold. The results of a modified window simulation might not be as accurate as those for an original Twindow-based simulation; however, statistical simulation results are frequently still significantly better than pure LTI models.
After appropriately adjusting the simulation and/or the model in step 410, processing returns, e.g., to step 402, to perform another simulation run. If, for some reason, no appropriate adjustments can be made in step 410, then processing terminates.
If step 408 determines that the input signal for the simulation does have enough suitable transitions, then, in step 412, the impulse response of the device is generated by differentiating the accumulated simulation step-response results from step 408 with respect to time using, for example, the following formula:
Imp(n)=[V(n+1)−V(n)]/[T(n+1)−T(n)], (1)
where:
In step 414, statistical analysis of the device is then performed by executing the LTI model of the device to generate statistical results for the device.
In step 416, some of the statistical results generated in step 414 using the LTI model may be compared with corresponding time-domain results generated in step 406 using the NLTV model. Since simulations using the NLTV model can be performed in a reasonable amount of time for high-BER situations (e.g., 10−5 or higher), the statistical results generated using the LTI model for high-BER situations can be compared to the time-domain results generated using the NLTV model for those same high-BER simulations. If the statistical results conform satisfactorily with the time-domain results, then it can be reasonably assumed that other statistical results generated using the LTI model will also be satisfactory. Step 416 can be used to gain confidence in the accuracy of the LTI model for all different BER rates, including low-BER situations (e.g., 10−12 or lower).
The method of
Although the method of
The invention may be implemented as (analog, digital, or a hybrid of both analog and digital) circuit-based processes, including possible implementation as a single integrated circuit (such as an ASIC or an FPGA), a multi-chip module, a single card, or a multi-card circuit pack. As would be apparent to one skilled in the art, various functions of circuit elements may also be implemented as processing blocks in a software program. Such software may be employed in, for example, a digital signal processor, micro-controller, general-purpose computer, or other processor.
Also for purposes of this description, the terms “couple,” “coupling,” “coupled,” “connect,” “connecting,” or “connected” refer to any manner known in the art or later developed in which energy is allowed to be transferred between two or more elements, and the interposition of one or more additional elements is contemplated, although not required. Conversely, the terms “directly coupled,” “directly connected,” etc., imply the absence of such additional elements.
As used herein in reference to an element and a standard, the term “compatible” means that the element communicates with other elements in a manner wholly or partially specified by the standard, and would be recognized by other elements as sufficiently capable of communicating with the other elements in the manner specified by the standard. The compatible element does not need to operate internally in a manner specified by the standard.
Embodiments of the invention can be manifest in the form of methods and apparatuses for practicing those methods. Embodiments of the invention can also be manifest in the form of program code embodied in tangible media, such as magnetic recording media, optical recording media, solid state memory, floppy diskettes, CD-ROMs, hard drives, or any other non-transitory machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. Embodiments of the invention can also be manifest in the form of program code, for example, stored in a non-transitory machine-readable storage medium including being loaded into and/or executed by a machine, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. When implemented on a general-purpose processor, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits.
Any suitable processor-usable/readable or computer-usable/readable storage medium may be utilized. The storage medium may be (without limitation) an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device. A more-specific, non-exhaustive list of possible storage media include a magnetic tape, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM) or Flash memory, a portable compact disc read-only memory (CD-ROM), an optical storage device, and a magnetic storage device. Note that the storage medium could even be paper or another suitable medium upon which the program is printed, since the program can be electronically captured via, for instance, optical scanning of the printing, then compiled, interpreted, or otherwise processed in a suitable manner including but not limited to optical character recognition, if necessary, and then stored in a processor or computer memory. In the context of this disclosure, a suitable storage medium may be any medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.
The functions of the various elements shown in the figures, including any functional blocks labeled as “processors,” may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage. Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
It should be appreciated by those of ordinary skill in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about” or “approximately” preceded the value of the value or range.
It will be further understood that various changes in the details, materials, and arrangements of the parts which have been described and illustrated in order to explain the nature of this invention may be made by those skilled in the art without departing from the scope of the invention as expressed in the following claims.
The use of figure numbers and/or figure reference labels in the claims is intended to identify one or more possible embodiments of the claimed subject matter in order to facilitate the interpretation of the claims. Such use is not to be construed as necessarily limiting the scope of those claims to the embodiments shown in the corresponding figures.
It should be understood that the steps of the exemplary methods set forth herein are not necessarily required to be performed in the order described, and the order of the steps of such methods should be understood to be merely exemplary. Likewise, additional steps may be included in such methods, and certain steps may be omitted or combined, in methods consistent with various embodiments of the invention.
Although the elements in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments. The same applies to the term “implementation.”
The embodiments covered by the claims in this application are limited to embodiments that (1) are enabled by this specification and (2) correspond to statutory subject matter. Non-enabled embodiments and embodiments that correspond to non-statutory subject matter are explicitly disclaimed even if they fall within the scope of the claims.