US5461576A - Electronic design automation tool for the design of a semiconductor integrated circuit chip - Google Patents

Electronic design automation tool for the design of a semiconductor integrated circuit chip Download PDF

Info

Publication number
US5461576A
US5461576A US08115995 US11599593A US5461576A US 5461576 A US5461576 A US 5461576A US 08115995 US08115995 US 08115995 US 11599593 A US11599593 A US 11599593A US 5461576 A US5461576 A US 5461576A
Authority
US
Grant status
Grant
Patent type
Prior art keywords
slack
timing
placement
generator
constraints
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US08115995
Inventor
Ren-Song Tsay
Chwen-Cher Chang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synopsys Inc
Original Assignee
Arcsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Grant date

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/50Computer-aided design
    • G06F17/5045Circuit design
    • G06F17/505Logic synthesis, e.g. technology mapping, optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/50Computer-aided design
    • G06F17/5068Physical circuit design, e.g. layout for integrated circuits or printed circuit boards
    • G06F17/5072Floorplanning, e.g. partitioning, placement

Abstract

An electronic design automation tool embodiment uses a single slack graph structure throughout a process to provide communication between a placer (performing placement) and a timing constraint generator (performing slack distribution). The tool includes a slack graph generator, a timing calculator, a timing analyzer, a timing constraint generator and a net bounding box generator. A list of net constraints and a list of complete path constraints are fed to the slack graph generator during operation. Timing calculations from the delay calculator and zero net RC delays from a clustering process in a placer also provide input to the slack graph generator. The list of net constraints, a list of pin-to-pin constraints and a set of specifications for system clocking are input to the timing analyzer. The timing constraint generator receives a composite slack graph from the timing calculator, slack graph generator and timing analyzer. A refined slack graph is output to the net timing constraint generator for mincut placement and placement on an iterative basis. The net timing constraint can be presented in many format, such as limit on net bounding box.

Description

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to automatic integrated circuit placement and routing tools, and more particularly to timing-driven layout algorithms for standard-cell and gate-array design.

2. Description of the Prior Art

Traditional approaches for timing-driven layout include a net constraint approach and a path constraint approach.

In the net constraint approach, a user specifies fixed net constraint values across a design to guide a layout program. The strength of this approach is that it generally does not require much overhead in the run time, and thus commonly referred to as being a "fast" approach. However, its weaknesses include a difficulty in providing "good" net constraint values, and an inflexibility in sharing timing resources among several nets. A timing resource is a portion of the overall delay to be distributed through a physical layout. Different paths usually share common nets, thus complicating the problem. A burden is placed on a designer to divide path delays into net delays, albeit without much information as how the nets will eventually be physically laid out. This approach also includes the problem that such net

delay constraints become fixed constraints, and cannot be altered during layout. In a case where one of the nets in the path takes up a shorter than expected delay, there is no way to share this extra timing resource with other nets in the same path that have run into difficulty in meeting their own respective constraints.

Due to such severe drawbacks, the common way to use this approach involves having the designers constrain several timing critical nets, and hope that the overall timing target can still be met. In older semiconductor fabrication technology this was not a severe problem, the feature size of the silicon was larger and the parasitic delays, the so-called layout or interconnect delays, were smaller. If a designer was well disciplined during the logic design phase in taking the timing into consideration, even this approach can suffice for some lesser timing-restrictive circuits. However, as technology advances and the feature size of the silicon process becomes smaller, e.g. the sub-micron range, parasitic delays are becoming a principal timing concern, and traditional net constraint approaches are inadequate.

The path constraint approach, tries to constrain the whole path, not individual nets, to meet a timing target, represented as path delays. The relationships among different timing paths are complicated, and even a simple move of a cell location during the running of a layout program can affect the delays of many nets. This, in turn, can require a reevaluation of the delays on numerous paths. The extra overhead required for this kind of delay evaluation during a single run of layout can provoke millions of cell movements. This is why the number of path constraints has to be limited to a small number to make this approach practical, e.g., where a solution can be found in finite time.

Due to such drawbacks, designers commonly only constrain several of what they think may be the most critical of paths. However, there is no guarantee that these constraints will be satisfied by the layout program. Other unconstrained paths, which may comprise over 90% of the total paths, may not remain well behaved and can become new critical paths.

SUMMARY OF THE INVENTION

It is therefore an object of the present invention to provide an electronic design automation tool capable of concurrently handling all path timing constraints in an integrated circuit chip design.

It is a further object of the present invention to provide an electronic design automation tool that has a single slack graph structure used throughout that provides communication between a placer and a timing constraint generator.

Briefly, an exemplary embodiment of the present invention is an electronic design automation tool that uses a single slack graph structure throughout a process to provide communication between a placer (performing placement) and a timing constraint generator (performing slack distribution). The tool includes a slack graph generator, a timing calculator, a timing analyzer, a timing constraint generator and a net bounding box generator. A list of net constraints and a list of complete path constraints are fed to the slack graph generator during operation. Timing calculations from the delay calculator and zero net RC delays from a clustering process in a placer also provide input to the slack graph generator. The list of net constraints, a list of pin-to-pin constraints and a set of specifications for system clocking are input to the timing analyzer. The timing constraint generator receives a composite slack graph from the timing calculator, slack graph generator and timing analyzer. A refined slack graph is output to the net timing constraint generator for mincut placement and placement on an iterative basis. The net timing constraint can be presented in many format, such as limit on net bounding box.

An advantage of the present invention is that an electronic design automation tool is provided that is capable of covering all timing paths in a design by using a slack graph.

An advantage of the present invention is that an electronic design automation tool is provided that is very flexible and can be applied to either a partially placed or even an unplaced design.

Another advantage of the present invention is that an electronic design automation tool is provided in which the same concept can be applied to other applications for timing optimization, such as routing, Sizing and logic synthesis.

An advantage of the present invention is that an electronic design automation tool is provided in which path constraints can be easily derived with many commercially or academically available timing analyzers, Given a circuit's timing specification, e.g., the operating frequency, the input signal arrival times, etc.. A further advantage of the present invention is that an electronic design automation tool is provided in which all path constraints are treated for complete coverage of the timing specification of a design, thus eliminating the possibility of creating new critical paths when not considering all the paths.

A still further advantage of the present invention is that an electronic design automation tool is provided in which an adaptive feedback and divide-and-conquer approach is used to iteratively and Globally optimize the distribution of the path timing resource into individual nets, thus taking the advantage of the fast, net constraint based approach in achieving a shorter run time.

These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiment that is illustrated in the various drawing figures.

IN THE DRAWINGS

FIG. 1 is a block diagram a directory database for a place-and-route system embodiment of the present invention;

FIG. 2A represents an exemplary high-level design flow for a single-region design comprising only standard cells;

FIG. 2B represents an exemplary high-level design flow for a multiple-region design comprising both blocks and standard cells;

FIG. 3 is a block diagram of a timing-driven placement embodiment of the present invention;

FIG. 4A represents a seven node slack graph;

FIG. 4B represents a wire with two nodes; and

FIG. 5 shows the relationship between xi, xj, sj, and Sij ; and

FIG. 6 is a flowchart for a general slack graph based timing-driven layout architecture embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 illustrates a place-and-route system embodiment of the present invention, referred to by general reference numeral 10, for use with semiconductor integrated circuit (IC) designs that contain all standard cells, all blocks or a mixture of standard cells and blocks. System 10 includes in its database structure: a collection of cell libraries 12, at least one technology file 14, a plurality of cell library format files 16, a set of top design format files 18, at least one GDSII stream file and at least one EDIF file. The database of system 10 resides on a suitable computer platform.

Cell libraries 12 include a library directory 24 that is comprised of a plurality of layout cells 26, a plurality of pin/blockage cells 28, a plurality of netlist cells 30 and a plurality of expanded netlist cells 32. Cell libraries 12 also include a library information file 25.

In operation, a user imports a physical layout for a chip-under-design with one of the GDSII files 20 and a list of the wiring interconnections between devices with one of the EDIF files 22, that is informally referred to as a "net" or "netlist".

A utility package 34 provides for library creation and preparation; GDSII stream translation; blockage, pin, and via extraction; EDIF translation and netlist expansion.

System 10 can perform the following functions 10 automatically, with variable user input: floor-planning, including generation of cell regions sufficient to place all standard cells; standard cell placement; power and ground net routing; global routing; detail routing and pad routing. Although these operations can be done with very little user input, they do provide an opportunity for extensive user control. In addition, they can be used in conjunction with the manual capabilities of the system to produce the target results that are required by a user.

System 10 also preferably provides a capability to manually perform the following functions: cell region creation, block placement, pad and cell placement (before and after automatic placement), net routing before and after automatic routing and layout editing.

Verification functions included in system 10 ensure the integrity of a design after manual editing, design rule checking (DRC) and layout versus schematic comparison (LVS).

Utility package 36 allows system 10 to prepare data for export, e.g., GDSII stream translation and EDIF translation.

