Various embodiments of the present invention provide systems and methods for modeling a hardware circuit.
When designing an electronic circuit, the circuit design can be modeled before fabrication to verify correct functionality, and to optimize the design. Various circuit elements are represented by blocks in a circuit model, and a test input is applied to the circuit model to determine how the circuit design responds to the test input. However, it can be difficult to correctly match a model to a hardware circuit design over the expected operating range of input values and frequencies, particularly where the possible input values span a wide range. When the circuit model does not precisely match the circuit design, the resulting hardware circuit may not produce the desired results over every possible input value, or it may not be possible to achieve the best possible optimization of the hardware circuit by modeling with imprecise or imperfectly matched circuit models. In some cases, the circuit design options may even be limited by the available modeling techniques.
Some embodiments of the present invention provide a method of modeling an electronic circuit including creating a model of the electronic circuit having at least one functional block with a linear sub-block and a non-linear sub-block, partitioning the linear sub-block into multiple partial input range linear sub-blocks, each adapted to primarily process a different range of input values, generating model parameters for each of the partial input range linear sub-blocks, simulating the electronic circuit based at least in part on the model parameters, and fabricating the electronic circuit.
The phrases “in one embodiment,” “according to one embodiment,” “in various embodiments”, “in one or more embodiments”, “in particular embodiments” and the like generally mean the particular feature, structure, or characteristic following the phrase is included in at least one embodiment of the present invention, and may be included in more than one embodiment of the present invention. Importantly, such phrases do not necessarily refer to the same embodiment. This summary provides only a general outline of some embodiments of the invention. Additional embodiments are disclosed in the following detailed description, the appended claims and the accompanying drawings.
A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals may be used throughout several drawings to refer to similar components.
Various embodiments of the present invention provide systems and methods for modeling an electronic circuit with model blocks having partitioned input ranges. In some embodiments, the circuit model includes only observable nodes in the circuit, rather than modifying the netlist of the circuit design to make corresponding output nodes observable. Although model blocks for a finite impulse response filter are depicted and described herein in example embodiments of partitioning input ranges, it is important to note that the partitioning of input ranges disclosed herein is not limited to use with any particular type of circuit element. Furthermore, the observable node modeling disclosed herein is not limited to the example circuits depicted in the embodiments of
The model of a circuit can be generated based on the netlist of the circuit design in any suitable manner. For example, functional elements of a circuit can be represented by circuit models. To generate the parameters characterizing the model blocks, an analog simulation can be performed, sweeping the inputs through a range of frequencies and/or amplitudes to yield output vectors, then calculating parameters for model blocks based on the output vectors.
Turning to
Various elements of the example analog front end circuit are represented in the circuit model 100, including a variable gain amplifier block 104, a linear equalizer 110 which is modeled by a direct current (DC) portion and a high pass filter portion, a multiplexer block 136 and a sum block 142 used in a feedback equalizer. The DC portion of the linear equalizer 110 is modeled by a linear equalizer DC block 112. The higher frequency portion of the linear equalizer 110 is modeled by a linear equalizer high pass filter block 118 and a linear equalizer gain block 126. The outputs of the DC portion and the higher frequency portion of the linear equalizer 110 are combined in a combining block 134. Again, the circuit modeling with partitioned input ranges is not limited to any particular circuit or type of circuit, and the analog front end circuit modeled by the circuit model 100 is merely a non-limiting example, as are the circuit elements included in the analog front end circuit.
In this example, each model block in the circuit model 100 is represented by a linear sub-block and a non-linear sub-block or compression curve sub-block, which model the linear and non-linear behaviors of the circuit element represented by the block. The variable gain amplifier block 104 includes a linear sub-block 106 describing the linear transfer function of the variable gain amplifier, described by poles and zeros, and a non-linear sub-block 108 describing a compression curve for the variable gain amplifier, for example characterized by a polynomial, a hyperbolic tangent function, or any other function with a nonlinear relationship between the input and the output. Similarly, the linear equalizer DC block 112 includes a linear sub-block 114 and a non-linear sub-block 116. The linear equalizer high pass filter block 118 includes a linear sub-block 120 and a non-linear sub-block 122. The linear equalizer gain block 126 includes a linear sub-block 128 and a non-linear sub-block 132. The multiplexer block 136 includes a linear sub-block 138 and a non-linear sub-block 140. Finally, the sum block 142 includes a linear sub-block 144 and a non-linear sub-block 146.
Again, in some embodiments, the parameters of each sub-block are determined based on vectors obtained by sweeping the settings or input values of circuit elements. In one example embodiment, the length of the read channel is set to 0 and one-dimensional sweeps of all variable gain amplifier settings and linear equalizer settings are swept through their possible values to generate vectors representing output values, for example setting the linear equalizer boost to 0 and sweeping the variable gain amplifier from 0 to 15, then setting the variable gain amplifier to 8 and sweeping the linear equalizer from 0 to 31 to generate 94 vectors representing the input and output of each block over a range of conditions. In some embodiments, a DC sweep with varying input amplitudes and an AC sweep using an input sinusoid of varying frequency are performed to obtain the model for the linear and non-linear portions of a model block. The number of sweeps and the values included in the sweeps are not limited to the examples herein. In some other embodiments, a random-looking data pattern is applied to the input and the vector is based on the output of the model block for that input data pattern. The model parameters are then extracted from the vectors in any suitable manner, for example using a least squares fit for the sub-blocks using all relevant vectors from the analog simulator. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of techniques for generating a circuit model and parameters for block and sub-blocks in the circuit model.
Turning now to
In the circuit model 200 of
The remainder of the circuit model 200 in this embodiment matches that of the circuit model 100 of
Again, partitioning of input ranges in circuit model blocks can be applied to any circuit model, including the types of circuit models depicted in
Turning now to
Turning now to
Both the small signal path 340 and large signal path 342 include a finite impulse response filter model 316, 326. In some embodiments, the finite impulse response filter models 316, 326 are the same type of model element but with different parameters derived from the analog simulation vectors for different ranges of input values. Thus, each of the finite impulse response filter models 316, 326 can model the linear transfer function for the same circuit element, but can be adapted more closely to input values in different ranges. In other words, the parameters of the finite impulse response filter model 316 in the small signal path 340 are obtained based on the vector elements corresponding to relatively small input values, and the parameters of the finite impulse response filter model 326 in the large signal path 342 are obtained based on the vector elements corresponding to relatively large input values. This allows the least squares fit or other algorithm to better fit the parameters of the finite impulse response filter models 316, 326 to their corresponding portions of the response curves described by the vectors.
In the embodiment of
In this embodiment, the attenuation blocks 312, 322 partition the input signal x by scaling their outputs 414, 424 based on the value of x. The attenuation block 312 in the small signal path 340 multiplies the input signal x by the quantity 1 minus the absolute value of x, outputting the product or result 314 of the multiplication. The attenuation block 322 in the large signal path 342 multiplies the input signal x by the absolute value of x, outputting the product or result 324 of the multiplication.
Output 314=x·(1−|x|) (Eq 1)
Output 324=x·(|x|) (Eq 2)
Partitioning the input signal x into multiple input ranges allows the model to apply different signal dynamics to small signal versus large signal portions of the incoming waveform. Having dual finite impulse response filter models in the partitioned model block captures much of the non-linear behavior seen in the analog simulation vectors, with the result that the compression curve sub-blocks in the model following the finite impulse response filters are closer to linear than in non-partitioned models.
Several numerical examples will be considered to illustrate the operation of the example embodiment depicted in
If the input signal x has a very small value, 0.1, the attenuation block 312 in the small signal path 340 applies Equation 1 to yield 0.1·(1−|0.1|)=0.09, which is very close to x. The attenuation block 322 in the large signal path 342 applies Equation 2 to yield 0.1·|0.1|=0.01, which is a small fraction of x. Thus, the input signal x can be considered to primarily pass through and be processed by the small signal path 340, as it is heavily attenuated in the large signal path 342. Notably, the gain of the attenuation blocks 312, 322 is adapted so that the combined output 306 adds up to 100% of the signal that would be generated from a corresponding non-partitioned model element. That is, when x=0.1, the output 314 of attenuation block 312 is 0.09 and the output 324 of attenuation block 322 is the 0.01, for a total of 0.1, the value of x. Although a portion of the input signal x will be processed by finite impulse response filter model 316 in the small signal path 340 and another portion of the input signal x will be processed by finite impulse response filter model 326 in the large signal path 342, the partitioning does not scale the overall output 306 in this embodiment.
As another example, when the input signal x has a very large value, 0.9, the attenuation block 312 in the small signal path 340 applies Equation 1 to yield 0.9·(1−|0.9|)=0.09, which is a small fraction of x. The attenuation block 322 in the large signal path 342 applies Equation 2 to yield 0.9·|0.9|=0.81, which is very close to x. Thus, the input signal x can be considered to primarily pass through and be processed by the large signal path 342, as it is heavily attenuated in the small signal path 340.
Negative values of a sinusoidal analog input signal are similarly partitioned. When the input signal x has a very large negative value, −0.9, the attenuation block 312 in the small signal path 340 applies Equation 1 to yield −0.9·(1−|−0.9|)=−0.09, which is a small fraction of x. The attenuation block 322 in the large signal path 342 applies Equation 2 to yield −0.9·|−0.9|=−0.81, which is very close to x. Thus, the input signal x can be considered to primarily pass through and be processed by the large signal path 342, as it is heavily attenuated in the small signal path 340.
In this two-path embodiment, a moderate signal having a value or amplitude (e.g., 0.5) that is halfway between the setpoints (in this case, 0 and 1) distinguishing the small and large signals will pass through both small and large signal paths 340, 342 about equally, so that the outputs of both finite impulse response filter blocks 316, 326 will contribute to the overall output roughly equally.
The attenuation blocks can be adapted to different possible input ranges rather than the 0 to 1 range for the absolute value of input signal x in the embodiment of
The partitioning can use any algorithm or technique to split the input to different paths, or to substantially split the input to different paths, and is not limited to the algorithm applied in Equations 1 and 2. Furthermore, input values can be partitioned into more than the two ranges of
Again, partitioning of input ranges in circuit models is not limited to the finite impulse response filter model block of
The partitioned input signals 414, 424 are processed by transfer function blocks 416, 426, also referred to herein as partial input range sub-blocks, which apply transfer functions with different signal dynamics to small signal versus large signal portions of the incoming waveform, yielding transfer function outputs 420, 430. The transfer functions applied in the transfer function blocks 416, 426 can be the same type of transfer function with different parameters adapted from different portions of the analog simulator vectors, and can be any type of transfer function, such as, but not limited to, a linear transfer function implemented as a finite impulse response filter, an infinite impulse response filter, a filter described by poles and zeros, etc. A combination circuit 432 combines the transfer function outputs 420, 430 to yield the model output 406.
Turning now to
Circuit modeling with partitioned input ranges enables the model to identify artifacts in hardware circuit designs that can occur when the input signal is at the edges of the normal operating range, thereby providing accurate modeling over a wide range of inputs, rather than just at the middle of the operating range as in circuit modeling without partitioned input ranges. Rather than attempting to identify parameters for the linear and non-linear model components that work across the whole operating region, the operating region is partitioned into multiple sections. A different set of parameters is selected to model the different sections of the operating range, and the resulting models are combined in a way that activates different portions of the model based on what the input signal is doing. Circuit modeling with partitioned input ranges thus provides much better matching to actual circuit behavior by applying different signal dynamics to models for different portions of the incoming waveform. Furthermore, by better matching linear models to the non-linear behavior seen in the analog simulation vectors, the compression curves modeled by non-linear model elements are closer to linear, easing the task of the non-linear model elements as well.
In conclusion, the present invention provides novel apparatuses and methods for circuit modeling with partitioned input ranges. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.