WO2014195806A2 - Methods and systems for insertion of spare wiring structures for improved engineering change orders - Google Patents

Methods and systems for insertion of spare wiring structures for improved engineering change orders Download PDF

Info

Publication number
WO2014195806A2
WO2014195806A2 PCT/IB2014/001914 IB2014001914W WO2014195806A2 WO 2014195806 A2 WO2014195806 A2 WO 2014195806A2 IB 2014001914 W IB2014001914 W IB 2014001914W WO 2014195806 A2 WO2014195806 A2 WO 2014195806A2
Authority
WO
WIPO (PCT)
Prior art keywords
spare
integrated circuit
design
wiring structures
structures
Prior art date
Application number
PCT/IB2014/001914
Other languages
French (fr)
Other versions
WO2014195806A3 (en
Inventor
Peter Hallschmid
James Cicalo
A.K.M. Kamruzzaman MOLLAH
Original Assignee
Blackcomb Design Automation Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/270,267 external-priority patent/US9236343B2/en
Application filed by Blackcomb Design Automation Inc. filed Critical Blackcomb Design Automation Inc.
Publication of WO2014195806A2 publication Critical patent/WO2014195806A2/en
Publication of WO2014195806A3 publication Critical patent/WO2014195806A3/en

Links

Classifications

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

Definitions

  • the field of the embodiments generally relates to improved techniques and architectures for modifying the physical design and realization of integrated circuits, and more specifically to a methods and systems for insertion of spare wiring structures for improved engineering change orders.
  • Integrated circuit design typically involves a series of well-defined steps using a sequence of electronic-design-automation (EDA) or computer aided design (CAD) tools.
  • EDA electronic-design-automation
  • CAD computer aided design
  • a first step the required functionality of the design is typically specified using a hardware description language (HDL) or by drawing a schematic with a graphical entry tool.
  • HDL hardware description language
  • the design is converted to a netlist of logic elements through a step known as synthesis by an EDA software tool.
  • the synthesis tool specifies the design as a netlist of circuit elements in a way that optimizes the design as specified using user- supplied constraints. These constraints may include optimizing for a desired operating speed, implementation area, or power-efficiency, etc.
  • an EDA tool then derives a silicon layout of the design netlist through a series of steps called placement, clock-tree synthesis, timing optimization, and routing.
  • the outcome of the layout process is the physical design of the integrated circuit.
  • a method for insertion of spare wiring structures into an integrated circuit comprises: determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures into the integrated circuit; inserting spare wiring structures into a physical design of the integrated circuit according to the determined architecture; and outputting an engineering-change-order-ready integrated circuit layout.
  • the determined architecture depends upon a design characteristic or design characteristic value.
  • the spare wiring structures include a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers.
  • the plurality of interconnect layers are disposed on one or both sides of a substrate including a plurality of electronic devices.
  • the plurality of interconnect layers include at least one horizontal interconnect layer and at least one vertical- interconnect-access (VIA) layer.
  • the plurality of spare electrically conductive interconnect layer structures are electrically isolated from a plurality of active electrically conductive interconnect layer structures.
  • the design characteristic may include at least one design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, behavioral intent, active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, minimum transistor gate width, and physical design constraints.
  • the method may further comprise: routing active electronic circuit elements and interconnects after the inserting of spare wiring structures; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
  • the method may further comprise: determining whether the physical design with inserted spare wiring structures is sufficiently repairable during an engineering change order; and if the physical design with inserted spare wiring structures is determined to be not sufficiently repairable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
  • the inserting of spare wiring structures into the physical design of the integrated circuit may be according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, and behavioral intent.
  • the inserting of spare wiring structures into the physical design of the integrated circuit may be according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
  • the inserting of spare wiring structures into the physical design of the integrated circuit may be according to a measure of circuit centrality.
  • the measure of circuit centrality may include at least one measure selected from the group consisting of degree centrality, closeness centrality, eigenvalue centrality, betweenness centrality, Katz centrality, percolation centrality, and cross-clique centrality.
  • the inserting of spare wiring structures into the physical design of the integrated circuit may be according to intended behavior of various parts of the integrated circuit as specified by a high-level behavioral description of the integrated circuit. [0015] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to relative risk for repairs of various parts of the integrated circuit.
  • the relative risk for repairs may be specified by at least one measure selected from the group consisting of relative test coverage of the integrated circuit, amenability to formal verification, degree to which the integrated circuit has been subjected to formal verification, amenability for functional verification, and degree to which the integrated circuit has been subjected to functional verification.
  • the inserting of spare wiring structures into the physical design of the integrated circuit may be according to relative importance of different parts of the integrated circuit based on anticipated importance of features implemented.
  • the method may further comprise routing of active electronic circuit elements before the insertion of the spare wiring structures.
  • the spare wiring structures may include a plurality of access-location- structures, and the inserting of spare wiring structures may include inserting a plurality of access-location-structures in locations in the integrated circuit layout according to a calculated utility of providing access to the access-location- structures from a spare-cell.
  • the spare wiring structures may include a plurality of access-location- structures, and the inserting of spare wiring structures may include inserting a plurality of access-location-structures in locations in the integrated circuit layout according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
  • the inserting of spare wiring structures may include inserting the spare wiring structures through a high congestion area of the plurality of interconnect layers.
  • the high congestion area of the plurality of interconnect layers may have at least 10% greater number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
  • the inserting of spare wiring structures may include inserting the spare wiring structures through a low congestion area of the plurality of interconnect layers.
  • the low congestion area of the plurality of interconnect layers may have at least 10% fewer number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
  • the inserting of spare wiring structures may include inserting a spare-stack occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers.
  • the spare-stack may include a plurality of spare electrically conductive interconnect layer structures electrically isolated from the plurality of active electrically conductive interconnect layer structures.
  • the plurality of spare electrically conductive interconnect layer structures may include at least one spare electrically conductive interconnect layer structure disposed on one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures are also disposed.
  • the plurality of spare electrically conductive interconnect layer structures may be disposed on adjacent interconnect layers of the plurality of interconnect layers and electrically coupled with one another using one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers.
  • the inserting of spare wiring structures may include: inserting spare stacks in conjunction with placement of active electronic circuit elements in the physical design; inserting spare routes in conjunction with routing active electronic circuit elements and interconnects in the physical design; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and the inserting spare routes into the physical design of the integrated circuit according to the newly determined architecture in conjunction with the routing active electronic circuit elements and interconnects in the physical design.
  • a non-transitory computer-readable storage medium has stored thereon a program executable by a processor for performing a method for insertion of spare wiring structures into an integrated circuit.
  • the method comprises: determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures into the integrated circuit; inserting spare wiring structures into a physical design of the integrated circuit according to the deternnined architecture; and outputting an engineering-change-order-ready integrated circuit layout.
  • the deternnined architecture depends upon a design characteristic or design characteristic value.
  • the spare wiring structures include a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers.
  • the plurality of interconnect layers are disposed on one or both sides of a substrate including a plurality of electronic devices.
  • the plurality of interconnect layers include at least one horizontal interconnect layer and at least one vertical- interconnect-access (VIA) layer.
  • the plurality of spare electrically conductive interconnect layer structures are electrically isolated from a plurality of active electrically conductive interconnect layer structures.
  • the method of the medium may further comprise routing active electronic circuit elements and interconnects after the inserting of spare wiring structures; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
  • the inserting of spare wiring structures may include: inserting spare stacks in conjunction with placement of active electronic circuit elements in the physical design; inserting spare routes in conjunction with routing active electronic circuit elements and interconnects in the physical design; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and the inserting of spare routes into the physical design of the integrated circuit according to the newly determined architecture in conjunction with the routing active electronic circuit elements and interconnects in the physical design.
  • the inserting of spare stacks may include temporarily attaching one or more of the spare stacks to one or more spare-cells during placement using a wired connection.
  • the wired connection may connect the one or more of the spare stacks to scan chain circuitry proximate to the one or more of the spare-cells.
  • the inserting of spare stacks may include temporarily attaching one or more of the spare stacks to one or more active electronic circuit nodes during placement using a wired connection.
  • the inserting of spare stacks may include attaching one or more of the spare stacks to one or more spare-cells during placement using a wired connection that connects the one or more of the spare stacks to a cell between the one or more of the spare stacks and the one or more spare-cells that electrically decouples the one or more of the spare stacks from the one or more spare-cells.
  • the inserting of spare routes may include routing active electronic circuit elements in conjunction with routing spare routes while treating spare routes the same as active interconnects.
  • an integrated circuit comprises: a substrate including a plurality of electronic devices; a plurality of interconnect layers disposed on one or both sides of the substrate, the plurality of interconnect layers including horizontal interconnect and vertical-interconnect-access (VIA) layers; a plurality of active electrically conductive interconnect layer structures disposed on at least one of the plurality of interconnect layers and electrically coupled with at least one of the plurality of electronic devices; and a plurality of spare electrically conductive interconnect layer structures disposed on at least one of the plurality of interconnect layers and electrically isolated from the plurality of active electrically conductive interconnect layer structures.
  • VIP vertical-interconnect-access
  • the plurality of spare electrically conductive interconnect layer structures may include at least one spare electrically conductive interconnect layer structure disposed on the at least one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures is disposed.
  • the integrated circuit may further comprise a spare-cell including an input/output interconnect electrically coupled with the spare-cell and disposed proximate to the at least one spare electrically conductive interconnect layer structure disposed on the at least one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures is disposed, there being no active electrically conductive interconnect layer structures between the input/output interconnect and the at least one spare electrically conductive interconnect layer structure along at least one path within at least one of the plurality of interconnect layers.
  • Each of the plurality of spare electrically conductive interconnect layer structures may be disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access to the access-locations from a spare-cell.
  • Each of the plurality of spare electrically conductive interconnect layer structures may be disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access from points of interest in the substrate including the plurality of electronic devices to one or more spare-cells or to other points of interest in the substrate.
  • Each of the plurality of spare electrically conductive interconnect layer structures may be disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
  • the plurality of spare electrically conductive interconnect layer structures may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of the various functions of the integrated circuit to the end user, typical known repair patterns, and behavioral intent as specified in specifications of the design at higher levels of abstraction.
  • the plurality of spare electrically conductive interconnect layer structures may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
  • the plurality of spare electrically conductive interconnect layer structures may pass through a high congestion area of the plurality of interconnect layers, the high congestion area of the plurality of interconnect layers having at least 10% greater number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
  • an integrated circuit comprises: a substrate including a plurality of electronic devices; a plurality of interconnect layers disposed on one or both sides of the substrate, the plurality of interconnect layers including horizontal interconnect and vertical-interconnect-access (VIA) layers; a plurality of active electrically conductive interconnect layer structures, each of the plurality of active electrically conductive interconnect layer structures disposed on one of the plurality of interconnect layers and electrically coupled with at least one of the plurality of electronic devices; and a spare-stack occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers, the spare-stack including a plurality of spare electrically conductive interconnect layer structures electrically isolated from the plurality of active electrically conductive interconnect layer structures, the plurality of spare electrically conductive interconnect layer structures including at least one spare electrically conductive interconnect layer structure disposed on one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures are
  • a dimension of a rectangular footprint of the spare-stack may be less than half a distance to a closest neighboring access-location in each of two orthogonal directions.
  • Each of the plurality of spare electrically conductive interconnect layer structures may adhere to a per horizontal-interconnect-layer rectangular footprint in each of two orthogonal directions, where the per horizontal-interconnect-layer footprint is disposed according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
  • the integrated circuit may further comprise a spare-cell electrically coupled with the spare-stack.
  • the integrated circuit may further comprise a plurality of spare-stacks, wherein each of the plurality of spare-stacks is disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access from points of interest in the substrate including the plurality of electronic devices to one or more spare-cells or to other points of interest in the substrate.
  • the integrated circuit may further comprise a plurality of spare-stacks, wherein each of the plurality of spare-stacks is disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
  • the integrated circuit may further comprise a plurality of spare-stacks, wherein the plurality of spare-stacks are disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of the various functions of the integrated circuit to the end user, and behavioral intent as specified in specifications of the design at higher levels of abstraction.
  • the integrated circuit may further comprise a plurality of spare-stacks, wherein the plurality of spare-stacks are disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
  • the one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent horizontal-interconnect-layers may be two or more vias disposed between three or more of the plurality of spare electrically conductive horizontal-interconnect-layer structures on adjacent interconnect layers, and the two or more vias may not be vertically aligned with one another.
  • an integrated circuit comprises: a substrate including a plurality of electronic devices; a plurality of interconnect layers disposed on one or both sides of the substrate, the plurality of interconnect layers including horizontal interconnect and vertical-interconnect-access (VIA) layers; a plurality of active electrically conductive interconnect layer structures, each of the plurality of active electrically conductive interconnect layer structures disposed on one of the plurality of interconnect layers and electrically coupled with at least one of the plurality of electronic devices; and a spare-junction, the spare-junction comprising a plurality of spare-stacks, each of the plurality of spare-stacks occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers, there being one or more unobstructed single-interconnect-layer routing paths between each pair of the plurality of spare-stacks comprised by the spare-junction for at least a prescribed number of interconnect layers, each of the plurality of spare-stacks including a
  • the plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one logic design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, circuit timing information, typical known repair patterns, and estimated demand for spare-resources when performing an engineering change order.
  • the plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, and timing information.
  • the one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers may be two or more vias disposed between three or more of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers, and the two or more vias may not be vertically aligned with one another.
  • the plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to a pre-defined rectangular footprint, where the plurality of spare-stacks are routed such that there exists one or more unobstructed single-interconnect-layer routing paths between each pair of the plurality of spare-stacks comprised by the spare-junction for at least a prescribed number of interconnect layers such that each of the routing paths is confined to the pre-defined rectangular footprint.
  • the pre-defined rectangular footprint of the spare-junction may be equal to or greater than the largest per horizontal-interconnect-layer minimum line width of the plurality of interconnect layers spanned by the spare-junction in each of two orthogonal directions.
  • a dimension of the pre-defined rectangular footprint of the spare-junction may be less than half a distance to a closest neighboring access-location in each of two orthogonal directions.
  • the plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to a pre-defined maximum routing path length, where the plurality of spare-stacks may be routed such that there exists one or more unobstructed single-interconnect-layer routing paths between each pair of the plurality of spare-stacks comprised by the junction for at least a prescribed number of interconnect layers such that each of the routing paths is limited in length to the maximum routing path length.
  • a maximum path-length per interconnect layer of the spare-junction may be equal to or greater than a horizontal-interconnect-layer minimum line width of the plurality of interconnect layers spanned by the spare-junction in each of two orthogonal directions.
  • a maximum path-length per interconnect layer of the spare-junction may be less than or equal to a timing critical-path length of a local clock domain.
  • the plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers, where one or more of the plurality of locations of the plurality of interconnect layers may be determined according to predefined custom cells, where each custom cell defines a specific arrangement of pins for one of the plurality of horizontal-interconnect-layers through which the plurality of spare-stacks are routed, with each spare-stack being routed through a unique pin of the custom cell.
  • the integrated circuit may further comprise a plurality of spare-junctions, wherein each of the plurality of spare-junctions is disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access from points of interest in the substrate including the plurality of electronic devices to one or more spare-cells or to other points of interest in the substrate.
  • the integrated circuit may further comprise a plurality of spare-junctions, wherein each of the plurality of spare-junctions are disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
  • FIG. 1 is a schematic diagram that illustrates spare wiring structures employed in the vicinity of a spare-cell in an integrated circuit design, according to an embodiment.
  • FIG. 2 is a perspective diagram that illustrates a spare-stack, a type of spare wiring structure, in a physical design of an integrated circuit, according to an embodiment
  • FIG. 3 is a perspective diagram that illustrates a section of an integrated circuit layout containing spare wiring structures, according to an embodiment
  • FIG. 4 is a schematic diagram that illustrates spare wiring structures that are inserted into the layout of an example integrated circuit design according to the predicted utility of providing connectivity to a spare-cell at various locations of the integrated circuit layout, according to an embodiment
  • FIG. 5 is a schematic diagram that illustrates an example integrated circuit layout in which spare wiring structures have been inserted by a user or CAD program according to a pattern, according to an embodiment
  • FIGS. 6A and 6B are schematic diagrams that illustrate an example change in logic connections due to an engineering change order of an integrated circuit design
  • FIGS. 7A and 7B are schematic diagrams that illustrate a conventional method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B;
  • FIGS. 8A and 8B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks, according to an embodiment
  • FIGS. 9A and 9B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks and spare-routes, according to an embodiment
  • FIG. 10 is a flow diagram that illustrates a design flow for an integrated circuit including post-placement insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment
  • FIG. 1 1 is a flow diagram that illustrates a design flow for an integrated circuit including post-place and route insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment
  • FIG. 12 is a flow diagram that illustrates a design flow for an integrated circuit including insertion of spare wiring for an architecture of spare wiring structures integrated with place and route of active electronic circuits, according to an embodiment
  • FIGS. 13A and 13B are a flow diagram that illustrates a method of inserting spare wiring structures in an integrated circuit design, according to an embodiment
  • FIG. 14 is a block diagram that illustrates a method of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment.
  • FIG. 15 is a block diagram that illustrates a computer system that performs a method of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment.
  • an architecture for integrated circuits includes spare wiring structures that are inserted into the physical design of an integrated circuit in order to facilitate or improve the process of modifying one or more of the operation, function, and performance characteristics of the integrated circuit, either pre- or post-fabrication. Modification of the design of the integrated circuit to change its operation, function, and/or performance characteristics is known as an engineering change order (ECO) process, in which engineering changes (ECs) are made to an integrated circuit design.
  • ECO engineering change order
  • ECs engineering changes
  • the architecture of spare wiring structures increases the accessibility from circuit elements to spare- resources and to other circuit elements within the integrated circuit for use in performing an ECO on the integrated circuit design.
  • the spare resources may include standard cell-based spare-cells or metal- configurable gate-array spare-cells.
  • spare-cells are referred to, they are to be considered to include “spare-packs" as well, which may be a collection of spare-cells, a logic block that performs a function more specific than a spare-cell, or other spare circuit elements that can be used in the implementation of an ECO.
  • the spare wiring structures may also increase the accessibility between locations within the integrated circuit that do not necessarily include spare- resources. The increased accessibility decreases the impact of ECOs on the physical implementation of an integrated circuit design, therefore resulting in less complex ECOs that are faster to implement and require fewer photomask changes.
  • the spare wiring structures can be incorporated into the physical design of an integrated circuit without the need to alter the implementation of the original circuit design. Improvement in the integrated circuit resulting from the embodiments can be measured using several metrics. One such metric is the increase in the number of feasible ECOs attributed to the inclusion of the spare wiring structures of the architecture. Embodiments of the architecture including spare wiring structures increase the number of feasible ECOs of a given integrated circuit design incorporating the embodiments.
  • a second metric is the reduction in the number of modified photomasks when performing a set of ECOs for a given integrated circuit design that incorporates embodiments of the architecture including spare wiring structures.
  • Embodiments of the architecture including spare wiring structures reduce the number of photomasks that must be modified when performing a set of ECOs for a given integrated circuit design incorporating the embodiments.
  • a third metric is the reduction of engineering time and effort required to perform a set of ECOs for a given integrated circuit design that incorporates embodiments of the architecture including spare wiring structures.
  • Embodiments of the architecture including spare wiring structures reduces the engineering time and effort required when performing a set of ECOs for a given integrated circuit design incorporating the embodiments.
  • the improvement can be attributed to the reduced impact of ECOs on the physical design of the integrated circuit due to the employment of the architecture including the spare wiring structures.
  • the impact of an ECO can be determined by the extent to which the physical design of an integrated circuit must be modified in order to complete the ECO.
  • the impact of an ECO may be reduced using embodiments of the architecture by systematically increasing the ability to connect previously separate locations in the physical design of an integrated circuit while requiring modification to fewer metal and via layers than would otherwise be required. This impact will likely be greater when there is a high degree of routing congestion (i.e., higher density of routing obstructions) near and in between the locations being connected, because higher congestion may require the routing path taken by the connecting wire to make use of a higher number of via and metal layers in order avoid obstructions.
  • the modification of fewer metal layers may be required using the embodiments of the architecture by facilitating two non-adjacent metal layers to be electrically connected during the completion of an ECO without having to modify the metal and via layers that reside between the metal layers being connected.
  • This may be achieved in some embodiments by inserting spare wiring structures into unused areas of the physical design. In other embodiments, this may be achieved by inserting spare wiring structures before non-spare cells are placed or before non-spare wires is inserted, thus possibly influencing the placement of non-spare cells and the routing of non-spare wires.
  • These spare wiring structures may be utilized when performing an ECO to form one or more complete paths between two or more elements within the circuit design by modifying one or more photomasks.
  • the modification of the photomasks would change the original electrical connections in the metal layers to use one or more spare wiring structures as part of the electrical connections between two or more elements within the circuit design.
  • the spare wiring structures include one or more of, but are not limited to, the following types:
  • These structures include one or more of spare metal wires and spare vias, and are not electrically connected to the surrounding circuit design in an original circuit design before any engineering changes, but rather are only connected to the surrounding circuit design when used to perform an ECO.
  • the spare metal wires used to implement a spare wiring structure may include as few as one or as many as all metal layers in the integrated circuit design.
  • the spare vias used to implement a spare wiring structure may include as few as one or as many as all via layers in the integrated circuit design.
  • Spare-routes are used for interconnect (e.g., connections between two or more elements of an integrated circuit design) when performing an ECO and at a minimum include a wire constructed using a single metal layer, and may include a wire that spans up to all metal and via layers of the integrated circuit design. Spare-routes may start or end in close proximity to spare-cell input or output pins, spare-cell input or output pin extensions, to another spare-route, or to one or more circuit elements of the physical circuit design. Spare-routes may be generally horizontally-oriented to run within the metal layers of the integrated circuit design from one area of an integrated circuit design to another area of the integrated circuit design.
  • one or both ends of a spare-route are connected to a spare-stack, which is a wire that spans as many metal and via layers as possible within a prescribed footprint, as shown in FIG. 2, where the footprint is the area contained within the X and Y dimensions.
  • Spare-stacks may be generally vertically-oriented to run between an upper metal layer and a lower metal layer within a single localized area of the integrated circuit design. Spare-stacks may be used as connection points between adjacent spare-routes, spare-cell inputs or outputs and spare-routes, or spare-routes and circuit elements of the surrounding physical design of an integrated circuit.
  • every spare-cell input and output is connected to either a spare-stack or a pin extension in order to provide connectivity on as many metal layers as possible.
  • spare-stacks may be left unconnected, herein referred to as “floating spare-stacks" (FSS).
  • a spare-junction exists where two or more spare-routes start or end within sufficient proximity of one another to facilitate the formation of a connection between the spare-routes by modifying no more than a predefined maximum number of photomasks.
  • this predefined maximum number of photomasks is one, but the predefined maximum number of photomasks may be two, three, four, five, six, or more, in various other embodiments.
  • spare wiring structures are inserted into the physical design of an integrated circuit in order to provide increased accessibility between a spare-cell and one or more other circuit elements at a given location or locations of interest in the integrated circuit.
  • the spare wiring structures may also be inserted in order to provide alternative paths between other circuit elements in the integrated circuit that can be utilized when performing an ECO.
  • the location or locations of interest of the one or more other circuit elements may be identified according to a plurality of methods, including but not limited to a predicted utility of providing a connection to a spare-cell for the purpose of performing an ECO. These locations are herein referred to as "Access-Locations" (ALs).
  • a spare-route originating from within the vicinity of a spare-cell input or output may end in the vicinity of one or more other spare-routes, which in turn may end in the vicinity of additional spare-routes that eventually terminate at an access-location.
  • ALs may include spare-cells pin locations.
  • Spare-stacks may additionally be left unconnected as "floating spare-stacks" (FSS), and placed at one or more pre-selected regions of the physical design of the integrated circuit as determined by one of either a designer using a computer-aided design (CAD) software tool or environment, or the CAD software environment.
  • CAD computer-aided design
  • floating spare-stacks may be used to achieve a further increase in the accessibility of spare-cells within an integrated circuit by increasing the number of potential connection points to an access-location through a reduction in the number of photomasks that would otherwise require a modification in order to construct the connection.
  • one or more complete paths are constructed between two or more different locations of the physical circuit design, where one or more of the locations may include a spare-cell input or output.
  • a complete path may traverse several or all available metal layers, and the entire path is constructed at the time the ECO is performed.
  • one or more segments of the complete path of a potential future ECO are proactively inserted into the physical implementation of the original design in order to reduce the number of photomasks that must be modified when the future ECO is performed.
  • the segments are implemented as spare-routes, and a complete path may consist of one or more of the following connection types:
  • connection types A and B can be constructed by only modifying the photomask used to fabricate a single metal layer.
  • the choice of metal layer that is used to construct the connection may be limited to a single specific metal layer or may include all metal layers used in the physical design.
  • the number of metal layers that can be independently used to construct the connection is determined by the presence or absence of routing obstructions between adjacent spare-stacks on each metal layer.
  • Such connections may also be formed between a spare-cell input or output and either a spare-route or a spare-stack between which there is an absence of routing obstructions on at least one metal layer.
  • Such connections may additionally be formed between adjacent spare-routes between which there is an absence of routing obstructions on at least one metal layer.
  • connection types may require the modification of more than one metal layer depending upon the physical circuit design and one or more of the topology and placement of the spare wiring structures.
  • the proximity of spare wiring structures e.g., spare-routes and spare- stacks
  • this proximity may be measured in terms of minimum line widths of a fabrication technology, such as 100 nm, 45 nm, 32 nm, 22 nm, or other line widths of different fabrication technologies in which the integrated circuit design may be fabricated.
  • the proximity may be sufficient if it is one, two, three, four, five, or more line widths and there are no lines or vias that obstruct routing within a single metal layer.
  • This proximity may also be measured in terms of nanometers, where the relationship between nanometers and line widths is defined by the fabrication technology in which the integrated circuit design is to be fabricated.
  • a signal regenerator, buffer component, or a dummy load is inserted in a spare-route at some point in the complete path in order for the route to meet timing requirements of a design in the event the spare-route is used to perform an ECO.
  • a spare wiring structure is used strictly to decrease or increase the length of a connection between two parts of the active design to meet timing requirements.
  • FIG. 1 is a schematic diagram that illustrates spare wiring structures employed in the vicinity of a spare-cell 125 in an integrated circuit design, according to an embodiment.
  • spare-stacks 105 are inserted at access-locations that are in close proximity to the input and output pins 135 of the spare-cell 125.
  • Spare-routes 130 connect predetermined areas known as "access- locations" (ALs). These access-locations can be located in close proximity to a spare-cell 125 or to locations 1 10 that have been determined to be points of interest due to some perceived or calculated utility of providing access to these locations from other integrated circuit design elements or from spare-cells 125.
  • As access- locations
  • a spare-route 130 includes a spare-stack 105 on one or both ends of the spare-route 130. In other embodiments, a spare-route 130 may terminate on either end without a spare-stack 105 attached thereto. Each access- location 1 10 may also include a spare-stack 105 or a spare-junction 120. A single spare-route 130 may connect to one of several other spare-routes 130 by means of a spare-junction 120, which provides the ability to connect adjacent spare-routes 130 through the modification of a single interconnection layer between two spare- stacks 105 that are connected to the spare-routes 130.
  • Additional floating spare- stacks 1 15 may be inserted in the vicinity of an access-location 1 10 in order to increase the number of potential circuit locations that can possibly be connected to the relevant spare-route 130.
  • floating spare-stacks 1 15 are completely unconnected electrically from both the circuit design and other spare wiring structures when they are inserted into the physical design of the integrated circuit, and are therefore known are "floating spare-stacks".
  • FIG. 2 is a perspective diagram that illustrates a spare-stack 105, a type of spare wiring structure, in a physical design of an integrated circuit, according to an embodiment.
  • FIG. 2 illustrates a conceptual view of one exemplary configuration of the spare-stack 105 using more than two horizontal interconnect layers 210.
  • the spare-stack 105 includes six horizontal interconnect layers 210 (M1 - M6), which may be metallic, and five vertical interconnect access (VIA) layers 215 (V1 - V5), each of which is disposed between two adjacent horizontal interconnect layers. While the embodiments are described herein as using metal for the interconnect material in the horizontal interconnect layers, this should not be construed as limiting.
  • the horizontal or vertical interconnect material may comprise other electrically conductive materials, e.g., non-metallic electrically conductive materials.
  • a "wire" as disclosed herein may be either metallic or comprise a non-metallic conductive material.
  • the horizontal interconnect 220 and vias 230 are joined together in order to construct a single wire that spans as many horizontal interconnect layers 210 and via layers 215 as possible within a prescribed footprint 250.
  • the prescribed footprint 250 is shown in FIG. 2 as the two-dimensional area of dimensions X and Y. This prescribed footprint 250 forms a plane that is parallel to the fabrication layers of the integrated circuit, e.g., the semiconductor substrate.
  • the prescribed footprint 250 may be restricted to a maximum area, which may be as large as the area occupied by the entire physical design of the integrated circuit, or may be as small as the area occupied by a single via 230 of minimum size connected to two horizontal interconnects 220 also of minimum size (e.g., minimum line width), where the interconnect layers 210 and via layers 215 are selected as those having the smallest allowable dimensions among the set of possible interconnect layers 210 (M1 - M6) and via layers 215 (V1 - V5) for the fabrication process that is employed.
  • the prescribed footprint 250 may be one, two, three, four, five, or more minimum line widths of the fabrication technology in which the integrated circuit is to be fabricated.
  • the minimum line width of an interconnect 220 may depend upon which horizontal interconnect layer 210 the interconnect 220 is positioned.
  • the prescribed footprint 250 may be equal to or greater than one, two, three, four, five, or more times the largest per-horizontal-interconnect-layer minimum line width of the horizontal interconnect layers 210 spanned by the spare- stack 105.
  • each dimension (i.e., X and Y) of the prescribed footprint 250 may have at least one of a prescribed maximum value and a prescribed minimum value, and these values for one dimension may not equal the values for the other dimension.
  • the prescribed footprint 250 combined with the number of contiguous interconnect layers 210 and via layers 215 defines a spare-stack region 240.
  • the spare-stack region 240 includes all the interconnects 220 and vias 230 that may be electrically connected to form a wire across one or more interconnect layers 210 that may be used to implement an ECO using the spare-stack 105.
  • the height or thickness of the spare-stack region 240 may be computed as the thickness of a horizontal interconnect layer 210 times the number of horizontal interconnect layers 210 included in the spare-stack region 240, plus the height of a via layer 215 times the number of via layers 215 included in the spare-stack region 240.
  • the height or thickness of the spare-stack region 240 may also be specified as the number of horizontal interconnect layers 210 and via layers 215 included in the spare-stack region 240.
  • the spare-stack 105 may be configured with offset vias 230 and interconnects 220 within the spare-stack region 240 as illustrated so that vias 230 are not placed directly over one another.
  • By offsetting the vias 230 a portion of a spare-stack 105 that remains unused after an ECO (e.g., is not connected to an active circuit of the integrated circuit design after the ECO is completed) remains available to be used in a future ECO. Offsetting the vias 230 makes it more efficient to disconnect an upper portion of the spare-stack 105 from a lower portion of the spare stack 105.
  • the spare-stack 1 05 is connected to VDD or VSS (or power or ground) through a tie-cell, then the electrical connection between a signal path and VSSA/DD can be broken while still ensuring that the via 230 closest to the disconnection point of the spare-stack 105 has enough metal or interconnect material surrounding it in order to meet design rule checking (DRC) rules of the manufacturing process in which the integrated circuit is to be fabricated.
  • DRC design rule checking
  • no interconnect of an original integrated circuit design may pass through a spare-stack region 240, reserving the spare-stack region 240 for use in performing an ECO, for example when the spare-stack region 240 includes a floating spare stack.
  • the spare-stack region 240 may include one or more interconnects of an original integrated circuit design, while the interconnects 220 and vias 230 of the spare-stack 105 are layed out and interconnected with one another within the spare-stack region 240 to navigate around the one or more interconnects of the original integrated circuit design.
  • an original integrated circuit design including embodiments of the architecture of spare wiring structures may achieve higher density by placing spare-stacks 105 in areas where there are no minimum line width prescribed footprints 250 that are open without interconnects through all interconnect layers 210 and via layers 215, or a sufficient number of interconnect layers 210 and via layers 215 to meet the objectives of placing a wire across multiple interconnect layers 210 and via layers 215 to connect a spare-route 130 or spare-cell 125 when performing an ECO.
  • each interconnect layer 210 within the spare-stack region 240 includes an interconnect 220.
  • the interconnect 220 may be generally oriented to run along the X dimension across the full X dimension width of the prescribed footprint 250, and may have a minimum line width.
  • the interconnect 220 may be generally oriented to run along the Y dimension across the full Y dimension width of the prescribed footprint 250, and may have a minimum line width.
  • the X and Y dimensions of the prescribed footprint 250 may be determined according to the longest interconnect 220 running along the X dimension and the longest interconnect 220 running along the Y dimension in one or more interconnect layers 210 of the spare-stack region 240.
  • each horizontal interconnect layer 210 there may be a different footprint on each horizontal interconnect layer 210, and the footprint of each horizontal interconnect layer 210 may be offset from one another.
  • FIG. 3 is a perspective diagram that illustrates a section of an integrated circuit layout 300 containing spare wiring structures, according to an embodiment.
  • the spare wiring structures may include metallic materials or non-metallic electrically conductive materials.
  • spare-stacks 310, 320, 330, 340, 350, and 360 each span six interconnect layers and five via layers. While all of the spare-stacks 310, 320, 330, 340, 350, and 360 in the example embodiment are illustrated as strictly vertically-oriented, spare-stacks are not required to be strictly vertical structures, and in various embodiments include two or more via layers that do not align vertically when fabricated, as illustrated in FIG. 2.
  • a characteristic feature of a spare-stack may be that it spans as many interconnect layers as possible while adhering to a footprint constraint in order to provide connectivity to a spare-route on as many interconnect layers as possible.
  • this footprint is a fixed constraint.
  • the size of the footprint is determined by the user-defined input, design constraints, logical design-characteristics, and physical design-characteristics.
  • the footprint constraint varies depending on its location in the design and the run-time progress of the algorithm.
  • spare-stacks may be strictly vertical and may span all interconnect layers; however, due to routing obstructions, it may not always be possible to construct a strictly vertical spare-stack, nor may it be possible to construct a spare-stack that spans all interconnect layers, while achieving interconnect goals of the integrated circuit's physical design.
  • the structure of an individual spare-stack is selected from a library of predefined stack structures or cells.
  • a method that performs a routing algorithm is used to construct the spare-stack such that the desired vertical span is achieved while adhering to the footprint constraint and avoiding routing obstructions.
  • all horizontal interconnect layers and via layers of the spare-stack must reside within a prescribed area in a fixed location for all layers. This is called a fixed-area footprint constraint.
  • all routing resources used to construct the spare-stack must reside within a prescribed area, however the location of the prescribed area can change from layer to layer. This is called a floating-area footprint constraint.
  • spare-stacks are constructed in conjunction with or in close proximity with each other in order to construct a spare-junction.
  • all spare-stacks are constructed using the same fixed-area footprint constraint.
  • all spare-stacks are constructed using the same floating-area constraint.
  • a proximity-template is used on one or more interconnect layers. This proximity-template is used to force the route of each spare-stack in the spare-junction to pass through specific locations defined by the template. The outcome of using this constraint may be that all spare-stacks included in the spare-junction are forced to reside in close proximity to each other for each layer in which the template is applied.
  • a proximity template may include one or more predefined cells containing a fixed arrangement of one or more of metal wire segments or metal pins on one or more routing layers.
  • the components of the spare-stack that reside on metal layers extend beyond their minimum required size in order to help facilitate dividing or disconnecting a portion of the spare-stack from one or more spare-routes when making ECO metal-layer changes and disconnecting from tie- cells or VSSA/DD nets when required by the manufacturing technology.
  • Specific embodiments of a spare-stack in the physical design of an integrated circuit may vary depending upon one or more of the insertion location within the circuit layout, design constraints, user input, logic-design characteristics, and physical-design characteristics. It may also depend on the user-defined constraints, logical design-constraints, and physical design-constraints.
  • each spare-stack 310, 320, 330, 340, 350, and 360 is connected to at least one spare-route 305, 325, 335, 355, and 365, while some spare-stacks 310, 320, 340, 350 are also connected to an interconnect layer route 315, 345 that is used to connect two spare-stacks for the purpose of connecting two spare-routes.
  • the group of spare-stacks 310, 320, and 330 may be considered a spare-junction 370, while the group of spare-stacks 340, 350, and 360 may be considered a spare-junction 380.
  • Spare-routes may remain unconnected in an initial design of an integrated circuit layout, and later be connected when performing an ECO.
  • FIG. 4 is a schematic diagram that illustrates spare wiring structures that are inserted into the layout of an example integrated circuit design according to the predicted utility of providing connectivity to a spare-cell at various locations of the integrated circuit layout, according to an embodiment.
  • the access-locations (ALs) 105, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 450, 452, 454, 456, 458, 460, 462, 464, and 466 are not arranged according to a pattern, and therefore the access-location density may vary significantly from one region of the integrated circuit layout to another.
  • a spare-junction has been inserted at each of the access-locations 450, 452, 454, 456, 458, 460, 462, 464, and 466.
  • the spare-junctions at access-locations 450, 452, 454, 456, 458, 460, 462, 464, and 466 are arranged to provide increased access between neighboring access- locations and spare-routes that connect to the spare-cell 125.
  • Spare-routes and floating spare-stacks are inserted at access-locations 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, and 444 in order to provide increased access between circuit elements and either spare- cells or other points of interest within the physical design of the integrated circuit.
  • FIG. 5 is a schematic diagram that illustrates an example integrated circuit layout 500 in which spare wiring structures have been inserted by a user or CAD program according to a pattern, according to an embodiment.
  • the inserted spare-junctions 510 and access-locations 520 are implemented using the same spare-stacks 105 due to the choice of topology of that has been employed.
  • Such a topology provides a uniform density of access-locations 520 throughout the example integrated circuit layout 500.
  • FIGS. 6A and 6B are schematic diagrams that illustrate an example change in logic connections due to an engineering change order of an integrated circuit design.
  • a logic block A 630 is connected to a first block 610 through interconnect 680 and a second block 620 through interconnect 690
  • a logic block B 640 is connected to the first block 610 through interconnect 670 and the second block 620 through interconnect 660.
  • the first block 610 and the second block 620 each represent a block of logic implemented in an integrated circuit design.
  • the logic block A 630 and the logic block B 640 also each represent a block of logic implemented in an integrated circuit design.
  • a spare block 650 includes logic circuitry that may be used to supplement or replace existing logic circuitry in an integrated circuit design when performing an engineering change of the integrated circuit design.
  • an engineering change order may be performed by replacing logic block A 630 with spare block 650.
  • the engineering change order would disconnect interconnect 680 and 690 from logic block A 630, replace the interconnect 680 with interconnect 685 between the first block 610 and the spare block 650, and replace the interconnect 690 with interconnect 695 from the second block 620 to the spare block 650 as illustrated in FIG. 6B.
  • FIGS. 7A and 7B are schematic diagrams that illustrate a conventional method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B.
  • a high congestion area of interconnect exists in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design.
  • the area may be considered high congestion because the area includes a greater number of electrically active interconnects between active electronic circuit elements per unit area than an average number of electrically active interconnects in the overall integrated circuit.
  • the area may be considered high congestion when the number is at least 10% greater, at least 20% greater, at least 30% greater, at least 40% greater, at least 50% greater, or other measureable and noticeable amount as would be recognized by one of ordinary skill in the art.
  • an area of the integrated circuit may be considered low congestion when the area includes a fewer number of electrically active interconnects between active electronic circuit elements per unit area than an average number of electrically active interconnects in the overall integrated circuit.
  • the area may be considered low congestion when the number is at least 10% fewer, at least 20% fewer, at least 30% fewer, at least 40% fewer, at least 50% fewer, or other measureable and noticeable amount as would be recognized by one of ordinary skill in the art.
  • FIGS. 8A and 8B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks 810 and 820, according to an embodiment.
  • a high congestion area of interconnect exists in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design.
  • interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650, interconnect 685 is made to go around the high congestion area on interconnect layer 9 between the spare- stack 810 and the spare-stack 820.
  • the spare-stacks 810 and 820 may be embodiments of the spare-stack 105 illustrated in FIG. 2 or the spare-stacks 310, 320, 330, 340, 350, and 360 illustrated in FIG. 3.
  • the spare-stack 810 is split into a connected upper spare-stack 812 and an unused lower spare-stack 814, while the spare stack 820 is split into a connected upper spare-stack 822 and an unused lower spare-stack 824, by changing the interconnect within the spare-stacks 810 and 820 on interconnect layer 5.
  • interconnect 680 that passes through interconnect layer 5 is rerouted to attach to the upper spare stack 812 rather than the rest of the former interconnect 680 that connected to the logic block A 630 in FIG. 8A (now referred to as unused interconnect 680' in FIG. 8B).
  • an unused interconnect connected to spare block 650 is connected to the connected spare stack 822 on interconnect layer 5 to form the rest of the interconnect 685.
  • New interconnect 695 between the second block 620 and the spare block 650 is formed by disconnecting the interconnect 690 at interconnect layer 5 and connecting the portion of the prior interconnect 690 between the second block 620 and interconnect layer 5 with a previously unused interconnect connected to the spare block 650 at interconnect layer 5 to form new interconnect 695 between the second block 620 and the spare block 650.
  • the now disconnected interconnect 690 of FIG. 8A is shown as unused interconnect 690' in FIG. 8B.
  • the spare-stacks 810 and 820 of the architecture of spare wiring structures disclosed herein only two interconnect layers (5, 9) need to be revised in order to accomplish the engineering change of FIGS.
  • unused interconnect or wire is shown in dashed lines attached to the spare block 650 in FIG. 8A, and to disconnected logic block A 630 in FIG. 8B. Note that where an interconnect is shown passing through but not terminating at a spare-stack, the interconnect is not electrically connected with the spare-stack.
  • FIGS. 9A and 9B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks 910 and 920 and a spare-route 930, according to an embodiment.
  • the spare- stacks 910 and 920 may be embodiments of the spare-stack 105 illustrated in FIG. 2 or the spare-stacks 310, 320, 330, 340, 350, and 360 illustrated in FIG. 3, and the spare-route 930 may be an embodiment of the spare-routes 305, 325, 335, 355, and 365 illustrated in FIG. 3.
  • a high congestion area of interconnect exists in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design.
  • interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650, interconnect 685 is able to go through the high congestion area on spare-route 930 between the spare-stack 910 and the spare- stack 920.
  • the unused spare-route 930 had been placed in the original integrated circuit design shown in FIG. 9A as part of an embodiment of the architecture of spare wiring structures discussed herein.
  • the spare-stack 910 is split into a connected lower spare-stack 912 and an unused upper spare-stack 914, while the spare stack 920 is split into a connected upper spare-stack 922 and an unused lower spare-stack 924, by changing the interconnect within the spare-stacks 910 and 920 on interconnect layer 5.
  • interconnect 680 that passes through interconnect layer 5 is rerouted to attach to the lower spare stack 912 rather than the rest of the former interconnect 680 that connected to the logic block A 630 in FIG. 9A (now referred to as unused interconnect 680' in FIG. 9B).
  • an unused interconnect connected to spare block 650 is connected to the connected spare stack 922 on interconnect layer 5 to form the rest of the interconnect 685.
  • New interconnect 695 between the second block 620 and the spare block 650 is formed by disconnecting the interconnect 690 at interconnect layer 5 and connecting the portion of the prior interconnect 690 between the second block 620 and interconnect layer 5 with a previously unused interconnect connected to the spare block 650 at interconnect layer 5 to form new interconnect 695 between the second block 620 and the spare block 650.
  • the now disconnected interconnect 690 of FIG. 9A is shown as unused interconnect 690' in FIG. 9B.
  • spare-stacks 910 and 920 and the spare-route 930 provide already existing but unused paths between the different interconnect layers and different regions of the integrated circuit footprint that are utilized to create the new interconnect 685 in the engineering change to produce the circuit design shown in FIG. 9B.
  • unused interconnect or wire is shown in dashed lines attached to the spare block 650 in FIG. 9A, and to disconnected logic block A 630 in FIG. 9B. Note that where an interconnect is shown passing through but not terminating at a spare-stack, the interconnect is not electrically connected with the spare-stack.
  • the architecture of spare wiring structures described herein minimize a number of photomasks that need to be changed during the engineering change order compared to prior methods.
  • FIG. 10 is a flow diagram that illustrates a design flow for an integrated circuit including post-placement insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment.
  • FIG. 10 merely represents one embodiment, and should not be construed as limiting, as the design flow may be modified or supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein.
  • circuit synthesis 1005 is performed using a computer- aided design (CAD) tool for circuit synthesis.
  • the circuit synthesis 1005 takes as an input a register transfer logic (RTL) representation of a circuit design file 1010, and outputs a netlist file 1020.
  • RTL register transfer logic
  • placement 1015 of circuit elements onto a physical layout of an integrated circuit design is performed using a CAD tool for placement. Placement 1015 takes as an input the netlist file 1020 and outputs a placed design (DEF) file 1030.
  • DEF placed design
  • spare wiring insertion 1025 is performed to insert spare wiring structures into the placed design (DEF) file 1030 according to the architecture of spare wiring structures disclosed herein.
  • the spare wiring insertion 1025 may be performed by a CAD tool including modules executable by a processor to take as input a DEF 1030 and insert spare wiring structures according to the architecture of spare wiring structures disclosed herein.
  • the spare wire insertion 1025 outputs an engineering change order (ECO)-ready layout (DEF) file 1040.
  • the ECO-ready DEF 1040 may reduce or minimize a number of photomasks that need to be revised when making an ECO compared to prior methods of design-for-repair, or may produce a better performing or more reliable integrated circuit after the ECO than layouts produced by prior methods of design-for-repair.
  • sufficient repairability is a determination of whether or not a predefined threshold has been met for accessibility of the active design to inserted spare-resources while meeting the design constraints and also minimizing or meeting a threshold for the number of photomask layers that require modification in order to access the inserted spare-resources.
  • the relative weighting of importance of parts of the design with respect to measuring repairability may be a function of at least one design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare- resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, behavioral intent, active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, minimum transistor gate width, and physical design constraints.
  • routing 1045 is performed using the ECO-ready DEF 1040 and a finalized layout (DEF) file 1060 is output.
  • the routing 1045 may be performing using a CAD tool. After routing 1045 is performed, it is determined whether the design is routable or not in a decision block 1050. If the design represented in the ECO-ready DEF 1040 is determined to not be routable after performing routing 1045, then the design flow returns to spare wire insertion 1025. In the second and each subsequent attempt at spare wiring insertion 1025, different options and choices may be made to insert spare wiring structures into the integrated circuit design represented by the placed DEF 1030 according to the architecture of spare wiring structures disclosed herein.
  • timing/power signoff 1055 is performed using the finalized DEF 1060 produced by routing 1045.
  • physical verification 1065 is performed.
  • CAD tools may be used to perform one or both of the timing/power signoff 1055 and physical verification 1065.
  • standard delay format (SDF) simulation 1070 is performed using a CAD tool.
  • the output of the SDF simulation 1070 is a GDSII file 1076.
  • the GDSII file 1076 represents a completed integrated circuit design layout according to an industry standard, but this should not be construed as limiting, as other file formats may be used instead to represent the completed integrated circuit design layout.
  • FIG. 1 1 is a flow diagram that illustrates a design flow for an integrated circuit including post-place and route insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment.
  • FIG. 1 1 merely represents one embodiment, and should not be construed as limiting, as the design flow may be modified and supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein.
  • the design flow illustrated in FIG. 1 1 includes elements already discussed with reference to the design flow illustrated in FIG. 10, and therefore the same reference characters have been used for the same elements that appear in both figures and descriptions for elements already discussed are not repeated below. Differences between FIG. 10 and FIG. 1 1 are primarily described below.
  • routing 1 145 is performed in the physical design phase after placement 1015 is performed.
  • the routing 1 145 outputs a layout (DEF) file 1 130.
  • the layout (DEF) file 1 130 is used as an input to the spare wire insertion 1 125 process.
  • the design-for-repair phase is situated between two different segments of the physical design phase.
  • the design-for-repair phase is situated between the complete physical design phase and the signoff phase.
  • the benefit of the post- place and route insertion of spare wiring structure design flow is that iterations of both spare wire insertions and routing followed by analysis to determine whether the design including the spare wiring structures is routable need not be performed, unlike in the post-placement insertion of spare wiring structure design flow.
  • the benefit of the post-placement insertion of spare wiring structure design flow is that since the spare wiring structures are inserted into the design prior to routing, a more efficient routing that takes into account both the architecture of spare wiring structures and the integrated circuit design may be achieved.
  • FIG. 12 is a flow diagram that illustrates a design flow for an integrated circuit including insertion of spare wiring for an architecture of spare wiring structures integrated with place and route of active electronic circuits, according to an embodiment.
  • FIG. 12 merely represents one embodiment, and should not be construed as limiting, as the design flow may be modified and supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein.
  • the design flow illustrated in FIG. 12 includes elements already discussed with reference to the design flow illustrated in FIG. 10, and therefore the same reference characters have been used for the same elements that appear in both figures and descriptions for elements already discussed are not repeated below. Differences between FIG. 10 and FIG. 12 are primarily described below.
  • FIG. 12 represents a third embodiment in which part or all of the spare resource (e.g., spare wiring structures, spare cells, etc.) insertion method is integrated within the placement and routing stages for the active electronic circuit design.
  • One or more of access-location insertion (e.g., spare-stack insertion) and spare-route insertion may be integrated with the conventional place and route stages of integrated circuit electronic design automation.
  • access- location insertion may be integrated with the conventional placement stage by first designating spare-stacks as placeable objects for the placement tool and then using the placement tool to place the spare-stacks at the same time active cells (e.g., active eletronic circuits) are placed.
  • Spare-route insertion may be integrated with the conventional routing stage by first designating the intended spare-route as a routable wire in the design specification and then using the routing tool to route the spare-routesat the same time active wires are routed.
  • the physical design and design-for-repair phases have been integrated together within a single physical design with integrated spare wiring structure insertion phase.
  • spare-stacks are also inserted in the physical design in step 1220.
  • the placement 1215 receives the netlist 1020 as is also the case in FIG. 10.
  • the placement 1215 outputs a placed design (DEF) 1230 which is input to the next step in the design flow, routing 1245.
  • DEF placed design
  • the routing 1245 of active electronic circuit elements and interconnects is integrated with spare-route insertion 1235. Following routing 1245, it is determined whether the design is routable or not in a decision block 1250. If the design represented in the placed design (DEF) 1230 in combination with the spare-route insertion 1235 is determined to not be routable after performing routing 1245, then the design flow returns to routing 1245. In the second and each subsequent attempt at routing 1245, different options and choices may be made to insert spare routes into the integrated circuit design represented by the placed design (DEF) 1230 according to the architecture of spare wiring structures disclosed herein. In alternative embodiments, the method may return to placement 1215 instead of routing 1245, possibly depending upon how many routing failures occur.
  • the output of routing 1245, finalized layout (DEF) 1260 is input to the signoff phase as discussed previously with respect to FIG. 10. The output of the signoff phase is a GDSII file 1275 representing the complete completed integrated circuit design layout.
  • FIGS. 13A and 13B are a flow diagram that illustrates a method 1300 of inserting spare wiring structures in an integrated circuit design, according to an embodiment.
  • FIGS. 13A and 13B represent a single embodiment of the method 1300, with reference characters (A) and (B) enclosed in circles representing a flow of the method 1300 from FIG. 13A to FIG. 13B and vice-versa.
  • FIGS. 13A and 1 3B illustrations of an exemplary integrated circuit layout resulting from each stage of the method 1300, as indicated by dashed arrows, is shown.
  • stages of the embodiment are shown in a particular order, this should not be construed as limiting, as in various embodiments, the stages included in the method 1300 and the order of stages may be modified or supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein.
  • spare-cell and design-cell placement 1302 is performed.
  • a CAD tool may be used to perform the placement.
  • An integrated circuit layout 1304 is produced as an output of the placement 1302. Illustrated as black rectangles, spare-cells 1306 may be sprinkled throughout the integrated circuit layout 1304. Following the placement 1302, if a post-place and route insertion of spare wiring structure design flow is being performed, routing 1308 is performed.
  • access-location-structure (ALS) insertion 1310 is performed in the access-location-structure (ALS) insertion stage.
  • Access-location-structure insertion 1310 inserts access-location-structures 1314 near spare-cells to improve access to spare resources, e.g., spare-cells 1306.
  • spare-cells 1306 Improved access to spare resources facilitates ECOs having a reduced number of photomask revisions or improved performance of the circuit following the ECO compared to conventional approaches to design for repair.
  • a CAD tool may be used to perform the access- location-structure insertion 1310.
  • An integrated circuit layout 1312 is produced as an output of the access-location-structure insertion 1310.
  • access-location-structures 1314 may be sprinkled throughout the integrated circuit layout 1312 near the spare-cells 1306.
  • spare-cell access-location-structures are inserted independent of the placement of active cells while in other embodiments spare-cell access-location-structures are inserted at the same time active cells are placed during an integrated placement stage.
  • the object as required for placement by the other placement method c. Specify to the placement method or enforce by some mechanism that the ALS and s be placed in close proximity to each other.
  • a mechanism to enforce that ALS and s be placed in close proximity is a direct physical connection such as a wire.
  • the wire would be removed after placement is complete.
  • this wire may be connected to the circuit in such a way that it minimizes the impact to the active circuit such as by connecting the wire to scan chain circuitry close to s in the netlist.
  • the wire connection between the ALS and s is specified in the netlist while an electrical disconnection between the ALS and s exists in the physical design.
  • the inserted cell may consist solely of two pins that are physically isolated in order to achieve an open-circuit function.
  • a constraint such as a timing constraint may be used to ensure that the placement method places an ALS in the vicinity of s.
  • the proximity between the ALS and s can be reduced by specifying to the placement method that an increased effort should be made to reduce the length of the wire between ALS and s.
  • the proximity between the ALS and s can be limited by specifying that ALS and s belong to either a fixed or floating bounding box constraint. For a fixed bounding box constraint, the ALS and s must be placed within a bounding box that itself has a fixed location in the physical design. For a floating bounding box constraint, the ALS and s must be placed within a bounding box that itself can be placed at any location in the physical design.
  • access-location-structure architectures may include one or more fixed vertical spare-stacks and routed vertical spare-stacks. Some arrangements may include junction architectures to maximize routing connectivity. Determination of the A is dependent on one or more of the local and/or global design characteristics and constraints of the integrated circuit design, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • Possible logical design characteristics include various measures of circuit centrality, timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing ECOs, the importance of the various functions of the integrated circuit to the end user, and behavioral intent as specified in specifications of the design at higher levels of abstraction.
  • the logical design characteristics may be considered at a regional level within the logic design of the integrated circuit or for the entirety of the logic design of the integrated circuit.
  • demand is determined by local and/or global design characteristics, including but not limited to logic complexity, logic structure, logic composition (combinational, sequential), logic status (new, legacy, etc.), and logic test coverage.
  • Possible physical design characteristics include active interconnect congestion, estimated supply of spare-resources, timing information, circuit power information, active interconnect design information, and minimum transistor gate width or line width.
  • the physical design characteristics may be considered at a regional level within the physical design of the integrated circuit or for the entirety of the physical design of the integrated circuit.
  • Centrality of a circuit element in the circuit design may be a combination of two or more measures of circuit centrality based on centrality measures as found in graph-theory and network-theory. Examples of such centrality measures include Degree centrality, Closeness centrality, Eigenvalue centrality, Betweenness centrality, Katz centrality, Percolation centrality, and Cross- Clique Centrality.
  • Behavioral intent of a design includes the intended behavior of various parts of the integrated circuit as specified by a high-level behavioral description of the circuit using the behavioral specification features of languages such as VHDL, Verilog, SystemC, SystemVerilog, Matlab, C++, and Python.
  • VHDL Verilog
  • SystemC SystemVerilog
  • Matlab Matlab
  • C++ Python
  • the anticipated need for spare flip-flops in a part of the design may vary depending on whether or not the part of the design implements a state machine.
  • the relative risk of various parts of the integrated circuit can be specified by the user or by one or more measures such as the following: the relative test coverage of the part, its amenability to formal verification, the degree to which it has been subjected to formal verification, its amenability for functional verification, and the degree to which it has been subjected to functional verification.
  • Typical known design repair patterns include the expected ratio of sequential to combinational logic repairs that occurs in a typical design of the same overall size and nature.
  • line 1 (e) the number of attempts and the range of values for A, e, and ⁇ are determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but are not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • line 1 (e)(i) in one embodiment, fixed vertical spare- stacks can be inserted using a brute-force approach.
  • one embodiment for insertion includes a shortest-path route.
  • the shortest- path route can be implemented within the algorithm or by a third-party routing tool.
  • a secondary access-location-structure insertion 1316 may optionally be performed.
  • the secondary access-location-structure insertion 1316 places access-location- structures (ALS's) 1318 throughout the integrated circuit design according to a template 1320 or via an algorithm.
  • the access-location-structures 1318 are placed near circuit elements of the integrated circuit design, as opposed to near spare- cells 1306 as the access-location-structures 1314 are placed. Accordingly, the additional ALS's 1318 may provide increased accessibility to the integrated circuit design for use in performing ECOs by the secondary access-location-structures 1318 placed throughout the integrated circuit design.
  • a grid- directed overlay is used to insert the secondary access-location-structures.
  • additional access-location-structures are inserted by function- directed overlay that predicts improved utility and is based on the design function.
  • additional access-location-structures are inserted by integrating the placement of ALSs with the placement of active cells.
  • a mechanism to enforce that ALS and p be placed in close proximity to each other is a direct physical connection such as a wire.
  • the wire would be removed after placement is complete.
  • this wire may be connected to the circuit in such a way that it minimizes the impact to the active circuit such as by connecting the wire to scan circuitry close to p in the netlist.
  • the wire connection between the ALS and p is specified in the netlist while an electrical disconnection between the ALS and p exists in the physical design.
  • the inserted cell may consist solely of two pins that are physically isolated in order to achieve an open-circuit function.
  • a constraint such as a timing constraint may be used to ensure that the placement method places an ALS in the vicinity of p.
  • the proximity between the ALS and p can be reduced by specifying to the placement method that an increased effort should be made to reduce the length of the wire between ALS and p.
  • the proximity between the ALS and p can be limited by specifying that the ALS and p belong to either a fixed or floating bounding box constraint.
  • the ALS and p must be placed within a bounding box that itself has a fixed location in the physical design.
  • the ALS and p must be placed within a bounding box that itself can be placed at any location in the physical design.
  • both spare-cell access-location-structures and the secondary access-location-structures are both inserted via an integrated approach, both types of access-location-structures will be placed at the same time with the placement of active cells.
  • the following set of rules apply to the selection of which nodes P are selected from parts of the design deemed to have a higher need for repairability:
  • Selection of G is based on one or more of the local and/or global design characteristics and constraints, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • the granularity of the grid may differ for different regions of the grid based on one or more of the local design characteristics and constraints, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • line 2(a): ⁇ is determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but is not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • N max is determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but is not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • Access-location-structure architectures include one or more fixed vertical spare-stacks and routed vertical spare-stacks. Some arrangements include junction architectures to maximize routing connectivity. Determination of the A is dependent on one or more of the local and/or global design characteristics and constraints, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • line 2(d)(ii) The number of attempts and the range of values of e is determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but are not limited to logical design characteristics, physical design characteristics, and physical design constraints.
  • line 2(e)(ii)(1 ) In one embodiment, fixed vertical spare-stacks can be inserted using a brute-force approach.
  • one embodiment for insertion includes a shortest-path route. The shortest-path route can be implemented within the algorithm or by a third-party routing tool.
  • secondary access-location-structure insertion 1316 may insert access- location-structures 1318 throughout various locations in the integrated circuit design according to a template, e.g., the template 1320.
  • a template e.g., the template 1320.
  • Embodiments of the template 1320 may include a grid-of-points, a grid-of-regions with each region calling for a specific value or range of values for density of access-location- structures 1318.
  • Characteristics of the template 1320 may be determined according to characteristics of the integrated circuit design, the integrated circuit layout, and constraints placed upon either or both of the integrated circuit design and layout.
  • An integrated circuit layout 1322 is produced as an output of the secondary access-location-structure insertion 1316, including the access-location- structures 1318 illustrated near circuit elements of the integrated circuit design sprinkled in the integrated circuit design layout.
  • access-location designation 1310 and secondary access- location-structure insertion 1316 are illustrated as being performed in one order in FIG. 13A, this should not be construed as limiting, as in various embodiments, they may be performed in an opposite order. Regardless of which of the two aforementioned steps are performed first, the second of the two steps (1310 or 1316) may take into account the locations of the access-location-structures (1318 or 1314) inserted by the first of the two steps when determining where to insert its own access-location-structures (1314 or 1318). In this way, an access-location density constraint may be adhered to in the access-location designation stage of the insertion method 1300.
  • spare-routing insertion 1324 may optionally be performed.
  • a CAD tool may be used to perform the spare-routing insertion 1324.
  • An integrated circuit layout 1326 is produced as an output of the spare-routing insertion 1324.
  • Spare-routes 1328 may be inserted into the integrated circuit layout as disclosed herein and as illustrated in the exemplary integrated circuit layout 1326.
  • routing connections e.g., spare- routes 1328
  • neighboring access-location-structures e.g., ALS's 1314 and ALS's 1318
  • An algorithm may be used to insert these connections to improve routability while meeting user-defined constraints.
  • one such user-constraint is a maximum allowed wire-density.
  • a mesh generation algorithm based on Delaunay triangulation may be used determine connectivity. This approach constructs a grid of triangles with vertices defined by access-locations and edges defined by the spare-routing wires between access-locations. Edges are selectively removed from the mesh based on one or more of the maximum allowed density of edges in a region, the local and/or global design characteristics, the local and/or global layout characteristics, and the local and/or global design constraints.
  • grid restructuring 1330 may be performed.
  • a CAD tool may be used to perform the grid restructuring 1330.
  • a spare access-location-structure e.g., ALS 1314 or ALS 1318
  • spare-routing wire e.g., spare-route 1328
  • the grid of spare resources is modified.
  • the offending access-location-structure and/or spare-routing wire can be removed.
  • the grid restructuring 1330 may remove some spare-stacks (e.g., spare-stacks at ALS's 1314 or ALS's 1318) and some spare-routings 1328 as a result of failed tests during the sign-off stage, as the grid restructuring 1330 may be executed if a spare-routing or spare-stack problem is determined to exist in the signoff stage.
  • An integrated circuit layout 1332 is produced as an output of the grid restructuring 1330. As illustrated, the integrated circuit layout 1332 shows some changes in the spare-routing and spare-stacks compared to the integrated circuit layout 1326 due to the grid restructuring 1330.
  • wires are routed by a separate routing method or by a routing method.
  • routing of spare-wires can take place before the routing of active wires, after the routing of active wires, or at the same time as in the case of an integrated routing approach.
  • spare- wires and treated in the same way as active-wires and are thus routed at the same time are routed at the same time.
  • routing 1334 is performed in another layout stage. If routing 1334 is performed, then a determination is made based on the routing 1334 whether the integrated circuit design including the spare- cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328 is routable in step 1336. If it is not routable, the method 1300 returns to grid restructuring 1330 to restructure the integrated circuit design including the spare-cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328.
  • the method 1300 proceeds to the signoff stage. Timing/power, physical verification, and SDF simulation 1338 are first performed. In a step 1340, if a spare-routing or spare-stack problem is determined to exist after the timing/power, physical verification, and SDF simulation 1338 are performed, the method 1300 returns to grid restructuring 1330 to restructure the integrated circuit design including the spare-cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328.
  • a spare-cell problem is determined to exist after the timing/power, physical verification, and SDF simulation 1338 are performed, the method 1300 returns to spare-cell and design-cell placement 1302 in the initial layout stage. If no problems are detected, then the method 1300 finishes.
  • FIG. 14 is a block diagram that illustrates a method 1400 of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment.
  • a design layout description 1410, a design netlist description 1420, design constraints 1430, and timing information 1440 are accessed in a step 1450.
  • a set of access-location- structures are then determined and inserted into the layout description in a step 1460.
  • the access locations at which the access-location-structures are inserted are determined according to the design layout description 1410, a design netlist description 1420, design constraints 1430, and timing information 1440.
  • Initial locations are selected based on a design structure and topology such that various nodes and nets are weighted differently depending on a combination of one or more of their centrality, their influence on the rest of the design, their timing information, including but not limited to slack, and their influence on circuit state.
  • a subset of all connections between the access locations is determined based on a lowest-cost function derived from one more or more of the design netlist 1420, the design layout 1410, design constraints 1430, and timing information 1440 in a step 1470.
  • spare-routes are generated for all connections and inserted into the design layout description in a step 1480.
  • a path by which a connection is routed is determined manually by the user, while for other embodiments it is determined automatically or by a third party tool in the CAD environment.
  • a method for the insertion of spare wiring structures into the physical design of an integrated circuit may include the following steps:
  • a spare-component may include a spare-cell or spare-resource as discussed elsewhere herein.
  • a design access-site may include an access-location proximate to an active element of the circuit design, and a spare-component access-site may include an access-location proximate to a spare-resource.
  • An access-structure may include an access-location-structure or a spare-stack as discussed elsewhere herein.
  • a connection or path between one or more of the design and spare-component access-sites may include a spare-route as discussed elsewhere herein.
  • step b) may include the following steps which can be accomplished in any order:
  • step f) may include the following steps:
  • the lowest-cost function in h) may be based at least in part on one or more of the design structure, design topology, net timing information, existing layout description, and a prioritization of design components based on a predicted need for repairability as specified by either or both of the user and an external CAD tool.
  • the lowest-cost function in h) can be based at least in part on design structure and topology such that either or both of the nodes and nets of the design netlist can be prioritized based on one or more of their centrality and their ability to influence state.
  • the lowest-cost function in h) can be based at least in part on net timing information such that nets are prioritized based on their timing slack.
  • the lowest-cost function in i) may be based at least in part on the design layout, timing information, and constraints such that one or more of a minimization of routing congestion and a minimization of net timing delay are achieved.
  • step g) may include the following steps:
  • step c) may include inserting a spare-stack structure.
  • step e) may include inserting into the layout description a description for an additional wire to implement each connection.
  • the path taken by the wire can be determined manually, automatically by a routing algorithm, or by an external CAD tool.
  • step d) may include:
  • FIG. 15 is a block diagram that illustrates a computer system 1500 that performs a method of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment.
  • the computer system 1500 uses one or more processors 1505 to insert spare wiring structures into a design layout description of an integrated circuit based on at least one of a design netlist description, a design layout description, constraint information, timing information, user-provided information, and information provided by an EDA or CAD environment.
  • the one or more processors 1505, one or more read-only memories (ROM) 1510, one or more main memories 1515, miscellaneous storage devices 1520, a user input interface 1525, a user output interface 1530, a storage interface 1535, and an intra-system communications interface 1540 are communicatively coupled with one another via a bus hierarchy 1545.
  • the user input interface 1525 is communicatively coupled with a user input device 1550, which may include a keyboard, a mouse, a trackpad, a touchscreen, a microphone, a scanner, or other device as known in the art for a user to input data or commands into the computer system 1500.
  • the user output interface 1530 is communicatively coupled with a user display device 1555, which may include a CRT video monitor, an LCD video monitor, an LED video monitor, a plasma display video monitor, an OLED video monitor, indicator lights, a printer, a plotter, or other device as known in the art for a user to view information output and displayed from the computer system 1500.
  • the storage interface 1535 is communicatively coupled with file storage 1560, which may store data and program files created or accessed by the computer system 1500.
  • the file storage 1560 may include any computer-readable storage medium capable of storing data or executable program files, for example, non-transitory magnetic storage media (e.g., magnetic tapes, hard disks, floppy disks), non- transitory optical recording media (e.g., CD-ROMs, Digital Versatile Discs (DVDs), etc.), and non-transitory solid state memory (e.g., random-access memory (RAM), read-only memory (ROM), static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, thumb drives, etc.).
  • the file storage 1560 may also be distributed over network coupled computer systems. Other devices, systems, and processes 1565 that may perform other methods may also access the file storage 1560 and communicate with the computer system 1500 via the intra-system communications interface 1540.
  • via layer is used to refer to an integrated circuit fabrication layer, possibly but not necessarily constructed either partially or entirely of metal, that is parallel to the base fabrication layers.
  • a “via layer” is predominantly used to construct interconnect structures, such as wires or “vias”, that connect interconnect structures from adjacent metal layers.
  • the term “spare-cells” is used to refer to spare or unused resources in the physical design of an integrated circuit such as transistors or logic gates. Spare- cells are normally used to perform ECOs on both pre- and post-fabrication integrated circuit designs.
  • spare-cell is not intended to imply a particular implementation of a spare resource, and therefore can apply to standard cell-based spare-cells, metal-configurable gate-array spare-cells, or any other form of spare- resource that can be used to construct or modify circuit elements.
  • the apparatus described herein may comprise a processor, a memory for storing program data to be executed by the processor, a permanent storage such as a disk drive, a communications port for handling communications with external devices, and user interface devices, including a display, touch panel, keys, buttons, etc.
  • these software modules may be stored as program instructions or computer readable code executable by the processor on a computer-readable media such as non-transitory magnetic storage media (e.g., magnetic tapes, hard disks, floppy disks), non-transitory optical recording media (e.g., CD-ROMs, Digital Versatile Discs (DVDs), etc.), and non- transitory solid state memory (e.g., random-access memory (RAM), read-only memory (ROM), static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, thumb drives, etc.).
  • the computer readable recording media may also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. This computer readable recording media may be read by the computer, stored in the memory, and executed by the processor.
  • the invention may be described in terms of functional block components and various processing steps. Such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions.
  • the invention may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.
  • the elements of the invention are implemented using software programming or software elements
  • the invention may be implemented with any programming or scripting language such as C, C++, JAVA®, assembler, or the like, with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

