Method for translation of analog circuit netlist to a digital model and elimination of zero delay loops within the digital model
An analog circuit netlist translation system is disclosed. The analog circuit netlist translation system comprises a model translation module configured to receive an analog circuit netlist; and transform the analog circuit netlist into a digital model. In some embodiments, the digital model comprises a set of zero-delay loops. The analog circuit netlist translation system further comprises a translation methodology module configured to determine a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model. In some embodiments, the set of closed loop values are determined by the translation methodology module in a single timeslot.
Latest Infineon Technologies AG Patents:
- Devices and methods for authentication
- Detection, correction, and compensation of coupling effects of microelectromechanical system (MEMS) axes of a two-dimensional scanning structure
- Magnetic angle sensor system with stray field compensation
- End-of line phase calibration of radar devices
- Mesa contact for MOS controlled power semiconductor device and method of producing a power semiconductor device
The present disclosure relates to translation of analog circuit netlists, and in particular, to a system and method for translation of an analog circuit netlist into a digital model and eliminating zero-delay loops within the digital model.
BACKGROUNDSilicon chip technology powers many of today's innovations and newest products. Rapid technology advancement fuels ever-increasing chip complexity, which in turn enables the latest round of amazing products. Expectations for these chips grow at an equal rate, despite the additional complexity. For example, consumers do not expect the chips that monitor safety processes in our cars to fail during the normal life of the vehicle. Thus, it has become a major engineering feat to design these silicon chips correctly. Functional verification ensures that the design performs the tasks as intended by the overall system architecture. Functional verification is the process of demonstrating the functional correctness of a design with respect to the design specifications. Functional verification is a very important aspect in integrated circuit (IC) design cycle. It is imperative that the design is functionally verified and any potential bug is eliminated at an early stage.
Some examples of circuits, apparatuses and/or methods will be described in the following by way of example only. In this context, reference will be made to the accompanying Figures.
In one embodiment of the disclosure, an analog circuit netlist translation system is disclosed. The analog circuit netlist translation system comprises a model translation module configured to receive an analog circuit netlist; and transform the analog circuit netlist into a digital model. In some embodiments, the digital model comprises a set of zero-delay loops. The analog circuit netlist translation system further comprises a translation methodology module configured to determine a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model. In some embodiments, the set of closed loop values are determined by the translation methodology module in a single timeslot.
In one embodiment of the disclosure, at least one computer-readable storage medium comprising a set of instructions to be executed on an analog circuit netlist translation system is disclosed. The instructions, in response to being executed on the analog circuit netlist translation system, cause the analog circuit netlist translation system to perform operations comprising receiving an analog circuit netlist and transforming the analog circuit netlist into a digital model. In some embodiments, the digital model comprises a set of zero-delay loops. The operations further comprise determining a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model. In some embodiments, the set of closed loop values are determined in a single timeslot.
In one embodiment of the disclosure, a method for an analog circuit netlist translation system is disclosed. The method comprises receiving an analog circuit netlist model using a model translation module and transforming the analog circuit netlist into a digital model using the model translation module. In some embodiments, the digital model comprises a set of zero-delay loops. The method further comprises determining a set of closed loop values respectively associated with the set of zero-delay loops using a translation methodology module, in order to eliminate the set of zero-delay loops within the digital model. In some embodiments, the set of closed loop values are determined by the translation methodology module in a single timeslot.
The present disclosure will now be described with reference to the attached drawing figures, wherein like reference numerals are used to refer to like elements throughout, and wherein the illustrated structures and devices are not necessarily drawn to scale. As utilized herein, terms “component,” “system,” “interface,” “circuit”, “module” and the like are intended to refer to a computer-related entity, hardware, software (e.g., in execution), and/or firmware. For example, a component can be a processor (e.g., a microprocessor, a controller, or other processing device), a process running on a processor, a controller, an object, an executable, a program, a storage device, a computer, a tablet PC and/or a user equipment (e.g., mobile phone, etc.) with a processing device. By way of illustration, an application running on a server and the server can also be a component. One or more components can reside within a process, and a component can be localized on one computer and/or distributed between two or more computers. A set of elements or a set of other components can be described herein, in which the term “set” can be interpreted as “one or more.”
Further, these components can execute from various computer readable storage media having various data structures stored thereon such as with a module, for example. The components can communicate via local and/or remote processes such as in accordance with a signal having one or more data packets (e.g., data from one component interacting with another component in a local system, distributed system, and/or across a network, such as, the Internet, a local area network, a wide area network, or similar network with other systems via the signal).
As another example, a component can be an apparatus with specific functionality provided by mechanical parts operated by electric or electronic circuitry, in which the electric or electronic circuitry can be operated by a software application or a firmware application executed by one or more processors. The one or more processors can be internal or external to the apparatus and can execute at least a part of the software or firmware application. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts; the electronic components can include one or more processors therein to execute software and/or firmware that confer(s), at least in part, the functionality of the electronic components.
Use of the word exemplary is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or”. That is, unless specified otherwise, or clear from context, “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then “X employs A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Furthermore, to the event that the terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in either the detailed description and the claims, such terms are intended to be inclusive in a manner similar to the term “comprising.”
The following detailed description refers to the accompanying drawings. The same reference numbers may be used in different drawings to identify the same or similar elements. In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular structures, architectures, interfaces, techniques, etc. in order to provide a thorough understanding of the various aspects of various embodiments. However, it will be apparent to those skilled in the art having the benefit of the present disclosure that the various aspects of the various embodiments may be practiced in other examples that depart from these specific details. In certain instances, descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the various embodiments with unnecessary detail.
As indicated above, functional verification is a very important aspect in integrated circuit (IC) design cycle. The industry universal solution to speed-up the design simulation at functional verification side is to use a digital engine instead of analog (SPICE) one—this means going from matrix based paradigm to event driven paradigm. In the process of functional verification of a mixed-signal product/design, therefore, it is often required develop an abstract view or a digital model of the product/design, in order to shorten the simulation time and make feasible a large number of tests. In some embodiments, the abstract view or digital model refers to a digital engine specific view/model of the design that can be simulated on a digital engine or an event driven engine. In some embodiments, the abstract view is further referred to as a behavioral model. The modeling process is not a trivial one and depends on a number of factors: complexity of the design, target of the verification, feature set required, verification domain, simulator engine involved. In some embodiments, the abstract view or the digital model is developed from a references view or an analog circuit netlist of the product/design, based on translating/transforming the analog circuit netlist into a digital domain compatible version. In some embodiments, the analog circuit netlist (also referred to as an analog model) comprises a list of the analog components in a circuit and a list of the nodes they are connected to. In some embodiments, the digital model comprises a digital equivalent of the analog circuit netlist. The abstract view or the digital model run much faster than the full analog view (or analog circuit netlist) but preserve the desired original behavior. In some embodiments, the digital model can comprise an equivalent code, sometimes referred to herein as real number modeling (RNM) code.
The model development has specific difficulty since the simulation engines are different between the references view (analog circuit netlist—analog engine specific) and abstract view (digital model/netlist—digital engine specific). The difficulty arises due to the fact that the analog description/model (or the analog circuit netlist) contains naturally zero delay loops which are automatically processed by the matrix-based engines (analog engines)—but cannot be directly processed by event driven engines (digital engines). Zero delay loop means that there are some signals that have intermingled dependency between them (forming loops with no delay on the path) within the circuit and a directional cause-effect behavior cannot be assigned between them. The analog engine (matrix based) is mathematically built to solve such situations where signals deeply depend on one another. The event driven engine, however, is fundamentally based on cause-effect flow, or unidirectionality from input to output. Therefore, when the digital model is developed based on a translation (e.g., a 1:1 translation) of the analog circuit netlist, the digital model may contain zero-delay loops, which may not be processed by digital engines, or which when processed by even-driven engines may lead to unreliable results. Therefore, it is essential to develop digital models without zero-delay loops.
Currently different techniques are used in order to translate analog circuit netlist (references view) to digital models (or abstract view) without zero-delay loops, but all requires high percentage of manual effort. For example, in one embodiment, each circuit of the analog circuit netlist is separately analyzed manually and a symbolic formula is extracted, which is put in code (e.g., the RNM code). However, this requires skilled human intervention which is prone to error and time consuming. In another embodiment, the zero-delay topology of the digital netlist (e.g., obtained by a 1:1 translation of the analog circuit netlist) is manually converted into another equivalent or almost equivalent topology that does not have zero-delay loops and continue with an automated procedure that produces the code (e.g., the RNM code). However, such a conversion is not trivial and is usually complex. In yet another embodiment, the accuracy is drastically reduced and only basic behavior of the analog circuit netlist is manually modeled. However, such models have limited usage due to basic behavior. Further, all the above methods are done by someone with digital language knowledge and usually is not the original analog circuit designer. In order to overcome the above disadvantages, disclosed herein is a system and a method to develop an event-driven model (and/or a corresponding RNM code) based on an automatic translation of an analog piecewise linear (PWL) circuit or analog circuit netlist, further details of which are given in embodiments below. In some embodiments, the event-driven model comprises a digital engine specific model or digital model that does not include zero-delay loops.
Upon receiving the analog circuit netlist, the model translation module 102 is configured to transform the analog circuit netlist to a digital model (or digital netlist). In some embodiments, the analog circuit netlist is transformed into the digital model (or digital netlist) based on replacing analog components in the analog circuit netlist with their equivalent digital domain components, and maintaining digital domain connections between the digital domain components similar to the analog connections in the analog circuit netlist (e.g., a 1:1 translation of analog components to digital domain components). In some embodiments, the digital domain connections refer to interconnections between digital domain components in a digital netlist. In some embodiments, the digital model comprises zero-delay loops. As explained above, zero delay loop means that there are some signals that have intermingled dependency between them (forming loops with no delay on the path) within the circuit and a directional cause-effect behavior cannot be assigned between those signals.
In order to eliminate the zero-delay loop(s), in some embodiments, closed loop (CL) value(s) associated with the zero-delay loop(s) is to be determined. In some embodiments, the translation methodology module 104 is configured to determine the closed loop (CL) value(s) for the zero-delay loop (s) associated with digital models, further details of which are given below. In particular, when the digital model comprises a set of zero-delay loops (e.g., as in the case of the digital model 300 in
For example, as can be seen in
In some embodiments, the input break point 222a and the output break point 222b are formed, in order to determine a CL value for the zero-delay loop 212. In some embodiments, the zero-delay loop 212 will be eliminated when an input stimulus value (voltage or current) equal to the CL value is inserted at the input break point 222a. In some embodiments, the CL value when inserted at the input break point 222a would generate a response value equal to the CL value at the output break point 222b, thereby eliminating the effect of the zero-delay loop 212. In some embodiments, a response value (voltage or current) measured at the output break point 222b will be equal to the input stimulus value inserted at the input break point 222a only when the stimulus value inserted at the input break point 222a is equal to the CL value. When there are multiple zero-delay loops (e.g., as in the digital model 300), the model translation module 102 is configured to determine a respective CL value for each zero-delay loop of the multiple zero-delay loops.
In some embodiments, the translation methodology module 104 is configured to compute the CL value for the zero-delay loop 212 based on a plurality of stimuli values 226 (e.g., voltages or currents) that are provided at the input break point 222a and a corresponding plurality of measured output values 228 (e.g., voltages or currents) determined based on measurements from the output break point 222b (in response to providing the stimuli values 226 at the input break point 222a), as can be fully appreciated from the explanations below. In some embodiments, each measured output value 228 corresponds to a difference between a response value (voltage/current) that is measured at the output break point 222b (or the loop output) in response to providing the stimulus value 226 at the input breakpoint 222a and the stimulus value 226 provided at the input break point 222a (or the loop input).
Although, the explanation above is provided with respect to the zero-delay loop 212, the model translation module 102 is configured to determine loop breaking points in a similar fashion for all the zero-delay loops in digital models comprising a set of zero-delay loops (e.g., the digital model 300 in
In order to derive a relation for computing the CL value, in some embodiments, the zero-loop behavior for a model with a single zero-delay loop is described using a first order equation with two unknown values α and β, as given below:
Measout=α·stim+β (1)
Where stim is the stimulus value (e.g., the stimulus value 226 in
α·CL+β=0 (2)
In order to determine the values of α and β, in the case of a single zero-delay loop, two values of stimuli and measured output values are required. Therefore, the plurality of stimuli values 226 in
M00=α·S00+β (3)
M10=α·S10+β (4)
Where M00 and M10 are measured output values (equivalent to Measout in equation (1) above) measured when stimuli S00 and S10 are applied, and α and β are two unknown parameters.
The closed loop result (CL) is calculated as:
α·CL+β=0→CL=−β/α (5)
Extracting α and β from equations (3) and (4), and considering S00 and S10 constants, the CL value for a model with a single zero-delay loop is calculated as:
CL=f(M00,M10)=M10·S00−M00·S10/(M10−M00) (6)
From above, it can be seen that, for a digital model with a single zero-delay loop, two input stimulus values S00 and S10, and two measured output values M00 and M10 are required to compute the CL value. Complexity of the Stimuli and measured output values depends on the number of zero-delay loops that a digital model contains. For a digital model comprising a set of zero-delay loops, for example, N loops (as in
In the embodiments with a set of zero-delay loops (i.e., one or more zero-delay loops), the input stimuli values comprise a plurality of stimuli sets provided to the set of zero-delay loops. In some embodiments, each stimuli set comprises a set of stimulus values provided to the input break points of the circuit paths associated with the set of zero delay loops, respectively. Further, the output measurement values comprise a respective plurality of measured output value sets determined from the set of zero delay loops in response to providing the plurality of stimuli sets to the set of zero-delay loops. In some embodiments, each measured output value set comprises a set of measured output values determined based on measurements from output break points associated with the set of zero delay loops, respectively. In some embodiments, a number of stimuli sets within the plurality of stimuli sets is equal to one greater than a number of zero-delay loops in the set of zero-delay loops associated with the digital model. Further, a number of measured output value sets within the plurality of measured output value sets is equal to one greater than the number of zero-delay loops in the set of zero-delay loops associated with the digital model. More particularly, for a general digital model with n zero-delay loops, n+1 stimuli sets and n+1 measured output value sets are required, in order to compute the closed loop (CL) values (e.g., n CL values in this case).
Considering a digital model with two loops, two CL values CL0 and CL1 needs to be computed. For a digital model with 2 zero-delay loops, the input stimulus values are denoted in matrix form as:
-
- Where j is the index of the stimulus set and i is the index of the zero-delay loop. Accordingly, S00 and S01 forms a first stimulus set, S10 and S11 forms a second stimulus set, and S20 and S21 forms a third stimulus set.
And the output measurement values are denoted in matrix form as:
-
- Where j is the index of the measured output value set and i is the index of the zero-delay loop. Accordingly, M00 and M01 forms a first measured output value set, M10 and M11 forms a second measured output value set, and M20 and M21 forms a third measured output value set. In some embodiments, each measured output value M00, M01 . . . —M21 within the matrix measlstji is similar to the measured output value Measout described with respect to equation (1).
For two loops, model behavior can be described using the equations below:
The conditions used for calculating closed loop results (CL0 and CL1) are:
α00·CL0+α01·CL1+β0=0 (10)
α10·CL0+α11·CL1+β1=0 (11)
From the above conditions, CL0 and CL1 equations depend on six parameters: α00, α01, α10, α11, β0, β1. This parameters are extracted considering S00 . . . S21 stimuli with constant values in equation (9) created for describing model behavior.
Assuming this, CL0 and CL1 are derived as below:
CL0=f(M00,M01,M10,M11,M20,M21) (11)
CL1=f(M00,M01,M10,M11,M20,M21) (12)
More specifically,
CL0=S00·(M11·M20−M10·M21)+S10·(M00·M21−M01·M20)+S20·(M01·M10−M00·M11)/den (13)
CL1=S01·(M11·M20−M10·M21)+S11·(M00·M21−M01·M20)+S21·(M01·M10−M00·M11)/den (13)
Where
den=M11·M20−M10·M21+M00·M21−M01·M20+M01·M10−M00·M11
Using matrix determinant formula, CL0 and CL1 equations can be simplified as follows:
Where,
the above equations may be denoted as follows:
CL0=S00·|MatTerm0|−S10·|MatTerm1|+S20·|MatTerm2|/den (17)
CL1=S01·|MatTerm0|−S11·|MatTerm1|+S21·|MatTerm2|/den (18)
Where,
den=|MatTerm0|−|MatTerm1|+|MatTerm2|
In some embodiments, MatTermj is a vector of square matrices, each square matrix formed by eliminating a corresponding jth column from the measlstji matrix in equation (8).
Extending the above methodology for a generic digital model with N loops, where N is any real number greater than or equal to 1, the input stimulus values are denoted in matrix form as:
Where j is the index of the stimulus set and i is the index of the zero-delay loop. In particular, the input stimulus values stimlstji comprises a N+1 stimulus sets, set0, set1 . . . setN. Further, each of the stimulus set comprises a stimulus value corresponding to each of the N zero-delay loops.
And the output measurement values are denoted in matrix form as:
Where j is the index of the measured output value set and i is the index of the zero-delay loop. In particular, the output measurement values measlstji comprises N+1 measured output value sets, set0, set1 . . . setN. Further, each of the measured output value set comprises a measured output value corresponding to each of the N zero-delay loops. In some embodiments, each measured output value M00, M01 . . . MNN−1 within the matrix measlstji is similar to the measured output value Measout described with respect to equation (1) above.
Further, a generic equation for computing CL value for a digital model with N loops is derived (utilizing the same method explained above for two loops) as given below:
Where, i is the index of the zero-delay loop, j is the index of the set and MatTermj is a vector which contains all possible measlst square matrix N×N as follows:
Where each measlst square matrix N×N in MatTerm1 is equivalent to measlstji with the corresponding jth column eliminated. In some embodiments, the equation (21) above is further referred to as a closed loop (CL) value relation.
In deriving the set of CL values in the above embodiments (e.g., using the CL value relation in equation (21) above), each measured output value M00, M01 . . . —MNN−1 within the matrix measlstji corresponds to a difference between a response value (voltage/current) that is measured at the output break point of a zero-delay loop response to providing a stimulus value at a corresponding input breakpoint and the stimulus value provided at the input break point. However, in other embodiments, each measured output value M00, M01 . . . —MNN−1 within the matrix measlstji may be equal to the response value (voltage/current) that is measured at the output break point of a zero-delay loop in response to providing a stimulus value at the corresponding input breakpoint. In such embodiments, the set of CL values respectively associated with the set of zero-delay loops may be computed based the input stimulus values stimlstji and the output measurement values measlstji, in accordance with a predefined relation that is different from CL value relation in equation (21) above.
Referring back to
At 402, input stimuli values (e.g., stimlstji in equation (19) above) are provided by the translation methodology module 104 at the input break points of the circuit paths associated with a set of zero-delay loops of a digital model. In some embodiments, the input stimuli values comprise a plurality of stimuli sets, each stimuli set comprising a set of stimulus values provided to the input break points of the circuit paths associated with the set of zero delay loops, respectively. In some embodiments, the translation methodology module 104 is configured to provide each stimuli set of the plurality of stimuli sets sequentially to the input breakpoints associated with the set of zero-delay loops. In some embodiments, the input stimuli values are predefined and stored in a memory associated with the translation methodology module 104. In some embodiments, the input stimuli values S00, S01 . . . S0N−1 depicted in
At 404, output measurement values (e.g., measlstji in equation (20) above) are determined by the translation methodology module 104 based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values (e.g., stimlstji in equation (19) above) at the input break points of circuit paths. In some embodiments, the output measurement values comprise a respective plurality of measured output value sets determined from the set of zero delay loops in response to providing the plurality of stimuli sets to the input breakpoints. In some embodiments, each measured output value set comprises a set of measured output values determined based on measurements from output break points associated with the set of zero delay loops, respectively. In some embodiments, the translation methodology module 104 is configured to determine each measured output value set of the plurality of measured output value sets sequentially, in response to providing the corresponding stimuli set to the input breakpoints. In some embodiments, the translation methodology module 104 is configured to save/store the determined output measurement values in a memory associated with the translation methodology module 104. In some embodiments, the output measurement values M00, M01 . . . M0N−1 depicted in
At 406, a set of closed loop values is determined by the translation methodology module 104 using the input stimuli values (e.g., stimlstji in equation (19) above) and the output measurement values (e.g., measlstji in equation (20) above), in accordance with a predefined closed loop value relation (e.g., the CL value relation in equation (21) above). In some embodiments, the translation methodology module 104 is configured to determine the set of CL values associated with the digital model in a single timeslot or a single delta cycle. More specifically, the translation methodology module 104 is configured to implement the linear CL value determination algorithm 400 comprising providing the input stimuli values (at 402 above), determining the output measurement values (at 404 above) and computing the set of closed loop values (at 406 above), in the single timeslot or the single delta cycle. Delta cycles are non time-consuming timesteps used by Very High Speed Integrated Circuit Hardware Description Language (VHDL) simulators for modeling events during execution of VHDL code. They are events that happen in zero simulation time after a preceding event. Timeslot is a corresponding term defined in Verilog. However, both deltacycle and timeslot refer to actions that are executed in zero duration on the real timeline.
Referring back to
In some embodiments, the analog circuit netlist (e.g., the analog circuit netlist 202 in
Further, the translation methodology module 104 is configured to receive one or more output history signals/bits HSTo[k] that forms an output history vector signal HSTo from the one or more reactive components, respectively. In some embodiments, HSTo[k] comprises an internal state of a respective reactive component at a specific simulation time. In some embodiments, the output history vector signal HSTo comprises a concatenation of one or more output history signals/bits HSTo[k], wherein each output history signal/bit HSTo[k] is indicative of the histories/internal state of a respective reactive component at the specific simulation time. As can be seen in
In some embodiments, the reactive components within a digital model include a history input port configured to receive a corresponding input history signal/bit HSTi[k] from the translation methodology module 104. Further, the reactive components within the digital model include a history output port configured to provide a corresponding output history signal/bit HSTo[k] to the translation methodology module 104. In some embodiments, the translation methodology module 104 is configured to provide the input history vector signal HSTi to the one or more reactive components of the digital model, prior to determining the set of closed loop (CL) values associated with the digital model (or prior to the execution of the linear CL value determination algorithm 400 in
Upon determination of the set of CL values (or upon completion of the execution of the linear CL value determination algorithm 400 in
In some embodiments, a method for CL result implementation that includes the determination of the set of CL values CLi (based on the executing the linear CL value determination algorithm 400), providing the determined set of CL values CLi to the input break points of the zero-delay loops and updating the input history signal HSTi, is performed by the translation methodology module 104, within the same timeslot or delta cycle, using the internal event scheduler of Verilog or System Verilog, as illustrated in
The closed loop (CL) value is computed in the Active region 502. The signal CL contains correct value after all stimuli sets needed are inserted at loops inputs (or input break points). The signal state corresponds to the number of stimuli sets. The signal state_next is used for stopping CL calculation when CL has reached correct value (when calculation is finished, signal state_next contains the value n+1, where n is the number of loops). Each time the active region 502 is executed, a new stimuli is applied and corresponding measured value(s), measlst[0] are determined. In the NBA loop 504, first column of measlst matrix receives measured values every time when a new set of stimuli is applied (or the active region is executed) and all the other columns are shifted to the right. In the NBA region 504, the signal state is updated with the value of state_next. Every time the value of the signal state is changed, active region 502 is re-executed (a new set of stimuli is applied). If the state remains constant, the compiler step up at next time slot. Although, not shown, in some embodiments, the input history vector signal HSTi is updated based on an output history vector signal HSTo within the NBA region 504.
Referring back to
In order to account for the various operating regions for the digital model comprising non-linear components, each non-linear component within the digital model includes a region input point that is configured to receive an input region signal RGNi[k] and a region output point that is configured to provide an output region signal RGNo[k], as illustrated in
Further, the translation methodology module 104 is configured to determine whether the determined region-specific set of CL values is associated with a correct operating region (in other words, to determine whether the operating region identified by RGNi corresponds to a correct operating region) based on an output region vector signal RGNo comprising one or more output region signals/bits RGNo[k] received from the region output points of the respective one or more non-linear components, where k depicts the number of non-linear components. In some embodiments, the output region vector signal RGNo comprises a concatenation of output region signals/bits RGNo[k] associated with each of the one or more non-linear components within the digital model.
With regard to the digital model 620 in
At 706, output measurement values (e.g., measlstji in equation (20) above) are determined by the translation methodology module 104 based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values (e.g., stimlstji in equation (19) above) at the input break points of circuit paths. In some embodiments, the output measurement values comprise a respective plurality of measured output value sets determined from the set of zero delay loops in response to providing the plurality of stimuli sets to the input breakpoints. In some embodiments, each measured output value set comprises a set of measured output values determined based on measurements from output break points associated with the set of zero delay loops, respectively. In some embodiments, the translation methodology module 104 is configured to determine each measured output value set of the plurality of measured output value sets sequentially, in response to providing the corresponding stimuli set to the input breakpoints. In some embodiments, the translation methodology module 104 is configured to save/store the determined output measurement values in a memory associated with the translation methodology module 104. In some embodiments, the output measurement values M00, M01 . . . M0N−1 depicted in
At 708, a region-specific set of closed loop values is computed by the translation methodology module 104 using the input stimuli values and the output measurement values, in accordance with a predefined closed loop value relation (e.g., the CL value relation in equation (21) above). At 710, an output region vector signal RGNo (e.g., the RGNo 610 in
If No at 712, the algorithm, proceeds to 716, in order to determine another region-specific set of CL values corresponding to an updated RGNi. In particular, at 716, the input region vector signal RGNi is updated to form an updated RGNi. In some embodiments, the updated RGNi is indicative of a subsequent operating region of the digital model. In some embodiments, the subsequent operating region is chosen by the translation methodology module 104, in accordance with a predefined region search algorithm. In some embodiments, the region search algorithm use a vector near which indicates the range between current operating region and its first stage adjacent regions, and is configured to search a next operating region among the nearest ones. This consideration is made following the fact that model evolution in time is gradual so region vector will change gradual as well. If the correct operating region can't be found between adjacent ones, the region search algorithm starts from an initial region (first adjacent region) and increments depending on near vector with 1 bit until it reaches correct operating region (which means RGNi equal RGNo).
At 718, the updated RGNi is provided to the region input points of the one or more nonlinear components. Then the algorithm proceeds to repeat the actions/acts at 704, 706 and 708 to compute a subsequent region-specific set of CL values corresponding to the updated RGNi. Further, the algorithm proceeds to repeat the actions/acts at 710 and 712 to determine whether the computed subsequent region-specific set of CL values corresponds to a correct operating region. In some embodiments, the acts 718, 704, 706, 708, 710 and 712 are repeated, each time the input region vector signal RGNi is updated at 716. In other words, the acts 716, 718, 704, 706, 708, 710 and 712 are repeated until a correct operating region is determined at 712 (i.e., until RGNi becomes equal to RGNo). In some embodiments, the translation methodology module 104 is configured to determine the set of CL values associated with the digital model in a single timeslot or a single delta cycle. More specifically, the translation methodology module 104 is configured to implement the non-linear CL value determination algorithm 700 in
Referring back to
In some embodiments, the analog circuit netlist received at the model translation module 102 may comprise one or more reactive components like capacitors, inductors etc. In such embodiments, a corresponding digital model also comprises the one or more reactive components. For example, the component modules 602 and 606 of the digital model 620 includes reactive components. In such embodiments, the translation methodology module 104 is configured to provide one or more input history signals/bits HSTi[k] that forms an input history vector signal HSTi (e.g., the HSTi 612 in
Further, the translation methodology module 104 is configured to receive one or more output history signals/bits HSTo[k] that forms an output history vector signal HSTo (e.g., the HSTo 614 in
In some embodiments, the reactive components within the digital model include a history input port configured to receive a corresponding input history signal/bit HSTi[k] from the translation methodology module 104. Further, the reactive components within the digital model include a history output port configured to provide a corresponding output history signal/bit HSTo[k] to the translation methodology module 104. In some embodiments, the translation methodology module 104 is configured to provide the input history vector signal HSTi to the one or more reactive components of the digital model, prior to determining the set of closed loop (CL) values associated with the digital model (or prior to the execution of the non-linear CL value determination algorithm 700 in
Upon determination of the set of CL values (or upon completion of the execution of the non-linear CL value determination algorithm 700 in
In some embodiments, a method for CL result implementation that includes the determination of the set of CL values (based on the executing the non-linear CL value determination algorithm 700), providing the determined set of CL values to the input break points of the zero-delay loops and updating the input history signal HSTi, is performed by the translation methodology module 104, within the same timeslot or delta cycle, using the internal event scheduler of Verilog or System Verilog, as illustrated in
Initially, the method 800 starts with an initial RGNi. In some embodiments, the initial RGNi is chosen using a region search algorithm. RGN_orig corresponds to a previous correct region during the execution of the method 800 (or when the calculations associated with the method 800 are performed). In some embodiments, the previous correct region corresponds to a correct operating region (e.g., of the digital model) at the beginning of the execution of the method 800 (e.g., at the beginning of the timeslot during which the method 800 is executed). Signal mask is a vector of bits which will be applied on current correct region (RGN_orig) finds the next region RGN_next which describe circuit behavior. A region-specific set of closed loop (CL) values for the region RGNi is computed in the Active region 802 using the signal CL, using same steps as explained above with respect to
Signal near_orig contains the distances between previous correct region and adjacent regions during the execution of the method 800 (or when the calculations associated with the method 800 are performed). Also, two additional flags are needed: flag_finalAll indicates when closed loop result is successfully calculated and flag_eqRGN identifies when the current operating region (i.e., RGNi) is the correct region. Signal RGNi receives RGN_next only if current operating region is not correct and all closed loop results are calculated successfully. Every time the RGNi is updated, the active region 802 and the NBA region 804 are re-executed in order to determine a corresponding region-specific set of CL values. Signal cnt resets when all calculations (closed loop and correct region) are finished and the signal cnt increments when current operating region is not correct. When all calculations are done, RGN_orig updates with current correct region (i.e., RGNi) and near_orig will now point out to distance of adjacent regions of current correct region. All instructions used for calculating closed loop results and finding correct operating region are executed in a time slot. In some embodiments, after all the calculations are done (i.e., the CL vales are computed and the correct operating region is determined), the input history vector signal HSTi is updated based on an output history vector signal HSTo within the NBA region 804.
At 910, a set of closed loop values respectively associated with the set of zero-delay loops are determined using a translation methodology module (e.g., the translation methodology module 104 in
At 912, the determined set of closed loop values are provided to the input break points of the circuit paths associated with the respective set of zero-delay loops, thereby converting the digital model to form an event driven model. In some embodiments, the translation methodology module is configured to provide the determined set of closed loop values to the input break points of the circuit paths associated with the respective set of zero-delay loops within the same single timeslot during which the set of closed loop values are determined (or the act 910 is executed). At 914, when the analog circuit netlist (or the corresponding digital model) comprises one or more reactive components, an input history signal/bit HSTi[k] associated with each of the one or more reactive components in the digital model is updated based on an output history signal/bit HSTo[k] associated with each of the respective one or more reactive components, using the translation methodology module. In some embodiments, the input history signal/bit HSTi[k] associated with each of the one or more reactive components is updated by the translation methodology module after the set of closed loop values respectively associated with the set of zero-delay loops are determined. In some embodiments, the translation methodology module is configured to update the input history signal/bit HSTi[k] associated with each of the one or more reactive components in the digital model within the same single timeslot during which the set of closed loop values are determined (or the act 910 is executed). In some embodiments, the above method 900 may be implemented based on the execution of instructions stored in a computer-readable storage medium within the analog circuit netlist translation system.
While the methods are illustrated and described above as a series of acts or events, it will be appreciated that the illustrated ordering of such acts or events are not to be interpreted in a limiting sense. For example, some acts may occur in different orders and/or concurrently with other acts or events apart from those illustrated and/or described herein. In addition, not all illustrated acts may be required to implement one or more aspects or embodiments of the disclosure herein. Also, one or more of the acts depicted herein may be carried out in one or more separate acts and/or phases.
Examples can include subject matter such as a method, means for performing acts or blocks of the method, at least one machine-readable medium including instructions that, when performed by a machine cause the machine to perform acts of the method or of an apparatus or system for concurrent communication using multiple communication technologies according to embodiments and examples described herein.
Example 1 is an analog circuit netlist translation system, comprising a model translation module configured to receive an analog circuit netlist; and transform the analog circuit netlist into a digital model, wherein the digital model comprises a set of zero-delay loops; and a translation methodology module configured to determine a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model; wherein the set of closed loop values are determined by the translation methodology module in a single timeslot.
Example 2 is an analog circuit netlist translation system, including the subject matter of example 1, wherein the translation methodology module is configured to determine the set of closed loop values based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
Example 3 is an analog circuit netlist translation system, including the subject matter of examples 1-2, including or omitting elements, wherein the translation methodology module is further configured to provide the determined set of closed loop values to the input break points of the circuit paths associated with the respective set of zero-delay loops, thereby converting the digital model to form an event driven model.
Example 4 is an analog circuit netlist translation system, including the subject matter of examples 1-3, including or omitting elements, wherein the translation methodology module is configured to provide the determined set of closed loop values to the input break points of the circuit paths associated with the respective set of zero-delay loops within the same single timeslot during which the set of closed loop values are determined.
Example 5 is an analog circuit netlist translation system, including the subject matter of examples 1-4, including or omitting elements, wherein the input stimuli values comprises a plurality of stimuli sets provided to the set of zero-delay loops, each stimuli set of the plurality of stimuli sets comprising a set of stimulus values provided to the input break points of the circuit paths associated with the set of zero delay loops, respectively and wherein the output measurement values comprises a respective plurality of measured value sets determined from the set of zero-delay loops in response to providing the plurality of stimuli sets, each measured value set of the plurality of measured value sets comprising a set of measured output values determined based on measurements from the output break points of the circuit paths associated with the set of zero delay loops, respectively.
Example 6 is an analog circuit netlist translation system, including the subject matter of examples 1-5, including or omitting elements, wherein each measured output value within the set of measured output values comprises a difference between a response value measured at an output break point of a respective zero-delay loop in response to providing the stimulus value at a corresponding input breakpoint and the stimulus value provided at the input break point.
Example 7 is an analog circuit netlist translation system, including the subject matter of examples 1-6, including or omitting elements, wherein each stimuli set of the plurality of stimuli sets are provided sequentially to the input break points of the circuit paths associated with the set of zero delay loops and wherein each measured value set of the plurality of measured value sets are determined sequentially from the output break points of the circuit paths associated with the set of zero delay loops, in response to providing the respective stimuli set.
Example 8 is an analog circuit netlist translation system, including the subject matter of examples 1-7, including or omitting elements, wherein a number of stimuli sets within the plurality of stimuli sets is equal to one greater than a number of zero-delay loops in the set of zero-delay loops associated with the digital model.
Example 9 is an analog circuit netlist translation system, including the subject matter of examples 1-8, including or omitting elements, wherein, when the digital model comprises only linear components, the determination of the set of closed loop values by the translation methodology module comprises providing the input stimuli values at the input break points of the circuit paths associated with the set of zero-delay loops; determining the output measurement values based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values at the input break points of circuit paths; and computing the set of closed loop values using the input stimuli values and the output measurement values, in accordance with a predefined closed loop (CL) value relation.
Example 10 is an analog circuit netlist translation system, including the subject matter of examples 1-9, including or omitting elements, wherein, when the digital model comprises one or more nonlinear components, the determination of the set of closed loop values by the translation methodology module comprises determining one or more region specific sets of closed loop values corresponding to one or more operating regions of digital model, until a region specific set of closed loop values associated with a correct operating region of the one or more operating regions of the digital model is determined, wherein the set of closed loop values correspond to the region specific set of closed loop values that is associated with the correct operating region.
Example 11 is an analog circuit netlist translation system, including the subject matter of examples 1-10, including or omitting elements, wherein, in order to determine each region-specific set of closed loop values of the one or more region specific sets of closed loop values, the translation methodology module is configured to provide one or more input region signals that forms an input region vector signal to region input points of the one or more nonlinear components respectively, wherein the input region vector signal defines an operating region of the one or more operating regions of the analog circuit netlist; provide the input stimuli values at the input break points of circuit paths associated with the set of zero-delay loops; determining the output measurement values based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values at the input break points of circuit paths; and computing a region-specific set of closed loop values based on the input stimuli values and the output measurement values, in accordance with a predefined closed loop value relation.
Example 12 is an analog circuit netlist translation system, including the subject matter of examples 1-11, including or omitting elements, wherein upon determining each region-specific set of closed loop values, the translation methodology module is configured to determine a subsequent region-specific set of closed loop values of the one or more region specific sets of closed loop values when the corresponding operating region is determined to be not the correct operating region.
Example 13 is an analog circuit netlist translation system, including the subject matter of examples 1-12, including or omitting elements, wherein, when the corresponding operating region is determined to be not the correct operating region, the translation methodology module is configured to determine a subsequent operating region from a predefined set of operating regions, in order to determine the subsequent region-specific set of closed loop values.
Example 14 is an analog circuit netlist translation system, including the subject matter of examples 1-13, including or omitting elements, wherein the translation methodology module is configured to determine if the corresponding operating region is the correct operating region, based on one or more output region signals that forms an output region vector signal, received from region output points of the one or more nonlinear components respectively, after providing the corresponding determined region-specific set of closed loop values at input break points of circuit paths associated with the set of zero-delay loops.
Example 15 is an analog circuit netlist translation system, including the subject matter of examples 1-14, including or omitting elements, wherein the translation methodology module is configured to determine that the corresponding operating region is the correct operating region, when one or more region output signals are same as the one or more region input signals.
Example 16 is an analog circuit netlist translation system, including the subject matter of examples 1-15, including or omitting elements, wherein, when the digital model comprises one or more reactive components, the translation methodology module is configured to update an input history signal/bit associated with each of the one or more reactive components in the digital model based on an output history signal/bit associated with each of the respective one or more reactive components, wherein the input history signal/bit associated with each of the one or more reactive components is updated after the set of closed loop values respectively associated with the set of zero-delay loops are determined.
Example 17 is an analog circuit netlist translation system, including the subject matter of examples 1-16, including or omitting elements, wherein the translation methodology module is configured to update the input history signal/bit associated with each of the one or more reactive components in the digital model within the same single timeslot during which the set of closed loop values are determined.
Example 18 is a computer-readable storage medium comprising a set of instructions that, in response to being executed on an analog circuit netlist translation system, cause the analog circuit netlist translation system to perform operations comprising receiving an analog circuit netlist; transforming the analog circuit netlist into a digital model, wherein the digital model comprises a set of zero-delay loops; and determining a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model; wherein the set of closed loop values are determined in a single timeslot.
Example 19 is a computer-readable storage medium, including the subject matter of example 18, wherein the set of closed loop values are determined based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
Example 20 is a computer-readable storage medium, including the subject matter of examples 18-19, including or omitting elements, wherein the operations further comprise providing the determined set of closed loop values to the input break points of the circuit paths associated with the respective set of zero-delay loops, thereby converting the digital model to form an event driven model.
Example 21 is a computer-readable storage medium, including the subject matter of examples 18-20, including or omitting elements, wherein the determined set of closed loop values are provided to the input break points of the circuit paths associated with the respective set of zero-delay loops within the same single timeslot during which the set of closed loop values are determined.
Example 22 is a computer-readable storage medium, including the subject matter of examples 18-21, including or omitting elements, wherein the input stimuli values comprises a plurality of stimuli sets provided to the set of zero-delay loops, each stimuli set of the plurality of stimuli sets comprising a set of stimulus values provided to the input break points of the circuit paths associated with the set of zero delay loops, respectively and wherein the output measurement values comprises a respective plurality of measured value sets determined from the set of zero-delay loops in response to providing the plurality of stimuli sets, each measured value set of the plurality of measured value sets comprising a set of measured output values determined based on measurements from the output break points of the circuit paths associated with the set of zero delay loops, respectively.
Example 23 is a computer-readable storage medium, including the subject matter of examples 18-22, including or omitting elements, wherein each measured output value within the set of measured output values comprises a difference between a response value measured at an output break point of a respective zero-delay loop in response to providing the stimulus value at a corresponding input breakpoint and the stimulus value provided at the input break point.
Example 24 is a computer-readable storage medium, including the subject matter of examples 18-23, including or omitting elements, wherein each stimuli set of the plurality of stimuli sets are provided sequentially to the input break points of the circuit paths associated with the set of zero delay loops and wherein each measured value set of the plurality of measured value sets are determined sequentially from the output break points of the circuit paths associated with the set of zero delay loops, in response to providing the respective stimuli set.
Example 25 is a computer-readable storage medium, including the subject matter of examples 18-24, including or omitting elements, wherein a number of stimuli sets within the plurality of stimuli sets is equal to one greater than a number of zero-delay loops in the set of zero-delay loops associated with the digital model.
Example 26 is a computer-readable storage medium, including the subject matter of examples 18-25, including or omitting elements, wherein, when the digital model comprises only linear components, the determination of the set of closed loop values comprises: providing the input stimuli values at the input break points of the circuit paths associated with the set of zero-delay loops; determining the output measurement values based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values at the input break points of circuit paths; and computing the set of closed loop values using the input stimuli values and the output measurement values, in accordance with a predefined closed loop (CL) value relation.
Example 27 is a computer-readable storage medium, including the subject matter of examples 18-26, including or omitting elements, wherein, when the digital model comprises one or more nonlinear components, the determination of the set of closed loop values comprises determining one or more region specific sets of closed loop values corresponding to one or more operating regions of digital model, until a region specific set of closed loop values associated with a correct operating region of the one or more operating regions of the digital model is determined, wherein the set of closed loop values correspond to the region specific set of closed loop values that is associated with the correct operating region.
Example 28 is a computer-readable storage medium, including the subject matter of examples 18-27, including or omitting elements, wherein, when the digital model comprises one or more reactive components, the operations further comprise updating an input history signal/bit associated with each of the one or more reactive components in the digital model based on an output history signal/bit associated with each of the respective one or more reactive components, wherein the input history signal/bit associated with each of the one or more reactive components is updated after the set of closed loop values respectively associated with the set of zero-delay loops are determined.
Example 29 is a computer-readable storage medium, including the subject matter of examples 18-28, including or omitting elements, wherein the input history signal/bit associated with each of the one or more reactive components in the digital model is updated within the same single timeslot during which the set of closed loop values are determined.
Example 30 is a method for an analog circuit netlist translation system, comprising: receiving an analog circuit netlist model using a model translation module; transforming the analog circuit netlist into a digital model using the model translation module, wherein the digital model comprises a set of zero-delay loops; and determining a set of closed loop values respectively associated with the set of zero-delay loops using a translation methodology module, in order to eliminate the set of zero-delay loops within the digital model; wherein the set of closed loop values are determined by the translation methodology module in a single timeslot.
Example 31 is a method, including the subject matter of example 30, wherein the set of closed loop values are determined by the translation methodology module based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
Example 32 is a method, including the subject matter of examples 30-31, including or omitting elements, wherein the set of closed loop values are determined by the translation methodology module based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
Example 33 is a method, including the subject matter of examples 30-32, including or omitting elements, further comprising providing the determined set of closed loop values to the input break points of the circuit paths associated with the respective set of zero-delay loops, using the translation methodology module, thereby converting the digital model to form an event driven model.
Example 34 is a method, including the subject matter of examples 30-33, including or omitting elements, wherein the determined set of closed loop values are provided to the input break points of the circuit paths associated with the respective set of zero-delay loops, by the translation methodology module, within the same single timeslot during which the set of closed loop values are determined.
Example 35 is a method, including the subject matter of examples 30-34, including or omitting elements, wherein the input stimuli values comprises a plurality of stimuli sets provided to the set of zero-delay loops, each stimuli set of the plurality of stimuli sets comprising a set of stimulus values provided to the input break points of the circuit paths associated with the set of zero delay loops, respectively and wherein the output measurement values comprises a respective plurality of measured value sets determined from the set of zero-delay loops in response to providing the plurality of stimuli sets, each measured value set of the plurality of measured value sets comprising a set of measured output values determined based on measurements from the output break points of the circuit paths associated with the set of zero delay loops, respectively.
Example 36 is a method, including the subject matter of examples 30-35, including or omitting elements, wherein each measured output value within the set of measured output values comprises a difference between a response value measured at an output break point of a respective zero-delay loop in response to providing the stimulus value at a corresponding input breakpoint and the stimulus value provided at the input break point.
Example 37 is a method, including the subject matter of examples 30-36, including or omitting elements, wherein each stimuli set of the plurality of stimuli sets are provided sequentially to the input break points of the circuit paths associated with the set of zero delay loops and wherein each measured value set of the plurality of measured value sets are determined sequentially from the output break points of the circuit paths associated with the set of zero delay loops, in response to providing the respective stimuli set.
Example 38 is a method, including the subject matter of examples 30-37, including or omitting elements, wherein a number of stimuli sets within the plurality of stimuli sets is equal to one greater than a number of zero-delay loops in the set of zero-delay loops associated with the digital model.
Example 39 is a method, including the subject matter of examples 30-38, including or omitting elements, wherein, when the digital model comprises only linear components, the determination of the set of closed loop values by the translation methodology module comprises providing the input stimuli values at the input break points of the circuit paths associated with the set of zero-delay loops; determining the output measurement values based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values at the input break points of circuit paths; and computing the set of closed loop values using the input stimuli values and the output measurement values, in accordance with a predefined closed loop (CL) value relation.
Example 40 is a method, including the subject matter of examples 30-39, including or omitting elements, wherein, when the digital model comprises one or more nonlinear components, the determination of the set of closed loop values by the translation methodology module comprises determining one or more region specific sets of closed loop values corresponding to one or more operating regions of digital model, until a region specific set of closed loop values associated with a correct operating region of the one or more operating regions of the digital model is determined, wherein the set of closed loop values correspond to the region specific set of closed loop values that is associated with the correct operating region.
Example 41 is a method, including the subject matter of examples 30-40, including or omitting elements, wherein, when the digital model comprises one or more reactive components, the method further comprises updating an input history signal/bit associated with each of the one or more reactive components in the digital model based on an output history signal/bit associated with each of the respective one or more reactive components using the translation methodology module, wherein the input history signal/bit associated with each of the one or more reactive components is updated after the set of closed loop values respectively associated with the set of zero-delay loops are determined.
Example 42 is a method, including the subject matter of examples 30-41, including or omitting elements, wherein the input history signal/bit associated with each of the one or more reactive components in the digital model is updated within the same single timeslot during which the set of closed loop values are determined.
While the invention has been illustrated, and described with respect to one or more implementations, alterations and/or modifications may be made to the illustrated examples without departing from the spirit and scope of the appended claims. In particular regard to the various functions performed by the above described components or structures (assemblies, devices, circuits, systems, etc.), the terms (including a reference to a “means”) used to describe such components are intended to correspond, unless otherwise indicated, to any component or structure which performs the specified function of the described component (e.g., that is functionally equivalent), even though not structurally equivalent to the disclosed structure which performs the function in the herein illustrated exemplary implementations of the invention.
The above description of illustrated embodiments of the subject disclosure, including what is described in the Abstract, is not intended to be exhaustive or to limit the disclosed embodiments to the precise forms disclosed. While specific embodiments and examples are described herein for illustrative purposes, various modifications are possible that are considered within the scope of such embodiments and examples, as those skilled in the relevant art can recognize.
Claims
1. An analog circuit netlist translation system, comprising:
- a model translation module configured to: receive an analog circuit netlist; and transform the analog circuit netlist into a digital model, wherein the digital model comprises a set of zero-delay loops; and
- a translation methodology module configured to determine a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model;
- wherein the set of closed loop values are determined by the translation methodology module in a single timeslot.
2. The analog circuit netlist translation system of claim 1, wherein the translation methodology module is configured to determine the set of closed loop values based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
3. The analog circuit netlist translation system of claim 2, wherein the translation methodology module is further configured to provide the set of closed loop values to the input break points of the circuit paths associated with the set of zero-delay loops, respectively, thereby converting the digital model to form an event driven model.
4. The analog circuit netlist translation system of claim 3, wherein the translation methodology module is configured to provide the set of closed loop values to the input break points of the circuit paths associated with the set of zero-delay loops, respectively, within a same single timeslot during which the set of closed loop values are determined.
5. The analog circuit netlist translation system of claim 2, wherein the input stimuli values comprise a plurality of stimuli sets provided to the set of zero-delay loops, each stimuli set of the plurality of stimuli sets comprising a set of stimulus values provided to the input break points of the circuit paths associated with the set of zero-delay loops, respectively and wherein the output measurement values comprise a plurality of measured value sets respectively determined from the set of zero-delay loops in response to providing the plurality of stimuli sets, each measured value set of the plurality of measured value sets comprising a set of measured output values determined based on measurements from the output break points of the circuit paths associated with the set of zero-delay loops, respectively.
6. The analog circuit netlist translation system of claim 5, wherein each measured output value within the set of measured output values comprises a difference between a response value measured at an output break point of a respective zero-delay loop in response to providing a respective stimulus value at a corresponding input breakpoint and the respective stimulus value provided at the input break point.
7. The analog circuit netlist translation system of claim 5, wherein each stimuli set of the plurality of stimuli sets are provided sequentially to the input break points of the circuit paths associated with the set of zero-delay loops and wherein each measured value set of the plurality of measured value sets are determined sequentially from the output break points of the circuit paths associated with the set of zero-delay loops, in response to providing a respective stimuli set.
8. The analog circuit netlist translation system of claim 5, wherein a number of stimuli sets within the plurality of stimuli sets is equal to one greater than a number of zero-delay loops in the set of zero-delay loops associated with the digital model.
9. The analog circuit netlist translation system of claim 2, wherein, when the digital model comprises only linear components, the set of closed loop values are determined by the translation methodology module by:
- providing the input stimuli values at the input break points of the circuit paths associated with the set of zero-delay loops;
- determining the output measurement values based on measurements from the output break points of the circuit paths, in response to providing the input stimuli values at the input break points of the circuit paths; and
- computing the set of closed loop values using the input stimuli values and the output measurement values, in accordance with a predefined closed loop (CL) value relation.
10. The analog circuit netlist translation system of claim 2, wherein, when the digital model comprises one or more nonlinear components, the set of closed loop values are determined by the translation methodology module by determining one or more region specific sets of closed loop values corresponding to one or more operating regions of digital model, until a region specific set of closed loop values associated with a correct operating region of the one or more operating regions of the digital model is determined, wherein the set of closed loop values correspond to the region specific set of closed loop values that is associated with the correct operating region.
11. The analog circuit netlist translation system of claim 1, wherein, when the digital model comprises one or more reactive components, the translation methodology module is configured to update an input history signal/bit associated with each of the one or more reactive components in the digital model based on an output history signal/bit associated with each of the one or more reactive components, respectively, wherein the input history signal/bit associated with each of the one or more reactive components is updated after the set of closed loop values respectively associated with the set of zero-delay loops are determined.
12. The analog circuit netlist translation system of claim 11, wherein the translation methodology module is configured to update the input history signal/bit associated with each of the one or more reactive components in the digital model within a same single timeslot during which the set of closed loop values are determined.
13. At least one computer-readable storage medium comprising a set of instructions that, in response to being executed on an analog circuit netlist translation system, cause the analog circuit netlist translation system to perform operations comprising:
- receiving an analog circuit netlist;
- transforming the analog circuit netlist into a digital model, wherein the digital model comprises a set of zero-delay loops; and
- determining a set of closed loop values respectively associated with the set of zero-delay loops, in order to eliminate the set of zero-delay loops within the digital model;
- wherein the set of closed loop values are determined in a single timeslot.
14. The at least one computer-readable storage medium of claim 13, wherein the set of closed loop values are determined based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
15. The at least one computer-readable storage medium of claim 14, wherein the operations further comprise providing the set of closed loop values to the input break points of the circuit paths associated with the set of zero-delay loops, respectively, thereby converting the digital model to form an event driven model.
16. The at least one computer-readable storage medium of claim 15, wherein the set of closed loop values are provided to the input break points of the circuit paths associated with the set of zero-delay loops, respectively, within a same single timeslot during which the set of closed loop values are determined.
17. A method for an analog circuit netlist translation system, comprising:
- receiving an analog circuit netlist using a model translation module;
- transforming the analog circuit netlist into a digital model using the model translation module, wherein the digital model comprises a set of zero-delay loops; and
- determining a set of closed loop values respectively associated with the set of zero-delay loops using a translation methodology module, in order to eliminate the set of zero-delay loops within the digital model;
- wherein the set of closed loop values are determined by the translation methodology module in a single timeslot.
18. The method of claim 17, wherein the set of closed loop values are determined by the translation methodology module based on input stimuli values provided at input break points of circuit paths associated with the set of zero-delay loops and output measurement values determined based on measurements from output break points of the circuit paths, wherein the output measurement values are determined in response to providing the input stimuli values.
19. The method of claim 18, further comprising providing the set of closed loop values to the input break points of the circuit paths associated with the set of zero-delay loops, respectively, using the translation methodology module, thereby converting the digital model to form an event driven model.
20. The method of claim 19, wherein the set of closed loop values are provided to the input break points of the circuit paths associated with the set of zero-delay loops, respectively, by the translation methodology module, within a same single timeslot during which the set of closed loop values are determined.
- Middlebrook, R.D. “Measurement of Loop Gain in Feedback Systems”; Int. J Electronics, Apr. 1975, vol. 38, No. 4, pp. 485-512.
- IEEE Standards Association; IEE Std 1800-2012, “IEEE Standard for SystemVerilog—Unified Hardware Design, Specification, and Verification Language”.
- Cummings, Clifford E. et al.; “SystemVerilog Event Regions, Race Avoidance & Guidelines”; Sunburst Design; Rev. 1.2; SNUG; Boston 2006, pp. 1-42.
- Zhang, Yan et al.; “Piecewise Linear Modeling of Nonlinear devices for Formal Verification of Analog Circuits” University of Colorado, Boulder CO; Proceedings of the 12th Conference on Formal Methods in Computer-Aided Design (FMCAD); 2012; pp. 196-203.
- Wikipedia; “SPICE”; https://en.wikipedia.org/wiki/SPICE; Last Edit: Dec. 20, 2020.
- Wikipedia; “Electronic Circuit Simulation”; https://en.wikipedia.org/wiki/Electronic_circuit_simulation; Last Edit: May 27, 2020.
- Wikipedia; “Netlist”; https://en.wikipedia.org/wiki/Netlist; Last Edit: Feb. 2, 2020.
- Wikipedia; “Functional verification”; https://en.wikipedia.org/wiki/Functional_verification; Last Edit:Apr. 10, 2020.
- Semiengineering.com; “Functional Verification”; https://semiengineering.com/knowledge_centers/eda-design/verification/functional-verification/; Sep. 10, 2015, 8 pages.
- Sciencedirect.com; “Functional Verification”; https://www.sciencedirect.com/topics/computer-science/functional-verification, in Top-Down Digital VLSI Design, 2015, pp. 1-16.
Type: Grant
Filed: Dec 22, 2020
Date of Patent: May 24, 2022
Assignee: Infineon Technologies AG (Neubiberg)
Inventors: Cristian Neacsu (Buchare), Gabriela Solomon (Com. Albestii de Muscel)
Primary Examiner: Leigh M Garbowski
Application Number: 17/130,429