An electronic computer aided design (“E-CAD”) package is utilized to construct a Very Large Scale Integration (“VLSI”) circuit design. The VLSI circuit design consists of a netlist that identifies electronic design elements (e.g., capacitors, transistors, resistors, etc.) and their interconnectivity (e.g., signal nets) within the VLSI circuit design. The VLSI circuit design is constructed from hierarchical design blocks (also known as cells) that provide specific functionality to the VLSI circuit design. Such design blocks may be re-used within the VLSI circuit design, or within other circuit designs. Designs blocks may be constructed from electronic design elements, nets and other design blocks, and may be re-used one or more times. Each use of a design block is called an “instance.”
A design engineer uses the E-CAD tool to analyze the VLSI circuit design during development. The E-CAD tool typically traces through instances of blocks used in the VLSI circuit design to sum certain information (e.g., FET size or wire width) and to apply instantiation-specific characteristics (e.g., switching frequencies and scaling factors) to the summation. During this analysis, the E-CAD tool therefore reprocesses and re-sums the information for each re-used block many times, each instance of the re-used block being individually processed. If the VLSI circuit design has billions of design elements, the analysis can take hours or even days of processing time to complete, resulting in lost productivity. Continuous lost productivity due to lengthy engineering development slows technology advancement and can result in significant costs, as well as lost business.
In one embodiment, a method performs circuit analysis on a circuit design. Instantiation paths for one or more design blocks of the circuit design are determined. Select information is recursively accumulated for each of the design blocks. Instantiation characteristics are applied to the accumulated information for each instance of the design blocks based upon instantiation hierarchy of the instance within the circuit design.
In another embodiment, a system performs circuit analysis on a circuit design. One or more design blocks of the circuit design are selected through a user interface. An analysis tool determines instantiation paths for the design blocks, accumulates select information for each instance of each of the design blocks, and applies instantiation characteristics of each instance to the accumulated information. A memory stores the instantiation paths, the accumulated information, and results based upon the applied instantiation characteristics.
In another embodiment, a system performs circuit analysis on a circuit design, including: means for determining instantiation paths for one or more design blocks of the circuit design; means for recursively accumulating select information for each of the design blocks; and means for applying instantiation characteristics to the accumulated information for each instance of the design blocks based upon instantiation hierarchy of the instance within the circuit design.
In another embodiment, a software product has instructions, stored on computer-readable media, wherein the instructions, when executed by a computer, perform steps for performing circuit analysis on a circuit design, including:
A signal net is a single electrical path in a circuit design that has the same electrical characteristics at all of its points. Any collection of wires that carries the same signal between design elements is a signal net. If the design elements allow the signal to pass through unaltered (as in the case of a terminal), then the signal net continues on subsequently connected wires. If, however, the design element modifies the signal (as in the case of a transistor or logic gate), then the signal net terminates at that design element and a signal new net begins on the other side. Connectivity in a circuit design is typically specified using a netlist, which indicates the specific nets that interconnect the various design elements.
A signal net may be divided into signal net ‘pieces’, each of which is part of a Highest Level Signal Name (“HLSN”). A HLSN is the unique signal name that identifies a collection of signal nets or ‘hierarchical signal net pieces’, which are the small pieces of intermediate wire (signal nets) in each hierarchical design block of a circuit design.
A significant characteristic of VLSI and other types of circuit design is a reliance on hierarchical description. A primary reason for using hierarchical description is to hide the vast amount of detail in a design. By reducing the distracting detail to a single object that is lower in the hierarchy, one can greatly simplify many E-CAD operations. For example, simulation, verification, design-rule checking, and layout constraints can all benefit from hierarchical representation, which makes them more computationally tractable. Since many circuit designs are too complicated to be easily considered in their totality, a complete design is often viewed as a collection of design element aggregates that are further divided into sub-aggregates in a recursive and hierarchical manner. In VLSI circuit design, these aggregates are commonly referred to as design blocks (or cells). The use of a design block at a given level of hierarchy is called an ‘instance’. Each design block has one or more ‘ports’, each of which provides a connection point between a signal net within the design block and a signal net external to the design block.
Processor 106 loads E-CAD tool 114, including an analysis tool 120, from storage unit 108 into computer memory 104 such that E-CAD tool 114 is executable by processor 106. Once loaded into computer memory 104, a design engineer operates E-CAD tool 114 to process and analyze circuit design 116, optionally storing results in database 122 as analysis results 124.
By way of example, user interface 110 connects to a terminal 112 (e.g., a keyboard), external to computer 102. Through terminal 112 and user interface 110, the design engineer interacts with E-CAD tool 114 and analysis tool 120. In one example, the design engineer instructs E-CAD tool 114 to analyze circuit design 116 using analysis tool 120, such as to perform power analysis on signal nets of circuit design 116.
An exemplary circuit design 116′ is shown and described with five design blocks A-E in connection with
Accordingly, circuit design 116′ has five design blocks A, B, C, D and E, each instantiated one or more times, totaling eight instantiations A1, B1, C1, C2, D1, D2, E1 and E2. In one embodiment, analysis of circuit design 116′ is optimized by separating calculations specific to design blocks from calculations specific to instantiations. In this example, design block-specific calculations are determined for the five design blocks A-E, and instantiation-specific calculations are determined for the eight block instances A1, B1, C1, C2, D1, D2, E1 and E2.
The aforementioned calculations are for example performed by analysis tool 120,
Analysis tool 120 next sums select, common information of design elements and signal nets of design blocks A-E. The summed information is illustratively stored in column 4 of table 130, via data path 148, as sum A, sum B, sum C, sum D and sum E. In one example, the design engineer using system 100, selects the common information as FET width and directs analysis tool 120 to sum the FET width information for column 4 of table 130. In another example, the design engineer selects the common information as wire capacitance and directs analysis tool 120 to sum the wire capacitance information for column 4 of table 130. In another example, the design engineer selects the common information as FET capacitance and directs analysis tool 120 to sum the FET capacitance information for column 4 of table 130.
Using the example of
For each instantiation of design blocks A-E, identified by instantiation paths of columns 2 and 3 of table 130, analysis tool 120 reads associated information of instantiation characteristics 136′, via data path 150, and applies the information to column 4 to form instantiation-specific results. Instantiation-specific results (result A1, result B1, result C1, result C2, result D1, result D2, result E1, and result E2) are stored in columns 5 and 6 of table 130, as shown, for later reference or printing. Illustratively, instantiation characteristics may include switching frequencies and/or scaling factors.
In one embodiment, instantiation characteristics 136′ are applied to summed values of selected design blocks (e.g., design blocks A-E) to produce instantiation specific results (e.g., result A1, result B1, result C1, etc.) for each design block instantiation (e.g., A1, B1, C1, etc.) of the selected design blocks. For example, if block C is selected for analysis, analysis tool 120 uses instantiation hierarchy 134′,
Upon reading and fully appreciating this disclosure, those of ordinary skill in the art appreciate that table 130 may exist in different form, with like function, without departing from the scope hereof. By way of example, in one embodiment table 130 is functionally replaced by data structures within analysis tool 120 or system 100,
Steps 504 through 506 are repeated for remaining selected design blocks of circuit design 116, as indicated.
Using the method described above, calculations (e.g., summation) are performed only once on each design block; instantiation characteristics are then applied to the calculated results once for each instance of the design block.
Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall there between.
The present document contains material related to the material of copending, cofiled, U.S. patent application Ser. No. ______ Attorney Docket Number 100111221-1, entitled System And Method For Determining Wire Capacitance For A VLSI Circuit; Ser. No. ______ Attorney Docket Number 100111227-1, entitled System And Method For Determining Applicable Configuration Information For Use In Analysis Of A Computer Aided Design; Ser. No. ______ Attorney Docket Number 100111228-1, entitled Systems And Methods Utilizing Fast Analysis Information During Detailed Analysis Of A Circuit Design; Ser. No. ______ Attorney Docket Number 100111230-1, entitled Systems And Methods For Determining Activity Factors Of A Circuit Design; Ser. No. ______ Attorney Docket Number 100111232-1, entitled System And Method For Determining A Highest Level Signal Name In A Hierarchical VLSI Design; Ser. No. ______ Attorney Docket Number 100111233-1, entitled System And Method For Determining Connectivity Of Nets In A Hierarchical Circuit Design; Ser. No. ______ Attorney Docket Number 100111234-1, entitled System And Method Analyzing Design Elements In Computer Aided Design Tools; Ser. No. ______ Attorney Docket Number 100111235-1, entitled System And Method For Determining Unmatched Design Elements In A Computer-Automated Design; Ser. No. ______ Attorney Docket Number 100111236-1, entitled Computer Aided Design Systems And Methods With Reduced Memory Utilization; Ser. No. ______ Attorney Docket Number 100111238-1, entitled System And Method For Iteratively Traversing A Hierarchical Circuit Design; Ser. No. ______ Attorney Docket Number 100111257-1, entitled Systems And Methods For Establishing Data Model Consistency Of Computer Aided Design Tools; and Ser. No. ______ Attorney Docket Number 100111259-1, entitled Systems And Methods For Identifying Data Sources Associated With A Circuit Design, the disclosures of which are hereby incorporated herein by reference.