The present document contains material related to the material of copending, cofiled, U.S. patent applications Attorney Docket Number 100111221-1, entitled System And Method For Determining Wire Capacitance For A VLSI Circuit; Attorney Docket Number 100111227-1, entitled System And Method For Determining Applicable Configuration Information For Use In Analysis Of A Computer Aided Design; Attorney Docket Number 100111230-1, entitled Systems And Methods For Determining Activity Factors Of A Circuit Design; Attorney Docket Number 100111232-1, entitled System And Method For Determining A Highest Level Signal Name In A Hierarchical VLSI Design; Attorney Docket Number 100111233-1, entitled System And Method For Determining Connectivity Of Nets In A Hierarchical Circuit Design; Attorney Docket Number 100111234-1, entitled System And Method Analyzing Design Elements In Computer Aided Design Tools; Attorney Docket Number 100111235-1, entitled System And Method For Determining Unmatched Design Elements In A Computer-Automated Design; Attorney Docket Number 100111236-1, entitled Computer Aided Design Systems And Methods With Reduced Memory Utilization; Attorney Docket Number 100111238-1, entitled System And Method For Iteratively Traversing A Hierarchical Circuit Design; Attorney Docket Number 100111257-1, entitled Systems And Methods For Establishing Data Model Consistency Of Computer Aided Design Tools; Attorney Docket Number 100111259-1, entitled Systems And Methods For Identifying Data Sources Associated With A Circuit Design; and Attorney Docket Number 100111260-1, entitled Systems And Methods For Performing Circuit Analysis On A Circuit Design, the disclosures of which are hereby incorporated herein by reference.
An electronic computer aided design (“E-CAD”) package is utilized to construct a circuit design. For example, the circuit design may be a Very Large Scale Integration (“VLSI”) circuit design. The circuit design consists of a netlist that identifies electronic design components and their interconnectivity within the circuit design. The design is constructed from design blocks (also known as cells), each providing specific functionality to the circuit design. Such design blocks may be re-used with the circuit design, or in other circuit designs. Designs blocks may also be constructed from electronic design elements and other design blocks. Typically, the circuit design is constructed from design blocks in a hierarchical manner, and may utilize design blocks one or more times. Each use of a design block is called an “instance”.
A design engineer may use the E-CAD tool to analyze the circuit design during development. One E-CAD tool provides (a) a fast analysis tool that processes blocks of the design without tracing hierarchical information, resulting in a low level of detail but with reduced analysis time, and (b) a detailed analysis that traces nets of blocks using hierarchical information, resulting in a high level of detail but with increased analysis time. In certain situations, the fast analysis tool may not provide the design engineer with sufficient information to make design choices; in such situations, the design engineer utilizes the detailed analysis. However, when a circuit design includes billions of nets in a netlist of the design, detailed analysis may result in hours or even days of processing time. Such delay causes inefficiency, adding cost to the design process and potentially delaying technological advancement.
In one embodiment, a method utilizes fast analysis information during detailed analysis of a circuit design. One or more design blocks of the circuit design are electronically analyzed to determine fast analysis results based upon assumptions of ported signal nets of each one of the design blocks. Next, it is determined whether hierarchical signal net connectivity of block instances of the design blocks and the assumptions match. If the hierarchical signal net connectivity matches the assumptions, the fast analysis results are utilized to generate detailed analysis results. If the hierarchical signal net connectivity does not match the assumptions, the one or more blocks in the hierarchical signal net connection are electronically analyzed to generate detailed analysis results.
In one embodiment, a system utilizes fast analysis information during detailed analysis of a circuit design. A fast analysis tool electronically analyzes one or more design blocks of the circuit design to determine fast analysis results based upon assumptions of ported signal nets of each one of the design blocks. A detailed analysis tool determines whether hierarchical signal net connectivity of block instances of the design blocks matches the assumptions. The detailed analysis tool utilizes the fast analysis results to generate detailed analysis results when the hierarchical connectivity matches the assumptions, and electronically analyzes instances of the one or more design blocks to generate detailed analysis results when the hierarchical connectivity does not match the assumptions.
In one embodiment, a system utilizes fast analysis information during detailed analysis of a circuit design, including: means for electronically analyzing one or more design blocks of the circuit design to determine fast analysis results based upon assumptions of ported signal nets of each one of the design blocks; means for determining whether hierarchical signal net connectivity of block instances of the design blocks matches the assumptions; means for utilizing the fast analysis results to generate detailed analysis results when the hierarchical signal net connectivity matches the assumptions; and means for electronically analyzing the one or more blocks to generate detailed analysis results when the hierarchical signal net connectivity does not match the assumptions.
In one embodiment, a software product has instructions, stored on computer-readable media, wherein the instructions, when executed by a computer, perform steps for utilizing fast analysis information during detailed analysis of a circuit design, including: instructions for electronically analyzing one or more design blocks of the circuit design to determine fast analysis results based upon assumptions about ported signal nets of each one of the design blocks; instructions for determining whether hierarchical signal net connectivity of block instances of the design blocks matches the assumptions; instructions for utilizing the fast analysis results to generate detailed analysis results when the hierarchical signal net connectivity matches the assumptions; and instructions for electronically analyzing the one or more blocks to generate detailed analysis results when the hierarchical signal net connectivity does not match the assumptions.
A net is a single electrical path in a circuit that has the same electrical characteristics at all of its points. Any collection of wires that carries the same signal between circuit components is a net. If the components allow the signal to pass through unaltered (as in the case of a terminal), then the net continues on subsequently connected wires. If, however, the component modifies the signal (as in the case of a transistor or logic gate), then the net terminates at that component and a new net begins on the other side. Connectivity in a VLSI circuit design is typically specified using a netlist, which indicates the specific nets that interconnect the various circuit components.
A net may be considered to be divided into 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 local nets or ‘hierarchical net pieces’, which are the small pieces of wire (nets) in each hierarchical 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 circuits are too complicated to be easily considered in their totality, a complete design is often viewed as a collection of component aggregates that are further divided into sub-aggregates in a recursive and hierarchical manner. In circuit designs, these aggregates are commonly referred to as blocks (or cells). The use of a block at a given level of hierarchy is called an ‘instance’.
To illustrate exemplary nomenclature used in analyzing block instance C(1), block instance C(1) is shown with five signal nets: input net 36(1), pass net 38(1), output net 40(1), VDD net 42(1) and GND net 44(1). Signal nets 20(1) and 36(1) connect to port 32(1), forming hierarchical signal net pieces identified by HLSN “input net”. Signal nets 22(1), 38(1) and 20(2) interconnect by ports 34(1) and 32(2) and form hierarchical signal net pieces identified by HLSN “pass net”. Signal nets 24(1), 42(1) and 24(2) interconnect by ports 28(1) and 28(2) and form hierarchical signal net pieces identified by HLSN “VDD net”. Signal nets 26(1), 44(1) and 26(2) interconnect by ports 30(1) and 30(2) and form hierarchical signal net pieces identified by HLSN “GND net”. Signal nets 22(2) and 40(1) connect to port 34(2) and form hierarchical signal net pieces identified by HLSN “output net”. Block instance C(1) further includes ports 46, 48, 50 and 52 that connect internal signal nets 36(1), 42(1), 40(1) and 44(1) to signal nets external to block instance C(1).
Processor 106 loads E-CAD tool 114 from storage unit 108 into computer memory 104 such that E-CAD tool 114 is executable by processor 106. E-CAD tool 114 may in turn request that processor 106 load analysis tool 120 and circuit design 116 from storage unit 108 into computer memory 104. Once loaded into computer memory 104, a design engineer operates E-CAD tool 114 to process and analyze circuit design 116. Analysis tool 120 includes a fast analysis tool 124 and a detailed analysis tool 126. As described below, database 122 stores fast analysis results 128, assumption information 130 and detailed analysis results 129. Fast analysis tool 124 generates fast analysis results 128 and assumption information 130 during fast analysis of circuit design 116. Detailed analysis tool 126 utilizes fast analysis results 128 and assumption information 130 to generate detailed analysis results 129 during detailed analysis of circuit design 116.
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 (and, for example, fast analysis tool 124 and/or detailed analysis tool 126). At any one time, analysis tool 120 is thus operable to perform a fast analysis of circuit design 116 using fast analysis tool 124, or to perform a detailed analysis of circuit design 116 using detailed analysis tool 126, as selected by the design engineer at user interface 110.
An exemplary circuit design 116′ with four design blocks A-D is now discussed in connection with
Circuit design 116′ thus has four design blocks A, B, C and D, each instantiated one or more times, totaling eight instantiations A(1), B(1), C(1), C(2), D(1), D(2), D(3) and D(4). In one illustrated use of system 100,
More particularly, fast analysis tool 124 analyses each selected design block independently, without tracing hierarchical signal net connections external to the design block. During analysis of design block D,
More particularly, during detailed analysis of circuit design 116′, detailed analysis tool 126 reads instantiation characteristics 134, via data path 148, to determine block instances (e.g., A1, B1, C1, C2, etc.) for each selected design block (e.g., A, B, C and D). For each block instance, detailed analysis tool 126 determines if fast analysis results 128 are usable during the detailed analysis. For example, during detailed analysis of block instances C1 and C2, detailed analysis tool 126 reads assumption information of design block C from assumption information 130, via data path 154. If assumption information 130 for ported signal nets of design block C does not match actual signal net connections of block instance C1, fast analysis results 128 for design block C are not usable during detailed analysis of block instance C1 by detailed analysis tool 126. Detailed analysis tool 126 therefore performs a hierarchical detailed analysis of block instance C1, for example by following ported signal nets into adjacent block instances to generate detailed analysis results 129. If assumption information 130 for ported signal nets of design block C does match actual signal net connections of block instance C1, detailed analysis tool 126 utilizes fast analysis results 128 for design block C (from database 122, via data path 152), to determine detailed analysis results 129.
As appreciated by those of ordinary skill in the art, each design block may have many instantiations within circuit design 116′; therefore use of fast analysis results 128 during detailed analysis of circuit design 116′ reduces processing time of detailed analysis tool 126.
Fast analysis of a circuit design provides analysis results for selected design blocks by making assumptions as to connectivity of ported signal nets within each design block. These assumptions increase the speed of fast analysis tool 124 such that results are quickly delivered to a requesting design engineer. By storing fast analysis results 128 and assumption information 130 in database 122, detail analysis tool 126 has access to the data during later detailed analysis of circuit design 116′.
Step 608 is a decision. If the assumptions read in step 606 match the connectivity determined in step 604, process 600 continues with step 612; otherwise process 600 continues with step 610. Using the example of
In step 612, process 600 utilizes fast analysis results for the design block from which the block instance (read in step 602) was derived to determine detailed analysis results 129. For example, if the assumptions made during the fast analysis of design block D (read in step 606) match the actual connectivity of block instance D(1) (determined in step 604), process 600 may use fast analysis results 128 in determining detailed analysis results 129, thereby reducing processing time required by process 600.
In step 614, process 600 outputs data, for example storing or printing detailed analysis results determined in either step 610 or step 612. In one example, process 600 stores detailed analysis results determined in step 610 or step 612 in detailed analysis results 129 of database 122, and optionally outputs these results via data path 150,
Detailed analysis of a circuit design (e.g., circuit design 116) by detail analysis tool 126 is an involved and lengthy process. To determine characteristics (e.g., FET leakage currents) for a signal net, the signal net is traced and analyzed through each block instances in the design. By utilizing fast analysis results 128 during detailed analysis, where assumptions made during the fast analysis match the actual connectivity of the signal net, processing time is reduced, expediting delivery of the detailed analysis results to the design engineer.
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.