Cell libraries 12 include both top-level designs and the cells used in those designs. In some cases, cells in a library can include cells from other libraries. Instead of copying cells to multiple libraries, system 10 can reference the other libraries, as "reference libraries". Each library 12 has the library directory 24 that includes two or more binary files for defining each cell in the library. The library information file 25 is a binary file that includes information compiled from technology files 14, cell library format (CLF) files 16, and the cell files 26, 28, 30 and 32 that are inside the library directory 24. Binary files are not edited. A user can, however, change the technology and CLF files 14 and 16 by using utility package 34 to unload and reload these files. When unloading one of these files, utility package 34 places the information in an editable format, so that a user can modify it using a UNIX text editor 36.

Technology files 14 define the characteristics of a cell library, such as units of measure, graphical specifications, layer and device definitions, and design rules. CLF files 16 provide system 10 with library-specific information needed to extract pins and blockage areas, align standard cells, orient pads, and perform timing-driven placement. Top design format (TDF) files 18 are provided for each top-level design in a user's library. System 10 may include at least one TDF file 18, that provides system 10 with special instructions for planning, placing, and routing a design.

System 10 can include design data files in standard formats, e.g., GDSII stream, EDIF and custom. The GDSII stream and EDIF formats are well-known industry-standard interchange formats for transporting designs between different design environments. By using utility package 34, a user can translate GDSII Stream files to or from system 10.

A representation of a design is called a cell. For any design, the possible cells include: layout cells 26, that represent the physical layout of a design; pin/blockage cells 28, that represent the pins, blockage areas (areas where no routing on a particular layer can occur), and possibly via passages (areas where vias can be placed during routing); netlist cells 30, that represent a logical connectivity of a .design at a top level of hierarchy; and expanded netlist cells 32, that represent a logical connectivity of a design at enough levels of hierarchy to provide information necessary for binding with a physical layout. Other files, such as backup files, may be created as a user works with system 10.

FIG. 2A represents an exemplary high-level design flow 50 for a single-region design comprising only standard cells. Data is imported in a step 51. A step 52 does an initial floor-planning. A step 53 sets the floor-planning options. Cells are placed in a step 54. Power and ground nets are routed in a step 55. A global route is then done in a step 56. A step 57 checks the result of the routing. A detail route is done in a step 58. A route between pads is done in a step 59. The results are verified in a step 60. The results are exported in a step 61, concluding process 50.

FIG. 2B represents an exemplary high-level design flow 70 for a multiple-region design comprising both blocks and standard cells. Data is imported in a step 71. A step 72 does an initial floor-planning. A step 73 sets the floor-planning options. Regions are created in a step 74. Cells are assigned to regions in a step 75. Power and ground nets are routed in a step 76. Region pins are created in a step 77. A global route between regions is then done in a step 78. A step 79 checks the result of the routing. Steps 78 and 79 may be omitted. A region is placed in a step 80. The power and ground nets are re-routed in a step 81. Clock nets are routed in a step 82. Region pins are re-created in a step 83. The placement is refined in a step 84. A global route between regions is done in a step 85. A step 86 checks to see if the routing was acceptable. Steps 85 and 86 are optional, and may be omitted. A step 87 does a global route between regions. A detail route between regions is done in a step 88. Region pins are re-created in a step 89. Another region is placed in a step 90. Power and ground nets are re-routed in a step 91. Region pins are re-created in a step 92. The placement is refined in a step 93. A global route between the placed regions is done in a step 94. A detail route between placed regions is done in a step 95. A step 96 checks to see if all regions have been routed. If so, a step 97 re-routes the power and ground nets. The clock nets are re-routed in a step 98. A global route between regions is done in a step 99. A detail route between regions is done in a step 100. A route between pads is done in a step 101. The end result is verified in a step 102. The results are exported in a step 103, thus concluding process 70.

For timing-driven placement, a user loads a CLF file 16 containing predefined timing functions. Typically, such functions include:

"definePortCapacitance", which defines the actual capacitance of a port;

"definePortResistance", which defines the actual output resistance of a port;

"defineRampFactor", which defines the ramp factor for an input port, the ramp factor adjusts all delays from a specified input port to all associated output ports;

"defineTimeIn", which specifies the internal delay of a cell between two specified ports; and

"setPortDirection", which defines the direction (input, output, or both) of a port.

During placement, system 10 attempts to place cells connected to nets closer together that require faster signal speeds. The nets to be constrained are identified by a user by name, and minimum and maximum values are entered for both rise and fall times. A user may also enter minimum and maximum net capacitance values to constrain the placer.

System 10 provides the following commands to monitor the timing of a user's design as the user proceeds through the design process:

"Timing>Net" reports timing information for a specified net;

"Timing>Path" reports timing information for a specified path; and

"Timing>LPE" reports parasitic information for specified nets.

The "Timing>Net" command reports timing information for a specified net and displays Net Timing in a form on a display screen window. If a user requires pre-routing estimates, a user need to load any CLF timing functions a user want considered and perform placement. If a user want post-routing estimates, a user need to perform routing.

Net timing estimates can be based on placement versus routing, wherein the design phase for which a user wants timing information is selected with a phase options. For example, "before routing" reports estimates based on single-trunk Steiner tree routing, and "after routing" reports estimates based on the actual routing.

Net timing estimates can be based on different calculation models, wherein a model a user wants system 10 to use in calculation of the estimates is selected by a model options. For example, "lump" provides faster but less accurate estimates, and "RC tree" provides slower but more accurate estimates.

The "Timing>Path" command reports timing information for a specified path and displays the path timing in a form on the display screen window. After entering a path name and selecting options, a user clicks "OK" to display the information in a messages area of the window.

A user defines a path using a "pathDelay" TDF file 18 function. Any CLF file 16 timing functions a user wants considered are loaded, and placement is started. Post-routing estimates can follow the routing.

Path timing estimates can be based on placement versus routing, wherein the design phase has phase options that can be selected. For example, "before routing" reports estimates based on single-trunk Steiner tree routing, and "after routing" reports estimates based on the actual routing.

Path timing estimates can be based on different calculation models, wherein a user selects the model system 10 is to use in calculating the estimates. One of the model options are selected, such as "lump" provides faster but less accurate estimates, and "RC tree" provides slower but more accurate estimates.

If a user wants system 10 to highlight a path, a "visible" option and one or both of the following can be chosen, "flash", which causes the path to blink, and "color", which sets the color in which a highlighted path is displayed.

The "Timing>LPE" command reports interconnect parasitic capacitance and resistance for specified nets in the window. After entering a "Net Name" (or multiple net names separated with commas) and selecting options on this form, a user clicks "OK" to display a report in a text window, for example:

