US20150161319A1 - Generating database for cells routable in pin layer - Google Patents
Generating database for cells routable in pin layer Download PDFInfo
- Publication number
- US20150161319A1 US20150161319A1 US14/103,558 US201314103558A US2015161319A1 US 20150161319 A1 US20150161319 A1 US 20150161319A1 US 201314103558 A US201314103558 A US 201314103558A US 2015161319 A1 US2015161319 A1 US 2015161319A1
- Authority
- US
- United States
- Prior art keywords
- cells
- database
- cell
- placement
- routable
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 37
- 238000013461 design Methods 0.000 claims description 27
- 239000002184 metal Substances 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G06F17/5077—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G06F17/5072—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Definitions
- placement and routing is a stage to determine the layout of an IC, which includes a geometric description of the location of each IC component, and the path of each wire connecting the IC components.
- placement is generally conducted before routing. Placement involves deciding where to place all IC components, circuitry and logic gates in a limited amount of space, and routing decides the exact design of all the wires needed to connect the placed components.
- FIG. 1 is a flow diagram illustrating a method of generating a database for cells routable in a pin layer in accordance with some embodiments.
- FIGS. 2A and 2B are schematic diagrams illustrating operations of the method in FIG. 1 in accordance with some embodiments.
- FIG. 3 is a schematic diagram illustrating a method of routing in accordance with some embodiments.
- FIG. 4 is a flow diagram illustrating a method of routing in accordance with some embodiments.
- FIG. 5 is a block diagram of a system for placement and routing in accordance with some embodiments.
- a database for cells that are routable in a pin layer is established.
- a layout of a design or an integrated circuit (IC) is modified to facilitate wire routing.
- a relatively low metal layer, such as M1 layer is used in wire routing.
- a smaller area or fewer metal layers are required in the wire routing without compromising yield of the design.
- FIG. 1 is a flow diagram illustrating a method of generating a database for cells routable in a pin layer in accordance with some embodiments.
- a cell in semiconductor design includes a group of transistor and interconnect structures, which provides a Boolean logic function or a storage function. Examples of the cell may include elemental AND, OR, NAND, NOR, and XOR Boolean functions, full-adder, and flip flop.
- the cell includes a multi-layer structure with a pin layer atop for connection with other cells. Metal shapes in the pin layer of the cell can serve as ports or pins for connection, and are arranged in a topology called the layout of the cell.
- the data of cell layouts are obtained from a netlist, which includes information on the connectivity of cells.
- the netlist is a gate level netlist file obtained by synthesizing a register-transfer level (RTL) file.
- RTL register-transfer level
- HDLs hardware description languages
- VHDL hardware description languages
- a first database or file for the cell layouts is generated.
- cells in the first database have a pin layer at the same layer as metal-1 (M1) layer.
- M1 layer is merely exemplary for convenience of discussion and should not be construed as limiting the present disclosure.
- BEOL back-end-of-line
- semiconductor manufacturing once various semiconductor devices have been created in a substrate, they are interconnected to form the desired electrical circuits. The interconnection processing involves creating metal interconnecting wires that are isolated by dielectric layers.
- the M1 layer refers to a metal interconnecting layer in closest proximity to the substrate among the metal interconnecting wires. Establishment of the first database facilitates wire routing for cells in a pin layer, as will be further discussed.
- a design rule check is performed for the identification. Accordingly, when two cells abut each other, if their pins cannot be connected using the same pin layers without violating the DRC, these cells are determined to be not routable. On the contrary, if the distance between the pins of two cells conforms to the DRC, these cells are determined to be routable.
- DRC design rule check
- a second database or file for the routable cells is generated.
- the second database includes not only cells routable in M1 layer, but also cells routable in M2 or higher layer in the case that the pin layers of the cells are in the M2 or higher layer.
- routable cells are listed in pairs, as will be discussed with reference to FIG. 2A below.
- a cell may be routable with more than one other cells.
- the second database is generated before wire routing.
- FIGS. 2A and 2B are schematic diagrams illustrating operations of the method in FIG. 1 in accordance with some embodiments.
- FIG. 2A for illustration purpose, layouts of cells 21 , 25 , 31 , 35 , 81 and 85 in the second database are shown.
- FIG. 1 By the operation 15 in FIG. 1 , it is identified that a pin 210 of cell 21 to be connected to a pin 250 of cell 25 , or vice versa, conforms to the design constraints. Accordingly, cells 21 and 25 are routable. Also, cells 31 and 35 are routable because connection between a pin 310 of cell 31 and a pin 350 of cell 35 conforms to the design constraints.
- cells 81 and 85 are routable because connection between a pin 810 of cell 81 and a pin 850 of cell 85 conforms to the design constraints. As a result, cells 21 , 31 and 81 are routable with cells 25 , 35 and 85 , respectively.
- FIG. 2B a relative position of cells 21 , 35 , 71 and 25 after, for example, an initial placement is shown.
- These cells have their respective pin layers at M1 layer 60 .
- these cells may have irregular pin shapes or complex pin topology.
- cell 21 is to be connected to cell 25 . Since cells 21 and 25 do not abut, and directly connecting pins on cells 21 and 25 would violate the design constraints due to a long connection distance or complicated pin shape, in some existing approaches, cells 21 and 25 are connected to each other via M2 and even M3 and higher layers.
- one of cells 21 and 25 is adjusted by, relocation or re-orientation, so that cells 21 and 25 are connected in M1 layer 60 without using M2 or higher layer, as will be discussed with reference to FIG. 3 below.
- FIG. 3 is a schematic diagram illustrating a method of routing in accordance with some embodiments.
- the locations of cells 21 and 71 are exchanged so that cell 21 is more closer to cell 25 .
- cells 21 and 25 are aligned to each other.
- cell 21 is reoriented so that pin 210 of cell 21 and pin 250 of cell 25 are immediately adjacent to each other.
- the adjusted position matches a routable pair of cells 21 and 25 in the second database.
- a connector 28 is then added between pins 210 and 250 in a subsequent wire routing process to connect cells 21 and 25 .
- cells 21 and 25 are connected to each other at M1 layer, their pin layer.
- FIG. 4 is a flow diagram illustrating a method of routing in accordance with some embodiments.
- data including information on connectivity of cells are obtained.
- the data include a netlist and may further include a floor plan and a synopsys design constraint (SDC) file.
- SDC is used to constraint the design and to get the netlist of the design.
- SDC contains clock information, false path and multi cycle path, cap, fanout and transition values.
- a designer at a system design stage describes the IC chip in terms of larger modules that serve specific functions. Further, exploration for options include design architectures is performed to consider, for example, tradeoffs in optimizing design specifications and cost.
- the modules for the IC chip are described at the RTL using Verilog or VHDL, and are verified for functional accuracy. Subsequently, at a logic synthesis stage, the modules for the IC chip described in RTL is translated into a gate-level netlist. Next, the gate-level netlist is partitioned into blocks and a floor plan for the blocks is created.
- a database for cells that are routable in a pin layer is generated based on the data.
- the database is same as or similar to the second database described with reference to FIG. 1 and thus establishment of the database is not further discussed.
- a first or an initial placement of cells is performed according to the data. After the first placement, which may be deemed a rough placement, there may exist cells that violate the design constraints. A result of the first placement is stored in another database in operation 44 .
- a second placement is performed, using the data from the database for routable cells and data of the first placement.
- the second placement which may be deemed a fine placement or a routing-aware placement, adjusts those cells that violate the design constraints by relocating or re-orientating the cells.
- a routing process is performed to connect cells in a pin layer.
- adjusted cells are connected by connector 28 in the routing process.
- wire routing for these cells is performed at M1 layer.
- wire routing for such cells is performed using M1 and M2 layers.
- FIG. 5 is a block diagram of a system 50 for placement and routing in accordance with some embodiments.
- system 50 includes a processor 51 , a network interface 53 , an input and output (I/O) device 55 , a storage 57 , a memory 58 , and a bus 59 .
- the bus 59 couples the network interface 53 , the I/O device 55 , the storage 57 and the memory 58 to the processor 51 .
- Processor 51 is configured to execute program instructions that include a tool configured to perform the method for wire routing as described and illustrated with reference to FIG. 1 . Accordingly, the tool is configured to obtain data of cell layouts, generate a first database for the cell layouts, identify for each cell in the first database whether the cell and another cell are routable in a pin layer, and generate a second database for routable cells. Moreover, the tool is configured to perform the method for wire routing as described and illustrated with reference to FIG. 4 .
- the tool is configured to obtain data including information on connectivity of cells, generate a database, based on the data, for pairs of cells that are routable in a pin layer, perform a first placement based on the data, generate another database for a result of the first placement, and perform a second placement based on the data from the database for pairs of cells that are routable in a pin layer and the database for a result of the first placement.
- Network interface 53 is configured to access program instructions and data accessed by the program instructions stored remotely through a network (not shown).
- I/O device 55 includes an input device and an output device configured for enabling user interaction with system 50 .
- the input device comprises, for example, a keyboard, a mouse, etc.
- the output device comprises, for example, a display, a printer, etc.
- Storage device 57 is configured for storing program instructions and data accessed by the program instructions.
- storage device 57 comprises, for example, a magnetic disk and an optical disk.
- Memory 58 is configured to store program instructions to be executed by processor 51 and data accessed by the program instructions.
- memory 58 comprises a random access memory (RAM) and/or some other volatile storage device and/or read only memory (ROM) and/or some other non-volatile storage device.
- Embodiments of the present disclosure provide a method of wire routing.
- the method comprises obtaining data of cell layouts, generating a first database for the cell layouts, identifying, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer, and generating a second database for routable cells.
- the method further comprises obtaining the data of cell layouts from a netlist.
- identifying for each cell in the first database includes determining whether a connection relationship between the cell and another cell conforms to design constraints. In yet another embodiment, identifying for each cell in the first database includes performing a design rule check (DRC).
- DRC design rule check
- the pin layer includes a metal layer in closest proximity to a substrate.
- the method further comprises obtaining data including information on connectivity of cells before obtaining data of cell layouts. Moreover, the method further comprises performing a first placement based on the data including information on connectivity of cells, generating a third database for the first placement, and performing a second placement based on data from the second database and third database.
- the method further comprises adjusting cells in position in accordance with data in the second database. Furthermore, adjusting cells includes at least one of relocating one of the cells or re-orientating one of the cells.
- the method further comprises adding a connector for connecting cells after adjusting cells.
- Some embodiments of the present disclosure provide a method of wire routing.
- the method comprises obtaining data including information on connectivity of cells, generating a database, based on the data, for pairs of cells that are routable in a pin layer, performing a first placement based on the data and generating another database for a result of the first placement, and performing a second placement based on data from the database for pairs of cells that are routable in a pin layer and the database for a result of the first placement.
- the method further comprises adjusting cells in position in accordance with data in the database for pairs of cells that are routable in a pin layer.
- adjusting cells includes at least one of relocating one of the cells or re-orientating one of the cells.
- the method further comprises adding a connector for connecting cells after adjusting cells.
- the method comprises obtaining data of cell layouts from the data including information on connectivity of cells, generating a first database for the cell layouts, and identifying, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer.
- identifying for each cell in the first database includes determining whether a connection relationship between the cell and another cell conforms to design constraints.
- Embodiments of the present disclosure also provide a system for wire routing.
- the system comprises a processor configured to execute program instructions, and a memory configured to store the program instructions.
- the program instructions includes a tool configured to obtain data of cell layouts, generate a first database for the cell layouts, identify, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer, and generate a second database for routable cells.
- the tool is further configured to obtain data including information on connectivity of cells before obtaining data of cell layouts.
- the tool is further configured to perform a first placement based on the data including information on connectivity of cells, generate a third database for the first placement, and perform a second placement based on data from the second database and third database.
- the tool is further configured to adjust cells in position in accordance with data in the second database.
- adjusting cells includes at least one of relocating one of the cells or re-orientating one of the cells.
- the tool is further configured to add a connector for connecting cells after adjusting cells.
Abstract
Description
- In the design of semiconductor integrated circuits (ICs), placement and routing is a stage to determine the layout of an IC, which includes a geometric description of the location of each IC component, and the path of each wire connecting the IC components. In the placement and routing stage, placement is generally conducted before routing. Placement involves deciding where to place all IC components, circuitry and logic gates in a limited amount of space, and routing decides the exact design of all the wires needed to connect the placed components.
- The details of one or more embodiments of the disclosure are set forth in the accompanying drawings and the description below. Other features and advantages of the disclosure will be apparent from the description, drawings and claims.
-
FIG. 1 is a flow diagram illustrating a method of generating a database for cells routable in a pin layer in accordance with some embodiments. -
FIGS. 2A and 2B are schematic diagrams illustrating operations of the method inFIG. 1 in accordance with some embodiments. -
FIG. 3 is a schematic diagram illustrating a method of routing in accordance with some embodiments. -
FIG. 4 is a flow diagram illustrating a method of routing in accordance with some embodiments. -
FIG. 5 is a block diagram of a system for placement and routing in accordance with some embodiments. - Like reference symbols in the various drawings indicate like elements.
- Embodiments, or examples, of the disclosure illustrated in the drawings are now described using specific language. It will nevertheless be understood that no limitation of the scope of the disclosure is thereby intended. Any alterations and modifications in the described embodiments, and any further applications of principles described in this document are contemplated as would normally occur to one of ordinary skill in the art to which the disclosure relates. Reference numerals may be repeated throughout the embodiments, but this does not necessarily require that feature(s) of one embodiment apply to another embodiment, even if they share the same reference numeral. It will be understood that when an element is referred to as being “connected to” or “coupled with” another element, it may be directly connected to or coupled to the other element, or intervening elements may be present.
- Some embodiments have one or a combination of the following features and/or advantages. In some embodiments, a database for cells that are routable in a pin layer is established. In other embodiments, based on the database, a layout of a design or an integrated circuit (IC) is modified to facilitate wire routing. As a result, a relatively low metal layer, such as M1 layer, is used in wire routing. Moreover, a smaller area or fewer metal layers are required in the wire routing without compromising yield of the design.
-
FIG. 1 is a flow diagram illustrating a method of generating a database for cells routable in a pin layer in accordance with some embodiments. Referring toFIG. 1 , inoperation 11, data of cell layouts are obtained. In some embodiments, a cell in semiconductor design includes a group of transistor and interconnect structures, which provides a Boolean logic function or a storage function. Examples of the cell may include elemental AND, OR, NAND, NOR, and XOR Boolean functions, full-adder, and flip flop. Furthermore, the cell includes a multi-layer structure with a pin layer atop for connection with other cells. Metal shapes in the pin layer of the cell can serve as ports or pins for connection, and are arranged in a topology called the layout of the cell. - In some embodiments, the data of cell layouts are obtained from a netlist, which includes information on the connectivity of cells. The netlist is a gate level netlist file obtained by synthesizing a register-transfer level (RTL) file. In digital circuit design, RTL is a design abstraction which models a synchronous digital circuit in terms of the flow of digital signals or data between hardware registers, and the logical operations performed on those signals. Furthermore, RTL abstraction is used in hardware description languages (HDLs) like Verilog and VHDL to create high-level representations of a circuit, from which lower-level representations and ultimately actual wiring can be derived. The netlist contains descriptions of the parts or devices used. These definitions will usually list the connections that can be made to that kind of device, and some basic properties of that device. The connection points are called “ports” or “pins.”
- In
operation 13, a first database or file for the cell layouts is generated. In some embodiments, cells in the first database have a pin layer at the same layer as metal-1 (M1) layer. M1 layer is merely exemplary for convenience of discussion and should not be construed as limiting the present disclosure. Other metal layers, such as M2 or higher layer in a back-end-of-line (BEOL) processing, are within the contemplated scope of the present disclosure. In semiconductor manufacturing, once various semiconductor devices have been created in a substrate, they are interconnected to form the desired electrical circuits. The interconnection processing involves creating metal interconnecting wires that are isolated by dielectric layers. The M1 layer refers to a metal interconnecting layer in closest proximity to the substrate among the metal interconnecting wires. Establishment of the first database facilitates wire routing for cells in a pin layer, as will be further discussed. - Next, in
operation 15, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer is identified. To identify whether two cells are routable, design constraints of connection between the cells are taken into consideration. The design constraints may include limitations on speed and space for cells to be connected. In some embodiments, for example, a design rule check (DRC) is performed for the identification. Accordingly, when two cells abut each other, if their pins cannot be connected using the same pin layers without violating the DRC, these cells are determined to be not routable. On the contrary, if the distance between the pins of two cells conforms to the DRC, these cells are determined to be routable. - In
operation 17, a second database or file for the routable cells is generated. The second database includes not only cells routable in M1 layer, but also cells routable in M2 or higher layer in the case that the pin layers of the cells are in the M2 or higher layer. In the second database, routable cells are listed in pairs, as will be discussed with reference toFIG. 2A below. Moreover, a cell may be routable with more than one other cells. In some embodiments, the second database is generated before wire routing. -
FIGS. 2A and 2B are schematic diagrams illustrating operations of the method inFIG. 1 in accordance with some embodiments. Referring toFIG. 2A , for illustration purpose, layouts ofcells operation 15 inFIG. 1 , it is identified that apin 210 ofcell 21 to be connected to apin 250 ofcell 25, or vice versa, conforms to the design constraints. Accordingly,cells cells pin 310 ofcell 31 and apin 350 ofcell 35 conforms to the design constraints. Moreover,cells pin 810 ofcell 81 and apin 850 ofcell 85 conforms to the design constraints. As a result,cells cells - Referring to
FIG. 2B , a relative position ofcells M1 layer 60. Moreover, these cells may have irregular pin shapes or complex pin topology. Assume thatcell 21 is to be connected tocell 25. Sincecells cells cells cells cells M1 layer 60 without using M2 or higher layer, as will be discussed with reference toFIG. 3 below. -
FIG. 3 is a schematic diagram illustrating a method of routing in accordance with some embodiments. Referring toFIG. 3 , and also referring toFIG. 2B , to adjust the cell position, the locations ofcells cell 21 is more closer tocell 25. In the present embodiment,cells cell 21 is reoriented so thatpin 210 ofcell 21 and pin 250 ofcell 25 are immediately adjacent to each other. The adjusted position matches a routable pair ofcells connector 28 is then added betweenpins cells cells -
FIG. 4 is a flow diagram illustrating a method of routing in accordance with some embodiments. Referring toFIG. 4 , inoperation 41, data including information on connectivity of cells are obtained. In some embodiments, the data include a netlist and may further include a floor plan and a synopsys design constraint (SDC) file. SDC is used to constraint the design and to get the netlist of the design. SDC contains clock information, false path and multi cycle path, cap, fanout and transition values. In designing an IC chip, a designer at a system design stage describes the IC chip in terms of larger modules that serve specific functions. Further, exploration for options include design architectures is performed to consider, for example, tradeoffs in optimizing design specifications and cost. At a logic design stage, the modules for the IC chip are described at the RTL using Verilog or VHDL, and are verified for functional accuracy. Subsequently, at a logic synthesis stage, the modules for the IC chip described in RTL is translated into a gate-level netlist. Next, the gate-level netlist is partitioned into blocks and a floor plan for the blocks is created. - In
operation 42, a database for cells that are routable in a pin layer is generated based on the data. The database is same as or similar to the second database described with reference toFIG. 1 and thus establishment of the database is not further discussed. - In
operation 43, a first or an initial placement of cells is performed according to the data. After the first placement, which may be deemed a rough placement, there may exist cells that violate the design constraints. A result of the first placement is stored in another database inoperation 44. - In
operation 45, a second placement is performed, using the data from the database for routable cells and data of the first placement. The second placement, which may be deemed a fine placement or a routing-aware placement, adjusts those cells that violate the design constraints by relocating or re-orientating the cells. - Next, in
operation 46, a routing process is performed to connect cells in a pin layer. In some embodiments, also referring toFIG. 3 , adjusted cells are connected byconnector 28 in the routing process. As a result, since most cells have a pin layer at M1 layer, wire routing for these cells is performed at M1 layer. Further, for cells having a pin layer at M2 layer, wire routing for such cells is performed using M1 and M2 layers. -
FIG. 5 is a block diagram of asystem 50 for placement and routing in accordance with some embodiments. Referring toFIG. 5 ,system 50 includes aprocessor 51, anetwork interface 53, an input and output (I/O)device 55, astorage 57, amemory 58, and abus 59. Thebus 59 couples thenetwork interface 53, the I/O device 55, thestorage 57 and thememory 58 to theprocessor 51. -
Processor 51 is configured to execute program instructions that include a tool configured to perform the method for wire routing as described and illustrated with reference toFIG. 1 . Accordingly, the tool is configured to obtain data of cell layouts, generate a first database for the cell layouts, identify for each cell in the first database whether the cell and another cell are routable in a pin layer, and generate a second database for routable cells. Moreover, the tool is configured to perform the method for wire routing as described and illustrated with reference toFIG. 4 . Accordingly, the tool is configured to obtain data including information on connectivity of cells, generate a database, based on the data, for pairs of cells that are routable in a pin layer, perform a first placement based on the data, generate another database for a result of the first placement, and perform a second placement based on the data from the database for pairs of cells that are routable in a pin layer and the database for a result of the first placement. -
Network interface 53 is configured to access program instructions and data accessed by the program instructions stored remotely through a network (not shown). - I/
O device 55 includes an input device and an output device configured for enabling user interaction withsystem 50. In some embodiments, the input device comprises, for example, a keyboard, a mouse, etc. Moreover, the output device comprises, for example, a display, a printer, etc. -
Storage device 57 is configured for storing program instructions and data accessed by the program instructions. In some embodiments,storage device 57 comprises, for example, a magnetic disk and an optical disk. -
Memory 58 is configured to store program instructions to be executed byprocessor 51 and data accessed by the program instructions. In some embodiments,memory 58 comprises a random access memory (RAM) and/or some other volatile storage device and/or read only memory (ROM) and/or some other non-volatile storage device. - Embodiments of the present disclosure provide a method of wire routing. The method comprises obtaining data of cell layouts, generating a first database for the cell layouts, identifying, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer, and generating a second database for routable cells.
- In an embodiment, the method further comprises obtaining the data of cell layouts from a netlist.
- In another embodiment, identifying for each cell in the first database includes determining whether a connection relationship between the cell and another cell conforms to design constraints. In yet another embodiment, identifying for each cell in the first database includes performing a design rule check (DRC).
- In an embodiment, the pin layer includes a metal layer in closest proximity to a substrate.
- In another embodiment, the method further comprises obtaining data including information on connectivity of cells before obtaining data of cell layouts. Moreover, the method further comprises performing a first placement based on the data including information on connectivity of cells, generating a third database for the first placement, and performing a second placement based on data from the second database and third database.
- In still another embodiment, the method further comprises adjusting cells in position in accordance with data in the second database. Furthermore, adjusting cells includes at least one of relocating one of the cells or re-orientating one of the cells.
- In yet still another embodiment, the method further comprises adding a connector for connecting cells after adjusting cells.
- Some embodiments of the present disclosure provide a method of wire routing. The method comprises obtaining data including information on connectivity of cells, generating a database, based on the data, for pairs of cells that are routable in a pin layer, performing a first placement based on the data and generating another database for a result of the first placement, and performing a second placement based on data from the database for pairs of cells that are routable in a pin layer and the database for a result of the first placement.
- In an embodiment, the method further comprises adjusting cells in position in accordance with data in the database for pairs of cells that are routable in a pin layer. Moreover, adjusting cells includes at least one of relocating one of the cells or re-orientating one of the cells.
- In another embodiment, the method further comprises adding a connector for connecting cells after adjusting cells.
- In still another embodiment, in generating a database for pairs of cells that are routable in a pin layer, the method comprises obtaining data of cell layouts from the data including information on connectivity of cells, generating a first database for the cell layouts, and identifying, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer.
- In an embodiment, identifying for each cell in the first database includes determining whether a connection relationship between the cell and another cell conforms to design constraints.
- Embodiments of the present disclosure also provide a system for wire routing. The system comprises a processor configured to execute program instructions, and a memory configured to store the program instructions. The program instructions includes a tool configured to obtain data of cell layouts, generate a first database for the cell layouts, identify, for each cell in the first database, whether the cell and another cell in the first database are routable in a pin layer, and generate a second database for routable cells.
- In an embodiment, the tool is further configured to obtain data including information on connectivity of cells before obtaining data of cell layouts.
- In another embodiment, the tool is further configured to perform a first placement based on the data including information on connectivity of cells, generate a third database for the first placement, and perform a second placement based on data from the second database and third database.
- In still another embodiment, the tool is further configured to adjust cells in position in accordance with data in the second database. Moreover, adjusting cells includes at least one of relocating one of the cells or re-orientating one of the cells.
- In yet still another embodiment, the tool is further configured to add a connector for connecting cells after adjusting cells.
- The foregoing outlines features of several embodiments so that persons having ordinary skill in the art may better understand the aspects of the present disclosure. Persons having ordinary skill in the art should appreciate that they may readily use the present disclosure as a basis for designing or modifying other devices or circuits for carrying out the same purposes or achieving the same advantages of the embodiments introduced therein. Persons having ordinary skill in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the present disclosure, and that they may make various changes, substitutions and alternations herein without departing from the spirit and scope of the present disclosure.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/103,558 US9064081B1 (en) | 2013-12-11 | 2013-12-11 | Generating database for cells routable in pin layer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/103,558 US9064081B1 (en) | 2013-12-11 | 2013-12-11 | Generating database for cells routable in pin layer |
Publications (2)
Publication Number | Publication Date |
---|---|
US20150161319A1 true US20150161319A1 (en) | 2015-06-11 |
US9064081B1 US9064081B1 (en) | 2015-06-23 |
Family
ID=53271435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/103,558 Active US9064081B1 (en) | 2013-12-11 | 2013-12-11 | Generating database for cells routable in pin layer |
Country Status (1)
Country | Link |
---|---|
US (1) | US9064081B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170083654A1 (en) * | 2015-09-18 | 2017-03-23 | Taiwan Semiconductor Manufacturing Co., Ltd. | Cell layout of semiconductor device |
US20220067266A1 (en) * | 2017-08-30 | 2022-03-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standard cells and variations thereof within a standard cell library |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102494048B1 (en) | 2016-01-11 | 2023-02-01 | 삼성전자주식회사 | Method for designing routing between pins of semiconductor device and design system |
US10943049B2 (en) * | 2018-09-28 | 2021-03-09 | Taiwan Semiconductor Manufacturing Co., Ltd. | Rule check violation prediction systems and methods |
JP2021015537A (en) * | 2019-07-16 | 2021-02-12 | キオクシア株式会社 | Semiconductor integrated circuit design method, circuit design system and control program |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230299B1 (en) * | 1998-03-31 | 2001-05-08 | Mentor Graphics Corporation | Method and apparatus for extracting and storing connectivity and geometrical data for a deep sub-micron integrated circuit design |
US20030051217A1 (en) * | 2001-08-31 | 2003-03-13 | Cheng Chih-Liang | Estimating capacitance effects in integrated circuits using congestion estimations |
US6701509B2 (en) * | 1999-08-10 | 2004-03-02 | Koninklijke Philips Electronics N.V. | Integrated circuit power and ground routing |
US20050076319A1 (en) * | 2003-10-03 | 2005-04-07 | Chow Shau-Lim Stan | Pin assignment in block-based integrated circuit design methodologies |
US20060129962A1 (en) * | 2004-12-13 | 2006-06-15 | Lsi Logic Corporation | Cell builder for different layer stacks |
US20080092099A1 (en) * | 2006-10-12 | 2008-04-17 | Springsoft, Inc. | Analog and mixed signal ic layout system |
US20080216038A1 (en) * | 2005-06-29 | 2008-09-04 | Subhasis Bose | Timing Driven Force Directed Placement Flow |
US7571408B1 (en) * | 2005-03-09 | 2009-08-04 | Cadence Design Systems, Inc. | Methods and apparatus for diagonal route shielding |
US20090254874A1 (en) * | 2006-05-18 | 2009-10-08 | Subhasis Bose | Methods and systems for placement and routing |
US20090300565A1 (en) * | 2008-05-27 | 2009-12-03 | Advanced Micro Devices, Inc. | Method for prioritizing nodes for rerouting and device therefor |
US20100125822A1 (en) * | 2008-11-15 | 2010-05-20 | Cadence Design Systems, Inc. | Methods, systems, and computer program prodcut for implementing interactive cross-domain package driven i/o planning and placement optimization |
US20100199252A1 (en) * | 2009-02-03 | 2010-08-05 | Texas Instruments Incorporated | Routability of integrated circuit design without impacting the area |
US20120060139A1 (en) * | 2010-09-02 | 2012-03-08 | International Business Machines Corporation | Using Port Obscurity Factors to Improve Routing |
US8151239B1 (en) * | 2006-01-26 | 2012-04-03 | Cadence Design Systems, Inc. | Method for resolving overloads in autorouting physical interconnections |
US20120110536A1 (en) * | 2010-10-27 | 2012-05-03 | International Business Machines Corporation | Statistical method for hierarchically routing layout utilizing flat route information |
US20120192135A1 (en) * | 2011-01-20 | 2012-07-26 | Globalfoundries Inc. | Methods for analyzing cells of a cell library |
US8347257B2 (en) * | 2010-06-08 | 2013-01-01 | International Business Machines Corporation | Detailed routability by cell placement |
US20130086544A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Consideration of local routing and pin access during vlsi global routing |
US20130212549A1 (en) * | 2012-02-10 | 2013-08-15 | Freescale Semiconductor, Inc. | Cell routability prioritization |
US8627247B1 (en) * | 2012-07-11 | 2014-01-07 | International Business Machines Corporation | Systems and methods for fixing pin mismatch in layout migration |
US20140289695A1 (en) * | 2013-03-25 | 2014-09-25 | Globalfoundries Inc. | Evaluation of pin geometry accessibility in a layer of circuit |
-
2013
- 2013-12-11 US US14/103,558 patent/US9064081B1/en active Active
Patent Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230299B1 (en) * | 1998-03-31 | 2001-05-08 | Mentor Graphics Corporation | Method and apparatus for extracting and storing connectivity and geometrical data for a deep sub-micron integrated circuit design |
US6701509B2 (en) * | 1999-08-10 | 2004-03-02 | Koninklijke Philips Electronics N.V. | Integrated circuit power and ground routing |
US20030051217A1 (en) * | 2001-08-31 | 2003-03-13 | Cheng Chih-Liang | Estimating capacitance effects in integrated circuits using congestion estimations |
US20050076319A1 (en) * | 2003-10-03 | 2005-04-07 | Chow Shau-Lim Stan | Pin assignment in block-based integrated circuit design methodologies |
US20060129962A1 (en) * | 2004-12-13 | 2006-06-15 | Lsi Logic Corporation | Cell builder for different layer stacks |
US7571408B1 (en) * | 2005-03-09 | 2009-08-04 | Cadence Design Systems, Inc. | Methods and apparatus for diagonal route shielding |
US8015529B1 (en) * | 2005-03-09 | 2011-09-06 | Cadence Design Systems, Inc. | Methods and apparatus for diagonal route shielding |
US20080216038A1 (en) * | 2005-06-29 | 2008-09-04 | Subhasis Bose | Timing Driven Force Directed Placement Flow |
US8151239B1 (en) * | 2006-01-26 | 2012-04-03 | Cadence Design Systems, Inc. | Method for resolving overloads in autorouting physical interconnections |
US20090254874A1 (en) * | 2006-05-18 | 2009-10-08 | Subhasis Bose | Methods and systems for placement and routing |
US8332793B2 (en) * | 2006-05-18 | 2012-12-11 | Otrsotech, Llc | Methods and systems for placement and routing |
US20080092099A1 (en) * | 2006-10-12 | 2008-04-17 | Springsoft, Inc. | Analog and mixed signal ic layout system |
US20090300565A1 (en) * | 2008-05-27 | 2009-12-03 | Advanced Micro Devices, Inc. | Method for prioritizing nodes for rerouting and device therefor |
US20100125822A1 (en) * | 2008-11-15 | 2010-05-20 | Cadence Design Systems, Inc. | Methods, systems, and computer program prodcut for implementing interactive cross-domain package driven i/o planning and placement optimization |
US20100199252A1 (en) * | 2009-02-03 | 2010-08-05 | Texas Instruments Incorporated | Routability of integrated circuit design without impacting the area |
US8347257B2 (en) * | 2010-06-08 | 2013-01-01 | International Business Machines Corporation | Detailed routability by cell placement |
US20120060139A1 (en) * | 2010-09-02 | 2012-03-08 | International Business Machines Corporation | Using Port Obscurity Factors to Improve Routing |
US20120110536A1 (en) * | 2010-10-27 | 2012-05-03 | International Business Machines Corporation | Statistical method for hierarchically routing layout utilizing flat route information |
US20120192135A1 (en) * | 2011-01-20 | 2012-07-26 | Globalfoundries Inc. | Methods for analyzing cells of a cell library |
US8726217B2 (en) * | 2011-01-20 | 2014-05-13 | GlobalFoundries, Inc. | Methods for analyzing cells of a cell library |
US20130086544A1 (en) * | 2011-10-03 | 2013-04-04 | International Business Machines Corporation | Consideration of local routing and pin access during vlsi global routing |
US20130212549A1 (en) * | 2012-02-10 | 2013-08-15 | Freescale Semiconductor, Inc. | Cell routability prioritization |
US8627247B1 (en) * | 2012-07-11 | 2014-01-07 | International Business Machines Corporation | Systems and methods for fixing pin mismatch in layout migration |
US20140289695A1 (en) * | 2013-03-25 | 2014-09-25 | Globalfoundries Inc. | Evaluation of pin geometry accessibility in a layer of circuit |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170083654A1 (en) * | 2015-09-18 | 2017-03-23 | Taiwan Semiconductor Manufacturing Co., Ltd. | Cell layout of semiconductor device |
US10162925B2 (en) * | 2015-09-18 | 2018-12-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | Cell layout of semiconductor device |
US10922466B2 (en) | 2015-09-18 | 2021-02-16 | Taiwan Semiconductor Manufacturing Co., Ltd. | Cell layout of semiconductor device |
US11568119B2 (en) | 2015-09-18 | 2023-01-31 | Taiwan Semiconductor Manufacturing Co., Ltd. | Cell layout of semiconductor device |
US20220067266A1 (en) * | 2017-08-30 | 2022-03-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standard cells and variations thereof within a standard cell library |
US11704472B2 (en) * | 2017-08-30 | 2023-07-18 | Taiwan Semiconductor Manufacutring Co., Ltd. | Standard cells and variations thereof within a standard cell library |
Also Published As
Publication number | Publication date |
---|---|
US9064081B1 (en) | 2015-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10418354B2 (en) | Integrated circuit and computer-implemented method of manufacturing the same | |
US9275176B2 (en) | Register clustering for clock network topology generation | |
CN103294842B (en) | Semiconductor device design method, system and computer-readable medium | |
US9064081B1 (en) | Generating database for cells routable in pin layer | |
US11170150B2 (en) | Method for making a semiconductor device | |
US20150269302A1 (en) | Electromigration-aware layout generation | |
US20230252219A1 (en) | Method and system of forming semiconductor device | |
US8972916B1 (en) | Method and system for checking the inter-chip connectivity of a three-dimensional integrated circuit | |
US8978003B1 (en) | Method of making semiconductor device and a control system for performing the same | |
US10360342B2 (en) | Method, system, and storage medium for engineering change order scheme in circuit design | |
US10977415B2 (en) | Integrated device and method of forming the same | |
US8966429B2 (en) | Bit slice elements utilizing through device routing | |
KR20170094744A (en) | Integrated circuit and computer-implemented method for manufacturing the same | |
US9721051B2 (en) | Reducing clock skew in synthesized modules | |
US9454632B1 (en) | Context specific spare cell determination during physical design | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
US8947120B2 (en) | Latch array utilizing through device connectivity | |
Khvatov et al. | Development of an IP-cores Libraries as Part of the Design Flow of Integrated Circuits on FPGA | |
Jenila et al. | Implementation of Routing-denser PnR Flow for an Efficient IC Block Level Design | |
Kabir | Design, Extraction, and Optimization Tool Flows and Methodologies for Homogeneous and Heterogeneous Multi-Chip 2.5 D Systems | |
Liu | Physical Layout Optimization of an ASIC | |
Chandrasetty et al. | ASIC Design | |
Hima et al. | Physical Design implementation of Leon processor | |
Lazzari | Automatic layout generation of static CMOS circuits targeting delay and power | |
Tekmen | Performance-driven VLSI placement using topology-insensitive interconnect-length, delay and routability estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TAIWAN SEMICONDUCTOR MANUFACTURING COMPANY LTD., T Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HSU, MENG-KAI;YU, CHI-YEH;HOU, YUAN-TE;AND OTHERS;REEL/FRAME:031762/0668 Effective date: 20131206 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |