The present invention relates to a method and system for grouping logic in an integrated circuit design to minimize number of transistors and number of unique geometry patterns.
Carnegie Mellon University has published research that describes grouping of logic into macro-regular “bricks” to allow the use of pushed design rules within the bricks. U.S. Pat. No. 7,278,118 entitled “Method and Process For Design of Integrated Circuits Using Regular Geometry Patterns to Obtain Geometrically Consistent Component Features” describes other aspects of such bricks.
While the invention in the '118 patent and other pending applications of the current assignee set forth advantageous aspects relating to the creation of such logic bricks, refinements and advances continue, and some of those are described herein.
The present invention relates to a method and system for grouping logic in an integrated circuit design to minimize number of transistors and number of unique geometry patterns.
In one aspect, there is described a method of determining a logic brick that contains a non-standard complex Boolean logic function that has at least three inputs that includes determining a circuit that implements the non-standard complex Boolean logic function, the step of determining including the step of identifying transistors, associated connections and the at least three inputs to implement the circuit, the step of identifying reducing a number of the transistors to be a fewest possible that satisfy predetermined logic, layout and electrical constraints; and determining a layout for the circuit to specify the logic brick.
In a preferred embodiment the step of determining the circuit can have a number of different aspects, examples of which include:
restricting the circuit to a stack depth of no more than 3;
using a minimal negative gate algorithm;
using a recursive decomposition to select an output function for the circuit wherein a stack height of the output function is no more than 2;
using a recursive decomposition and a template matching, wherein the template matching requires that the circuit is substantially obtained from design templates used in the template matching, and wherein each of the design templates are restricted to having a stack depth of no more than 3.
In another aspect, the invention reduces a number of the transistors to be the fewest possible.
These and other aspects and features of the present invention will become apparent to those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures, wherein:
a)-(b) illustrate footprints of a conventional standard cell and a transistor level optimized brick according to the present invention, respectively;
a)-(b) illustrate two examples of circuits that have a different stack depth;
a)-(b) illustrate two H-tree functions that are used as design templates according to the present invention; and
IC design with increased regularity for manufacturability can incur a penalty in terms of area and performance. It is important, therefore, to exploit this regularity with circuits and methodologies that can overcome some or all of these penalties. Exploiting the large logic functions that are grouped for macro-regularity to reduce the number of transistors required to perform one or more logic functions on the chip can provide a significant improvement in both area and performance. Improvements in IC area and performance are of great commercial value in all IC application domains.
A method and system are described that assist with obtaining this regularity, and in one aspect to group logic terms at a higher level of abstraction than that found using standard cells to implement the logic functions using a reduced number of transistors, and to reduce the total number of unique geometry patterns needed to create the integrated circuit implementation. This description is considered in conjunction with U.S. application Ser. No. 11/619,587 filed Jan. 3, 2007 entitled “Method for the Definition of a Library of Application-Domain-Specific Logic Cells” and U.S. Pat. No. 7,278,118 entitled “Method and Process For Design of Integrated Circuits Using Regular Geometry Patterns to Obtain Geometrically Consistent Component Features,” filed Nov. 5, 2005, which applications are hereby expressly incorporated by reference herein. By geometry patterns is meant an arrangement of patterns for the masks which define a physical implementation of a transistors, logic cells, logic bricks, etc. The area covered by such patterns can be of any size or shape, but for this invention we are referring to the set of patterns which would lie within a circle that defines the range of influence between patterns for lithography (e.g. impacts OPC and RETs) or electrical interaction (e.g. stress).
Referring to
Specifically with reference to the flowchart in
With this overall description, further particulars will now be provided.
Brick Discovery is the process of finding a limited set of Boolean functions, some of which are non-standard complex Boolean logic functions that most efficiently implement a design. Integral to this process is the evaluation of a single Boolean function in terms of transistor level efficiency. Transistor Level Synthesis (henceforth referred to as TranSynth), is the process by which a Logical Brick, which is the logic and/or physical representation of a non-standard complex Boolean logic function, is transformed into a set of transistor-based logical gates, called a Transistor Level Brick (henceforth referred to as a TL Brick). The transformation process includes gate level synthesis, netlist generation and transistor sizing. Once transformed, these TL Bricks can be evaluated in terms of performance, area and power. Without these runtime evaluations during Brick Discovery, the chosen Logical Bricks could result in a design implementation that is significantly inferior to that which is otherwise possible.
By grouping the logic functions into bricks that are based on functions with a large number of literals (input logic variables), the TL brick implementation of those functions can be implemented in terms of a number of transistors that is often less than, and guaranteed to be no worse than equal to, that which is required for implementing the same function with a number of logic primitives, such as standard cells. As an example, consider the logic function A(DE+FG)+BC, which is an example of a 7-term logic brick. Implementation via standard cells is extremely efficient for this function in terms of two AO22's (standard cell AND-ORs). The transistor-level schematic for this standard-cell-based implementation is shown in
In contrast, consider the transistor-level optimized implementation of a single TL brick for the same function, A(DE+FG)+BC, as shown in schematic form in
This optimization of logic functions, such as logical or TL bricks, can be performed for any size logic function, but in this invention it is intended for complex functions in the range of 3-12 inputs. Moreover, this invention as described in
By reducing the number of transistors, the complete logic design can be implemented more efficiently in terms of power, area and performance (including timing). Furthermore, by grouping the logic into TL bricks that are larger than typical standard cells, further improvement in area and performance is obtained by optimizing the physical implementation (layout) of the transistor-level optimized functions. This invention further considers the co-optimization of the layout and transistor level topology and sizing to achieve the best possible area, power and performance. This optimization could include the minimization or reduction in the total number of geometry patterns required to implement the design.
One such layout optimization is to merge diffusions between neighboring transistors to avoid the need to make a connection between them. For example, the physical implementation of A(DE+FG)+BC based on standard cells (
By following this design flow, one can reduce the total number of transistors required to implement a system-level or design-level logic description, and further reduce the total number of unique geometry patterns that are required for that implementation. Further specifics regarding this design flow will now be described.
The two fundamental metrics used within TranSynth are Area and Stage Depth. In a regular Fabric such as that shown in
The other fundamental metric-Stack Depth, is measured as the maximum number of gates traversed from inputs to output. With all other things being equal, stage depth shortening will result in a faster design because of a reduction in intermediate node capacitance.
The transistor level synthesis process will generate the implementation with the fewest number of transistors that are required to implement the logic function and satisfy a number of electrical, layout and logical constraints. Sometimes these constraints create conflicting goals for TranSynth.
Stack height, which defines the number of series connected NFET or PFET devices in a logic cell or brick, has a logical impact, but also is constrained in terms of electrical performance requirements. High stack heights create large stack resistances that limit leakage power, but also limit the performance. The stack height constraint is carefully chosen to balance logic efficiency, leakage power, and timing. For example, in modern CMOS technologies, stack heights of more than 3 MOSFETs are generally not used because the switching performance will be degraded too severely. Electrical constraints also have an impact on layout and logic efficiency. For example, logic cells that have a high internal and output capacitance can be undesirable for power and delay reasons, i.e. AOI333 or OAI333, and other such cells, as are known. Such logic cells are often not used as part of the library for these reasons, even though their non-use can cause an increase in the overall block or IC layout area due to a reduction in efficiency for the mapping of the RTL design into the netlist of library elements.
Layout constraints such as cell height, cell area and limited pattern choices (based on lithography or manufacturability considerations) can have both electrical and logical impacts. Namely, there can be limitations on the choice of logic family and/or the sizes for the transistors within the cells. Patterning choices such as unidirectionality (all patterns oriented in vertical or horizontal direction only) and pitch selection (wire widths and spacings) of various layers make certain logic families area inefficient and undesirable. Transistor sizes in the final netlist are constrained not only by the patterning choices but also by the cell height. These layout constraints impact both the leakage power and logic efficiency.
Importantly, a central portion of the TranSynth methodology is to efficiently and effectively co-optimize the number of transistors subject to these constraints.
Nakamura's Minimal Gate Algorithm, shown at block 720 in
The Fms are derived by encoding binate functions in a directed graph as shown in
The Most Significant Bit (MSB) in the labels becomes the function values for Fo given only the primary inputs. The next MSB in the labels becomes the function values for the F1 function given the primary inputs and F0 as inputs to the function. This continues until the function Fn is derived from the LSBs in the labels as a function of the primary inputs and all of the previously evaluated intermediate functions.
Nakamura's algorithm only shows how to find an implementation of a function in the minimum number of logic gates. The algorithm does not address transistor count minimization or stack height restrictions—two of the goals of the TranSynth algorithm.
In order to find an implementation with the minimum number of transistors with a stack height restriction, a large solution space must be explored. There are two main causes of the large solution space—Don't Care selection and Label Assignment. Each Fn, except for n equal to 0, is an incompletely specified function. As the n index increases, so does the Don't Care solution space because proportionally more minterms of the function have values that are unspecified. Finding the right set of Don't Cares that minimizes transistor count for each gate is not trivial. The current implementation exhaustively searches the solution space. Published Boolean minimization algorithms may not give an optimal transistor count.
In the label assignment process, each directed connection has a label value that is monotonically increasing. There are sometimes many label values that will satisfy this constraint. Exhaustive search of this solution space is necessary to guarantee optimality. The current solution for design space exploration utilizes a branch and bound algorithm based on transistor count. The addition of stack height constraints makes finding any solution difficult for some functions. Without an initial solution, the branch and bound algorithm must explore the entire design space. Some functions are not implementable in the minimum number of gates given a stack height constraint which results in long runtimes and no solution.
Compared to the optimized standard cell implementation, TranSynth-1 is able to reduce the number the stages from 3 to 2 without impacting the transistor count. The reduced stage depth will translate into a faster implementation.
A further refinement, and one way of decreasing the search space and resultant runtime found in TranSynth-1, is to recursively decompose the Boolean functions (into sub-functions driving an output function) through algebraic tree decomposition before applying the TransSynth-1 methodology, as shown in
In tree decomposition, only logical gates with a tree structure like that shown in
Transistor stack height restrictions help speedup the decomposition by limiting the number of possible logic gates at each stage of the recursion. With a stack height of 2, there are only 7 possible gates as the final output gate—INV, NAND2, NOR2, AOI21, AOI22, OAI21, OAI22. With a stack height of 3, the present inventors have identified that there are only 67 possible logical gates in tree decomposition. With a stack height of 4 there is still a limited number of functions, and not all of those necessarily are needed—just as not all of the 69 functions are needed to implement TL bricks if the stack height is limited to 3. Limiting the stack height is a performance constraint, and by limiting the stack height this limits the total number of possible combinations. By having a reduced set of combination, this allows characterization of those combinations, and can then lead to simplification of the overall design of integrated circuits, since with the limited number of functions the more limited number of combinations makes it easier to characterize them—particularly since from these useful Boolean functions an almost limitless set of TL bricks can be built. There is some loss of optimality in the search space reduction of TranSynth-2, but there is also a significant reduction in runtime when utilizing TranSynth-2 compared to TranSynth-1 for certain complex functions. Embedded XOR decompositions are only found because they are explicitly searched for. Other similar structures are not found. It is noted that Transynth-1 can search for the best solution. Transynth-2 simplifies the search space a bit by first decomposing a large function. This will improve the search efficiency, but it can result in a solution that is inferior to that from Transynth-1.
The TranSynth-2 flow starting from a Boolean logic function is shown in
If an XOR decomposition does not naturally exist for the function, as determined by step 1410, then a gate is selected in step 1450 that satisfies all of the chosen constraints such as stack height, electrical constraints or layout constraints. The tree decomposition algorithm can explicitly limit the stack height. Other electrical or layout constraints can be met by either disallowing or penalizing inferior gates explicitly. The one or more sub-functions that are the inputs to the chosen gate can then be synthesized as shown in step 1460 using TranSynth-1 or recursively decomposed using TranSynth-2, to obtain saved results. Once the sub-functions are synthesized, the circuit can be evaluated based on a set of metrics and the metric values and circuit stored. Once all possible candidate gates have been considered as the top level gate that satisfies the chosen constraints, as shown at step 1470, the best implementation is selected as shown in step 1480 as that with the best overall quality measure (e.g. minimum number of transistors or smallest area), depending on the determined quality measure that is input to the transyth algorithm.
One last modification to the TranSynth methodology is the use of design templates to increase the accuracy for timing and area modeling. Design Templates are precharacterized logic gates that can be used as building blocks for a TL Brick. In a stack height of 3, there are 69 useful Boolean functions that can be built, and from these useful Boolean functions an almost limitless set of TL bricks can be built. Because the templates are limited in number, each of these functions can be implemented in silicon and well-characterized in terms of timing and area.
67 of the 69 functions are most efficiently implemented utilizing a traditional static CMOS tree structure such as that found in the examples of
To this set the following non-tree functions are added that also satisfy the 3-stack limit. We count this H-tree function, shown in
The other two functions are most efficiently implemented utilizing the H-Tree structures shown in
The number of templates that are considered in TranSynth-3 can be reduced further when factors other than stack height are considered such as layout efficiency and electrical properties. The logical gate implemented in
The optimal TranSynth implementation for a given function is dependant on the stack height for a given technology. If the allowable stack height is greater than 3, TranSyn-1 can be sometimes more efficient because of the algebraic decomposition solution space explosion with TranSyn-2 and the exponential increase in templates of TranSyn-3
Although the present invention has been particularly described with reference to embodiments thereof, it should be readily apparent to those of ordinary skill in the art that various changes, modifications and substitutes are intended within the form and details thereof, without departing from the spirit and scope of the invention. Accordingly, it will be appreciated that in numerous instances some features of the invention will be employed without a corresponding use of other features. Further, those skilled in the art will understand that variations can be made in the number and arrangement of components illustrated in the above figures. It is intended that the scope of the appended claims include such changes and modifications.
The present invention is a continuation of U.S. application Ser. No. 11/969,214 filed Jan. 3, 2008 entitled “A Method and System for Grouping Logic in an Integrated Circuit Design to Minimize Number of Transistors and Number of Unique Geometry Patterns” which is a continuation-in-part of U.S. application Ser. No. 11/619,587 filed Jan. 3, 2007 entitled “Method for the Definition of a Library of Application-Domain-Specific Logic Cells” which claims priority to U.S. Provisional Application No. 60/883,332 filed Jan. 3, 2007 entitled “A Method and System For Grouping Logic in an Integrated Circuit Design to Minimize Number of Transistors and Number of Unique Geometry Patterns,” all of which are incorporated by reference herein in their entirety.
Number | Date | Country | |
---|---|---|---|
60883332 | Jan 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11969214 | Jan 2008 | US |
Child | 12938226 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11619587 | Jan 2007 | US |
Child | 11969214 | US |