______________________________________LPE ReportThe lumped RC for net n2316 CAP:minFallCap 25.006000maxFallCap 25.000000minRiseCap 25.000000minRiseCap 25.000000for RES:minFallRes:4000.000000maxFallRes:8000.000000minRiseRes:4000.000000maxRiseRes:4000.000000The wire length for net n2316 is:wire length for METAL1:0wire length for METAL2:0wire length for METAL3:17wire Length for P0LY:0number of via(connect METAL1 & METAL2:0number of via(connect METAL2 & METAL3:0number of contact(connect P0LY & METAL1:0TREE REPORT FORMAT FOR net:n2316CO 1 2 L=0 W=0CO i 2 L=0 W=O.END______________________________________

When a user requires pre-routing estimates, CLF timing parameters to be considered are loaded before placement. Post-routing estimates can be obtained after routing.

Estimates can be based on placement versus routing, wherein the design phase for which a user want parasitic information is selected by a phase options, e.g., "before routing" and "after routing".

Information included in a report can be selected by a report options. SPICE format reports can also be generated. For example, "lumped RC" reports resistance and capacitance for the specified nets, "lumped wire length" reports wire length for the specified nets, and "SPICE format" reports all information in SPICE format.

FIG. 3 illustrates an exemplary implementation of a timing system 110 included in the place-and-route system 10. Timing system 110 has a clustering process 112 that feeds a zero net (port-to-port) resistive-capacitive (RC) delay to a slack graph generator (SGG) 114. A net constraints file 116 and a complete path constraints file 118 provide SGG 114 with a user's design with constraints. A slack graph is generated and fed to a timing constraint generator (TCG) 120, which computes nodal slacks, edge slacks, arrival time improvements and required time improvements required at particular nodes. A net bounding box generator (NBBG) 122 receives a slack graph and drives a mincut placement process 124, which produces an initial placement that is fed back to a timing calculator 126. An updated slack graph is output by timing calculator 126 to both SGG 114 and TCG 120. A more refined slack graph is output to NBBG 122 which drives a placement process 128. A decision is made in a process 130 whether placement with timing is completed.

A slack graph can also be generated from pin-to-pin timing constraints file 132 (e.g., from TDF file 18) and a system clock specification file 134 (e.g., also from TDF file 18). A timing analyzer 136 merges these inputs to make appropriate adjusts to the slack graphs.

For purposes of theoretical discussion, Fig. 4A illustrates a network with three input nodes, "a", "b" and "c", a pair of intermediate nodes "d" and "e", and a pair of output nodes "f" and "g". Six constrainable paths can be defined, as follows:

1. path a-d-e- f;

2. path a-d-e-g;

3. path b-d-e- f;

4. path b-d-e-g;

5. path c-d-e-f; and

6. path c-d-e-g.

A-user typically constrains the timing delays of one or more of these six paths or individual legs a-d, b-d, c-d, d-e, e-f and e-g by specifying the corresponding times in file 116 or 118 (Fig. 3). It will usually be the case that one of the paths is critical. A slack graph for the circuit in FIG. 4A can be generated on the same network after calculating particular attributes for the nodes and edges.

FIG. 4B illustrates a single wire network with two nodes, "i" and "j". For nodei, nodal slack (si) is defined as the'difference between the required (constrained) time of arrival (tri) and the expected arrival time (tai) of a signal, where si =tri -tai. Edge slack (Si) is defined as the difference between the required (constrained) time of arrival (trj) and the expected arrival time (tai) of a signal plus the delay between nodei and nodej (dij), which is expressed,

S.sub.ij =t.sub.rj -(t.sub.ai +d.sub.ij).

The arrival time improvement needed at nodei (xi) is therefore the original expected arrival time (tai) minus an updated expected arrival time (tai '),

(x.sub.i)=(t.sub.ai)-(t.sub.ai ').

The required arrival time improvement at nodej (yj) is thus the updated required arrival time (trj ') minus the required arrival time (trj), which typically comes after each cell placement change, and is

(y.sub.j)=(t.sub.rj ')-(t.sub.rj).

The goal is to arrive at the correct timing result after update. The updated arrival time should be no later than the updated arrival time, i.e.,

t'.sub.ai ≦t'.sub.ri.

Without going into excessive detail regarding the optimization process, it can be general concluded that an appropriate optimization process will make an improvement that is exactly equal to the "negative slack" time required for correct timing. Therefore, at nodei,

x.sub.i +y.sub.i =-s.sub.i,

30 or,

y.sub.i =-(x.sub.i +s.sub.i),

and at edgeij,

x.sub.i +y.sub.j +Δ(d.sub.ij)=-S.sub.ij,

and eliminating the y variable yields,

Δ(d.sub.ij)=(x.sub.j +s.sub.j)-(x.sub.i +s.sub.ij),

where Δ(dij) is the delay improvement of edgeij, to

be calculated.

TCG 120 makes such computations for all the nodes described in the net from SGG 114 and understands dij from both initial and refined placement inputs from processes 112, 124 and 128.

Timing constraint generator 120 determines the edge delay improvement Δdij, in an attempt to minimize the sum effect of all placement perturbations relative to previously placed cells. Expressed as a formula, ##EQU1## where Ri is chosen such that ##EQU2## is roughly proportional to change in wire length (Δl) between nodes to achieve the required timing. Ri can be estimated from the driving resistance, loading capacitance and per unit wire capacitance and resistance. This optimization problem can be viewed as a component placement problem in which xi is the component location, 1/Ri 2 is the equivalent connectivity cij between components i and j, and si, Sij are pin offsets as illustrated in FIG. 5. The optimum edge delay improvement Δdij determined by the timing constraint generator can be used directly as a placement constraint. However, in order to speed placement optimization, the net bounding box generator 122 is used to generate net length constraints from Δdij.

Linear programming can be used to solve the whole formulation, but it is not sufficiently effective for practical use. Therefore, a more efficient algorithm such as a quadratic placement optimization algorithm can be used by treating xi as a cell location, and si and Sij as pin offset locations, as shown in FIG. 5.

Boundary conditions of the primary input and output pins are calculated as the following,

for each primary input pin x.sub.i =0, and

for each primary output pin x.sub.i =s.sub.i,

where primary input pins are the nodes without input edges, and primary output pins are the nodes without output edges.

To reprocess gate-internal edge and fixed-constraint edge with fixed net constraint, a net "bias" is introduced to simplify the calculation by observing the following equality equation,

Δ(d.sub.ij)=(x.sub.j +s.sub.j)-(x.sub.i +S.sub.ij).

By letting the "bias" Bij =sj +Δ(dij)-Sij, then xj may be converted to,

x.sub.j =x.sub.i +B.sub.ij.

For a next stage k, ##EQU3## where Bjk is defined to be equal to Bij +Bjk.

An algorithm with four steps that embraces the present invention thus comprises:

(1) calculating net "Dias";

(2) determining boundary conditions of primary input and output pins;

(3) concurrently time marking each source node with an accumulated bias;

(4) determine the optimum Δdij.

Representations of the path constraints in traditional timing-driven layout approaches often prove to be the bottlenecks. The number of path constraints in general increases exponentially with respect to the size of the circuit. For larger designs, the volume of path constraints, if listed one by one, could take up so much disk and memory that all path representation becomes impractical. In the present invention, a compact SLACK GRAPH representation is used to hold the all path constraint information as well as to be used as a communication vehicle among different modules of the system. The size of the slack graph is, in general, proportional to the size of the circuit, and thus is very manageable.

In FIG. 6, a more general timing-driven design architecture using a slack graph is shown. A timing specification 200 for a design is input by a designer to a timing analyzer 202, which then traces the circuit logic and translates this information into a set of path constraints represented by a slack graph 204. The slack graph 204 can be implemented in computer program code, as follows:

______________________________________slack graph structnumofNode;numofEdge;node [numofNode];# array of node structedge [numofEdge];# array of edge structnumofpathStart;numofpathEnd;arrivalTimestartArrivalTime[numofstartArrTime];arrivalTimeendReqArrivalTime[numofEndArrTime];}______________________________________

First there are the definitions:

node - a connecting point; .provides connectivity from one component to another or within the same component in the design.

edge - a connectivity between to nodes.

and thus,

numOfNode--the number of nodes in the design as defined by the slack graph.

numofEdge--the number of edges in the design as defined by the slack graph.

node[numOfNode]--an array of node struct (defined later) storing information pertinent to a node.

edge[numofEdge]--an array of edge struct (defined later) storing information pertinent to an edge.

numOfPathStart--the number of path starting points.

numofPathEnd--the number of path end points.

startArrivalTime[numofStartArrTime]--an array of struct arrivalTime (defined later) storing the arrival time information for path starting point.

endReqArrivalTime[numofmndArrTime]--an array of struct arrivalTime (defined later) storing the required arrival time information for path end points.

The slack graph 204 includes a path topology, e.g., nodes and edges, a set of arrival times at the path starting points and a set of required arrival times at the path end points. The slack graph 204 completely defines the path constraints of the design. The arrival times and the required arrival times can be specified for both the longest delays and the shortest delays. The longest delay is the actual path delays after timing-driven layout cannot be longer than the specified required values. The shortest delay is the actual path delay after timing-driven layout cannot be shorter than the specified required values.

In the following exemplary computer program code, the struct node, edge, and arrivalTime are defined:

______________________________________    node struct {         componentName;         pinName;         slack;    }    edge struct {         fromNode;         toNode;         delay;         minDelay;         maxDelay;         slack;    }    arrivalTime struct {         node;         arrivalTime;    }______________________________________

The slack is defined as the difference between the worst case required arrival time and the worst case actual arrival time. In the case of longest delay, the slack is the difference between the earliest required arrival time and the latest actual arrival time on that node or edge. In the case of shortest delay, the slack is the difference between the latest required arrival time and the earliest actual arrival time on that node or edge.

The delay in the edge struct is used to store the signal propagation delay through that edge. The minDelay and maxDelay are used to constrain the edge delay values during optimization and is equivalent to the traditional net delay constraint.

The arrivalTime can be the longest or the shortest arrival time and they can further be divided into different values for the rising and falling signals.

The slack graph 204 generated by the timing analyzer 202 will respectively have all the topology information and the arrival time and required arrival time information for the path starting and end points. The topology information includes how the nodes are connected through edges and provides the path starting and end points.

This slack graph is then passed to a slack graph processor 206 to store the edge delay values into each edge. The delay values can be either obtained from the component's database, e.g., the "cell library", or calculated based on the current layout information. The graph is then traced to allow the identification of the worst case slacks on each node and edge. There may be multiple slack values on a node or edge depending on the particular path.

As a byproduct, the slack graph processor 206 also identifies the physically infeasible path constraints and can provide early warning to a designer. The physically infeasible path constraint means that no matter how close the components on a path are put together, it is still impossible to meet the required path delay value.

The slack information provides an insight into the overall distribution of the timing resource for the whole design. It identifies the edges that are timing-critical and those that are timing-resourceful and is now ready to be passed on in a slack graph 208 to a timing constraint optimizer 210.

The timing constraint optimizer 210 utilizes a global optimization algorithm to optimize the distribution of the timing resource for the whole design. It takes the edge delays and the node/edge slacks as the initial condition and considers factors like the driving strength and the relative loading of the component/pin, and the min/max edge delay constraints during optimization. Timing constraint optimizer 210 then updates the slack graph with a new set of optimized edge delays that guarantee all the path constraints. After the optimization the timing resource along the most critical paths will be fully utilized while for other non-critical paths, the timing resource will probably be a little under utilized. But for all the paths, there will be none that over utilizes the timing resource derived from the constraint values and thus guarantee the all path constraints.

At this stage, the original path constraints are globally optimized and, base on the current layout status, optimally distributed into net delay constraints. This set of net constraints are generated With a global picture of the design's timing resource, guarantees the path constraints and the traditional net constraints, if any, e.g., the min/max edge delay, and is not a fixed set of constraint values used throughout the layout process. This optimization step is iterated several times during a layout process. Each time taking the advantage of the up-to-date layout status for further optimization.

A slack graph 212 communicates the set of net constraints that are then used by a layout program 214 to guide a layout optimization algorithm. The run time overhead for imposing the net constraints onto the layout algorithm is negligible.

At several break points during the layout optimization process, the layout status, such as component's physical locations, is passed in a slack graph 216 to the slack graph processor 206. The edge delays are re-calculated and the slacks are recalibrated. The flow thus repeats, and the iterations are carried out throughout the layout process.

The real run time overhead for this architecture dependson the slack graph processor 206, the timing constraint optimizer 210 and the number of iterations performed during a layout process. It has been determined that the run times for both the slack graph processor 206 and the timing constraint optimizer 210 are reasonable and are proportional to the size of the design, while the number of iterations required is generally below ten (normally six or seven) for achieving the path constraints physically. It has been observed that the run times are doubled or better, even in designs having all path constraints.

A single slack graph structure is used throughout the process providing communication between the layout algorithm and the timing constraint generator (performing slack distribution). This architecture is very flexible and can be applied to either a partially laid out or even a design that has not been laid out. The same techniques can be applied to other applications for timing optimization, such as sizing, power optimization, timing-driven routing and timing-driven logic synthesis.

Although the present invention has been described in terms of the presently preferred embodiments, it is to be understood that the disclosure is not to be interpreted as limiting. Various alterations and modifications will no doubt become apparent to those skilled in the art after having read the above disclosure. Accordingly, it is intended that the appended claims be interpreted as covering all alterations and modifications as fall within the true spirit and scope of the invention.

Claims (7)

What is claimed is:
1. An electronic design automation tool for the physical circuit design of a semiconductor integrated circuit (IC) chip from circuit and timing requirements, comprising:
a slack graph generator and processor for receiving a list of complete path constraints, a list of net constraints, a list of current-iteration edge delays, and for outputting for subsequent timing constraint generation a plurality of slack graphs with current-iteration slack values that represent a particular tentative physical placement of circuit nodes on said IC chip and their consequential signal propagation distances from one another expressed in time;
a timing calculator for receiving an initial placement information for the physical location of said circuit nodes on said IC chip and a refined placement information from a placer, and for calculating said list of current-iteration edge delays given said particular tentative physical placement of said circuit nodes;
a timing analyzer for receiving a set of specifications for system clocking, a list of combinational pin-to-pin constraints, a list of net constraints, and for outputting a plurality of slack graphs during an initialization stage in lieu of said slack graphs from the slack graph generator and processor, wherein each of said slack graphs represent a particular tentative physical placement of circuit nodes on said IC chip and their consequential signal propagation distances from one another expressed in time;
a timing constraint generator for generating a composite slack graph from slack graph inputs from the timing calculator, the slack graph generator and processor and the timing analyzer and including optimization means for minimizing a sum effect of all placement perturbations of the tentative physical to previously physically placed cells on said IC chip, expressed in formula form as: ##EQU4## where ##EQU5## is roughly proportional to a change in wire length (Δ1) between nodes to achieve the required timing, Ri is estimated from the driving resistance, loading capacitance and per unit wire capacitance and resistance, such optimization being viewed as a component placement problem in which xi, xi is the component location, 1/Ri 2 is the equivalent connectivity cij between components i and j, and sj Sij are pin offsets and the optimum edge delay improvement Δdij, as determined by the timing constraint generator, is used directly as a placement constraint; and
a net bounding box generator for inputting said composite slack graph and for converting delay constraints into placement constraints to drive a placement process in said placer on an iterative basis, wherein the net bounding box generator generates net length constraints from Δdij for speed placement optimization;
wherein a last modified one of said slack graphs represents an ultimate description of the physical placement of circuit nodes that satisfies an input circuit design netlist and timing requirement.
2. An electronic design automation tool for the design of a semiconductor integrated circuit chip, comprising:
a slack graph having data storage for a plurality of representations for a netlist with nodes and edges between nodes, netlist connectivity of said nodes required to form a circuit, edge delay times, next target edge delays and slack times for edges and nodes, wherein the edge slack time is the difference between a required signal arrival time at a destination node and the sum of actual signal arrival times at a source node and an edge delay, and the node slack time is the difference between actual signal arrival time, given the current placement iteration, and target signal arrival time at a node;
a first iterative optimizer means including a placer connected to receive a plurality of next-target edge delays from the slack graph for adjusting a representation of the physical placement of said nodes, wherein said placement affects said edge delay times with a placer objective of achieving said next target edge delays between said placed nodes;
a timing calculator connected to receive a current-iteration physical node placement information from the placer for calculating the resulting edge delay times between said place-adjusted nodes;
a slack graph generator and processor connected to receive said calculated edge delay times from the timing calculator and for annotating and updating said slack graph edge delay times with said current-iteration calculated edge delay times and for correspondingly adjusting said slack time representations; and
a second iterative optimizer means including a timing constraint generator connected to receive said slack graph from the slack graph generator and processor for timing resource allocation by comparing an overall netlist design delay to an overall circuit delay computed from accumulated edge delay times of said current-iteration physical node placement information and, based on said comparison, for generating to the slack graph a new set of said target edge delays for recirculation through the slack graph to the placer for a next iteration, and wherein timing constraints on each of a plurality of nodes and a plurality of edge delays between said each of said nodes are individually precomputed and represented as slack and an arrival time improvement is computed for each;
wherein the first and second iterative optimizers respectively optimize placement and optimize intermediate edge delays on a global, overall circuit design level.
3. The tool of claim 2, further comprising:
a complete path constraints file means connected to provide an input of a user's design with constraints to the slack graph generator and processor, wherein an initial data set of said representations is generated and loaded into the slack graph, which, in turn, is fed for the first time to the timing constraint generator.
4. The tool of claim 3, further comprising:
a net constraints file means connected to provide an input of a user's design with constraints to the slack graph generator and processor.
5. The tool of claim 2, further comprising:
a net bounding box generator connected to receive said slack graphs from the timing constraint generator for converting target edge delays into placement constraints and to the placer for producing a placement for a next iteration.
6. The tool of claim 2, further comprising:
a timing analyzer for merging input information from included system clock specification file means and pin-to-pin timing constraints file means and for generating an initial data set of said representations to said slack graph and the timing constraint generator.
7. An electronic design automation tool for the physical circuit design of a semiconductor integrated circuit (IC) chip from circuit and timing requirements, comprising:
a slack graph generator and processor for receiving a list of complete path constraints, a list of net constraints, a list of current-iteration edge delays, and for outputting for subsequent timing constraint generation a plurality of slack graphs with current-iteration slack values that represent a particular tentative physical placement of circuit nodes on said IC chip and their consequential signal propagation distances from one another expressed in time;
a timing calculator for receiving an initial placement information for the physical location of said circuit nodes on said IC chip and a refined placement information from a placer, and for calculating said list of current-iteration edge delays given said particular tentative physical placement of said circuit nodes;
a timing analyzer for receiving a set of specifications for system clocking, a list of combinational pin-to-pin constraints, a list of net constraints, and for outputting a plurality of slack graphs during an initialization stage in lieu of said slack graphs from the slack graph generator and processor, wherein each of said slack graphs represent a particular tentative physical placement of circuit nodes on said IC chip and their consequential signal propagation distances from one another expressed in time; and
a timing constraint generator for generating a composite slack graph from slack graph inputs from the timing calculator, the slack graph generator and processor and the timing analyzer and including optimization means for minimizing a sum effect of all placement perturbations of the tentative physical to previously physically placed cells on said IC chip, expressed in formula form as: ##EQU6## where ##EQU7## where is roughly proportional to a change in wire length (Δ1) between nodes to achieve the required timing, Ri is estimated from the driving resistance, loading capacitance and per unit wire capacitance and resistance, such optimization being viewed as a component placement problem in which xi, xj is the component location, 1/Ri 2 is the equivalent connectivity cij between components i and j, and sj, sij are pin offsets and the optimum edge delay improvement Δdij, as determined by the timing constraint generator, is used directly as a placement constraint;
wherein a last modified one of said slack graphs represents an ultimate description of the physical placement of circuit nodes that satisfies an input circuit design netlist and timing requirement.
US08115995 1993-09-01 1993-09-01 Electronic design automation tool for the design of a semiconductor integrated circuit chip Expired - Lifetime US5461576A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08115995 US5461576A (en) 1993-09-01 1993-09-01 Electronic design automation tool for the design of a semiconductor integrated circuit chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08115995 US5461576A (en) 1993-09-01 1993-09-01 Electronic design automation tool for the design of a semiconductor integrated circuit chip

Publications (1)

Publication Number Publication Date
US5461576A true US5461576A (en) 1995-10-24

Family

ID=22364627

Family Applications (1)

Application Number Title Priority Date Filing Date
US08115995 Expired - Lifetime US5461576A (en) 1993-09-01 1993-09-01 Electronic design automation tool for the design of a semiconductor integrated circuit chip

Country Status (1)

Country Link
US (1) US5461576A (en)

Cited By (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644498A (en) * 1995-01-25 1997-07-01 Lsi Logic Corporation Timing shell generation through netlist reduction
US5663889A (en) * 1993-12-28 1997-09-02 Fujitsu Limited Apparatus for computing delay time of integrated circuit
US5666290A (en) * 1995-12-27 1997-09-09 Vlsi Technology, Inc. Interactive time-driven method of component placement that more directly constrains critical paths using net-based constraints
US5726918A (en) * 1995-06-05 1998-03-10 Synopsys, Inc. Tool, system and method for dynamic timing analysis in a plural-instance digital system simulation
US5751596A (en) * 1995-07-27 1998-05-12 Vlsi Technology, Inc. Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
US5774367A (en) * 1995-07-24 1998-06-30 Motorola, Inc. Method of selecting device threshold voltages for high speed and low power
US5778216A (en) * 1995-06-30 1998-07-07 Cadence Design Systems, Inc. Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
US5796638A (en) * 1996-06-24 1998-08-18 The Board Of Trustees Of The University Of Illinois Methods, apparatus and computer program products for synthesizing integrated circuits with electrostatic discharge capability and connecting ground rules faults therein
US5812431A (en) * 1994-06-13 1998-09-22 Cadence Design Systems, Inc. Method and apparatus for a simplified system simulation description
US5815406A (en) * 1996-03-25 1998-09-29 International Business Machines Corporation Method and system for designing a circuit using RC and timing weighting of nets
US5825661A (en) * 1996-05-01 1998-10-20 International Business Machines Corporation Method and apparatus for automatic post-layout optimization of an integrated circuit
US5838580A (en) * 1996-06-20 1998-11-17 Sun Microsystems, Inc. Method of optimizing repeater placement in long lines of a complex integrated circuit
US5845233A (en) * 1997-07-30 1998-12-01 Lucent Technologies, Inc. Method and apparatus for calibrating static timing analyzer to path delay measurements
US5870309A (en) * 1997-09-26 1999-02-09 Xilinx, Inc. HDL design entry with annotated timing
US5877965A (en) * 1996-06-24 1999-03-02 International Business Machines Corporation Parallel hierarchical timing correction
US5883808A (en) * 1996-01-30 1999-03-16 Nec Corporation Logic circuit optimization apparatus and its method
US5883811A (en) * 1994-04-25 1999-03-16 Cadence Design Systems, Inc. Method for electric leaf cell circuit placement and timing determination
US5892685A (en) * 1993-09-28 1999-04-06 Fujitsu Limited Packaging design system for an LSI circuit
US5894419A (en) * 1997-04-21 1999-04-13 International Business Machines Corporation System and method for robust clocking schemes for logic circuits
US5896301A (en) * 1996-10-25 1999-04-20 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis using multi-dimensional feedback in a histogram and integrated circuit made using same
US5896300A (en) * 1996-08-30 1999-04-20 Avant| Corporation Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits by filtering timing error bounds for layout critical nets
US5903472A (en) * 1996-10-25 1999-05-11 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis by selectively displaying signal paths based on slack time calculations and integrated circuit made using same
US5910899A (en) * 1996-10-25 1999-06-08 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis using multi-dimensional feedback in a spreadsheet with computed hyperlinks to physical layout graphics and integrated circuit made using same
US5926397A (en) * 1996-03-06 1999-07-20 Sharp Kabushiki Kaisha Routing design method and routing design apparatus
US5930148A (en) * 1996-12-16 1999-07-27 International Business Machines Corporation Method and system for verifying a digital circuit design including dynamic circuit cells that utilize diverse circuit techniques
US5949690A (en) * 1997-09-26 1999-09-07 Xilinx, Inc. Schematic design entry with annotated timing
US5953236A (en) * 1995-10-31 1999-09-14 Vlsi Technology, Inc. Method and apparatus for implementing engineering change orders in integrated circuit designs
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
WO1999052049A2 (en) * 1998-04-02 1999-10-14 Magma Design Automation, Inc. Method of designing a constraint-driven integrated circuit layout
US5991521A (en) * 1997-03-31 1999-11-23 International Business Machines Corporation Method and system of checking for open circuit connections within an integrated-circuit design represented by a hierarchical data structure
US5999715A (en) * 1995-09-29 1999-12-07 Nec Corporation Circuit delay optimizing using circuit arrangement, layout information, and wiring delay information
US6009253A (en) * 1996-06-20 1999-12-28 Sun Microsystems, Inc. Spare repeater amplifiers for long lines on complex integrated circuits
US6009252A (en) * 1998-03-05 1999-12-28 Avant! Corporation Methods, apparatus and computer program products for determining equivalencies between integrated circuit schematics and layouts using color symmetrizing matrices
US6014506A (en) * 1995-10-31 2000-01-11 Vlsi Technology, Inc. Method and apparatus for improving engineering change order placement in integrated circuit designs
US6028995A (en) * 1998-03-31 2000-02-22 Lsi Logic Corporation Method of determining delay in logic cell models
US6058252A (en) * 1995-01-19 2000-05-02 Synopsys, Inc. System and method for generating effective layout constraints for a circuit design or the like
US6099581A (en) * 1996-09-10 2000-08-08 Fujitsu Limited Layout database for a computer aided design system
US6209123B1 (en) 1996-11-01 2001-03-27 Motorola, Inc. Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors
US6240376B1 (en) 1998-07-24 2001-05-29 Mentor Graphics Corporation Method and apparatus for gate-level simulation of synthesized register transfer level designs with source-level debugging
US6240541B1 (en) * 1995-04-07 2001-05-29 Fujitsu Limited Interactive circuit designing apparatus which displays a result of component placement and wire routing from a layout design unit
US6272668B1 (en) 1994-12-14 2001-08-07 Hyundai Electronics America, Inc. Method for cell swapping to improve pre-layout to post-layout timing
US6282695B1 (en) 1998-12-16 2001-08-28 International Business Machines Corporation System and method for restructuring of logic circuitry
US6292928B1 (en) 1998-01-13 2001-09-18 Matsushita Electric Industrial Co., Ltd. Line path determining method and delay estimating method
US6330707B1 (en) * 1997-09-29 2001-12-11 Matsushita Electric Industrial Co., Ltd. Automatic routing method
US6336087B2 (en) * 1998-07-24 2002-01-01 Luc M. Burgun Method and apparatus for gate-level simulation of synthesized register transfer level design with source-level debugging
US6339835B1 (en) 1999-06-10 2002-01-15 International Business Machines Corporation Pseudo-anding in dynamic logic circuits
US6349402B1 (en) * 1998-07-09 2002-02-19 Kuoching Lin Method and apparatus for optimizing differential pairs based on timing constraints
US6457165B1 (en) * 1998-11-30 2002-09-24 Yazaki Corporation Wiring harness arrangement designing apparatus and method therefor
US6460166B1 (en) 1998-12-16 2002-10-01 International Business Machines Corporation System and method for restructuring of logic circuitry
US6467072B1 (en) * 1998-11-20 2002-10-15 Via Technologies, Inc. Method of placement and routing for an array device
US6487705B1 (en) * 2001-09-05 2002-11-26 Nec Electronics, Inc. Timing optimization and timing closure for integrated circuit models
US6507807B1 (en) * 1999-08-13 2003-01-14 Hewlett-Packard Company Method and apparatus for determining which branch of a network of an integrated circuit has the largest total effective RC delay
US6523154B2 (en) * 2000-12-14 2003-02-18 International Business Machines Corporation Method for supply voltage drop analysis during placement phase of chip design
US6539528B2 (en) 2000-04-06 2003-03-25 Samsung Electronics Co., Ltd. Methods, systems, and computer program products for designing an integrated circuit that use an information repository having circuit block layout information
US20030163797A1 (en) * 2002-02-27 2003-08-28 Lsi Logic Corporation System and method for identifying and eliminating bottlenecks in integrated circuit designs
US20030171907A1 (en) * 2002-03-06 2003-09-11 Shay Gal-On Methods and Apparatus for Optimizing Applications on Configurable Processors
US6643834B2 (en) * 2001-09-14 2003-11-04 Mitsubishi Denki Kabushiki Kaisha Method of and apparatus for designing layout of analog cells, and computer product
US20030237072A1 (en) * 2002-06-19 2003-12-25 Melli Bruno P. Systems and methods for generating an artwork representation according to a circuit fabrication process
US20040025134A1 (en) * 2002-08-02 2004-02-05 Jung Dae Suk Method and apparatus for assigning nets to metal layers during circuit routing
US6732340B1 (en) * 1999-07-26 2004-05-04 Matsushita Electric Industrial Co., Ltd. Method for designing a semiconductor integrated circuit which includes consideration of parasitic elements on critical data paths
US20040221252A1 (en) * 2003-04-29 2004-11-04 International Business Machines Corporation Method for static timing verification of integrated circuits having voltage islands
US6836753B1 (en) 2001-06-13 2004-12-28 Cadence Design Systems, Inc. Cone slack allocator for computing time budgets
US20050086626A1 (en) * 2001-07-11 2005-04-21 Fujitsu Limited Electronic circuit designing method and apparatus, and storage medium
US6889370B1 (en) * 2000-06-20 2005-05-03 Unisys Corporation Method and apparatus for selecting and aligning cells using a placement tool
US6901571B1 (en) * 1998-01-21 2005-05-31 Lsi Logic Corporation Timing-driven placement method utilizing novel interconnect delay model
US20050120319A1 (en) * 1997-12-24 2005-06-02 Van Ginneken Lukas P. Timing closure methodology
US6931610B1 (en) * 2000-05-12 2005-08-16 Magma Design Automation, Inc. Method for rapid estimation of wire delays and capacitances based on placement of cells
US20060048085A1 (en) * 2004-09-01 2006-03-02 Sean Tyler Method and system for performing timing analysis on a circuit
US7047163B1 (en) 2000-03-13 2006-05-16 International Business Machines Corporation Method and apparatus for applying fine-grained transforms during placement synthesis interaction
US7058915B1 (en) * 2003-09-30 2006-06-06 Xilinx, Inc. Pin reordering during placement of circuit designs
US20060123370A1 (en) * 2004-12-08 2006-06-08 Mario Vergara-Escobar Method for specification and integration of reusable IP constraints
US7350173B1 (en) * 2002-06-11 2008-03-25 Synplicity, Inc. Method and apparatus for placement and routing cells on integrated circuit chips
US7370302B1 (en) 2004-03-03 2008-05-06 Xilinx, Inc. Partitioning a large design across multiple devices
US7418686B1 (en) * 2004-03-03 2008-08-26 Xilinx, Inc. System for representing the logical and physical information of an integrated circuit
US7437695B1 (en) 2004-03-03 2008-10-14 Xilinx, Inc. Method of memory and run-time efficient hierarchical timing analysis in programmable logic devices
US20090327985A1 (en) * 2008-06-26 2009-12-31 Sun Microsystems, Inc. Highly threaded static timer
US20110071800A1 (en) * 2009-09-24 2011-03-24 International Business Machines Corporation System and method for providing efficient schematic review
US8141018B1 (en) * 2009-01-14 2012-03-20 Altera Corporation Method and apparatus for using slack potential data to design a system on a field programmable gate array
US8209648B1 (en) * 2009-09-03 2012-06-26 Cadence Design Systems, Inc. Verifying multiple constraints for circuit designs
US8443325B1 (en) * 2003-05-29 2013-05-14 Altera Corporation Method and apparatus for utilizing constraints for the routing of a design on a programmable logic device
US20140109032A1 (en) * 2011-07-13 2014-04-17 The Regents Of The University Of California Methods and systems for integrated circuit c4 ball placement
US8751996B1 (en) * 2005-11-08 2014-06-10 Pulsic Limited Automatically routing nets according to parasitic constraint rules
US20170132341A1 (en) * 2015-11-11 2017-05-11 International Business Machines Corporation Simulation of modifications to microprocessor design
US9658835B1 (en) 2012-12-05 2017-05-23 The Mathworks, Inc. Systems and methods for hardware resource sharing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4263651A (en) * 1979-05-21 1981-04-21 International Business Machines Corporation Method for determining the characteristics of a logic block graph diagram to provide an indication of path delays between the blocks
US4698760A (en) * 1985-06-06 1987-10-06 International Business Machines Method of optimizing signal timing delays and power consumption in LSI circuits
US5164907A (en) * 1989-02-15 1992-11-17 Nec Corporation Computer aided design system capable of placing functional blocks with a circuit constraint satisfied
US5168455A (en) * 1991-03-28 1992-12-01 Digital Equipment Corporation Procedure for incorporating timing parameters in the synthesis of logic circuit designs
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
US5237514A (en) * 1990-12-21 1993-08-17 International Business Machines Corporation Minimizing path delay in a machine by compensation of timing through selective placement and partitioning

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4263651A (en) * 1979-05-21 1981-04-21 International Business Machines Corporation Method for determining the characteristics of a logic block graph diagram to provide an indication of path delays between the blocks
US4698760A (en) * 1985-06-06 1987-10-06 International Business Machines Method of optimizing signal timing delays and power consumption in LSI circuits
US5164907A (en) * 1989-02-15 1992-11-17 Nec Corporation Computer aided design system capable of placing functional blocks with a circuit constraint satisfied
US5218551A (en) * 1990-04-30 1993-06-08 International Business Machines Corporation Timing driven placement
US5237514A (en) * 1990-12-21 1993-08-17 International Business Machines Corporation Minimizing path delay in a machine by compensation of timing through selective placement and partitioning
US5168455A (en) * 1991-03-28 1992-12-01 Digital Equipment Corporation Procedure for incorporating timing parameters in the synthesis of logic circuit designs

Non-Patent Citations (22)

* Cited by examiner, † Cited by third party
Title
A. H. Chao, E. M. Nequist & T. D. Vuong, "Direct Solution of Performance Constraints During Placement," IEEE 1990 Custom IC Conference, pp. 27.2.1-4.
A. H. Chao, E. M. Nequist & T. D. Vuong, Direct Solution of Performance Constraints During Placement, IEEE 1990 Custom IC Conference, pp. 27.2.1 4. *
Bahar et al., "An ADD-based Algorithm for shortest path Back-Tracking . . . ", 1994 4th Great Lakes Symposium, VLSI (IEEE pub).
Bahar et al., An ADD based Algorithm for shortest path Back Tracking . . . , 1994 4th Great Lakes Symposium, VLSI (IEEE pub). *
Burstein, Youssef, "Timing Influenced Layout Design", 22nd Design Automation Conf., IEEE, 1985, pp. 124-130.
Burstein, Youssef, Timing Influenced Layout Design , 22nd Design Automation Conf., IEEE, 1985, pp. 124 130. *
Ciesielski, "Layer Assignment for VLSI Interconnect Delay Minimalization", IEEE Trans on CAD for IC's; Jun. '89, vol. 8 No. 6, pp. 702-707.
Ciesielski, Layer Assignment for VLSI Interconnect Delay Minimalization , IEEE Trans on CAD for IC s; Jun. 89, vol. 8 No. 6, pp. 702 707. *
Cong et al., "Performance-Driven Global Routing of Cell Based ICs", 1991 Inf'l Conf on Computer Design (ICCD) (IEEE pub) pp. 170-173.
Cong et al., Performance Driven Global Routing of Cell Based ICs , 1991 Inf l Conf on Computer Design (ICCD) (IEEE pub) pp. 170 173. *
Michael A. B. Jackson, et al., "Performance-Driven Placement of Cell Based IC's", Dept. of Electrical Engineering, UC Berkeley, CA 94720.
Michael A. B. Jackson, et al., Performance Driven Placement of Cell Based IC s , Dept. of Electrical Engineering, UC Berkeley, CA 94720. *
Peter S. Hauge, Ravi Nair and Ellen J. Yoffa, "Circuit Placement for Predictable Performance," Proceedings of ICCAD '87, Nov. 9-12, 1987, pp. 88-91.
Peter S. Hauge, Ravi Nair and Ellen J. Yoffa, Circuit Placement for Predictable Performance, Proceedings of ICCAD 87, Nov. 9 12, 1987, pp. 88 91. *
R. B. Hitchcock, Sr., et al., "Timing Analysis of Computer Hardware", IBM Journal of Res. Dev., vol. 26, No. 1, Jan. '82, pp. 100-105.
R. B. Hitchcock, Sr., et al., Timing Analysis of Computer Hardware , IBM Journal of Res. Dev., vol. 26, No. 1, Jan. 82, pp. 100 105. *
Sadowska & Lin, "Timing Driver Placement", 1989 Int'l CAD Conf, IEEE, pp. 94-97.
Sadowska & Lin, Timing Driver Placement , 1989 Int l CAD Conf, IEEE, pp. 94 97. *
Steven Teig, Randall L. Smith and John Seaton, in "Timing-Driven Layout of Cell-Based ICs", Design Automation Guide, 1987, pp. 94-101.
Steven Teig, Randall L. Smith and John Seaton, in Timing Driven Layout of Cell Based ICs , Design Automation Guide, 1987, pp. 94 101. *
Vanbekbergen, Goossens, De Man, "Specification & Analysis of timing constraints in Signal Transition Graphs", 1992 IEEE Euro. Des. Auto. Conf pp. 302-306.
Vanbekbergen, Goossens, De Man, Specification & Analysis of timing constraints in Signal Transition Graphs , 1992 IEEE Euro. Des. Auto. Conf pp. 302 306. *

Cited By (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
US5892685A (en) * 1993-09-28 1999-04-06 Fujitsu Limited Packaging design system for an LSI circuit
US5663889A (en) * 1993-12-28 1997-09-02 Fujitsu Limited Apparatus for computing delay time of integrated circuit
US5883811A (en) * 1994-04-25 1999-03-16 Cadence Design Systems, Inc. Method for electric leaf cell circuit placement and timing determination
US5812431A (en) * 1994-06-13 1998-09-22 Cadence Design Systems, Inc. Method and apparatus for a simplified system simulation description
US6272668B1 (en) 1994-12-14 2001-08-07 Hyundai Electronics America, Inc. Method for cell swapping to improve pre-layout to post-layout timing
US6058252A (en) * 1995-01-19 2000-05-02 Synopsys, Inc. System and method for generating effective layout constraints for a circuit design or the like
US5644498A (en) * 1995-01-25 1997-07-01 Lsi Logic Corporation Timing shell generation through netlist reduction
US6240541B1 (en) * 1995-04-07 2001-05-29 Fujitsu Limited Interactive circuit designing apparatus which displays a result of component placement and wire routing from a layout design unit
US5726918A (en) * 1995-06-05 1998-03-10 Synopsys, Inc. Tool, system and method for dynamic timing analysis in a plural-instance digital system simulation
US5778216A (en) * 1995-06-30 1998-07-07 Cadence Design Systems, Inc. Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
US5774367A (en) * 1995-07-24 1998-06-30 Motorola, Inc. Method of selecting device threshold voltages for high speed and low power
US5751596A (en) * 1995-07-27 1998-05-12 Vlsi Technology, Inc. Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
US5999715A (en) * 1995-09-29 1999-12-07 Nec Corporation Circuit delay optimizing using circuit arrangement, layout information, and wiring delay information
US5953236A (en) * 1995-10-31 1999-09-14 Vlsi Technology, Inc. Method and apparatus for implementing engineering change orders in integrated circuit designs
US6014506A (en) * 1995-10-31 2000-01-11 Vlsi Technology, Inc. Method and apparatus for improving engineering change order placement in integrated circuit designs
US5666290A (en) * 1995-12-27 1997-09-09 Vlsi Technology, Inc. Interactive time-driven method of component placement that more directly constrains critical paths using net-based constraints
US5883808A (en) * 1996-01-30 1999-03-16 Nec Corporation Logic circuit optimization apparatus and its method
US5926397A (en) * 1996-03-06 1999-07-20 Sharp Kabushiki Kaisha Routing design method and routing design apparatus
US5815406A (en) * 1996-03-25 1998-09-29 International Business Machines Corporation Method and system for designing a circuit using RC and timing weighting of nets
US5825661A (en) * 1996-05-01 1998-10-20 International Business Machines Corporation Method and apparatus for automatic post-layout optimization of an integrated circuit
US6009253A (en) * 1996-06-20 1999-12-28 Sun Microsystems, Inc. Spare repeater amplifiers for long lines on complex integrated circuits
US5838580A (en) * 1996-06-20 1998-11-17 Sun Microsystems, Inc. Method of optimizing repeater placement in long lines of a complex integrated circuit
US5796638A (en) * 1996-06-24 1998-08-18 The Board Of Trustees Of The University Of Illinois Methods, apparatus and computer program products for synthesizing integrated circuits with electrostatic discharge capability and connecting ground rules faults therein
US5877965A (en) * 1996-06-24 1999-03-02 International Business Machines Corporation Parallel hierarchical timing correction
US6286126B1 (en) 1996-08-30 2001-09-04 Avant! Corporation Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits using best and worst case delay models for nets therein
US5896300A (en) * 1996-08-30 1999-04-20 Avant| Corporation Methods, apparatus and computer program products for performing post-layout verification of microelectronic circuits by filtering timing error bounds for layout critical nets
US6099581A (en) * 1996-09-10 2000-08-08 Fujitsu Limited Layout database for a computer aided design system
US5903472A (en) * 1996-10-25 1999-05-11 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis by selectively displaying signal paths based on slack time calculations and integrated circuit made using same
US5896301A (en) * 1996-10-25 1999-04-20 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis using multi-dimensional feedback in a histogram and integrated circuit made using same
US5910899A (en) * 1996-10-25 1999-06-08 Advanced Micro Devices, Inc. Method for performing floorplan timing analysis using multi-dimensional feedback in a spreadsheet with computed hyperlinks to physical layout graphics and integrated circuit made using same
US6209123B1 (en) 1996-11-01 2001-03-27 Motorola, Inc. Methods of placing transistors in a circuit layout and semiconductor device with automatically placed transistors
US5930148A (en) * 1996-12-16 1999-07-27 International Business Machines Corporation Method and system for verifying a digital circuit design including dynamic circuit cells that utilize diverse circuit techniques
US5991521A (en) * 1997-03-31 1999-11-23 International Business Machines Corporation Method and system of checking for open circuit connections within an integrated-circuit design represented by a hierarchical data structure
US5894419A (en) * 1997-04-21 1999-04-13 International Business Machines Corporation System and method for robust clocking schemes for logic circuits
US5845233A (en) * 1997-07-30 1998-12-01 Lucent Technologies, Inc. Method and apparatus for calibrating static timing analyzer to path delay measurements
US5870309A (en) * 1997-09-26 1999-02-09 Xilinx, Inc. HDL design entry with annotated timing
US5949690A (en) * 1997-09-26 1999-09-07 Xilinx, Inc. Schematic design entry with annotated timing
US6330707B1 (en) * 1997-09-29 2001-12-11 Matsushita Electric Industrial Co., Ltd. Automatic routing method
US8621403B2 (en) * 1997-12-24 2013-12-31 Synopsys, Inc. Timing closure methodology including placement with initial delay values
US9811624B2 (en) 1997-12-24 2017-11-07 Synopsys, Inc. Timing closure methodology including placement with initial delay values
US6230304B1 (en) 1997-12-24 2001-05-08 Magma Design Automation, Inc. Method of designing a constraint-driven integrated circuit layout
US20050120319A1 (en) * 1997-12-24 2005-06-02 Van Ginneken Lukas P. Timing closure methodology
US6292928B1 (en) 1998-01-13 2001-09-18 Matsushita Electric Industrial Co., Ltd. Line path determining method and delay estimating method
US6901571B1 (en) * 1998-01-21 2005-05-31 Lsi Logic Corporation Timing-driven placement method utilizing novel interconnect delay model
US6009252A (en) * 1998-03-05 1999-12-28 Avant! Corporation Methods, apparatus and computer program products for determining equivalencies between integrated circuit schematics and layouts using color symmetrizing matrices
US6028995A (en) * 1998-03-31 2000-02-22 Lsi Logic Corporation Method of determining delay in logic cell models
WO1999052049A2 (en) * 1998-04-02 1999-10-14 Magma Design Automation, Inc. Method of designing a constraint-driven integrated circuit layout
WO1999052049A3 (en) * 1998-04-02 1999-11-18 Magma Design Automation Inc Method of designing a constraint-driven integrated circuit layout
US6349402B1 (en) * 1998-07-09 2002-02-19 Kuoching Lin Method and apparatus for optimizing differential pairs based on timing constraints
US6240376B1 (en) 1998-07-24 2001-05-29 Mentor Graphics Corporation Method and apparatus for gate-level simulation of synthesized register transfer level designs with source-level debugging
US6336087B2 (en) * 1998-07-24 2002-01-01 Luc M. Burgun Method and apparatus for gate-level simulation of synthesized register transfer level design with source-level debugging
US6467072B1 (en) * 1998-11-20 2002-10-15 Via Technologies, Inc. Method of placement and routing for an array device
US6457165B1 (en) * 1998-11-30 2002-09-24 Yazaki Corporation Wiring harness arrangement designing apparatus and method therefor
US6460166B1 (en) 1998-12-16 2002-10-01 International Business Machines Corporation System and method for restructuring of logic circuitry
US6282695B1 (en) 1998-12-16 2001-08-28 International Business Machines Corporation System and method for restructuring of logic circuitry
US6339835B1 (en) 1999-06-10 2002-01-15 International Business Machines Corporation Pseudo-anding in dynamic logic circuits
US6732340B1 (en) * 1999-07-26 2004-05-04 Matsushita Electric Industrial Co., Ltd. Method for designing a semiconductor integrated circuit which includes consideration of parasitic elements on critical data paths
US6507807B1 (en) * 1999-08-13 2003-01-14 Hewlett-Packard Company Method and apparatus for determining which branch of a network of an integrated circuit has the largest total effective RC delay
US7047163B1 (en) 2000-03-13 2006-05-16 International Business Machines Corporation Method and apparatus for applying fine-grained transforms during placement synthesis interaction
US6539528B2 (en) 2000-04-06 2003-03-25 Samsung Electronics Co., Ltd. Methods, systems, and computer program products for designing an integrated circuit that use an information repository having circuit block layout information
US6931610B1 (en) * 2000-05-12 2005-08-16 Magma Design Automation, Inc. Method for rapid estimation of wire delays and capacitances based on placement of cells
US6889370B1 (en) * 2000-06-20 2005-05-03 Unisys Corporation Method and apparatus for selecting and aligning cells using a placement tool
US6523154B2 (en) * 2000-12-14 2003-02-18 International Business Machines Corporation Method for supply voltage drop analysis during placement phase of chip design
US6836753B1 (en) 2001-06-13 2004-12-28 Cadence Design Systems, Inc. Cone slack allocator for computing time budgets
US7398497B2 (en) * 2001-07-11 2008-07-08 Fujitsu Limited Electronic circuit designing method apparatus for designing an electronic circuit, and storage medium for storing an electronic circuit designing method
US20050086626A1 (en) * 2001-07-11 2005-04-21 Fujitsu Limited Electronic circuit designing method and apparatus, and storage medium
US6487705B1 (en) * 2001-09-05 2002-11-26 Nec Electronics, Inc. Timing optimization and timing closure for integrated circuit models
US6643834B2 (en) * 2001-09-14 2003-11-04 Mitsubishi Denki Kabushiki Kaisha Method of and apparatus for designing layout of analog cells, and computer product
US20030163797A1 (en) * 2002-02-27 2003-08-28 Lsi Logic Corporation System and method for identifying and eliminating bottlenecks in integrated circuit designs
US6757877B2 (en) * 2002-02-27 2004-06-29 Lsi Logic Corporation System and method for identifying and eliminating bottlenecks in integrated circuit designs
US20030171907A1 (en) * 2002-03-06 2003-09-11 Shay Gal-On Methods and Apparatus for Optimizing Applications on Configurable Processors
US8732645B2 (en) 2002-06-11 2014-05-20 Synopsys, Inc. Placement and routing cells on integrated circuit chips
US7350173B1 (en) * 2002-06-11 2008-03-25 Synplicity, Inc. Method and apparatus for placement and routing cells on integrated circuit chips
US6892374B2 (en) * 2002-06-19 2005-05-10 Bruno P. Melli Systems and methods for generating an artwork representation according to a circuit fabrication process
US20030237072A1 (en) * 2002-06-19 2003-12-25 Melli Bruno P. Systems and methods for generating an artwork representation according to a circuit fabrication process
US6738959B2 (en) * 2002-08-02 2004-05-18 Sun Microsystems, Inc. Method and apparatus for assigning nets to metal layers during circuit routing
US20040025134A1 (en) * 2002-08-02 2004-02-05 Jung Dae Suk Method and apparatus for assigning nets to metal layers during circuit routing
US6990645B2 (en) 2003-04-29 2006-01-24 International Business Machines Corporation Method for static timing verification of integrated circuits having voltage islands
US20040221252A1 (en) * 2003-04-29 2004-11-04 International Business Machines Corporation Method for static timing verification of integrated circuits having voltage islands
US8745566B1 (en) 2003-05-29 2014-06-03 Altera Corporation Method and apparatus for utilizing constraints for the routing of a design on a programmable logic device
US9443054B1 (en) 2003-05-29 2016-09-13 Altera Corporation Method and apparatus for utilizing constraints for the routing of a design on a programmable logic device
US8443325B1 (en) * 2003-05-29 2013-05-14 Altera Corporation Method and apparatus for utilizing constraints for the routing of a design on a programmable logic device
US7058915B1 (en) * 2003-09-30 2006-06-06 Xilinx, Inc. Pin reordering during placement of circuit designs
US7418686B1 (en) * 2004-03-03 2008-08-26 Xilinx, Inc. System for representing the logical and physical information of an integrated circuit
US7437695B1 (en) 2004-03-03 2008-10-14 Xilinx, Inc. Method of memory and run-time efficient hierarchical timing analysis in programmable logic devices
US7873927B1 (en) 2004-03-03 2011-01-18 Xilinx, Inc. Partitioning a large design across multiple devices
US7370302B1 (en) 2004-03-03 2008-05-06 Xilinx, Inc. Partitioning a large design across multiple devices
US7155692B2 (en) * 2004-09-01 2006-12-26 Hewlett-Packard Development Company, L.P. Method and system for performing timing analysis on a circuit
US20060048085A1 (en) * 2004-09-01 2006-03-02 Sean Tyler Method and system for performing timing analysis on a circuit
US20060123370A1 (en) * 2004-12-08 2006-06-08 Mario Vergara-Escobar Method for specification and integration of reusable IP constraints
US7526745B2 (en) 2004-12-08 2009-04-28 Telefonaktiebolaget L M Ericsson (Publ) Method for specification and integration of reusable IP constraints
US8751996B1 (en) * 2005-11-08 2014-06-10 Pulsic Limited Automatically routing nets according to parasitic constraint rules
US7958474B2 (en) * 2008-06-26 2011-06-07 Oracle America, Inc. Highly threaded static timer
US20090327985A1 (en) * 2008-06-26 2009-12-31 Sun Microsystems, Inc. Highly threaded static timer
US8141018B1 (en) * 2009-01-14 2012-03-20 Altera Corporation Method and apparatus for using slack potential data to design a system on a field programmable gate array
US8443334B1 (en) 2009-01-14 2013-05-14 Altera Corporation Method and apparatus for generating graphical representations of slack potential for slack paths
US8209648B1 (en) * 2009-09-03 2012-06-26 Cadence Design Systems, Inc. Verifying multiple constraints for circuit designs
US8676559B2 (en) * 2009-09-24 2014-03-18 International Business Machines Corporation System and method for providing efficient schematic review
US20110071800A1 (en) * 2009-09-24 2011-03-24 International Business Machines Corporation System and method for providing efficient schematic review
US8966427B2 (en) * 2011-07-13 2015-02-24 The Regents Of The University Of California Systems and methods for integrated circuit C4 ball placement
US20140109032A1 (en) * 2011-07-13 2014-04-17 The Regents Of The University Of California Methods and systems for integrated circuit c4 ball placement
US9658835B1 (en) 2012-12-05 2017-05-23 The Mathworks, Inc. Systems and methods for hardware resource sharing
US9710237B1 (en) 2012-12-05 2017-07-18 The Mathworks, Inc. Systems and methods for hardware resource sharing
US20170132341A1 (en) * 2015-11-11 2017-05-11 International Business Machines Corporation Simulation of modifications to microprocessor design
US9928322B2 (en) * 2015-11-11 2018-03-27 International Business Machines Corporation Simulation of modifications to microprocessor design
US9934341B2 (en) 2015-11-11 2018-04-03 International Business Machines Corporation Simulation of modifications to microprocessor design

Similar Documents

Publication Publication Date Title
Otten et al. Planning for performance
Cohn et al. KOAN/ANAGRAM II: New tools for device-level analog placement and routing
US5659484A (en) Frequency driven layout and method for field programmable gate arrays
US7000214B2 (en) Method for designing an integrated circuit having multiple voltage domains
US6536024B1 (en) Method for making integrated circuits having gated clock trees
US5550748A (en) Region search for delay routing and signal net matching
US6480996B1 (en) System and method for transposing wires in a circuit design
US7225423B2 (en) Method for automated design of integrated circuits with targeted quality objectives using dynamically generated building blocks
US6117182A (en) Optimum buffer placement for noise avoidance
US5930499A (en) Method for mixed placement of structured and non-structured circuit elements
US5778216A (en) Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
US6298319B1 (en) Incremental compilation of electronic design for work group
US6026228A (en) Integrated circuit design method, database apparatus for designing integrated circuit and integrated circuit design support apparatus
US6430734B1 (en) Method for determining bus line routing for components of an integrated circuit
US6240542B1 (en) Poly routing for chip interconnects with minimal impact on chip performance
US7096447B1 (en) Method and apparatus for efficiently locating and automatically correcting certain violations in a complex existing circuit layout
US6260177B1 (en) Automatic configuration of gate array cells using a standard cell function library
US5508937A (en) Incremental timing analysis
US5644500A (en) Routing program generating method and apparatus therefor, placement program generating method and apparatus therefor, and automatic routing method and apparatus therefor
US7013438B1 (en) System chip synthesis
Kastner et al. Pattern routing: use and theory for increasing predictability and avoiding coupling
US6131182A (en) Method and apparatus for synthesizing and optimizing control logic based on SRCMOS logic array macros
US6725438B2 (en) Timing closure methodology
US6083271A (en) Method and apparatus for specifying multiple power domains in electronic circuit designs
US5805861A (en) Method of stabilizing component and net names of integrated circuits in electronic design automation systems

Legal Events

Date Code Title Description
AS Assignment

Owner name: ARCSYS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:TSAY, REN-SONG;CHANG, CHWEN-CHER;REEL/FRAME:006686/0453

Effective date: 19930826

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: AVANT! CORPORATION, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:ARCSYS, INC.;REEL/FRAME:010078/0683

Effective date: 19951127

AS Assignment

Owner name: SYNOPSYS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AVANT! CORPORATION LLC;REEL/FRAME:013735/0791

Effective date: 20020611

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12