This application is directed, in general, to electronic design automation (EDA) and, more specifically, to a method of characterizing regular electronic circuits.
EDA tools, a category of computer aided design (CAD) tools, are used by electronic circuit designers to create representations of circuit configurations, including representations of cells (e.g., transistors) and the interconnects that couple them together. EDA tools allow designers to construct a circuit and simulate its performance using a computer and without requiring the costly and lengthy process of fabrication. EDA tools are indispensable for designing modern, very large-scale integrated circuits (VSLICs). For this reason, EDA tools are in wide use.
One type of EDA tool, an extraction tool, performs electric circuit extraction (or simply “extraction”), which is a translation of an IC layout back into the electrical circuit (“netlist”) it is intended to represent. Extracted circuits form the basis for characterization, in which parameterized models of the circuit are developed. Those models can then be used for various purposes, including simulation, static timing analysis (STA) and statistical timing analysis (SSTA). characterization is currently done either by characterizing an entire circuit or characterizing all of the input and output (I/O) pins of interest in the circuit. Unfortunately, characterizing complex electronic circuits using either of such techniques requires an immense number of calculations and a prohibitive amount of computer processing time and memory. Some regular circuits have proven to be too large to be characterized at all. Even assuming a particular circuit can be characterized, the resulting data (which constitutes a model of the circuit) may be too large to be stored efficiently. Further, the resulting data is rigid, rendering it unusable when a circuit of the same type, but different size, is considered.
One aspect provides a method of characterizing a regular electronic circuit. In one embodiment, the method includes: (1) characterizing fewer than all sub-circuits associated with input and output pins of the circuit to yield data regarding the sub-circuits, (2) generating a data file containing the data, the data file constituting an expandable parameterized model of the circuit.
Another aspect provides a data file constructed by the characterizing and the generating described above.
Yet another aspect provides a parameterized model and file format for containing a characterization of an electronic circuit. In one embodiment, the method includes: (1) a standard header and (2) data pertaining to characterizations of fewer than all sub-circuits associated with input and output pins of the circuit.
Still another aspect provides a method of using a parameterized model of an electronic circuit to create a model for another electronic circuit. In one embodiment, the method includes: (1) placing the parameterized model into a data file for the other circuit and (2) adding data to the data file corresponding to additional instances of sub-circuits characterized in the parameterized model and present in the other circuit.
Reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Introduced herein are various embodiments of a method for characterizing regular electronic circuits, including those that are large and complex. More particularly introduced herein are various embodiments of generating a novel parameterized model and format for storing the parameterized model in computer memory. Further introduced herein are a method for using the model to create a model for another circuit of the same type but of different dimension. In certain embodiments, fewer than all I/O pins of a cell are characterized. In certain of those embodiments, only the unique I/O pins of a cell are characterized. In various embodiments, a model resulting from the characterization is then stored in computer memory (e.g., static or dynamic random-access memory, or on magnetic, optical, or magneto-optical media) in an expandable parameterized format. In certain embodiments, the model is then expanded in whole or in part to appropriate dimensions for either the characterized pins or other, similar pins. In one embodiment, characterizing is carried out one sub-circuit at a time in a single processor or a cooperating group of processors. In an alternative embodiment, sub-circuit characterization is carried out concurrently as individual tasks in parallel processors.
In either the method taken in
In a decisional step 325, it is determined whether or not the current cell is the last sub-circuit in the circuit to be characterized. If so, the data file is closed in a step 330, and the model is complete and generated. If not, it is determined in a decisional step 335 whether or not the data file size is at least equal to a predetermined size limit. If so, the data file is closed in a step 340, but the model is incomplete and not generated. If not, it is determined in a decisional step 345 whether or not the runtime is at least equal to a predetermined time limit. If so, the data file is closed in the step 340, but the model is incomplete and not generated. If not, another sub-circuit is selected to be the current cell, and the step 315 and subsequent steps are repeated for the current cell. As the method indicates, the step 315 and subsequent steps are repeated for each sub-circuit in the circuit. Assuming the predetermined size and time limits are not exceeded, a complete data file representing the model is generated in the step 330.
Depending upon the dimensions of the circuit being characterized, the method of
In a decisional step 445, it is determined whether or not the current cell is the last sub-circuit in the circuit to be characterized. If so, the data file is closed in a step 450, and the model is complete and generated. If not, it is determined in a decisional step 455 whether or not the data file size is at least equal to a predetermined size limit. If so, the data file is closed in a step 460, but the model is incomplete and not generated. If not, it is determined in a decisional step 465 whether or not the runtime is at least equal to a predetermined time limit. If so, the data file is closed in the step 460, but the model is incomplete and not generated. If not, another smaller sub-circuit is selected to be the current cell in a step 430, and the step 435 and subsequent steps are repeated for the current cell. As the method indicates, the step 435 and subsequent steps are repeated for each sub-circuit in the circuit. Assuming the predetermined size and time limits are not exceeded, a complete data file representing the model is generated in the step 450.
As is apparent, the method of
If each sub-circuit is, for example, characterized in terms of static noise margin (SNM) and/or dynamic noise margin (DNM), data is needed for each input pin. The accuracy of that data is dependent on the size of the sub-circuit extracted, subject to the expense of run-time. In one embodiment, two levels of CCCs are extracted to optimize between accuracy and runtime. After extracting the smaller sub-circuits associated with each I/O pin, characterization is done for the smaller sub-circuits.
In the methods of
In a decisional step 655, it is determined whether or not the current cell is the last sub-circuit in the circuit to be characterized. If so, the data file is closed in a step 655, and the model is complete and generated. If not, it is determined in a decisional step 665 whether or not the data file size is at least equal to a predetermined size limit. If so, the data file is closed in a step 670, but the model is incomplete and not generated. If not, it is determined in a decisional step 675 whether or not the runtime is at least equal to a predetermined time limit. If so, the data file is closed in the step 670, but the model is incomplete and not generated. If not, another smaller sub-circuit is selected to be the current cell in a step 640, and the step 645 and subsequent steps are repeated for the current cell. As the method indicates, the step 645 and subsequent steps are repeated for each sub-circuit in the circuit. Assuming the predetermined size and time limits are not exceeded, a complete data file representing the model is generated in the step 660.
Once data is obtained for representative, unique sub-circuits and pins and included in the model, the same data can then be used for other sub-circuits and pins. Having described various embodiments by which data for only representative, unique sub-circuits and pins can be obtained and placed in an expandable model and data format, a method of employing such a model and format to characterize a circuit of different dimension will now be set forth. Accordingly,
The method begins in a step 705 in which a circuit of type T and having a given number M of sub-circuits of specified types T1, T2, . . . , TM are provided as an input. In a step 710, a standard header is placed into an empty data file, Fn, that eventually will contain the model describing one of the one or more additional circuits. In a step 715, the data file F0 is read and placed into the data file as an initial model for the circuit of type T. Then, in a step 720, a current sub-circuit type is set to T1. Next, the data file Fn containing the model is expanded for each occurrence of the current sub-circuit and corresponding pin in the circuit of type T by copying corresponding data from the data file F0.
In a decisional step 730, it is determined whether or not the current sub-circuit type is the last sub-circuit in the circuit type T. If so, the data file is closed in a step 735, and the model is complete and generated. If not, it is determined in a decisional step 740 whether or not the data file size is at least equal to a predetermined size limit. If so, the data file is closed in a step 745, but the model is incomplete and not generated. If not, another sub-circuit is selected to be the current sub-circuit in a step 750, and the step 725 and subsequent steps are repeated for the current sub-circuit. As the method indicates, the step 725 and subsequent steps are repeated for each sub-circuit in the circuit of type I. Assuming the predetermined size limit is not exceeded, a complete data file representing the model is generated in the step 735.
Similar extracted sub-circuits can not only be explored in parallel pin paths like address pins and data pins, can also be explored across the memory types belonging to the same group. For example, memory blocks can assume many different configurations, such having or not having built-in self-test (BIST) capability or having or not having asynchronous write-through. Those skilled in the pertinent art will understand that many other variations are possible. Nonetheless, in all the configurations, circuits associated with pins having the same functionality will have the same circuit structure.
As is apparent, the method of
Having described methods of generating and expanding data files, an example format of a data file will now be described. The example format is set forth in the context of a memory block. As stated above, memory blocks have regular structures for some pins, such as address and data pins. As discussed earlier, only representative (unique) pins (one of each address, D-type and Q-type pins) is characterized, and the same data is replicated for the remaining pins. To indicate this, wild characters will be used in the example format to denote the scalability of the format to any memory size, e.g., A[0:*], DI[0:*] and DO[0:*]. With this representation, only one model is sufficient to represent a memory block independent of, e.g., address and data bus widths. In one embodiment, multiple dimension arrays, such as DMA1[0:*] [0:*], are supported.
Table 1, below, illustrates an example of a data format pertaining to a TYPE of memory block called “40 nm_example.” This type of memory can have numerous different size configurations, and the different size is represented by “*” in the following model. As a result, this small format contains enough data for all legal instantiations of this TYPE of memory cells in a particular design. In one embodiment, the instance-specific model is constructed while performing other analyses, e.g., crosstalk analysis.
Those skilled in the art to which this application relates will appreciate that other and further additions, deletions, substitutions and modifications may be made to the described embodiments.