A method for insertion of spare wiring structures into an integrated circuit comprises determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures, inserting spare wiring structures into a physical design of the integrated circuit according to the determined architecture, and outputting an engineering-change-order-ready integrated circuit layout. The determined architecture depends upon a design characteristic or design characteristic value. The spare wiring structures include a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers, which are disposed on one or both sides of a substrate including a plurality of electronic devices. The plurality of interconnect layers include at least one horizontal interconnect layer and at least one vertical- interconnect-access (VIA) layer. The plurality of spare electrically conductive interconnect layer structures are electrically isolated from a plurality of active electrically conductive interconnect layer structures.

Description

METHODS AND SYSTEMS FOR INSERTION OF SPARE WIRING STRUCTURES FOR IMPROVED ENGINEERING CHANGE ORDERS
RELATED APPLICATIONS
This application is a continuation-in-part of and claims the priority benefit of U.S. Patent Application No. 14/270,267, entitled "Architecture of Spare Wiring Structures for Improved Engineering Change Orders" and filed on May 5, 2014, and also claims the priority benefits of U.S. Provisional Patent Application No. 61 /819,519, entitled "Architecture of Spare Wiring Structures for Improved Engineering Change Orders" and filed on May 3, 2013, U.S. Provisional Patent Application No. 61 /830,556, entitled "Method and System for the Insertion of Spare Routing Resources for Engineering Change Orders in Integrated Circuits," and filed on June 3, 2013, and U.S. Provisional Patent Application No. 62/006,758, entitled "Methods and Systems for Insertion of Spare Wiring Structures for Improved Engineering Change Orders," and filed on June 2, 2014, the disclosures of all of which are incorporated herein in their entirety by reference.
BACKGROUND
1 . Field
[0001] The field of the embodiments generally relates to improved techniques and architectures for modifying the physical design and realization of integrated circuits, and more specifically to a methods and systems for insertion of spare wiring structures for improved engineering change orders.
2. Related Art
[0002] Integrated circuit design typically involves a series of well-defined steps using a sequence of electronic-design-automation (EDA) or computer aided design (CAD) tools. In a first step, the required functionality of the design is typically specified using a hardware description language (HDL) or by drawing a schematic with a graphical entry tool. Regardless of the mechanism used to specify the design, the design is converted to a netlist of logic elements through a step known as synthesis by an EDA software tool. The synthesis tool specifies the design as a netlist of circuit elements in a way that optimizes the design as specified using user- supplied constraints. These constraints may include optimizing for a desired operating speed, implementation area, or power-efficiency, etc. Given that the post-synthesis netlist meets the desired optimization requirements, an EDA tool then derives a silicon layout of the design netlist through a series of steps called placement, clock-tree synthesis, timing optimization, and routing. The outcome of the layout process is the physical design of the integrated circuit.
[0003] After the physical design of the integrated circuit has been generated through the layout design-automation tool, it is used to build a photomask set with each photomask being used for a separate photolithographic step during manufacture of the integrated circuit. The costs associated with the production of each photomask and the set as a whole is a significant part of the total cost of fabricating an integrated circuit.
[0004] If there are design errors or specification changes found after the photomask set has been manufactured, one or more of the photomasks must be redesigned and remanufactured. Changes are first made to the netlist and physical design before the relevant replacement photomasks are manufactured. The process of modifying or updating a design in such a way is referred to as an engineering change, an engineering change order, or in short as an ECO. To reduce costs, it is typically desirable to perform engineering change orders such that the desired change in design functionality or the physical realization is achieved while altering as few photomasks as possible, especially those photomasks that are more expensive to manufacture.
[0005] If an engineering change requires the refabrication of too many photomasks, the increased manufacturing costs, schedule delays, and risks associated with the engineering change may warrant a full revision, in which case the entire photomask set must be redesigned and remanufactured. The feasibility of an engineering change is a determination of whether or not an engineering change is possible without the need for modifying all photomasks, otherwise known as a full revision.
SUMMARY
[0006] According to an embodiment, a method for insertion of spare wiring structures into an integrated circuit comprises: determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures into the integrated circuit; inserting spare wiring structures into a physical design of the integrated circuit according to the determined architecture; and outputting an engineering-change-order-ready integrated circuit layout. The determined architecture depends upon a design characteristic or design characteristic value. The spare wiring structures include a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers. The plurality of interconnect layers are disposed on one or both sides of a substrate including a plurality of electronic devices. The plurality of interconnect layers include at least one horizontal interconnect layer and at least one vertical- interconnect-access (VIA) layer. The plurality of spare electrically conductive interconnect layer structures are electrically isolated from a plurality of active electrically conductive interconnect layer structures.
[0007] The design characteristic may include at least one design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, behavioral intent, active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, minimum transistor gate width, and physical design constraints.
[0008] The method may further comprise: routing active electronic circuit elements and interconnects after the inserting of spare wiring structures; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
[0009] The method may further comprise: determining whether the physical design with inserted spare wiring structures is sufficiently repairable during an engineering change order; and if the physical design with inserted spare wiring structures is determined to be not sufficiently repairable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
[0010] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, and behavioral intent.
[0011] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
[0012] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to physical design constraints.
[0013] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to a measure of circuit centrality. The measure of circuit centrality may include at least one measure selected from the group consisting of degree centrality, closeness centrality, eigenvalue centrality, betweenness centrality, Katz centrality, percolation centrality, and cross-clique centrality.
[0014] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to intended behavior of various parts of the integrated circuit as specified by a high-level behavioral description of the integrated circuit. [0015] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to relative risk for repairs of various parts of the integrated circuit.
[0016] The relative risk for repairs may be specified by at least one measure selected from the group consisting of relative test coverage of the integrated circuit, amenability to formal verification, degree to which the integrated circuit has been subjected to formal verification, amenability for functional verification, and degree to which the integrated circuit has been subjected to functional verification.
[0017] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to relative importance of different parts of the integrated circuit based on anticipated importance of features implemented.
[0018] The inserting of spare wiring structures into the physical design of the integrated circuit may be according to typical known repair patterns.
[0019] The method may further comprise routing of active electronic circuit elements before the insertion of the spare wiring structures.
[0020] The spare wiring structures may include a plurality of access-location- structures, and the inserting of spare wiring structures may include inserting a plurality of access-location-structures in locations in the integrated circuit layout according to a calculated utility of providing access to the access-location- structures from a spare-cell.
[0021] The spare wiring structures may include a plurality of access-location- structures, and the inserting of spare wiring structures may include inserting a plurality of access-location-structures in locations in the integrated circuit layout according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
[0022] The inserting of spare wiring structures may include inserting the spare wiring structures through a high congestion area of the plurality of interconnect layers. The high congestion area of the plurality of interconnect layers may have at least 10% greater number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
[0023] The inserting of spare wiring structures may include inserting the spare wiring structures through a low congestion area of the plurality of interconnect layers. The low congestion area of the plurality of interconnect layers may have at least 10% fewer number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
[0024] The inserting of spare wiring structures may include inserting a spare-stack occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers. The spare-stack may include a plurality of spare electrically conductive interconnect layer structures electrically isolated from the plurality of active electrically conductive interconnect layer structures. The plurality of spare electrically conductive interconnect layer structures may include at least one spare electrically conductive interconnect layer structure disposed on one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures are also disposed. The plurality of spare electrically conductive interconnect layer structures may be disposed on adjacent interconnect layers of the plurality of interconnect layers and electrically coupled with one another using one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers.
[0025] The inserting of spare wiring structures may include: inserting spare stacks in conjunction with placement of active electronic circuit elements in the physical design; inserting spare routes in conjunction with routing active electronic circuit elements and interconnects in the physical design; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and the inserting spare routes into the physical design of the integrated circuit according to the newly determined architecture in conjunction with the routing active electronic circuit elements and interconnects in the physical design.
[0026] According to another embodiment, a non-transitory computer-readable storage medium has stored thereon a program executable by a processor for performing a method for insertion of spare wiring structures into an integrated circuit. The method comprises: determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures into the integrated circuit; inserting spare wiring structures into a physical design of the integrated circuit according to the deternnined architecture; and outputting an engineering-change-order-ready integrated circuit layout. The deternnined architecture depends upon a design characteristic or design characteristic value. The spare wiring structures include a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers. The plurality of interconnect layers are disposed on one or both sides of a substrate including a plurality of electronic devices. The plurality of interconnect layers include at least one horizontal interconnect layer and at least one vertical- interconnect-access (VIA) layer. The plurality of spare electrically conductive interconnect layer structures are electrically isolated from a plurality of active electrically conductive interconnect layer structures.
[0027] The method of the medium may further comprise routing active electronic circuit elements and interconnects after the inserting of spare wiring structures; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
[0028] The inserting of spare wiring structures may include: inserting spare stacks in conjunction with placement of active electronic circuit elements in the physical design; inserting spare routes in conjunction with routing active electronic circuit elements and interconnects in the physical design; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and the inserting of spare routes into the physical design of the integrated circuit according to the newly determined architecture in conjunction with the routing active electronic circuit elements and interconnects in the physical design.
[0029] The inserting of spare stacks may include temporarily attaching one or more of the spare stacks to one or more spare-cells during placement using a wired connection.
[0030] The wired connection may connect the one or more of the spare stacks to scan chain circuitry proximate to the one or more of the spare-cells.
[0031] The inserting of spare stacks may include temporarily attaching one or more of the spare stacks to one or more active electronic circuit nodes during placement using a wired connection.
[0032] The inserting of spare stacks may include attaching one or more of the spare stacks to one or more spare-cells during placement using a wired connection that connects the one or more of the spare stacks to a cell between the one or more of the spare stacks and the one or more spare-cells that electrically decouples the one or more of the spare stacks from the one or more spare-cells.
[0033] The inserting of spare routes may include routing active electronic circuit elements in conjunction with routing spare routes while treating spare routes the same as active interconnects.
[0034] According to another embodiment, an integrated circuit comprises: a substrate including a plurality of electronic devices; a plurality of interconnect layers disposed on one or both sides of the substrate, the plurality of interconnect layers including horizontal interconnect and vertical-interconnect-access (VIA) layers; a plurality of active electrically conductive interconnect layer structures disposed on at least one of the plurality of interconnect layers and electrically coupled with at least one of the plurality of electronic devices; and a plurality of spare electrically conductive interconnect layer structures disposed on at least one of the plurality of interconnect layers and electrically isolated from the plurality of active electrically conductive interconnect layer structures.
[0035] The plurality of spare electrically conductive interconnect layer structures may include at least one spare electrically conductive interconnect layer structure disposed on the at least one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures is disposed. [0036] The integrated circuit may further comprise a spare-cell including an input/output interconnect electrically coupled with the spare-cell and disposed proximate to the at least one spare electrically conductive interconnect layer structure disposed on the at least one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures is disposed, there being no active electrically conductive interconnect layer structures between the input/output interconnect and the at least one spare electrically conductive interconnect layer structure along at least one path within at least one of the plurality of interconnect layers.
[0037] Each of the plurality of spare electrically conductive interconnect layer structures may be disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access to the access-locations from a spare-cell.
[0038] Each of the plurality of spare electrically conductive interconnect layer structures may be disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access from points of interest in the substrate including the plurality of electronic devices to one or more spare-cells or to other points of interest in the substrate.
[0039] Each of the plurality of spare electrically conductive interconnect layer structures may be disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
[0040] The plurality of spare electrically conductive interconnect layer structures may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of the various functions of the integrated circuit to the end user, typical known repair patterns, and behavioral intent as specified in specifications of the design at higher levels of abstraction. [0041] The plurality of spare electrically conductive interconnect layer structures may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
[0042] The plurality of spare electrically conductive interconnect layer structures may pass through a high congestion area of the plurality of interconnect layers, the high congestion area of the plurality of interconnect layers having at least 10% greater number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
[0043] According to another embodiment, an integrated circuit comprises: a substrate including a plurality of electronic devices; a plurality of interconnect layers disposed on one or both sides of the substrate, the plurality of interconnect layers including horizontal interconnect and vertical-interconnect-access (VIA) layers; a plurality of active electrically conductive interconnect layer structures, each of the plurality of active electrically conductive interconnect layer structures disposed on one of the plurality of interconnect layers and electrically coupled with at least one of the plurality of electronic devices; and a spare-stack occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers, the spare-stack including a plurality of spare electrically conductive interconnect layer structures electrically isolated from the plurality of active electrically conductive interconnect layer structures, the plurality of spare electrically conductive interconnect layer structures including at least one spare electrically conductive interconnect layer structure disposed on one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures are also disposed, the plurality of spare electrically conductive interconnect layer structures disposed on adjacent interconnect layers of the plurality of interconnect layers and electrically coupled with one another using one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers. [0044] A rectangular footprint of the spare-stack may be equal to or greater than two minimum line widths of the plurality of spare electrically conductive interconnect layer structures in each of two orthogonal directions.
[0045] A dimension of a rectangular footprint of the spare-stack may be less than half a distance to a closest neighboring access-location in each of two orthogonal directions.
[0046] Each of the plurality of spare electrically conductive interconnect layer structures may adhere to a per horizontal-interconnect-layer rectangular footprint in each of two orthogonal directions, where the per horizontal-interconnect-layer footprint is disposed according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
[0047] The integrated circuit may further comprise a spare-cell electrically coupled with the spare-stack.
[0048] The integrated circuit may further comprise a plurality of spare-stacks, wherein each of the plurality of spare-stacks is disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access from points of interest in the substrate including the plurality of electronic devices to one or more spare-cells or to other points of interest in the substrate.
[0049] The integrated circuit may further comprise a plurality of spare-stacks, wherein each of the plurality of spare-stacks is disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
[0050] The integrated circuit may further comprise a plurality of spare-stacks, wherein the plurality of spare-stacks are disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of the various functions of the integrated circuit to the end user, and behavioral intent as specified in specifications of the design at higher levels of abstraction.
[0051] The integrated circuit may further comprise a plurality of spare-stacks, wherein the plurality of spare-stacks are disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
[0052] The one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent horizontal-interconnect-layers may be two or more vias disposed between three or more of the plurality of spare electrically conductive horizontal-interconnect-layer structures on adjacent interconnect layers, and the two or more vias may not be vertically aligned with one another.
[0053] According to another embodiment, an integrated circuit comprises: a substrate including a plurality of electronic devices; a plurality of interconnect layers disposed on one or both sides of the substrate, the plurality of interconnect layers including horizontal interconnect and vertical-interconnect-access (VIA) layers; a plurality of active electrically conductive interconnect layer structures, each of the plurality of active electrically conductive interconnect layer structures disposed on one of the plurality of interconnect layers and electrically coupled with at least one of the plurality of electronic devices; and a spare-junction, the spare-junction comprising a plurality of spare-stacks, each of the plurality of spare-stacks occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers, there being one or more unobstructed single-interconnect-layer routing paths between each pair of the plurality of spare-stacks comprised by the spare-junction for at least a prescribed number of interconnect layers, each of the plurality of spare-stacks including a plurality of spare electrically conductive interconnect layer structures electrically isolated from the plurality of active electrically conductive interconnect layer structures, the plurality of spare electrically conductive interconnect layer structures including at least one spare electrically conductive interconnect layer structure disposed on one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures are also disposed, the plurality of spare electrically conductive interconnect layer structures disposed on adjacent interconnect layers of the plurality of interconnect layers and electrically coupled with one another using one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers.
[0054] The plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one logic design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, circuit timing information, typical known repair patterns, and estimated demand for spare-resources when performing an engineering change order.
[0055] The plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, and timing information.
[0056] The one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers may be two or more vias disposed between three or more of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers, and the two or more vias may not be vertically aligned with one another.
[0057] The plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to a pre-defined rectangular footprint, where the plurality of spare-stacks are routed such that there exists one or more unobstructed single-interconnect-layer routing paths between each pair of the plurality of spare-stacks comprised by the spare-junction for at least a prescribed number of interconnect layers such that each of the routing paths is confined to the pre-defined rectangular footprint.
[0058] The pre-defined rectangular footprint of the spare-junction may be equal to or greater than the largest per horizontal-interconnect-layer minimum line width of the plurality of interconnect layers spanned by the spare-junction in each of two orthogonal directions.
[0059] A dimension of the pre-defined rectangular footprint of the spare-junction may be less than half a distance to a closest neighboring access-location in each of two orthogonal directions.
[0060] The plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers according to a pre-defined maximum routing path length, where the plurality of spare-stacks may be routed such that there exists one or more unobstructed single-interconnect-layer routing paths between each pair of the plurality of spare-stacks comprised by the junction for at least a prescribed number of interconnect layers such that each of the routing paths is limited in length to the maximum routing path length.
[0061] A maximum path-length per interconnect layer of the spare-junction may be equal to or greater than a horizontal-interconnect-layer minimum line width of the plurality of interconnect layers spanned by the spare-junction in each of two orthogonal directions.
[0062] A maximum path-length per interconnect layer of the spare-junction may be less than or equal to a timing critical-path length of a local clock domain.
[0063] The plurality of spare-stacks may be disposed in a corresponding plurality of locations of the plurality of interconnect layers, where one or more of the plurality of locations of the plurality of interconnect layers may be determined according to predefined custom cells, where each custom cell defines a specific arrangement of pins for one of the plurality of horizontal-interconnect-layers through which the plurality of spare-stacks are routed, with each spare-stack being routed through a unique pin of the custom cell.
[0064] The integrated circuit may further comprise a plurality of spare-junctions, wherein each of the plurality of spare-junctions is disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a calculated utility of providing access from points of interest in the substrate including the plurality of electronic devices to one or more spare-cells or to other points of interest in the substrate.
[0065] The integrated circuit may further comprise a plurality of spare-junctions, wherein each of the plurality of spare-junctions are disposed at an access-location, the plurality of access-locations disposed in locations in the plurality of interconnect layers according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
BRIEF DESCRIPTION OF THE DRAWINGS
[0066] These and/or other aspects will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings in which:
[0067] FIG. 1 is a schematic diagram that illustrates spare wiring structures employed in the vicinity of a spare-cell in an integrated circuit design, according to an embodiment.
[0068] FIG. 2 is a perspective diagram that illustrates a spare-stack, a type of spare wiring structure, in a physical design of an integrated circuit, according to an embodiment;
[0069] FIG. 3 is a perspective diagram that illustrates a section of an integrated circuit layout containing spare wiring structures, according to an embodiment;
[0070] FIG. 4 is a schematic diagram that illustrates spare wiring structures that are inserted into the layout of an example integrated circuit design according to the predicted utility of providing connectivity to a spare-cell at various locations of the integrated circuit layout, according to an embodiment;
[0071] FIG. 5 is a schematic diagram that illustrates an example integrated circuit layout in which spare wiring structures have been inserted by a user or CAD program according to a pattern, according to an embodiment;
[0072] FIGS. 6A and 6B are schematic diagrams that illustrate an example change in logic connections due to an engineering change order of an integrated circuit design;
[0073] FIGS. 7A and 7B are schematic diagrams that illustrate a conventional method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B;
[0074] FIGS. 8A and 8B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks, according to an embodiment; [0075] FIGS. 9A and 9B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks and spare-routes, according to an embodiment;
[0076] FIG. 10 is a flow diagram that illustrates a design flow for an integrated circuit including post-placement insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment;
[0077] FIG. 1 1 is a flow diagram that illustrates a design flow for an integrated circuit including post-place and route insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment;
[0078] FIG. 12 is a flow diagram that illustrates a design flow for an integrated circuit including insertion of spare wiring for an architecture of spare wiring structures integrated with place and route of active electronic circuits, according to an embodiment;
[0079] FIGS. 13A and 13B are a flow diagram that illustrates a method of inserting spare wiring structures in an integrated circuit design, according to an embodiment;
[0080] FIG. 14 is a block diagram that illustrates a method of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment; and
[0081] FIG. 15 is a block diagram that illustrates a computer system that performs a method of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment.
DETAILED DESCRIPTION
[0082] Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout.
[0083] According to various embodiments, an architecture for integrated circuits includes spare wiring structures that are inserted into the physical design of an integrated circuit in order to facilitate or improve the process of modifying one or more of the operation, function, and performance characteristics of the integrated circuit, either pre- or post-fabrication. Modification of the design of the integrated circuit to change its operation, function, and/or performance characteristics is known as an engineering change order (ECO) process, in which engineering changes (ECs) are made to an integrated circuit design. The architecture of spare wiring structures increases the accessibility from circuit elements to spare- resources and to other circuit elements within the integrated circuit for use in performing an ECO on the integrated circuit design.
[0084] The spare resources may include standard cell-based spare-cells or metal- configurable gate-array spare-cells. Hereinafter, where "spare-cells" are referred to, they are to be considered to include "spare-packs" as well, which may be a collection of spare-cells, a logic block that performs a function more specific than a spare-cell, or other spare circuit elements that can be used in the implementation of an ECO. The spare wiring structures may also increase the accessibility between locations within the integrated circuit that do not necessarily include spare- resources. The increased accessibility decreases the impact of ECOs on the physical implementation of an integrated circuit design, therefore resulting in less complex ECOs that are faster to implement and require fewer photomask changes.
[0085] Unlike embodiments of the architecture of spare wiring structures, prior approaches do not provide the ability to connect previously separate locations in the physical design of an integrated circuit using one or more of multiple possible interconnect layers, thereby offering an overall reduction in the number of modified photomasks. Unlike previous approaches, in embodiments of the architecture disclosed herein, the spare wiring structures can be incorporated into the physical design of an integrated circuit without the need to alter the implementation of the original circuit design. Improvement in the integrated circuit resulting from the embodiments can be measured using several metrics. One such metric is the increase in the number of feasible ECOs attributed to the inclusion of the spare wiring structures of the architecture. Embodiments of the architecture including spare wiring structures increase the number of feasible ECOs of a given integrated circuit design incorporating the embodiments. A second metric is the reduction in the number of modified photomasks when performing a set of ECOs for a given integrated circuit design that incorporates embodiments of the architecture including spare wiring structures. Embodiments of the architecture including spare wiring structures reduce the number of photomasks that must be modified when performing a set of ECOs for a given integrated circuit design incorporating the embodiments. A third metric is the reduction of engineering time and effort required to perform a set of ECOs for a given integrated circuit design that incorporates embodiments of the architecture including spare wiring structures. Embodiments of the architecture including spare wiring structures reduces the engineering time and effort required when performing a set of ECOs for a given integrated circuit design incorporating the embodiments.
[0086] The improvement can be attributed to the reduced impact of ECOs on the physical design of the integrated circuit due to the employment of the architecture including the spare wiring structures. The impact of an ECO can be determined by the extent to which the physical design of an integrated circuit must be modified in order to complete the ECO. The impact of an ECO may be reduced using embodiments of the architecture by systematically increasing the ability to connect previously separate locations in the physical design of an integrated circuit while requiring modification to fewer metal and via layers than would otherwise be required. This impact will likely be greater when there is a high degree of routing congestion (i.e., higher density of routing obstructions) near and in between the locations being connected, because higher congestion may require the routing path taken by the connecting wire to make use of a higher number of via and metal layers in order avoid obstructions. The modification of fewer metal layers may be required using the embodiments of the architecture by facilitating two non-adjacent metal layers to be electrically connected during the completion of an ECO without having to modify the metal and via layers that reside between the metal layers being connected. This may be achieved in some embodiments by inserting spare wiring structures into unused areas of the physical design. In other embodiments, this may be achieved by inserting spare wiring structures before non-spare cells are placed or before non-spare wires is inserted, thus possibly influencing the placement of non-spare cells and the routing of non-spare wires. These spare wiring structures may be utilized when performing an ECO to form one or more complete paths between two or more elements within the circuit design by modifying one or more photomasks. The modification of the photomasks would change the original electrical connections in the metal layers to use one or more spare wiring structures as part of the electrical connections between two or more elements within the circuit design. [0087] The spare wiring structures include one or more of, but are not limited to, the following types:
• spare-routes (SR)
• spare-stacks (SS)
• floating spare-stacks (FSS)
• spare-junctions (SJ)
These structures include one or more of spare metal wires and spare vias, and are not electrically connected to the surrounding circuit design in an original circuit design before any engineering changes, but rather are only connected to the surrounding circuit design when used to perform an ECO. The spare metal wires used to implement a spare wiring structure may include as few as one or as many as all metal layers in the integrated circuit design. Similarly, the spare vias used to implement a spare wiring structure may include as few as one or as many as all via layers in the integrated circuit design.
[0088] Spare-routes are used for interconnect (e.g., connections between two or more elements of an integrated circuit design) when performing an ECO and at a minimum include a wire constructed using a single metal layer, and may include a wire that spans up to all metal and via layers of the integrated circuit design. Spare-routes may start or end in close proximity to spare-cell input or output pins, spare-cell input or output pin extensions, to another spare-route, or to one or more circuit elements of the physical circuit design. Spare-routes may be generally horizontally-oriented to run within the metal layers of the integrated circuit design from one area of an integrated circuit design to another area of the integrated circuit design.
[0089] In some embodiments, one or both ends of a spare-route are connected to a spare-stack, which is a wire that spans as many metal and via layers as possible within a prescribed footprint, as shown in FIG. 2, where the footprint is the area contained within the X and Y dimensions. Spare-stacks may be generally vertically-oriented to run between an upper metal layer and a lower metal layer within a single localized area of the integrated circuit design. Spare-stacks may be used as connection points between adjacent spare-routes, spare-cell inputs or outputs and spare-routes, or spare-routes and circuit elements of the surrounding physical design of an integrated circuit. In some embodiments, every spare-cell input and output is connected to either a spare-stack or a pin extension in order to provide connectivity on as many metal layers as possible. In other embodiments, spare-stacks may be left unconnected, herein referred to as "floating spare-stacks" (FSS).
[0090] A spare-junction exists where two or more spare-routes start or end within sufficient proximity of one another to facilitate the formation of a connection between the spare-routes by modifying no more than a predefined maximum number of photomasks. In some embodiments this predefined maximum number of photomasks is one, but the predefined maximum number of photomasks may be two, three, four, five, six, or more, in various other embodiments.
[0091] In various embodiments, spare wiring structures are inserted into the physical design of an integrated circuit in order to provide increased accessibility between a spare-cell and one or more other circuit elements at a given location or locations of interest in the integrated circuit. The spare wiring structures may also be inserted in order to provide alternative paths between other circuit elements in the integrated circuit that can be utilized when performing an ECO. The location or locations of interest of the one or more other circuit elements may be identified according to a plurality of methods, including but not limited to a predicted utility of providing a connection to a spare-cell for the purpose of performing an ECO. These locations are herein referred to as "Access-Locations" (ALs). In order to maximize the number of access-locations for a given spare-cell, a spare-route originating from within the vicinity of a spare-cell input or output may end in the vicinity of one or more other spare-routes, which in turn may end in the vicinity of additional spare-routes that eventually terminate at an access-location. For some embodiments, ALs may include spare-cells pin locations. Spare-stacks may additionally be left unconnected as "floating spare-stacks" (FSS), and placed at one or more pre-selected regions of the physical design of the integrated circuit as determined by one of either a designer using a computer-aided design (CAD) software tool or environment, or the CAD software environment. These floating spare-stacks may be used to achieve a further increase in the accessibility of spare-cells within an integrated circuit by increasing the number of potential connection points to an access-location through a reduction in the number of photomasks that would otherwise require a modification in order to construct the connection.
[0092] In order to perform an ECO, typically one or more complete paths are constructed between two or more different locations of the physical circuit design, where one or more of the locations may include a spare-cell input or output. In a conventional ECO, a complete path may traverse several or all available metal layers, and the entire path is constructed at the time the ECO is performed. In contrast, in embodiments of the spare wiring structure architecture, one or more segments of the complete path of a potential future ECO are proactively inserted into the physical implementation of the original design in order to reduce the number of photomasks that must be modified when the future ECO is performed. In this scenario, the segments are implemented as spare-routes, and a complete path may consist of one or more of the following connection types:
A. Spare-cell input pin or output pin connected to a spare-route
B. Spare-route connected to another spare-route
C. Spare-route connected to the physical circuit design
D. Spare-route connected to a spare-stack
E. Spare-route connected to a floating spare-stack
F. Floating spare-stack connected to the physical circuit design
[0093] In many embodiments, connection types A and B can be constructed by only modifying the photomask used to fabricate a single metal layer. The choice of metal layer that is used to construct the connection may be limited to a single specific metal layer or may include all metal layers used in the physical design. The number of metal layers that can be independently used to construct the connection is determined by the presence or absence of routing obstructions between adjacent spare-stacks on each metal layer. Such connections may also be formed between a spare-cell input or output and either a spare-route or a spare-stack between which there is an absence of routing obstructions on at least one metal layer. Such connections may additionally be formed between adjacent spare-routes between which there is an absence of routing obstructions on at least one metal layer. The remaining connection types (C, D, E, and F) may require the modification of more than one metal layer depending upon the physical circuit design and one or more of the topology and placement of the spare wiring structures. [0094] The proximity of spare wiring structures (e.g., spare-routes and spare- stacks) to one another is considered to be sufficient to prevent a routing obstruction on all metal layers when there is an absence of routing obstructions within at least one metal layer that prevent routing from one to the other on that metal layer. In various embodiments, this proximity may be measured in terms of minimum line widths of a fabrication technology, such as 100 nm, 45 nm, 32 nm, 22 nm, or other line widths of different fabrication technologies in which the integrated circuit design may be fabricated. For example, in various embodiments, the proximity may be sufficient if it is one, two, three, four, five, or more line widths and there are no lines or vias that obstruct routing within a single metal layer. This proximity may also be measured in terms of nanometers, where the relationship between nanometers and line widths is defined by the fabrication technology in which the integrated circuit design is to be fabricated.
[0095] In some embodiments, a signal regenerator, buffer component, or a dummy load is inserted in a spare-route at some point in the complete path in order for the route to meet timing requirements of a design in the event the spare-route is used to perform an ECO.
[0096] In some embodiments, a spare wiring structure is used strictly to decrease or increase the length of a connection between two parts of the active design to meet timing requirements.
[0097] FIG. 1 is a schematic diagram that illustrates spare wiring structures employed in the vicinity of a spare-cell 125 in an integrated circuit design, according to an embodiment. In this example embodiment, spare-stacks 105 are inserted at access-locations that are in close proximity to the input and output pins 135 of the spare-cell 125. Spare-routes 130 connect predetermined areas known as "access- locations" (ALs). These access-locations can be located in close proximity to a spare-cell 125 or to locations 1 10 that have been determined to be points of interest due to some perceived or calculated utility of providing access to these locations from other integrated circuit design elements or from spare-cells 125. In some embodiments, a spare-route 130 includes a spare-stack 105 on one or both ends of the spare-route 130. In other embodiments, a spare-route 130 may terminate on either end without a spare-stack 105 attached thereto. Each access- location 1 10 may also include a spare-stack 105 or a spare-junction 120. A single spare-route 130 may connect to one of several other spare-routes 130 by means of a spare-junction 120, which provides the ability to connect adjacent spare-routes 130 through the modification of a single interconnection layer between two spare- stacks 105 that are connected to the spare-routes 130. The same principle is used to facilitate the connection between a single spare-route 130 and one of several spare-cell input or output pins 135 of the spare-cell 125. Additional floating spare- stacks 1 15 may be inserted in the vicinity of an access-location 1 10 in order to increase the number of potential circuit locations that can possibly be connected to the relevant spare-route 130. These floating spare-stacks 1 15 are completely unconnected electrically from both the circuit design and other spare wiring structures when they are inserted into the physical design of the integrated circuit, and are therefore known are "floating spare-stacks".
[0098] FIG. 2 is a perspective diagram that illustrates a spare-stack 105, a type of spare wiring structure, in a physical design of an integrated circuit, according to an embodiment. FIG. 2 illustrates a conceptual view of one exemplary configuration of the spare-stack 105 using more than two horizontal interconnect layers 210. In this exemplary embodiment, the spare-stack 105 includes six horizontal interconnect layers 210 (M1 - M6), which may be metallic, and five vertical interconnect access (VIA) layers 215 (V1 - V5), each of which is disposed between two adjacent horizontal interconnect layers. While the embodiments are described herein as using metal for the interconnect material in the horizontal interconnect layers, this should not be construed as limiting. In various embodiments, according to the fabrication technology in which the integrated circuit is fabricated, the horizontal or vertical interconnect material may comprise other electrically conductive materials, e.g., non-metallic electrically conductive materials. Thus, a "wire" as disclosed herein may be either metallic or comprise a non-metallic conductive material.
[0099] The horizontal interconnect 220 and vias 230 are joined together in order to construct a single wire that spans as many horizontal interconnect layers 210 and via layers 215 as possible within a prescribed footprint 250. The prescribed footprint 250 is shown in FIG. 2 as the two-dimensional area of dimensions X and Y. This prescribed footprint 250 forms a plane that is parallel to the fabrication layers of the integrated circuit, e.g., the semiconductor substrate. The prescribed footprint 250 may be restricted to a maximum area, which may be as large as the area occupied by the entire physical design of the integrated circuit, or may be as small as the area occupied by a single via 230 of minimum size connected to two horizontal interconnects 220 also of minimum size (e.g., minimum line width), where the interconnect layers 210 and via layers 215 are selected as those having the smallest allowable dimensions among the set of possible interconnect layers 210 (M1 - M6) and via layers 215 (V1 - V5) for the fabrication process that is employed. For example, the prescribed footprint 250 may be one, two, three, four, five, or more minimum line widths of the fabrication technology in which the integrated circuit is to be fabricated. The minimum line width of an interconnect 220 may depend upon which horizontal interconnect layer 210 the interconnect 220 is positioned. Thus, the prescribed footprint 250 may be equal to or greater than one, two, three, four, five, or more times the largest per-horizontal-interconnect-layer minimum line width of the horizontal interconnect layers 210 spanned by the spare- stack 105. Alternatively, each dimension (i.e., X and Y) of the prescribed footprint 250 may have at least one of a prescribed maximum value and a prescribed minimum value, and these values for one dimension may not equal the values for the other dimension.
[00100] The prescribed footprint 250 combined with the number of contiguous interconnect layers 210 and via layers 215 defines a spare-stack region 240. The spare-stack region 240 includes all the interconnects 220 and vias 230 that may be electrically connected to form a wire across one or more interconnect layers 210 that may be used to implement an ECO using the spare-stack 105. The height or thickness of the spare-stack region 240 may be computed as the thickness of a horizontal interconnect layer 210 times the number of horizontal interconnect layers 210 included in the spare-stack region 240, plus the height of a via layer 215 times the number of via layers 215 included in the spare-stack region 240. The height or thickness of the spare-stack region 240 may also be specified as the number of horizontal interconnect layers 210 and via layers 215 included in the spare-stack region 240.
[00101] The spare-stack 105 may be configured with offset vias 230 and interconnects 220 within the spare-stack region 240 as illustrated so that vias 230 are not placed directly over one another. By offsetting the vias 230, a portion of a spare-stack 105 that remains unused after an ECO (e.g., is not connected to an active circuit of the integrated circuit design after the ECO is completed) remains available to be used in a future ECO. Offsetting the vias 230 makes it more efficient to disconnect an upper portion of the spare-stack 105 from a lower portion of the spare stack 105. In addition, if the spare-stack 1 05 is connected to VDD or VSS (or power or ground) through a tie-cell, then the electrical connection between a signal path and VSSA/DD can be broken while still ensuring that the via 230 closest to the disconnection point of the spare-stack 105 has enough metal or interconnect material surrounding it in order to meet design rule checking (DRC) rules of the manufacturing process in which the integrated circuit is to be fabricated.
[00102] In some embodiments, no interconnect of an original integrated circuit design may pass through a spare-stack region 240, reserving the spare-stack region 240 for use in performing an ECO, for example when the spare-stack region 240 includes a floating spare stack. In other embodiments, the spare-stack region 240 may include one or more interconnects of an original integrated circuit design, while the interconnects 220 and vias 230 of the spare-stack 105 are layed out and interconnected with one another within the spare-stack region 240 to navigate around the one or more interconnects of the original integrated circuit design. In these latter embodiments, an original integrated circuit design including embodiments of the architecture of spare wiring structures may achieve higher density by placing spare-stacks 105 in areas where there are no minimum line width prescribed footprints 250 that are open without interconnects through all interconnect layers 210 and via layers 215, or a sufficient number of interconnect layers 210 and via layers 215 to meet the objectives of placing a wire across multiple interconnect layers 210 and via layers 215 to connect a spare-route 130 or spare-cell 125 when performing an ECO.
[00103] As illustrated, each interconnect layer 210 within the spare-stack region 240 includes an interconnect 220. In at least one interconnect layer 210, the interconnect 220 may be generally oriented to run along the X dimension across the full X dimension width of the prescribed footprint 250, and may have a minimum line width. In at least one other interconnect layer 210, the interconnect 220 may be generally oriented to run along the Y dimension across the full Y dimension width of the prescribed footprint 250, and may have a minimum line width. The X and Y dimensions of the prescribed footprint 250 may be determined according to the longest interconnect 220 running along the X dimension and the longest interconnect 220 running along the Y dimension in one or more interconnect layers 210 of the spare-stack region 240.
[00104] In various embodiments, there may be a different footprint on each horizontal interconnect layer 210, and the footprint of each horizontal interconnect layer 210 may be offset from one another.
[00105] FIG. 3 is a perspective diagram that illustrates a section of an integrated circuit layout 300 containing spare wiring structures, according to an embodiment. In various embodiments, the spare wiring structures may include metallic materials or non-metallic electrically conductive materials. In this example section of the integrated circuit layout 300, spare-stacks 310, 320, 330, 340, 350, and 360 each span six interconnect layers and five via layers. While all of the spare-stacks 310, 320, 330, 340, 350, and 360 in the example embodiment are illustrated as strictly vertically-oriented, spare-stacks are not required to be strictly vertical structures, and in various embodiments include two or more via layers that do not align vertically when fabricated, as illustrated in FIG. 2. A characteristic feature of a spare-stack may be that it spans as many interconnect layers as possible while adhering to a footprint constraint in order to provide connectivity to a spare-route on as many interconnect layers as possible. In some embodiments, this footprint is a fixed constraint. In others, the size of the footprint is determined by the user-defined input, design constraints, logical design-characteristics, and physical design-characteristics. In some embodiments, the footprint constraint varies depending on its location in the design and the run-time progress of the algorithm. In an ideal case, spare-stacks may be strictly vertical and may span all interconnect layers; however, due to routing obstructions, it may not always be possible to construct a strictly vertical spare-stack, nor may it be possible to construct a spare-stack that spans all interconnect layers, while achieving interconnect goals of the integrated circuit's physical design.
[00106] In some embodiments, the structure of an individual spare-stack is selected from a library of predefined stack structures or cells. In other embodiments, a method that performs a routing algorithm is used to construct the spare-stack such that the desired vertical span is achieved while adhering to the footprint constraint and avoiding routing obstructions. [00107] For one embodiment of the footprint constraint, all horizontal interconnect layers and via layers of the spare-stack must reside within a prescribed area in a fixed location for all layers. This is called a fixed-area footprint constraint. For another embodiment of the footprint constraint, all routing resources used to construct the spare-stack must reside within a prescribed area, however the location of the prescribed area can change from layer to layer. This is called a floating-area footprint constraint.
[00108] For some embodiments, spare-stacks are constructed in conjunction with or in close proximity with each other in order to construct a spare-junction. In one embodiment, all spare-stacks are constructed using the same fixed-area footprint constraint. In another embodiment, all spare-stacks are constructed using the same floating-area constraint. In another embodiment, a proximity-template is used on one or more interconnect layers. This proximity-template is used to force the route of each spare-stack in the spare-junction to pass through specific locations defined by the template. The outcome of using this constraint may be that all spare-stacks included in the spare-junction are forced to reside in close proximity to each other for each layer in which the template is applied. In some embodiments, a proximity template may include one or more predefined cells containing a fixed arrangement of one or more of metal wire segments or metal pins on one or more routing layers.
[00109] In some embodiments, the components of the spare-stack that reside on metal layers extend beyond their minimum required size in order to help facilitate dividing or disconnecting a portion of the spare-stack from one or more spare-routes when making ECO metal-layer changes and disconnecting from tie- cells or VSSA/DD nets when required by the manufacturing technology.
[00110] Specific embodiments of a spare-stack in the physical design of an integrated circuit may vary depending upon one or more of the insertion location within the circuit layout, design constraints, user input, logic-design characteristics, and physical-design characteristics. It may also depend on the user-defined constraints, logical design-constraints, and physical design-constraints.
[00111] In the illustrated embodiment, each spare-stack 310, 320, 330, 340, 350, and 360 is connected to at least one spare-route 305, 325, 335, 355, and 365, while some spare-stacks 310, 320, 340, 350 are also connected to an interconnect layer route 315, 345 that is used to connect two spare-stacks for the purpose of connecting two spare-routes. The group of spare-stacks 310, 320, and 330 may be considered a spare-junction 370, while the group of spare-stacks 340, 350, and 360 may be considered a spare-junction 380. Spare-routes may remain unconnected in an initial design of an integrated circuit layout, and later be connected when performing an ECO.
[00112] FIG. 4 is a schematic diagram that illustrates spare wiring structures that are inserted into the layout of an example integrated circuit design according to the predicted utility of providing connectivity to a spare-cell at various locations of the integrated circuit layout, according to an embodiment. In this example, the access-locations (ALs) 105, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 450, 452, 454, 456, 458, 460, 462, 464, and 466 are not arranged according to a pattern, and therefore the access-location density may vary significantly from one region of the integrated circuit layout to another. In this embodiment, a spare-junction has been inserted at each of the access-locations 450, 452, 454, 456, 458, 460, 462, 464, and 466. The spare-junctions at access-locations 450, 452, 454, 456, 458, 460, 462, 464, and 466 are arranged to provide increased access between neighboring access- locations and spare-routes that connect to the spare-cell 125. Spare-routes and floating spare-stacks are inserted at access-locations 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, and 444 in order to provide increased access between circuit elements and either spare- cells or other points of interest within the physical design of the integrated circuit.
[00113] FIG. 5 is a schematic diagram that illustrates an example integrated circuit layout 500 in which spare wiring structures have been inserted by a user or CAD program according to a pattern, according to an embodiment. In this example, the inserted spare-junctions 510 and access-locations 520 are implemented using the same spare-stacks 105 due to the choice of topology of that has been employed. Such a topology provides a uniform density of access-locations 520 throughout the example integrated circuit layout 500.
[00114] FIGS. 6A and 6B are schematic diagrams that illustrate an example change in logic connections due to an engineering change order of an integrated circuit design. As illustrated in FIG. 6A, a logic block A 630 is connected to a first block 610 through interconnect 680 and a second block 620 through interconnect 690, while a logic block B 640 is connected to the first block 610 through interconnect 670 and the second block 620 through interconnect 660. The first block 610 and the second block 620 each represent a block of logic implemented in an integrated circuit design. The logic block A 630 and the logic block B 640 also each represent a block of logic implemented in an integrated circuit design. A spare block 650 includes logic circuitry that may be used to supplement or replace existing logic circuitry in an integrated circuit design when performing an engineering change of the integrated circuit design.
[00115] As an example, if an error is discovered in logic block A 630 after the integrated circuit design is fabricated, an engineering change order may be performed by replacing logic block A 630 with spare block 650. The engineering change order would disconnect interconnect 680 and 690 from logic block A 630, replace the interconnect 680 with interconnect 685 between the first block 610 and the spare block 650, and replace the interconnect 690 with interconnect 695 from the second block 620 to the spare block 650 as illustrated in FIG. 6B.
[00116] FIGS. 7A and 7B are schematic diagrams that illustrate a conventional method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B. As illustrated, a high congestion area of interconnect exists in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design. The area may be considered high congestion because the area includes a greater number of electrically active interconnects between active electronic circuit elements per unit area than an average number of electrically active interconnects in the overall integrated circuit. For example, the area may be considered high congestion when the number is at least 10% greater, at least 20% greater, at least 30% greater, at least 40% greater, at least 50% greater, or other measureable and noticeable amount as would be recognized by one of ordinary skill in the art. Alternatively, an area of the integrated circuit may be considered low congestion when the area includes a fewer number of electrically active interconnects between active electronic circuit elements per unit area than an average number of electrically active interconnects in the overall integrated circuit. For example, the area may be considered low congestion when the number is at least 10% fewer, at least 20% fewer, at least 30% fewer, at least 40% fewer, at least 50% fewer, or other measureable and noticeable amount as would be recognized by one of ordinary skill in the art. As a result of the high congestion area of interconnect in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design, when interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650, five interconnect layers (5, 6, 7, 8, and 9) must be revised in order to route interconnect 685 around the high congestion area, using the conventional method. Because the high congestion area is not present between the spare block 650 and the second block 620, when interconnect 690 between the second block 620 and the logic block A 630 is replaced with interconnect 695 between the second block 620 and the spare block 650, only one interconnect layers (5) must be revised. This is because only the interconnect 690, which is being replaced, passes through the high congestion area, not the new interconnect 695. Each revised interconnect layer results in a need to create a new photomask, which is an expensive process. Unused interconnect or wire is shown in dashed lines attached to the spare block 650 in FIG. 7A, and to disconnected logic block A 630 in FIG. 7B.
[00117] FIGS. 8A and 8B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks 810 and 820, according to an embodiment. As illustrated, a high congestion area of interconnect exists in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design. As a result, when interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650, interconnect 685 is made to go around the high congestion area on interconnect layer 9 between the spare- stack 810 and the spare-stack 820. The spare-stacks 810 and 820 may be embodiments of the spare-stack 105 illustrated in FIG. 2 or the spare-stacks 310, 320, 330, 340, 350, and 360 illustrated in FIG. 3. The spare-stack 810 is split into a connected upper spare-stack 812 and an unused lower spare-stack 814, while the spare stack 820 is split into a connected upper spare-stack 822 and an unused lower spare-stack 824, by changing the interconnect within the spare-stacks 810 and 820 on interconnect layer 5. In addition, the portion of interconnect 680 that passes through interconnect layer 5 is rerouted to attach to the upper spare stack 812 rather than the rest of the former interconnect 680 that connected to the logic block A 630 in FIG. 8A (now referred to as unused interconnect 680' in FIG. 8B). Likewise, an unused interconnect connected to spare block 650 is connected to the connected spare stack 822 on interconnect layer 5 to form the rest of the interconnect 685. New interconnect 695 between the second block 620 and the spare block 650 is formed by disconnecting the interconnect 690 at interconnect layer 5 and connecting the portion of the prior interconnect 690 between the second block 620 and interconnect layer 5 with a previously unused interconnect connected to the spare block 650 at interconnect layer 5 to form new interconnect 695 between the second block 620 and the spare block 650. The now disconnected interconnect 690 of FIG. 8A is shown as unused interconnect 690' in FIG. 8B. Using the spare-stacks 810 and 820 of the architecture of spare wiring structures disclosed herein, only two interconnect layers (5, 9) need to be revised in order to accomplish the engineering change of FIGS. 6A and 6B, compared to the five interconnect layers (5, 6, 7, 8, and 9) that must be revised in FIGS. 7A and 7B, using the conventional method. Because the spare-stacks 810 and 820 are already present in the original circuit design illustrated in FIG. 8A, when interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650 in the engineering change resulting in the layout shown in FIG. 8B, only two interconnect layers (5, 9) must be revised. This is because the spare-stacks 810 and 820 provide already existing but unused paths between the different interconnect layers that are utilized to create the new interconnect 685 in the engineering change to produce the circuit design shown in FIG. 8B. As in FIGS. 7A and 7B, unused interconnect or wire is shown in dashed lines attached to the spare block 650 in FIG. 8A, and to disconnected logic block A 630 in FIG. 8B. Note that where an interconnect is shown passing through but not terminating at a spare-stack, the interconnect is not electrically connected with the spare-stack.
[00118] FIGS. 9A and 9B are schematic diagrams that illustrate a method of performing an engineering change order of an integrated circuit design according to the example change in logic connections of FIGS. 6A and 6B, using spare-stacks 910 and 920 and a spare-route 930, according to an embodiment. The spare- stacks 910 and 920 may be embodiments of the spare-stack 105 illustrated in FIG. 2 or the spare-stacks 310, 320, 330, 340, 350, and 360 illustrated in FIG. 3, and the spare-route 930 may be an embodiment of the spare-routes 305, 325, 335, 355, and 365 illustrated in FIG. 3. As illustrated, a high congestion area of interconnect exists in the general vicinity of logic block B 640 in the physical layout of the integrated circuit design. As a result, when interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650, interconnect 685 is able to go through the high congestion area on spare-route 930 between the spare-stack 910 and the spare- stack 920. The unused spare-route 930 had been placed in the original integrated circuit design shown in FIG. 9A as part of an embodiment of the architecture of spare wiring structures discussed herein. Because the spare-route 930 was already in place through the high congestion area, the engineering change was able to make use of the spare-route 930 to route new connection 685 through the high congestion area by including the spare-route 930 as part of the new connection 685. The spare-stack 910 is split into a connected lower spare-stack 912 and an unused upper spare-stack 914, while the spare stack 920 is split into a connected upper spare-stack 922 and an unused lower spare-stack 924, by changing the interconnect within the spare-stacks 910 and 920 on interconnect layer 5. In addition, the portion of interconnect 680 that passes through interconnect layer 5 is rerouted to attach to the lower spare stack 912 rather than the rest of the former interconnect 680 that connected to the logic block A 630 in FIG. 9A (now referred to as unused interconnect 680' in FIG. 9B). Likewise, an unused interconnect connected to spare block 650 is connected to the connected spare stack 922 on interconnect layer 5 to form the rest of the interconnect 685. New interconnect 695 between the second block 620 and the spare block 650 is formed by disconnecting the interconnect 690 at interconnect layer 5 and connecting the portion of the prior interconnect 690 between the second block 620 and interconnect layer 5 with a previously unused interconnect connected to the spare block 650 at interconnect layer 5 to form new interconnect 695 between the second block 620 and the spare block 650. The now disconnected interconnect 690 of FIG. 9A is shown as unused interconnect 690' in FIG. 9B. Using the spare- stacks 910 and 920 of the architecture of spare wiring structures disclosed herein, in combination with spare-route 930, only one interconnect layer (5) needs to be revised in order to accomplish the engineering change of FIGS. 6A and 6B, compared to the five interconnect layers (5, 6, 7, 8, and 9) that must be revised as illustrated in FIGS. 7A and 7B, using the conventional method, and the two interconnect layers (5, 9) that must be revised as illustrated in FIGS. 8A and 8B using the spare-stacks only. Because the spare-stacks 910 and 920 and the spare-route 930 are already present in the original circuit design illustrated in FIG. 9A, when interconnect 680 between the first block 610 and the logic block A 630 is replaced with interconnect 685 between the first block 610 and the spare block 650 in the engineering change resulting in the layout shown in FIG. 9B, only one interconnect layer (5) must be revised. This is because the spare-stacks 910 and 920 and the spare-route 930 provide already existing but unused paths between the different interconnect layers and different regions of the integrated circuit footprint that are utilized to create the new interconnect 685 in the engineering change to produce the circuit design shown in FIG. 9B. As in FIGS. 7A and 7B, unused interconnect or wire is shown in dashed lines attached to the spare block 650 in FIG. 9A, and to disconnected logic block A 630 in FIG. 9B. Note that where an interconnect is shown passing through but not terminating at a spare-stack, the interconnect is not electrically connected with the spare-stack.
[00119] As illustrated in various embodiments, the architecture of spare wiring structures described herein minimize a number of photomasks that need to be changed during the engineering change order compared to prior methods.
[00120] FIG. 10 is a flow diagram that illustrates a design flow for an integrated circuit including post-placement insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment. FIG. 10 merely represents one embodiment, and should not be construed as limiting, as the design flow may be modified or supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein.
[00121] In the circuit design phase of the post-placement insertion of spare wiring structures design flow, circuit synthesis 1005 is performed using a computer- aided design (CAD) tool for circuit synthesis. The circuit synthesis 1005 takes as an input a register transfer logic (RTL) representation of a circuit design file 1010, and outputs a netlist file 1020. In the physical design phase of the post-placement insertion of spare wiring structure design flow, placement 1015 of circuit elements onto a physical layout of an integrated circuit design is performed using a CAD tool for placement. Placement 1015 takes as an input the netlist file 1020 and outputs a placed design (DEF) file 1030.
[00122] In the design-for-repair phase of the post-placement insertion of spare wiring structure design flow, spare wiring insertion 1025 is performed to insert spare wiring structures into the placed design (DEF) file 1030 according to the architecture of spare wiring structures disclosed herein. The spare wiring insertion 1025 may be performed by a CAD tool including modules executable by a processor to take as input a DEF 1030 and insert spare wiring structures according to the architecture of spare wiring structures disclosed herein. The spare wire insertion 1025 outputs an engineering change order (ECO)-ready layout (DEF) file 1040. The ECO-ready DEF 1040 may reduce or minimize a number of photomasks that need to be revised when making an ECO compared to prior methods of design-for-repair, or may produce a better performing or more reliable integrated circuit after the ECO than layouts produced by prior methods of design-for-repair. In the decision block 1035, it is determined whether the ECO-ready layout (DEF) file 1040 provides sufficient repairability of the integrated circuit during an ECO according to metrics discussed herein. If the ECO-ready layout (DEF) file 1040 provides sufficient repairability, the method continues to perform routing 1045, otherwise the method returns to perform spare wiring insertion 1025 again.
[00123] In some embodiments, sufficient repairability is a determination of whether or not a predefined threshold has been met for accessibility of the active design to inserted spare-resources while meeting the design constraints and also minimizing or meeting a threshold for the number of photomask layers that require modification in order to access the inserted spare-resources. The relative weighting of importance of parts of the design with respect to measuring repairability may be a function of at least one design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare- resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, behavioral intent, active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, minimum transistor gate width, and physical design constraints.
[00124] In the physical design phase of the post-placement insertion of spare wiring structures design flow, routing 1045 is performed using the ECO-ready DEF 1040 and a finalized layout (DEF) file 1060 is output. The routing 1045 may be performing using a CAD tool. After routing 1045 is performed, it is determined whether the design is routable or not in a decision block 1050. If the design represented in the ECO-ready DEF 1040 is determined to not be routable after performing routing 1045, then the design flow returns to spare wire insertion 1025. In the second and each subsequent attempt at spare wiring insertion 1025, different options and choices may be made to insert spare wiring structures into the integrated circuit design represented by the placed DEF 1030 according to the architecture of spare wiring structures disclosed herein.
[00125] In the signoff phase of the post-placement insertion of spare wiring structure design flow, after the ECO-ready DEF 1040 is determined to be routable in decision block 1050, timing/power signoff 1055 is performed using the finalized DEF 1060 produced by routing 1045. Then, physical verification 1065 is performed. CAD tools may be used to perform one or both of the timing/power signoff 1055 and physical verification 1065. After physical verification 1065 is performed, standard delay format (SDF) simulation 1070 is performed using a CAD tool. The output of the SDF simulation 1070 is a GDSII file 1076. The GDSII file 1076 represents a completed integrated circuit design layout according to an industry standard, but this should not be construed as limiting, as other file formats may be used instead to represent the completed integrated circuit design layout.
[00126] FIG. 1 1 is a flow diagram that illustrates a design flow for an integrated circuit including post-place and route insertion of spare wiring for an architecture of spare wiring structures, according to an embodiment. FIG. 1 1 merely represents one embodiment, and should not be construed as limiting, as the design flow may be modified and supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein. The design flow illustrated in FIG. 1 1 includes elements already discussed with reference to the design flow illustrated in FIG. 10, and therefore the same reference characters have been used for the same elements that appear in both figures and descriptions for elements already discussed are not repeated below. Differences between FIG. 10 and FIG. 1 1 are primarily described below.
[00127] In the post-layout insertion of spare wiring structures design flow of FIG. 1 1 in contrast to the post-placement insertion of spare wiring structures design flow of FIG. 10, routing 1 145 is performed in the physical design phase after placement 1015 is performed. The routing 1 145 outputs a layout (DEF) file 1 130. The layout (DEF) file 1 130 is used as an input to the spare wire insertion 1 125 process. In the post-place and route insertion of spare routing design flow of FIG. 1 1 in contrast to the post-placement insertion of spare wiring structure design flow of FIG. 10, it is not necessary to determine whether routing is possible after performing the spare wire insertion 1 125. This is because the routing 1 145 is performed before the spare wire insertion 1 125, and therefore the spare wire insertion 1 125 does not impact whether or not routing 1 145 can be performed. Therefore, after it is determined that spare wire insertion 1 125 to produce the ECO- ready layout (DEF) 1040 provides sufficient repairability in decision block 1 135, the design flow for post-place and route insertion of spare routing proceeds to the signoff phase. In the post-place and route insertion of spare wiring structure design flow of FIG. 1 1 in contrast to the post-placement insertion of spare wiring structure design flow of FIG. 10, timing/power signoff takes as input the ECO-ready layout (DEF) 1 140 produced by spare wire insertion 1 125, and the GDSII file 1 175 is produced following SDF simulation 1070.
[00128] In the post-placement insertion of spare wiring structure design flow of FIG. 10, the design-for-repair phase is situated between two different segments of the physical design phase. In the post-place and route insertion of spare wiring structure design flow of FIG. 10, the design-for-repair phase is situated between the complete physical design phase and the signoff phase. The benefit of the post- place and route insertion of spare wiring structure design flow is that iterations of both spare wire insertions and routing followed by analysis to determine whether the design including the spare wiring structures is routable need not be performed, unlike in the post-placement insertion of spare wiring structure design flow. The benefit of the post-placement insertion of spare wiring structure design flow is that since the spare wiring structures are inserted into the design prior to routing, a more efficient routing that takes into account both the architecture of spare wiring structures and the integrated circuit design may be achieved.
[00129] FIG. 12 is a flow diagram that illustrates a design flow for an integrated circuit including insertion of spare wiring for an architecture of spare wiring structures integrated with place and route of active electronic circuits, according to an embodiment. FIG. 12 merely represents one embodiment, and should not be construed as limiting, as the design flow may be modified and supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein. The design flow illustrated in FIG. 12 includes elements already discussed with reference to the design flow illustrated in FIG. 10, and therefore the same reference characters have been used for the same elements that appear in both figures and descriptions for elements already discussed are not repeated below. Differences between FIG. 10 and FIG. 12 are primarily described below.
[00130] FIG. 12 represents a third embodiment in which part or all of the spare resource (e.g., spare wiring structures, spare cells, etc.) insertion method is integrated within the placement and routing stages for the active electronic circuit design. One or more of access-location insertion (e.g., spare-stack insertion) and spare-route insertion may be integrated with the conventional place and route stages of integrated circuit electronic design automation. In particular, access- location insertion may be integrated with the conventional placement stage by first designating spare-stacks as placeable objects for the placement tool and then using the placement tool to place the spare-stacks at the same time active cells (e.g., active eletronic circuits) are placed. Spare-route insertion may be integrated with the conventional routing stage by first designating the intended spare-route as a routable wire in the design specification and then using the routing tool to route the spare-routesat the same time active wires are routed. [00131] In contrast to the design flow of FIG. 10, the physical design and design-for-repair phases have been integrated together within a single physical design with integrated spare wiring structure insertion phase. In conjunction with placement of active electronic circuit elements in step 1215, spare-stacks are also inserted in the physical design in step 1220. The placement 1215 receives the netlist 1020 as is also the case in FIG. 10. The placement 1215 outputs a placed design (DEF) 1230 which is input to the next step in the design flow, routing 1245.
[00132] The routing 1245 of active electronic circuit elements and interconnects is integrated with spare-route insertion 1235. Following routing 1245, it is determined whether the design is routable or not in a decision block 1250. If the design represented in the placed design (DEF) 1230 in combination with the spare-route insertion 1235 is determined to not be routable after performing routing 1245, then the design flow returns to routing 1245. In the second and each subsequent attempt at routing 1245, different options and choices may be made to insert spare routes into the integrated circuit design represented by the placed design (DEF) 1230 according to the architecture of spare wiring structures disclosed herein. In alternative embodiments, the method may return to placement 1215 instead of routing 1245, possibly depending upon how many routing failures occur. The output of routing 1245, finalized layout (DEF) 1260, is input to the signoff phase as discussed previously with respect to FIG. 10. The output of the signoff phase is a GDSII file 1275 representing the complete completed integrated circuit design layout.
[00133] FIGS. 13A and 13B are a flow diagram that illustrates a method 1300 of inserting spare wiring structures in an integrated circuit design, according to an embodiment. FIGS. 13A and 13B represent a single embodiment of the method 1300, with reference characters (A) and (B) enclosed in circles representing a flow of the method 1300 from FIG. 13A to FIG. 13B and vice-versa. In the stage outcome column on the right side of FIGS. 13A and 1 3B, illustrations of an exemplary integrated circuit layout resulting from each stage of the method 1300, as indicated by dashed arrows, is shown. While the stages of the embodiment are shown in a particular order, this should not be construed as limiting, as in various embodiments, the stages included in the method 1300 and the order of stages may be modified or supplemented according to the circumstances and requirements of different integrated circuit designs and organizations performing integrated circuit designs without departing from the teachings of the architecture of spare wiring structures disclosed herein.
[00134] In a place and route stage, spare-cell and design-cell placement 1302 is performed. A CAD tool may be used to perform the placement. An integrated circuit layout 1304 is produced as an output of the placement 1302. Illustrated as black rectangles, spare-cells 1306 may be sprinkled throughout the integrated circuit layout 1304. Following the placement 1302, if a post-place and route insertion of spare wiring structure design flow is being performed, routing 1308 is performed.
[00135] In the access-location-structure (ALS) insertion stage, access- location-structure (ALS) insertion 1310 is performed. Access-location-structure insertion 1310 inserts access-location-structures 1314 near spare-cells to improve access to spare resources, e.g., spare-cells 1306. Improved access to spare resources facilitates ECOs having a reduced number of photomask revisions or improved performance of the circuit following the ECO compared to conventional approaches to design for repair. A CAD tool may be used to perform the access- location-structure insertion 1310. An integrated circuit layout 1312 is produced as an output of the access-location-structure insertion 1310. Illustrated as star-shaped objects, access-location-structures 1314 may be sprinkled throughout the integrated circuit layout 1312 near the spare-cells 1306. In some embodiments, spare-cell access-location-structures are inserted independent of the placement of active cells while in other embodiments spare-cell access-location-structures are inserted at the same time active cells are placed during an integrated placement stage.
[00136] Exemplary pseudocode for a spare-cell access-location-structure insertion that is integrated with the placement of active cells follows:
1. For each spare-cell s in all spare-cells
a. Determine which access-location-structure architecture A, to use b. Designate the access-location-structure (ALS) to be a placeable
object as required for placement by the other placement method c. Specify to the placement method or enforce by some mechanism that the ALS and s be placed in close proximity to each other.
2. Invoke the other placement method to place all access-location-structures and active cells simultaneously 3. If necessary, remove or modify any mechanisms used to enforce that ALS and s be placed in close proximity to each other.
[00137] Exemplary pseudocode for a spare-cell access-location-structure insertion algorithm to insert access-location-structures 1314 near all spare-cells 1306 to increase accessibility to spare resources follows:
1. For all spare-cells
a. Determine spare-cell coordinate C,
b. Determine which access-location-structure architecture A, to use c. Determine an offset δ,
d. Determine a bounding box B, of size e, centered at Ο,+δ,
e. Repeat for max attempts
i. Attempt insertion for architecture A, in bounding-box B, ii. If insertion fails
1 . Determine new value for one or more of A,, e,, and δ, iii. else
1 . exit loop
[00138] In some embodiments, a mechanism to enforce that ALS and s be placed in close proximity is a direct physical connection such as a wire. For this embodiment, the wire would be removed after placement is complete. In some embodiments, this wire may be connected to the circuit in such a way that it minimizes the impact to the active circuit such as by connecting the wire to scan chain circuitry close to s in the netlist. In another embodiment, the wire connection between the ALS and s is specified in the netlist while an electrical disconnection between the ALS and s exists in the physical design. This can be achieved by inserting a cell to decouple the ALS and s thereby creating a new connection in the netlist between the inserted cell and the ALS and a separate connection in the netlist between the inserted cell and the spare-cell. In some embodiments the inserted cell may consist solely of two pins that are physically isolated in order to achieve an open-circuit function.
[00139] For those embodiments in which the ALS is wired to s either directly or through a cell, a constraint such as a timing constraint may be used to ensure that the placement method places an ALS in the vicinity of s. For some embodiments, the proximity between the ALS and s can be reduced by specifying to the placement method that an increased effort should be made to reduce the length of the wire between ALS and s. [00140] For some embodiments, the proximity between the ALS and s can be limited by specifying that ALS and s belong to either a fixed or floating bounding box constraint. For a fixed bounding box constraint, the ALS and s must be placed within a bounding box that itself has a fixed location in the physical design. For a floating bounding box constraint, the ALS and s must be placed within a bounding box that itself can be placed at any location in the physical design.
[00141] Note regarding line 1 (b): access-location-structure architectures may include one or more fixed vertical spare-stacks and routed vertical spare-stacks. Some arrangements may include junction architectures to maximize routing connectivity. Determination of the A is dependent on one or more of the local and/or global design characteristics and constraints of the integrated circuit design, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00142] Possible logical design characteristics include various measures of circuit centrality, timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing ECOs, the importance of the various functions of the integrated circuit to the end user, and behavioral intent as specified in specifications of the design at higher levels of abstraction. The logical design characteristics may be considered at a regional level within the logic design of the integrated circuit or for the entirety of the logic design of the integrated circuit. In one embodiment, demand is determined by local and/or global design characteristics, including but not limited to logic complexity, logic structure, logic composition (combinational, sequential), logic status (new, legacy, etc.), and logic test coverage. Possible physical design characteristics include active interconnect congestion, estimated supply of spare-resources, timing information, circuit power information, active interconnect design information, and minimum transistor gate width or line width. The physical design characteristics may be considered at a regional level within the physical design of the integrated circuit or for the entirety of the physical design of the integrated circuit.
[00143] Centrality of a circuit element in the circuit design may be a combination of two or more measures of circuit centrality based on centrality measures as found in graph-theory and network-theory. Examples of such centrality measures include Degree centrality, Closeness centrality, Eigenvalue centrality, Betweenness centrality, Katz centrality, Percolation centrality, and Cross- Clique Centrality.
[00144] Behavioral intent of a design includes the intended behavior of various parts of the integrated circuit as specified by a high-level behavioral description of the circuit using the behavioral specification features of languages such as VHDL, Verilog, SystemC, SystemVerilog, Matlab, C++, and Python. For example, the anticipated need for spare flip-flops in a part of the design may vary depending on whether or not the part of the design implements a state machine.
[00145] The relative risk of various parts of the integrated circuit can be specified by the user or by one or more measures such as the following: the relative test coverage of the part, its amenability to formal verification, the degree to which it has been subjected to formal verification, its amenability for functional verification, and the degree to which it has been subjected to functional verification.
[00146] Relative importance of different parts of the design is based on the anticipated importance of the features they implement from the perspective of the end user of the integrated circuit.
[00147] Typical known design repair patterns include the expected ratio of sequential to combinational logic repairs that occurs in a typical design of the same overall size and nature.
[00148] Note regarding line 1 (e): the number of attempts and the range of values for A, e, and δ are determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but are not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00149] Note regarding line 1 (e)(ii)(1 ): Exemplary pseudocode for a function to determine how the bounding box, B,, its offset, δ, = (Δχ, Ay), and architecture A, are determined while inserting access-location-structures near spare cells in ^ [00137]:
(e, δί, A)= get_next_bb_values()
1 . For first call to this function for i
a. e = two minimum wire lengths
b. ¾ = (0,0)
c. return e and δ,
2. For subsequent calls to this function,
a. choose next δί from {(0,0), (0, e/2), (0, -e/2), (e/2,0), (-e/2,0)} b. if all δί attempted for current e,
o minimum wire lengths
Figure imgf000044_0001
c. If e is greater than e max, where e max <=1000 minimum wire lengths
i. Get new architecture A,
inimum wire lengths
Figure imgf000044_0002
3. return e, δί, and A,
[00150] Note regarding line 1 (C)(i): Exemplary pseudocode for a function to determine the next architecture, A,, of the access-location-structure i to be inserted into the design:
(Ai)= get_architecture ()
1 . For first call to this function
a. A, = (four stack spare-junction)
2. For subsequent calls to this function
a. A, = (spare-stack)
3. return A,
[00151] Note regarding line 1 (e)(i): in one embodiment, fixed vertical spare- stacks can be inserted using a brute-force approach. For routed vertical spare- stacks, one embodiment for insertion includes a shortest-path route. The shortest- path route can be implemented within the algorithm or by a third-party routing tool.
[00152] Following the access-location-structure insertion 1 310, a secondary access-location-structure insertion 1316 may optionally be performed. The secondary access-location-structure insertion 1316 places access-location- structures (ALS's) 1318 throughout the integrated circuit design according to a template 1320 or via an algorithm. The access-location-structures 1318 are placed near circuit elements of the integrated circuit design, as opposed to near spare- cells 1306 as the access-location-structures 1314 are placed. Accordingly, the additional ALS's 1318 may provide increased accessibility to the integrated circuit design for use in performing ECOs by the secondary access-location-structures 1318 placed throughout the integrated circuit design. In one embodiment, a grid- directed overlay is used to insert the secondary access-location-structures. In another embodiment, additional access-location-structures are inserted by function- directed overlay that predicts improved utility and is based on the design function. In another embodiment, additional access-location-structures are inserted by integrating the placement of ALSs with the placement of active cells.
[00153] Exemplary psuedocode for the optional design-aware overlay to insert secondary access-location-structures in the integrated circuit design follows:
1 . Determine a set of design nodes D in the netlist description of the integrated circuit deemed to have a higher need for repairability
2. For all design nodes in D
a. Determine design-node coordinate C,
b. Determine which access-location-structure architecture A, to use c. Determine an offset δ,
d. Determine a bounding box B, of size e, centered at Ο,+δ,
e. Repeat for max attempts
i. Attempt insertion for architecture A, in bounding-box B, ii. If insertion fails
1 . Determine new value for one or more of Α,, ε,, and δ, iii. else
1 . exit loop
[00154] Note regarding line 1 (e)(2)(i): The new values for Α,, ε,, and δ, can be determined using get_next_bb_values().
[00155] Exemplary pseudocode for an integrated approach to inserting secondary access-location-structures 1318 in the integrated circuit design follows:
1 . Determine a set of nodes P in the functional specification of the integrated
circuit deemed to have a higher need for repairability
2. For all design nodes p in P
a. Determine which access-location-structure architecture A, to use b. Designate access-location-structure (ALS) to be a placeable object as required for placement by the placement method
c. Specify to the placement method or enforce by some mechanism that the ALS and p be placed in close proximity to each other.
3. Invoke the other placement method to place all access-location-structures and active cells simultaneously
4. If necessary or appropriate, remove or modify any mechanisms used to enforce that ALS and p be placed in close proximity to each other.
[00156] In some embodiments, a mechanism to enforce that ALS and p be placed in close proximity to each other is a direct physical connection such as a wire. For this embodiment, the wire would be removed after placement is complete. In some embodiments, this wire may be connected to the circuit in such a way that it minimizes the impact to the active circuit such as by connecting the wire to scan circuitry close to p in the netlist. In another embodiment, the wire connection between the ALS and p is specified in the netlist while an electrical disconnection between the ALS and p exists in the physical design. This can be achieved by inserting a cell to decouple the ALS and p thereby creating a new connection in the netlist between the inserted cell and the ALS and a separate connection in the netlist between the inserted cell and the spare-cell. In some embodiments the inserted cell may consist solely of two pins that are physically isolated in order to achieve an open-circuit function.
[00157] For those embodiments in which the ALS is wired to p either directly or through a cell, a constraint such as a timing constraint may be used to ensure that the placement method places an ALS in the vicinity of p. For some embodiments, the proximity between the ALS and p can be reduced by specifying to the placement method that an increased effort should be made to reduce the length of the wire between ALS and p.
[00158] For some embodiments, the proximity between the ALS and p can be limited by specifying that the ALS and p belong to either a fixed or floating bounding box constraint. For a fixed bounding box constraint, the ALS and p must be placed within a bounding box that itself has a fixed location in the physical design. For a floating bounding box constraint, the ALS and p must be placed within a bounding box that itself can be placed at any location in the physical design.
[00159] For embodiments in which both spare-cell access-location-structures and the secondary access-location-structures are both inserted via an integrated approach, both types of access-location-structures will be placed at the same time with the placement of active cells.
[00160] In some embodiments, the following set of rules apply to the selection of which nodes P are selected from parts of the design deemed to have a higher need for repairability:
• parts located near areas with high routing congestion
• parts calculated to have a higher degree of centrality
• parts with a higher predicted need for repairability based on size and complexity
• parts with less overall timing slack
• parts in which few ALS's have already been placed such as during spare-cell ALS's insertion
• parts determined to be at higher risk of ECO's • parts with functionality determined to be of higher importance to the end user of the integrated circuit
• parts in which behavioral intent determines importance with behavioral intent specified in specifications of the design at higher levels of abstraction
• parts more likely to be important based on known repair patterns
[00161] Exemplary pseudocode for an optional grid-directed overlay to insert secondary access-location-structures 1318 in the integrated circuit design follows:
1 . Determine an access-location grid G based on design
2. For all grid row and column intersection points in G
a. Determine intersection point coordinate C,
b. Determine which access-location-structure architecture A, to use c. Determine an offset δ,
d. Determine a bounding box B, of size e, centered at Ο,+δ,
e. Repeat for max attempts
i. Attempt insertion for architecture A, in bounding-box B, ii. If insertion fails
1 . Determine new value for one or more of Α,, ε,, and δ, i. else
1 . exit loop
[00162] Note regarding line 2(e)(ii)(1 ): The new values for Α,, ε,, and δ, can be determined using get_next_bb_values().
[00163] Note regarding line 1 : Selection of G is based on one or more of the local and/or global design characteristics and constraints, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints. The granularity of the grid may differ for different regions of the grid based on one or more of the local design characteristics and constraints, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00164] Note regarding line 2(a): ε, is determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but is not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00165] Note regarding line 2(b): The value of Nmax is determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but is not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00166] Note regarding line 2(d)(i): Access-location-structure architectures include one or more fixed vertical spare-stacks and routed vertical spare-stacks. Some arrangements include junction architectures to maximize routing connectivity. Determination of the A is dependent on one or more of the local and/or global design characteristics and constraints, including but not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00167] Note regarding line 2(d)(ii): The number of attempts and the range of values of e is determined by one or more of the proximity to other access-locations and the local and/or global design characteristics and constraints, which may include but are not limited to logical design characteristics, physical design characteristics, and physical design constraints.
[00168] Note regarding line 2(e)(ii)(1 ): In one embodiment, fixed vertical spare-stacks can be inserted using a brute-force approach. For routed vertical spare-stacks, one embodiment for insertion includes a shortest-path route. The shortest-path route can be implemented within the algorithm or by a third-party routing tool.
[00169] The grid-of-points approach to grid-directed overlay of the secondary access-location-structure insertion 1316 is an exemplary embodiment, and should not be considered limiting, as secondary access-location-structure insertion 1316 may be performed using different approaches in various embodiments. More generally, secondary access-location-structure insertion 1316 may insert access- location-structures 1318 throughout various locations in the integrated circuit design according to a template, e.g., the template 1320. Embodiments of the template 1320 may include a grid-of-points, a grid-of-regions with each region calling for a specific value or range of values for density of access-location- structures 1318. Characteristics of the template 1320 may be determined according to characteristics of the integrated circuit design, the integrated circuit layout, and constraints placed upon either or both of the integrated circuit design and layout. An integrated circuit layout 1322 is produced as an output of the secondary access-location-structure insertion 1316, including the access-location- structures 1318 illustrated near circuit elements of the integrated circuit design sprinkled in the integrated circuit design layout.
[00170] Although access-location designation 1310 and secondary access- location-structure insertion 1316 are illustrated as being performed in one order in FIG. 13A, this should not be construed as limiting, as in various embodiments, they may be performed in an opposite order. Regardless of which of the two aforementioned steps are performed first, the second of the two steps (1310 or 1316) may take into account the locations of the access-location-structures (1318 or 1314) inserted by the first of the two steps when determining where to insert its own access-location-structures (1314 or 1318). In this way, an access-location density constraint may be adhered to in the access-location designation stage of the insertion method 1300.
[00171] In the spare-routing stage, spare-routing insertion 1324 may optionally be performed. A CAD tool may be used to perform the spare-routing insertion 1324. An integrated circuit layout 1326 is produced as an output of the spare-routing insertion 1324. Spare-routes 1328 may be inserted into the integrated circuit layout as disclosed herein and as illustrated in the exemplary integrated circuit layout 1326.
[00172] During spare-routing insertion 1324, routing connections (e.g., spare- routes 1328) between neighboring access-location-structures (e.g., ALS's 1314 and ALS's 1318) can optionally be added. An algorithm may be used to insert these connections to improve routability while meeting user-defined constraints. In one embodiment, one such user-constraint is a maximum allowed wire-density. In this embodiment, a mesh generation algorithm based on Delaunay triangulation may be used determine connectivity. This approach constructs a grid of triangles with vertices defined by access-locations and edges defined by the spare-routing wires between access-locations. Edges are selectively removed from the mesh based on one or more of the maximum allowed density of edges in a region, the local and/or global design characteristics, the local and/or global layout characteristics, and the local and/or global design constraints.
[00173] In some embodiments, the following set of rules apply to the selective removal of edges:
• regions with high routing congestion have a reduced density of spare routing • regions of higher centrality have an increased density of spare routing
• regions with a higher predicted need for repairability have an increased density of spare routing
• regions in which few ALS's have already been placed such as during spare- cell ALS's insertion have an increased density of spare routing
• regions determined to be at higher risk of ECO's have an increased density of spare routing
• regions with functionality determined to be of higher importance to the end user of the integrated circuit have an increased density of spare routing
• regions in which behavioral intent determines importance with behavioral intent specified in specifications of the design at higher levels of abstraction have an increased density of spare routing
• regions with less overall timing slack have an increased density of spare routing
• regions more likely to be important based on known repair patterns have an increased density of spare routing
[00174] Following the optional spare-routing insertion 1324, grid restructuring 1330 may be performed. A CAD tool may be used to perform the grid restructuring 1330. When a spare access-location-structure (e.g., ALS 1314 or ALS 1318) or spare-routing wire (e.g., spare-route 1328) is found to cause a design error during the sign-off stage (discussed below), the grid of spare resources is modified. In one embodiment, the offending access-location-structure and/or spare-routing wire can be removed. The grid restructuring 1330 may remove some spare-stacks (e.g., spare-stacks at ALS's 1314 or ALS's 1318) and some spare-routings 1328 as a result of failed tests during the sign-off stage, as the grid restructuring 1330 may be executed if a spare-routing or spare-stack problem is determined to exist in the signoff stage. An integrated circuit layout 1332 is produced as an output of the grid restructuring 1330. As illustrated, the integrated circuit layout 1332 shows some changes in the spare-routing and spare-stacks compared to the integrated circuit layout 1326 due to the grid restructuring 1330.
[00175] Once the spare-wire connectivity has been determined, wires are routed by a separate routing method or by a routing method. Depending on the embodiment, routing of spare-wires can take place before the routing of active wires, after the routing of active wires, or at the same time as in the case of an integrated routing approach. In the case of an integrated routing approach, spare- wires and treated in the same way as active-wires and are thus routed at the same time.
[00176] Following the spare-routing stage, if a post-placement insertion of spare wiring structure design flow is being performed, routing 1334 is performed in another layout stage. If routing 1334 is performed, then a determination is made based on the routing 1334 whether the integrated circuit design including the spare- cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328 is routable in step 1336. If it is not routable, the method 1300 returns to grid restructuring 1330 to restructure the integrated circuit design including the spare-cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328. If the integrated circuit design including the spare-cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328 is determined to be routable, the method 1300 proceeds to the signoff stage. Timing/power, physical verification, and SDF simulation 1338 are first performed. In a step 1340, if a spare-routing or spare-stack problem is determined to exist after the timing/power, physical verification, and SDF simulation 1338 are performed, the method 1300 returns to grid restructuring 1330 to restructure the integrated circuit design including the spare-cells 1306, ALS's 1314, ALS's 1318, and spare-routes 1328. In a step 1342, if a spare-cell problem is determined to exist after the timing/power, physical verification, and SDF simulation 1338 are performed, the method 1300 returns to spare-cell and design-cell placement 1302 in the initial layout stage. If no problems are detected, then the method 1300 finishes.
[00177] FIG. 14 is a block diagram that illustrates a method 1400 of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment. In order to facilitate performing an ECO, a design layout description 1410, a design netlist description 1420, design constraints 1430, and timing information 1440 are accessed in a step 1450. A set of access-location- structures are then determined and inserted into the layout description in a step 1460. The access locations at which the access-location-structures are inserted are determined according to the design layout description 1410, a design netlist description 1420, design constraints 1430, and timing information 1440. Initial locations are selected based on a design structure and topology such that various nodes and nets are weighted differently depending on a combination of one or more of their centrality, their influence on the rest of the design, their timing information, including but not limited to slack, and their influence on circuit state. Once a set of access locations has been determined, a subset of all connections between the access locations is determined based on a lowest-cost function derived from one more or more of the design netlist 1420, the design layout 1410, design constraints 1430, and timing information 1440 in a step 1470. Once the set of all connections has been identified, spare-routes are generated for all connections and inserted into the design layout description in a step 1480. In some embodiments, a path by which a connection is routed is determined manually by the user, while for other embodiments it is determined automatically or by a third party tool in the CAD environment. Many variations on the embodiments illustrated and discussed are possible and within the scope of the disclosure.
[00178] A method for the insertion of spare wiring structures into the physical design of an integrated circuit may include the following steps:
a) accessing a layout description of an integrated circuit having a description of the elements of the design relevant to physical layout including the netlist and the design constraints;
b) determining a set of one or more design access-sites and spare- component access-sites in the physical design;
c) inserting into the layout description of the integrated circuit an access structure for each of the access-sites;
d) determining a set of connections between one or more of the design and spare-component access-sites in the layout description; and
e) inserting into the layout description of the integrated circuit a path for each of the connections.
[00179] A spare-component may include a spare-cell or spare-resource as discussed elsewhere herein. A design access-site may include an access-location proximate to an active element of the circuit design, and a spare-component access-site may include an access-location proximate to a spare-resource. An access-structure may include an access-location-structure or a spare-stack as discussed elsewhere herein. A connection or path between one or more of the design and spare-component access-sites may include a spare-route as discussed elsewhere herein.
[00180] In the method for inserting spare wiring structures, step b) may include the following steps which can be accomplished in any order:
f) determining a set of one or more design access-sites; and
g) determining a set of one or more spare-component access-sites.
[00181] In the method for inserting spare wiring structures, step f) may include the following steps:
h) determining an initial location for each of the access-sites based on a lowest-cost function; and
i) determining the lowest-cost feasible site of the physical layout based on the initial location.
[00182] The lowest-cost function in h) may be based at least in part on one or more of the design structure, design topology, net timing information, existing layout description, and a prioritization of design components based on a predicted need for repairability as specified by either or both of the user and an external CAD tool.
[00183] The lowest-cost function in h) can be based at least in part on design structure and topology such that either or both of the nodes and nets of the design netlist can be prioritized based on one or more of their centrality and their ability to influence state.
[00184] The lowest-cost function in h) can be based at least in part on net timing information such that nets are prioritized based on their timing slack.
[00185] The lowest-cost function in i) may be based at least in part on the design layout, timing information, and constraints such that one or more of a minimization of routing congestion and a minimization of net timing delay are achieved.
[00186] In the method for inserting spare wiring structures, step g) may include the following steps:
j) determining the set of all spare resources from the design layout description;
k) determining a prioritization of the spare resources based on a lowest-cost function; I) determining the location of all inputs and outputs of the subset of spare resources; and
m) determining a lowest-cost initial location for a spare-access site for a spare access point based on the physical layout based for each initial location.
[00187] In the method for inserting spare wiring structures, step c) may include inserting a spare-stack structure.
[00188] In the method for inserting spare wiring structures, step e) may include inserting into the layout description a description for an additional wire to implement each connection. The path taken by the wire can be determined manually, automatically by a routing algorithm, or by an external CAD tool.
[00189] In the method for inserting spare wiring structures, step d) may include:
n) determining the set of all pair combinations of the access-sites;
o) determining a subset of the pair combinations such that all members of the subset are determined to be feasible; and
p) determining a priority of the subset of feasible pair combinations based on a lowest-cost function based on the netlist, the existing layout, design constraints, and timing information.
[00190] FIG. 15 is a block diagram that illustrates a computer system 1500 that performs a method of inserting spare wiring structures in a layout description of an integrated circuit, according to an embodiment. The computer system 1500 uses one or more processors 1505 to insert spare wiring structures into a design layout description of an integrated circuit based on at least one of a design netlist description, a design layout description, constraint information, timing information, user-provided information, and information provided by an EDA or CAD environment. The one or more processors 1505, one or more read-only memories (ROM) 1510, one or more main memories 1515, miscellaneous storage devices 1520, a user input interface 1525, a user output interface 1530, a storage interface 1535, and an intra-system communications interface 1540 are communicatively coupled with one another via a bus hierarchy 1545. The user input interface 1525 is communicatively coupled with a user input device 1550, which may include a keyboard, a mouse, a trackpad, a touchscreen, a microphone, a scanner, or other device as known in the art for a user to input data or commands into the computer system 1500. The user output interface 1530 is communicatively coupled with a user display device 1555, which may include a CRT video monitor, an LCD video monitor, an LED video monitor, a plasma display video monitor, an OLED video monitor, indicator lights, a printer, a plotter, or other device as known in the art for a user to view information output and displayed from the computer system 1500. The storage interface 1535 is communicatively coupled with file storage 1560, which may store data and program files created or accessed by the computer system 1500. The file storage 1560 may include any computer-readable storage medium capable of storing data or executable program files, for example, non-transitory magnetic storage media (e.g., magnetic tapes, hard disks, floppy disks), non- transitory optical recording media (e.g., CD-ROMs, Digital Versatile Discs (DVDs), etc.), and non-transitory solid state memory (e.g., random-access memory (RAM), read-only memory (ROM), static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, thumb drives, etc.). The file storage 1560 may also be distributed over network coupled computer systems. Other devices, systems, and processes 1565 that may perform other methods may also access the file storage 1560 and communicate with the computer system 1500 via the intra-system communications interface 1540.
[00191] The foregoing specification of the embodiments has been described with specific elements. Various modifications and changes may be made to the foregoing specification of the embodiments without departing from their broader spirit and scope. For example, the specific arrangements of the spare wiring structures are purely illustrative. Thus, different or additional configurations may be used alternatively. The specific illustrations of the spare wiring structures are correspondingly only to be regarded as illustrative and not restrictive. Additionally, the term "metal layer" is used to refer to an integrated circuit fabrication layer, possibly but not necessarily constructed either partially or entirely of metal, that is parallel to the base fabrication layers. A "metal layer" is predominantly used to construct interconnect structures, such as wires or "routes", that are aligned in a plane that is parallel to the base fabrication layers. Similarly, the term "via layer" is used to refer to an integrated circuit fabrication layer, possibly but not necessarily constructed either partially or entirely of metal, that is parallel to the base fabrication layers. A "via layer" is predominantly used to construct interconnect structures, such as wires or "vias", that connect interconnect structures from adjacent metal layers. The term "spare-cells" is used to refer to spare or unused resources in the physical design of an integrated circuit such as transistors or logic gates. Spare- cells are normally used to perform ECOs on both pre- and post-fabrication integrated circuit designs. The term "spare-cell" is not intended to imply a particular implementation of a spare resource, and therefore can apply to standard cell-based spare-cells, metal-configurable gate-array spare-cells, or any other form of spare- resource that can be used to construct or modify circuit elements.
[00192] All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.
[00193] For the purposes of promoting an understanding of the principles of the invention, reference has been made to the embodiments illustrated in the drawings, and specific language has been used to describe these embodiments. However, no limitation of the scope of the invention is intended by this specific language, and the invention should be construed to encompass all embodiments that would normally occur to one of ordinary skill in the art. Descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in other embodiments unless stated otherwise. The terminology used herein is for the purpose of describing the particular embodiments and is not intended to be limiting of exemplary embodiments of the invention. In the description of the embodiments, certain detailed explanations of related art are omitted when it is deemed that they may unnecessarily obscure the essence of the invention.
[00194] The apparatus described herein may comprise a processor, a memory for storing program data to be executed by the processor, a permanent storage such as a disk drive, a communications port for handling communications with external devices, and user interface devices, including a display, touch panel, keys, buttons, etc. When software modules are involved, these software modules may be stored as program instructions or computer readable code executable by the processor on a computer-readable media such as non-transitory magnetic storage media (e.g., magnetic tapes, hard disks, floppy disks), non-transitory optical recording media (e.g., CD-ROMs, Digital Versatile Discs (DVDs), etc.), and non- transitory solid state memory (e.g., random-access memory (RAM), read-only memory (ROM), static random-access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), flash memory, thumb drives, etc.). The computer readable recording media may also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. This computer readable recording media may be read by the computer, stored in the memory, and executed by the processor.
[00195] Also, using the disclosure herein, programmers of ordinary skill in the art to which the invention pertains may easily implement functional programs, codes, and code segments for making and using the invention. When the disclosure refers to a computer, processor, module, or tool being used to perform a task, this terminology should be interpreted broadly to also include the computer, processor, module, or tool performing the task, e.g., the task is performed by the computer, processor, or tool.
[00196] The invention may be described in terms of functional block components and various processing steps. Such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions. For example, the invention may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. Similarly, where the elements of the invention are implemented using software programming or software elements, the invention may be implemented with any programming or scripting language such as C, C++, JAVA®, assembler, or the like, with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements. Functional aspects may be implemented in algorithms that execute on one or more processors. Furthermore, the invention may employ any number of conventional techniques for electronics configuration, signal processing and/or control, data processing and the like. Finally, the steps of all methods described herein may be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. [00197] For the sake of brevity, conventional electronics, control systems, software development and other functional aspects of the systems (and components of the individual operating components of the systems) may not be described in detail. Furthermore, the connecting lines, or connectors shown in the various figures presented are intended to represent exemplary functional relationships and/or physical or logical couplings between the various elements. It should be noted that many alternative or additional functional relationships, physical connections or logical connections may be present in a practical device. The words "mechanism", "element", "unit", "structure", "means", and "construction" are used broadly and are not limited to mechanical or physical embodiments, but may include software routines in conjunction with processors, etc.
[00198] The use of any and all examples, or exemplary language (e.g., "such as") provided herein, is intended merely to better illuminate the invention and does not pose a limitation on the scope of the invention unless otherwise claimed. Numerous modifications and adaptations will be readily apparent to those of ordinary skill in this art without departing from the scope of the invention as defined by the following claims. Therefore, the scope of the invention is defined not by the detailed description of the invention but by the following claims, and all differences within the scope will be construed as being included in the invention.
[00199] No item or component is essential to the practice of the invention unless the element is specifically described as "essential" or "critical". It will also be recognized that the terms "comprises," "comprising," "includes," "including," "has," and "having," as used herein, are specifically intended to be read as open-ended terms of art. The use of the terms "a" and "an" and "the" and similar referents in the context of describing the invention (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless the context clearly indicates otherwise. In addition, it should be understood that although the terms "first," "second," etc. may be used herein to describe various elements, these elements should not be limited by these terms, which are only used to distinguish one element from another. Furthermore, recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein.

Claims

WHAT IS CLAIMED IS:
1 . A method for insertion of spare wiring structures into an integrated circuit, the method comprising:
determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures into the integrated circuit, the determined architecture depending upon a design characteristic or design characteristic value, the spare wiring structures including a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers disposed on one or both sides of a substrate including a plurality of electronic devices, the plurality of interconnect layers including at least one horizontal interconnect layer and at least one vertical-interconnect-access (VIA) layer, the plurality of spare electrically conductive interconnect layer structures being electrically isolated from a plurality of active electrically conductive interconnect layer structures;
inserting spare wiring structures into a physical design of the integrated circuit according to the determined architecture; and
outputting an engineering-change-order-ready integrated circuit layout.
2. The method of claim 1 , wherein the design characteristic includes at least one design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, behavioral intent, active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, minimum transistor gate width, and physical design constraints.
3. The method of claim 1 , further comprising:
routing active electronic circuit elements and interconnects after the inserting of spare wiring structures; determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and
if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
4. The method of claim 1 , further comprising:
determining whether the physical design with inserted spare wiring structures is sufficiently repairable during an engineering change order; and
if the physical design with inserted spare wiring structures is determined to be not sufficiently repairable, repeating the determining the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
5. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to at least one logical design characteristic of the integrated circuit selected from the group consisting of a measure of circuit centrality, logical circuit timing information, circuit switching or activity information, estimated demand for spare-resources, circuit complexity, circuit confidence level, circuit test coverage, circuit importance when performing an engineering change order, importance of various functions of the integrated circuit, known repair patterns, and behavioral intent.
6. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to at least one physical design characteristic of the integrated circuit selected from the group consisting of active interconnect congestion, estimated supply of spare-resources, physical circuit timing information, circuit power information, active interconnect design information, and minimum transistor gate width.
7. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to physical design constraints.
8. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to a measure of circuit centrality, the measure of circuit centrality including at least one measure selected from the group consisting of degree centrality, closeness centrality, eigenvalue centrality, betweenness centrality, Katz centrality, percolation centrality, and cross- clique centrality.
9. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to intended behavior of various parts of the integrated circuit as specified by a high-level behavioral description of the integrated circuit.
10. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to relative risk for repairs of various parts of the integrated circuit.
1 1 . The method of claim 10, wherein the relative risk for repairs is specified by at least one measure selected from the group consisting of relative test coverage of the integrated circuit, amenability to formal verification, degree to which the integrated circuit has been subjected to formal verification, amenability for functional verification, and degree to which the integrated circuit has been subjected to functional verification.
12. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to relative importance of different parts of the integrated circuit based on anticipated importance of features implemented.
13. The method of claim 1 , wherein the inserting of spare wiring structures into the physical design of the integrated circuit is according to typical known repair patterns.
14. The method of claim 1 , further comprising:
routing of active electronic circuit elements before the insertion of the spare wiring structures.
15. The method of claim 1 , wherein the spare wiring structures include a plurality of access-location-structures, and the inserting of spare wiring structures includes inserting a plurality of access-location-structures in locations in the integrated circuit layout according to a calculated utility of providing access to the access-location- structures from a spare-cell.
16. The method of claim 1 , wherein the spare wiring structures include a plurality of access-location-structures, and the inserting of spare wiring structures includes inserting a plurality of access-location-structures in locations in the integrated circuit layout according to a pattern to reduce complexity of an engineering change order of the integrated circuit.
17. The method of claim 1 , wherein the inserting of spare wiring structures includes inserting the spare wiring structures through a high congestion area of the plurality of interconnect layers, the high congestion area of the plurality of interconnect layers having at least 10% greater number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
18. The method of claim 1 , wherein the inserting of spare wiring structures includes inserting the spare wiring structures through a low congestion area of the plurality of interconnect layers, the low congestion area of the plurality of interconnect layers having at least 10% fewer number of active electrically conductive interconnect layer structures per unit area than an average number of active electrically conductive interconnect layer structures per unit area in the plurality of interconnect layers.
19. The method of claim 1 , wherein the inserting of spare wiring structures includes inserting a spare-stack occupying a portion of more than one adjacent interconnect layer of the plurality of interconnect layers, the spare-stack including a plurality of spare electrically conductive interconnect layer structures electrically isolated from the plurality of active electrically conductive interconnect layer structures, the plurality of spare electrically conductive interconnect layer structures including at least one spare electrically conductive interconnect layer structure disposed on one of the plurality of interconnect layers on which at least one of the plurality of active electrically conductive interconnect layer structures are also disposed, the plurality of spare electrically conductive interconnect layer structures disposed on adjacent interconnect layers of the plurality of interconnect layers and electrically coupled with one another using one or more vias between pairs of the plurality of spare electrically conductive interconnect layer structures on adjacent interconnect layers.
20. The method of claim 1 , wherein the inserting of spare wiring structures includes:
inserting spare stacks in conjunction with placement of active electronic circuit elements in the physical design;
inserting spare routes in conjunction with routing active electronic circuit elements and interconnects in the physical design;
determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and
if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining of the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and the inserting of spare routes into the physical design of the integrated circuit according to the newly determined architecture in conjunction with the routing active electronic circuit elements and interconnects in the physical design.
21 . A non-transitory computer-readable storage medium having stored thereon a program executable by a processor for performing a method for insertion of spare wiring structures into an integrated circuit, the method comprising:
determining an architecture of spare wiring structures upon which to base the insertion of spare wiring structures into the integrated circuit, the determined architecture depending upon a design characteristic or design characteristic value, the spare wiring structures including a plurality of spare electrically conductive interconnect layer structures disposed on at least one of a plurality of interconnect layers disposed on one or both sides of a substrate including a plurality of electronic devices, the plurality of interconnect layers including at least one horizontal interconnect layer and at least one vertical-interconnect-access (VIA) layer, the plurality of spare electrically conductive interconnect layer structures being electrically isolated from a plurality of active electrically conductive interconnect layer structures;
inserting spare wiring structures into a physical design of the integrated circuit according to the determined architecture; and
outputting an engineering-change-order-ready integrated circuit layout.
22. The medium of claim 21 , further comprising:
routing active electronic circuit elements and interconnects after the inserting of spare wiring structures;
determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and
if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining of the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and inserting spare wiring structures into the physical design of the integrated circuit according to the newly determined architecture.
23. The medium of claim 21 , wherein the inserting of spare wiring structures includes:
inserting spare stacks in conjunction with placement of active electronic circuit elements in the physical design; inserting spare routes in conjunction with routing active electronic circuit elements and interconnects in the physical design;
determining whether the physical design of the integrated circuit including inserted spare wiring structures is routable; and
if the physical design including inserted spare wiring structures is determined to be not routable, repeating the determining of the architecture of spare wiring structures depending upon a different design characteristic or design characteristic value and the inserting of spare routes into the physical design of the integrated circuit according to the newly determined architecture in conjunction with the routing of active electronic circuit elements and interconnects in the physical design.
24. The medium of claim 23, wherein the inserting of spare stacks includes temporarily attaching one or more of the spare stacks to one or more spare-cells during placement using a wired connection.
25. The medium of claim 24, wherein the wired connection connects the one or more of the spare stacks to scan chain circuitry proximate to the one or more of the spare-cells.
26. The medium of claim 23, wherein the inserting of spare stacks includes temporarily attaching one or more of the spare stacks to one or more active electronic circuit nodes during placement using a wired connection.
27. The medium of claim 23, wherein the inserting of spare stacks includes attaching one or more of the spare stacks to one or more spare-cells during placement using a wired connection that connects the one or more of the spare stacks to a cell between the one or more of the spare stacks and the one or more spare-cells that electrically decouples the one or more of the spare stacks from the one or more spare-cells.
28. The medium of claim 23, wherein inserting of spare routes includes routing active electronic circuit elements in conjunction with routing spare routes while treating spare routes the same as active interconnects.
PCT/IB2014/001914 2013-06-03 2014-06-03 Methods and systems for insertion of spare wiring structures for improved engineering change orders WO2014195806A2 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201361830556P 2013-06-03 2013-06-03
US61/830,556 2013-06-03
US14/270,267 US9236343B2 (en) 2013-05-03 2014-05-05 Architecture of spare wiring structures for improved engineering change orders
US14/270,267 2014-05-05
US201462006758P 2014-06-02 2014-06-02
US62/006,758 2014-06-02

Publications (2)

Publication Number Publication Date
WO2014195806A2 true WO2014195806A2 (en) 2014-12-11
WO2014195806A3 WO2014195806A3 (en) 2015-04-30

Family

ID=52008657

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2014/001914 WO2014195806A2 (en) 2013-06-03 2014-06-03 Methods and systems for insertion of spare wiring structures for improved engineering change orders

Country Status (1)

Country Link
WO (1) WO2014195806A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015319A3 (en) * 2013-05-03 2015-06-25 Blackcomb Design Automation Inc. Architecture of spare wiring structures for improved engineering change orders
WO2021252239A1 (en) * 2020-06-08 2021-12-16 The Regents Of The University Of California Integrated-circuit global routing method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4722084A (en) * 1985-10-02 1988-01-26 Itt Corporation Array reconfiguration apparatus and methods particularly adapted for use with very large scale integrated circuits
US6753253B1 (en) * 1986-06-18 2004-06-22 Hitachi, Ltd. Method of making wiring and logic corrections on a semiconductor device by use of focused ion beams
US7337103B2 (en) * 2004-01-15 2008-02-26 International Business Machines Corporation Method and apparatus for the automatic correction of faulty wires in a logic simulation hardware emulator / accelerator
US7331010B2 (en) * 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
JP2012043894A (en) * 2010-08-17 2012-03-01 Toshiba Corp Design method of semiconductor integrated circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015319A3 (en) * 2013-05-03 2015-06-25 Blackcomb Design Automation Inc. Architecture of spare wiring structures for improved engineering change orders
WO2021252239A1 (en) * 2020-06-08 2021-12-16 The Regents Of The University Of California Integrated-circuit global routing method

Also Published As

Publication number Publication date
WO2014195806A3 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
US9236343B2 (en) Architecture of spare wiring structures for improved engineering change orders
KR102593720B1 (en) Integrated circuit design and/or fabrication
US7992122B1 (en) Method of placing and routing for power optimization and timing closure
US10553574B2 (en) Standard cell for removing routing interference between adjacent pins and device including the same
CN107918694B (en) Method for reducing delay on an integrated circuit
KR101460448B1 (en) System and method for generating physical deterministic boundary interconnect features for dual patterning technologies
JP4761859B2 (en) Layout design method for semiconductor integrated circuit
US9928337B2 (en) Integrated circuit and design method for same
TWI719090B (en) A computer implemented system and method for modifying a layout of standard cells defining a circuit component
JP2007128512A (en) Method, system and program for improving manufacturability of semiconductor device
US11443096B2 (en) Method for optimizing floor plan for an integrated circuit
US11030383B2 (en) Integrated device and method of forming the same
US10424518B2 (en) Integrated circuit designing system and a method of manufacturing an integrated circuit
US20130074026A1 (en) Layout technique for stress management cells
WO2014195806A2 (en) Methods and systems for insertion of spare wiring structures for improved engineering change orders
KR20170094744A (en) Integrated circuit and computer-implemented method for manufacturing the same
Ran et al. Via-configurable routing architectures and fast design mappability estimation for regular fabrics
US20040003363A1 (en) Integrated circuit design and manufacture utilizing layers having a predetermined layout
US9293450B2 (en) Synthesis of complex cells
JP2008310527A (en) Layout design device and layout design method for semiconductor integrated circuit
JP2007103662A (en) Semiconductor integrated circuit and its manufacturing method
US20230267261A1 (en) Design system, design method and method of manufacture of semiconductor device
US20170061063A1 (en) Integrated circuit with reduced routing congestion
JP4480484B2 (en) Hierarchical layout design method for semiconductor integrated circuit
Melikyan Design of Digital Integrated Circuits by Improving the Characteristics of Digital Cells

Legal Events

Date Code Title Description
122 Ep: pct application non-entry in european phase

Ref document number: 14808460

Country of ref document: EP

Kind code of ref document: A2