US20010014965A1 - Automatic global routing device for efficiently determining optimum wiring route on integrated circuit and global routing method therefor - Google Patents

Automatic global routing device for efficiently determining optimum wiring route on integrated circuit and global routing method therefor Download PDF

Info

Publication number
US20010014965A1
US20010014965A1 US09/048,587 US4858798A US2001014965A1 US 20010014965 A1 US20010014965 A1 US 20010014965A1 US 4858798 A US4858798 A US 4858798A US 2001014965 A1 US2001014965 A1 US 2001014965A1
Authority
US
United States
Prior art keywords
routing
grids
global
wires
usable
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.)
Granted
Application number
US09/048,587
Other versions
US6378121B2 (en
Inventor
Takefumi Hiraga
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.)
NEC Electronics Corp
Original Assignee
NEC Corp
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
Application filed by NEC Corp filed Critical NEC Corp
Assigned to NEC CORPORATION reassignment NEC CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HIRAGA, TAKEFUMI
Publication of US20010014965A1 publication Critical patent/US20010014965A1/en
Application granted granted Critical
Publication of US6378121B2 publication Critical patent/US6378121B2/en
Assigned to NEC ELECTRONICS CORPORATION reassignment NEC ELECTRONICS CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NEC CORPORATION
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing

Definitions

  • the present invention relates to an automatic global routing device, in a CAD system which designs and develops a large-scale integrated circuit (LSI) and a logic circuit by means of a computer, for automatically placement and routing component cells on LSI chips or printed boards so as to minimize the entire size or minimize a routing length and a global routing method therefor.
  • LSI large-scale integrated circuit
  • Step 701 place macro cells on an integrated circuit to be processed, as well as determining a region in which basic cells are to be placed as shown in FIG. 8(A) (Step 701 ).
  • This floor plan processing is conducted semi-automatically.
  • determination is made whether routing processing is possible for the integrated circuit subjected to the floor plan processing (Step 702 ). When the determination is made that routing is impossible, the routine returns to Step 701 to execute the floor plan processing over again.
  • Step 702 When the determination is made at Step 702 that routing is possible, place desired basic cells at the basic cell placement region as shown in FIG. 8(B) (Step 703 ). Then, determination is made whether routing processing is possible for the integrated circuit subjected to the basic cell placement processing (Step 704 ). When the determination is made that routing is impossible, the routine returns to Step 703 to conduct the placement processing over again. When the determination is still made at Step 704 that routing is impossible even after further trials of the placement processing preset times, the routine returns to Step 701 to start over with the floor plan processing.
  • Step 704 When the determination is made at Step 704 that routing is possible, divide the integrated circuit chip to be processed into rectangles (global routing cells) and determine a routing route of each net on a divisional unit basis as shown in FIG. 8(C) (Step 705 ).
  • “Net” here represents a route from an output terminal of an arbitrary gate circuit to an input terminal of other gate circuit. For each net, net information indicating which terminals are to be connected is defined.
  • Global routing processing at Step 705 is conducted based only on a wire capacitance of a global routing cell boundary (degree of wire congestion) as will be described later.
  • determination is made whether routing processing is possible for the integrated circuit subjected to the global routing processing (Step 706 ).
  • Step 705 When the determination is made that routing is impossible, the routine returns to Step 705 to conduct the global routing processing over again.
  • the routine returns to Step 703 to conduct the placement processing over again.
  • the routine returns to Step 701 to start over with the floor plan processing.
  • Step 707 determines a detailed routing route within each global routing cell as shown in FIG. 8(D) (Step 707 ). Then, see if there is a shorted net or an unrouted net (Step 708 ). When there is a shorted net or an unrouted net, the routine returns to Step 707 to conduct the detailed routing processing over again. If a shorted net or an unrouted net is still detected at Step 708 even after further trials of the detailed routing processing preset times, the routine returns to Step 705 to conduct the global routing processing over again.
  • Step 708 when a shorted place or a place yet to be wired is still detected at Step 708 even after further executions of the global routing processing preset times, the routine returns to Step 703 to start over with the placement processing. Further, if a shorted place or a place yet to be wired is still detected at Step 708 even after further executions of the placement processing preset times, the routine returns to Step 701 to start over with the floor plan processing. Then, when there remains neither a shorted place nor a place yet to be wired (yes at Step 708 ), the automatic placement and routing processing is completed.
  • Step 901 First, as shown in FIG. 10(A), divide a chip into rectangles (global routing cells) (Step 901 ).
  • a black square represents a terminal, while a region denoted by slant lines represents a global route for the connection of terminals.
  • “Global routing cell” is also called a unit routing region.
  • a boundary between adjacent global routing cells is called a “global routing cell boundary”. More specifically, each global routing cell has four global routing boundaries in the upper, lower, right and left directions.
  • Step 902 calculate a wire capacitance which indicates how many wires can pass through each global routing cell boundary.
  • a method of calculating a wire capacitance will be described.
  • one specific global routing cell is denoted by solid lines and a routing track is denoted by a dotted line.
  • routing track represents a passage on which routing can be made.
  • Wire capacitance is therefore equal to the number of routing tracks passing through a global routing cell boundary.
  • a routing inhibited region is denoted as a block of slant lines. In practice, routing is made over a plurality of layers. In other words, routing tracks and routing inhibited regions exist individually on each layer in practice.
  • a wire capacitance of each global routing cell boundary will be less than 5 which is a value derived from the number of routing tacks.
  • the symbol “ ⁇ ” on a global routing cell boundary denotes a passable track
  • a wire capacitance of the upper global routing cell boundary is 3, that of the lower global routing cell boundary is 4, that of the left-side global routing cell boundary is 4 and that of the right-side global routing cell boundary is 3.
  • a wire capacitance is obtained as the number of routing tracks allowing routing which is estimated based on a distribution of obstructions within the global routing cell (routing inhibited region). In the global routing processing, therefore, a routing route is selected such that a wire capacitance will not exceed an estimated value at each global routing cell boundary.
  • Step 903 calculate a degree of congestion of wires which indicates how many wires can be actually passed through a global routing cell boundary.
  • a global route set as shown in FIG. 10(A) a global routing cell boundary through which a wire passes is denoted by an arrow in FIG. 10(B) and a global routing cell through which a wire passes is denoted as a block of heavy solid lines.
  • This calculation of a degree of wire congestion is made per one net yet to be wired, using the following expression:
  • FIG. 12 shows already determined global routes.
  • two global routes pass through the upper global routing cell boundary, one passes through the lower global routing cell boundary, two pass through the left-side global routing cell boundary and three pass through the right-side global routing cell boundary.
  • Step 904 determines a routing route minimizing these costs. Then, Steps 903 and 904 will be repeated until there remains no more unrouted net (Step 905 ). In other words, determination of a route minimizing these costs is made through Steps 903 , 904 and 905 taking wire capacitances into consideration until no unrouted net wired is left.
  • Step 905 determination is made whether there exists a global routing cell boundary at which the number of passing wires exceeds its wire capacitance (that is, a global routing cell boundary with a positive value of the degree of wire congestion) (Step 906 ).
  • a global routing cell boundary at which the number of passing wires exceeds its wire capacitance rip up a net which passes through the global routing cell boundary (Step 907 ) to return to Step 904 .
  • the global routing processing is completed.
  • the automatic placement and routing processing by a conventional automatic routing device has the following drawback because global routing processing is conducted taking only a wire capacitance of a global routing cell boundary into consideration, that is, based only on a degree of wire congestion as mentioned above.
  • An object of the present invention is to provide an automatic routing device enabling reduction in time required for automatic placement and routing processing by lessening a probability that routing determined to be possible at global routing processing will be determined to be impossible at detailed routing processing.
  • automatic routing device for automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprises
  • first determination means for determining whether routing of a desired net is possible or not based on a wire capacitance at each global routing cell boundary formed by the division of the logic circuit chip into global routing cells
  • second determination means for determining whether routing of a desired net is possible or not based on a state of the use of a routing track grid in each global routing cell formed on the logic circuit chip.
  • the second determination means determines whether routing of the desired net is possible or not based on, out of grids as points of intersection between the routing tracks, the number of grids usable for routing.
  • the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and routing possibility/impossibility determining means for determining whether routing of the desired net is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used by the wires.
  • the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and determination means for comparing the number of grids usable for routing and the number of grids to be used by wires to determine that the routing is impossible when the number of grids to be used by wires is larger.
  • an automatic routing device for automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprises
  • the global routing route determining means comprising
  • first determination means for determining whether routing of a desired net is possible or not based on a wire capacitance at each global routing cell boundary formed by the division of the logic circuit chip into global routing cells, and
  • second determination means for determining whether routing of a desired net is possible or not based on a state of the use of a routing grid track in each global routing cell formed on the logic circuit chip.
  • the second determination means determines whether routing of the desired net is possible or not based on, out of grids as points of intersection between the routing tracks, the number of grids usable for routing.
  • the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and routing possibility/impossibility determining means for determining whether routing of the desired net is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used by the wires.
  • the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and determination means for comparing the number of grids usable for routing and the number of grids to be used by wires to determine that the routing is impossible when the number of grids to be used by wires is larger.
  • an automatic routing method of automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed comprising the steps of:
  • the global routing processing step comprising the steps of
  • the step of determining whether routing is possible or not based on a wire capacitance comprises the steps of:
  • the step of determining whether routing is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used for the wires comprises the steps of:
  • the step of determining whether routing is possible or not based on a wire capacitance comprises the steps of:
  • the step of determining whether routing is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used for the wires comprises the steps of:
  • a computer readable memory storing a control program for controlling an automatic routing device which automatically places and wires integrated circuits on an integrated circuit chip to be processed
  • control program comprising the steps of:
  • the global routing processing step comprising the steps of
  • FIG. 1 is a block diagram showing structure of an automatic routing device according to one embodiment of the present invention.
  • FIG. 2 is a flow chart showing operation of global routing processing in the present embodiment.
  • FIG. 3 is a diagram for use in explaining a method of calculating the number of usable grids.
  • FIG. 4 is a diagram for use in explaining a method of calculating an estimated number of grids to be used in the present embodiment.
  • FIG. 5 is a diagram showing calculation examples of an estimated number of grids to be used and a grid use rate.
  • FIG. 6 is a diagram showing an example of application of global routing processing according to the present embodiment.
  • FIG. 7 is a flow chart showing a flow of integrated circuit automatic placement and routing processing in outline.
  • FIG. 8 is a diagram for use in explaining each processing of four steps to be executed in the automatic placement and routing processing shown in FIG. 7.
  • FIG. 9 is a flow chart specifically showing the contents of global routing processing in conventional automatic placement and routing processing.
  • FIG. 10 is a global diagram showing a global route, global routing cell boundaries and global routing cells.
  • FIG. 11 is a diagram for use in explaining a wire capacitance calculation method.
  • FIG. 12 is a diagram showing one example of a global route.
  • FIG. 13 is a diagram showing one example of a degree of wire congestion.
  • FIG. 14 is a diagram showing an example of application of the global routing processing in the conventional automatic placement and routing processing.
  • FIG. 1 is a block diagram showing structure of an integrated circuit automatic routing device according to one embodiment of the present invention.
  • a flow of automatic placement and routing processing according to the present embodiment is in outline executed in four steps, floor plan processing, placement processing, global routing processing and detailed routing processing.
  • an automatic routing device of the present embodiment includes a floor plan determining unit 10 for executing floor plan processing, a basic cell placement unit 20 for executing basic cell placement processing, a global routing route determining unit 30 for executing global routing processing and a detailed routing route determining unit 40 for executing detailed routing processing.
  • a floor plan determining unit 10 for executing floor plan processing
  • a basic cell placement unit 20 for executing basic cell placement processing
  • a global routing route determining unit 30 for executing global routing processing
  • a detailed routing route determining unit 40 for executing detailed routing processing.
  • Each of the above-described components is implemented by a processing device under control of a computer program at a computer system such as a work station or a personal computer.
  • the control program is provided as storage in a storage medium such as a magnetic disk or a semiconductor memory and is loaded into the processing device of the computer system to execute the function of each component.
  • the floor plan determining unit 10 conducts the same floor plan processing as that of the conventional automatic placement and routing processing
  • the basic cell placement unit 20 conducts the same placement processing as that of the conventional automatic placement and routing processing
  • the detailed routing route determining unit 40 conducts the same detailed routing processing as that of the conventional automatic placement and routing processing.
  • the global routing route determining unit 30 includes a wire capacitance calculating unit 31 for calculating a wire capacitance of a global routing cell boundary, a number of grids calculating unit 32 for calculating the number of grids which can be wired in a global routing cell, a degree of wire congestion calculating unit 33 , a grid use rate calculating unit 34 and a minimum cost route determining unit 35 for the determination of a global route, and a routing checking unit 36 and a grid use rate checking unit 37 for the determination of routing possibility/impossibility.
  • the wire capacitance calculating unit 31 calculates a wire capacitance at each global routing cell boundary formed by the division of the chip into global routing cells.
  • the wire capacitance calculating method is the same as that in conventional global routing processing.
  • the number of grids calculating unit 32 calculates the number of grids usable for routing in each global routing cell formed on the chip.
  • Grid here represents a point of intersection between routing tracks in a global routing cell.
  • a total number of grids in each global routing cell is equal to [the number of routing tracks in the right-and-left direction] ⁇ [the number of routing tracks in the up-and-down direction] of the global routing cell. Since there is a case where a routing inhibited region exists within a global routing cell, the number of grids usable for routing is less than or equal to the total number of grids in a global routing cell in question, which is obtained by the following expression:
  • the degree of wire congestion calculating unit 33 calculates a degree of wire congestion based on a wire capacitance of a global routing cell boundary and already determined global routes.
  • the method of calculating a degree of wire congestion is the same as that in the conventional global routing processing and is obtained by the following expression:
  • the grid use rate calculating unit 34 calculates a grid use rate in each global routing cell based on the number of usable grids in the global routing cell calculated by the number of grids calculating unit 32 and an estimated number of grids to be used for already determined global routes.
  • Estimated number of grids to be used represents the number of grids to be used by wires in question within a global routing cell in question calculated based on a route of the wires passing through the global routing cell.
  • Grid use rate represents a ratio of an estimated number of grids to be used in a global routing cell to the number of usable grids in the global routing cell, which is defined by [the estimated number of grids to be used in global routing cell]/[the number of usable grids in global routing cell]. Routing to have a grid use rate higher than 1 is therefore impossible.
  • the minimum cost route determining unit 35 determines, based on the cost of distance, the cost of a degree of wire congestion on a global routing cell boundary, the cost of a grid use rate, the cost of bend and other various kinds of costs, a routing route minimizing these costs.
  • the method of determining such route is the same as the minimum cost route determining method in the conventional automatic placement and routing processing with the only difference being that the cost of a grid use rate is taken into consideration.
  • the routing checking unit 36 after routing is conducted with respect to all the nets through the processing by the degree of wire congestion calculating unit 33 , the grid use rate calculating unit 34 and the minimum cost route determining unit 35 , sees if the number of wires passing through each global routing cell boundary exceeds a wire capacitance of the global routing cell boundary. Then, when there is a global routing cell boundary at which the number of passing wires exceeds its wire capacitance, a net passing through the global routing cell boundary is tore away to again cause the degree of wire congestion calculating unit 33 , the grid use rate calculating unit 34 and the minimum cost route determining 35 to conduct their processing.
  • the grid use rate checking unit 37 after routing is conducted with respect to all the nets through the processing by the degree of wire congestion calculating unit 33 , the grid use rate calculating unit 34 and the minimum cost route determining unit 35 , sees if a grid use rate at each global routing cell is higher than 1. Then, if there is a global routing cell whose grid use rate is higher than 1, a net passing through the global routing cell is tore away to again cause the degree of wire congestion calculating unit 33 , the grid use rate calculating unit 34 and the minimum cost route determining unit 35 to conduct their processing.
  • the wire capacitance calculating unit 31 divides a chip to be processed into global routing cells (Step 201 ) to calculate a wire capacitance at each global routing cell boundary (Step 202 ).
  • the number of grids calculating unit 32 calculates the number of grids usable for routing at each global routing cell (Step 203 ). With reference to FIG. 3, a method of calculating the number of grids usable for routing will be specifically described.
  • FIG. 3 is a diagram showing grids usable for routing at a global routing cell having the same structure as that shown in FIG. 11.
  • a region surrounded by solid lines corresponds to one global routing cell.
  • a routing track is denoted by a dotted line and a routing inhibited region is denoted by slant lines.
  • the number of grids usable for routing will be less than the above described total number of grids, 25.
  • usable grids within the global routing cell are indicted by white rounds.
  • the degree of wire congestion calculating unit 33 calculates a degree of wire congestion at each global routing cell boundary (Step 204 ). Then, the grid use rate calculating unit 34 calculates a grid use rate at each global routing cell (Step 205 ). With reference to FIGS. 4 and 5, a method of calculating an estimated number of grids to be used and a grid use rate will be specifically described.
  • FIG. 4(A) to (D) at a global routing cell denoted by solid lines, a number x of routing tracks exist in the right-and-left direction and a number y of routing tracks exist in the up-and-down direction (see FIG. 4(A)).
  • possible patterns of wires passing through the global routing cell are three, a passing pattern on which one wire is provided in the right-and-left direction (FIG. 4(B), hereinafter referred to as a right-and-left passing pattern), a passing pattern on which one wire is provided in the up-and-down direction (FIG.
  • FIG. 4(C) hereinafter referred to as an up-and-down passing pattern
  • FIG. 4(D) hereinafter referred to as an adjacent passing pattern
  • the right-and-left passing pattern uses a number y of grids for one wire to pass through the global routing cell.
  • the up-and-down passing pattern uses a number x of grids for one wire to pass through the global routing cell.
  • the adjacent passing pattern uses a number (x/2+y/2) of grids for one wire to pass through the global routing cell.
  • FIG. 4(D) illustrates one passing pattern on which a wire passes through the right and the lower global routing cell boundaries (hereinafter referred to as a lower right passing pattern), this is also the case with a passing pattern on which a wire passes through the lower and the left global routing cell boundaries (hereinafter referred to as a lower left passing pattern), a passing pattern on which a wire passes through the left and the upper global routing cell boundaries (hereinafter referred to as an upper left passing pattern) and a passing pattern on which a wire passes through the upper and the right global routing cell boundaries (hereinafter referred to as an upper right passing pattern).
  • an estimated number of grids to be used within the global routing cell is obtained by calculating the following equation with respect to all the passing routes and adding the calculation results:
  • an estimated number of grids to be used and a grid use rate in the global routing cell shown in FIG. 5 are calculated.
  • five routing tracks exist in the right-and-left direction and five routing tracks exist in the up-and-down direction.
  • two wires pass through a passing route 501 as an upper right passing pattern, one passes through a passing route 502 as a right-and-left passing pattern and one passes through a passing route 503 as a lower left passing pattern.
  • an estimated number of grids to be used for each passing route is obtained by the following expressions:
  • the minimum cost route determining unit 35 taking various costs including the cost of distance, the cost of a degree of wire congestion on a global routing cell boundary and the cost of a grid use rate into consideration, determines a route minimizing these costs (Step 206 ).
  • Step 207 The foregoing processing at Step 204 to Step 206 will be repeated until routing of all the nets is completed. More specifically, the operation at Steps 204 to 207 will determine a route minimizing costs based on a grid use rate in addition to a wire capacitance until no unrouted net remains.
  • the routing checking unit 36 sees if there exists a global routing cell boundary on which the number of passing wires exceeds its wire capacitance and if such a global routing cell boundary exists, a net passing through the global routing cell boundary is tore away to return to Step 204 (Steps 208 and 209 ).
  • the grid use rate checking unit 37 next sees if there exists a global routing cell having a grid use rate is higher than 1 and if such a global routing cell exists, a net passing through the global routing cell is tore away to return to Step 204 (Steps 210 and 211 ).
  • the grid use rate calculated with reference to FIG. 5 is 1.11, a value higher than 1, and therefore, a net having such routing as illustrated in FIG. 5 will be tore away.
  • FIG. 6 shows a state of global routing processing conducted according to the present embodiment with respect to a global routing cell having the same structure as that illustrated in FIG. 14. More specifically, three routing tracks exist in the right-and-left direction and three routing tracks exist also in the up-and-down direction as shown in FIG. 6(A).
  • this global routing cell a region including one grid as a central point of intersection and denoted by slant lines is a routing inhibited region.
  • wire capacitances at the respective global routing cell boundaries are all 3 as has been described in the Related Art.
  • the determination based on a grid use rate can in some cases eliminate routing which might be erroneously determined to be possible based only on a wire capacitance. In this case, it is possible to prevent a probability that routing error as illustrated in FIG. 6(E) will occur at the detailed routing processing. As a result, the probability can be drastically reduced that routing determined to be possible at the global routing processing will be determined to be impossible at the detailed routing processing.
  • the present invention is not limited to the above-described embodiment but allows various modifications and variations within the spirit and scope of the present invention.
  • the above-described embodiment employs the number of usable grids, it is clear that an area of an unused region in each global routing cell may be employed in place of it.
  • the cost of a degree of wire congestion on a global routing cell boundary and the cost of a grid use rate are employed as the costs to be taken into consideration for determining a minimum cost route, not all the costs set forth above are necessary.
  • the automatic routing device of the present invention and a routing method thereof determine a routing route of each net based on a grid use rate in addition to a wire capacitance on a global routing cell boundary, a probability can be drastically lessened that routing determined to be possible at the global routing processing will be determined to be impossible at the detailed routing processing. As a result, time required for automatic placement and routing processing can be reduced.

Abstract

Automatic routing device which automatically conducts placement and routing of integrated circuits on an integrated circuit chip, including a wire capacitance calculating unit, a degree of wire congestion calculating unit and a routing checking unit for determining whether routing of a desired net is possible or not based on degree of wire congestion at each global routing cell boundary formed by the division of a logic circuit chip to be processed into global routing cells, and a number of grids calculating unit, a grid use rate calculating unit and a grid use rate checking unit for determining whether routing of a desired net is possible or not based on a state of the use of a routing track grid in each global routing cell formed on the logic circuit chip.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention relates to an automatic global routing device, in a CAD system which designs and develops a large-scale integrated circuit (LSI) and a logic circuit by means of a computer, for automatically placement and routing component cells on LSI chips or printed boards so as to minimize the entire size or minimize a routing length and a global routing method therefor. [0002]
  • 2. Description of the Related Art [0003]
  • Automatic placement and routing processing of this kind for placement and routing integrated circuit chips by an automatic routing device using a CAD system is executed in four steps, floor plan processing, placement processing, global routing processing and detailed routing processing. [0004]
  • In the following, conventional automatic placement and routing methods will be described with reference to FIGS. 7 and 8. First, at the floor plan processing, place macro cells on an integrated circuit to be processed, as well as determining a region in which basic cells are to be placed as shown in FIG. 8(A) (Step [0005] 701). This floor plan processing is conducted semi-automatically. Next, determination is made whether routing processing is possible for the integrated circuit subjected to the floor plan processing (Step 702). When the determination is made that routing is impossible, the routine returns to Step 701 to execute the floor plan processing over again.
  • When the determination is made at [0006] Step 702 that routing is possible, place desired basic cells at the basic cell placement region as shown in FIG. 8(B) (Step 703). Then, determination is made whether routing processing is possible for the integrated circuit subjected to the basic cell placement processing (Step 704). When the determination is made that routing is impossible, the routine returns to Step 703 to conduct the placement processing over again. When the determination is still made at Step 704 that routing is impossible even after further trials of the placement processing preset times, the routine returns to Step 701 to start over with the floor plan processing.
  • When the determination is made at [0007] Step 704 that routing is possible, divide the integrated circuit chip to be processed into rectangles (global routing cells) and determine a routing route of each net on a divisional unit basis as shown in FIG. 8(C) (Step 705). “Net” here represents a route from an output terminal of an arbitrary gate circuit to an input terminal of other gate circuit. For each net, net information indicating which terminals are to be connected is defined. Global routing processing at Step 705 is conducted based only on a wire capacitance of a global routing cell boundary (degree of wire congestion) as will be described later. Next, determination is made whether routing processing is possible for the integrated circuit subjected to the global routing processing (Step 706). When the determination is made that routing is impossible, the routine returns to Step 705 to conduct the global routing processing over again. When the determination is still made at Step 706 that routing is impossible even after further trials of the global routing processing preset times, the routine returns to Step 703 to conduct the placement processing over again. Furthermore, when the determination is still made at Step 706 that routing is impossible even after further trial of the placement processing preset times, the routine returns to Step 701 to start over with the floor plan processing.
  • When the determination is made at [0008] Step 706 that routing is possible, determine a detailed routing route within each global routing cell as shown in FIG. 8(D) (Step 707). Then, see if there is a shorted net or an unrouted net (Step 708). When there is a shorted net or an unrouted net, the routine returns to Step 707 to conduct the detailed routing processing over again. If a shorted net or an unrouted net is still detected at Step 708 even after further trials of the detailed routing processing preset times, the routine returns to Step 705 to conduct the global routing processing over again. Further, when a shorted place or a place yet to be wired is still detected at Step 708 even after further executions of the global routing processing preset times, the routine returns to Step 703 to start over with the placement processing. Further, if a shorted place or a place yet to be wired is still detected at Step 708 even after further executions of the placement processing preset times, the routine returns to Step 701 to start over with the floor plan processing. Then, when there remains neither a shorted place nor a place yet to be wired (yes at Step 708), the automatic placement and routing processing is completed.
  • Next, with reference to FIG. 9, detailed description will be made of the global routing processing (FIG. 7, Step [0009] 705) and the following routing possibility/impossibility determination processing (FIG. 7, Step 706) at the conventional automatic placement and routing processing. Conventional global routing processing of this kind is disclosed, for example, in Japanese Patent Laying-open (Kokai) No. Heisei 3-278446, entitled “Automatic Routing Method for Semiconductor Device”.
  • First, as shown in FIG. 10(A), divide a chip into rectangles (global routing cells) (Step [0010] 901). In FIG. 10(A), a black square represents a terminal, while a region denoted by slant lines represents a global route for the connection of terminals. “Global routing cell” is also called a unit routing region. In the figure, a boundary between adjacent global routing cells is called a “global routing cell boundary”. More specifically, each global routing cell has four global routing boundaries in the upper, lower, right and left directions.
  • Next, calculate a wire capacitance which indicates how many wires can pass through each global routing cell boundary (Step [0011] 902). With reference to FIG. 11, a method of calculating a wire capacitance will be described. In FIG. 11, one specific global routing cell is denoted by solid lines and a routing track is denoted by a dotted line. Here, “routing track” represents a passage on which routing can be made. “Wire capacitance” is therefore equal to the number of routing tracks passing through a global routing cell boundary. In addition, a routing inhibited region is denoted as a block of slant lines. In practice, routing is made over a plurality of layers. In other words, routing tracks and routing inhibited regions exist individually on each layer in practice. In this example, description will be made of one-layer routing for the purpose of simplicity. In the example illustrated in FIG. 11, five routing tracks exist in the right-and-left direction and five routing tracks also exist in the up-and-down direction. In this case, if there exists no routing inhibited region within the global routing cell and on the global routing cell boundaries, a wire capacitance of each global routing cell boundary will be 5.
  • However, since a routing inhibited region exists in practice as illustrated in FIG. 11, a wire capacitance of each global routing cell boundary will be less than [0012] 5 which is a value derived from the number of routing tacks. In the example shown in FIG. 11, the symbol “∘” on a global routing cell boundary denotes a passable track, and a wire capacitance of the upper global routing cell boundary is 3, that of the lower global routing cell boundary is 4, that of the left-side global routing cell boundary is 4 and that of the right-side global routing cell boundary is 3. Here, according to the above literature, a wire capacitance is obtained as the number of routing tracks allowing routing which is estimated based on a distribution of obstructions within the global routing cell (routing inhibited region). In the global routing processing, therefore, a routing route is selected such that a wire capacitance will not exceed an estimated value at each global routing cell boundary.
  • Next, based on a wire capacitance of a global routing cell boundary and already determined global routes, calculate a degree of congestion of wires which indicates how many wires can be actually passed through a global routing cell boundary (Step [0013] 903). With a global route set as shown in FIG. 10(A), a global routing cell boundary through which a wire passes is denoted by an arrow in FIG. 10(B) and a global routing cell through which a wire passes is denoted as a block of heavy solid lines. This calculation of a degree of wire congestion is made per one net yet to be wired, using the following expression:
  • [degree of wire congestion]=[the number of passing global routes]−[wire capacitance].
  • Therefore, the higher a value of the degree of wire congestion is, that is, the closer to zero the value is, the more wires congest. Zero value of the degree of wire congestion indicates that no more routing is possible on the global routing cell boundary. With reference to FIGS. 12 and 13 in addition to FIG. 11, a method of calculating a degree of wire congestion will be described. FIG. 12 shows already determined global routes. In this example, two global routes pass through the upper global routing cell boundary, one passes through the lower global routing cell boundary, two pass through the left-side global routing cell boundary and three pass through the right-side global routing cell boundary. Calculation of a degree of wire congestion based on the wire capacitances shown in FIG. 11 and the global routes shown in FIG. 12 results in that the degree of wire congestion on the upper global routing cell boundary will be −1 (=2−3) as shown in FIG. 13 because the number of passing global routes is two and the wire capacitance is 3. Similarly, the degree of wire congestion on the lower global routing cell boundary will be −3 (=1−4), that of the left-side global routing cell boundary will be −2 (=2−4) and that of the right-side global routing cell boundary will be 0 (=3−3). [0014]
  • Next, based on the cost of distance, the cost of a degree of wire congestion on a global routing cell boundary, the cost of bend and other various kinds of costs, determine a routing route minimizing these costs (Step [0015] 904). Then, Steps 903 and 904 will be repeated until there remains no more unrouted net (Step 905). In other words, determination of a route minimizing these costs is made through Steps 903, 904 and 905 taking wire capacitances into consideration until no unrouted net wired is left.
  • When there no more remains a net yet to be wired (no at Step [0016] 905), determination is made whether there exists a global routing cell boundary at which the number of passing wires exceeds its wire capacitance (that is, a global routing cell boundary with a positive value of the degree of wire congestion) (Step 906). Here, when there exists a global routing cell boundary at which the number of passing wires exceeds its wire capacitance, rip up a net which passes through the global routing cell boundary (Step 907) to return to Step 904. On the other hand, when there exists no global routing cell boundary at which the number of passing wires exceeds its wire capacitance, the global routing processing is completed.
  • The automatic placement and routing processing by a conventional automatic routing device, however, has the following drawback because global routing processing is conducted taking only a wire capacitance of a global routing cell boundary into consideration, that is, based only on a degree of wire congestion as mentioned above. [0017]
  • Consideration will be given of a global routing cell with three routing tracks existing in the right-and-left direction and three routing tracks also in the up-and-down direction as illustrated in FIG. 14(A). It is assumed that in this global routing cell, a region denoted by slant lines and including a point of intersection between the central routing track in the right-and-left direction and the central routing track in the up-and-down direction (hereinafter referred to as a central point of intersection) is a routing inhibited region. In such a case, wire capacitances of the respective global routing cell boundaries are all 3. [0018]
  • With this global routing cell, to pass three wires as a global route in the right-and-left direction as shown in FIG. 14(B) results in having such degrees of wire congestion on the global routing cell boundaries as shown in FIG. 14(C), none of which has a positive value. In other words, the number of nets passing through the global routing cell boundary does not exceed a wire capacitance. Determination is therefore made here that the routing in question is possible. However, since routing that passes through the central point of intersection is actually impossible because of the existence of the routing inhibited region, even if determination is made at the global routing processing that routing is possible, routing error will occur at the subsequent detailed routing processing as shown in FIG. 14(D). This is because two nets are shorted as illustrated in FIG. 14(D). As a result, the global routing processing or the preceding placement processing and floor plan processing should be conducted over again. [0019]
  • In brief, automatic routing and placement processing by a conventional automatic routing device has a disadvantage in taking much time because even when determination is made at global routing processing that routing is possible, it is highly probable that determination will be made at detailed routing processing that routing is impossible. [0020]
  • SUMMARY OF THE INVENTION
  • An object of the present invention is to provide an automatic routing device enabling reduction in time required for automatic placement and routing processing by lessening a probability that routing determined to be possible at global routing processing will be determined to be impossible at detailed routing processing. [0021]
  • According to the first aspect of the invention, automatic routing device for automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprises [0022]
  • first determination means for determining whether routing of a desired net is possible or not based on a wire capacitance at each global routing cell boundary formed by the division of the logic circuit chip into global routing cells, and [0023]
  • second determination means for determining whether routing of a desired net is possible or not based on a state of the use of a routing track grid in each global routing cell formed on the logic circuit chip. [0024]
  • In the preferred construction, the second determination means determines whether routing of the desired net is possible or not based on, out of grids as points of intersection between the routing tracks, the number of grids usable for routing. [0025]
  • In the preferred construction, the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and routing possibility/impossibility determining means for determining whether routing of the desired net is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used by the wires. [0026]
  • In the preferred construction, the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and determination means for comparing the number of grids usable for routing and the number of grids to be used by wires to determine that the routing is impossible when the number of grids to be used by wires is larger. [0027]
  • According to the second aspect of the invention, an automatic routing device for automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprises [0028]
  • floor plan determining means for conducting floor plan processing, [0029]
  • basic cell placement means for conducting basic cell placement processing, [0030]
  • global routing route determining means for conducting global routing processing, and [0031]
  • detailed routing route determining means for conducting detailed routing processing, [0032]
  • the global routing route determining means comprising [0033]
  • first determination means for determining whether routing of a desired net is possible or not based on a wire capacitance at each global routing cell boundary formed by the division of the logic circuit chip into global routing cells, and [0034]
  • second determination means for determining whether routing of a desired net is possible or not based on a state of the use of a routing grid track in each global routing cell formed on the logic circuit chip. [0035]
  • In the preferred construction, the second determination means determines whether routing of the desired net is possible or not based on, out of grids as points of intersection between the routing tracks, the number of grids usable for routing. [0036]
  • In the preferred construction, the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and routing possibility/impossibility determining means for determining whether routing of the desired net is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used by the wires. [0037]
  • In another preferred construction, the second determination means comprises number of usable grids calculating means for calculating, out of grids as points of intersection between the routing tracks, the number of grids usable for routing, number of grids to be used calculating means for calculating, based on a passing route of wires passing in the global routing cell, the number of grids to be used by the wires out of the grids, and determination means for comparing the number of grids usable for routing and the number of grids to be used by wires to determine that the routing is impossible when the number of grids to be used by wires is larger. [0038]
  • According to the third aspect of the invention, an automatic routing method of automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprising the steps of: [0039]
  • conducting floor plan processing, [0040]
  • conducting basic cell placement processing, [0041]
  • conducting global routing processing, and [0042]
  • conducting detailed routing processing, [0043]
  • the global routing processing step comprising the steps of [0044]
  • dividing the logic circuit chip into global routing cells, [0045]
  • calculating a wire capacitance of each global routing cell boundary formed at the division step, [0046]
  • out of grids as points of intersection between routing tracks in each global routing cell formed at the division step, calculating the number of grids usable for routing, [0047]
  • based on a passing route of wires passing in the global routing cell, calculating the number of grids to be used by the wires out of the grids, [0048]
  • comparing the number of grids usable for routing calculated at the number of usable grids calculating step and the number of grids to be used by the wires calculated at the number of grids to be used calculating step, [0049]
  • determining a routing route of every net such that at least the cost of the degree of wire congestion calculated at the wire capacitance calculating step and the cost of grid use rate for routing calculated at the number of usable grids calculating step are minimum, [0050]
  • determining whether routing according to a routing route determined at the routing route determining step is possible or not based on the degree of wire congestion calculated at the wire capacitance calculating step, and [0051]
  • determining whether routing according to a routing route determined at the routing route determination step is possible or not based on a comparison result obtained at the number of grids comparing step. [0052]
  • In the preferred construction, the step of determining whether routing is possible or not based on a wire capacitance comprises the steps of: [0053]
  • determining whether there exists the global routing cell boundary through which a larger number of wires pass than the wire capacitance calculated at the wire capacitance calculating step, and when determination is made at the determination step that there exists the global routing cell boundary through which a larger number of wires pass than the wire capacitance, ripping up a net passing through the global routing cell boundary to return the processing to the route determination step. [0054]
  • In the preferred construction, the step of determining whether routing is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used for the wires comprises the steps of: [0055]
  • determining whether there exists the global routing cell in which the number of grids to be used for the wires is larger than the number of grids usable for routing, and [0056]
  • when determination is made at the determination step that there exists the global routing cell in which the number of grids to be used for the wires is larger than the number of grids usable for routing, ripping up a net passing through the global routing cell to return the processing to the route determination step. [0057]
  • In another preferred construction, the step of determining whether routing is possible or not based on a wire capacitance comprises the steps of: [0058]
  • determining whether there exists the global routing cell boundary through which a larger number of wires pass than the wire capacitance calculated at the wire capacitance calculating step, and [0059]
  • when determination is made at the determination step that there exists the global routing cell boundary through which a larger number of wires pass than the wire capacitance, ripping up a net passing through the global routing cell boundary to return the processing to the route determination step, and [0060]
  • the step of determining whether routing is possible or not based on a ratio of the number of grids usable for routing to the number of grids to be used for the wires comprises the steps of: [0061]
  • determining whether there exists the global routing cell in which the number of grids to be used for the wires is larger than the number of grids usable for routing, and [0062]
  • when determination is made at the determination step that there exists the global routing cell in which the number of grids to be used for the wires is larger than the number of grids usable for routing, ripping up a net passing through the global routing cell to return the processing to the route determination step. [0063]
  • According to another aspect of the invention, a computer readable memory storing a control program for controlling an automatic routing device which automatically places and wires integrated circuits on an integrated circuit chip to be processed, [0064]
  • the control program comprising the steps of: [0065]
  • conducting floor plan processing, [0066]
  • conducting basic cell placement processing, [0067]
  • conducting global routing processing, and [0068]
  • conducting detailed routing processing, [0069]
  • the global routing processing step comprising the steps of [0070]
  • dividing the logic circuit chip into global routing cells, [0071]
  • calculating a wire capacitance of each global routing cell boundary formed at the division step, [0072]
  • out of grids as points of intersection between routing tracks in each global routing cell formed at the division step, calculating the number of grids usable for routing, [0073]
  • based on a passing route of wires passing in the global routing cell, calculating the number of grids to be used by the wires out of the grids, [0074]
  • comparing the number of grids usable for routing calculated at the number of usable grids calculating step and the number of grids to be used by the wires calculated at the number of grids to be used calculating step, [0075]
  • determining a routing route of every net such that at least the cost of the wire capacitance calculated at the wire capacitance calculating step and the cost of the number of grids usable for routing calculated at the number of usable grids calculating step are minimum, [0076]
  • determining whether routing according to a routing route determined at the routing route determining step is possible or not based on the wire capacitance calculated at the wire capacitance calculating step, and [0077]
  • determining whether routing according to a routing route determined at the routing route determination step is possible or not based on a comparison result obtained at the number of grids comparing step. [0078]
  • Other objects, features and advantages of the present invention will become clear from the detailed description given herebelow. [0079]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be understood more fully from the detailed description given herebelow and from the accompanying drawings of the preferred embodiment of the invention, which, however, should not be taken to be limitative to the invention, but are for explanation and understanding only. [0080]
  • In the drawings: [0081]
  • FIG. 1 is a block diagram showing structure of an automatic routing device according to one embodiment of the present invention. [0082]
  • FIG. 2 is a flow chart showing operation of global routing processing in the present embodiment. [0083]
  • FIG. 3 is a diagram for use in explaining a method of calculating the number of usable grids. [0084]
  • FIG. 4 is a diagram for use in explaining a method of calculating an estimated number of grids to be used in the present embodiment. [0085]
  • FIG. 5 is a diagram showing calculation examples of an estimated number of grids to be used and a grid use rate. [0086]
  • FIG. 6 is a diagram showing an example of application of global routing processing according to the present embodiment. [0087]
  • FIG. 7 is a flow chart showing a flow of integrated circuit automatic placement and routing processing in outline. [0088]
  • FIG. 8 is a diagram for use in explaining each processing of four steps to be executed in the automatic placement and routing processing shown in FIG. 7. [0089]
  • FIG. 9 is a flow chart specifically showing the contents of global routing processing in conventional automatic placement and routing processing. [0090]
  • FIG. 10 is a global diagram showing a global route, global routing cell boundaries and global routing cells. [0091]
  • FIG. 11 is a diagram for use in explaining a wire capacitance calculation method. [0092]
  • FIG. 12 is a diagram showing one example of a global route. [0093]
  • FIG. 13 is a diagram showing one example of a degree of wire congestion. [0094]
  • FIG. 14 is a diagram showing an example of application of the global routing processing in the conventional automatic placement and routing processing. [0095]
  • DESCRIPTION OF THE PREFERRED EMBODIMENT
  • The preferred embodiment of the present invention will be discussed hereinafter in detail with reference to the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to those skilled in the art that the present invention may be practiced without these specific details. In other instance, well-known structures are not shown in detail in order to unnecessary obscure the present invention. [0096]
  • FIG. 1 is a block diagram showing structure of an integrated circuit automatic routing device according to one embodiment of the present invention. A flow of automatic placement and routing processing according to the present embodiment, similar to that of the conventional processing described with reference to FIG. 7, is in outline executed in four steps, floor plan processing, placement processing, global routing processing and detailed routing processing. In addition, as a flow of entire processing, when determination is made that routing is impossible or that there exists a shorted net or unrouted net after the execution of each step of the floor plan processing, the placement processing, the global routing processing and the detailed routing processing, the immediately preceding processing is first conducted over again and if the execution of the processing achieves no improvement, processing is sequentially conducted over again retroactively to the preceding processing, similarly to the conventional automatic placement and routing processing shown in FIG. 7. [0097]
  • With reference to FIG. 1, an automatic routing device of the present embodiment includes a floor [0098] plan determining unit 10 for executing floor plan processing, a basic cell placement unit 20 for executing basic cell placement processing, a global routing route determining unit 30 for executing global routing processing and a detailed routing route determining unit 40 for executing detailed routing processing. In FIG. 1, illustration is made only of a characteristic part of the structure of the present embodiment and that of the remaining part is omitted.
  • Each of the above-described components is implemented by a processing device under control of a computer program at a computer system such as a work station or a personal computer. The control program is provided as storage in a storage medium such as a magnetic disk or a semiconductor memory and is loaded into the processing device of the computer system to execute the function of each component. [0099]
  • In the above-described structure, the floor [0100] plan determining unit 10 conducts the same floor plan processing as that of the conventional automatic placement and routing processing, the basic cell placement unit 20 conducts the same placement processing as that of the conventional automatic placement and routing processing and the detailed routing route determining unit 40 conducts the same detailed routing processing as that of the conventional automatic placement and routing processing.
  • The global routing [0101] route determining unit 30, as shown in FIG. 1, includes a wire capacitance calculating unit 31 for calculating a wire capacitance of a global routing cell boundary, a number of grids calculating unit 32 for calculating the number of grids which can be wired in a global routing cell, a degree of wire congestion calculating unit 33, a grid use rate calculating unit 34 and a minimum cost route determining unit 35 for the determination of a global route, and a routing checking unit 36 and a grid use rate checking unit 37 for the determination of routing possibility/impossibility.
  • The wire [0102] capacitance calculating unit 31 calculates a wire capacitance at each global routing cell boundary formed by the division of the chip into global routing cells. The wire capacitance calculating method is the same as that in conventional global routing processing.
  • The number of [0103] grids calculating unit 32 calculates the number of grids usable for routing in each global routing cell formed on the chip. Grid here represents a point of intersection between routing tracks in a global routing cell. A total number of grids in each global routing cell is equal to [the number of routing tracks in the right-and-left direction]×[the number of routing tracks in the up-and-down direction] of the global routing cell. Since there is a case where a routing inhibited region exists within a global routing cell, the number of grids usable for routing is less than or equal to the total number of grids in a global routing cell in question, which is obtained by the following expression:
  • [the total number of grids]−[the number of grids which can not be used because of the existence of routing inhibited region].
  • The degree of wire [0104] congestion calculating unit 33 calculates a degree of wire congestion based on a wire capacitance of a global routing cell boundary and already determined global routes. The method of calculating a degree of wire congestion is the same as that in the conventional global routing processing and is obtained by the following expression:
  • [the number of passing global routes]−[wire capacitance].
  • The grid use [0105] rate calculating unit 34 calculates a grid use rate in each global routing cell based on the number of usable grids in the global routing cell calculated by the number of grids calculating unit 32 and an estimated number of grids to be used for already determined global routes. Estimated number of grids to be used represents the number of grids to be used by wires in question within a global routing cell in question calculated based on a route of the wires passing through the global routing cell. Grid use rate represents a ratio of an estimated number of grids to be used in a global routing cell to the number of usable grids in the global routing cell, which is defined by [the estimated number of grids to be used in global routing cell]/[the number of usable grids in global routing cell]. Routing to have a grid use rate higher than 1 is therefore impossible.
  • The minimum cost [0106] route determining unit 35 determines, based on the cost of distance, the cost of a degree of wire congestion on a global routing cell boundary, the cost of a grid use rate, the cost of bend and other various kinds of costs, a routing route minimizing these costs. The method of determining such route is the same as the minimum cost route determining method in the conventional automatic placement and routing processing with the only difference being that the cost of a grid use rate is taken into consideration.
  • The [0107] routing checking unit 36, after routing is conducted with respect to all the nets through the processing by the degree of wire congestion calculating unit 33, the grid use rate calculating unit 34 and the minimum cost route determining unit 35, sees if the number of wires passing through each global routing cell boundary exceeds a wire capacitance of the global routing cell boundary. Then, when there is a global routing cell boundary at which the number of passing wires exceeds its wire capacitance, a net passing through the global routing cell boundary is tore away to again cause the degree of wire congestion calculating unit 33, the grid use rate calculating unit 34 and the minimum cost route determining 35 to conduct their processing.
  • The grid use [0108] rate checking unit 37, after routing is conducted with respect to all the nets through the processing by the degree of wire congestion calculating unit 33, the grid use rate calculating unit 34 and the minimum cost route determining unit 35, sees if a grid use rate at each global routing cell is higher than 1. Then, if there is a global routing cell whose grid use rate is higher than 1, a net passing through the global routing cell is tore away to again cause the degree of wire congestion calculating unit 33, the grid use rate calculating unit 34 and the minimum cost route determining unit 35 to conduct their processing.
  • Next, global routing processing according to the present embodiment will be described with reference to the flow chart of FIG. 2 and FIGS. [0109] 3 to 5. In the global routing route determining unit 30, first, the wire capacitance calculating unit 31 divides a chip to be processed into global routing cells (Step 201) to calculate a wire capacitance at each global routing cell boundary (Step 202). Next, the number of grids calculating unit 32 calculates the number of grids usable for routing at each global routing cell (Step 203). With reference to FIG. 3, a method of calculating the number of grids usable for routing will be specifically described.
  • FIG. 3 is a diagram showing grids usable for routing at a global routing cell having the same structure as that shown in FIG. 11. In FIG. 3, a region surrounded by solid lines corresponds to one global routing cell. A routing track is denoted by a dotted line and a routing inhibited region is denoted by slant lines. In the global routing cell illustrated in FIG. 3, five routing tracks exist in the right-and-left direction and five routing tracks exist in the up-and-down direction. The total number of grids is therefore 25 (=5×5) (in an actual global routing cell, approximately 20 routing tracks exist both in the right-and-left direction and in the up-and-down direction and the total number of grids is approximately 400 (=20×20)). However, since a routing inhibited region exists, the number of grids usable for routing will be less than the above described total number of grids, 25. In FIG. 3, usable grids within the global routing cell are indicted by white rounds. The actual number of usable grids will be 18 (=25−7), which is a value obtained by subtracting 7, the number of grids included in the routing inhibited region, from 25, the above-described total number of grids. [0110]
  • Next, the degree of wire [0111] congestion calculating unit 33 calculates a degree of wire congestion at each global routing cell boundary (Step 204). Then, the grid use rate calculating unit 34 calculates a grid use rate at each global routing cell (Step 205). With reference to FIGS. 4 and 5, a method of calculating an estimated number of grids to be used and a grid use rate will be specifically described.
  • In FIG. 4(A) to (D), at a global routing cell denoted by solid lines, a number x of routing tracks exist in the right-and-left direction and a number y of routing tracks exist in the up-and-down direction (see FIG. 4(A)). In this state, possible patterns of wires passing through the global routing cell are three, a passing pattern on which one wire is provided in the right-and-left direction (FIG. 4(B), hereinafter referred to as a right-and-left passing pattern), a passing pattern on which one wire is provided in the up-and-down direction (FIG. 4(C), hereinafter referred to as an up-and-down passing pattern) and a passing pattern on which one wire turns at a right angle (passing through two adjacent global routing cell boundaries) within the global routing cell (FIG. 4(D), hereinafter referred to as an adjacent passing pattern). The right-and-left passing pattern uses a number y of grids for one wire to pass through the global routing cell. The up-and-down passing pattern uses a number x of grids for one wire to pass through the global routing cell. The adjacent passing pattern uses a number (x/2+y/2) of grids for one wire to pass through the global routing cell. Although FIG. 4(D) illustrates one passing pattern on which a wire passes through the right and the lower global routing cell boundaries (hereinafter referred to as a lower right passing pattern), this is also the case with a passing pattern on which a wire passes through the lower and the left global routing cell boundaries (hereinafter referred to as a lower left passing pattern), a passing pattern on which a wire passes through the left and the upper global routing cell boundaries (hereinafter referred to as an upper left passing pattern) and a passing pattern on which a wire passes through the upper and the right global routing cell boundaries (hereinafter referred to as an upper right passing pattern). Then, an estimated number of grids to be used within the global routing cell is obtained by calculating the following equation with respect to all the passing routes and adding the calculation results: [0112]
  • [an estimated number of grids to be used for each passing route]=[the number of grids to be used for one wire determined according to the passing route]×[the number of wires passing through the passing route].
  • On the foregoing premises, an estimated number of grids to be used and a grid use rate in the global routing cell shown in FIG. 5 are calculated. In the example shown in FIG. 5, five routing tracks exist in the right-and-left direction and five routing tracks exist in the up-and-down direction. Then, two wires pass through a passing [0113] route 501 as an upper right passing pattern, one passes through a passing route 502 as a right-and-left passing pattern and one passes through a passing route 503 as a lower left passing pattern. In this case, an estimated number of grids to be used for each passing route is obtained by the following expressions:
  • passing route 501: (5/2+5/2)×2=10
  • passing route 502: 5×1=5
  • passing route 503: (5/2+5/2)×1=5.
  • An estimated number of grids to be used in the global routing cell therefore totals 20 (=10+5+5). When the number of usable grids in the global routing cell is 18 as shown in FIG. 3 and the estimated number of grids to be used in the global routing cell is 20 as shown in FIG. 5, a grid use rate will be 1.11 (=20/18). [0114]
  • Next, the minimum cost [0115] route determining unit 35, taking various costs including the cost of distance, the cost of a degree of wire congestion on a global routing cell boundary and the cost of a grid use rate into consideration, determines a route minimizing these costs (Step 206).
  • The foregoing processing at [0116] Step 204 to Step 206 will be repeated until routing of all the nets is completed (Step 207). More specifically, the operation at Steps 204 to 207 will determine a route minimizing costs based on a grid use rate in addition to a wire capacitance until no unrouted net remains.
  • Next, the [0117] routing checking unit 36 sees if there exists a global routing cell boundary on which the number of passing wires exceeds its wire capacitance and if such a global routing cell boundary exists, a net passing through the global routing cell boundary is tore away to return to Step 204 (Steps 208 and 209).
  • When there exists no global routing cell boundary on which the number of passing wires exceeds a wire capacitance, the grid use [0118] rate checking unit 37 next sees if there exists a global routing cell having a grid use rate is higher than 1 and if such a global routing cell exists, a net passing through the global routing cell is tore away to return to Step 204 (Steps 210 and 211). For example, the grid use rate calculated with reference to FIG. 5 is 1.11, a value higher than 1, and therefore, a net having such routing as illustrated in FIG. 5 will be tore away.
  • Thus, when there exists no net whose routing is determined to be possible based neither on a wire capacitance nor on a grid use rate, the global routing processing is completed. Although in the above-described operation example, a check on a grid use rate is made after a check on a wire capacitance ([0119] Steps 208 and 210), either may be made first because these two are independent processing.
  • Next, functions of the global routing processing according to the present embodiment will be specifically described with reference to FIG. 6. FIG. 6 shows a state of global routing processing conducted according to the present embodiment with respect to a global routing cell having the same structure as that illustrated in FIG. 14. More specifically, three routing tracks exist in the right-and-left direction and three routing tracks exist also in the up-and-down direction as shown in FIG. 6(A). In this global routing cell, a region including one grid as a central point of intersection and denoted by slant lines is a routing inhibited region. In such a case as this, wire capacitances at the respective global routing cell boundaries are all 3 as has been described in the Related Art. The number of grids usable for routing is eight, which is a value obtained by subtracting one, the number of grids within the routing inhibited region, from nine (=3×3), the total number of grids. [0120]
  • At the global routing cell illustrated in FIG. 6(A), to pass three wires as a global route in the right-and-left direction as illustrated in FIG. 6(B) will result in having such degrees of wire congestion on the global routing cell boundaries as shown in FIG. 6(C), among which no positive value exists. Based only on a degree of wire congestion, therefore, determination can be made that routing is possible because the number of nets passing through each global routing cell boundary does not exceed the wire capacitance. [0121]
  • Next, calculate a grid use rate. In this global routing cell, an estimated number of grids to be used per wire is three and an estimated number of grids to be used within the global routing cell is nine (3×3) accordingly. In addition, the number of grids usable for routing is eight as mentioned above. As a result, a grid use rate will be 1.12 (=9/8), a value higher than 1, and determination is therefore made that the routing in question is impossible. [0122]
  • As described in the foregoing, according to the global routing processing of the present embodiment, the determination based on a grid use rate can in some cases eliminate routing which might be erroneously determined to be possible based only on a wire capacitance. In this case, it is possible to prevent a probability that routing error as illustrated in FIG. 6(E) will occur at the detailed routing processing. As a result, the probability can be drastically reduced that routing determined to be possible at the global routing processing will be determined to be impossible at the detailed routing processing. [0123]
  • The present invention is not limited to the above-described embodiment but allows various modifications and variations within the spirit and scope of the present invention. For example, while the above-described embodiment employs the number of usable grids, it is clear that an area of an unused region in each global routing cell may be employed in place of it. In addition, as long as at least the cost of a degree of wire congestion on a global routing cell boundary and the cost of a grid use rate are employed as the costs to be taken into consideration for determining a minimum cost route, not all the costs set forth above are necessary. [0124]
  • As described in the foregoing, since the automatic routing device of the present invention and a routing method thereof determine a routing route of each net based on a grid use rate in addition to a wire capacitance on a global routing cell boundary, a probability can be drastically lessened that routing determined to be possible at the global routing processing will be determined to be impossible at the detailed routing processing. As a result, time required for automatic placement and routing processing can be reduced. [0125]
  • Although the invention has been illustrated and described with respect to exemplary embodiment thereof, it should be understood by those skilled in the art that the foregoing and various other changes, omissions and additions may be made therein and thereto, without departing from the spirit and scope of the present invention. Therefore, the present invention should not be understood as limited to the specific embodiment set out above but to include all possible embodiments which can be embodies within a scope encompassed and equivalents thereof with respect to the feature set out in the appended claims. [0126]

Claims (16)

What is claimed is:
1. Automatic routing device for automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprising:
first determination means for determining whether routing of a desired net is possible or not based on degree of wire congestion at each global routing cell boundary formed by the division of said logic circuit chip into global routing cells; and
second determination means for determining whether routing of a desired net is possible or not based on a state of the use of a routing track grid in each global routing cell formed on said logic circuit chip.
2. The automatic routing device as set forth in
claim 1
, wherein
said second determination means determines whether routing of said desired net is possible or not based on, out of grids as points of intersection between said routing tracks, the number of grids usable for routing.
3. The automatic routing device as set forth in
claim 1
, wherein
said second determination means comprising
number of usable grids calculating means for calculating, out of grids as points of intersection between said routing tracks, the number of grids usable for routing,
number of grids to be used calculating means for calculating, based on a passing route of wires passing in said global routing cell, the number of grids to be used by the wires out of said grids, and
routing possibility/impossibility determining means for determining whether routing of said desired net is possible or not based on a ratio of said number of grids usable for routing to said number of grids to be used by the wires.
4. The automatic routing device as set forth in
claim 1
, wherein
said second determination means comprising
number of usable grids calculating means for calculating, out of grids as points of intersection between said routing tracks, the number of grids usable for routing,
number of grids to be used calculating means for calculating, based on a passing route of wires passing in said global routing cell, the number of grids to be used by the wires out of said grids, and
determination means for comparing said number of grids usable for routing and said number of grids to be used by wires to determine that the routing is impossible when said number of grids to be used by wires is larger.
5. An automatic routing device for automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprising:
floor plan determining means for conducting floor plan processing;
basic cell placement means for conducting basic cell placement processing;
global routing route determining means for conducting global routing processing; and
detailed routing route determining means for conducting detailed routing processing;
said global routing route determining means comprising
first determination means for determining whether routing of a desired net is possible or not based on degree of wire congestion at each global routing cell boundary formed by the division of said logic circuit chip into global routing cells, and
second determination means for determining whether routing of a desired net is possible or not based on a state of the use of a routing track grid in each global routing cell formed on said logic circuit chip.
6. The automatic routing device as set forth in
claim 5
, wherein
said second determination means determines whether routing of said desired net is possible or not based on, out of grids as points of intersection between said routing tracks, the number of grids usable for routing.
7. The automatic routing device as set forth in
claim 5
, wherein
said second determination means comprising
number of usable grids calculating means for calculating, out of grids as points of intersection between said routing tracks, the number of grids usable for routing,
number of grids to be used calculating means for calculating, based on a passing route of wires passing in said global routing cell, the number of grids to be used by the wires out of said grids, and
routing possibility/impossibility determining means for determining whether routing of said desired net is possible or not based on a ratio of said number of grids usable for routing to said number of grids to be used by the wires.
8. The automatic routing device as set forth in
claim 5
, wherein
said second determination means comprising
number of usable grids calculating means for calculating, out of grids as points of intersection between said routing tracks, the number of grids usable for routing,
number of grids to be used calculating means for calculating, based on a passing route of wires passing in said global routing cell, the number of grids to be used by the wires out of said grids, and
determination means for comparing said number of grids usable for routing and said number of grids to be used by wires to determine that the routing is impossible when said number of grids to be used by wires is larger.
9. An automatic routing method of automatically conducting placement and routing of integrated circuits on an integrated circuit chip to be processed, comprising the steps of:
conducting floor plan processing;
conducting basic cell placement processing;
conducting global routing processing; and
conducting detailed routing processing;
said global routing processing step comprising the steps of
dividing said logic circuit chip into global routing cells,
calculating a wire capacitance of each global routing cell boundary formed at said division step,
out of grids as points of intersection between routing tracks in each global routing cell formed at said division step, calculating the number of grids usable for routing,
based on a passing route of wires passing in said global routing cell, calculating the number of grids to be used by the wires out of said grids,
comparing said number of grids usable for routing calculated at said number of usable grids calculating step and said number of grids to be used by the wires calculated at said number of grids to be used calculating step,
determining a routing route of every net such that at least the cost of said degree of wire congestion calculated at said wire capacitance calculating step and the cost of said grid use rate for routing calculated at said number of usable grids calculating step are minimum,
determining whether routing according to a routing route determined at said routing route determining step is possible or not based on said wire capacitance calculated at said wire capacitance calculating step, and
determining whether routing according to a routing route determined at said routing route determination step is possible or not based on a comparison result obtained at said number of grids comparing step.
10. The automatic routing method as set forth in
claim 9
, wherein
said step of determining whether routing is possible or not based on a wire capacitance comprises the steps of:
determining whether there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance calculated at said wire capacitance calculating step, and
when determination is made at said determination step that there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance, ripping up a net passing through the global routing cell boundary to return the processing to said route determination step.
11. The automatic routing method as set forth in
claim 9
, wherein
said step of determining whether routing is possible or not based on a ratio of said number of grids usable for routing to said number of grids to be used for the wires comprises the steps of:
determining whether there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, and
when determination is made at said determination step that there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, ripping up a net passing through the global routing cell to return the processing to said route determination step.
12. The automatic routing method as set forth in
claim 9
, wherein
said step of determining whether routing is possible or not based on a wire capacitance comprises the steps of:
determining whether there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance calculated at said wire capacitance calculating step, and
when determination is made at said determination step that there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance, ripping up a net passing through the global routing cell boundary to return the processing to said route determination step, and
said step of determining whether routing is possible or not based on a ratio of said number of grids usable for routing to said number of grids to be used for the wires comprises the steps of:
determining whether there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, and
when determination is made at said determination step that there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, ripping up a net passing through the global routing cell to return the processing to said route determination step.
13. A computer readable memory storing a control program for controlling an automatic routing device which automatically places and wires integrated circuits on an integrated circuit chip to be processed,
said control program comprising the steps of:
conducting floor plan processing;
conducting basic cell placement processing;
conducting global routing processing; and
conducting detailed routing processing;
said global routing processing step comprising the steps of
dividing said logic circuit chip into global routing cells,
calculating a wire capacitance of each global routing cell boundary formed at said division step,
out of grids as points of intersection between routing tracks in each global routing cell formed at said division step, calculating the number of grids usable for routing,
based on a passing route of wires passing in said global routing cell, calculating the number of grids to be used by the wires out of said grids,
comparing said number of grids usable for routing calculated at said number of usable grids calculating step and said number of grids to be used by the wires calculated at said number of grids to be used calculating step,
determining a routing route of every net such that at least the cost of said degree of wire congestion calculated at said wire capacitance calculating step and the cost of said grid use rate for routing calculated at said number of usable grids calculating step are minimum,
determining whether routing according to a routing route determined at said routing route determining step is possible or not based on said degree of wire congestion calculated at said wire capacitance calculating step, and
determining whether routing according to a routing route determined at said routing route determination step is possible or not based on a comparison result obtained at said number of grids comparing step.
14. The storage medium as set forth in
claim 13
, wherein
said step of said control program for determining whether routing is possible or not based on a wire capacitance comprises the steps of:
determining whether there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance calculated at said wire capacitance calculating step, and
when determination is made at said determination step that there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance, ripping up a net passing through the global routing cell boundary to return the processing to said route determination step.
15. The storage medium as set forth in
claim 13
, wherein
said step of said control program for determining whether routing is possible or not based on a ratio of said number of grids usable for routing to said number of grids to be used for the wires comprises the steps of:
determining whether there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, and
when determination is made at said determination step that there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, ripping up a net passing through the global routing cell to return the processing to said route determination step.
16. The storage medium as set forth in
claim 13
, wherein
said step of said control program for determining whether routing is possible or not based on a wire capacitance comprises the steps of:
determining whether there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance calculated at said wire capacitance calculating step, and
when determination is made at said determination step that there exists said global routing cell boundary through which a larger number of wires pass than said wire capacitance, ripping up a net passing through the global routing cell boundary to return the processing to said route determination step, and
said step of determining whether routing is possible or not based on a ratio of said number of grids usable for routing to said number of grids to be used for the wires comprises the steps of:
determining whether there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, and
when determination is made at said determination step that there exists said global routing cell in which said number of grids to be used for the wires is larger than said number of grids usable for routing, ripping up a net passing through the global routing cell to return the processing to said route determination step.
US09/048,587 1997-03-27 1998-03-27 Automatic global routing device for efficiently determining optimum wiring route on integrated circuit and global routing method therefor Expired - Fee Related US6378121B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9075609A JP3063828B2 (en) 1997-03-27 1997-03-27 Automatic schematic wiring method for integrated circuits
JP9-075609 1997-03-27

Publications (2)

Publication Number Publication Date
US20010014965A1 true US20010014965A1 (en) 2001-08-16
US6378121B2 US6378121B2 (en) 2002-04-23

Family

ID=13581133

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/048,587 Expired - Fee Related US6378121B2 (en) 1997-03-27 1998-03-27 Automatic global routing device for efficiently determining optimum wiring route on integrated circuit and global routing method therefor

Country Status (2)

Country Link
US (1) US6378121B2 (en)
JP (1) JP3063828B2 (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643838B2 (en) * 2001-12-17 2003-11-04 Sun Microsystems, Inc. System and method of placing components for minimizing wire congestion and wire length in performing a function
US20030208737A1 (en) * 2002-05-06 2003-11-06 International Business Machines Corporation Method and system for placing logic nodes based on an estimated wiring congestion
WO2004004008A1 (en) * 2002-06-28 2004-01-08 Koninklijke Philips Electronics N.V. Integrated circuit having building blocks
US20040128638A1 (en) * 2000-06-20 2004-07-01 Kerzman Joseph Peter Method and apparatus for selecting and aligning cells using a placement tool
US20060242614A1 (en) * 2005-04-25 2006-10-26 Cadence Design Systems, Inc. Method and mechanism for implementing automated PCB routing
US20070256045A1 (en) * 2006-04-28 2007-11-01 Shyh-Chang Lin V-shaped multilevel full-chip gridless routing
WO2009131766A1 (en) * 2008-04-23 2009-10-29 Synopsys, Inc. Method and apparatus for computing a detailed routability estimation
CN100570855C (en) * 2004-08-12 2009-12-16 国际商业机器公司 IC design system and method
US20100235804A1 (en) * 2009-03-12 2010-09-16 Fujitsu Limited Wiring design apparatus and method
US20130346938A1 (en) * 2010-06-08 2013-12-26 International Business Machines Corporation Post-placement cell shifting
US10331840B2 (en) * 2016-01-15 2019-06-25 International Business Machines Corporation Resource aware method for optimizing wires for slew, slack, or noise
CN112883682A (en) * 2021-03-15 2021-06-01 北京华大九天科技股份有限公司 Method and apparatus for global routing of integrated circuits and storage medium

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360133B1 (en) * 1999-06-17 2002-03-19 Advanced Micro Devices, Inc. Method and apparatus for automatic routing for reentrant process
JP3453535B2 (en) * 1999-08-03 2003-10-06 松下電器産業株式会社 Wiring route search method in automatic wiring design and recording medium storing wiring route search program
US6543040B1 (en) * 2000-03-15 2003-04-01 International Business Machines Corporation Macro design techniques to accommodate chip level wiring and circuit placement across the macro
JP4587520B2 (en) * 2000-03-28 2010-11-24 ルネサスエレクトロニクス株式会社 Automatic placement and routing method for semiconductor integrated circuit
US6889372B1 (en) 2000-07-15 2005-05-03 Cadence Design Systems Inc. Method and apparatus for routing
US6898773B1 (en) 2002-01-22 2005-05-24 Cadence Design Systems, Inc. Method and apparatus for producing multi-layer topological routes
TW451457B (en) * 2000-07-17 2001-08-21 Taiwan Semiconductor Mfg Method to optimize the placement design by adjusting the reference routing
CN1529864B (en) * 2000-12-06 2010-05-05 凯登斯设计系统有限公司 Method and apparatus for considering diagonal wiring in placement
US7055120B2 (en) * 2000-12-06 2006-05-30 Cadence Design Systems, Inc. Method and apparatus for placing circuit modules
US6516455B1 (en) * 2000-12-06 2003-02-04 Cadence Design Systems, Inc. Partitioning placement method using diagonal cutlines
US7024650B2 (en) * 2000-12-06 2006-04-04 Cadence Design Systems, Inc. Method and apparatus for considering diagonal wiring in placement
US6957410B2 (en) * 2000-12-07 2005-10-18 Cadence Design Systems, Inc. Method and apparatus for adaptively selecting the wiring model for a design region
US7080336B2 (en) * 2000-12-06 2006-07-18 Cadence Design Systems, Inc. Method and apparatus for computing placement costs
US6826737B2 (en) 2000-12-06 2004-11-30 Cadence Design Systems, Inc. Recursive partitioning placement method and apparatus
US7003754B2 (en) 2000-12-07 2006-02-21 Cadence Design Systems, Inc. Routing method and apparatus that use of diagonal routes
US7073150B2 (en) * 2000-12-07 2006-07-04 Cadence Design Systems, Inc. Hierarchical routing method and apparatus that use diagonal routes
US6915501B2 (en) 2001-01-19 2005-07-05 Cadence Design Systems, Inc. LP method and apparatus for identifying routes
US6738960B2 (en) 2001-01-19 2004-05-18 Cadence Design Systems, Inc. Method and apparatus for producing sub-optimal routes for a net by generating fake configurations
US7069530B1 (en) 2001-06-03 2006-06-27 Cadence Design Systems, Inc. Method and apparatus for routing groups of paths
US6877146B1 (en) 2001-06-03 2005-04-05 Cadence Design Systems, Inc. Method and apparatus for routing a set of nets
US6957411B1 (en) 2001-06-03 2005-10-18 Cadence Design Systems, Inc. Gridless IC layout and method and apparatus for generating such a layout
US6829757B1 (en) 2001-06-03 2004-12-07 Cadence Design Systems, Inc. Method and apparatus for generating multi-layer routes
US6957408B1 (en) 2002-01-22 2005-10-18 Cadence Design Systems, Inc. Method and apparatus for routing nets in an integrated circuit layout
US7107564B1 (en) 2001-06-03 2006-09-12 Cadence Design Systems, Inc. Method and apparatus for routing a set of nets
US6877149B2 (en) 2001-08-23 2005-04-05 Cadence Design Systems, Inc. Method and apparatus for pre-computing routes
US7398498B2 (en) 2001-08-23 2008-07-08 Cadence Design Systems, Inc. Method and apparatus for storing routes for groups of related net configurations
US6931616B2 (en) * 2001-08-23 2005-08-16 Cadence Design Systems, Inc. Routing method and apparatus
US6795958B2 (en) * 2001-08-23 2004-09-21 Cadence Design Systems, Inc. Method and apparatus for generating routes for groups of related node configurations
US7143382B2 (en) 2001-08-23 2006-11-28 Cadence Design Systems, Inc. Method and apparatus for storing routes
US7058913B1 (en) 2001-09-06 2006-06-06 Cadence Design Systems, Inc. Analytical placement method and apparatus
US7096449B1 (en) 2002-01-22 2006-08-22 Cadence Design Systems, Inc. Layouts with routes with different widths in different directions on the same layer, and method and apparatus for generating such layouts
US6944841B1 (en) 2002-01-22 2005-09-13 Cadence Design Systems, Inc. Method and apparatus for proportionate costing of vias
US7089524B1 (en) 2002-01-22 2006-08-08 Cadence Design Systems, Inc. Topological vias route wherein the topological via does not have a coordinate within the region
US7117468B1 (en) 2002-01-22 2006-10-03 Cadence Design Systems, Inc. Layouts with routes with different spacings in different directions on the same layer, and method and apparatus for generating such layouts
US7013451B1 (en) 2002-01-22 2006-03-14 Cadence Design Systems, Inc. Method and apparatus for performing routability checking
US7080329B1 (en) 2002-01-22 2006-07-18 Cadence Design Systems, Inc. Method and apparatus for identifying optimized via locations
US6892371B1 (en) 2002-01-22 2005-05-10 Cadence Design Systems, Inc. Method and apparatus for performing geometric routing
US7036105B1 (en) 2002-01-22 2006-04-25 Cadence Design Systems, Inc. Integrated circuits with at least one layer that has more than one preferred interconnect direction, and method for manufacturing such IC's
US6938234B1 (en) 2002-01-22 2005-08-30 Cadence Design Systems, Inc. Method and apparatus for defining vias
GB2393533A (en) * 2002-09-27 2004-03-31 Zuken Ltd Routing of interconnected regions e.g. of electrical circuits
US7171635B2 (en) * 2002-11-18 2007-01-30 Cadence Design Systems, Inc. Method and apparatus for routing
US6892369B2 (en) * 2002-11-18 2005-05-10 Cadence Design Systems, Inc. Method and apparatus for costing routes of nets
US7480885B2 (en) 2002-11-18 2009-01-20 Cadence Design Systems, Inc. Method and apparatus for routing with independent goals on different layers
US7003752B2 (en) * 2002-11-18 2006-02-21 Cadence Design Systems, Inc. Method and apparatus for routing
US7080342B2 (en) * 2002-11-18 2006-07-18 Cadence Design Systems, Inc Method and apparatus for computing capacity of a region for non-Manhattan routing
US7010771B2 (en) * 2002-11-18 2006-03-07 Cadence Design Systems, Inc. Method and apparatus for searching for a global path
US7624367B2 (en) 2002-11-18 2009-11-24 Cadence Design Systems, Inc. Method and system for routing
US7216308B2 (en) * 2002-11-18 2007-05-08 Cadence Design Systems, Inc. Method and apparatus for solving an optimization problem in an integrated circuit layout
US6996789B2 (en) * 2002-11-18 2006-02-07 Cadence Design Systems, Inc. Method and apparatus for performing an exponential path search
US7093221B2 (en) * 2002-11-18 2006-08-15 Cadence Design Systems, Inc. Method and apparatus for identifying a group of routes for a set of nets
US7047513B2 (en) 2002-11-18 2006-05-16 Cadence Design Systems, Inc. Method and apparatus for searching for a three-dimensional global path
US6988257B2 (en) * 2002-11-18 2006-01-17 Cadence Design Systems, Inc. Method and apparatus for routing
US7089519B1 (en) 2002-12-31 2006-08-08 Cadence Design System, Inc. Method and system for performing placement on non Manhattan semiconductor integrated circuits
US7013445B1 (en) 2002-12-31 2006-03-14 Cadence Design Systems, Inc. Post processor for optimizing manhattan integrated circuits placements into non manhattan placements
US7506295B1 (en) 2002-12-31 2009-03-17 Cadence Design Systems, Inc. Non manhattan floor plan architecture for integrated circuits
US20040221253A1 (en) * 2003-04-30 2004-11-04 James Imper ASIC routability improvement
JP4410088B2 (en) * 2004-11-29 2010-02-03 富士通株式会社 Semiconductor device design support method, program, and apparatus
US20070157146A1 (en) * 2006-01-03 2007-07-05 Mediatek Inc. Method of packing-based macro placement and semiconductor chip using the same
JP2009151433A (en) * 2007-12-19 2009-07-09 Nec Electronics Corp Layout design device and layout design method of semiconductor integrated circuit
JP5309878B2 (en) * 2008-10-17 2013-10-09 富士通株式会社 Wiring method, automatic wiring apparatus, and program
JP2011186625A (en) * 2010-03-05 2011-09-22 Renesas Electronics Corp Layout device and layout method for semiconductor integrated circuit
US8835996B2 (en) 2011-12-28 2014-09-16 United Microelectronics Corporation Integrated circuit configuration having extension conductor structure and fabricating method thereof
US10229239B2 (en) 2017-04-03 2019-03-12 International Business Machines Corporation Capacity model for global routing
US10719651B2 (en) * 2017-12-30 2020-07-21 Arteris, Inc. Synthesizing topology for an interconnect network of a system-on-chip with intellectual property blocks
US11665776B2 (en) 2019-12-27 2023-05-30 Arteris, Inc. System and method for synthesis of a network-on-chip for deadlock-free transformation
US11657203B2 (en) 2019-12-27 2023-05-23 Arteris, Inc. Multi-phase topology synthesis of a network-on-chip (NoC)
US10990724B1 (en) 2019-12-27 2021-04-27 Arteris, Inc. System and method for incremental topology synthesis of a network-on-chip
US11558259B2 (en) 2019-12-27 2023-01-17 Arteris, Inc. System and method for generating and using physical roadmaps in network synthesis
US11418448B2 (en) 2020-04-09 2022-08-16 Arteris, Inc. System and method for synthesis of a network-on-chip to determine optimal path with load balancing
US11601357B2 (en) 2020-12-22 2023-03-07 Arteris, Inc. System and method for generation of quality metrics for optimization tasks in topology synthesis of a network
US11281827B1 (en) 2020-12-26 2022-03-22 Arteris, Inc. Optimization of parameters for synthesis of a topology using a discriminant function module
US11449655B2 (en) 2020-12-30 2022-09-20 Arteris, Inc. Synthesis of a network-on-chip (NoC) using performance constraints and objectives
US11956127B2 (en) 2021-03-10 2024-04-09 Arteris, Inc. Incremental topology modification of a network-on-chip

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731693B2 (en) 1987-04-30 1995-04-10 横河電機株式会社 Automatic wiring method for printed circuit boards
JP2543155B2 (en) * 1988-04-21 1996-10-16 松下電器産業株式会社 Block shape optimization method
JPH02292845A (en) 1989-05-08 1990-12-04 Hitachi Ltd Wiring path deciding device
JP2818247B2 (en) 1990-03-28 1998-10-30 株式会社東芝 Automatic wiring method for semiconductor device
US5361214A (en) 1990-07-09 1994-11-01 Kabushiki Kaisha Toshiba Method for automatically determining wiring routes
JP2885897B2 (en) 1990-07-09 1999-04-26 株式会社東芝 Automatic wiring method
JPH04192544A (en) 1990-11-27 1992-07-10 Sharp Corp Semiconductor integrated circuit device and lay-out method thereof
JPH0567178A (en) 1991-07-10 1993-03-19 Toshiba Corp Automatic wiring processing method
JP3219500B2 (en) * 1991-12-27 2001-10-15 株式会社東芝 Automatic wiring method
JPH0645446A (en) 1992-07-24 1994-02-18 New Japan Radio Co Ltd Method of wiring layout
JPH0729980A (en) 1993-06-24 1995-01-31 Mitsubishi Electric Corp Positioning of semiconductor circuit elements in semiconductor integrated circuit and semiconductor integrated circuit device
AU4866596A (en) * 1995-02-07 1996-08-27 Silicon Valley Research, Inc. Integrated circuit layout
JP3351651B2 (en) * 1995-04-07 2002-12-03 富士通株式会社 Interactive circuit design equipment
US5825659A (en) * 1995-06-16 1998-10-20 Lsi Logic Corporation Method for local rip-up and reroute of signal paths in an IC design
US5923569A (en) * 1995-10-17 1999-07-13 Matsushita Electric Industrial Co., Ltd. Method for designing layout of semiconductor integrated circuit semiconductor integrated circuit obtained by the same method and method for verifying timing thereof
US5847965A (en) * 1996-08-02 1998-12-08 Avant| Corporation Method for automatic iterative area placement of module cells in an integrated circuit layout
JP2858566B2 (en) * 1996-08-15 1999-02-17 日本電気株式会社 Automatic wiring method
US5980093A (en) * 1996-12-04 1999-11-09 Lsi Logic Corporation Integrated circuit layout routing using multiprocessing

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128638A1 (en) * 2000-06-20 2004-07-01 Kerzman Joseph Peter Method and apparatus for selecting and aligning cells using a placement tool
US6643838B2 (en) * 2001-12-17 2003-11-04 Sun Microsystems, Inc. System and method of placing components for minimizing wire congestion and wire length in performing a function
US20030208737A1 (en) * 2002-05-06 2003-11-06 International Business Machines Corporation Method and system for placing logic nodes based on an estimated wiring congestion
US6904584B2 (en) * 2002-05-06 2005-06-07 International Business Machines Corporation Method and system for placing logic nodes based on an estimated wiring congestion
CN100559377C (en) * 2002-06-28 2009-11-11 Nxp股份有限公司 The method of integrated circuit and electronic equipment and designing integrated circuit
WO2004004008A1 (en) * 2002-06-28 2004-01-08 Koninklijke Philips Electronics N.V. Integrated circuit having building blocks
CN100570855C (en) * 2004-08-12 2009-12-16 国际商业机器公司 IC design system and method
US20060242614A1 (en) * 2005-04-25 2006-10-26 Cadence Design Systems, Inc. Method and mechanism for implementing automated PCB routing
US7937681B2 (en) * 2005-04-25 2011-05-03 Cadence Design Systems, Inc. Method and mechanism for implementing automated PCB routing
US7707536B2 (en) * 2006-04-28 2010-04-27 Springsoft Usa, Inc. V-shaped multilevel full-chip gridless routing
US20070256045A1 (en) * 2006-04-28 2007-11-01 Shyh-Chang Lin V-shaped multilevel full-chip gridless routing
US8001514B2 (en) 2008-04-23 2011-08-16 Synopsys, Inc. Method and apparatus for computing a detailed routability estimation
WO2009131766A1 (en) * 2008-04-23 2009-10-29 Synopsys, Inc. Method and apparatus for computing a detailed routability estimation
US20090271754A1 (en) * 2008-04-23 2009-10-29 Synopsys, Inc. Method and apparatus for computing a detailed routability estimation
US20100235804A1 (en) * 2009-03-12 2010-09-16 Fujitsu Limited Wiring design apparatus and method
US8402413B2 (en) 2009-03-12 2013-03-19 Fujitsu Limited Wiring design apparatus and method
US8667447B2 (en) 2009-03-12 2014-03-04 Fujitsu Limited Wiring design apparatus and method
US20130346938A1 (en) * 2010-06-08 2013-12-26 International Business Machines Corporation Post-placement cell shifting
US8782584B2 (en) * 2010-06-08 2014-07-15 International Business Machines Corporation Post-placement cell shifting
US10331840B2 (en) * 2016-01-15 2019-06-25 International Business Machines Corporation Resource aware method for optimizing wires for slew, slack, or noise
CN112883682A (en) * 2021-03-15 2021-06-01 北京华大九天科技股份有限公司 Method and apparatus for global routing of integrated circuits and storage medium

Also Published As

Publication number Publication date
JP3063828B2 (en) 2000-07-12
US6378121B2 (en) 2002-04-23
JPH10270563A (en) 1998-10-09

Similar Documents

Publication Publication Date Title
US6378121B2 (en) Automatic global routing device for efficiently determining optimum wiring route on integrated circuit and global routing method therefor
US6598206B2 (en) Method and system of modifying integrated circuit power rails
US6327694B1 (en) Cell placement apparatus and method, and computer readable record medium having cell placement program recorded thereon
Cheng RISA: Accurate and efficient placement routability modeling
US5225991A (en) Optimized automated macro embedding for standard cell blocks
US6002857A (en) Symbolic constraint-based system for preroute reconstruction following floorplan incrementing
US4835705A (en) Interconnection area decision processor
Chen et al. Integrated floorplanning and interconnect planning
JPS60130843A (en) Method of setting connecting path
US7836421B2 (en) Semiconductor layout design apparatus and method for evaluating a floorplan using distances between standard cells and macrocells
Huijbregts et al. Routing for reliable manufacturing
KR100910421B1 (en) Method and system for automatically routing an integrated circuit, computer-readable medium carrying one or more sequences of one or more instructions for automatically routing an integrated circuit and method for automatically verifying an integrated circuit layout
US20030217338A1 (en) Congestion mitigation with logic order preservation
US7831947B2 (en) Semiconductor layout design apparatus, semiconductor layout design method and computer readable medium
US6260184B1 (en) Design of an integrated circuit by selectively reducing or maintaining power lines of the device
JP2680867B2 (en) Path layout method
Shirota et al. A new rip-up and reroute algorithm for very large scale gate arrays
JP2008310527A (en) Layout design device and layout design method for semiconductor integrated circuit
Luk et al. Multi-stack optimization for data-path chip (microprocessor) layout
US7278127B2 (en) Overlapping shape design rule error prevention
US5872719A (en) Method of wiring semiconductor integrated circuit and semiconductor integrated circuit
US7346871B2 (en) Method of estimating wiring complexity degree in semiconductor integrated circuit
US6567965B2 (en) Electronic parts placement method and a computer readable medium having an electronic parts placement program
Jiang et al. An optimal network-flow-based simultaneous diode and jumper insertion algorithm for antenna fixing
US6845346B1 (en) Iterative method of parasitics estimation for integrated circuit designs

Legal Events

Date Code Title Description
AS Assignment

Owner name: NEC CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HIRAGA, TAKEFUMI;REEL/FRAME:009067/0962

Effective date: 19980320

AS Assignment

Owner name: NEC ELECTRONICS CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEC CORPORATION;REEL/FRAME:013774/0295

Effective date: 20021101

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Expired due to failure to pay maintenance fee

Effective date: 20100423