[go: up one dir, main page]

US20160085900A1 - Activity-Driven Capacitance Reduction to Reduce Dynamic Power Consumption in an Integrated Circuit - Google Patents

Activity-Driven Capacitance Reduction to Reduce Dynamic Power Consumption in an Integrated Circuit Download PDF

Info

Publication number
US20160085900A1
US20160085900A1 US14/492,923 US201414492923A US2016085900A1 US 20160085900 A1 US20160085900 A1 US 20160085900A1 US 201414492923 A US201414492923 A US 201414492923A US 2016085900 A1 US2016085900 A1 US 2016085900A1
Authority
US
United States
Prior art keywords
integrated circuit
constraints
nets
recited
routing tool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US14/492,923
Other versions
US9292648B1 (en
Inventor
Amit Chandra
Karthik Rajagopal
Muthukumaravelu Velayoudame
Praveen Bhutani
Sunil Mehta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple 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
Application filed by Apple Inc filed Critical Apple Inc
Priority to US14/492,923 priority Critical patent/US9292648B1/en
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BHUTANI, PRAVEEN, CHANDRA, AMIT, MEHTA, SUNIL, RAJAGOPAL, KARTHIK, VELAYOUDAME, MUTHUKUMARAVELU
Application granted granted Critical
Publication of US9292648B1 publication Critical patent/US9292648B1/en
Publication of US20160085900A1 publication Critical patent/US20160085900A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06F17/5077
    • G06F17/5009
    • G06F17/5081
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation

Definitions

  • Embodiments described herein are related to designing an integrated circuit and managing power consumption in the design.
  • the methodology for digital integrated circuit design has historically been timing-driven.
  • the methodology generally includes the process of coding the logic that implements the desired operation for the circuit, synthesizing the coded logic into circuitry specified in a library of predefined circuits (called cells), physically arranging instances of the cells with respect to each other for fabrication on the integrated circuit (referred to as placing the cells), and connecting the cells with wiring by specifying the wiring layers for the integrated circuit (referred to as routing).
  • the methodology may generally focus on optimizing the timing of the integrated circuit, so that the integrated circuit will operate at a specified clock frequency when fabricated.
  • a methodology for designing an integrated circuit that attempts to improve power efficiency includes simulating the design under one or more power stimuli, where the power stimuli are known to cause high power consumption (e.g. in previous designs of the integrated circuit, the power stimuli may have caused high power consumption).
  • a set of nets within the integrated circuit may be identified that have the highest activity in the simulation (e.g. the highest amount of switching).
  • the methodology may include providing data to the routing tool that is used to route the nets in the integrated circuit. The data may indicate constraints for the set of nets, to help reduce dynamic power on these nets. Power efficiency of the integrated circuit may be improved if the routing tool is able to honor the constraints.
  • FIG. 1 is a block diagram illustrating one embodiment of a methodology for designing an integrated circuit.
  • FIG. 2 is a block diagram of a top view of a portion of a metal layer.
  • FIG. 3 is a block diagram of one embodiment of a side view of multiple metal layers on a semiconductor substrate.
  • FIG. 4 is a block diagram of one embodiment of cells.
  • FIG. 5 is a flowchart illustrating one embodiment of a power analysis tool.
  • FIG. 6 is a block diagram of one embodiment of a computer accessible storage medium.
  • FIG. 7 is a block diagram of one embodiment of a computer system.
  • circuits, or other components may be described as “configured to” perform a task or tasks.
  • “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation.
  • the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on.
  • the circuitry that forms the structure corresponding to “configured to” may include hardware circuits and/or memory storing program instructions executable to implement the operation.
  • the memory can include volatile memory such as static or dynamic random access memory and/or nonvolatile memory such as optical or magnetic disk storage, flash memory, programmable read-only memories, etc.
  • various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. ⁇ 112(f) interpretation for that unit/circuit/component.
  • FIG. 1 a block diagram illustrating one embodiment of a methodology for designing an integrated circuit is shown.
  • the methodology begins with a register transfer level (RTL) description of the logic of the integrated circuit (reference numeral 10 ).
  • the RTL description 10 is input to a synthesis tool 12 , which also has access to a library 14 of predesigned circuit “cells.”
  • the RTL description 10 may be expressed in any hardware description language (HDL) such as Verilog, Very High Speed Integrated Circuit Hardware Description Language (VHDL), etc.
  • HDL hardware description language
  • VHDL Very High Speed Integrated Circuit Hardware Description Language
  • the RTL description 10 may be a behavioral level description if the synthesis tool 12 is a behavioral synthesis tool.
  • the output of the synthesis tool 12 may be a net list 16 , which may be a list of instances of the cells from the library 14 and the connection between the cell instances that realizes the RTL description 10 .
  • the connection may be expressed using the same signal name between a given output pin of a cell and the input pin(s) of other cells to which the output pin is connected.
  • the net list 16 may further include instances of a custom circuit design created by the designer and not included in the library 14 for general use.
  • the custom circuits may be directly instantiated in the RTL 10 and may not be changed by the synthesis tool 12 .
  • an floor plan 20 may be developed with a floor plan tool (not shown). The floor plan 20 may be developed, e.g., based on the blocks into which the integrated circuit is divided and their expected areas and/or geometric shape on the integrated circuit.
  • the net list 16 and the floor plan 20 may be input to a placement tool 18 , which may determine a physical arrangement of the cells/circuits on the surface of a semiconductor substrate which will form the integrated circuit when manufactured.
  • the placement tool 18 may receive description from the library 14 of the size of each cell (x and y directions) and the location of input and output pins on each cell.
  • the placement tool 18 may take into account which pins of each cell instance are coupled to which pins of other cell instances in making the placement, as well as the overall dimensions of the integrated circuit (or the block within the integrated circuit, if the RTL description 10 is for less than the entire integrated circuit).
  • the placement tool 18 may update the floor plan 20 to reflect the placement of the cells.
  • the updated floor plan 20 may be input to the clock timing synthesis tool 22 .
  • the clock timing synthesis tool may synthesize the clock circuits for the integrated circuit and may insert them into the floor plan 20 .
  • the floor plan 20 as updated by the clock timing synthesis tool 22 may be input to the routing tool 26 (or more simply “router” 26 ).
  • the router 26 may generate descriptions of the metal layers for the integrated circuit, connecting output pins to input pins as specified by the net list 16 .
  • the output of the routing tool 26 may further update the floor plan 20 .
  • the updated floor plan 20 may be provided to a graphic data system (GDS) generator 24 , which may generate the GDS description 28 of the integrated circuit.
  • GDS graphic data system
  • the GDS description 28 may be transmitted to the foundry that manufactures the integrated circuit.
  • the information in the GDS description 28 may be used for mask fabrication and other processing at the foundry to produce the integrated circuit.
  • the router 26 may generally determine the routing for each net specified in the net list 16 .
  • a net may be one conductor on which a signal output by a cell/circuit is communicated to one or more input pins of one or more other cells/circuits.
  • the net may include multiple end points (one output and multiple inputs, or even multiple output pins if the cells are controlled to avoid contention).
  • the net may also include conductors at more than one metal layer in the integrated circuit, as well as vias between the layers, etc. The conductors may also be referred to as wires.
  • the router 26 may be primarily constrained by the congestion of other nets in the integrated circuit, the number of metal layers being implemented, other physical concerns, and timing criticality.
  • a net may be timing-critical if it is part of a logic path (instances of cells/circuits and their nets) that is among the longest in the design (and thus may be limiters in terms of the clock frequency at which the integrated circuit may operate).
  • a timing tool 30 may perform timing analysis on the various design descriptions to identify timing critical nets. For example, the timing tool 30 may receive the net list 16 and may analyze the net list to determine critical paths. The timing tool 30 may use information from the floor plans 20 and 24 to estimate the resistance and capacitance (RC) delays in the design to more accurately analyze the timing.
  • RC resistance and capacitance
  • the timing tool 30 may provide the timing constraints to the router 26 (and/or may annotate the floor plan 24 or other input data to the router 26 with the timing constraints).
  • the timing tool 30 may provide the constraints in any desired fashion (e.g. a list of timing-critical nets, a ranking, a maximum length for the nets, or other constraints).
  • a power analysis tool 32 may be provided to perform power analysis on the integrated circuit, using one or more power stimuli 34 .
  • the power stimuli 34 may be stimulus to the integrated circuit that is known to cause high power consumption, as mentioned previously.
  • the analysis may be performed using any of the descriptions of the integrated circuit in RTL 10 , net list 16 , or floor plan 20 (or combinations of information from the descriptions, as desired).
  • the power analysis tool 32 may simulate the integrated circuit design under the power stimuli 34 and may determine which nets are the most actively switching in the design.
  • the power analysis tool 32 may output various power constraints to the router 26 (e.g. by annotating the input data to the router 26 ). Various examples of constraints are discussed in more detail below.
  • the power analysis may be performed at any point in the process of updating the floor plan 20 after the net list 16 is generated.
  • the power analysis may be performed multiple times as the design of the integrated circuit is refined.
  • the timing constraints may be given higher weight. In one embodiment, for example, if the timing constraints are applied to a given net, the power constraints for that given net may be dropped. In some cases, the constraints that favor better timing characteristics may be opposite of those that favor power efficiency. Since timing needs to be met for the integrated circuit, the timing constraints may be permitted to dominate the power constraints in conflicting situations.
  • a constraint may be a restriction that would be desirable to maintain on the corresponding net in the routing process.
  • the constraint may not be a demand (e.g. the router 26 may be able to violate the constraint), but rather may be a guide to the selection of routes and wire properties for a given net.
  • constraints may lead to better power efficiency for a net, and thus may be used as power constraints.
  • the examples below may reduce capacitance on the net, which may reduce dynamic power consumption since power consumption is proportional to the capacitance.
  • Other examples that reduce capacitance or other impedance are contemplated, as well as examples that reduce power consumption in other ways.
  • the wires may run in parallel in one direction, and the direction is orthogonal between two adjacent metal layers. Accordingly, a wire may be connected from one point to another by travelling in one direction at one metal layer and connecting to another metal layer travelling in the orthogonal direction, repeated as many times as desired to get from one point to another.
  • FIG. 2 is a block diagram of one embodiment of a top view of a metal layer 40 .
  • the metal layer 40 includes two parallel wires 42 and 44 .
  • the wire 42 has a wire width 46
  • the wires have a wire spacing 48 between them.
  • the semiconductor fabrication process specifies a minimum wire width and a minimum spacing. Generally, as the layers increase (farther from the surface of the semiconductor substrate), the minimums may increase although multiple adjacent layers may have the same minimums.
  • a power constraint may be a constraint on the wire width for high activity nets.
  • the constraint may be to use the minimum wire width, or to limit the wire width to no more than a maximum. The limit may be expressed as a factor of the minimum size or as a measurement (e.g. in microns).
  • a power constraint may be to use non-minimum spacing for high activity nets, or to ensure that spacing is at least an amount specified by the constraint. The amount may be expressed as a factor of the minimum spacing or as a measurement (in microns).
  • FIG. 3 is a block diagram of a simplified side view of one embodiment of an integrated circuit 50 including metal layers 52 A- 52 n and a semiconductor substrate 54 .
  • the layers 52 A- 52 n are labeled M 1 to Mn, and there may be any number of layers in various embodiments.
  • M 1 layer 52 A may be the layer nearest to the substrate 54 , and other layers are increasingly distant from the semiconductor substrate 54 until the top layer (Mn layer 52 n ) is reached.
  • the thickness of the metal layers increases as the layers get farther from the surface of the semiconductor substrate (where thickness is measured in the vertical direction as seen in FIG. 3 , as compared to the width measured in the horizontal direction across the wiring plane, e.g. as shown in FIG. 2 ).
  • the Mn layer 52 n is shown as thicker than the M 1 and M 2 metal layers 52 A- 52 B.
  • Thicker wires may have a higher capacitance and lower resistance. Accordingly, higher metal layers may be favored by the router 26 for timing critical nets.
  • a power constraint may be a restriction to the lower metal layers. For example, the constraint may specify the highest metal layer that should be used for an active net and the router 26 may attempt to route the active nets in the layers at or below the specified highest metal layer.
  • FIG. 4 is a diagram of two logically equivalent cells (cell A 60 and cell B 62 ).
  • Cell A has input pins with input pin capacitance C A
  • Cell B has input pins with input pin capacitance C B .
  • C B is less than C A in this embodiment.
  • an instance of cell A 60 has an input pin coupled to an active net
  • an instance of cell B 62 may be substituted for the instance of cell A 60 .
  • a constraint may be to lower input pin capacitance on the high activity nets.
  • FIG. 5 is a flowchart illustrating operation of one embodiment of the power analysis tool 32 . While the blocks are shown in a particular order, other orders may be used. Blocks may be performed in parallel.
  • the power analysis tool may include instructions which, when executed on a computer, implement the operation illustrated in FIG. 5 .
  • the power analysis tool 32 may perform one or more power simulations on the input design description using the power stimulus/stimuli 34 (block 70 ).
  • the design description may be at any level in various embodiments (e.g. the RTL 10 , the net list 16 , the floor plan 20 , etc.). Any type of simulation may be performed.
  • the simulation may be an event-driven simulation or a cycle simulation, similar to those used to verify functional correctness of the design.
  • Circuit simulation may be used (e.g. Simulation Program with Integrated Circuit Emphasis (SPICE)-like simulation).
  • Power-based simulation may be used. More than one simulation may be performed as the design is refined at any level, or as the design progresses through the methodology shown in FIG. 1 .
  • the power analysis tool 32 may identify the high activity nets (block 72 ).
  • the power analysis tool 32 may identify the nets during simulation, or may process the simulation results after the simulations are complete.
  • High activity nets may be measured in any desired fashion, but may generally be the nets that exhibit the highest amount of switching during the power simulations. For example, a threshold level of switching activity may be selected and the nets having activity that meets or exceeds the threshold level may be identified. The highest switching M nets (where M is an integer or a percentage of the total nets in the design) may be identified as the high activity nets. Combinations of measurements may be used to identify the high activity nets.
  • the power analysis tool 32 may provide power constraints for use by the router 26 (block 74 ).
  • the power analysis tool may annotate the high activity nets in the floor plan 20 with the timing constraints.
  • a different data structure may be provided with the annotations.
  • a timing tool may provide timing constraints for use by the router 26 (block 76 ). This block may be implemented by the timing tool, and thus is illustrated in dotted form in FIG. 5 .
  • FIG. 6 is a block diagram of one embodiment of a computer accessible storage medium 200 .
  • a computer accessible storage medium may include any storage media accessible by a computer during use to provide instructions and/or data to the computer.
  • a computer accessible storage medium may include storage media such as magnetic or optical media, e.g., disk (fixed or removable), tape, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, or Blu-Ray.
  • Storage media may further include volatile or non-volatile memory media such as RAM (e.g. synchronous dynamic RAM (SDRAM), Rambus DRAM (RDRAM), static RAM (SRAM), etc.), ROM, or Flash memory.
  • RAM e.g. synchronous dynamic RAM (SDRAM), Rambus DRAM (RDRAM), static RAM (SRAM), etc.
  • SDRAM synchronous dynamic RAM
  • RDRAM Rambus DRAM
  • SRAM static RAM
  • Flash memory e.g. synchronous dynamic RAM (SDRAM), Rambus DRAM (RDRAM), static RAM
  • the storage media may be physically included within the computer to which the storage media provides instructions/data.
  • the storage media may be connected to the computer.
  • the storage media may be connected to the computer over a network or wireless link, such as network attached storage.
  • the storage media may be connected through a peripheral interface such as the Universal Serial Bus (USB).
  • USB Universal Serial Bus
  • the computer accessible storage medium 200 may store data in a non-transitory manner, where non-transitory in this context may refer to not transmitting the instructions/data on a signal.
  • non-transitory storage may be volatile (and may lose the stored instructions/data in response to a power down) or non-volatile.
  • the computer accessible storage medium 200 in FIG. 6 may store code forming one or more of the synthesis tool 12 , the placement tool 18 , the clock timing synthesis tool 22 , the routing tool 26 , the GDS generator 24 , the power analysis tool 32 , and/or the timing tool 30 .
  • the computer accessible storage medium 200 may still further store one or more of the RTL 10 , the net list 16 , the floor plan 20 , the GDS 28 , the library 14 , and/or the power stimuli 24 .
  • the synthesis tool 12 , the placement tool 18 , the clock timing synthesis tool 22 , the routing tool 26 , the power analysis tool 32 , and/or the timing tool 30 may each include instructions which, when executed, implement the operation described for the respective tool above.
  • the method illustrated in FIG. 5 may be embodied in one or more of the power analysis tool 32 and the timing tool 30 and may be executed by one or more processors of a computer system such as the system shown in FIG. 7 .
  • Performing the method described herein may improve the power characteristics of the resulting integrated circuit, which may lead to improved battery life and other benefits in devices that incorporate the integrated circuit, in some embodiments.
  • a carrier medium may include computer accessible storage media as well as transmission media such as wired or wireless transmission.
  • FIG. 7 is a block diagram of one embodiment of an exemplary computer system 210 .
  • the computer system 210 includes a processor 212 , a memory 214 , and various peripheral devices 216 .
  • the processor 212 is coupled to the memory 214 and the peripheral devices 216 .
  • the processor 212 is configured to execute instructions, including the instructions in the software described herein such as the tools 12 , 18 , 22 , 26 , 30 , and 32 .
  • the processor 212 may implement any desired instruction set (e.g. Intel Architecture-32 (IA-32, also known as x86), IA-32 with 64 bit extensions, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64, etc.).
  • the computer system 210 may include more than one processor.
  • the processor 212 may be coupled to the memory 214 and the peripheral devices 216 in any desired fashion.
  • the processor 212 may be coupled to the memory 214 and/or the peripheral devices 216 via various interconnect.
  • one or more bridge chips may be used to coupled the processor 212 , the memory 214 , and the peripheral devices 216 .
  • the memory 214 may comprise any type of memory system.
  • the memory 214 may comprise DRAM, and more particularly double data rate (DDR) SDRAM, RDRAM, etc.
  • a memory controller may be included to interface to the memory 214 , and/or the processor 212 may include a memory controller.
  • the memory 214 may store the instructions to be executed by the processor 212 during use, data to be operated upon by the processor 212 during use, etc.
  • Peripheral devices 216 may represent any sort of hardware devices that may be included in the computer system 210 or coupled thereto (e.g. storage devices, optionally including a computer accessible storage medium 200 , other input/output (I/O) devices such as video hardware, audio hardware, user interface devices, networking hardware, etc.).
  • storage devices optionally including a computer accessible storage medium 200
  • other input/output (I/O) devices such as video hardware, audio hardware, user interface devices, networking hardware, etc.

Landscapes

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

Abstract

In an embodiment, a methodology for designing an integrated circuit that attempts to improve power efficiency is provided. The methodology includes simulating the design under one or more power stimuli, where the power stimuli are known to cause high power consumption (e.g. in previous designs of the integrated circuit, the power stimuli may have caused power consumption). A set of nets within the integrated circuit may be identified that have the highest activity in the simulation (e.g. the highest amount of switching). The methodology may include providing data to the routing tool that is to route the nets in the integrated circuit. The data may indicate constraints for the set of nets, to help reduce dynamic power on these nets. Power efficiency of the integrated circuit may be improved if the routing tool is able to honor the constraints.

Description

    BACKGROUND
  • 1. Technical Field
  • Embodiments described herein are related to designing an integrated circuit and managing power consumption in the design.
  • 2. Description of the Related Art
  • The methodology for digital integrated circuit design has historically been timing-driven. The methodology generally includes the process of coding the logic that implements the desired operation for the circuit, synthesizing the coded logic into circuitry specified in a library of predefined circuits (called cells), physically arranging instances of the cells with respect to each other for fabrication on the integrated circuit (referred to as placing the cells), and connecting the cells with wiring by specifying the wiring layers for the integrated circuit (referred to as routing). The methodology may generally focus on optimizing the timing of the integrated circuit, so that the integrated circuit will operate at a specified clock frequency when fabricated.
  • More recently, optimization of power consumption has become an important factor in integrated circuit design. Integrated circuits are frequently being included in a variety of mobile devices, which are often operating on a limited power source such as a battery. Battery life is figure of merit for such devices, and thus integrated circuits which efficiently use power to perform their operations are desirable. Additionally, efficient devices may be more easily cooled and otherwise thermally managed in a system, even if battery life is not a concern (e.g. in a desktop computer that is plugged into an electrical outlet or other essentially unlimited power source).
  • Typically, efforts to improve power efficiency have been focused on designing efficient cell libraries, providing microarchitectural features such as clock gating, power gating, and multiple power states that provide different performance/power tradeoffs, etc. The methodology remains timing-driven.
  • SUMMARY
  • In an embodiment, a methodology for designing an integrated circuit that attempts to improve power efficiency is provided. The methodology includes simulating the design under one or more power stimuli, where the power stimuli are known to cause high power consumption (e.g. in previous designs of the integrated circuit, the power stimuli may have caused high power consumption). A set of nets within the integrated circuit may be identified that have the highest activity in the simulation (e.g. the highest amount of switching). The methodology may include providing data to the routing tool that is used to route the nets in the integrated circuit. The data may indicate constraints for the set of nets, to help reduce dynamic power on these nets. Power efficiency of the integrated circuit may be improved if the routing tool is able to honor the constraints.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The following detailed description makes reference to the accompanying drawings, which are now briefly described.
  • FIG. 1 is a block diagram illustrating one embodiment of a methodology for designing an integrated circuit.
  • FIG. 2 is a block diagram of a top view of a portion of a metal layer.
  • FIG. 3 is a block diagram of one embodiment of a side view of multiple metal layers on a semiconductor substrate.
  • FIG. 4 is a block diagram of one embodiment of cells.
  • FIG. 5 is a flowchart illustrating one embodiment of a power analysis tool.
  • FIG. 6 is a block diagram of one embodiment of a computer accessible storage medium.
  • FIG. 7 is a block diagram of one embodiment of a computer system.
  • While embodiments described in this disclosure may be susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.
  • Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits and/or memory storing program instructions executable to implement the operation. The memory can include volatile memory such as static or dynamic random access memory and/or nonvolatile memory such as optical or magnetic disk storage, flash memory, programmable read-only memories, etc. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. §112(f) interpretation for that unit/circuit/component.
  • This specification includes references to “one embodiment” or “an embodiment.” The appearances of the phrases “in one embodiment” or “in an embodiment” do not necessarily refer to the same embodiment, although embodiments that include any combination of the features are generally contemplated, unless expressly disclaimed herein. Particular features, structures, or characteristics may be combined in any suitable manner consistent with this disclosure.
  • DETAILED DESCRIPTION OF EMBODIMENTS
  • Turning now to FIG. 1, a block diagram illustrating one embodiment of a methodology for designing an integrated circuit is shown. The methodology begins with a register transfer level (RTL) description of the logic of the integrated circuit (reference numeral 10). The RTL description 10 is input to a synthesis tool 12, which also has access to a library 14 of predesigned circuit “cells.” The RTL description 10 may be expressed in any hardware description language (HDL) such as Verilog, Very High Speed Integrated Circuit Hardware Description Language (VHDL), etc. The RTL description 10 may be a behavioral level description if the synthesis tool 12 is a behavioral synthesis tool. The output of the synthesis tool 12 may be a net list 16, which may be a list of instances of the cells from the library 14 and the connection between the cell instances that realizes the RTL description 10. The connection may be expressed using the same signal name between a given output pin of a cell and the input pin(s) of other cells to which the output pin is connected. The net list 16 may further include instances of a custom circuit design created by the designer and not included in the library 14 for general use. The custom circuits may be directly instantiated in the RTL 10 and may not be changed by the synthesis tool 12. Additionally, an floor plan 20 may be developed with a floor plan tool (not shown). The floor plan 20 may be developed, e.g., based on the blocks into which the integrated circuit is divided and their expected areas and/or geometric shape on the integrated circuit.
  • The net list 16 and the floor plan 20 may be input to a placement tool 18, which may determine a physical arrangement of the cells/circuits on the surface of a semiconductor substrate which will form the integrated circuit when manufactured. The placement tool 18 may receive description from the library 14 of the size of each cell (x and y directions) and the location of input and output pins on each cell. The placement tool 18 may take into account which pins of each cell instance are coupled to which pins of other cell instances in making the placement, as well as the overall dimensions of the integrated circuit (or the block within the integrated circuit, if the RTL description 10 is for less than the entire integrated circuit). The placement tool 18 may update the floor plan 20 to reflect the placement of the cells. The updated floor plan 20 may be input to the clock timing synthesis tool 22. The clock timing synthesis tool may synthesize the clock circuits for the integrated circuit and may insert them into the floor plan 20.
  • The floor plan 20 as updated by the clock timing synthesis tool 22 may be input to the routing tool 26 (or more simply “router” 26). The router 26 may generate descriptions of the metal layers for the integrated circuit, connecting output pins to input pins as specified by the net list 16. The output of the routing tool 26 may further update the floor plan 20. Once the design is complete, the updated floor plan 20 may be provided to a graphic data system (GDS) generator 24, which may generate the GDS description 28 of the integrated circuit. The GDS description 28 may be transmitted to the foundry that manufactures the integrated circuit. The information in the GDS description 28 may be used for mask fabrication and other processing at the foundry to produce the integrated circuit.
  • The router 26 may generally determine the routing for each net specified in the net list 16. A net may be one conductor on which a signal output by a cell/circuit is communicated to one or more input pins of one or more other cells/circuits. The net may include multiple end points (one output and multiple inputs, or even multiple output pins if the cells are controlled to avoid contention). The net may also include conductors at more than one metal layer in the integrated circuit, as well as vias between the layers, etc. The conductors may also be referred to as wires.
  • The router 26 may be primarily constrained by the congestion of other nets in the integrated circuit, the number of metal layers being implemented, other physical concerns, and timing criticality. A net may be timing-critical if it is part of a logic path (instances of cells/circuits and their nets) that is among the longest in the design (and thus may be limiters in terms of the clock frequency at which the integrated circuit may operate). A timing tool 30 may perform timing analysis on the various design descriptions to identify timing critical nets. For example, the timing tool 30 may receive the net list 16 and may analyze the net list to determine critical paths. The timing tool 30 may use information from the floor plans 20 and 24 to estimate the resistance and capacitance (RC) delays in the design to more accurately analyze the timing. The timing tool 30 may provide the timing constraints to the router 26 (and/or may annotate the floor plan 24 or other input data to the router 26 with the timing constraints). The timing tool 30 may provide the constraints in any desired fashion (e.g. a list of timing-critical nets, a ranking, a maximum length for the nets, or other constraints).
  • A power analysis tool 32 may be provided to perform power analysis on the integrated circuit, using one or more power stimuli 34. The power stimuli 34 may be stimulus to the integrated circuit that is known to cause high power consumption, as mentioned previously. The analysis may be performed using any of the descriptions of the integrated circuit in RTL 10, net list 16, or floor plan 20 (or combinations of information from the descriptions, as desired). Generally, the power analysis tool 32 may simulate the integrated circuit design under the power stimuli 34 and may determine which nets are the most actively switching in the design. The power analysis tool 32 may output various power constraints to the router 26 (e.g. by annotating the input data to the router 26). Various examples of constraints are discussed in more detail below. The power analysis may be performed at any point in the process of updating the floor plan 20 after the net list 16 is generated. The power analysis may be performed multiple times as the design of the integrated circuit is refined.
  • If there is conflict between the power constraints and the timing constraints, the timing constraints may be given higher weight. In one embodiment, for example, if the timing constraints are applied to a given net, the power constraints for that given net may be dropped. In some cases, the constraints that favor better timing characteristics may be opposite of those that favor power efficiency. Since timing needs to be met for the integrated circuit, the timing constraints may be permitted to dominate the power constraints in conflicting situations.
  • Generally, a constraint may be a restriction that would be desirable to maintain on the corresponding net in the routing process. The constraint may not be a demand (e.g. the router 26 may be able to violate the constraint), but rather may be a guide to the selection of routes and wire properties for a given net.
  • A variety of constraints may lead to better power efficiency for a net, and thus may be used as power constraints. Generally, the examples below may reduce capacitance on the net, which may reduce dynamic power consumption since power consumption is proportional to the capacitance. Other examples that reduce capacitance or other impedance are contemplated, as well as examples that reduce power consumption in other ways.
  • At each metal layer, the wires may run in parallel in one direction, and the direction is orthogonal between two adjacent metal layers. Accordingly, a wire may be connected from one point to another by travelling in one direction at one metal layer and connecting to another metal layer travelling in the orthogonal direction, repeated as many times as desired to get from one point to another.
  • At each layer, the parallel wires may each have a wire width and there may be a wire spacing between the wires. For example, FIG. 2 is a block diagram of one embodiment of a top view of a metal layer 40. The metal layer 40 includes two parallel wires 42 and 44. The wire 42 has a wire width 46, and the wires have a wire spacing 48 between them. At each wiring layer, the semiconductor fabrication process specifies a minimum wire width and a minimum spacing. Generally, as the layers increase (farther from the surface of the semiconductor substrate), the minimums may increase although multiple adjacent layers may have the same minimums.
  • Increased wire widths may result in increased capacitance (since the wider wire has more surface area to serve as a “plate” of the capacitor). On the other hand, increased wire widths reduce resistance in the wire, which is a benefit for timing. Accordingly, the router 26 may have a tendency to use non-minimum width wires for more timing-critical paths. A power constraint may be a constraint on the wire width for high activity nets. The constraint may be to use the minimum wire width, or to limit the wire width to no more than a maximum. The limit may be expressed as a factor of the minimum size or as a measurement (e.g. in microns).
  • Similarly, decreased wire spacing may permit more wires per unit of area, so the router 26 may have a tendency to use minimum spacing between wires. However, minimum spacing may cause the highest amount of cross coupling capacitance between the wires. A power constraint may be to use non-minimum spacing for high activity nets, or to ensure that spacing is at least an amount specified by the constraint. The amount may be expressed as a factor of the minimum spacing or as a measurement (in microns).
  • FIG. 3 is a block diagram of a simplified side view of one embodiment of an integrated circuit 50 including metal layers 52A-52 n and a semiconductor substrate 54. Not shown in FIG. 3 are insulating layers that may be included between the wiring layers. The layers 52A-52 n are labeled M1 to Mn, and there may be any number of layers in various embodiments. M1 layer 52A may be the layer nearest to the substrate 54, and other layers are increasingly distant from the semiconductor substrate 54 until the top layer (Mn layer 52 n) is reached. Generally, the thickness of the metal layers increases as the layers get farther from the surface of the semiconductor substrate (where thickness is measured in the vertical direction as seen in FIG. 3, as compared to the width measured in the horizontal direction across the wiring plane, e.g. as shown in FIG. 2). Thus, for example the Mn layer 52 n is shown as thicker than the M1 and M2 metal layers 52A-52B.
  • Thicker wires, like wider wires, may have a higher capacitance and lower resistance. Accordingly, higher metal layers may be favored by the router 26 for timing critical nets. A power constraint may be a restriction to the lower metal layers. For example, the constraint may specify the highest metal layer that should be used for an active net and the router 26 may attempt to route the active nets in the layers at or below the specified highest metal layer.
  • Another source of capacitance on a net may be the pin capacitance on the input pins of the cells to which the net is connected. There may be several versions of each cell in the library, some of which have higher input pin capacitance than others. Often, the cells which have higher input pin capacitance are the faster cells, and thus may be used on timing-critical paths. However, if a net is identified as highly active in the power simulations but is not a timing critical net, a substitution of one cell for a (logically equivalent) cell with a lower pin capacitance may be made. For example, FIG. 4 is a diagram of two logically equivalent cells (cell A 60 and cell B 62). Cell A has input pins with input pin capacitance CA, and Cell B has input pins with input pin capacitance CB. CB is less than CA in this embodiment. Thus, if an instance of cell A 60 has an input pin coupled to an active net, an instance of cell B 62 may be substituted for the instance of cell A 60. Thus, a constraint may be to lower input pin capacitance on the high activity nets.
  • FIG. 5 is a flowchart illustrating operation of one embodiment of the power analysis tool 32. While the blocks are shown in a particular order, other orders may be used. Blocks may be performed in parallel. The power analysis tool may include instructions which, when executed on a computer, implement the operation illustrated in FIG. 5.
  • The power analysis tool 32 may perform one or more power simulations on the input design description using the power stimulus/stimuli 34 (block 70). The design description may be at any level in various embodiments (e.g. the RTL 10, the net list 16, the floor plan 20, etc.). Any type of simulation may be performed. For example, the simulation may be an event-driven simulation or a cycle simulation, similar to those used to verify functional correctness of the design. Circuit simulation may be used (e.g. Simulation Program with Integrated Circuit Emphasis (SPICE)-like simulation). Power-based simulation may be used. More than one simulation may be performed as the design is refined at any level, or as the design progresses through the methodology shown in FIG. 1. Responsive to the simulation, the power analysis tool 32 may identify the high activity nets (block 72). The power analysis tool 32 may identify the nets during simulation, or may process the simulation results after the simulations are complete.
  • High activity nets may be measured in any desired fashion, but may generally be the nets that exhibit the highest amount of switching during the power simulations. For example, a threshold level of switching activity may be selected and the nets having activity that meets or exceeds the threshold level may be identified. The highest switching M nets (where M is an integer or a percentage of the total nets in the design) may be identified as the high activity nets. Combinations of measurements may be used to identify the high activity nets.
  • The power analysis tool 32 may provide power constraints for use by the router 26 (block 74). For example, the power analysis tool may annotate the high activity nets in the floor plan 20 with the timing constraints. Alternatively, a different data structure may be provided with the annotations. Additionally, a timing tool may provide timing constraints for use by the router 26 (block 76). This block may be implemented by the timing tool, and thus is illustrated in dotted form in FIG. 5.
  • FIG. 6 is a block diagram of one embodiment of a computer accessible storage medium 200. Generally speaking, a computer accessible storage medium may include any storage media accessible by a computer during use to provide instructions and/or data to the computer. For example, a computer accessible storage medium may include storage media such as magnetic or optical media, e.g., disk (fixed or removable), tape, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, or Blu-Ray. Storage media may further include volatile or non-volatile memory media such as RAM (e.g. synchronous dynamic RAM (SDRAM), Rambus DRAM (RDRAM), static RAM (SRAM), etc.), ROM, or Flash memory. The storage media may be physically included within the computer to which the storage media provides instructions/data. Alternatively, the storage media may be connected to the computer. For example, the storage media may be connected to the computer over a network or wireless link, such as network attached storage. The storage media may be connected through a peripheral interface such as the Universal Serial Bus (USB). Generally, the computer accessible storage medium 200 may store data in a non-transitory manner, where non-transitory in this context may refer to not transmitting the instructions/data on a signal. For example, non-transitory storage may be volatile (and may lose the stored instructions/data in response to a power down) or non-volatile.
  • The computer accessible storage medium 200 in FIG. 6 may store code forming one or more of the synthesis tool 12, the placement tool 18, the clock timing synthesis tool 22, the routing tool 26, the GDS generator 24, the power analysis tool 32, and/or the timing tool 30. The computer accessible storage medium 200 may still further store one or more of the RTL 10, the net list 16, the floor plan 20, the GDS 28, the library 14, and/or the power stimuli 24. The synthesis tool 12, the placement tool 18, the clock timing synthesis tool 22, the routing tool 26, the power analysis tool 32, and/or the timing tool 30 may each include instructions which, when executed, implement the operation described for the respective tool above. For example, the method illustrated in FIG. 5 may be embodied in one or more of the power analysis tool 32 and the timing tool 30 and may be executed by one or more processors of a computer system such as the system shown in FIG. 7. Performing the method described herein may improve the power characteristics of the resulting integrated circuit, which may lead to improved battery life and other benefits in devices that incorporate the integrated circuit, in some embodiments. A carrier medium may include computer accessible storage media as well as transmission media such as wired or wireless transmission.
  • FIG. 7 is a block diagram of one embodiment of an exemplary computer system 210. In the embodiment of FIG. 7, the computer system 210 includes a processor 212, a memory 214, and various peripheral devices 216. The processor 212 is coupled to the memory 214 and the peripheral devices 216.
  • The processor 212 is configured to execute instructions, including the instructions in the software described herein such as the tools 12, 18, 22, 26, 30, and 32. In various embodiments, the processor 212 may implement any desired instruction set (e.g. Intel Architecture-32 (IA-32, also known as x86), IA-32 with 64 bit extensions, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64, etc.). In some embodiments, the computer system 210 may include more than one processor.
  • The processor 212 may be coupled to the memory 214 and the peripheral devices 216 in any desired fashion. For example, in some embodiments, the processor 212 may be coupled to the memory 214 and/or the peripheral devices 216 via various interconnect. Alternatively or in addition, one or more bridge chips may be used to coupled the processor 212, the memory 214, and the peripheral devices 216.
  • The memory 214 may comprise any type of memory system. For example, the memory 214 may comprise DRAM, and more particularly double data rate (DDR) SDRAM, RDRAM, etc. A memory controller may be included to interface to the memory 214, and/or the processor 212 may include a memory controller. The memory 214 may store the instructions to be executed by the processor 212 during use, data to be operated upon by the processor 212 during use, etc.
  • Peripheral devices 216 may represent any sort of hardware devices that may be included in the computer system 210 or coupled thereto (e.g. storage devices, optionally including a computer accessible storage medium 200, other input/output (I/O) devices such as video hardware, audio hardware, user interface devices, networking hardware, etc.).
  • Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims (20)

1. A method comprising:
simulating, on a computer, a design for an integrated circuit, wherein the simulating is performed with at least one input stimulus;
responsive to the simulating, identifying a plurality of conductors in the integrated circuit that have a highest amount of switching activity in response to the input stimulus;
providing one or more constraints for the plurality of conductors to a routing tool that generates descriptions of metal layers for the integrated circuit, wherein the metal layers implement interconnects of the integrated circuit including the plurality of conductors, wherein the routing tool is configured to route the plurality of conductors responsive to the constraints, and wherein the constraints comprise a restriction that routing the plurality of conductors is to occur in one or more of the metal layers nearest a surface of a semiconductor substrate on which the integrated circuit is formed, excluding one or more metal layers that are farthest from the surface; and
providing one or more timing-derived constraints to the routing tool, wherein the routing tool is configured to favor the one or more timing-derived constraints over the one or more constraints in routing the plurality of conductors.
2. The method as recited in claim 1 wherein the constraints comprise a wire width limit.
3. The method as recited in claim 1 wherein the constraints comprise a wire spacing specification.
4. (canceled)
5. The method as recited in claim 1 wherein the constraints comprise a reduction in input pin capacitance on one or more cells to which a given conductor of the plurality of conductors is coupled.
6. The method as recited in claim 1 wherein the constraints cause reduced capacitance on the plurality of conductors compared to unconstrained routing.
7. The method as recited in claim 1 wherein the at least one input stimulus causes high power consumption in the integrated circuit.
8. The method as recited in claim 1 wherein the providing comprises annotating an input data structure to the routing tool, wherein the input data structure includes description of the plurality of conductors, and wherein the annotating associates the constraints with the plurality of conductors.
9. The method as recited in claim 8 wherein the data structure further includes the one or more timing-derived constraints.
10. A computer accessible storage medium storing a plurality of instructions which, when executed by a computer:
invoke a simulation of an integrated circuit, wherein the simulating is performed with at least one input stimulus;
responsive to the simulation, identify a plurality of nets in the integrated circuit that have a highest amount of switching activity in response to the input stimulus; and
provide one or more constraints for the plurality of nets to a routing tool that generates descriptions of metal layers for the integrated circuit that implement the nets of the integrated circuit, wherein the nets include the plurality of nets that have the highest amount of switching activity, wherein the routing tool is configured to route the plurality of nets responsive to the constraints, wherein the constraints comprise a reduction in input pin capacitance on one or more cells to which a given net of the plurality of nets is coupled by selecting a different, but logically equivalent, cell from a cell library, wherein the different cell has a lower input pin capacitance.
11. The computer accessible storage medium as recited in claim 10 further storing the routing tool.
12. The computer accessible storage medium as recited in claim 11 further storing an input data structure to the routing tool, wherein the input data structure includes description of the plurality of nets, and wherein providing the constraints includes annotating the input data structure to the routing tool and associating the constraints with the plurality of nets.
13. The computer accessible storage medium as recited in claim 12 wherein the data structure further includes timing-derived constraints, and wherein the routing tool is configured to favor timing-derived constraints over the constraints provided for the plurality of nets.
14. The computer accessible storage medium as recited in claim 10 wherein the constraints cause reduced capacitance on the plurality of nets compared to unconstrained routing.
15. The computer accessible storage medium as recited in claim 14 wherein the constraints comprise a wire width limit.
16. The computer accessible storage medium as recited in claim 15 wherein the constraints comprise a wire spacing specification.
17. The computer accessible storage medium as recited in claim 16 wherein the constraints comprise a restriction to one or more of the metal layers nearest a surface of a semiconductor substrate on which the integrated circuit is formed.
18. (canceled)
19. The method as recited in claim 10 wherein the input stimulus causes high power consumption in the integrated circuit.
20. A method comprising:
simulating an integrated circuit on a computer responsive to a first description of the integrated circuit, wherein the simulating is performed with at least one input stimulus that causes high power consumption in the integrated circuit;
responsive to the simulating, identifying a plurality of nets interconnecting circuitry in the integrated circuit, wherein the plurality of nets that have a highest amount of switching activity of the nets in the integrated circuit in response to the input stimulus; and
annotating a second description of the integrated circuit that is input to a routing tool that generates descriptions of metal layers for the integrated circuit, wherein the metal layers of the integrated circuit implement the interconnect of the integrated circuit including the plurality of nets, wherein the routing tool is configured to route the plurality of nets responsive to the constraints, wherein the constraints comprise a reduction in input pin capacitance on one or more cells to which a given net of the plurality of nets is coupled by selecting a different, but logically equivalent, cell from a cell library, wherein the different cell has a lower input pin capacitance.
US14/492,923 2014-09-22 2014-09-22 Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit Expired - Fee Related US9292648B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/492,923 US9292648B1 (en) 2014-09-22 2014-09-22 Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/492,923 US9292648B1 (en) 2014-09-22 2014-09-22 Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit

Publications (2)

Publication Number Publication Date
US9292648B1 US9292648B1 (en) 2016-03-22
US20160085900A1 true US20160085900A1 (en) 2016-03-24

Family

ID=55487416

Family Applications (1)

Application Number Title Priority Date Filing Date
US14/492,923 Expired - Fee Related US9292648B1 (en) 2014-09-22 2014-09-22 Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit

Country Status (1)

Country Link
US (1) US9292648B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180357351A1 (en) * 2017-06-07 2018-12-13 Taiwan Semiconductor Manufacturing Co., Ltd. Cell placement site optimization

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106055759B (en) * 2016-05-24 2019-05-17 广东电网有限责任公司电力科学研究院 A kind of high-power numerical model analysis simulation interface system of electric system
US11361124B1 (en) * 2017-08-10 2022-06-14 Ansys, Inc. Generating a power profile by node sampling an IP block
DE102017127276A1 (en) * 2017-08-30 2019-02-28 Taiwan Semiconductor Manufacturing Co., Ltd. STANDARD CELLS AND ADAPTATIONS FROM THEREOF WITHIN A STANDARD CELL LIBRARY

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397170B1 (en) 1998-08-18 2002-05-28 International Business Machines Corporation Simulation based power optimization
US6732346B2 (en) 2001-05-25 2004-05-04 Intrinsity, Inc. Generation of route rules
US6950998B1 (en) * 2003-04-22 2005-09-27 Xilinx, Inc. Place-and-route with power analysis
US20070234266A1 (en) * 2004-02-07 2007-10-04 Chao-Chiang Chen Method of optimizing IC logic performance by static timing based parasitic budgeting
US7260804B1 (en) * 2004-09-21 2007-08-21 Golden Gate Technology, Inc. Method for circuit block routing based on switching activity
US7360193B1 (en) * 2004-09-21 2008-04-15 Golden Gate Technology, Inc. Method for circuit block placement and circuit block arrangement based on switching activity
US7363607B2 (en) 2005-11-08 2008-04-22 Pulsic Limited Method of automatically routing nets according to parasitic constraint rules
US7464359B2 (en) * 2006-03-27 2008-12-09 International Business Machines Corporation Method for re-routing an interconnection array to improve switching behavior in a single net and an associated interconnection array structure
US7555741B1 (en) 2006-09-13 2009-06-30 Altera Corporation Computer-aided-design tools for reducing power consumption in programmable logic devices
US7840918B1 (en) * 2007-09-21 2010-11-23 Xilinx, Inc. Method and apparatus for physical implementation of a power optimized circuit design
US8607180B2 (en) * 2012-05-09 2013-12-10 Lsi Corporation Multi-pass routing to reduce crosstalk
US9003351B1 (en) * 2014-01-08 2015-04-07 Freescale Semiconductor, Inc. System and method for reducing power consumption of integrated circuit
US9367660B2 (en) * 2014-03-18 2016-06-14 Taiwan Semiconductor Manufacturing Company Ltd. Electromigration-aware layout generation

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180357351A1 (en) * 2017-06-07 2018-12-13 Taiwan Semiconductor Manufacturing Co., Ltd. Cell placement site optimization
US10642949B2 (en) * 2017-06-07 2020-05-05 Taiwan Semiconductor Manufacturing Co., Ltd. Cell placement site optimization
US11182527B2 (en) 2017-06-07 2021-11-23 Taiwan Semiconductor Manufacturing Co., Ltd. Cell placement site optimization

Also Published As

Publication number Publication date
US9292648B1 (en) 2016-03-22

Similar Documents

Publication Publication Date Title
JP4719265B2 (en) System and method for probabilistic interconnect structure design
US11093681B2 (en) Method and system for generating layout design of integrated circuit
US7921393B2 (en) Tunneling as a boundary congestion relief mechanism
US9367660B2 (en) Electromigration-aware layout generation
US9991249B2 (en) Integrated circuit and computer-implemented method of manufacturing the same
US9767240B2 (en) Temperature-aware integrated circuit design methods and systems
US11748548B2 (en) Hierarchical clock tree implementation
US10318686B2 (en) Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US9513658B2 (en) Multi-bit flip-flop reorganization techniques
US11030383B2 (en) Integrated device and method of forming the same
US9292648B1 (en) Activity-driven capacitance reduction to reduce dynamic power consumption in an integrated circuit
US8572541B2 (en) Method and system for adaptive physical design
Lin et al. qGDR: A via-minimization-oriented routing tool for large-scale superconductive single-flux-quantum circuits
US10424518B2 (en) Integrated circuit designing system and a method of manufacturing an integrated circuit
US8601425B2 (en) Solving congestion using net grouping
US9026976B2 (en) Congestion aware routing using random points
US10445457B1 (en) Methods, systems, and articles of manufacture for implementing a physical design of an electronic design with DFM and design specification awareness
KR102717096B1 (en) Integrated circuit and computer-implemented method for manufacturing the same
US9940422B2 (en) Methods for reducing congestion region in layout area of IC
US8132141B2 (en) Method and apparatus for generating a centerline connectivity representation
US9454632B1 (en) Context specific spare cell determination during physical design
US9177090B1 (en) In-hierarchy circuit analysis and modification for circuit instances
Bethur A methodology for back-side clock delivery network design compatible with commercial eda flows
Zhao Reliable clock and power delivery network design for three-dimensional integrated circuits
Kan et al. Post-layout Redundant Via Insertion Approach Considering Multiple Via Configuration

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHANDRA, AMIT;RAJAGOPAL, KARTHIK;VELAYOUDAME, MUTHUKUMARAVELU;AND OTHERS;REEL/FRAME:033790/0349

Effective date: 20140922

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

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

FP Lapsed due to failure to pay maintenance fee

Effective date: 20240322