US20100257500A1 - System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements - Google Patents

System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements Download PDF

Info

Publication number
US20100257500A1
US20100257500A1 US12/817,908 US81790810A US2010257500A1 US 20100257500 A1 US20100257500 A1 US 20100257500A1 US 81790810 A US81790810 A US 81790810A US 2010257500 A1 US2010257500 A1 US 2010257500A1
Authority
US
United States
Prior art keywords
placement
logical elements
spaces
information
routing
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.)
Abandoned
Application number
US12/817,908
Inventor
Kohei Uchida
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 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
Priority to US12/817,908 priority Critical patent/US20100257500A1/en
Publication of US20100257500A1 publication Critical patent/US20100257500A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
    • 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/392Floor-planning or layout, e.g. partitioning or placement
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier
    • H01L27/04Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having at least one potential-jump barrier or surface barrier; including integrated passive circuit elements with at least one potential-jump barrier or surface barrier the substrate being a semiconductor body

Definitions

  • the present invention relates to a semiconductor integrated circuit, a method of placing elements formed thereon, and a program for placing the elements, and more particularly to a technique for placing on-chip capacitors for controlling the influence of noise in placement design of LSI design CAD.
  • LSI semiconductor integrated circuit
  • small circuits such as NAND, NOR, inverter circuits, and the like called function blocks that perform basic operations are placed in an LSI (large scale integrated circuit) to be produced on a computer program, and routings among the circuits are connected to produce basic data of a mask used for semiconductor manufacturing. This process is referred to as placement and routing processing.
  • the placement and routing processing is performed mainly by a routing program and a placement program.
  • Conventional placement programs have performed placement with the purpose of putting routing-caused delay and routing space within target values.
  • the on-chip capacitors are capacitors employing PN junction capacitances and gate capacitances.
  • the on-chip capacitors exhibit higher effects when they are placed nearer to the vicinity of noise source and the vicinity of function blocks susceptible to noise.
  • conventional placement programs do not take the generation of noise into account, it has been impossible to effectively place the on-chip capacitors in the vicinity of a noise source and function blocks susceptible to noise.
  • a first exemplary feature of the present invention is to provide a semiconductor integrated circuit, a method of placing elements thereon, and a program for placing the elements that enable on-chip capacitors to be more effectively placed by previously specifying function blocks in the vicinity of which the on-chip capacitors are to be placed, and moving interspersed small spaces to the vicinity of the function blocks and merging them, and can control noise generated in an LSI.
  • a second exemplary feature of the present invention is to provide a semiconductor integrated circuit, a method of placing elements thereon, and a program for placing the elements that make it possible to allocate spaces for more effectively placing capacitors by expanding the range of function block movement to adjacent or other row areas, and can significantly reduce the generation and influence of noise inside an LSI.
  • An element placement system of the present invention including:
  • placement and routing library that stores placement information including element information about logical elements to be placed and region information of regions in which logical elements can be placed, and routing information necessary to execute routing;
  • a placement improvement library that stores specified element information about specified logical elements being logical elements specified to place capacitors in the vicinity thereof;
  • a placement unit that places logical elements according to input data containing connection data between logical elements and the placement information stored in the placement and routing library
  • a placement improvement unit that improves a result of placement by the placement unit by moving logical elements other than specified logical elements stored in the placement improvement library to collect spaces into the vicinity of the specified logical elements;
  • routing unit that routes logical elements after placement improvement by the placement improvement unit based on the input data
  • a capacitor generation unit that places capacitors in the collected spaces.
  • placement improvement unit after moving logical elements other than the specified logical elements, moves the specified logical elements to further collect spaces.
  • the specified element information stored in the placement improvement library includes the names of the specified logical elements, the size of capacitors to be placed in the vicinity of the specified logical elements, and placement side information specifying whether to place the capacitors to be placed at one side or each side of the specified logical elements, and the placement improvement unit collects spaces into one side or each side of the specified logical elements according to the placement side information.
  • the element placement system according of the present invention further including:
  • a placement addition unit that executes addition or change of logical elements for routings not satisfying preset conditions as a result of routing by the routing unit, including a process of inserting logical elements, which are relay use buffers,
  • the placement improvement unit moves the added or changed logical elements, and the routing unit routes portions that have become necessary to replace as a result of the addition or change of logical elements.
  • the capacitors include a plurality of capacitors different in size
  • the capacitor generation unit selectively places the largest mountable capacitor that is permitted for the size of spaces to place the capacitors in.
  • logical elements are function blocks, which are small circuits that are mounted in a semiconductor integrated circuit and perform basic operations.
  • the placement improvement unit can, for a result of placement by the placement unit, move logical elements other than the specified logical elements stored in the placement improvement library to not only spaces of a row area in which the specified logical elements are placed, but also spaces of other row areas, to collect spaces into the vicinity of the specified logical elements.
  • An element placement method of the present invention including:
  • the element placement method according of the present invention further including:
  • the element placement method of the present invention further including:
  • An element placement method of the present invention including:
  • the element placement method of the present invention further including:
  • the specified element information stored in the placement improvement library includes the names of the specified logical elements, the size of capacitors to be placed in the vicinity of the specified logical elements, and placement side information specifying whether to place the capacitors to be placed at one side or each side of the specified logical element, and in the step of moving logical elements, the specified logical elements or other logical elements are moved to collect spaces into one side or each side of the specified logical elements according to the placement side information.
  • the element placement method of the present invention further including:
  • a step f of executing addition or change of logical elements for routings not satisfying preset conditions as a result of routing after the step of executing routing including a process of inserting logical elements, which are relay use buffers, and
  • the capacitors include a plurality of capacitors different in size, and in the step d of placing the capacitors in the collected spaces, the largest mountable capacitor is selectively placed that is permitted for the size of spaces to place the capacitors in.
  • logical elements are function blocks which are small circuits that are mounted in a semiconductor integrated circuit and perform basic operations.
  • the element placement method of the present invention further including:
  • Exemplary advantage of the invention is that noise generated in an LSI can be controlled because places effective to control noise inside an LSI are selected to provide spaces and on-chip capacitors are placed in the spaces.
  • FIG. 1 is a drawing showing the configuration of an element placement system of the present invention
  • FIG. 2 is a drawing showing an example of a placement improvement library of the present invention
  • FIGS. 3A , 3 B, 3 C, and 3 D are placement drawings for explaining space generation processing of a first embodiment of the present invention, wherein FIG. 3A is a drawing showing a placement before space movement processing, FIG. 3B is a drawing showing a placement in the course of space movement processing,
  • FIG. 3C is a drawing showing a placement after space movement processing
  • FIG. 3D is a drawing showing capacitors and the like placed in generated spaces
  • FIG. 4 is a flowchart showing the operation of a first embodiment of the present invention.
  • FIG. 5 is placement drawings for explaining space generation processing of a second embodiment of the present invention, wherein FIG. 5A is a drawing showing a placement before space movement processing, and FIG. 5B is a drawing showing a placement after space movement processing; and
  • FIG. 6 is a flowchart showing the operation of space generation processing of a second embodiment of the present invention.
  • An element placement system of a first embodiment of the present invention (hereinafter referred to as a first element placement system) is achieved by a computer.
  • the computer includes a CPU to execute programs, a storage unit to store data and programs, and input/output units to input and output data.
  • a first element placement system 100 includes a placement unit 101 , a first placement improvement unit 102 , a first routing unit 103 , a placement addition unit 104 , a second placement improvement unit 102 , a second routing unit 103 , and a capacitor generation unit 105 . These functions are respectively realized by programs.
  • the first element placement system 100 includes an input data storage unit 201 that temporarily or permanently holds input data 201 a as required, and a placement and routing library 202 that temporarily or permanently holds information referenced during execution of placement and routing.
  • the first element placement system 100 includes a placement improvement library 203 that temporarily or permanently holds information for improving a placement as required, and an output data storage unit 204 that temporarily or permanently holds output data 204 a as required.
  • These storage units 201 and 202 , and libraries 202 and 203 may be memories, external storage units such as disk drives, and other information storage devices.
  • the input data 201 a (also referred to as a net list 201 a ) generally includes data indicating connections between function blocks called a net list, and before being processed, is read into the input data storage unit 201 of the computer and held.
  • the output data 204 a results from a placement and routing process and is generally equivalent to data called mask data. It is outputted to the outside of the computer after processing, while it is temporarily held in the output data storage unit 204 for the duration of processing.
  • the placement and routing library 202 contains information referenced when the placement unit 101 executes placement or the routing unit 103 executes routing.
  • the following information is stored in the placement and routing library 202 : information about function blocks such as the size of each function block and pin positions, information about LSI such as the placement of power supply lines and ground lines on LSI, and the positions in which function blocks can be mounted, and information about regions in which routings can be executed.
  • Information about the size of each function block and the positions in which function blocks can be mounted is used as placement information
  • information about the pin position of each function block and the regions in which routings can be executed is used as routing information.
  • the placement improvement library 203 which is a library characteristic of the present invention, registers function blocks which are susceptible to noise and in the vicinity of which on-chip capacitors should be desirably placed, function blocks which are prone to generate noise and in the vicinity of which on-chip capacitors should be desirably placed, and specification and priority of modes for improving a placement.
  • FIG. 2 is a drawing showing an example of information stored in the placement improvement library 203 .
  • the placement improvement library 203 contains a method of allocating spaces when target function blocks are placed across spaces, priority of limitations on the spaces, the kinds of the target function blocks, and specification for the function blocks.
  • Specification for function blocks contains relative weight for indicating the relative importance of the function blocks, a minimum size of a space required at either side, information indicating whether a space is required at each side or one side, and information indicating whether the function blocks generate noise or are susceptible to noise.
  • Space allocation mode indicates whether spaces are split based on relative weighting or split evenly.
  • relative weighting takes precedence.
  • Priority mode indicates the priorities in which to determine space allocation.
  • relative weighting has the highest priority and its priority is 1. The priority of whether a space is required at each side is 2. Spaces required at least one side have the lowest priority and their priority is 3. A higher degree of tolerance for dissatisfaction is given to items of lower priorities.
  • FIG. 2 shows that “InverterX10” and “FlipFlopX1” are registered as function blocks.
  • attribute on noise is a function block “Aggressor” that is prone to generate noise, “10” is required as a minimum size of space, and a space is required at each side because the item indicating whether a space is required at each side is YES.
  • attribute on noise is a function block that is susceptible to noise, “20” is required as a minimum size of space, and a space is required at one side because the item indicating whether a space is required at each side is NO.
  • the placement unit 101 places function blocks taking delays between the function blocks and the degree of routing congestion into account, based on the coupling information between the function blocks described in the net list (input data) 201 a.
  • the placement improvement unit 102 moves the placement of function blocks to collect spaces between function blocks placed by the placement unit 101 into the vicinity of function blocks requiring spaces, based on information of the placement improvement library 203 .
  • the routing unit 103 performs routing between function blocks based on the coupling information between the function blocks described in the net list (input data) 201 a.
  • the placement addition unit 104 adds new function blocks to shorten routing length when it is determined as a result of routing that too long routing blocks the admission of delay or a propagation waveform becomes dull. This function is not a major function of the present invention, and therefore it will not be described in detail.
  • the capacitor generation unit 105 places an on-chip capacitor (also referred to as a capacitor) in a space generated after a function block is moved, and outputs the result of the placement as output data 204 .
  • an on-chip capacitor also referred to as a capacitor
  • FIGS. 3A , 3 B, and 3 C are placement drawings for explaining the process of generating spaces by moving function blocks.
  • FIG. 4 is a flowchart showing the operation of the first embodiment. The operation will be described with reference to FIGS. 3A , 3 B, and 3 C, and FIG. 4 .
  • the placement unit 101 places function blocks taking delays between the function blocks and the degree of routing congestion into account, based on the coupling information between the function blocks described in the net list (input data) 201 a (placement processing) (S 601 ).
  • FIG. 3A An example of the resulting placement is shown in FIG. 3A in a form convenient for explanation.
  • five function blocks 301 to 305 are placed, and include a function block 302 prone to generate noise and a function block 305 susceptible to noise.
  • the subsequent descriptions assume that the function block 302 requires a space at one side and the function block 305 requires a space at each side.
  • VDD lines and GND lines in a vertical direction are connected with VDD and GND lines in a horizontal direction by VIA.
  • VIA Power supply
  • FIGS. 3A , 3 B, and 3 C spaces 311 to 315 in which no function block is placed are interspersed in a row area (represented by ROW in the flowchart) surrounded by the VDD and GND lines in the vertical direction and the VDD and GND lines in the horizontal direction.
  • the placement improvement unit 102 refers to the placement improvement library 203 , and when the placed function blocks are registered as function blocks susceptible to noise or prone to generate noise, generates a space at each side or one side of the function blocks (space generation processing) (S 602 ).
  • the placement improvement unit 102 searches for the locations of function blocks susceptible to noise or prone to generate noise that are specified in the placement improvement library 203 (S 701 ).
  • the placement improvement unit 102 checks whether spaces in which no function block is placed exist in the vicinity of a row area in which the located, specified function blocks are placed (S 702 ). When spaces exist, the placement improvement unit 102 moves function blocks other than the specified function blocks to move the spaces adjacently to the specified function blocks or merge the spaces by moving them (S 703 ).
  • FIG. 3A shows the state of the row area in which the located, specified function blocks are placed.
  • FIGS. 3B and 3C spaces are moved within the same row area, a space search and movement range may also be specified in the placement improvement library 203 , for example, to move the spaces within regions including adjacent row areas (subsequently shown as a second embodiment).
  • Step S 701 a function block 302 prone to generate noise and a function block 305 susceptible to noise are located.
  • the placement improvement unit 102 checks the row area of FIG. 3A , and finds spaces 311 , 312 , and 313 in the vicinity of the function block 302 . In the same way, the placement improvement unit 102 finds spaces 313 , 314 , and 315 in the vicinity of a function block 305 .
  • FIG. 3A There are several methods of generating spaces when plural specified function blocks such as the function blocks 302 and 305 are contained in a row area as shown in FIG. 3A .
  • One method is to evenly split and allocate spaces between the specified function blocks.
  • Another method is to previously weigh each of function blocks in the placement improvement library 203 and allocate spaces according to the weighing information. Space allocation methods are specified in the placement improvement library 203 .
  • FIG. 3B shows the placement of function blocks after the function block 301 is moved to the left, the function block 303 to the right, and the function block 304 to the left from the placement of FIG. 3A .
  • the space 311 is merged with the space 312 into an expanded space 321 , and the space 313 becomes a space 322 and a part of a space 323 .
  • This movement expands spaces adjacent to the specified function blocks 302 and 305 .
  • the placement improvement unit 102 determines whether the spaces can be merged by moving the function blocks including the specified function blocks in the row area (S 704 ), and if possible, moves the function blocks to merge the spaces (S 705 ). Specifically, the placement improvement unit 102 refers to the placement improvement library 203 and determines whether spaces generated based on information indicating whether a space is required at each side or one side of the specified function blocks can be merged by moving the specified function blocks (S 704 ).
  • the function block 302 requires a space at one side thereof
  • the function block 305 requires a space at each side thereof
  • the spaces 323 and 315 both have an adequate size.
  • the spaces 321 and 322 can be merged by moving the function block 302 and are merged into a large space 331 (S 705 ).
  • FIG. 3C shows the placement of the function blocks after the merging.
  • the spaces 323 and 315 at both sides of the function block 305 are adjusted in width into a space 332 and a space 333 which have the same width.
  • the function block 305 is specified to have a space at each side thereof, and each of spaces after equalization does not satisfy a necessary amount, the process of equalizing spaces is not performed.
  • the routing unit 103 routes the placed function blocks according to the net list (input data) 201 a and the placement and routing library 202 (S 603 ).
  • the placement addition unit 104 compares the routing result with predetermined limitation values, and inserts a function block 341 ( FIG. 3D ) being a buffer including logical elements in the middle of a routing, or changes a function block for driving a routing to a function block having a different driving power, for example, in the following cases: signal propagation delay is larger than a limitation value; a propagating waveform is duller than limitation; and the amount of crosstalk between adjacent routings is large (S 604 ).
  • a function block 341 FIG. 3D
  • Step S 602 Since the spaces generated and merged in Step S 602 may be used by the placement addition unit 104 , the placement improvement unit 102 again performs space generation processing (S 605 ).
  • the space generation processing is the same as the processing in Steps S 701 to 5705 already described.
  • the routing unit 103 performs routings in the same way as in Step S 603 for uncompleted routing portions between the function blocks added by the placement addition unit 104 and the function blocks moved in Step S 605 (S 606 ).
  • the capacitor generation unit 105 adds a capacitor to a space in which no function block is placed and a capacitor can be mounted and which requires a capacitor (S 607 ). Next, it disposes function blocks called fill cells for filling remaining spaces (S 608 ). The capacitor generation unit 105 temporarily holds result data after the fill cells are placed, in a storage means as output data 204 , and outputs the output data 204 as required.
  • the fill cells are function blocks conveniently provided to form structures for filling spaces between function blocks on an LSI board in LSI design by use of standard cells and the like.
  • Capacitors including on-chip capacitor elements can be considered as a sort of fill cells.
  • Plural function blocks different in size from each other are provided as fill cells, and are checked in descending order of size to see if they fit in a space, and if so, the pertinent fill cell is generated. If not so, function blocks of smaller size are checked to see if they fit.
  • plural function blocks different in size from each other are provided. The present invention assumes that the size of capacitors is larger than the size of fill cells.
  • the capacitor generation unit 105 checks whether capacitors can be mounted in a space, in descending order of capacitor size, and adds the largest mountable capacitor to the space.
  • a capacitor 342 of FIG. 3D is an example of it.
  • the capacitor generation unit 105 checks whether fill cells can be mounted, in descending order of fill cell size, and adds the largest mountable capacitor to the space.
  • FIG. 3D shows the placement of capacitors 343 and 344 in the spaces 332 and 333 adjusted so as to be equal in area size in FIG. 3C .
  • capacitors and fill cell are placed.
  • fill cells may be placed instead of capacitors. There are no special limitations on the placement relationships between capacitors and fill cells.
  • Step S 603 is followed by Steps S 604 to S 606 to perform placement addition processing.
  • Steps S 604 to S 606 may be skipped after Step S 603 to continue to capacitance placement processing of Step S 607 .
  • the placement improvement unit 102 refers to the placement improvement library 203 to perform space generation processing, the possibility is increased that massed spaces capable of mounting capacitors can be allocated in the vicinity of function blocks prone to generate noise and function blocks susceptible to noise. As a result, larger on-chip capacitors can be placed adjacently to function blocks prone to generate noise and function blocks susceptible to noise, so that the generation and influence of noise inside the LSI can be significantly reduced.
  • the following describes a second embodiment of the present invention.
  • the second embodiment is the same as the first embodiment except space generation processing. Therefore, space generation processing will be described.
  • space generation processing of the second embodiment a movement range of function blocks is expanded to vertical row areas.
  • the configuration of the second embodiment is the same as that of the first embodiment except the range of movement of function blocks by the placement improvement unit 102 . Differences of the functions of the placement improvement unit 102 will be described in subsequent descriptions of operation.
  • FIGS. 5A and 5B are placement drawings for explaining the space generation processing of the second embodiment
  • FIG. 6 is a flowchart showing the operation of space generation processing of the second embodiment.
  • a processing procedure of the second embodiment except the space generation processing is not described because it is the same as that of the first embodiment (Steps S 601 to S 607 of FIG. 4 ).
  • the placement improvement unit 102 executes Step S 711 to S 713 like Steps S 701 to S 703 , and moves function blocks other than specified function blocks to generate massed spaces.
  • FIG. 5A shows the placement of function blocks before their movement, and shows only a lower row area containing many spaces though adjacent vertical row areas are contained in a movement range.
  • a function block 402 is specified as a function block prone to generate noise
  • a function block 405 is specified as a function block susceptible to noise.
  • the placement of an upper row area of FIG. 5A is the same as the placement of a row area of FIG. 3 . Therefore, the placement of an upper row area in Step S 711 is changed as shown in FIG. 3B by processing of up to Step S 713 .
  • the placement improvement unit 102 checks whether adjacent row areas have spaces to which the function blocks can be moved (S 714 ). In FIG. 5A , since spaces exist in the lower row area, the placement improvement unit 102 determines that the function blocks 401 , 403 , and 404 can be moved. Next, the placement improvement unit 102 moves the movable function blocks to a different row area (S 715 ). In the example of FIG. 5A , the placement improvement unit 102 moves the function block 401 to the left of a function block 406 , the function block 403 to between function blocks 407 and 408 , and the function block 404 to the right of a function block 408 . FIG. 5B shows the placement of the moved function blocks.
  • the placement improvement unit 102 determines whether spaces can be merged by moving the specified function blocks (S 716 ), and if so, like Step S 705 , merges the spaces by moving the specified function blocks (S 717 ). Although the result is not shown, in FIG. 5B , if the function block 405 requires a space at each side thereof and the size of the space 415 is not sufficient, the function block 405 is moved to the left to obtain a sufficient amount of the space 415 , or the function block 402 is moved to fit the sizes of spaces 421 and 422 to the size of a provided capacitor.
  • the placement improvement unit 102 expands the range of the movement of function blocks not only to the row area in which specified function blocks are placed, but also to adjacent row areas. As a result, since spaces for placing capacitors more effectively can be allocated, the generation and influence of noise inside the LSI can be significantly reduced.
  • the above descriptions include a method of moving function blocks within the row area in which specified function blocks are placed, to allocate spaces, and a method of moving function blocks as far as vertical row areas adjacent to the row area in which specified function blocks are placed, to allocate spaces.
  • horizontal row areas and more vertical row areas may be included in the range of the movement of function blocks.
  • the present invention may be applied to automatically allocate regions for mounting capacitors in the vicinity of the IC, LSI, and electrical elements, so that the generation and influence of noise inside the printed circuit board can be reduced.

Abstract

An element placement system including a placement and routing library that stores element information about logical elements to be placed, placement information containing region information of regions in which logical elements can be placed, and routing information necessary to execute routing, a placement improvement library that stores specified element information about specified logical elements being logical elements specified to place capacitors in the vicinity thereof, a placement unit that places logical elements according to input data containing connection data between logical elements and the placement information stored in the placement and routing library, a placement improvement unit that improves a result of placement by the placement unit by moving logical elements other than specified logical elements stored in the placement improvement library to collect spaces into the vicinity of the specified logical elements, a routing unit that routes logical elements after placement improvement by the placement improvement unit based on the input data, and a capacitor generation unit that places capacitors in the collected spaces.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a divisional of U.S. patent application Ser. No. 11/972,295, filed Jan. 10, 2008, which is a divisional of U.S. patent application Ser. No. 11/178,351, filed Jul. 12, 2005, claiming priority based on Japanese Patent Application No. 2004-206324, filed Jul. 13, 2004, the contents of all of which are incorporated herein by reference in their entirety.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Related Art
  • The present invention relates to a semiconductor integrated circuit, a method of placing elements formed thereon, and a program for placing the elements, and more particularly to a technique for placing on-chip capacitors for controlling the influence of noise in placement design of LSI design CAD.
  • 2. Description of the Related Art
  • In the design of a semiconductor integrated circuit (also referred to as LSI), small circuits such as NAND, NOR, inverter circuits, and the like called function blocks that perform basic operations are placed in an LSI (large scale integrated circuit) to be produced on a computer program, and routings among the circuits are connected to produce basic data of a mask used for semiconductor manufacturing. This process is referred to as placement and routing processing.
  • The placement and routing processing is performed mainly by a routing program and a placement program. Conventional placement programs have performed placement with the purpose of putting routing-caused delay and routing space within target values.
  • However, recent, very fast LSIs are afflicted with the generation of noise during operation of function blocks. To control the influence of noise, it is effective to place on-chip capacitors in spaces inside an LSI. The on-chip capacitors are capacitors employing PN junction capacitances and gate capacitances.
  • A method of placing on-chip capacitances in LSI design is described by an invention of JP-A 168177/1999. Although on-chip capacitors produced by the invention are placed in spaces of a placement result decided only with delay constraints, they are not placed with consideration to function blocks prone to generate noise and function blocks susceptible to noise.
  • The on-chip capacitors exhibit higher effects when they are placed nearer to the vicinity of noise source and the vicinity of function blocks susceptible to noise. However, since conventional placement programs do not take the generation of noise into account, it has been impossible to effectively place the on-chip capacitors in the vicinity of a noise source and function blocks susceptible to noise.
  • According to the invention in JP-A 168177/1999, as the number of function blocks mounted in a placement area increases, tiny spaces will occur between the function blocks. Since an on-chip capacitor requires a space of some width, it is difficult to effectively place on-chip capacitors in an environment interspersed with tiny spaces.
  • SUMMARY OF THE INVENTION
  • A first exemplary feature of the present invention is to provide a semiconductor integrated circuit, a method of placing elements thereon, and a program for placing the elements that enable on-chip capacitors to be more effectively placed by previously specifying function blocks in the vicinity of which the on-chip capacitors are to be placed, and moving interspersed small spaces to the vicinity of the function blocks and merging them, and can control noise generated in an LSI.
  • A second exemplary feature of the present invention is to provide a semiconductor integrated circuit, a method of placing elements thereon, and a program for placing the elements that make it possible to allocate spaces for more effectively placing capacitors by expanding the range of function block movement to adjacent or other row areas, and can significantly reduce the generation and influence of noise inside an LSI.
  • 1. An element placement system of the present invention including:
  • a placement and routing library that stores placement information including element information about logical elements to be placed and region information of regions in which logical elements can be placed, and routing information necessary to execute routing;
  • a placement improvement library that stores specified element information about specified logical elements being logical elements specified to place capacitors in the vicinity thereof;
  • a placement unit that places logical elements according to input data containing connection data between logical elements and the placement information stored in the placement and routing library;
  • a placement improvement unit that improves a result of placement by the placement unit by moving logical elements other than specified logical elements stored in the placement improvement library to collect spaces into the vicinity of the specified logical elements;
  • a routing unit that routes logical elements after placement improvement by the placement improvement unit based on the input data; and
  • a capacitor generation unit that places capacitors in the collected spaces.
  • 2. The element placement system of the present invention,
  • wherein the placement improvement unit, after moving logical elements other than the specified logical elements, moves the specified logical elements to further collect spaces.
  • 3. The element placement system according of the present invention,
  • wherein the specified element information stored in the placement improvement library includes the names of the specified logical elements, the size of capacitors to be placed in the vicinity of the specified logical elements, and placement side information specifying whether to place the capacitors to be placed at one side or each side of the specified logical elements, and the placement improvement unit collects spaces into one side or each side of the specified logical elements according to the placement side information.
  • 4. The element placement system according of the present invention, further including:
  • a placement addition unit that executes addition or change of logical elements for routings not satisfying preset conditions as a result of routing by the routing unit, including a process of inserting logical elements, which are relay use buffers,
  • wherein after addition or change of logical elements by the placement addition unit, the placement improvement unit moves the added or changed logical elements, and the routing unit routes portions that have become necessary to replace as a result of the addition or change of logical elements.
  • 5. The element placement system according of the present invention,
  • wherein the capacitors include a plurality of capacitors different in size, and the capacitor generation unit selectively places the largest mountable capacitor that is permitted for the size of spaces to place the capacitors in.
  • 6. The element placement system according of the present invention,
  • wherein the logical elements are function blocks, which are small circuits that are mounted in a semiconductor integrated circuit and perform basic operations.
  • 7. The element placement system according of the present invention,
  • wherein the placement improvement unit can, for a result of placement by the placement unit, move logical elements other than the specified logical elements stored in the placement improvement library to not only spaces of a row area in which the specified logical elements are placed, but also spaces of other row areas, to collect spaces into the vicinity of the specified logical elements.
  • 8. An element placement method of the present invention, including:
  • a) after placing logical elements to be mounted;
  • b) of logical elements, for specified logical elements previously specified to place capacitors in the vicinity thereof, moving logical elements other than the specified logical elements to collect spaces into the vicinity of the specified logical elements, the logical elements being placed in the vicinity of the specified logical elements; and
  • c) placing the capacitors in the collected spaces.
  • 9. The element placement method according of the present invention, further including:
  • b1) of logical elements, for specified logical elements previously specified to place capacitors in the vicinity thereof, moving logical elements other than the specified logical elements to not only spaces of a row area in which the specified logical elements are placed, but also spaces of other row areas, to collect spaces into the vicinity of the specified logical elements, the logical elements being placed in the vicinity of the specified logical elements.
  • 10. The element placement method of the present invention, further including:
  • b2) after moving logical elements other than the specified logical elements, moving the specified logical elements to further collect spaces.
  • 11. An element placement method of the present invention, including:
  • a step a) of placing logical elements according to input data containing connection data between logical elements, and
  • information about logical elements to be placed and placement information containing information of regions in which logical elements can be placed, the information about logical elements and the placement information being stored in a placement and routing library;
  • a step b) of, for a result of the placement execution, referring to a placement improvement library that stores specified element information about specified logical elements specified to place capacitors in the vicinity thereof and moving logical elements other than the specified logical elements to collect spaces into the vicinity of an area in which the specified logical elements are placed;
  • a step c) of, for the moved logical elements, executing routing based on the input data and routing information necessary to execute routing stored in the placement and routing library; and
  • a step d) of placing capacitors in the collected spaces.
  • 12. The element placement method of the present invention, further including:
  • a step e) of moving logical elements other than the specified logical elements in the step of moving logical elements other than specified logical elements, and then moving the specified logical elements to further collect spaces.
  • 13. The element placement method according to of the present invention,
  • wherein the specified element information stored in the placement improvement library includes the names of the specified logical elements, the size of capacitors to be placed in the vicinity of the specified logical elements, and placement side information specifying whether to place the capacitors to be placed at one side or each side of the specified logical element, and in the step of moving logical elements, the specified logical elements or other logical elements are moved to collect spaces into one side or each side of the specified logical elements according to the placement side information.
  • 14. The element placement method of the present invention, further including:
  • a step f of executing addition or change of logical elements for routings not satisfying preset conditions as a result of routing after the step of executing routing, including a process of inserting logical elements, which are relay use buffers, and
  • a step g of moving the added or changed logical elements to collect spaces into the vicinity of an area in which the specified logical elements are placed; and
  • a step h of routing portions that have become necessary to replace as a result of the addition or change of logical elements for the result of routing.
  • 15. The element placement method of the present invention,
  • wherein the capacitors include a plurality of capacitors different in size, and in the step d of placing the capacitors in the collected spaces, the largest mountable capacitor is selectively placed that is permitted for the size of spaces to place the capacitors in.
  • 16. The element placement method of the present invention,
  • wherein the logical elements are function blocks which are small circuits that are mounted in a semiconductor integrated circuit and perform basic operations.
  • 17. The element placement method of the present invention, further including:
  • b1) of logical elements, for the specified logical elements previously specified to place capacitors in the vicinity thereof, moving logical elements other than the specified logical elements to not only spaces of a row area in which the specified logical elements are placed, but also spaces of other row areas, to collect spaces into the vicinity of the specified logical elements, the logical elements being placed in the vicinity of the specified logical elements.
  • Exemplary advantage of the invention is that noise generated in an LSI can be controlled because places effective to control noise inside an LSI are selected to provide spaces and on-chip capacitors are placed in the spaces.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as other features and advantages thereof, will be best understood by reference to the detailed description which follows, read in conjunction with the accompanying, wherein:
  • FIG. 1 is a drawing showing the configuration of an element placement system of the present invention;
  • FIG. 2 is a drawing showing an example of a placement improvement library of the present invention;
  • FIGS. 3A, 3B, 3C, and 3D are placement drawings for explaining space generation processing of a first embodiment of the present invention, wherein FIG. 3A is a drawing showing a placement before space movement processing, FIG. 3B is a drawing showing a placement in the course of space movement processing,
  • FIG. 3C is a drawing showing a placement after space movement processing, and FIG. 3D is a drawing showing capacitors and the like placed in generated spaces;
  • FIG. 4 is a flowchart showing the operation of a first embodiment of the present invention;
  • FIG. 5 is placement drawings for explaining space generation processing of a second embodiment of the present invention, wherein FIG. 5A is a drawing showing a placement before space movement processing, and FIG. 5B is a drawing showing a placement after space movement processing; and
  • FIG. 6 is a flowchart showing the operation of space generation processing of a second embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. An element placement system of a first embodiment of the present invention (hereinafter referred to as a first element placement system) is achieved by a computer. The computer includes a CPU to execute programs, a storage unit to store data and programs, and input/output units to input and output data.
  • Referring to FIG. 1, a first element placement system 100 includes a placement unit 101, a first placement improvement unit 102, a first routing unit 103, a placement addition unit 104, a second placement improvement unit 102, a second routing unit 103, and a capacitor generation unit 105. These functions are respectively realized by programs. The first element placement system 100 includes an input data storage unit 201 that temporarily or permanently holds input data 201 a as required, and a placement and routing library 202 that temporarily or permanently holds information referenced during execution of placement and routing. The first element placement system 100 includes a placement improvement library 203 that temporarily or permanently holds information for improving a placement as required, and an output data storage unit 204 that temporarily or permanently holds output data 204 a as required. These storage units 201 and 202, and libraries 202 and 203 may be memories, external storage units such as disk drives, and other information storage devices.
  • The input data 201 a (also referred to as a net list 201 a) generally includes data indicating connections between function blocks called a net list, and before being processed, is read into the input data storage unit 201 of the computer and held. The output data 204 a results from a placement and routing process and is generally equivalent to data called mask data. It is outputted to the outside of the computer after processing, while it is temporarily held in the output data storage unit 204 for the duration of processing.
  • The placement and routing library 202, generally required by a placement and routing program, contains information referenced when the placement unit 101 executes placement or the routing unit 103 executes routing. The following information is stored in the placement and routing library 202: information about function blocks such as the size of each function block and pin positions, information about LSI such as the placement of power supply lines and ground lines on LSI, and the positions in which function blocks can be mounted, and information about regions in which routings can be executed. Information about the size of each function block and the positions in which function blocks can be mounted is used as placement information, and information about the pin position of each function block and the regions in which routings can be executed is used as routing information.
  • The placement improvement library 203, which is a library characteristic of the present invention, registers function blocks which are susceptible to noise and in the vicinity of which on-chip capacitors should be desirably placed, function blocks which are prone to generate noise and in the vicinity of which on-chip capacitors should be desirably placed, and specification and priority of modes for improving a placement.
  • FIG. 2 is a drawing showing an example of information stored in the placement improvement library 203. The placement improvement library 203 contains a method of allocating spaces when target function blocks are placed across spaces, priority of limitations on the spaces, the kinds of the target function blocks, and specification for the function blocks.
  • Specification for function blocks contains relative weight for indicating the relative importance of the function blocks, a minimum size of a space required at either side, information indicating whether a space is required at each side or one side, and information indicating whether the function blocks generate noise or are susceptible to noise.
  • Space allocation mode indicates whether spaces are split based on relative weighting or split evenly. In FIG. 2, relative weighting takes precedence. Priority mode indicates the priorities in which to determine space allocation. In FIG. 2, relative weighting has the highest priority and its priority is 1. The priority of whether a space is required at each side is 2. Spaces required at least one side have the lowest priority and their priority is 3. A higher degree of tolerance for dissatisfaction is given to items of lower priorities.
  • FIG. 2 shows that “InverterX10” and “FlipFlopX1” are registered as function blocks. For example, in “Inverterx10,” attribute on noise is a function block “Aggressor” that is prone to generate noise, “10” is required as a minimum size of space, and a space is required at each side because the item indicating whether a space is required at each side is YES. In “FlipFlopX1,” attribute on noise is a function block that is susceptible to noise, “20” is required as a minimum size of space, and a space is required at one side because the item indicating whether a space is required at each side is NO.
  • The placement unit 101 places function blocks taking delays between the function blocks and the degree of routing congestion into account, based on the coupling information between the function blocks described in the net list (input data) 201 a.
  • The placement improvement unit 102 moves the placement of function blocks to collect spaces between function blocks placed by the placement unit 101 into the vicinity of function blocks requiring spaces, based on information of the placement improvement library 203.
  • The routing unit 103 performs routing between function blocks based on the coupling information between the function blocks described in the net list (input data) 201 a.
  • The placement addition unit 104 adds new function blocks to shorten routing length when it is determined as a result of routing that too long routing blocks the admission of delay or a propagation waveform becomes dull. This function is not a major function of the present invention, and therefore it will not be described in detail.
  • The capacitor generation unit 105 places an on-chip capacitor (also referred to as a capacitor) in a space generated after a function block is moved, and outputs the result of the placement as output data 204.
  • The following describes the operation of the first embodiment of the present invention with reference to the accompanying drawings. FIGS. 3A, 3B, and 3C are placement drawings for explaining the process of generating spaces by moving function blocks. FIG. 4 is a flowchart showing the operation of the first embodiment. The operation will be described with reference to FIGS. 3A, 3B, and 3C, and FIG. 4.
  • When the net list (input data) 201 a is inputted, the placement unit 101 places function blocks taking delays between the function blocks and the degree of routing congestion into account, based on the coupling information between the function blocks described in the net list (input data) 201 a (placement processing) (S601).
  • An example of the resulting placement is shown in FIG. 3A in a form convenient for explanation. Referring to FIG. 3A, five function blocks 301 to 305 are placed, and include a function block 302 prone to generate noise and a function block 305 susceptible to noise. The subsequent descriptions assume that the function block 302 requires a space at one side and the function block 305 requires a space at each side.
  • Power supply (VDD) lines and ground (GND) lines in a vertical direction are connected with VDD and GND lines in a horizontal direction by VIA. In FIGS. 3A, 3B, and 3C, spaces 311 to 315 in which no function block is placed are interspersed in a row area (represented by ROW in the flowchart) surrounded by the VDD and GND lines in the vertical direction and the VDD and GND lines in the horizontal direction.
  • The placement improvement unit 102 refers to the placement improvement library 203, and when the placed function blocks are registered as function blocks susceptible to noise or prone to generate noise, generates a space at each side or one side of the function blocks (space generation processing) (S602).
  • With reference to FIGS. 3A, 3B, 3C, and 4, space generation processing of the first embodiment will be described in detail. The placement improvement unit 102 searches for the locations of function blocks susceptible to noise or prone to generate noise that are specified in the placement improvement library 203 (S701).
  • The placement improvement unit 102 checks whether spaces in which no function block is placed exist in the vicinity of a row area in which the located, specified function blocks are placed (S702). When spaces exist, the placement improvement unit 102 moves function blocks other than the specified function blocks to move the spaces adjacently to the specified function blocks or merge the spaces by moving them (S703).
  • One example is shown in FIGS. 3A, 3B, and 3C. FIG. 3A shows the state of the row area in which the located, specified function blocks are placed. Although, in FIGS. 3B and 3C, spaces are moved within the same row area, a space search and movement range may also be specified in the placement improvement library 203, for example, to move the spaces within regions including adjacent row areas (subsequently shown as a second embodiment).
  • In the case of FIG. 3A, in Step S701, a function block 302 prone to generate noise and a function block 305 susceptible to noise are located. The placement improvement unit 102 checks the row area of FIG. 3A, and finds spaces 311, 312, and 313 in the vicinity of the function block 302. In the same way, the placement improvement unit 102 finds spaces 313, 314, and 315 in the vicinity of a function block 305.
  • There are several methods of generating spaces when plural specified function blocks such as the function blocks 302 and 305 are contained in a row area as shown in FIG. 3A. One method is to evenly split and allocate spaces between the specified function blocks. Another method is to previously weigh each of function blocks in the placement improvement library 203 and allocate spaces according to the weighing information. Space allocation methods are specified in the placement improvement library 203.
  • To move spaces adjacently to the specified function blocks, the placement improvement unit 102 moves unspecified function blocks. FIG. 3B shows the placement of function blocks after the function block 301 is moved to the left, the function block 303 to the right, and the function block 304 to the left from the placement of FIG. 3A. As a result, the space 311 is merged with the space 312 into an expanded space 321, and the space 313 becomes a space 322 and a part of a space 323. This movement expands spaces adjacent to the specified function blocks 302 and 305.
  • Next, the placement improvement unit 102 determines whether the spaces can be merged by moving the function blocks including the specified function blocks in the row area (S704), and if possible, moves the function blocks to merge the spaces (S705). Specifically, the placement improvement unit 102 refers to the placement improvement library 203 and determines whether spaces generated based on information indicating whether a space is required at each side or one side of the specified function blocks can be merged by moving the specified function blocks (S704).
  • In the case of FIG. 3, the function block 302 requires a space at one side thereof, the function block 305 requires a space at each side thereof, and the spaces 323 and 315 both have an adequate size. In this case, the spaces 321 and 322 can be merged by moving the function block 302 and are merged into a large space 331 (S705). FIG. 3C shows the placement of the function blocks after the merging.
  • The spaces 323 and 315 at both sides of the function block 305 are adjusted in width into a space 332 and a space 333 which have the same width. When the function block 305 is specified to have a space at each side thereof, and each of spaces after equalization does not satisfy a necessary amount, the process of equalizing spaces is not performed.
  • Although spaces are merged as described above in the first space generation processing, the present invention can be implemented without performing the merging, which is not mandatory in the present invention.
  • At the termination of the space generation processing and the placement of function blocks including spaces, the routing unit 103 routes the placed function blocks according to the net list (input data) 201 a and the placement and routing library 202 (S603).
  • The placement addition unit 104 compares the routing result with predetermined limitation values, and inserts a function block 341 (FIG. 3D) being a buffer including logical elements in the middle of a routing, or changes a function block for driving a routing to a function block having a different driving power, for example, in the following cases: signal propagation delay is larger than a limitation value; a propagating waveform is duller than limitation; and the amount of crosstalk between adjacent routings is large (S604). Such techniques will not be described in detail because they are generally known.
  • Since the spaces generated and merged in Step S602 may be used by the placement addition unit 104, the placement improvement unit 102 again performs space generation processing (S605). The space generation processing is the same as the processing in Steps S701 to 5705 already described.
  • The routing unit 103 performs routings in the same way as in Step S603 for uncompleted routing portions between the function blocks added by the placement addition unit 104 and the function blocks moved in Step S605 (S606).
  • The capacitor generation unit 105 adds a capacitor to a space in which no function block is placed and a capacitor can be mounted and which requires a capacitor (S607). Next, it disposes function blocks called fill cells for filling remaining spaces (S608). The capacitor generation unit 105 temporarily holds result data after the fill cells are placed, in a storage means as output data 204, and outputs the output data 204 as required.
  • The fill cells are function blocks conveniently provided to form structures for filling spaces between function blocks on an LSI board in LSI design by use of standard cells and the like. Capacitors including on-chip capacitor elements can be considered as a sort of fill cells.
  • Plural function blocks different in size from each other are provided as fill cells, and are checked in descending order of size to see if they fit in a space, and if so, the pertinent fill cell is generated. If not so, function blocks of smaller size are checked to see if they fit. In the present invention, also for capacitors, plural function blocks different in size from each other are provided. The present invention assumes that the size of capacitors is larger than the size of fill cells.
  • The capacitor generation unit 105 checks whether capacitors can be mounted in a space, in descending order of capacitor size, and adds the largest mountable capacitor to the space. A capacitor 342 of FIG. 3D is an example of it. When no capacitor can be mounted, the capacitor generation unit 105 checks whether fill cells can be mounted, in descending order of fill cell size, and adds the largest mountable capacitor to the space.
  • FIG. 3D shows the placement of capacitors 343 and 344 in the spaces 332 and 333 adjusted so as to be equal in area size in FIG. 3C.
  • As described above, in the present invention, capacitors and fill cell are placed. However, for spaces not requiring capacitors and conditions unsuitable to place capacitors, fill cells may be placed instead of capacitors. There are no special limitations on the placement relationships between capacitors and fill cells.
  • In the above description, Step S603 is followed by Steps S604 to S606 to perform placement addition processing. However, if the placement addition processing is unnecessary, Steps S604 to S606 may be skipped after Step S603 to continue to capacitance placement processing of Step S607.
  • In this way, in the first embodiment, since the placement improvement unit 102 refers to the placement improvement library 203 to perform space generation processing, the possibility is increased that massed spaces capable of mounting capacitors can be allocated in the vicinity of function blocks prone to generate noise and function blocks susceptible to noise. As a result, larger on-chip capacitors can be placed adjacently to function blocks prone to generate noise and function blocks susceptible to noise, so that the generation and influence of noise inside the LSI can be significantly reduced.
  • The following describes a second embodiment of the present invention. The second embodiment is the same as the first embodiment except space generation processing. Therefore, space generation processing will be described. In the space generation processing of the second embodiment, a movement range of function blocks is expanded to vertical row areas.
  • The configuration of the second embodiment is the same as that of the first embodiment except the range of movement of function blocks by the placement improvement unit 102. Differences of the functions of the placement improvement unit 102 will be described in subsequent descriptions of operation.
  • The following describes the operation of the space generation processing of the second embodiment with reference to FIGS. 5A and 5B, and FIG. 6. FIGS. 5A and 5B are placement drawings for explaining the space generation processing of the second embodiment, and FIG. 6 is a flowchart showing the operation of space generation processing of the second embodiment. A processing procedure of the second embodiment except the space generation processing is not described because it is the same as that of the first embodiment (Steps S601 to S607 of FIG. 4).
  • The placement improvement unit 102 executes Step S711 to S713 like Steps S701 to S703, and moves function blocks other than specified function blocks to generate massed spaces. FIG. 5A shows the placement of function blocks before their movement, and shows only a lower row area containing many spaces though adjacent vertical row areas are contained in a movement range.
  • In FIGS. 5A and 5B, a function block 402 is specified as a function block prone to generate noise, and a function block 405 is specified as a function block susceptible to noise. The placement of an upper row area of FIG. 5A is the same as the placement of a row area of FIG. 3. Therefore, the placement of an upper row area in Step S711 is changed as shown in FIG. 3B by processing of up to Step S713.
  • Next, in the second embodiment, the placement improvement unit 102 checks whether adjacent row areas have spaces to which the function blocks can be moved (S714). In FIG. 5A, since spaces exist in the lower row area, the placement improvement unit 102 determines that the function blocks 401, 403, and 404 can be moved. Next, the placement improvement unit 102 moves the movable function blocks to a different row area (S715). In the example of FIG. 5A, the placement improvement unit 102 moves the function block 401 to the left of a function block 406, the function block 403 to between function blocks 407 and 408, and the function block 404 to the right of a function block 408. FIG. 5B shows the placement of the moved function blocks.
  • The placement improvement unit 102, like Step S704, determines whether spaces can be merged by moving the specified function blocks (S716), and if so, like Step S705, merges the spaces by moving the specified function blocks (S717). Although the result is not shown, in FIG. 5B, if the function block 405 requires a space at each side thereof and the size of the space 415 is not sufficient, the function block 405 is moved to the left to obtain a sufficient amount of the space 415, or the function block 402 is moved to fit the sizes of spaces 421 and 422 to the size of a provided capacitor.
  • In this way, in the second embodiment, the placement improvement unit 102 expands the range of the movement of function blocks not only to the row area in which specified function blocks are placed, but also to adjacent row areas. As a result, since spaces for placing capacitors more effectively can be allocated, the generation and influence of noise inside the LSI can be significantly reduced.
  • The above descriptions include a method of moving function blocks within the row area in which specified function blocks are placed, to allocate spaces, and a method of moving function blocks as far as vertical row areas adjacent to the row area in which specified function blocks are placed, to allocate spaces. However, horizontal row areas and more vertical row areas may be included in the range of the movement of function blocks.
  • Besides the placement of LSI, when IC, LSI, and electrical elements are mounted on a printed circuit board, if IC, LSI, and electrical elements that are prone to generate noise or susceptible to noise are included, the present invention may be applied to automatically allocate regions for mounting capacitors in the vicinity of the IC, LSI, and electrical elements, so that the generation and influence of noise inside the printed circuit board can be reduced.
  • While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications of the illustrative embodiments as well as other embodiments of the invention will be apparent to persons skilled in the art upon reference to this description. It is, therefore, contemplated that the appended claims will cover any such modifications or embodiments as fall within the scope of the invention.

Claims (3)

1. A computer-readable storage medium having embodied thereon a program, for enabling a computer to perform an element placement method for a semiconductor integrated circuit that places a plurality of logical elements according to input data comprising connection data between said plurality of logical elements, placement information including information about said plurality of logical elements to be placed and region information of regions in which said plurality of logical elements can be placed, and routing information for said plurality of logical elements, the placement information and routing information stored in a placement and routing library, the method comprising:
placing said plurality of logical elements according to said input data and said placement information;
referring to a placement improvement library which stores element information on at least a first logical element from among the plurality of logical elements in the vicinity of which a capacitor is to be placed, and moving at least a second logical element from among the plurality of logical elements to create a space in the vicinity of an area in which the first logical element is placed based on the element information of the first logical element stored in the placement improvement library; and
placing the capacitor in the created space.
2. The computer-readable storage medium of claim 1, wherein the method further comprises moving the first logical element to create additional space in the vicinity thereof, after moving the second logical element.
3. The computer-readable storage medium of claim 1, wherein the method further comprises moving at least a third logical element from among the plurality of logical elements to a row area different from a row area in which the first logical element is placed, to create a space in the vicinity of the first logical element.
US12/817,908 2004-07-13 2010-06-17 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements Abandoned US20100257500A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/817,908 US20100257500A1 (en) 2004-07-13 2010-06-17 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2004-206324 2004-07-13
JP2004206324A JP4186890B2 (en) 2004-07-13 2004-07-13 Semiconductor integrated circuit element arrangement system, element arrangement method, and program
US11/178,351 US7363597B2 (en) 2004-07-13 2005-07-12 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US11/972,295 US20080189668A1 (en) 2004-07-13 2008-01-10 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US12/817,908 US20100257500A1 (en) 2004-07-13 2010-06-17 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/972,295 Division US20080189668A1 (en) 2004-07-13 2008-01-10 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Publications (1)

Publication Number Publication Date
US20100257500A1 true US20100257500A1 (en) 2010-10-07

Family

ID=35169958

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/178,351 Expired - Fee Related US7363597B2 (en) 2004-07-13 2005-07-12 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US11/972,295 Abandoned US20080189668A1 (en) 2004-07-13 2008-01-10 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US12/817,908 Abandoned US20100257500A1 (en) 2004-07-13 2010-06-17 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US11/178,351 Expired - Fee Related US7363597B2 (en) 2004-07-13 2005-07-12 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US11/972,295 Abandoned US20080189668A1 (en) 2004-07-13 2008-01-10 System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Country Status (4)

Country Link
US (3) US7363597B2 (en)
EP (1) EP1617346A3 (en)
JP (1) JP4186890B2 (en)
KR (1) KR20060050072A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4186890B2 (en) * 2004-07-13 2008-11-26 日本電気株式会社 Semiconductor integrated circuit element arrangement system, element arrangement method, and program
US9070791B2 (en) * 2006-11-15 2015-06-30 International Business Machines Corporation Tunable capacitor

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044209A (en) * 1997-09-15 2000-03-28 International Business Machines Corporation Method and system for segmenting wires prior to buffer insertion
US6305002B1 (en) * 1997-12-04 2001-10-16 Nec Corporation Semiconductor integrated circuit having thereon on-chip capacitors
US6480992B1 (en) * 1999-11-08 2002-11-12 International Business Machines Corporation Method, apparatus, and program product for laying out capacitors in an integrated circuit
US6557154B1 (en) * 1999-11-24 2003-04-29 Nec Corporation Printed circuit board design support system, printed circuit board design method and storage medium storing control program for same
US6782347B2 (en) * 2000-11-27 2004-08-24 Matsushita Electric Industrial Co., Ltd. Method for optimizing electromagnetic interference and method for analyzing the electromagnetic interference
US6834380B2 (en) * 2000-08-03 2004-12-21 Qualcomm, Incorporated Automated EMC-driven layout and floor planning of electronic devices and systems
US6877144B1 (en) * 2002-02-28 2005-04-05 Dupont Photomasks, Inc. System and method for generating a mask layout file to reduce power supply voltage fluctuations in an integrated circuit
US6898769B2 (en) * 2002-10-10 2005-05-24 International Business Machines Corporation Decoupling capacitor sizing and placement
US6996512B2 (en) * 2001-04-19 2006-02-07 International Business Machines Corporation Practical methodology for early buffer and wire resource allocation
US7089520B2 (en) * 2003-11-19 2006-08-08 International Business Machines Corporation Methodology for placement based on circuit function and latchup sensitivity
US7131084B2 (en) * 2003-12-09 2006-10-31 International Business Machines Corporation Method, apparatus and computer program product for implementing automated detection excess aggressor shape capacitance coupling in printed circuit board layouts
US7225418B2 (en) * 2003-06-09 2007-05-29 Matsushita Electric Industrial Co., Ltd. Operation analyzing method for semiconductor integrated circuit device, analyzing system used in the same, and optimization design method using the same
US7363597B2 (en) * 2004-07-13 2008-04-22 Nec Corporation System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001167139A (en) * 1999-12-06 2001-06-22 Nec Corp Power source decouipling designing method and design support system
US7114132B2 (en) * 2001-04-20 2006-09-26 Nec Corporation Device, system, server, client, and method for supporting component layout design on circuit board, and program for implementing the device
US20030212538A1 (en) * 2002-05-13 2003-11-13 Shen Lin Method for full-chip vectorless dynamic IR and timing impact analysis in IC designs
US7031084B2 (en) * 2003-07-23 2006-04-18 Eastman Kodak Company Imaging system using combined dichroic/high-pass filters

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044209A (en) * 1997-09-15 2000-03-28 International Business Machines Corporation Method and system for segmenting wires prior to buffer insertion
US6305002B1 (en) * 1997-12-04 2001-10-16 Nec Corporation Semiconductor integrated circuit having thereon on-chip capacitors
US6480992B1 (en) * 1999-11-08 2002-11-12 International Business Machines Corporation Method, apparatus, and program product for laying out capacitors in an integrated circuit
US6557154B1 (en) * 1999-11-24 2003-04-29 Nec Corporation Printed circuit board design support system, printed circuit board design method and storage medium storing control program for same
US6834380B2 (en) * 2000-08-03 2004-12-21 Qualcomm, Incorporated Automated EMC-driven layout and floor planning of electronic devices and systems
US6782347B2 (en) * 2000-11-27 2004-08-24 Matsushita Electric Industrial Co., Ltd. Method for optimizing electromagnetic interference and method for analyzing the electromagnetic interference
US6996512B2 (en) * 2001-04-19 2006-02-07 International Business Machines Corporation Practical methodology for early buffer and wire resource allocation
US6877144B1 (en) * 2002-02-28 2005-04-05 Dupont Photomasks, Inc. System and method for generating a mask layout file to reduce power supply voltage fluctuations in an integrated circuit
US6898769B2 (en) * 2002-10-10 2005-05-24 International Business Machines Corporation Decoupling capacitor sizing and placement
US7225418B2 (en) * 2003-06-09 2007-05-29 Matsushita Electric Industrial Co., Ltd. Operation analyzing method for semiconductor integrated circuit device, analyzing system used in the same, and optimization design method using the same
US7089520B2 (en) * 2003-11-19 2006-08-08 International Business Machines Corporation Methodology for placement based on circuit function and latchup sensitivity
US7131084B2 (en) * 2003-12-09 2006-10-31 International Business Machines Corporation Method, apparatus and computer program product for implementing automated detection excess aggressor shape capacitance coupling in printed circuit board layouts
US7363597B2 (en) * 2004-07-13 2008-04-22 Nec Corporation System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements

Also Published As

Publication number Publication date
EP1617346A2 (en) 2006-01-18
KR20060050072A (en) 2006-05-19
US20060013059A1 (en) 2006-01-19
US7363597B2 (en) 2008-04-22
JP2006031174A (en) 2006-02-02
JP4186890B2 (en) 2008-11-26
US20080189668A1 (en) 2008-08-07
EP1617346A3 (en) 2006-11-08

Similar Documents

Publication Publication Date Title
EP1543449B1 (en) Method for eliminating routing congestion in an ic layout
US6557145B2 (en) Method for design optimization using logical and physical information
CN101206686B (en) Latch placement for high performance and low power circuits
US10418354B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
US7624366B2 (en) Clock aware placement
US6996512B2 (en) Practical methodology for early buffer and wire resource allocation
US9152742B1 (en) Multi-phase models for timing closure of integrated circuit designs
US6080201A (en) Integrated placement and synthesis for timing closure of microprocessors
US7299442B2 (en) Probabilistic congestion prediction with partial blockages
US7934188B2 (en) Legalization of VLSI circuit placement with blockages using hierarchical row slicing
US9792398B2 (en) Flip-flop clustering for integrated circuit design
US5418733A (en) Floor-planning apparatus for hierarchical design of LSI
JP5401376B2 (en) Method for designing semiconductor integrated circuit device
JP2001298094A (en) Method and system for designing wiring in macro that traverses macro in integrated circuit
US7454724B2 (en) Method and apparatus distribution power suply pad of semiconductor integrated circuit
US6990651B2 (en) Advanced design format library for integrated circuit design synthesis and floorplanning tools
US6397169B1 (en) Adaptive cell separation and circuit changes driven by maximum capacitance rules
US6766500B1 (en) Multiple pass optimization for automatic electronic circuit placement
US9940422B2 (en) Methods for reducing congestion region in layout area of IC
US5930147A (en) Design support system in which delay is estimated from HDL description
US7363597B2 (en) System for placing elements of semiconductor integrated circuit, method of placing elements thereon, and program for placing elements
US5757657A (en) Adaptive incremental placement of circuits on VLSI chip
Pedram et al. I/O pad assignment based on the circuit structure
JP3209861B2 (en) Integrated circuit design method
JPH09232436A (en) Method and apparatus for logic synthesis, and method for designing semiconductor integrated circuit

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION