WO2002101601A2 - Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system - Google Patents
Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system Download PDFInfo
- Publication number
- WO2002101601A2 WO2002101601A2 PCT/US2002/018424 US0218424W WO02101601A2 WO 2002101601 A2 WO2002101601 A2 WO 2002101601A2 US 0218424 W US0218424 W US 0218424W WO 02101601 A2 WO02101601 A2 WO 02101601A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- pin
- cells
- block
- successor
- list
- Prior art date
Links
- 238000013461 design Methods 0.000 title claims abstract description 56
- 238000004458 analytical method Methods 0.000 title claims description 73
- 238000000034 method Methods 0.000 claims abstract description 115
- 238000012795 verification Methods 0.000 claims abstract description 19
- 238000004088 simulation Methods 0.000 claims abstract description 5
- 238000012545 processing Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 52
- 230000000694 effects Effects 0.000 claims description 44
- 238000002372 labelling Methods 0.000 claims description 36
- 230000003068 static effect Effects 0.000 claims description 36
- 230000008878 coupling Effects 0.000 claims description 13
- 238000010168 coupling process Methods 0.000 claims description 13
- 238000005859 coupling reaction Methods 0.000 claims description 13
- 238000002347 injection Methods 0.000 claims description 13
- 239000007924 injection Substances 0.000 claims description 13
- 230000003071 parasitic effect Effects 0.000 claims description 9
- 230000000704 physical effect Effects 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 claims description 8
- 230000008439 repair process Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000013499 data model Methods 0.000 claims 2
- 238000011161 development Methods 0.000 claims 2
- 238000000605 extraction Methods 0.000 abstract description 2
- 210000004027 cell Anatomy 0.000 description 143
- 230000008901 benefit Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 9
- 230000009467 reduction Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 230000000717 retained effect Effects 0.000 description 6
- 238000012938 design process Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000013178 mathematical model Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000011068 loading method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 210000003888 boundary cell Anatomy 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Definitions
- the invention is related to electronic circuit fabrication. More particularly, the invention is related to systems for designing and verifying the contents and layout of an integrated circuit.
- ECAD Electronic Computer Aided Design
- Hierarchical decomposition or "partitioning” is a technique which may be used to reduce the complexity of a large integrated circuit design specification so that the memory and/or execution time required to complete the design remains manageable.
- the design is partitioned into pieces, often called "blocks", which can be designed and verified independently.
- the design specification consists of a set of blocks and the top-level interconnections between those blocks.
- the blocks may themselves consist of smaller sub-blocks and their interconnections.
- Hierarchical decomposition may also be used simply as an organizational tool by a design team as a method for partitioning a design project among several designers. However, this logical hierarchy created by the design team in the design specification does not need to be the same as the physical hierarchy used to partition the design for implementation. Often the logical hierarchy is much deeper than the physical hierarchy. A process of block flattening may be used to transform the logical hierarchy into an appropriate physical hierarchy.
- a conventional hierarchical design project typically proceeds in two major steps: a top-down block planning step followed by a bottom-up verification step. If the blocks themselves are implemented during the top-down phase (i.e. each block is implemented before its children) the flow is referred to as a top-down flow. Conversely, if the blocks are implemented during the bottom-up phase (i.e. each block is implemented after all of its children have been completed) the flow is referred to as a bottom-up flow.
- the top-down and bottom-up flows each have their advantages and disadvantages. Without loss of generality, a top-down flow is used as an example in the remainder of this document. A bottom-up flow could be implemented using identical techniques.
- Figure 1 shows a typical top-down block planning and implementation flow. It begins with a partitioning of the design netlist to map the logical hierarchy into the physical hierarchy, defining the top-level block and the set of sub-blocks to be implemented (step 110). Each sub-block is then assigned a width and height value and a placement in the floorplan (step 115). Locations are then assigned to the pins on each sub-block, which represent the locations where nets cross the sub-block boundaries (step 120). This is followed by a time budgeting step that assigns signal arrival/required time constraints to each sub-block pin, indicating which portion of the clock cycle is allocated to the timing paths that cross the sub-block boundaries (step 135).
- step 140 All leaf-cells (standard cells and macros) owned by the block are assigned a placement, and all nets owned by the block are routed (step 140). If any of the nets were routed over the sub-blocks (so-called "feedthrough nets") these wires are pushed down into the sub- blocks that they overlap, and new pins are created on the sub-block where the wires cross the sub- block boundaries (step 145). Then, recursively implement the sub-blocks according to the same process (step 150). This involves recursively performing steps 110 to 170 while treating each sub- block as the top-level block.
- pin locations, and timing budgets assigned to each block must represent achievable constraints. Otherwise the system may not be able to complete the implementation of some blocks according to their specifications. In such a case the specifications may need to be refined and the top-down process may need to be repeated before a correct implementation can be realized. Such an iterative refinement is time-consuming and should be avoided. Thus, methods for achieving high-quality results in these steps are of critical importance.
- each block is independently analyzed for logical correctness, as well as its timing and electrical performance, and compared against its specification (step 155). After all sub-blocks of a block have been independently verified the block itself can be analyzed (step 170), under the assumption that the sub-blocks are correct.
- the invention consists of the creation and use of a reduced model, referred to as a block "abstraction", that captures the structure and behavior of the block in sufficient detail that the interface with its parent block and its sibling blocks may be correctly analyzed.
- the goal of the abstraction is to reduce the amount of memory required to represent a block to its ancestors in the hierarchy, and reduce the amount of execution time required to analyze each instance of the block in the context of its parents and sibling blocks.
- Figure 1 shows a typical top-down block planning and implementation flow
- Figure 2 illustrates a hierarchical design process according to one or more embodiments of the invention
- Figure 3 illustrates the abstraction process according to at least one embodiment of the invention
- Figure 4 illustrates the logical shell labeling process according to at least one embodiment of the invention
- Figure 5 illustrates a block which undergoes this labeling process
- Figure 6 summarizes the process data inputs step of Figure 4
- Figure 7 summarizes the process pin forward step shown in Figure 6;
- Figure 8 summarizes the process outputs step of Figure 4;
- Figure 9 summarizes the process pin backward step shown in Figure 8;
- Figure 10 summarizes the process clock inputs step of Figure 4;
- Figure 11 summarizes the process clock pin forward step shown in Figure 10;
- Figure 12 shows the physical timing shell model in an embodiment of the invention.
- Figure 13 illustrates an exemplary computer system capable of implementing and applying one or more embodiments of the invention.
- the design flow shown in Figure 2 is a refinement of the top- down flow shown in Figure 1, with three additional steps, 230, 260, and 265.
- the refinement concerns a method for modeling a sub-block, in the context of its parent and sibling blocks, during the top-down budgeting and block implementation steps, as well as the bottom-up verification steps. These steps represent places in the flow at which the clean hierarchical boundaries are violated and there is a need for cross-boundary analysis. Without an effective technique for managing this cross- boundary analysis the primary advantage of the hierarchical design process— its ability to reduce the memory and runtime required to design a large integrated circuit — may be lost.
- one objective is to analyze the combinational logic paths (logic gates between latches and/or flip-flops) that cross one or more hierarchical boundaries, and determine what fraction of the clock cycle should be budgeted for each segment of the path.
- a block is placed and routed before its sub- blocks have been implemented.
- placement and routing is fairly decoupled across hierarchical boundaries.
- many modern manufacturing processes require the routing wires to obey a set of rules called "antenna rules" that require detailed knowledge of the routing wires present on both sides of a hierarchical boundary.
- the invention discloses, in various embodiments, the use of a reduced model, referred to as a block "abstraction”, that captures the structure and behavior of the block in sufficient detail that the interface with its parent block and its sibling blocks may be correctly analyzed.
- the goal of the abstraction is to reduce the amount of memory required to represent a block to its ancestors in the hierarchy, and reduce the amount of execution time required to analyze each instance of the block in the context of its parents and sibling blocks.
- step 230 prior to the time budgeting step, abstractions of each sub-block are created for use during budgeting. Because the sub-block has not yet been implemented it contains no physical implementation data, only its netlist description. Therefore the abstraction used during budgeting is intended to model the logical behavior of the sub- block only, details of the physical and electrical behavior are not yet available. This initial abstraction is used during budgeting and then discarded.
- step 260 a second abstraction for each block is created (step 260.) As the block implementation is now complete this abstraction must model the detailed physical and electrical properties of the block as well as its logical behavior.
- step 265 Since the verification process is occurring bottom up, all of a block's children are independently verified before the block itself is verified. During the verification of a block, all of its sub-blocks are replaced with their abstractions (step 265), thus taking advantage of the fact that most of the sub-block's implementation and behavior has already been verified. Only those combinational logic paths that cross the hierarchical boundary remain to be verified. The data reduction provided by the abstraction will significantly speed up the verification of the blocks and reduce the memory requirements while moving up through hierarchy.
- steps 210, 215, 220 are similar in operation to blocks 110, 115, and 120, respectively, all other steps 230-270, are enhanced in that they deal with abstractions of the design rather than the raw design itself.
- top-down block implementation flow differs from a bottom-up block implementation flow in the former, in the former, a block is implemented before its children, while in the latter a block is implemented after its children.
- the hierarchical implementation flow in Figure 2 would be modified to place blocks 240 and 245 between blocks 265 and 270.
- the main impact is that, in a top-down flow, the top-level block is being implemented before the implementation of its children is complete. Therefore the invention makes use of the sub-block budgets as idealized optimization target while implementing their parent.
- a bottom-up flow on the other hand, a block must be implemented before its parent's or sibling block's implementations are known. It must therefore also make use of its timing budget as an idealized optimization target.
- the described abstraction mechanism is equally applicable when used in a bottom-up implementation and verification flow as in a top-down implementation flow when only verification is being performed bottom-up.
- the use of an abstraction to model the completed sub-blocks, rather than an idealized budget may result in a higher quality implementation of its parent's block.
- an "inverse abstraction" mechanism which permits the same benefit to be realized in a top-down flow.
- Static timing analysis is mainly concerned with calculating the propagation time of data signals between latches and/or flip-flops. This information is used both for the optimization of the logic in the parent block, and the verification of the timing of the child blocks in the context of their siblings and parent. If a combinational logic path crosses one or more hierarchical boundaries, an accurate timing analysis can only be performed when path information is available for all segments of the path through all levels of the hierarchy. From a static timing perspective, as long as the block abstraction presents the same timing characteristics at the boundary of the lower level block to the higher level block, the higher level block cannot recognize the difference between a reduced model and the full model. The timing characteristics that must be captured by the lower level block are the required times at the primary input pins and arrival times at the primary output pins.
- IR-drop encompassing the effects of supply voltage drop and ground-bounce, measures non- ideal behavior on the power and ground supply networks.
- the wires making up the supply distribution network have non-zero resistance, and large current loads could cause the supply voltages to deviate from their specified ranges at various points along these wires. This effect can result in unexpected changes in the timing behavior of a circuit, and in the extreme case could result in a complete failure of the circuit to operate.
- Electromigration failures also result from high current densities in non-ideal resistive wires. However, unlike IR-drop, these failures result in physical rather than electrical changes in the wires. Over the lifetime of the integrated circuit these high currents can cause metal atoms to migrate from their original positions and this can lead to short circuits and open circuits that did not exist at manufacturing time.
- the results of the IR-drop analysis may be used as feedback on the design of the power distribution network. It may also be used to enhance the accuracy of the timing analysis, which was described above.
- the results of the electromigration analysis if it indicates a failure, may be used to influence the implementation of the circuit itself, requiring changes to the circuit netlist or changes in the widths (resistances) of the wires that are used during routing.
- Placement and Routing Placement deals with how blocks and sub-blocks are physically arranged on an integrated circuit while routing refers to how they are interconnected.
- the physical placement of a block and the routing to its pins requires fairly minimal information about the block's physical construction.
- a block's pin geometries provide the set of legal locations at which the router is permitted to connect to the pins.
- the remainder of the block's internal geometries can normally be represented by a greatly reduced set of blockages that prevent the routing in the parent block from creating short circuits or design-rule violations to the cells and routing inside the block.
- a static timing analysis must be performed on all logic paths that cross the block's hierarchical boundary. This analysis must reach all registers visible from the sub-block pins, whether they belong to the parent block, the sub- block, or one of the sub-block's sibling blocks in the hierarchy.
- One advantage is that all combinational paths completely contained within the sub-block can safely be ignored, greatly reducing the expense of this analysis. If the budgeting step is permitted to perform cross-boundary logic optimization, as well as static timing analysis, there is a potential to implement a truly optimal budget assignment.
- One central aspect of this invention is the method for block abstraction that accomplishes the desired logical and physical data reduction step while conforming to the requirements outlined above.
- the key idea is to represent the design, not with a simplified mathematical model of reduced accuracy, but as a sub-set of the design data itself.
- the reduced model consists of a copy of the original model, but with all non-essential information discarded.
- the abstraction is built by copying only those elements of the logical netlist and physical block implementation that are needed to model the block correctly in the context of its parent and sibling blocks in the hierarchy, thus achieving a large reduction in the quantity of the block's data.
- a block modeled with such an abstraction can be used for top-down budgeting, bottom-up static timing and electrical analysis, as well as either top-down or bottom-up block implementation, with essentially complete accuracy. This level of accuracy is achievable by selectively retaining only the subset of the data in each block that cannot be analyzed independently of its parent and/or sibling blocks.
- the data that is retained may consist of logical (netlist) data, design constraints, and physical (layout) data.
- the abstraction process can be viewed as consisting of two major steps as shown in Figure 3.
- step 320 the set of physical geometries that must be retained in the abstraction is determined. These are required to model the resistance and capacitance of the nets in the logical shell, as well to model the effects of crosstalk delay and noise injection. As shown below, there may also be a requirement to include some additional cells in the logical abstraction in order to model these effects.
- FIG. 4 is a detailed flowchart of Step 310, logical shell labeling, according to at least one embodiment of the invention.
- the contents of the logical shell are determined with an algorithm that labels the nodes in the block's timing graph.
- the timing graph is a directed graph that is built from information in:
- the graph nodes represent cell pins, and the edges represent nets connecting those pins.
- the goal of labeling is to retain only the cells necessary to provide the same timing graph in the shell model as is present in the full model, when viewed from the primary pins.
- Logical shell labeling begins with a depth-first traversal originating from the data (non-clock) primary input pins within the logical shell (block 410). Next, a depth-first traversal originating from the primary output pins is performed (block 420). Finally, in accordance with block 430, a depth-first traversal originating from the clock (non-data) primary input pins is performed.
- the cells that are encountered during these depth-first traversals are given labels according to the following rules (note that a cell is allowed to have more than one label):
- Timing cell Defined as a cell that is reachable from a primary input or output pin. Collectively, these cells define the timing graph that is visible from the primary pins.
- Sink load cell Defined as a cell that is driven by a timing cell that is not itself a timing cell, when the driving cell is not part of the clock network.
- FIG. 5 illustrates a block which undergoes this labeling process.
- the block consists of one primary clock input pin: CLK; four primary data input pins: CG, ESK), INI and IN2; and two primary outputs: OUT0 and OUT1.
- Cells RI, R2, R3, R4, and R5 are register (flip-flop) elements.
- Components CI, C2, C3, C4 and C5 are arbitrary combinational logic circuits (groups of connected cells).
- Cells II, 12, 13, 14, 15, 16, 17, 18, 19, 110, II 1, 112, 113 and 114 are instances of individual combinational logic gates.
- the cell labeling process is based upon being able to identify every cell pin as either a clock pin or a data pin. By definition, if a pin is not a clock pin it is a data pin. This labeling is a standard part of any static timing analysis algorithm and will not be described here. According to the static timing algorithm, all pins on cells II, 12, 13, 14, 110, and II 1 are identified as clock pins. In addition, the upper input pin on cell 15 and the output pin on 15 are identified as clock pins. Further, the pins attaching to cells RI, R2, R3, R4 and R5 that are marked with a triangle are labeled as clock pins. The cell labeling process as applied to the exemplary circuit of Figure 5 is detailed below. Input pin labeling
- the labeling process starts with the data (non-clock) primary inputs.
- a recursive depth-first traversal is performed originating at each such pin, in an arbitrary order.
- the recursion terminates when either a leaf in the graph is encountered (a pin that has no successors, for example the data pin of a flip-flop or a primary output) or the pin encountered is a clock pin.
- the cells encountered during each traversal are labeled as timing cells (recall that the nodes in the timing graph are the cell pins.)
- Cells that have their output tied to a timing cell output are labeled as multi-driver load cells.
- One example of such a multi-driver load cell is a tri-state driver (cells 16 and 17 of Figure 5).
- Figure 6 summarizes the process data inputs step (410) of Figure 4.
- the process begins by building a list of all primary inputs (block 610) to the circuit and continues until the list is empty (checked at block 620). After a pin is removed from the list (block 630) it is skipped if it is a clock pin (checked at block 640) and processing continues with the next pin (blocks 620 through 640, again). If not a clock pin (checked at block 640), then main forward processing of the pin occurs in block 650, which is described in detail in Figure 7.
- the process described in Figure 7 is a recursive process with the recursion occurring in block 750.
- Processing begins by collecting all successors of the starting pin in a list (block 710) and continues until the list is empty (checked at block 715). After a pin is removed from the list (block 720) the cell for this pin is labeled as a "timing" cell (block 725). If the pin is a clock pin no further processing is required (checked at block 730). If the pin is an input pin (checked at block 735) then determine if the pin has more than one predecessor (checked at block 740). If more than one predecessor is found (checked at block 740) all predecessor cells are labeled as "multi-driver load" cells (block 745). The flowchart performs a depth-first recursion by calling itself in block 750.
- the input-labeling algorithm would proceed as follows. Starting from input pin INO, the depth-first traversal encounters component CI and the register RI, with the traversal terminating at register RI. All of the cells within component CI and register RI, which are contained within this traversal, are labeled as timing cells. Likewise, starting from input CG, all the cells within component C2 and the cell 15 are labeled as timing cells. Traversal terminates at 15 because the output of 15 is a clock pin (15 is a "clock gating" cell). Starting from input pin INI, all cells in the component C3 are labeled as timing cells. In addition, cells 16 and register R2 are labeled as timing cells.
- Cell 17 is labeled as a multi-driver load cell since its output is tied to the output of another timing cell.
- All cells in component C4 are labeled as timing cells. The input labeling would at this point be considered complete.
- Output pin labeling then proceeds, in a similar way, using a depth-first traversal that originates at the primary output pins. Again the recursion terminates when a leaf pin is encountered in the graph, or the pin encountered is a clock pin. And again, the cells encountered along the traversal are labeled as timing cells.
- the sink-load cells defined as cell whose source comes from a timing cell that is not part of the depth first traversal, need to be identified.
- Figure 8 summarizes the process outputs step (420) of Figure 4.
- the process begins by building a list of all primary outputs (block 810) to the circuit and continues until the list is empty (checked at block 820). After a pin is removed from the list (block 830) it is processed by block 840, which is described in detail in Figure 9.
- the process described in Figure 9 is a recursive process with the recursion occurring in block 950.
- Processing begins by collecting all predecessors of the starting pin in a list (block 910) and continues until the list is empty (checked at block 915). After a pin is removed from the list (block 920) the cell for this pin is labeled as a "timing" cell (block 925). If the pin is a clock pin no further processing is required (checked at block 930). If the pin is an output pin (checked at block 935) then label all predecessor cells as "sink load” cells (block 940). The flowchart performs a depth-first recursion by calling itself in block 950.
- Figure 10 summarizes the process clock inputs step (430) of Figure 4.
- the process begins by building a list of all primary clock inputs (block 1010) to the circuit and continues until the list is empty (checked at block 1020). After a pin is removed from the list (block 1030) it is processed by block 1040, which is described in detail in Figure 11.
- the process described in Figure 11 is a recursive process with the recursion occurring in block 1130. Processing begins by collecting all successors of the starting pin in a list (block 1110) and continues until the list is empty (checked at block 1115). After a pin is removed from the list (block 1120) a check is made to identify it as a clock (block 1125). If the pin is not a clock pin no further processing is required (back to block 1115). The flowchart performs a depth-first recursion by calling itself in block 1130. Upon returning from the recursive call a check is made to determine if any successors of the pin were labeled as "timing" during the recursion (checked at block 1135).
- timing cells labeled as timing cells An additional reduction in the number of cells labeled as timing cells is achieved through the application of false path constraints and constant propagation. If the timing of a portion of the circuit has infinite slack that portion of the circuit is not visible from the primary pins. As a result, those pins that have infinite slack can be treated as leaves in the graph when performing the input and output labeling above.
- Path exceptions that affect the timing at the primary pins are applied to the shell model in the same way as the original exceptions were applied to the full model. This is possible because path exceptions are applied to nodes in the timing graph, and all nodes visible from the primary pins are retained in the shell model. There is no need to attempt to rewrite the exceptions in terms of some reduced timing graph. Furthermore, path exceptions that are needed at the next higher level in the hierarchy are exposed (made visible) during the shell creation process. This is done by first identifying the constraints that need to be exposed and then rewriting them in a way that they can be applied when the shell model is instantiated at the next level. In this way path exceptions which cross hierarchical boundaries can be maintained in a consistent and accurate way throughout the design process.
- latch-based designs produce an identical shell model to flip-flop-based designs in terms of how cells get labeled.
- information that describes the amount of borrowing is saved for each latch in the shell model. This freezes the borrowing that is permitted for latches in the shell model while still allowing the next higher level of hierarchy to take advantage time borrowing.
- latches can be treated in the same way as combinational logic cells. Only flip-flops would be treated as leaves in the depth-first fraversals, thus eliminating the need to freeze the amount of timing borrowing that is permitted. However, in a purely latch based design this will result in an abstraction that provides no data reduction.
- a compromise can be made, allowing a user- specified number of levels of latches to be treated as combinational cells before terminating the depth- first fraversals. This will permit the user to control the flexibility of time borrowing against the size of the abstraction memory image.
- the physical shell consists of the set of layout data (interconnect wires and vias) which is required to account for the physical effects of integrated circuit layout and fabrication: resistance, capacitance, inductance, routing congestion and process technology effects such as width and spacing rules, antenna rules and electromigration rules.
- the amount of physical detail that must be retained in the physical abstraction depends on the level of accuracy required by the user. There is a direct trade-off between the level of accuracy and the quantity of data that must be retained.
- the layout data is partitioned into several categories defined by the physical effects that they are used to model: 1) placement and routing, 2) antenna effects, 3) timing analysis (RC delay and capacitive coupling), 4) noise injection effects, and 5) IR-drop, and 6) electromigration effects.
- over-block routing is to be allowed, then one must include enough information in the abstraction to indicate where the over-block routing is permitted and on which layers.
- These areas are modeled as a set of polygons that represent the areas which remain blocked to routing on each routing layer, and the inverse of this set of polygons is therefore the areas in which external routing is permitted.
- the set of blockages may be made as large as necessary to achieve any desired level of resolution. However, it is normally sufficient to restrict the non-blocked areas to a relatively small set of routing channels of fixed width which extends unbroken from one edge of the block to its opposite edge.
- antenna rules One of the more difficult types of process technology rules to model accurately are the antenna rules. These rules model the damage that may be caused to MOSFET transistor gates by the charge accumulated on their connected metallic (aluminum or copper) routing wires. Charge accumulates on metal wires while they are being patterned and etched during manufacturing, possibly causing the thin gate oxide of it's the attached MOSFET gates to break down, but it is safely discharged by the junction diode formed at the attached MOSFET source/drain regions. The charge may also be discharged safely by dedicated diodes inserted specifically for this purpose.
- Figure 12 shows the group-cell and the set of boundary registers and other boundary cells that make up the logical-shell.
- the parasitic effects caused by the block's layout geometries are also modeled.
- pin-wires the wires attached to the block's primary input output pins
- shell-wires the wires implementing all of the nets attached the cells in the timing shell
- pin-wires and shell-wires includes all of the parasitic resistance and capacitance caused by the timing shell wires, but it neglects the sidewall capacitance contributed by their adjacent wires, called coupling-wires in Figure 12. These wires must also be included in order to perform an accurate extraction and timing analysis of the block. However, note that when modeling simple RC-delay (without crosstalk), only the coupling-wires need to be included, not the set of all wires on the coupling-nets. These coupling-wires can be considered to be at a constant potential and therefore only serve to increase the effective capacitance of the pin-wires and shell- wires. 4) Static Timing Analysis with Crosstalk Delay and Noise Injection
- any coupling-nets that are at a constant potential, such as power and ground nets, will serve to shield the pin-nets and shell-nets from any crosstalk delay or noise injection. These are referred to as shield-wires, and no transitive-wires will be associated with them.
- the degree of data reduction achievable through the logical and physical abstraction technique discussed above depends on the logical structure of the block design. Blocks that are largely register-bounded, with most of their netlists internal to the group-cell, will achieve a high degree of reduction. On the opposite extreme, blocks that are purely combinational will achieve no reduction whatsoever.
- the hierarchical partitioning process should be aware of the abstraction methodology and attempt to make the blocks as register bounded as possible. However, it is likely that even in an otherwise well-partitioned design, some nets will expose logic relatively deeply inside the block abstraction. Several techniques may be used to reduce the modeling requirements for these anomalous nets.
- each pin-wire and shell wire will be constant. Therefore the delay at each input pin will only depend on the signal waveform presented to the pin, and the delay of each output pin will only depend on the load presented to the pin. If these pins do not have near-critical delays they can be safely modeled using traditional delay models such as lookup tables and piecewise linear delay functions.
- IR-drop is an effect caused by high currents flowing through the power distribution network in a chip.
- the voltage seen at any point in the network is equal to the current flowing through that point multiplied by the parasitic resistance seen between that point at the power supply.
- this effect can be offset somewhat by the parasitic capacitance present in the network, which serves to store some charge that can be treated as an alternate distributed current source.
- the abstraction can be used to model the block's contribution to the IR-drop experienced by the block's parent.
- the interface between the block and its parent consists of the power supply pins at which the block's power supply network is connected to its parents.
- An exact model for IR-drop would consist, for each pin, of a time-varying current source or sink, plus an equivalent circuit for the RC-network between the pin and the power and ground supplies.
- the invention's abstraction method is to model the circuit's non-ideal electrical effects by the circuit's netlist and physical geometries themselves, as opposed to idealized mathematical models.
- IR-drop analysis is not path-based and local like static timing analysis or crosstalk, but rather is modeling a global effect that involves the entire power/ground network and every cell in the block. For this reason a simple electrical model can be used.
- Each pin is modeled as an ideal current source or sink, representing the results of a worst case electrical analysis of the block. This analysis may be a static analysis or a dynamic simulation.
- Each pin is also associated with an equivalent circuit for the internal RC-network, which is modeled as an impedance matrix.
- Electromigration is also an effect associated with currents flowing through the wires of a circuit and their non-deal resistances and capacitances.
- electromigration analysis must be performed on the supply network as well as ordinary signal wires (it is normally only a problem on long resistive wires with large high-current driver cells.)
- To model electromigration on the supply network wires the wire's parasitic impedance is needed, as well as how much current will be flowing through each wire.
- Various models of electromigration may require the maximum or average case current, or even a detailed time-domain simulation.
- this information is identical to that needed for IR-drop analysis, so the same abstraction mechanism described above can be used.
- signal wires the information is identical to that required for the static timing analysis model. Therefore, no additional modeling information need be added to the abstraction to model electromigration effects.
- test harness is an abstracted parent block representing some form of "reference platform”, or typical implementation.
- the absfraction process can be used to build a reduced model of this test harness. This technique permits a faster verification process than would be possible if the block were verified by embedding it in a complete reference chip design. Conversely, the absfraction model will be more accurate than a typical test harness, which may consist of nothing more than a simple set of timing constraints and typical pin loads and signal waveforms.
- Such an "inverse" abstraction will look like a shell of logic and its associated physical geometries that lies outside the boundary of the block. It can be built using the same absfraction algorithm, except that it is executed on the parent block, and the pin traversal begins at the sub- block's interface pins rather than the parent block's primary input, output, and supply pins.
- Figure 13 illustrates a computer system capable of implementing one or more embodiments of the invention. Illustrated is a computer system 1310, which may be any general or special purpose computing or data processing machine such as a PC (personal computer) which can optionally be coupled to a network 1300.
- the memory 1311 of computer system 1310 may be insufficient to hold the entire contents of a circuit design or its inputs and thus, the design process may need to be broken up hierarchically, hi this way, pieces of the overall design can be handled by several different computer systems each of which may be similar to computer system 1310.
- the abstraction model which extracts the design of block and sub-blocks (modules and sub- modules) must allow for a uniform and consistent application of the processes such as timing analysis, placement and routing and budgeting.
- the invention attempts to address the abstraction problem in hierarchical design.
- One of ordinary skill in the art may program computer system G10 to perform the task of abstraction and sub-module design as set forth in various embodiments of the invention.
- Such program code may be executed using a processor 1312 such as CPU (Central Processing Unit) and a memory 1311, such as RAM (Random Access Memory), which is used to store/load instructions, addresses and result data as needed.
- the application(s) used to perform the functions of absfraction and sub-module design may derive from an executable compiled from source code written in a language such as C++.
- the executable may be loaded into memory 1311 and its instructions executed by processor 1312.
- the instructions of that executable file may be stored to a disk 1318, such as a floppy drive, hard drive or optical drive 1317, or memory Gi l.
- the various inputs such as the netlist(s), constraints, process characteristics, cell library and other such information may be written to/accessed from disk 1318, optical drive 1317 or even via network 1300 in the form of databases and/or flat files .
- Computer system 1310 has a system bus 1313 which facilitates information transfer to/from the processor 1312 and memory 1311 and a bridge G14 which couples to an I/O bus 1315.
- I/O bus 1315 connects various I O devices such as a network interface card (NIC) 1316, disk 1318 and optical drive 1317 to the system memory 1311 and processor 1312.
- NIC network interface card
Abstract
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-7016097A KR20040032109A (en) | 2001-06-08 | 2002-06-10 | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system |
CA002450143A CA2450143A1 (en) | 2001-06-08 | 2002-06-10 | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system |
IL15922402A IL159224A0 (en) | 2001-06-08 | 2002-06-10 | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system |
JP2003504290A JP2005518002A (en) | 2001-06-08 | 2002-06-10 | Display of submodule design in a hierarchical integrated circuit design and analysis system. |
EP02739817A EP1407391A2 (en) | 2001-06-08 | 2002-06-10 | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US29679701P | 2001-06-08 | 2001-06-08 | |
US60/296,797 | 2001-06-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2002101601A2 true WO2002101601A2 (en) | 2002-12-19 |
WO2002101601A3 WO2002101601A3 (en) | 2003-12-11 |
Family
ID=23143594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2002/018424 WO2002101601A2 (en) | 2001-06-08 | 2002-06-10 | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1407391A2 (en) |
JP (1) | JP2005518002A (en) |
KR (1) | KR20040032109A (en) |
CN (1) | CN1539113A (en) |
CA (1) | CA2450143A1 (en) |
IL (1) | IL159224A0 (en) |
WO (1) | WO2002101601A2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100382085C (en) * | 2004-07-07 | 2008-04-16 | 华为技术有限公司 | Board pattern designing method of integrated designing element in printed circuit board and its device |
CN102339342A (en) * | 2010-07-27 | 2012-02-01 | 中国科学院微电子研究所 | Method for fast materializing parameterization device unit |
CN117436379A (en) * | 2023-12-21 | 2024-01-23 | 成都行芯科技有限公司 | Through hole compression method and device, electronic equipment and storage medium |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7228514B2 (en) * | 2005-01-21 | 2007-06-05 | International Business Machines Corporation | Method, system and computer program product for automatically estimating pin locations and interconnect parasitics of a circuit layout |
WO2007002799A1 (en) * | 2005-06-29 | 2007-01-04 | Lightspeed Logic, Inc. | Methods and systems for placement |
US7752588B2 (en) | 2005-06-29 | 2010-07-06 | Subhasis Bose | Timing driven force directed placement flow |
US8332793B2 (en) | 2006-05-18 | 2012-12-11 | Otrsotech, Llc | Methods and systems for placement and routing |
US7840927B1 (en) | 2006-12-08 | 2010-11-23 | Harold Wallace Dozier | Mutable cells for use in integrated circuits |
US8463587B2 (en) * | 2009-07-28 | 2013-06-11 | Synopsys, Inc. | Hierarchical order ranked simulation of electronic circuits |
US9111245B2 (en) * | 2012-09-21 | 2015-08-18 | The Boeing Company | Displaying modeling data and logical data |
EP3030991A1 (en) * | 2013-08-06 | 2016-06-15 | ESS Technology, Inc. | Constrained placement of connected elements |
CN106777441B (en) * | 2015-11-24 | 2020-04-21 | 龙芯中科技术有限公司 | Timing constraint management method and device |
US20180060472A1 (en) * | 2016-08-30 | 2018-03-01 | Mediatek Inc. | Efficient cell-aware fault modeling by switch-level test generation |
CN113642280A (en) * | 2020-04-27 | 2021-11-12 | 中国科学院上海微系统与信息技术研究所 | Layout method of superconducting integrated circuit |
CN112395431B (en) * | 2021-01-18 | 2021-04-30 | 北京晶未科技有限公司 | Method for constructing behavior model, electronic device and electronic equipment |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996023263A1 (en) * | 1995-01-25 | 1996-08-01 | Lsi Logic Corporation | Timing shell generation through netlist reduction |
EP0806736A1 (en) * | 1996-05-10 | 1997-11-12 | Lsi Logic Corporation | Method for creating and using design shells for integrated circuit designs |
US5878053A (en) * | 1997-06-09 | 1999-03-02 | Synopsys, Inc. | Hierarchial power network simulation and analysis tool for reliability testing of deep submicron IC designs |
US5920484A (en) * | 1996-12-02 | 1999-07-06 | Motorola Inc. | Method for generating a reduced order model of an electronic circuit |
US6072945A (en) * | 1997-06-26 | 2000-06-06 | Sun Microsystems Inc. | System for automated electromigration verification |
WO2000039717A2 (en) * | 1998-12-29 | 2000-07-06 | Cadence Design Systems, Inc. | Functional timing analysis for characterization of virtual component blocks |
US6216252B1 (en) * | 1990-04-06 | 2001-04-10 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
-
2002
- 2002-06-10 JP JP2003504290A patent/JP2005518002A/en active Pending
- 2002-06-10 CA CA002450143A patent/CA2450143A1/en not_active Abandoned
- 2002-06-10 EP EP02739817A patent/EP1407391A2/en not_active Withdrawn
- 2002-06-10 CN CNA028152786A patent/CN1539113A/en active Pending
- 2002-06-10 IL IL15922402A patent/IL159224A0/en unknown
- 2002-06-10 WO PCT/US2002/018424 patent/WO2002101601A2/en active Application Filing
- 2002-06-10 KR KR10-2003-7016097A patent/KR20040032109A/en not_active Application Discontinuation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6216252B1 (en) * | 1990-04-06 | 2001-04-10 | Lsi Logic Corporation | Method and system for creating, validating, and scaling structural description of electronic device |
WO1996023263A1 (en) * | 1995-01-25 | 1996-08-01 | Lsi Logic Corporation | Timing shell generation through netlist reduction |
EP0806736A1 (en) * | 1996-05-10 | 1997-11-12 | Lsi Logic Corporation | Method for creating and using design shells for integrated circuit designs |
US5920484A (en) * | 1996-12-02 | 1999-07-06 | Motorola Inc. | Method for generating a reduced order model of an electronic circuit |
US5878053A (en) * | 1997-06-09 | 1999-03-02 | Synopsys, Inc. | Hierarchial power network simulation and analysis tool for reliability testing of deep submicron IC designs |
US6072945A (en) * | 1997-06-26 | 2000-06-06 | Sun Microsystems Inc. | System for automated electromigration verification |
WO2000039717A2 (en) * | 1998-12-29 | 2000-07-06 | Cadence Design Systems, Inc. | Functional timing analysis for characterization of virtual component blocks |
Non-Patent Citations (1)
Title |
---|
KAMON M ET AL: "Interconnect parasitic extraction in the digital IC design methodology" COMPUTER-AIDED DESIGN, 1999. DIGEST OF TECHNICAL PAPERS. 1999 IEEE/ACM INTERNATIONAL CONFERENCE ON SAN JOSE, CA, USA 7-11 NOV. 1999, PISCATAWAY, NJ, USA,IEEE, US, 7 November 1999 (1999-11-07), pages 223-230, XP010363806 ISBN: 0-7803-5832-5 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100382085C (en) * | 2004-07-07 | 2008-04-16 | 华为技术有限公司 | Board pattern designing method of integrated designing element in printed circuit board and its device |
CN102339342A (en) * | 2010-07-27 | 2012-02-01 | 中国科学院微电子研究所 | Method for fast materializing parameterization device unit |
CN117436379A (en) * | 2023-12-21 | 2024-01-23 | 成都行芯科技有限公司 | Through hole compression method and device, electronic equipment and storage medium |
CN117436379B (en) * | 2023-12-21 | 2024-04-09 | 成都行芯科技有限公司 | Through hole compression method and device, electronic equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN1539113A (en) | 2004-10-20 |
WO2002101601A3 (en) | 2003-12-11 |
JP2005518002A (en) | 2005-06-16 |
EP1407391A2 (en) | 2004-04-14 |
IL159224A0 (en) | 2004-06-01 |
CA2450143A1 (en) | 2002-12-19 |
KR20040032109A (en) | 2004-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7103863B2 (en) | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system | |
US7549134B1 (en) | Method and system for performing crosstalk analysis | |
US6665845B1 (en) | System and method for topology based noise estimation of submicron integrated circuit designs | |
US7962876B2 (en) | Generation of engineering change order (ECO) constraints for use in selecting ECO repair techniques | |
Bhasker et al. | Static timing analysis for nanometer designs: A practical approach | |
US6845494B2 (en) | Method for generating design constraints for modules in a hierarchical integrated circuit design system | |
US6286126B1 (en) | Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits using best and worst case delay models for nets therein | |
US7346867B2 (en) | Method for estimating propagation noise based on effective capacitance in an integrated circuit chip | |
US6449753B1 (en) | Hierarchical coupling noise analysis for submicron integrated circuit designs | |
US6507935B1 (en) | Method of analyzing crosstalk in a digital logic integrated circuit | |
US6782520B1 (en) | IC layout system having separate trial and detailed routing phases | |
WO2002101601A2 (en) | Representing the design of a sub-module in a hierarchical integrated circuit design and analysis system | |
US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
US6536022B1 (en) | Two pole coupling noise analysis model for submicron integrated circuit design verification | |
KR102103617B1 (en) | Automatic clock tree routing rule generation | |
Shepard et al. | Design methodology for the S/390 Parallel Enterprise Server G4 microprocessors | |
US11238202B2 (en) | Verifying glitches in reset path using formal verification and simulation | |
US7188327B2 (en) | Method and system for logic-level circuit modeling | |
US7979262B1 (en) | Method for verifying connectivity of electrical circuit components | |
US6550041B1 (en) | Method and apparatus for evaluating the design quality of network nodes | |
Palit et al. | Modeling and analysis of crosstalk coupling effect on the victim interconnect using the ABCD network model | |
Posser et al. | Electromigration Inside Logic Cells | |
US6321365B1 (en) | System and method for detecting storage nodes that are susceptible to charge sharing | |
US7191412B1 (en) | Method and apparatus for processing a circuit description for logic simulation | |
US11494540B1 (en) | Method, system, and computer program product for implementing electronic design closure with reduction techniques |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG UZ VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 159224 Country of ref document: IL |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2450143 Country of ref document: CA Ref document number: 2003504290 Country of ref document: JP Ref document number: 1020037016097 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1630/KOLNP/2003 Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2002739817 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 20028152786 Country of ref document: CN |
|
WWP | Wipo information: published in national office |
Ref document number: 2002739817 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |