U.S. patent application number 13/448116 was filed with the patent office on 2012-08-09 for determining mutual inductance between intentional inductors.
This patent application is currently assigned to Mentor Graphics Corporation. Invention is credited to Rafael Escovar, Salvador Ortiz, Roberto Suaya.
Application Number | 20120204139 13/448116 |
Document ID | / |
Family ID | 37525317 |
Filed Date | 2012-08-09 |
United States Patent
Application |
20120204139 |
Kind Code |
A1 |
Suaya; Roberto ; et
al. |
August 9, 2012 |
DETERMINING MUTUAL INDUCTANCE BETWEEN INTENTIONAL INDUCTORS
Abstract
Various methods for analyzing mutual inductance in an integrated
circuit layout are disclosed. In one exemplary embodiment, for
example, circuit design information indicative of a first inductor
and a second inductor is received. A dipole moment associated with
the first inductor is determined, where the magnetic field
associated with the dipole moment is representative of magnetic
fields created by respective turns in the first inductor. A mutual
inductance between the first inductor and the second inductor is
determined by determining a magnetic flux of the magnetic field of
the dipole moment through surfaces bounded by respective wire
segments of the second inductor.
Inventors: |
Suaya; Roberto; (Meylan,
FR) ; Escovar; Rafael; (Grenoble, FR) ; Ortiz;
Salvador; (Grenoble, FR) |
Assignee: |
Mentor Graphics Corporation
|
Family ID: |
37525317 |
Appl. No.: |
13/448116 |
Filed: |
April 16, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11435426 |
May 16, 2006 |
8161438 |
|
|
13448116 |
|
|
|
|
10972025 |
Oct 21, 2004 |
7496871 |
|
|
11435426 |
|
|
|
|
60513343 |
Oct 21, 2003 |
|
|
|
60681613 |
May 16, 2005 |
|
|
|
Current U.S.
Class: |
716/115 |
Current CPC
Class: |
G06F 30/367
20200101 |
Class at
Publication: |
716/115 |
International
Class: |
G06F 17/50 20060101
G06F017/50 |
Claims
1-20. (canceled)
21. A method for performing physical verification of a circuit
layout comprising: determining a noise parameter indicative of
inductance effects between at least a first inductor and a second
inductor in the circuit layout, the act of determining the noise
parameter comprising representing magnetic fields produced by a
plurality of turns of the first inductor during circuit operation
as a single value; and modifying the circuit layout based at least
in part on the noise parameter.
22. The method of claim 21, wherein the single value corresponds to
a magnitude of a vector located substantially at the center of the
first inductor.
23. The method of claim 21, wherein the single value is associated
with a dipole moment representative of the first inductor.
24. The method of claim 21, wherein the act of determining the
noise parameter further comprises using the single value to compute
a mutual inductance between the first inductor and the second
inductor.
25. One or more computer-readable storage media storing
computer-executable instructions which when executed by a computer
cause the computer to perform a method, the method comprising:
determining a noise parameter indicative of inductance effects
between at least a first inductor and a second inductor in the
circuit layout, the act of determining the noise parameter
comprising representing magnetic fields produced by a plurality of
turns of the first inductor during circuit operation as a single
value; and modifying the circuit layout based at least in part on
the noise parameter.
26. One or more computer-readable media comprising design
information for a circuit having a layout modified at least in part
by the method of claim 21.
27.-33. (canceled)
34. The one or more computer-readable storage media of claim 25,
wherein the single value corresponds to a magnitude of a vector
located substantially at the center of the first inductor.
35. The one or more computer-readable storage media of claim 25,
wherein the single value is associated with a dipole moment
representative of the first inductor.
36. The one or more computer-readable storage media of claim 25,
wherein the act of determining the noise parameter further
comprises using the single value to compute a mutual inductance
between the first inductor and the second inductor.
37. A system, comprising: means for determining a noise parameter
indicative of inductance effects between at least a first inductor
and a second inductor in the circuit layout, the act of determining
the noise parameter comprising representing magnetic fields
produced by a plurality of turns of the first inductor during
circuit operation as a single value; and means for modifying the
circuit layout based at least in part on the noise parameter.
38. The system of claim 37, wherein the single value corresponds to
a magnitude of a vector located substantially at the center of the
first inductor.
39. The system of claim 37, wherein the single value is associated
with a dipole moment representative of the first inductor.
40. The system of claim 37, wherein the means for determining the
noise parameter further comprises means for using the single value
to compute a mutual inductance between the first inductor and the
second inductor.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent
application Ser. No. 10/972,025, filed on Oct. 21, 2004, entitled
"MUTUAL INDUCTANCE EXTRACTION USING DIPOLE APPROXIMATIONS," which
claims the benefit of U.S. Provisional Patent Application No.
60/513,343, filed on Oct. 21, 2003, entitled "MUTUAL INDUCTANCE
EXTRACTION," both of which are hereby incorporated herein by
reference. This application also claims the benefit of U.S.
Provisional Patent Application No. 60/681,613, filed on May 16,
2005, and entitled "DETERMINING MUTUAL INDUCTANCE BETWEEN
INTENTIONAL INDUCTORS," which is also hereby incorporated herein by
reference.
BACKGROUND
[0002] As operating frequencies of integrated circuits continue to
rise, the effects of inductance on circuit performance are becoming
increasingly important. For example, for integrated circuits
operating near or above the gigahertz frequency range, the mutual
inductance with neighboring signal wires may create
signal-integrity problems (such as noise and cross talk).
Consequently, the effective modeling and analysis of mutual
inductance has become an issue of great interest for high-speed
circuit designers and for electronic design automation (EDA)
software vendors that develop the tools used to create, simulate,
verify, and optimize the designs of integrated circuits (e.g., RF
circuits comprising intentional inductors) and to provide bounds
for effects due to inductance.
[0003] Intentional inductors are often used as components in RF
(radio frequency) analog designs, particularly in telecommunication
applications. Design and manufacturing considerations usually favor
spacing the different inductors closely together in order to
minimize the occupied area. To be able to place the inductors
safely, however, a designer desirably has a quantitative measure of
the electromagnetic noise that one inductor induces on another. The
noise figures can be evaluated, for example, in terms of the
electrical parameter resistance, inductance, and capacitance
matrices (PLC) for the system.
SUMMARY
[0004] Intentional inductors (sometimes referred to herein as
"inductors") are often used as components in high frequency RF
(radio frequency) analog and mixed-signal integrated circuit and
SOC design. It is not uncommon in RF applications to design ICs
containing a number of inductors. Typically, each inductor occupies
a substantial amount of area on the integrated circuit.
Manufacturing yield generally favors layout configurations that
minimize the distance among the different inductors on the
integrated circuit, while noise considerations favor larger
configurations.
[0005] The mutual inductance between two intentional inductors is
one parameter used for evaluating how close the user can place
different inductors while still satisfying pre-specified or
user-selected noise limits. For example, the inter-inductor noise
can be determined in part by the mutual inductance and the mutual
capacitance between the two inductors.
[0006] Disclosed herein are embodiments of techniques that can
provide a reliable computation of the mutual inductance between two
or more intentional inductors. Embodiments of the disclosed
techniques can be used, for example, to perform highly efficient
noise analysis or design exploration.
[0007] In certain embodiments, frequency-related effects are
accounted for as necessary. For instance, one parameter that
controls the onset of frequency dependent effects is the skin depth
.delta.. Thus, in one exemplary embodiment, when the smallest
transverse dimension is smaller than about 2.delta., corrections
due to current crowding play a minimal role and uniform current
distribution can be assumed. For higher frequencies, effects due to
non-uniformity of the current distribution are desirably accounted
for.
[0008] Thus, according to one embodiment of the disclosed
technology, mutual inductance computations are performed using at
least two different approaches, one approach for lower frequencies
where current uniformity can be appropriate assumed (e.g., smaller
than about 5-7 GHz) and another approach for higher frequencies
where current uniformity is no longer assumed (e.g., greater than
about 5-7 GHz). Such embodiments can be used, for example, to
quickly estimate the noise parameter due to magnetic coupling in
low- and high-frequency circuits.
[0009] Further, many of the disclosed embodiments are much less
computationally complex than conventional methods. For example, the
computation of mutual inductance M.sub.ab(s) between two inductors
as a function of separation s typically has N.sup.2 complexity for
each datapoint, with N corresponding to the number of segments per
inductor. This cost can be computationally expensive for design
exploration. Accordingly, in some embodiments of the disclosed
technology, this computational complexity is improved by using a
dipole approximation technique as described herein. According to
one implementation, for example, the complexity of such
computations is linear with N.
[0010] Further, the disclosed embodiments are not constrained to
being applied to a Manhattan layout, but may more generally be
applied to layouts having other angular relationships (e.g.,
symmetrical inductors or spiral inductors, among others).
[0011] In one exemplary embodiment, a method for analyzing mutual
inductance between inductors in a circuit layout is described. In
this embodiment, for example, circuit design information indicative
of at least a portion of the circuit layout is received. The
circuit design information includes layout information about a
first inductor and a second inductor. A value associated with the
first inductor is determined, where the value is representative of
plural magnetic fields generated by respective turns of the first
inductor. A mutual inductance between the first inductor and the
second inductor is determined as a function of the value. In
certain implementations, the act of determining the value comprises
computing a sum of areas enclosed by respective turns of the first
inductor. In some implementations, the value corresponds to the
magnitude of a vector (e.g., a dipole moment) having a location
substantially in the center of the first inductor. In such
implementations, the act of determining the mutual inductance can
comprise determining the flux of a magnetic field through surfaces
subtended by turns of the second inductor, wherein the magnetic
field is represented as being generated at the location of the
vector and having a strength proportional to the value (e.g., a
strength proportional to the dipole moment). In some
implementations, the value is a first value and the mutual
inductance is a first mutual inductance. In these implementations,
the method for analyzing mutual inductance can further comprise
determining a second value associated with the second inductor (the
second value being representative of plural magnetic fields
generated by respective turns of the second inductor), determining
a second mutual inductance between the first inductor and the
second inductor as a function of the second value, and determining
a final mutual inductance value, wherein the final mutual
inductance value is based at least in part on the first mutual
inductance and the second mutual inductance. For instance, the act
of determining the final mutual inductance value can comprise
averaging the first mutual inductance and the second mutual
inductance. In certain embodiments, a noise parameter based at
least in part on the mutual inductance is determined. Further, in
some embodiments, a location of one of the first inductor or the
second inductor in the layout is modified based at least in part on
the mutual inductance. In certain embodiments, the self and/or
mutual inductances are stored in a database of inductances
associated with the circuit layout.
[0012] In another exemplary embodiment, another method for
analyzing mutual inductance between inductors in a circuit layout
is described. In this embodiment, for example, circuit design
information indicative of a first inductor and a second inductor is
received. A dipole moment associated with the first inductor is
determined, where the magnetic field associated with the dipole
moment is representative of magnetic fields created by respective
turns in the first inductor. A mutual inductance between the first
inductor and the second inductor is determined by determining a
magnetic flux of the magnetic field of the dipole moment through
surfaces bounded by respective wire segments of the second
inductor. At high frequencies, the act of determining the dipole
moment comprises discretizing at least one straight segment of the
first inductor into a plurality of filaments. The act of
determining the magnetic flux can also comprise discretizing at
least one straight segment of the second inductor into a plurality
of filaments. In certain instances, the first inductor is a
symmetric inductor. In these instances, the act of determining the
dipole moment for the symmetric inductor can include determining a
sum of areas of concentric polygons that form the symmetric
inductor. In some instances, the first inductor is a spiral
inductor. In these instances, the act of determining the dipole
moment for the spiral inductor includes determining a sum of areas
of concentric turns that form the first inductor. In some
implementations, the self and/or mutual inductances are stored in a
database of inductances associated with the circuit layout.
[0013] Another exemplary embodiment disclosed herein is a method
for performing physical verification of a circuit layout. In this
embodiment, a noise parameter indicative of inductance effects
between at least a first inductor and a second inductor in the
circuit layout is determined. To determine the noise parameter,
magnetic fields produced by a plurality of turns of the first
inductor during circuit operation are represented as a single value
(e.g., as a dipole moment). Further, the circuit layout is modified
based at least in part on the noise parameter. In some
implementations, the single value corresponds to a magnitude of a
vector located substantially at the center of the first inductor.
Further, the single value can be associated with a dipole moment
representative of the first inductor. In some implementations, and
in order to determine the noise parameter, the single value is used
to compute a mutual inductance between the first inductor and the
second inductor.
[0014] In another exemplary embodiment disclosed herein, another
method for performing physical verification of a circuit layout is
described. In this embodiment, a noise parameter indicative of
inductance effects between at least a first inductor and a second
inductor in a circuit layout is determined. To determine the noise
parameter, a mutual inductance between the first inductor and the
second inductor is determined using a dipole approximation
technique. The circuit layout is modified based at least in part on
the noise parameter. In particular implementations, the dipole
approximation technique comprises representing plural magnetic
fields produced by respective turns of the first inductor during
circuit operation as a representative magnetic field produced by a
representative magnetic dipole, and determining a flux of the
representative magnetic field from the representative magnetic
dipole through the second inductor. In some implementations, skin
effects are accounted for in the magnetic dipole approximation
technique by respectively representing individual segments of the
first inductor, the second inductor, or both as a plurality of
filaments. Further, in some instances, at least one of the first
inductor or the second inductor is a symmetrical inductor or a
spiral inductor.
[0015] Any of the disclosed methods may be performed by a computer
program, such as an electronic-design-automation (EDA) software
tool comprising computer-executable instructions stored on a
computer-readable medium. Further, any of the disclosed methods can
be used to modify or design a circuit represented as circuit design
information stored on a computer-readable medium. The circuit
design information can comprise, for example, a circuit design
database (such as a GDSII or Oasis file) and may be created or
modified on a single computer or via a network. Additionally, data
structures or design databases storing mutual inductance
information determined using any of the disclosed methods are also
disclosed.
[0016] The foregoing and additional features and advantages of the
disclosed embodiments will become more apparent from the following
detailed description, which proceeds with reference to the
following drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
[0017] FIG. 1 is a block diagram of an exemplary wiring layout
illustrating the various couplings between an exemplary signal wire
and its multiple return paths.
[0018] FIG. 2 is a block diagram illustrating the magnetic flux of
a first group of current loops through a second group of current
loops.
[0019] FIGS. 3A and 3B are block diagrams illustrating an exemplary
bundle comprising a signal wire and a single associated ground
wire. FIG. 3B shows the cross section of the exemplary bundle.
FIGS. 3A and 3B further illustrate the magnetic dipole that is
representative of the exemplary bundle.
[0020] FIGS. 4A and 4B are block diagrams illustrating an exemplary
bundle comprising a signal wire and multiple associated ground
wires. FIG. 4B shows the cross section of the exemplary bundle.
FIG. 4A and FIG. 4B further illustrate the individual magnetic
dipoles formed between the signal wire and the respective ground
wires.
[0021] FIGS. 5A and 5B are block diagrams showing two bundles
transversely coupled (FIG. 5A) and forward coupled (FIG. 5B).
[0022] FIG. 6 is a flowchart of an exemplary method for analyzing
the mutual inductance between two bundles using an embodiment of
the disclosed dipole approximation technique.
[0023] FIG. 7 is a flowchart of a more general exemplary method for
analyzing mutual inductance utilizing an embodiment of the
disclosed dipole approximation technique.
[0024] FIG. 8A is a block diagram showing two exemplary bundles
having respective dipoles that are oriented perpendicular to one
another.
[0025] FIG. 8B is a graph showing a comparison between results
.zeta. of as a function of D.sub.x, and for the indicated values of
D.sub.z, obtained by an embodiment of the disclosed dipole
approximation technique (solid lines) and results obtained from a
field solver (dashed lines with symbols) for the configuration
shown in FIG. 8A.
[0026] FIG. 9A is a block diagram showing two exemplary bundles
having respective dipoles that are oriented parallel to one
another.
[0027] FIG. 9B is a graph showing a comparison between results of
.zeta. as a function of D.sub.x, and for the indicated values of
D.sub.z, obtained by an embodiment of the disclosed dipole
approximation technique (solid lines) and results obtained from a
field solver (dashed lines with symbols) for the configuration
shown in FIG. 9A.
[0028] FIG. 10A is a block diagram showing two exemplary complex
bundles having multiple return paths.
[0029] FIG. 10B is a graph showing a comparison between results of
.zeta. as a function of D.sub.x, and for the indicated values of
D.sub.z, obtained by an embodiment of the disclosed dipole
approximation technique (solid lines) and results obtained from a
field solver (dashed lines with symbols) for the configuration
shown in FIG. 10A.
[0030] FIG. 11A is a block diagram showing two parallel bundles
having a particular angular orientation from one another.
[0031] FIG. 11B is a graph showing a comparison between results
obtained by an embodiment of the disclosed dipole approximation
technique (solid lines) and results obtained from a field solver
(dashed lines with symbols) for the configuration shown in FIG.
11B.
[0032] FIG. 12 is a block diagram illustrating a wiring layout
having two symmetric signal-wire and ground-wire
configurations.
[0033] FIG. 13 is a block diagram illustrating a wiring layout
having a shared ground wire.
[0034] FIG. 14 is a block diagram illustrating mutual inductance
between two exemplary parallel filaments.
[0035] FIG. 15 is a flowchart of a general method for analyzing the
mutual inductance between two inductors in a circuit layout using
an embodiment of a dipole approximation technique.
[0036] FIG. 16 is a flowchart of an exemplary method for evaluating
and modifying the configuration of two inductors using as
parameters the prescribed noise limits, and varying the separations
among inductors.
[0037] FIG. 17 is a schematic block diagram of a symmetric inductor
as may be considered in the method illustrated in FIG. 15.
[0038] FIG. 18 is a schematic block diagram of a spiral inductor as
may be considered in the method illustrated in FIG. 15.
[0039] FIG. 19 is a schematic block diagram of a square inductor as
may be considered in the method illustrated in FIG. 15.
[0040] FIG. 20 is a schematic diagram showing an exemplary
discretized inductor represented in terms of multiple filaments;
partial mutual inductances between different segments are present
but not shown.
[0041] FIG. 21 is a graph illustrating the frequency dependence of
resistance for an exemplary square inductor a and spiral inductor b
in FIG. 21.
[0042] FIG. 22 is a graph illustrating the frequency dependence of
self inductance and mutual inductance for the exemplary square
inductor a and spiral inductor b.
[0043] FIG. 23 is a schematic block diagram showing the
cross-sectional geometry of two inductors considered during
experiments with an embodiment of the disclosed dipole
approximation technique.
[0044] FIG. 24 is a graph of the ratio .zeta. plotted as a function
of d.sub.x for inductor configurations as shown in FIG. 23 for an
embodiment of the disclosed dipole approximation technique, a
FastHenry simulation, and a classical approach using Grover's
equations.
[0045] FIG. 25 is a graph showing a similar comparison as FIG. 25
of the same mutual inductance computation techniques for multi-turn
square inductors consisting of six and two turns, respectively
[0046] FIG. 26 is a graph showing the total average runtime for the
three methods compared in FIG. 25 of two symmetrical octagonal
inductors as a function of the number of turns in one of the
inductors and for a fixed separation.
[0047] FIG. 27 is a flowchart showing an exemplary alternative
application of the dipole approximation on inductors.
[0048] FIG. 28 is a block diagram showing an exemplary
configuration consisting of two different inductors.
[0049] FIG. 29 is a block diagram showing an exemplary partitioning
of an inductor into straight segments according to the method of
FIG. 27.
[0050] FIG. 30 is a block diagram showing an exemplary
transformation of an inductor into concentric polygons in order to
calculate its dipole moment according to the method of FIG. 27.
[0051] FIG. 31 is a graph showing a comparison between results of
.zeta. as a function of two inductors' border-to-border separation
obtained by an embodiment of the disclosed dipole approximation
technique applied to a configuration having two inductors. FIG. 31
also shows the results obtained from a field solver for the same
configuration.
[0052] FIG. 32 is a block diagram showing a first exemplary
computer network as may be used to perform any of the disclosed
methods.
[0053] FIG. 33 is a block diagram showing a second exemplary
computer network as may be used to perform any of the disclosed
methods.
[0054] FIG. 34 is a flowchart of a method for determining mutual
inductances between inductors in a circuit layout using any of the
disclosed embodiments and using the network of FIG. 33 or 34.
DETAILED DESCRIPTION
I. General Considerations
[0055] As used in this application and in the claims, the singular
forms "a," "an," and "the" include the plural forms unless the
context clearly dictates otherwise. Additionally, the term
"includes" means "comprises."
[0056] Disclosed below are representative embodiments of methods
for determining mutual inductances between exemplary circuit
structures, including intentional inductors. The disclosed methods
should not be construed as limiting in any way. Instead, the
present disclosure is directed toward all novel and nonobvious
features and aspects of the various disclosed embodiments, alone
and in various combinations and subcombinations with one another.
The methods are not limited to any specific aspect or feature or
combinations thereof, nor do the disclosed methods require that any
one or more specific advantages be present or problems be
solved.
[0057] Although the operations of some of the disclosed methods are
described in a particular, sequential order for convenient
presentation, it should be understood that this manner of
description encompasses rearrangement, unless a particular ordering
is required by specific language set forth below. For example,
operations described sequentially may in some cases be rearranged
or performed concurrently. Moreover, for the sake of simplicity,
the attached figures may not show the various ways in which the
disclosed methods can be used in conjunction with other methods.
Additionally, the description sometimes uses terms like "compute"
and "receive" to describe the disclosed methods. These terms are
high-level abstractions of the actual operations that are
performed. The actual operations that correspond to these terms
will vary depending on the particular implementation and are
readily discernible by one of ordinary skill in the art.
[0058] The disclosed technology can be used, for example, in the
analysis of inductance noise among intentional inductors as are
commonly used in RF analog or mixed-signal integrated circuits. The
disclosed technology can be used, for example, to help minimize the
noise due to mutual inductance by determining a placement of
inductors that satisfies noise margins. It can also be used in the
reverse sense (e.g., by grouping intentional inductors closer
together to improve yield) while simultaneously satisfying noise
limits.
[0059] The disclosed technology can generally be applied to any
circuit or situation where inductance may affect signal delay or
signal integrity. For example, the disclosed embodiments can be
used to analyze inductance between a variety of electrical
components on an integrated circuit (e.g., an application-specific
integrated circuit (ASIC), a programmable logic device (PLDs) such
as a field programmable gate arrays (FPGA), a system-on-a-chip
(SoC), or a microprocessor) or in components at the board or
package level (e.g., multilayered packages or printed circuit
boards). For example, the disclosed embodiments can be used to
analyze inductance between one or more intentional inductors on an
RF circuit.
[0060] Any of the disclosed methods can be performed using software
stored on one or more computer-readable media and executed on a
computer. Such software can comprise, for example, an
electronic-design-automation (EDA) software tool used, for
instance, for physical verification or synthesis. For example,
embodiments of the disclosed techniques may be utilized in an EDA
synthesis tool and used to evaluate and determine placement
strategies. Such software can be executed on a single computer or
on a networked computer (e.g., via the Internet, a wide-area
network, a local-area network, a client-server network, or other
such network). For clarity, only certain selected aspects of the
software-based implementations are described. Other details that
are well known in the art are omitted. For example, it should be
understood that the disclosed technology is not limited to any
specific computer language, program, or computer. For the same
reason, computer hardware is not described in detail.
[0061] Further, any of the disclosed methods can be used to modify
or design a circuit represented as circuit design information
stored on computer-readable media. The circuit design information
can comprise, for example, a design database (such as a GDSII or
Oasis file) and may be created or modified on a single computer or
via a network. Additionally, mutual inductance information
determined using any of the disclosed methods may be included in
one or more data structures or design databases stored on
computer-readable media (e.g., a SPICE file, a file for use with
Eldo from Mentor Graphics Corporation, or the like).
[0062] The disclosed methods can be used at one or more stages of
an overall synthesis scheme. For example, any of the inductance
analysis methods disclosed can be used during physical synthesis
(e.g., during the physical verification process) in order to
evaluate and improve the layout of a circuit. The resulting circuit
designs (e.g., circuit designs modified or evaluated using any of
the disclosed techniques) can be used to implement a wide variety
of electronic devices. For example, any of the embodiments
described herein can be used as part of a synthesis scheme for
designing and verifying circuits that use intentional inductors,
such as cell phones, personal digital assistants, mobile media
players, and laptop computers.
II. Introduction to the Disclosed Technology
[0063] A. The Partial-Inductance and Loop-Inductance Approaches in
General
[0064] In general, there are two common approaches for analyzing
inductance in the paths of an integrated circuit. These two
approaches may be categorized as: (1) the loop-inductance approach;
and (2) the partial-inductance approach (sometimes termed the
partial-element-equivalent-circuits (PEEC) model). The disclosed
embodiments generally concern methods for efficiently calculating
mutual inductances using the loop-inductance approach. More
specifically, certain embodiments of the disclosed technology
concern calculating mutual inductances in terms of the magnetic
fields generated by magnetic dipoles that are representative of
current loops in the layout of signal wires and ground wires in an
integrated circuit design. Before describing the disclosed methods,
however, a brief discussion of the loop-inductance approach and the
partial-inductance approach, as well as some of the problems of the
partial-inductance approach (e.g., the high density of its
inductance matrix (M)), is provided.
[0065] In both approaches, the energy W associated with a set of
two currents I.sub.i and I.sub.j running along loops C.sub.i can be
found as follows:
W = 1 2 i j W ij , and W ij = I i I j M ij , ( 1 ) ##EQU00001##
where M.sub.ij is the i, j element of the inductance matrix. The
inductance matrix element M.sub.ij can be determined as
follows:
M ij = .PSI. i .fwdarw. j I i = 1 I i .intg. S j B ( i ) S j = .mu.
0 4 .pi. C i C j l i l j r i - r j conductors ' cross - sections ,
( 2 ) ##EQU00002##
where .PSI..sub.i.fwdarw.j is the magnetic flux due to the magnetic
induction field B.sup.(i), S.sub.j is the surface bounded by
C.sub.i, generated by the time-varying current I.sub.i acting on
I.sub.j. In Equation (2), the quasi-magneto-static regime is
assumed, so the currents I.sub.i, I.sub.j are considered to be
uniform over the transverse cross sections and it is possible to
equalize the last two equations.
[0066] In the loop-inductance approach, the integrals in Equation
(2) can be evaluated over closed loops. By contrast, in the
partial-inductance approach, the loops are segmented, and each
segment is assumed to form part of a loop that closes at infinity.
Because the partial-inductance approach includes mutual inductances
between every pair of conductors in the circuit design, the
resulting matrix can be very dense.
[0067] The denseness of the partial-inductance matrix is primarily
due to the long distance behavior of the partial inductance matrix
M, which is essentially non-physical. In fact, for large wire
separations r, the per unit length matrix element m.sub.ij behaves
as:
m ij ( r ) .ident. M ij ( r ) L .about. - log ( r ) , ( 3 )
##EQU00003##
where L is their common length.
[0068] The logarithmic decrease with distance manifests itself in
two-dimensional as well as three-dimensional treatments. In the
three-dimensional case, however, the constant coefficient log(2L)
appears, which is absent in the two-dimensional case. Using
Grover's equations (see F. Grover, Inductance Calculations Working
Formula and Tables, New York: Instrument Society of America
(1945)), it can be shown that the ratio of M.sub.ij between a
filament i and its neighbor j to the corresponding diagonal term
L.sub.i has the following limit at large distances (for large r,
r<L):
M L .about. 1 - log ( r / w ) Log ( 2 L ) .fwdarw. 1 , ( 4 )
##EQU00004##
where w represents the cross section of the wire (e.g., the width
of a square signal trace).
[0069] Equations (3) and (4) result in M being dense and not
diagonally dominant. A strictly diagonally dominant real matrix is
one in which the sum of the absolute values of off-diagonal
elements for each row is strictly smaller than the absolute value
of the diagonal counterparts. For a symmetric matrix with diagonal
elements that are strictly positive, diagonal dominance is a
sufficient condition for the matrix having real and strictly
positive eigenvalues. Moreover, neglecting small off-diagonal terms
in a matrix of this type does not change the sign of its
eigenvalues. Matrices of this kind can be sparsified by neglecting
small off-diagonal terms, without resulting in a possible passivity
violation. Positive definite matrices that do not satisfy the
requirement of being strictly diagonally dominant, on the other
hand, can display unwanted instabilities of the following kind:
setting to zero seemingly negligible off-diagonal contributions can
alter the sign of the eigenvalues of M, a violation of passivity
for linear systems. A system designer is then left with two
unwanted choices when working with M (particularly with respect to
the PEEC method): either sparsify and have passivity violations, or
have very large matrices and rapidly increase the complexity of
downstream circuit simulation.
[0070] To investigate the primary source of the denseness of the
partial-inductance matrix, consider the following proposition: the
asymptotic behavior of the partial-inductance model shown in
Equation (3) results from the following large distance behavior of
B:
B(d).about.1/r.sup.2 in three dimensions, and
B(d).about.1/r in two dimensions. (5)
This first proposition can be verified by directly substituting
Equation (5) into Equation (2), and counting powers in the
integrand to estimate the asymptotic behavior.
[0071] The first proposition is based on a second proposition: the
asymptotic behavior of Equation (5) results from the presence of
unbounded current distributions. To show the basis for this second
proposition, consider Ampere's law in the two-dimensional case for
an infinitely long filament:
Bdl=.mu..sub.0I. (6)
Extracting B gives:
B ( r ) = .mu. 0 I 2 .pi. r m ( r ) = .intg. B r I = .mu. 0 2 .pi.
log ( r w ) , ( 7 ) ##EQU00005##
which gives Equation (3).
[0072] In the three-dimensional case, consider the vector potential
A:
A ( r ) = .mu. 0 2 .pi. .intg. V J ( r ' ) r - r ' 3 r ' , ( 8 )
##EQU00006##
and carry out a multi-pole expansion of Green's Function:
1 r - r ' = 1 r + r r ' r 3 + , ( 9 ) ##EQU00007##
giving:
A i ( r ) = .mu. 0 2 .pi. ( 1 r .intg. V J i ( r ' ) 3 r ' + 1 r 3
.intg. V r ' J i ( r ' ) 3 r ' + ) . ( 10 ) ##EQU00008##
For B(r).apprxeq.1/r.sup.2 (which is required from Equation (3)),
the first terms in Equation (10) must be different than zero. On
the other hand, it is known that for any bounded current
distribution in the quasi-static regime where
.differential. .rho. .differential. t = 0 , ##EQU00009##
with .rho. being the charge density, the integral in the first term
of Equation (10) vanishes (the volume V of integration includes the
entire current distribution). Thus, under quasi-static conditions
and for bounded current distributions, the value of A will decrease
for large distances at least as rapidly as 1/r.sup.2. Using
B=.gradient..times.A, it can be concluded for bounded physical
systems that:
B.about.1/r.sup.3. (11)
[0073] This result suggests that Equations (3) and (5) are invalid
and indicates that the partial-inductance method is in violation
with the asymptotic behavior required by Maxwell's equations.
Consequently, one of the underlying assumptions (bounded current
distributions or quasi-static conditions) of the partial-inductance
model needs to be removed. Dropping the assumption of bounded
current distributions, however, suggests the presence of magnetic
monopoles, but dropping the quasi-static assumption requires a
complete reformulation of the approach. Thus, the behavior in
Equation (5) within the partial-inductance model is only understood
by accepting the existence of magnetic monopoles in violation of
Maxwell's equations. In the partial-inductance model, the correct
physical behavior of electromagnetic theory is recovered downstream
during the circuit simulation phase of the flow. During this phase,
circuits are necessarily closed by virtue of the Kirchoff Voltage
Laws (KVL). An inherent result of the method is that large
cancellations involving different length scales occur, mixing short
distance with long distance. Although the correct physical theory
is recovered, the size of the mutual inductance matrix needed for
timing simulation is increased. Issues related to capacity and
numerical accuracy are unavoidable in this model. By contrast, the
loop-inductance model preserves the correct physical model for
analyzing inductance throughout and utilizes an inductance matrix
that is substantially less dense than in the partial-inductance
model.
[0074] There have been numerous efforts made to improve the
partial-inductance model. The underlying goal of many of these
efforts has been to sparsify the dense M matrix while preserving
the positive definiteness of the matrix. The behavior of magnetic
fields within the partial-inductance formalism (magnetic fields
being produced by magnetic monopoles) is formally equivalent to
that of electrical fields being produced by point charges. This
similarity has inspired some researchers to explore the notion of
inverse methods. Generally speaking, these methods usually consist
of first inverting locally the M matrix, then sparsifying the
K.ident.M.sup.-1 matrix. The analogy extends to C and K, which play
similar roles in the electrostatic and magneto-static problems,
respectively (that is, Q=C.DELTA.V, j.omega.I=K.DELTA.V). However,
there is an important difference between the two cases: for the C
matrix, the local truncation prior to inversion is well justified
due to the fact that C, in the Maxwell sense, is diagonally
dominant by construction, and thus any truncation preserves
positive definiteness.
[0075] At variance with C, the matrix K is not physical, and it is
not obvious how to extend the concept of shielding that is present
in the electrostatic case. The shielding of electrical fields by
conductors causes the electrical field (E) to be localized in a
dense-wire environment, thus making the C matrix sparse. In the
magneto-quasi-static case, however, there is no physical equivalent
to shielding, currents and the magnetic field (B) fully penetrate
the conductors. Nonetheless, it can be empirically verified that K
is sparse, indicating the strength of using the partial-inductance
model followed by inverse methods. A loop inductance method, on the
other hand, has inherent localization properties that can be
derived while preserving the correct physical theory (as shown and
discussed below with respect to Equation (29)).
[0076] B. Positive Definiteness of the Loop Inductance Matrix
[0077] A number of observations can be made that support the
position that the loop inductance matrix M is diagonally dominant
for configurations where there are no shared return paths. For
example, consider an exemplary worst-case configuration, where
values of the diagonal elements are as small as possible, and the
corresponding values of the off-diagonal elements are as large as
possible. FIG. 12 is a block diagram 1200 illustrating a
representative worst-case configuration. In FIG. 12, the return
path of signal wire s.sub.1 consists of the parallel combination of
ground wires g.sub.1 and g.sub.2, while for signal wire s.sub.2, it
consists of ground wires g.sub.3 and g.sub.4. To minimize loop self
inductance of one signal wire, the corresponding return paths need
to be as close as possible to the signal wire. Furthermore, to
maximize the mutual loop inductance between the two signals, it is
necessary to minimize the distance between the two circuits. The
minimum distance for purposes of this example is selected as a
value that is typical for 90 nm processes. In particular, the
minimum value of inter-wire separation (s.sub.min) is selected as
0.2 .mu.m for representative wires of low resistance having a wire
width (w) of about 1 .mu.m. Assuming that d=s=s.sub.min, and that
the configuration 1400 has equal wire widths (w), the
inductance-per-unit-length matrix is:
M = ( 2.96 0.07 0.07 2.96 ) nh / cm . ##EQU00010##
The ratio .delta. of self to mutual inductance for this example is
about 42. The above matrix is diagonally dominant. To violate the
condition of diagonal dominance, at least .delta. worst-case
circuits separated by s.sub.min, are needed--an unfeasible
configuration.
[0078] Consider now, a small increase of 1 .mu.m in the separation
(d) between the two initial circuits. As a result, .delta. climbs
to 132. This fast climb reflects the power-law nature of the loop
inductance variation with distance (which is discussed below with
respect to Equation (29)). For feasible wire densities, the self
inductance will be larger than the sum of the magnitudes of the
mutual inductances with the other circuits. Therefore, for all
practical purposes, the matrix M will be diagonally dominant.
[0079] When different signal wires share return grounds, however,
the above argument is no longer valid. Consider, for example, the
exemplary configuration shown in block diagram 1300 in FIG. 13.
Using the same values for the wire separation (s.sub.min) and width
(w) as in the previous example, the following 4.times.4 matrix
results:
M = ( 7.8 3.9 1.6 2.5 3.9 4.9 1 1.6 1.6 1 4.9 3.9 2.5 1.6 3.9 7.8 )
nh / cm ##EQU00011##
This matrix M (calculated from Grover's expressions) is positive
definite but not diagonally dominant. It can therefore be concluded
that, in the absence of shared ground return paths, the inductance
matrix will be diagonally dominant in the loop formalism. This is
not the case in the partial inductance formalism, as can be
concluded from Equation (4).
[0080] In this disclosure, the contributions to the inductance
matrix arising from signal-wire segments which are separated by
relatively long distances are analyzed and modeled. These wire
configurations typically do not lead to shared ground
configurations and the resulting diagonal dominance problems.
[0081] C. Return Path Selection
[0082] One difference between the partial-inductance model and the
loop-inductance model is that the partial-inductance model does not
require prior identification of the return paths that are followed
by currents in the signal wires. Instead, the partial-inductance
model defines each segment of a loop as having its own return loop
at infinity. As more fully explained below, however, the
uncertainties that may result in the loop-inductance model from
this issue are limited to low frequencies, where inductance effects
are unimportant.
[0083] Throughout this disclosure, the concept of a "bundle" is
used. A bundle comprises a set of parallel wires of equal length
comprising one signal-wire segment and its possible one or more
return-path segments (sometimes referred to herein as "ground-wire
segments"). The current loops within a bundle comprise the set of
one or more closed loops formed between the return-path segments
and one common segment (namely, the signal-wire segment). The set
of closed loops may contain only one closed loop if there is only
one return-path segment associated to the signal-wire segment. The
small segments in the orthogonal direction that close the loops are
usually neglected. By contrast, this neglecting is not done in the
exemplary embodiment concerning intentional inductors.
[0084] According to one exemplary embodiment, bundles can be
generated by fracturing a layout database. For example, the path of
each signal wire can be decomposed into the union of a set of
non-overlapping segments whose ends are identified by
discontinuities (changes of layer or direction) either in the
signal path or in the path of any of its neighboring return-path
segments. Thus, for each signal-path segment, there is a set of one
or more return-path (or ground-wire) segments that have the same
length and form part of the bundle.
[0085] Bundles also have an orientation. For example, in a
Manhattan layout, bundles are oriented along the x- and y-axes.
Further, different bundles in the same path of a net typically have
a different length. The process of selecting return paths can be
performed independently for each bundle. When two bundles
corresponding to different signals share one or multiple
ground-wire segments (that is, have a shared return path or paths),
the configuration is said to be a degenerate configuration. The
concept of a degenerate configuration for a shared ground is
generally applicable at the bundle level only. This means, for
example, that two different signal segments of the same wire may
belong to two different bundle configurations (e.g., one that is
degenerate, one that is not). Bundles that are not degenerate can
be treated independently from one another. The shared ground
configuration discussed above with respect to FIG. 13 is a
degenerate configuration and constitutes a very limited subset of
all possible shared ground configurations. The criteria that may be
used in selecting which ground-wire segments to choose during the
bundle-formation process are discussed in more detail below.
[0086] Consider the resistance of a bundle (R) and the self
inductance of a bundle (L). The frequency dependent impedance of
the bundle is given by:
Z(.omega.)=R+j.omega.L. (12)
In general, the return path for a particular signal-wire segment is
the one that minimizes the impedance (Z). At low frequencies
(.omega.), impedance minimization corresponds to minimizing the
resistance (R), whereas for high frequencies (.omega.), impedance
minimization requires minimizing the self inductance (L).
[0087] As an example, consider the exemplary wiring configuration
shown in FIG. 1. FIG. 1 shows a wiring layout 100 comprising copper
wires as may be used for clock signal routing in a 90 nm CMOS
process. Assume for purposes of this example that the loop
inductance per unit length (l) is 10.sup.-7 H/m, while the loop
resistance per unit length (r) is 5000 .OMEGA./m. As illustrated in
FIG. 1, wiring layout 100 comprises a signal path 110 (labeled as
"signal") and n return paths 112 (labeled as "g.sub.1," "g.sub.2,"
. . . , and "g.sub.n," respectively). Together, the signal path 110
and the return paths 112 form a loop originating at a voltage
source 120 and ending at the node 130 (labeled "V.sub.out"). The
number of possible return paths is not limited, as any number of
return paths greater than or equal to one is possible. Each path
110, 112 further includes an associated current (labeled
respectively as "I.sub.signal," "I.sub.g1," "I.sub.g2," and
"I.sub.gn"), resistance (labeled respectively as "R.sub.signal,"
"R.sub.g1," "R.sub.g2," and "R.sub.gn") and self-inductance
(labeled respectively as "R.sub.signal," "L.sub.g1," "L.sub.g2,"
and "L.sub.gn"). Each path 110, 112 additionally includes an
associated mutual inductance between itself and every other path in
the wiring layout 100. For purposes of simplifying the illustration
in FIG. 1, these mutual inductances are shown as dotted lines 140
between the mutually coupled paths and are not individually
labeled.
[0088] With reference to the wiring layout 100 illustrated in FIG.
1, four frequency regimes can be defined, the numbers correspond to
IC applications: (1) low frequencies, where r.omega.l (e.g., signal
frequencies less than 1 GHz); (2) intermediate frequencies, where
r.gtoreq..omega.l (e.g., signal frequencies less than 8 GHz); (3)
high frequencies, where r<col and current distribution within
the conductors is still uniform (e.g., signal frequencies between 8
and 15 GHz); and (4) very high frequencies, where r.omega.l and
current distribution is no longer uniform (e.g., signal frequencies
greater than 15 GHz).
[0089] These exemplary frequency ranges should not be construed as
limiting, as they are approximate ranges used to illustrate certain
behavioral aspects of wiring layouts at various frequencies. In
general, the first two regimes are resistance dominated. As the
frequency increases into the third regime, however, significant
inductance effects begin to appear and are desirably accounted for.
To illustrate the impact of these frequency regimes on the
return-path selection process, consider the self inductance of a
wire configuration in the loop-inductance model having a signal
wire and its (not necessarily coplanar) return paths. With
reference to FIG. 1, the current I.sub.i running along each return
path 112 when a unit amplitude voltage source 120 is connected
between the signal and the n return paths of the bundle can be
found by:
.DELTA. V = ZI , where , ( 13 ) .DELTA. V = ( 1 - V out - V out - V
out ) , I = ( I signal I 1 I n ) , such that i = 0 n I i = 0. ( 14
) ##EQU00012##
These currents I.sub.i give the (complex) weight of each return
path within each bundle. Normalized by the current I.sub.signal,
their sum is unity. Further, the value .alpha..sub.i can be defined
as:
.alpha. i .ident. I i I signal . ( 15 ) ##EQU00013##
Solving Equation (13) can be computationally expensive when there
are a large number of return paths in a bundle because it requires
the calculation of the inverse of an (n+1).times.(n+1) matrix.
Generally, a large number of return paths is needed only for
layouts operating in the first regime, where currents can go
relatively far from the signal path to find low-resistivity return
paths. In this low-frequency regime, however, the inductance
component can be neglected in the computation of I.sub.i. Thus, for
the first regime, .alpha..sub.i.varies.R.sub.i.sup.-1.
[0090] For a signal wire operating in the first regime (e.g., less
than 1 GHz), the dominant term R.sub.loop can be minimized by
including as return paths all parallel ground wires ordered by
their resistance. For layouts operating in this regime, the
distance between signal and ground(s) is typically not important.
Return paths that are relatively far away contribute to make the
overall inductance large, but the impact of Z is still small since
the frequency is relatively low. This balance explains the large
possible spread of return path choices. Given two signal wires
operating in the first regime, the chances that they have
degenerate configurations is relatively high.
[0091] For a signal operating in the second regime, where
resistance and inductance contributions are of the same order of
magnitude but where resistance still dominates, the choice of
return path(s) involves a balance between minimizing resistance and
minimizing inductance (thus impacting the length of the overall
path as well as the separation (d) from the signal wire). According
to one exemplary embodiment, a compromise can be obtained by
including as return paths wires organized according to resistance
up to a maximum distance for the signal wire. This maximum distance
may depend on the particular wire configuration and the relevant
operating frequency. A weighted function that accounts for both
resistances and distances, for example, may be used.
[0092] For signals operating in the third regime (e.g., between 8
and 15 GHz), inductance becomes much more important. Further, the
set of coefficients .alpha..sub.i computed in Equation (15) and
having appreciable contributions will correspond to close-by
neighbors, which have a minimal contribution to the loop
inductance. In this regime, mutual inductance can be particularly
important in signal noise calculations. According to one exemplary
embodiment, a predetermined number of the closest neighbors within
a certain distance are selected for return paths (e.g., one or
two). Alternatively, a weighted function, such as the one described
above, may be used with different coefficients. Other functional
relationship may also be used to select the return paths.
[0093] Finally, for signals in the fourth regime (e.g., greater
than 15 GHz), resistance effects become insignificant and desirably
may be ignored. In this case, any close neighbor ground or signal
can act as a valid return path. Because the number of close ground
neighbors is small, full inversion methods are used in one
exemplary embodiment to compute .alpha..sub.i.
[0094] It can be observed from these regimes that, in general, when
the current distribution is uniform, loop self inductance decreases
with frequency in going from the first regime onwards. In the
fourth regime, however, currents cease to be uniform, and there are
manifestations of the proximity effect (associated with the skin
effect). Selecting a return path configuration from a pool of
ground wires is relatively uncomplicated for signals operating in
the second, third, and even in the fourth frequency regimes. By
using a loop-inductance approach in these regimes, mutual
inductance extraction can be performed more efficiently than
conventional partial-inductance techniques. Further, by using a
loop-inductance approach, the size of the underlying inductance
matrix can be decreased because several resistances and inductances
in the equivalent circuit representation may be combined together.
For example, the method described in R. Escovar and R. Suaya,
"Transmission Line Design of Clock Trees," in Proc. IEEE/ACM
International Conference on CAD, November 2002, pp. 334-340, may be
utilized to combine the resistances and the inductances.
[0095] D. Mutual Inductance Analysis Using a Representative
Magnetic Dipole
[0096] Exemplary embodiments of a method for analyzing mutual
inductances utilizing the concept of "bundles" introduced above are
described below. To develop a method to compute the mutual
inductance between bundles M.sub.ab (i.e., the off-diagonal terms
in the Z matrix), it is desirable to arrive at an expression for
mutual inductance analogous to Equation (1), but for bundles
(M.sub.ab=W.sub.ab/(I.sub.aI.sub.b) for currents I.sub.a and
I.sub.b running along the respective signal wires of bundles a and
b). For this purpose, consider again Equation (1), where subindexes
i and j now represent the wires in bundles a and b, respectively.
The current I.sub.b can be divided among the return paths according
to the coefficients .alpha..sub.j:
I j = .alpha. b , j I b with .alpha. b , 0 = 1 , j .gtoreq. 1
.alpha. b , j = - 1. ( 16 ) ##EQU00014##
Consequently, W.sub.ab in Equation (1) can be factored as:
W ab = I b 2 j .gtoreq. 1 .alpha. b , j .PSI. a .fwdarw. j . ( 17 )
##EQU00015##
Here, .PSI..sub.a.fwdarw.j is the magnetic flux of all wires in
bundle a through the surface of an elementary closed loop S.sub.j
of bundle b formed between the signal-wire segment of bundle b and
respective return-path segments j. For example, FIG. 2 is a block
diagram 200 illustrating the magnetic flux 210 of a first exemplary
bundle 202 (bundle a in the equations) through the surface 212 of
the closed loop S.sub.j of a second exemplary bundle 204 (bundle b
in the equations). In Equation (17), the fact that the loops in the
second bundle 204 are not really closed (they are missing the
perpendicular segments at the ends) can be ignored in certain
embodiments because the error introduced by the absence of the
segments is small so long as the transverse dimensions (the lengths
of the missing segments) are small compared to the length of the
bundle and the separation between the bundles.
[0097] The fluxes can be computed using Stokes' theorem as
follows:
.PSI. a .fwdarw. j = .intg. .intg. S j ( .gradient. .times. A ( a )
) S j = .differential. S j A ( a ) l j , ( 18 ) ##EQU00016##
where A.sup.(a) is the vector potential due to all wires in bundle
a, and .differential.S.sub.j is the boundary of the surface of the
closed loop S.sub.j.
[0098] To split the closed curvilinear integral in Equation (18)
into two rectilinear integrals (one over the signal wire, the other
over the return path j), the contribution from the last integral
should be multiplied by -1 because the closed integral is
circulated in one definite sense. Summing up all the terms,
expression (18) becomes:
W ab = I b 2 j .gtoreq. 0 .alpha. b , j ' .intg. C j A ( a ) l j ,
( 19 ) ##EQU00017##
where C.sub.j is the conductor j.gtoreq.0, and
.alpha.'.sub.b,j=-.alpha..sub.b,j.A-inverted.j.gtoreq.1.
[0099] As explained below, a technique utilizing magnetic dipole
calculations can be used to efficiently calculate the interaction
between the two bundles. For example, in certain embodiments of the
disclosed technology, the field due to all the current loops in
bundle a can be considered as the one generated by a representative
dipole moment p.sub.a. The mutual inductance between two bundles
can then be found by calculating the magnetic flux due to the
representative dipole moment of bundle a through surfaces in the
bundle b formed between the respective signal-wire segment of
bundle b and its corresponding ground-wire segments, and performing
a weighted average of the individual contributions of all such
surfaces in bundle b.
[0100] To compute the value of p.sub.a, consider the dipole of an
exemplary bundle configuration as shown in FIG. 3A. FIG. 3A is a
block diagram 300 showing a perspective view of a signal-wire
segment 310 that is parallel to a return-path segment 312 with
segments 310, 312 both lying in a common x-y plane. FIG. 3B is a
block diagram 350 showing a cross-sectional view of the
configuration shown in FIG. 3A. In this simple case:
p a = .mu. 0 8 .pi. .intg. r .times. J ( r ) 3 r = .mu. 0 8 .pi. IL
s z ^ , ( 20 ) ##EQU00018##
where L is the common length of the two wires 310, 312, and s is
the separation between them (note that p.sub.a is proportional to
the area spanned by the circuit and points in the direction
{circumflex over (z)} normal to the plane containing them).
[0101] An example of the case where bundles have multiple return
paths is shown in FIGS. 4A-B. FIG. 4A is a block diagram 400
showing a perspective view of a signal wire 410 having return paths
along four neighboring wires 412 (labeled ".alpha..sub.1I.sub.s"
".alpha..sub.2I.sub.s" ".alpha..sub.3I.sub.s," and
".alpha..sub.4I.sub.s" respectively). FIG. 4B is a block diagram
450 showing a cross-sectional view of the configuration shown in
FIG. 4A. For bundles having multiple return paths (here, oriented
along the y axis), the integral in the first line of Equation (20)
can be decomposed into several terms like the one in the second
line of the equation. Because each of those terms is proportional
to the current it carries, the terms can be weighed by geometrical
coefficients .alpha..sub.i, i.epsilon.a as in Equation (17). The
expression for the magnetic dipole moment in this case becomes:
p a = .mu. 0 8 .pi. I a i .gtoreq. 0 .alpha. a , i ( y ^ .times. r
i ) , ( 21 ) ##EQU00019##
where r.sub.i is the position of the return path i with respect to
the signal wire and a identifies the bundle.
[0102] Because the total current in a bundle adds up to zero, the
value obtained by equation (21) is independent of where the origin
of coordinates is located. In one exemplary embodiment of the
disclosed technology, the origin is chosen as the position of the
"center of mass" of bundle a. Specifically, the center-of-mass
position r.sub.cm,a can be found as follows:
r cm , a = 1 2 i .gtoreq. 1 .alpha. a , i r i . ( 22 )
##EQU00020##
Thus, according to Equation (22), the center-of-mass position is
the weighted average of the position of all the constituent dipole
moments of the form shown in Equation (20) above.
[0103] The expression for the vector potential A at position r due
to a dipole p.sub.a at this respective origin is:
A ( a ) = p a .times. r r 3 . ( 23 ) ##EQU00021##
The 1/r.sup.2 behavior of A corresponds to the 1/r.sup.3 behavior
for B indicated by Equation (11).
[0104] By inserting Equation (23) into Equation (19), an expression
can be obtained which provides a closed expression of the mutual
inductance (M.sub.ab) between bundles a and b using the
representative dipole p.sub.a:
M ab = 1 I a j .gtoreq. 0 .alpha. b , j ' .intg. C j ( p a .times.
r j ) r j 3 l j . ( 24 ) ##EQU00022##
In general, the resulting inductance matrix M is complex, with the
real part of Equation (24) contributing to the mutual inductance.
The imaginary part of M modifies the resistance, and is effectively
negligible in all the examples presented herein.
[0105] Inspection of Equations (21) and (24) shows that dipole
moment p.sub.a is proportional to I.sub.a; hence, M.sub.ab does not
depend on the currents, but is instead a geometric coefficient. For
the ease of presentation, the term p.sub.a/I.sub.a is hereafter
denoted: {tilde over (p)}.sub.a.
[0106] As noted above, conductors in a bundle typically run along
the same direction (say y); thus, p.sub.a is perpendicular to all
the wires. According to one exemplary form, the {circumflex over
(z)} axis is chosen to be parallel to the dipole moment p.sub.a.
Equation (24) therefore becomes:
M ab = p ~ a j .gtoreq. 0 .alpha. b , j ' x j .intg. y 0 , j y 1 ,
j y ( x j 2 + y j 2 + z j 2 ) 3 / 2 , ( 25 ) ##EQU00023##
where y.sub.0,j and y.sub.1,j are the extremes of conductor j, in a
coordinate system having an origin at r.sub.cm,a. The expression in
Equation (25) can be integrated as follows:
M ab = p ~ a j .gtoreq. 0 .alpha. b , j ' x j y j ( x j 2 + z j 2 )
( x j 2 + y j 2 + z j 2 ) 1 / 2 | y j = y 0 , j y j = y 1 , j . (
26 ) ##EQU00024##
Thus, according to one exemplary embodiment, the mutual inductance
between a first bundle (bundle a) and a second bundle (bundle b)
can be performed by calculating the dipole moment and the position
of the first bundle using Equations (21) and (22), then evaluating
the expression (26) for each of the wires in the second bundle. An
expression for the dipole moment p.sub.a for wires laid out along
other axes (e.g., the x-axis) can similarly be constructed.
[0107] Note that Equation (24) does not strictly comply with the
expected symmetry M.sub.ab=M.sub.ba. This results from the
assumption that bundle a is an ideal point-like dipole, whereas
this is not assumed for bundle b. As explained in the discussion
accompanying the examples below, this asymmetry is rarely
significant. In certain embodiments, the expected physical symmetry
can be enforced by identifying M with
M ~ ab = M ab + M ba 2 ( 27 ) ##EQU00025##
[0108] E. Comparison to Classical Equations
[0109] To evaluate the disclosed mutual inductance extraction
technique using dipole approximations, an embodiment of the
disclosed technology is compared with the classic Grover
expressions. The embodiment of the disclosed technology used in the
comparison comprises calculating the dipole moment and the position
of a first bundle using Equations (21) and (22), then evaluating
Equation (26) for each of the wires in the second bundle. For
purposes of this comparison, Equation (26) is used to replace the
Grover equation for analyzing the combination of
filament-to-filament interactions (see F. Grover, Inductance
Calculations Working Formula and Tables, New York: Instrument
Society of America (1945)). The classic Grover expression
provides:
M ab = .mu. 0 L 4 .pi. i .gtoreq. 0 j .gtoreq. 0 .alpha. i .alpha.
j M ij where M ij = log ( L r ij + 1 + L 2 r ij 2 ) + r ij L - 1 +
r ij 2 L 2 ( 28 ) ##EQU00026##
[0110] To perform the comparison, consider the simple exemplary
configuration shown in FIG. 5A, which illustrates two bundles that
are transversely coupled. In particular, FIG. 5A is a block diagram
500 showing a first bundle 510 (or bundle a) separated by a
distance x from a second bundle 512 (or bundle b). Further, the
respective wires in each bundle are separated from each other by
respective distances s.sub.1 and s.sub.2. The length of each bundle
is L.sub.1 and L.sub.2, respectively. For the configuration shown
in FIG. 5A, Equation (25) and Equation (26) give the same limit for
x, Ls.sub.1, s.sub.2; namely,
M ab .mu. 0 4 .pi. s 1 s 2 L 1 L 2 2 x 2 + L 2 2 / 4 x 2 ( x 2 + L
2 2 ) 3 / 2 ( 29 ) ##EQU00027##
In the loop-inductance model, once all terms are accounted for, the
asymptotic behavior of M is unlike that related to the
partial-inductance model and stated in Equation (3). In fact,
Equation (29) reveals two types of regimes for the transverse
coupling shown in FIG. 5A:
M ab { .mu. 0 2 .pi. s 2 L 2 x 3 .about. 1 r 3 for x >> L ( 3
d case ) .mu. 0 16 .pi. s 2 L x 2 .about. 1 r 2 for x << L (
2 d case ) . ( 30 ) ##EQU00028##
[0111] FIG. 5B illustrates two exemplary bundles 560, 562 coupled
through forward coupling. In particular, FIG. 5B is a block diagram
550 showing a first bundle 560 (bundle a) having a center separated
from the center of a second bundle 562 (bundle b) by a distance y
along the y-axis. Further, the respective wires in each bundle are
separated from each other by distances s.sub.1 and s.sub.2, and the
length of each respective bundle is L.sub.1 and L.sub.2.
[0112] For the configuration illustrated in FIG. 5B, a comparison
with the Grover expression, where L.sub.1, L.sub.2,
.DELTA.ys.sub.1=s.sub.2.ident.s, gives:
M ab dipoles 16 .mu. 0 .pi. s 2 L 1 L 2 .DELTA. y ( 4 .DELTA. y 2 -
L 2 2 ) 2 , and M ab grover 16 .mu. 0 .pi. s 2 L 1 L 2 .DELTA. y (
4 .DELTA. y 2 - L 1 2 - L 2 2 ) 2 - ( 2 L 1 L 2 ) 2 , ( 31 )
##EQU00029##
where both of the expressions have the same asymptotic
behavior.
III. General Applications of the Disclosed Mutual Inductance
Extraction Techniques
[0113] In this section, general techniques for analyzing mutual
inductance in a circuit layout using dipole approximations are
described. Specialized techniques for analyzing mutual inductance
in inductors using the disclosed technology are presented in a
separate section below.
[0114] A. Exemplary Extraction Techniques
[0115] FIG. 6 is a flowchart of a general method 600 for analyzing
the mutual inductance in a circuit layout using embodiments of the
disclosed technology. The general method 600 may be used, for
example, as part of an overall inductance extraction scheme. The
method 600 can be performed, for example, in an EDA software tool,
such as a physical verification tool. Because the general method
600 concerns mutual inductance, any corresponding self inductance
calculations are not described, but it is to be understood that
such calculations may be performed at least partially concurrent
with or prior to the mutual inductance calculations. In certain
embodiments, the method 600 is applied only for a layout operating
above a certain selected frequency (e.g., frequencies above 1 GHz
in IC applications).
[0116] At process block 610, a circuit description is received
(e.g., a circuit design file, such as a GDSII or Oasis file). The
circuit description generally comprises data indicative of the
physical layout of the signal wires, power wires, and ground wires
in an integrated circuit.
[0117] At process block 612, the signal wires and grounds wires are
grouped into bundles according to any of the techniques described
above. In general, the ground-wire segments that are grouped into a
bundle with a respective signal-wire segment correspond to the
return paths for currents on the associated signal-wire segment.
The selection of return paths for a particular signal-wire segment
can be performed using a variety of different methodologies.
According to one exemplary embodiment, for instance, neighboring
wire segments are organized according to their resistance up to a
maximum distance from the relevant signal-wire segment. In another
embodiment, a weighted function of both resistance and distance is
used. In other embodiments, however, other criteria may be
considered. In certain implementations, only a portion of the
layout is grouped into bundles (e.g., a portion selected by the
user or a portion operating in a high-frequency clock regime).
[0118] At process block 614, dipole moments representative of one
or more of the bundles are calculated. In one particular
implementation, for example, dipole moments are computed according
to Equation (21). The representative dipole moment of a particular
bundle can comprise, for example, the weighted average of the
individual dipole moments between the signal-wire segment in the
bundle and each corresponding ground-wire segment in the bundle (as
indicated in Equation (22), for instance). In certain embodiments,
dipole calculations are made for every bundle formed at process
block 612. In other embodiments, however, only a portion of the
bundles have their associated magnetic dipole computed. For
example, certain bundles may not have their associated magnetic
dipole computed because of a user-defined criteria or because the
bundles meet one or more criteria indicating that they exhibit
little or no mutual inductance (e.g., using one or more of the
dipole selection rules described below).
[0119] At process block 616, the mutual inductance between two or
more of the bundles is calculated using the dipole moment(s). In
certain exemplary embodiments, the mutual inductance calculation
involves calculating the magnetic flux of a magnetic field due to
one of the representative dipole moments through one or more closed
surfaces between a distant signal wire and its neighboring ground
wire. This calculation may be performed, for example, between the
dipole moment of a first bundle and each
ground-wire-segment/signal-wire-segment pair of a second bundle
(e.g., the flux through all surfaces formed between the signal-wire
segment of the second bundle and its associated ground-wire
segments). These surfaces might comprise, for example, rectangular
surfaces between a signal-wire segment and its associated
ground-wire segments (e.g., as shown in FIG. 2). The respective
contributions of each of these surfaces can be calculated as a
weighted average. In one particular implementation, for example,
the mutual inductance between two bundles is computed according to
Equation (26). In certain implementations, mutual inductance
between two bundles is calculated in this manner only if the
distance between the bundles is greater than or equal to some
threshold value (e.g., .about.20 .mu.m at 130 nm technology; this
value can scale with the technology parameter .lamda., where
.lamda. is the ratio of the minimum dimensions of a new generation
of technology relative to a previous generation, and is typically
about 0.75 from generation to generation). Further, in certain
embodiments, the magnetic flux of a first bundle's dipole moment
through a second bundle is computed, as well as the magnetic flux
of the second bundle's dipole moment through the first bundle. The
resulting mutual inductances can be averaged to arrive at a single
mutual inductance value for the pair of bundles.
[0120] Process blocks 614 and 616 (in their various embodiments)
are sometimes collectively referred to herein as the "dipole
approximation technique."
[0121] At process block 618, the calculated mutual inductance is
output. The manner in which the mutual inductance is output may
vary widely depending on the implementation and the environment in
which the method is performed. For example, it may be displayed to
the user (e.g., as part of a graphic user interface displaying at
least a portion of the layout) or it may be included in one or more
data structures or databases stored on computer-readable media.
Such data structures and databases may be utilized later in an
overall synthesis scheme.
[0122] FIG. 7 is a flowchart of a more general exemplary scheme 700
for computing mutual inductance in a circuit design. As more fully
explained below, the scheme 700 can utilize embodiments of the
dipole approximation technique described above, as well as known
partial-inductance models or mutual inductance calculations using
Grover's equations or extensions thereof. In certain embodiments,
for example, the dipole approximation technique is not used to
analyze the interaction between degenerate bundles that share at
least one return path. In these embodiments, the dipole
approximation technique may still desirably be used to compute the
coupling among different bundles separated by relatively large
distances. In certain embodiments, the method 700 is desirably
applied only for a layout operating above a certain selected
frequency (e.g., frequencies above 1 GHz on IC's).
[0123] At process block 710, a circuit description is received. The
circuit description typically comprises information concerning the
physical layout of the signal wires, power wires, and ground wires
in an integrated circuit. At process block 712, the signal wires
and grounds wires are grouped into (or fractured into) bundles as
explained above. At process block 714, a pair of bundles is
selected for mutual-inductance analysis. This selection process may
be performed in a variety of different ways (e.g., according to
geometric location, size of the bundles, and/or other
criteria).
[0124] At process block 718, a determination is made as to whether
the distance between the bundles is less than a threshold value. In
one exemplary embodiment, for example, this threshold value is
equal to 20 .mu.m. This value may vary, however, from
implementation to implementation (e.g., 40 .mu.m, 45 .mu.m, or 50
.mu.m) and may generally be viewed as the distance at which the
possible error from the dipole approximation technique exceeds a
desired limit. If the bundles are separated from one another by a
distance that is greater than or equal to a threshold value, then
an efficient (faster) mutual inductance extraction technique, which
may not be precise at small distances, is desirably used. In the
illustrated embodiment, for example, the dipole approximation
technique described above is performed at process blocks 722, 724.
(As described above in the discussion concerning degenerate
configurations, however, there are instances when the dipole
approximation technique may not be used because of the particular
geometries of the bundle configurations.) Thus, the dipole moment
for at least one of the bundles in the pair is calculated at
process block 722 (e.g., using Equation (21)) and the mutual
inductance between the bundles is calculated at process block 724
(e.g., using Equation (26)). In certain implementations, the
efficient (faster) mutual inductance extraction technique is only
used if the distance separating the bundles is within a certain
range (e.g., 20-50 .mu.m, or 20-100 .mu.m for 130 nm technology;
this range can scale down approximately linearly with the
technology parameter .lamda.). If the distance separating the
bundles is beyond this range, no mutual inductance calculation is
performed. Thus, a second threshold distance between bundles may
exist, which, if exceeded, means that the mutual inductance between
the bundles can be ignored.
[0125] If it is determined at process block 718 that the bundles
are separated by a distance that is less than the threshold value,
then the loop mutual inductances desirably are calculated using
other means. In general, the mutual inductance calculation in this
case is desirably performed by a technique that has greater
precision at small distances than the technique used for the larger
distances. The mutual inductance between the two bundles separated
by less than the threshold distance (sometimes referred to as the
"near-field solution") can be computed using the Grover equation
shown in Equation (28) or an extended version thereof.
[0126] For example, in one specific implementation, the extension
to Equation (28) may consist of averaging Equation (28) over the
transverse dimensions of the participating wires. The end result
can be obtained by substituting the values of r.sub.ij in Equation
(28) with the geometric mean distance (GMD) among the respective
cross-sections. The technique for calculating the GMD of two
rectangular cross-sections described, for example, in R. Escovar
and R. Suaya, "Transmission Line Design of Clock Trees," in Proc.
IEEE/ACM International Conference on CAD, November 2002, pp.
334-340 and U.S. Patent Application Publication No. 2003/0131334,
which is incorporated herein by reference, can be used. The
resulting mutual inductance coefficients (using the values
.alpha..sub.i computed using Equation (15)) and value obtained from
Equation (28) (with the r.sub.ij reinterpreted as GMDs) agree well
with results obtained from FastHenry. Moreover, the representative
results shown in FIGS. 8-10 show that the analytical expressions
derived from the dipole approximation technique converge to the
near-field solution within distances of about 20 .mu.m (at 130 nm)
in the worst case. This scheme is consistent with the long-distance
behavior, as the only modification to Equation (28) is the
appearance of the partial self inductance, which replaces the
partial mutual inductance between two ground wires. In certain
embodiments, this scheme can be used for cases that have shared
return paths that are not in a degenerate configuration. For cases
that involve degenerate configurations, Grover-like expressions may
be used.
[0127] At process block 726, a determination is made as to whether
there are any more pairs of bundles to be considered. If so, then
the method 700 returns to process block 714; otherwise, the mutual
inductances between the bundles are output at process block 728.
For example, as explained above, the mutual inductances may be
displayed to the user or may be included in one or more data
structures or databases stored on computer-readable media.
[0128] It should be understood that the general methods 600 and 700
illustrated in FIGS. 6 and 7, respectively, comprise exemplary
embodiments only and are not to be construed as limiting in any
way. For example, the particular, sequential order shown in FIGS. 6
and 7 is not limiting, as the operations performed therein may, in
certain implementations, be rearranged, performed concurrently, or
not performed at all. For instance, in one exemplary embodiment, if
the bundles are separated by a distance greater than or equal to
the threshold value, no mutual inductance calculation is performed
at all. Thus, only the high-precision calculation is used.
Moreover, additional method acts may be interleaved within the
methods 600 and 700. For example, according to one exemplary
embodiment, after multiple bundles have been determined, one or
more dipole selection rules (as explained below) may be applied to
determine whether any particular bundles or pairs of bundles can be
excluded from the mutual inductance calculation. Further, the
operations performed in FIGS. 6 and 7 may be performed concurrently
with other operations not directly related to the computation of
mutual inductance (e.g., the analysis of self inductance or other
physical parameters of the integrated circuit layout (such as,
resistance, conductance, and signal integrity)).
[0129] B. Experimental Results and Exemplary Selection Rules for
Applying the Disclosed Techniques
[0130] In this section, the accuracy and application of the
exemplary dipole approximation techniques are discussed in greater
detail. To examine the accuracy of the disclosed technology, a
comparison is made between the results obtained by Equation (26)
and by the FastHenry field solver. FastHenry is an inductance
extraction program that is publicly available from the
Massachusetts Institute of Technology website. In general,
FastHenry performs accurate detailed calculations of inductance for
simple geometries, but is not suited for inductance extraction of
large-scale topologies. In comparison to FastHenry, for example,
the method of calculating mutual inductance using the dipole
approximation is much more computationally efficient (faster).
[0131] The simulations in FastHenry were carried out assuming an
operating frequency of 10 Ghz. To obtain good convergence with
FastHenry, a 9.times.9 filament partitioning was used, though other
partitioning may be accurate enough in some situations (e.g.,
5.times.5 partitioning). A good criterion to be used in considering
the errors introduced in a mutual inductance extraction method is
the comparison to the (typically larger) self inductances of the
two bundles, L.sub.a, L.sub.b. For this reason, the comparisons are
plotted using the dimensionless magnitude .zeta..ident.M.sub.ab/
{square root over (L.sub.aL.sub.b)}.
[0132] FIGS. 8A and 8B show the first case considered: a simple
coupling between two exemplary bundles positioned with respective
dipole p.sub.a and p.sub.b that are perpendicular to one another.
FIG. 8A is a block diagram 800 showing a cross-sectional view of
the relative positioning of the bundles considered. In particular,
FIG. 8A shows a first bundle 810 and a second bundle 812 separated
from one another by a center-to-center distance D.sub.x along the
x-axis and by a center-to-center distance D.sub.z along the z-axis.
Bundles 810, 812 in this example each comprise a signal-wire
segment and a ground-wire segment separated from one another by
center-to-center distances s.sub.a, s.sub.b, respectively. Notice
that in this example, the signal-wire segment and the ground-wire
segment of one bundle are offset from each other in a first
direction, and the signal-wire segment and ground-wire segment of
the other bundle are offset from each other in a second direction.
In this case, the first direction is perpendicular to the
direction. In a specific example corresponding to FIG. 8A, the
length of the wires (L) is 500 .mu.m, the center-to-center
separation between the wires in each bundle (s.sub.a and s.sub.b,
respectively) is 5 .mu.m, the height of the wires (h) is 0.5 .mu.m,
and the width of the wires (w) is 0.5 .mu.m.
[0133] FIG. 8B is a graph 850 showing a comparison between results
obtained by an embodiment of the dipole approximation technique
described above with respect to FIG. 6 using Equations (21) and
(26) and results obtained from FastHenry for the configuration
shown in FIG. 8A and for bundles having the specific exemplary
dimensions and spacing mentioned above. In particular, graph 850
shows several plots for different values of D.sub.x as a function
of D.sub.z. The results obtained from FastHenry are shown in dashed
lines with symbols, whereas the results obtained from the dipole
approximation technique described above are shown in solid lines.
As can be seen from FIG. 8B, the discrepancy between results
obtained from FastHenry and the dipole approximation is relatively
small (the difference has an upper bound of 10%).
[0134] FIGS. 9A and 9B show the second case considered: a coupling
between two exemplary bundles (each having one respective return
path) positioned with respective dipoles p.sub.a and p.sub.b that
are parallel to one another. FIG. 9A is a block diagram 900 showing
schematically the geometry considered. In particular, FIG. 9A is a
cross-sectional view similar to FIG. 8A showing a first bundle 910
and a second bundle 912. In FIG. 9A, the signal-wire segment and
ground-wire segment of one bundle are offset from one another in a
first direction, and the signal-wire segment and ground-wire
segment of the other bundle are offset from one another in a second
direction that is parallel to and spaced from the first direction.
In a specific example corresponding to FIG. 9A, the length of the
wires (L) is 500 .mu.m, the center-to-center separation between the
wires in each bundle (s.sub.a and s.sub.b, respectively) is 5
.mu.m, the height of the wires (h) is 0.5 .mu.m, and the width of
the wires (w) is 0.5 .mu.m.
[0135] FIG. 9B is a graph 950 showing a comparison between results
obtained by an embodiment of the dipole approximation technique
described above with respect to FIG. 6 using Equations (21) and
(26) and results obtained from FastHenry for the configuration
shown in FIG. 9A and for bundles having the specific exemplary
dimensions and spacing mentioned above. In particular, graph 950
shows several plots for different values of D.sub.x as a function
of D.sub.z with the results obtained from FastHenry shown in dashed
lines with symbols and the results obtained from the dipole
approximation technique shown in solid lines. Again, the
discrepancy between the two techniques is very small and is upper
bounded by 10%. It can be seen from FIGS. 8B and 9B that the dipole
approximation technique works well for mutual inductances between
bundles having single return paths, irrespective of the orientation
of their dipole moments.
[0136] FIGS. 10A and 10B show a slightly more complex geometry
comprising two bundles, each having multiple return paths. In
particular, FIG. 10A schematically shows a first bundle 1010
relative to a second bundle 1012. Each wire in the configuration is
labeled with a respective triplet indicating the wire's x-axis
position and z-axis position as measured from the center of the
wire, and the wire's width. Further, the signal wires for each
bundle are labeled sw.sub.a and sw.sub.b, respectively. The ground
wires for the signal wire sw.sub.b are labeled according to their
relative position from the signal wire sw.sub.b (as measured in
micrometers from the center of the ground wire to the center of the
signal wire). For example, the ground wire labeled ("D.sub.x-2,
D.sub.z-5; 0.8") has a center that is positioned 2 .mu.m closer to
the x-axis and 5 .mu.m closer to the z-axis than the center of
signal wire sw.sub.b. Both of the bundles 1010, 1012 are asymmetric
in terms of the widths of their return paths as well as their
positions with respect to the signal wire. Each of the exemplary
wires has a length (L) of 1000 .mu.m and height (h) of 0.54
.mu.m.
[0137] FIG. 10B is a graph 1050 showing a comparison between
results obtained by an embodiment of the dipole approximation
technique described above with respect to FIG. 6 using Equations
(21) and (26) and results obtained from FastHenry for the specific
exemplary configuration shown in FIG. 10A. In particular, graph
1050 shows several plots for different values of D.sub.x as a
function of D.sub.z with the results obtained from FastHenry shown
in dashed lines with various symbols (triangle, circles, or
squares) along the respective plots, and the results obtained from
the dipole approximation technique shown in solid lines. In this
example, it can be seen that for the closest configurations (e.g.,
distances less than about 30 .mu.m), there is a substantial
difference between the two results. Even in those cases, however,
the value of .zeta. is very small, thus rending these errors
relatively insignificant when compared to the self inductances
L.sub.a, L.sub.b.
[0138] C. Exemplary Selection Rules
[0139] From FIGS. 8-10, it can generally be observed that for
arbitrary configurations, as long as the distance between bundles
is not too small (e.g., 30 .mu.m or larger at 130 nm technology;
this distance can scale approximately linearly with the technology
parameter .lamda.), then the dipole approximation technique
described above provides a good representation of the mutual
inductance.
[0140] Experiments with the dipole approximation technique (such as
the ones illustrated in FIGS. 8-10) have resulted in the
development of a number of situation-dependent rules that can be
used to determine when the mutual inductance between two bundles
can be automatically neglected, thereby avoid unnecessary
calculations. These rules are sometimes referred to as "selection
rules" or "dipole selection rules."
[0141] A first rule is that for symmetric bundles, the mutual
inductance is null. An exemplary wiring configuration that is
symmetric is a sandwich configuration (comprising a symmetric
coplanar ground-signal-ground bundle) as is used in many
clock-signal layouts. Such a configuration has no dipole moment,
meaning that in the dipole approximation technique, its signal
voltage is insensitive to external noise. This rule was confirmed
using FastHenry, wherein the mutual inductance between two of these
structures was calculated and resulted in values of .zeta. below
10.sup.-5, even for bundles separated by as little as 5 .mu.m.
Thus, a determination can be made in any of the mutual inductance
extraction techniques described herein as to whether the
ground-wire segments are positioned symmetrically or substantially
symmetrically (determined, for example, by a fixed or user-selected
tolerance, e.g., .+-.5%) about a respective signal-wire segment. If
so, the mutual inductance calculation for the signal wire can be
foregone.
[0142] A second rule is that for two parallel bundles (such as
those shown in FIG. 9A), the mutual inductance between them is
minimized when their relative position to one another (measured
from their center-of-mass positions (e.g., Equation (22)) forms a
certain angle or substantially a certain angle (determined, for
example, by a fixed or user-selected tolerance, e.g., .+-.5%) with
the direction perpendicular to that of their common dipole moment
directions (.theta. in FIG. 11A.) For example, this angle is about
45.degree. when the bundles are much longer than their transverse
dimensions and to about 35.degree. when this is not the case. As
with the first rule, the second rule can be utilized as part of any
of the disclosed mutual extraction techniques. This second rule can
also be used as a criterion by designers wishing to minimize the
mutual inductance in a circuit layout.
[0143] The second rule can be verified by considering that the two
bundles have aligned dipole moments. Thus, the flux of magnetic
field through the second bundle due to the first one is
proportional to the perpendicular field of the first one.
Consequently, the angle where the perpendicular component for the
field vanishes should be analyzed. In the situation where bundles
are short, the perpendicular component (B.sub..perp.) for the field
of a dipole (found using the equation below) is null for
.theta.=0.5 cos.sup.-1 (1/3).apprxeq.35.degree.. The perpendicular
component (B.sub..perp.) and the parallel component
(B.sub..parallel.) of the representative dipole can be found as
follows:
B ( r ) = 3 ( p r ^ ) r ^ - p r 3 , B .perp. = 1 2 ( cos 2 .theta.
+ 1 ) p r 3 , B .parallel. = 3 2 sin 2 .theta. p r 3 . ( 32 )
##EQU00030##
[0144] FIGS. 11A-B illustrate a numerical example of the second
rule using the disclosed dipole approximation technique and
FastHenry. In particular, FIG. 11A is a block diagram 1100 showing
schematically an exemplary geometry of the type considered. FIG.
11A is a cross-sectional view similar to FIG. 9A showing a first
bundle 1110 and a second bundle 1112. In FIG. 11A, the distance (R)
between the respective center of the two bundles is assumed to be
constant, whereas the angular orientation of the second bundle
relative to the first (.theta.) is assumed to be variable. In FIG.
11A, the length of the wires (L) is 500 .mu.m, the separation
between the wires in each bundle (s.sub.a and s.sub.b,
respectively) is 5 .mu.m, the height of the wires (h) is 0.1 .mu.m,
and the width of the wires (w) is 0.1 .mu.m.
[0145] FIG. 11B is a graph 1150 showing a comparison between
results obtained by using an embodiment of the dipole approximation
technique described above with respect to FIG. 6 using Equations
(21) and (26) and results obtained from FastHenry for the
configuration shown in FIG. 11A and with the above dimensions. In
particular, graph 1150 shows several plots for different values of
R as a function of .theta./.pi.. In FIG. 11B, the results obtained
from FastHenry are shown in dashed lines with symbols, and the
results obtained from the dipole approximation technique are shown
in solid lines. Note that a horizontal dashed line also appears in
FIG. 11B and represents the point where .zeta. is null.
[0146] A third rule is that for two perpendicular or substantially
perpendicular bundles (such as those shown in FIG. 8A), mutual
inductance is negligible for situations where the perpendicular
axis of one bundle passes through the center or substantially near
the center (determined, for example, by a fixed or user-selected
tolerance, e.g., .+-.5%) of the other. In one particular
implementation, the center of the bundle comprises the
center-of-mass position as determined by Equation (22). This third
rule is a consequence of the fact that the parallel component
(B.sub..parallel.) of a dipole field vanishes when .theta. is
0.degree. and when .theta. is 90.degree.. This behavior can be
observed in the configuration shown in FIG. 8A and the numerical
results presented in FIG. 8B. In particular, this rule manifests
itself in the results presented in FIG. 8B where the mutual
inductance drops for small values of D.sub.z and where the
magnitude of .zeta. decreases with decreasing D.sub.x for large
values of D.sub.z. As with the first and second rules, the third
rule can be utilized as part of any of the disclosed mutual
extraction techniques. The second and third rules can be
particularly useful for pruning large layouts.
[0147] D. Efficiency Analysis of the Disclosed Dipole Approximation
Technique
[0148] In order to analyze the efficiency of the disclosed dipole
approximation technique, the runtimes for extracting mutual
inductance using the dipole approximation technique and the
runtimes for extracting mutual inductance using Grover's expression
were compared. Grover's expressions give nearly the same results as
FastHenry, meaning that the errors between the dipole approximation
technique and Grover's expressions are as small as the errors
discussed above with reference to FIGS. 8B, 9B, 10B, and 11B.
[0149] Assuming a simple, general configuration, with N wires
broken up into n.sub.b bundles, Grover's expressions require
N.sup.2/2 computations of terms in the second line of Equation
(28). On the other hand, the embodiment of the disclosed dipole
approximation technique described above with reference to FIG. 6
and using Equations (21) and (26) requires a total of N.sub.n.sub.b
calculations. Thus, if there are usually multiple return paths per
bundle in a layout (i.e., if n.sub.bN/2), then the dipole
approximation technique involves a much smaller number of
computations. Moreover, each computation of Grover's expression
involves a transcendental function. By contrast, for the exemplary
embodiment of the dipole approximation technique using Equations
(21) and (26), there are N computations arising from the
calculation of the dipole moment. This merely involves sums and
multiplications plus (n.sub.b-1)N computations (for the argument in
the sum of Equation (26), where the most expensive (time consuming)
operation is a half power).
[0150] Table 1 below presents a comparison between the two methods
using an exemplary configuration involving two bundles having the
same number of return paths. Runtimes are expressed in microseconds
per mutual inductance computation. Approximately 10.sup.8 similar
computations were averaged for each entry of the table. All runs
were carried out on a desktop PC running at 2.0 GHz under identical
situations.
TABLE-US-00001 TABLE 1 Comparative Runtimes Between an Embodiment
of Dipole Approximation Technique and Grover's Expressions N.sub.rp
DA GE Ratio GE/DA 1 0.412 1.586 3.85 2 0.544 3.343 6.14 3 0.697
5.817 8.34 4 0.784 9.052 11.54 5 1.000 13.002 13.00 6 1.092 17.902
16.39
[0151] The first column in Table 1 shows the number of return paths
(N.sub.rp) per bundle. The second column shows the runtime (in
microseconds per computation) for an exemplary embodiment of the
dipole approximation method (DA). The exemplary method utilized was
the method discussed above with reference to FIG. 6 utilizing
Equations (21) and (26). The third column shows the runtime using
Grover's expression (GE). The fourth column shows the ratio between
the runtime for Grover's expression and the exemplary dipole
approximation technique (Ratio GE/DA). As can be seen in Table 1,
the runtime ratio (Ratio GE/DA) increases in an approximately
linear fashion as the number of return paths in the bundles
increases. This indicates that the exemplary embodiment of the
dipole approximation technique is about an order of magnitude
faster than using Grover's expression.
IV. Analyzing Mutual Inductance Between Inductors
A. General Considerations for Calculating Inductance in
Inductors
[0152] A typical inductor can be considered a circuit path
consisting of a concatenation of N straight segments, connecting a
number of ports, in one or multiple metal planes. The loop self
inductance of an inductor can be decomposed into:
L loop = i = 1 N L i + 2 i = 1 N j = i + 1 N M ij , ( 33 )
##EQU00031##
where M.sub.ij is the partial mutual inductance between segment i
and j, and L.sub.i corresponds to the partial self inductance of
segment i and the sum extends over
1 2 N ( N + 1 ) ##EQU00032##
terms.
[0153] The mutual inductance M between two inductors, can similarly
be computed in terms of a list of partial mutual inductances among
the respective constituent segments:
M ab = i = 1 N a j = 1 N b M ij , ( 34 ) ##EQU00033##
where N.sub.a and N.sub.b correspond to the number of wire segments
in each inductor, and M.sub.ij corresponds to the partial mutual
inductance between segment i in the first inductor and segment j in
the second inductor.
[0154] The classical Grover expressions for computing partial self
and mutual inductances can be used in the above equations, provided
that the current distributions are uniform across the transverse
area of the conductors. As a starting point, consider the mutual
inductance between two parallel filaments of equal length L:
M ij = .mu. L 2 .pi. [ ln ( L d + 1 + L 2 d 2 ) - 1 + d 2 L 2 + d L
] , ( 35 ) ##EQU00034##
where d is the distance between the filaments, and .mu. is the
magnetic permeability of the conductors.
[0155] To perform a two-dimensional approximation, it can be
assumed that L>>d in the above expression. Furthermore, for
substantially uniform current distributions, the above treatment
can be extended to finite cross sections by averaging the resulting
expression over the transverse dimensions, resulting in:
M ij = .mu. L 2 .pi. [ ln ( 2 L d g ) + d a L - 1 ] , ( 36 )
##EQU00035##
where d.sub.g is the geometric mean distance between the
conductors' cross-sections, and d.sub.a is the arithmetic mean
distance between the conductors' cross-sections.
[0156] To extend the analysis to 3-D configurations, the following
equation relating the mutual inductance of unequal length segments
to that of equal length segments can be used. For example, the
mutual inductance between two parallel filaments of different
lengths (as shown, for instance, in the block diagram 1400 of FIG.
14) can be computed according to:
M ij = 1 2 ( M l 1 + l 2 + .delta. + M .delta. - ( M l 1 + .delta.
+ M l 2 + .delta. ) ) , ( 37 ) ##EQU00036##
where the value M.sub.l corresponds to the partial mutual
inductance between two parallel filaments of equal length l
separated by a distance d (see Equation (35)). For overlapping
filaments, where .delta.<0, the same expression applies taking
the absolute value of the filament's length.
[0157] The well-known general expressions for arbitrarily oriented
filaments are provided in F. Grover, Inductance Calculations
Working Formula and Tables, pgs. 56-57, New York: Instrument
Society of America (1945).
[0158] For nonparallel wires of finite cross sections, a numerical
average over the transverse dimensions of the filamentary equations
can be performed. In contrast to the Manhattan case where the
average is amenable to direct quadrature, calculation of
non-Manhattan geometries is ordinarily performed numerically.
B. Exemplary Embodiments of the Dipole Approximation Approach
Applied to Inductors
[0159] As explained above, the dipole approximation can be used in
quasi-magnetostatic problems to provide a general method for
computing the magnetic field for an arbitrary current distribution
as a function of distance keeping only the leading term in 1/r. For
example, in the loop treatment (which concerns closed current
loops), the leading term of the magnetic field can be considered
that of a dipole. This is not the case in the PEEC dipole
approximation, however, which contains monopole contributions.
[0160] According to exemplary embodiments of the disclosed loop
inductance approach, the field of each of the elementary current
filaments within an inductor can be replaced with one of a
representative point-like dipole at or substantially at the center
of the inductor. The computation can then proceed following first
principles in electromagnetic theory.
[0161] For example, the mutual inductance between two inductors a
and b is given by:
M ab = .PSI. a .fwdarw. b I a = S j .di-elect cons. b .intg. S j B
( a ) S j = 1 I a C A ( a ) l , ( 38 ) ##EQU00037##
with .omega..sub.a.fwdarw.b the magnetic flux resulting from the
field generated by inductor a over the area sustained by inductor
b. In addition, S.sub.j are the surfaces subtended by the turns of
inductor b, C is the union of all segments of inductor b, B.sup.(a)
is the magnetic induction field generated by inductor a, and
A.sup.(a) is its vector potential that satisfies
B.sup.(a)=.gradient..times.A.sup.(a).
[0162] To calculate the mutual inductance, and in certain
embodiments of the disclosed technology, a dipole approximation
technique can be used. For instance, an exemplary embodiment of the
dipole approximation technique involves the following: [0163]
computing the vector potential A.sup.(a) for the magnetic dipole in
terms of the magnetic dipole moment p.sup.(a). For example:
[0163] A ( a ) = p ( a ) .times. r r 3 . ( 39 ) ##EQU00038## [0164]
computing the dipole moment of inductor a, divided by its current.
For example:
[0164] p ~ ( a ) .ident. p ( a ) I = .mu. 8 .pi. d .intg. r .times.
J ( r ) 3 r . ( 40 ) ##EQU00039## [0165] computing the magnetic
flux .PSI..sub.a.fwdarw.b of the field produced by the magnetic
dipole of inductor a on the area sustained by inductor b.
[0166] In certain embodiments, inductor a can be replaced with
inductor b in the above method acts. A final mutual inductance can
then be computed from both of the mutual inductance values
obtained. For example, the final value can be the average
M=(M.sub.ab.+-.M.sub.ba)/2, which helps ensure that the inductance
matrix is symmetric.
[0167] In other exemplary embodiments, any subset of these method
acts can be performed. In still other embodiments, any one or more
of the method acts are performed individually or in various other
combinations and subcombinations with one another.
[0168] FIG. 15 is a flowchart of a general method 1500 for
analyzing the mutual inductance between two inductors in a circuit
layout using embodiments of the disclosed technology. The general
method 1500 may be used, for example, as part of an overall
inductance extraction scheme. The method 1500 can be performed, for
example, in an EDA software tool, such as a physical verification
tool. Because the general method 1500 concerns mutual inductance,
any corresponding self inductance calculations are not described,
but it is to be understood that such calculations are desirably
performed at least partially concurrent with, prior to, or after
the mutual inductance calculations. For example, the self
inductance calculation can be performed only once per inductor
(e.g., according to equation (33)), independent of the inductor's
location. In certain embodiments, the method 1500 is applied only
for a layout operating above a certain selected frequency (e.g.,
frequencies above 1 GHz). Furthermore, in certain exemplary
embodiments, the method 1500 is applied only to pairs of inductors
where the border-to-separation between inductors is larger than
some threshold value (e.g., when the separation is larger than 1/10
of the radius of one of the inductors).
[0169] At process block 1510, a circuit description is received
(e.g., a circuit design file, such as a GDSII or Oasis file). The
circuit description generally comprises data indicative of the
physical layout of the signal wires, power wires, and ground wires
in an integrated circuit.
[0170] At process block 1512, two or more inductors are identified
from the circuit description. The two or more inductors can be
identified from the circuit description by using a layout versus
schematic checking procedure, by discriminating the inductors based
on their geometric configuration, by user selection, by referring
to a stored list of locations of such inductors, or other such
techniques or methods.
[0171] At process block 1513, self inductances are determined for
one or more of the inductors identified at process block 1512. For
example, according to one particular embodiment, self inductances
are determined for all inductors identified. The self inductance
computation can be performed using a variety of techniques, but in
one embodiment is performed using Equation (33).
[0172] At process block 1514, a respective pair of inductors is
selected for mutual inductance analysis. This pair can be selected
via user input, by virtue of their relative position to one another
(e.g., in order of their edge-to-edge separation), or by some other
method or technique.
[0173] At process block 1516, respective dipole moments
representative of the inductors in the pair are determined.
Exemplary methods for determining the dipole moments of various
inductors are described below with respect to FIGS. 17-19. In
certain embodiments, only one of the dipole moments is computed.
Furthermore, if the dipole moment of an inductor has already been
computed as part of an earlier computation, the previously
calculated value can be used, thereby reducing the computational
complexity of the procedure.
[0174] At process block 1518, the mutual inductance between the
inductors is calculated using the dipole moment(s). In certain
exemplary embodiments, the mutual inductance calculation involves
calculating the magnetic flux of a magnetic field generated from
the representative dipole moment of a first of the inductors
through the surfaces bounded by the wiring of the second inductor.
For example, the magnetic flux of a magnetic field produced by the
first inductor's representative dipole through the surfaces bounded
by the wiring of a second inductor can be determined.
[0175] In certain embodiments, the magnetic flux of the magnetic
field from a first inductor's dipole moment through a second
inductor is determined, as well as the magnetic flux of the
magnetic field from the second inductor's dipole moment through the
first inductor. The resulting mutual inductances are then averaged
(or combined according to some other formula) to arrive at a single
mutual inductance value for the pair of bundles. For example, for
the mutual inductance between an inductor a and an inductor b, the
mutual inductance value can be computed as follows:
M ~ ab = M ab + M ba 2 ( 41 ) ##EQU00040##
[0176] Process blocks 1516 and 1518 (in their various embodiments)
are sometimes collectively referred to herein as the "dipole
approximation technique for inductors."
[0177] At process block 1520, the mutual inductance is output. The
manner in which the mutual inductance is output may vary widely
depending on the implementation and the environment in which the
method is performed. For example, it may be displayed to the user
(e.g., as part of a graphical user interface displaying at least a
portion of the layout) or it may be included in one or more data
structures or databases stored on computer-readable media. For
example, it can be included as part of a database or data structure
storing transistor-level parasitic data, which may be used in
another EDA tool (e.g., a simulation tool, such as a full-chip
simulation tool). Such data structures and databases may be
utilized later in an overall synthesis scheme. For example, and as
illustrated below with respect to FIG. 16, the mutual inductance
value may be used as part of a technique for analyzing and reducing
a noise parameter between the two inductors in the selected
pair.
[0178] At process block 1522, a determination is made as to whether
any additional pairs of inductors are to be analyzed. For example,
in certain implementations, mutual inductance computations are
performed for every pair of inductors identified at process block
1512. In other embodiments, however, only some of the remaining
pairs of inductors identified have their mutual inductance computed
using a dipole approximation technique. For example, certain
inductors may not have their mutual inductances computed because of
a preset or user-defined criteria or because the inductors meet one
or more criteria indicating that they exhibit little or no mutual
inductance (e.g., the edge-to-edge separation between an inductor
and another inductor is greater than a threshold value or the two
inductors are shielded from one another). If additional pairs of
inductors are to be analyzed, the next pair of inductors is
selected at process block 1514.
[0179] FIG. 16 is a flowchart of an exemplary method for evaluating
and modifying the configuration of two intentional inductors using
a noise parameter. At process block 1602, a circuit description is
received having a description of a first inductor (inductor a) and
a second inductor (inductor b).
[0180] At process block 1603, self inductances are determined for
the first inductor and the second inductor. The self inductance
determination can be made using a variety of techniques, but in one
exemplary embodiment is performed using Equation (33).
[0181] At process block 1604, dipole moments for inductors a and b
are determined. For example, any of the dipole moment computation
techniques described herein can be used. In particular
implementations, one of equations (42) through (47) is used.
[0182] At process block 1605, the mutual inductance between the
inductors is determined. For example, any of the implementations
described herein can be used (e.g., the method illustrated in
1500). In particular implementations, equations (41) and (49) are
used.
[0183] At process block 1606, noise effects between the inductors
are calculated. For instance, simulators (such as Eldo from Mentor
Graphics Corporation or SPICE) can be used. In particular
embodiments, the noise parameter .zeta. is calculated, where .zeta.
equals or is substantially equal to M.sub.ab/ {square root over
(L.sub.aL.sub.b)} where L.sub.a, L.sub.b are the self inductances
for inductors a and b, respectively, and can be calculated, for
instance, using equation (33).
[0184] At process block 1608, a determination is made as to whether
the noise exceeds a noise limit. The noise limit can be a user
setting or value calculated for the particular design being
evaluated (e.g., 0.2).
[0185] If the noise exceeds the limit, then at process block 1610,
the separation between inductors a and b can be increased (e.g., by
a fixed increment, by an increment selected by the user, or by an
increment computed to result in the desired noise performance). The
procedure can then be repeated (e.g., by returning to process block
1605 as shown in FIG. 16). If the noise does not exceed the limit,
then the separation is accepted, or, in some implementations,
decreased and tested again. In particular embodiments, during each
iteration, only the calculation of the flux is repeated, as the
dipole moment of the inductor does not change with the change in
separation. In this manner, a minimum separation between inductors
can be quickly and efficiently found while helping to ensure that
the separation will not create impermissible noise in the
circuit.
[0186] It should be understood that the general methods 1500 and
1600 illustrated in FIGS. 15 and 16, respectively, comprise
exemplary embodiments only and are not to be construed as limiting
in any way. For example, the particular, sequential order shown in
FIGS. 15 and 16 is not limiting, as the operations performed
therein may, in certain implementations, be rearranged, performed
concurrently, or not performed at all. For instance, in one
exemplary embodiment, if the inductors are separated by a distance
greater than or equal to the threshold value, no mutual inductance
calculation is performed at all. Moreover, additional method acts
may be interleaved within the methods 1500 and 1600. Further, the
operations performed in FIGS. 15 and 16 may be performed
concurrently with other operations not directly related to the
computation of mutual inductance (e.g., the analysis of self
inductance or other physical parameters of the integrated circuit
layout (such as, resistance, conductance, and signal
integrity)).
[0187] 1. Determining the Dipole Moment
[0188] In this section, exemplary methods for determining the
dipole moment of an inductor are described. Such methods can be
used, for instance, to determine the dipole moment at process block
1516.
[0189] In general, for a single planar current distribution, the
dipole moment of expression (40) can be reduced to:
p ~ ( a ) = .mu. 8 .pi. S z ^ , ( 42 ) ##EQU00041##
where S is the total area bounded by the wire loop, and is an
unitary vector perpendicular to the plane containing the loop.
[0190] Consequently, and according to one exemplary embodiment, the
dipole moment of an inductor (p) can be determined by summing the
dipole moments of each filament loop in the inductor. In other
words, the computation of the dipole moment for an inductor a
(p.sup.(a)) can be reduced to computing the sum of the areas inside
each turn of the inductor a.
[0191] In the discussion below, the following definitions are used:
[0192] t.ident.number of turns [0193] n.ident.number of sides per
turn [0194] N.ident.total number of segments (n.times.t) [0195]
d.ident.separation between vertices on successive turns
[0195] s = d cos ( 2 .pi. n ) .ident. separation between sides on
successive turns ##EQU00042##
[0196] In the following paragraphs, exemplary techniques for
calculating the area of various types of inductors are provided.
These exemplary techniques should not be construed as limiting,
however, as the principles from which the techniques are derived
are extendable to other geometries and configurations of inductors.
Furthermore, it should be understood that the following discussion
assumes that the actual inductor in a layout is made of straight
segments connected to one another at respective vertices. The
inductor segments are typically straight because of lithographic
limitations. The disclosed methods, however, are readily extendable
to inductors having curved segments by dividing such inductors into
a number of small straight segments such that the inductors
approach their original design.
[0197] The exemplary techniques concern the following types of
inductors:
[0198] Symmetric inductors. Symmetric inductors can be generally
described as being constructed as concentric rings of regular
polygons joined at every half turn. An exemplary symmetric inductor
1710 is shown in schematic block diagram 1700 in FIG. 17.
[0199] Spiral inductors. Spiral inductors can be generally
described as being constructed such that the vertices of the
inductor segments are situated along (or substantially along) a
linear spiral, such as a curve defined by
r(.theta.)=R.sub.0-.theta.d/2.pi., where R.sub.0 is the distance
from the center to the farthermost vertex of the inductor, and d is
the separation between corresponding vertices on two successive
turns of the inductor. An exemplary spiral inductor 1810 is shown
in schematic block diagram 1800 of FIG. 18.
[0200] Square inductors. Square inductors can be generally
described as being constructed as concentric squares, with the last
side of each square being reduced by the separation s. An exemplary
square inductor 1910 is shown in schematic block diagram 1900 of
FIG. 19.
[0201] Arbitrary planar inductors. In the case of an arbitrary
inductor that does not fit into any of the above characterizations,
the dipole moment can be computed as a sum of the individual
contributions of each segment to the area of the inductor. For
example, according to one embodiment, the inductor can be
partitioned into straight-wire segments, and the area subtended by
each straight-wire segment about the center of the inductor
computed. The resulting areas can then be summed to determine the
total area of the inductor, and this sum can be used in Equation
(42) above to determine the magnetic dipole moment of the inductor
under consideration.
[0202] For a symmetric inductor (such as symmetric inductor 1710 in
FIG. 17), the sum of the areas of all the concentric polygons can
be defined as S and, in one exemplary implementation, is computed
as follows:
S = n 2 sin ( 2 .pi. n ) polygon i t R i 2 = N 2 sin ( 2 .pi. n ) [
R 0 2 + ( R 0 + s 6 ) s - ( R 0 + s 2 ) st + 1 3 ( st ) 2 ] . ( 43
) ##EQU00043##
[0203] In order to compute the area subtended by a spiral inductor
(such as spiral inductor 1810 shown in FIG. 18, where the "pure"
spiral inductor 1812 is shown in dotted lines), and according to
one exemplary implementation, the inductor 1810 can be divided into
triangles centered within the inductor, such as triangles 1814
illustrated in FIG. 18. The individual contributions of the
triangles 1814 can be summed to find the total area of the inductor
1810. For example,
S = 1 2 sin ( 2 .pi. n ) triangle i N R i ( Ri - d n ) = N 2 sin (
2 .pi. n ) [ R 0 2 - s 2 3 n 2 - st ( R 0 - st 3 ) ] . ( 44 )
##EQU00044##
[0204] In general, Equations (43) and (44) can be extended so that
the wires of the inductors are treated as filaments. To extend the
equations to finite cross sections for uniform current distribution
within each wire, averaging can be performed over the dimensions of
the wires (e.g., for both polygons and triangles). For example,
S ~ = 1 wh .intg. R - w R .intg. 0 h S ( R ' , h ' ) R ' h ' ( 45 )
##EQU00045##
[0205] Where h and w are the segments' height and width,
respectively. Exemplary equations that result for finite cross
sections that can be used during the dipole approximation technique
for inductors include:
S ~ ( sym ) = N 2 sin ( 2 .pi. n ) [ R 0 2 + ( R 0 - s 6 ) s - ( R
0 - w 3 + s 2 ) ( st + w ) + 1 3 ( st ) 2 ] ( 46 ) ##EQU00046##
for symmetric inductors, and
S ~ ( spiral ) = N 2 sin ( 2 .pi. n ) [ R 0 2 - s 2 3 n 2 - ( R 0 -
w 3 ) w - ( R 0 - w 2 ) st - 1 3 ( st ) 2 ] ( 47 ) ##EQU00047##
for spiral inductors.
[0206] Further, for square inductors (such as square inductor 1910
in FIG. 19), and according to one exemplary implementation, the n=4
version of Equations (43) and (46) can be used.
[0207] 2. Determining the Magnetic Flux
[0208] An exemplary procedure for computing the magnetic flux of
the field produced by the point-like dipole representing inductor a
through the surfaces bounded by the wiring of inductor b is
described below. The exemplary procedure can be used, for example,
at process block 1518 of FIG. 15.
[0209] According to one exemplary technique for determining the
magnetic flux, consider that expressions (38) and (39) can be
combined to obtain the following expression for a dipole located at
r=0:
M ab = p ~ ( a ) j = 1 N b .intg. segment j - y j x j + x j y j ( x
j 2 + y j 2 + z j 2 ) 3 / 2 . ( 48 ) ##EQU00048##
Expression (48) can be integrated as follows:
M ab = p ~ ( a ) j = 1 N b - 1 c j b j 2 - a j 2 ( L j + a j ( b j
2 + a j L j + L j 2 ) 1 / 2 - a j b j ) , ( 49 ) ##EQU00049##
where, for each segment j starting at (x.sub.0, y.sub.0) and ending
at (x.sub.1, y.sub.1), the coefficients correspond to:
L j .ident. ( x 1 - x 0 ) 2 + ( y 1 - y 0 ) 2 , a j .ident. 2 L j (
x 0 ( x 1 - x 0 ) + y 0 ( y 1 - y 0 ) ) , b j .ident. x 0 2 + y 0 2
+ z b 2 , and ##EQU00050## c j .ident. 1 L j ( x 0 y 1 - x 1 y 0 )
. ##EQU00050.2##
Note that Expressions (48) and (49) show the computation for the
mutual inductance M.sub.ab and not just for the magnetic flux, as
the relationships
M ab = .PSI. a .fwdarw. b I a and p ~ ( a ) .ident. p ( a ) I
##EQU00051##
have been incorporated into the expressions. In one embodiment of
the disclosed technology, for example, Expression (49) is used to
determine the mutual inductance between two inductors (where a
first of the inductors is represented as the magnetic dipole {tilde
over (p)}.sup.(a)). As noted above with respect to FIG. 15, the
procedure can be repeated by representing magnetic fields produced
by the second inductor as a magnetic field produced by a dipole
moment and considering its flux through the area of the first
inductor. The two resulting mutual inductance values can then be
averaged to produce a final mutual inductance value for the
inductors.
[0210] Expression (49), together with Expressions (46) and (47)
symmetrized by replacing a with b and averaging, comprise the
exemplary dipole approximation technique that is tested below and
further expanded in the following sections. Generally speaking, the
resulting expression for mutual inductance scales linearly with the
dimensions if the inductor (e.g., if the dimensions of an inductor
are multiplied by a factor 1, then the mutual inductance undergoes
about the same change).
[0211] 3. Extending the Expressions to High Frequencies
[0212] The previous equations assume that the current is uniform
across a wire's cross-section. This approximation, however, ceases
to be valid at higher frequencies (e.g., above about 5, 6, or 7 GHz
for IC's), where skin and proximity effects begin to noticeably
modify the current distribution inside the wires. At higher
frequencies, the distribution of currents across the cross section
is desirably computed for each wire segment. One exemplary method
for performing this computation is to discretize the wire segments
into m filaments, with each filament carrying uniform current. FIG.
20 is a schematic diagram showing a discretized inductor 2000,
represented in terms of multiple filaments 2020. In particular,
FIG. 20 shows the inductor 2000 separated into multiple segments
2012, each of which comprises the circuit equivalent of multiple
filaments 2020. (For clarity purpose, only one segment and
corresponding set of filaments is shown in FIG. 20. Further, for
the sake of clarity in the illustration, the inductive interaction
between filaments of different segments are not shown, but are
included in the calculation.)
[0213] Solving for the filament currents, from the Kirchoff
equations for one inductor, the following coefficients can be
obtained:
.alpha. j , k .ident. I j , k I , 1 .ltoreq. j .ltoreq. m , 1
.ltoreq. k .ltoreq. N , ( 50 ) where , I = i = 1 m I i , k ( 51 )
##EQU00052##
and corresponds to the total inductor current common to all
segments. Notice that the values in Equation (51) are
frequency-dependent complex numbers. For example, the dependence of
.alpha..sub.i,k on the second subindex k indicates that current
redistribution is allowed while going from segment to segment.
[0214] According to one exemplary embodiment, the discretization
procedure described above is carried out only once per frequency
and per inductor. The procedure provides the high-frequency self
impedance of the inductor, which is defined as .DELTA.V/I, with
.DELTA.V corresponding to the difference of potential between the
input and output nodes and I given in Equation (50).
[0215] In some embodiments, an implicit assumption is made that the
current distribution in one inductor is unaffected by the presence
of the other inductor. This assumption can be made for cases in
which inductors are physically separated by more than a few
microns, as has been verified with FastHenry (which does not
incorporate this assumption).
[0216] At least two different mutual inductance computation
techniques can be derived based on this approximation. A first
technique corresponds to the classical formulation, whereas a
second technique corresponds to the dipole approximation
formulation. Within the classical formulation, for example, the
following expression can be obtained for mutual inductance
according to the filament decomposition approach:
M ab = e ( k a = 1 N a k b = 1 N b i a = 1 m a i b = 1 m b .alpha.
i a , k a .alpha. i b , k b M i a k a , i b k b ) . ( 52 )
##EQU00053##
The imaginary part of this expression corresponds to the mutual
resistance between the inductors divided by 2.pi.f, where f is the
frequency. Simulations have been performed that verify that the
mutual resistance is generally negligible. In other words, in
certain embodiments involving filament decomposition, Equation (34)
can be replaced by Equation (51). Experiments using the FastHenry
simulation tool have been performed that verify that the results
obtained in this fashion are accurate and computationally less
expensive than FastHenry for non-negligible separations.
[0217] In the second exemplary technique, the extension of the
dipole moment in Equation (40) can be performed by computing a
weighted sum over the filaments:
p ~ ( a ) = k = 1 N a i = 1 m a .alpha. i , k p ~ i , k , ( 53 )
##EQU00054##
where I.alpha..sub.i,k{tilde over (p)}.sub.i,k is the contribution
of filament i in the k-th segment to the total dipole moment, and
{tilde over (p)}.sub.i,k is proportional to the area spanned by the
filament.
[0218] The total magnetic flux through the victim inductor can be
computed as the weighted sum of the fluxes through the surfaces
spanned by each filament. For example,
M ab ( HF ) = e ( k = 1 N b j = 1 m b .alpha. j , k M a , jk ) , (
54 ) ##EQU00055##
where M.sub.a,jk is calculated as in Equation (49) for
segments.
[0219] 4. Validation
[0220] To verify embodiments of the exemplary approach described
above, FastHenry and ASITIC were used to first verify that the
variations in self and mutual inductance as a function of frequency
were small (less than 3% for frequencies up to about 30 GHz). FIG.
21, for example, shows the frequency dependence of resistance, and
FIG. 22, for example, shows the frequency dependence of self
inductance and mutual inductance.
[0221] In FIGS. 21 and 22, a square inductor a (R.sub.0=100 .mu.m,
s=1 .mu.m, w=1 .mu.m, t=0.65 .mu.m) and a spiral conductor b
(R.sub.0=100 .mu.m, s=1 .mu.m, w=10 .mu.m, t=0.65 .mu.m) were
considered with a border-to-border separation of 50 .mu.m between
them. FIGS. 21 and 22 show the ratio of the frequency dependent
values to the low frequency values. FIGS. 21 and 22 indicate that
for frequencies up to a certain value (e.g., about 30 GHz) the
substantially more expensive filament method can be omitted.
[0222] Results obtained from an exemplary dipole approximation
embodiment (modeled according to the exemplary approach described
above with respect to Equation (49) and referred to in the
discussion below as the "the dipole approximation test embodiment")
were compared with those obtained through conventional techniques
(Grover equations and FastHenry). The parameter for noise analysis
that was analyzed in these comparisons was the ratio .zeta.,
defined as:
.zeta..ident.M.sub.ab/ {square root over (L.sub.aL.sub.b)} (55)
where L.sub.a, L.sub.b are the self inductances of inductors a and
b, respectively. The self inductance parameters L.sub.a, L.sub.b
provide a normalization for noise estimates and ordinarily need to
be computed just once.
[0223] FIG. 23 is a schematic block diagram showing the geometry of
the two inductors ("inductor a" and "inductor b") considered,
including the horizontal border-to-border separation d.sub.x and
the vertical center-to-center separations .DELTA.y. In graphs 2400
and 2500 of FIGS. 24 and 25, respectively, results from the dipole
approximation test embodiment are compared against the Classical
Grover (CG) equations and the FastHenry inductance simulation
engine (available from Massachusetts Institute of Technology). The
FastHenry tool splits the cross section of each wire segment into
n.sub.w.times.n.sub.h filaments and uses precorrection methods to
solve iteratively the linear system that represents the circuit
consisting of these filaments.
[0224] In FIG. 24, the ratio .zeta. is plotted as a function of
d.sub.x for inductor configurations as shown in FIG. 23 for
different values of .DELTA.y. The solid lines in FIG. 24 show
results from the dipole approximation test embodiment, the dashed
lines show the CG results, and the symbols show the results from
FastHenry. The exemplary inductor configuration considered in FIG.
24 consisted of one 6-turn hexagonal symmetric inductor (R.sub.0=50
.mu.m, s=1 .mu.m) and one 5-turn octagonal symmetric inductor
(R.sub.0=80 .mu.m, s=0.5 .mu.m). A totally asymmetric configuration
was used in FIG. 24 to emphasize certain geometric effects. The
calculations with FastHenry were made at 5 GHz and several choices
of filament decompositions were made, from a single filament per
segment, to up to 49 (7.times.7) filaments per segment. At this
frequency, the results for FastHenry were substantially insensitive
to the number of filaments.
[0225] As can be seen in FIG. 24, the results from FastHenry and
the CG approach are substantially identical at this frequency,
except for large separations where the CG approach and the dipole
approximation test embodiment tend to agree with each other, but
not with FastHenry. Simulations were also performed with the ASITIC
tool (available from the Meyer/Niknejad Research Group at the
University of California, Berkeley (see, e.g., ASITIC: Analysis and
Simulation of Spiral Inductors and Transformers for ICs,
http://rfic.eecs.berkeley.edu/.about.niknejad/asitic.html)). The
results from ASITIC agreed with the CG approach and the dipole
approximation test embodiment, but not with FastHenry. Given that
the numbers are quite small, the difference might be attributable
to possible numerical instabilities within FastHenry. Even at short
distances, the dipole approximation test embodiment provides
sufficiently high accuracy for the noise figures.
[0226] FIG. 25 is a graph 2500 showing a similar comparison of the
same mutual inductance computation techniques for multi-turn square
inductors consisting of six and two turns, respectively. In
particular, a first square inductor had R.sub.0=30 .mu.m, s=0.5
.mu.m, w=1 .mu.m, and t=6, whereas a second square inductor had
R.sub.0=20 .mu.m, s=1 .mu.m, w=1 .mu.m, and t=2.
[0227] 5. Performance Analysis
[0228] One property of the dipole approximation test embodiment for
computing the mutual inductance between two intentional devices is
its linear growth with the number of segments. By contrast, the
classical Grover expression used in FastHenry grows quadratically
with the number of segments.
[0229] For two inductors with N.sub.a and N.sub.b segments, the
linear behavior of the dipole approximation test embodiment is a
result of the computation of Equation (40) using one of Equations
(43), (44), (46), or (47) (or a worst case of N.sub.a evaluations
of the areas of triangles if no specific formula for the total area
can be obtained) plus N.sub.b evaluations of Equation (49). Given
two inductors with N.sub.t=N.sub.a+N.sub.b total segments, the
dipole approximation test embodiment described above requires a
maximum of 2N.sub.t operations. The factor of two can be attributed
to the symmetrization consideration, as opposed to the
1 2 N t 2 ##EQU00056##
operations that are performed in the classical approach (see, for
example, Equation (34)).
[0230] Furthermore, the terms appearing in the M.sub.ab computation
of the dipole approximation test embodiment involve simple
functions. For example, there is a single transcendental function
to evaluate: the sin(2.pi./n) function in the equations for the
area, which is evaluated once per inductor irrespectively of the
separation. Additionally, in the dipole approximation test
embodiment, there are no further integrals to be computed for
finite cross sections
[0231] In FIG. 26 the total average runtime for the three methods
is compared for two symmetrical octagonal inductors as a function
of the number of turns in one of the inductors and for a fixed
separation. Additionally, in Table 2 below, the runtime comparison
between the methods is evaluated according to the following
criteria: (a) for the CG approach and the dipole approximation test
embodiment ("DA"), the computation is broken down into a setup
portion common to both (reading input files, memory allocation, and
the like) and a calculation portion; (b) for FastHenry ("FH"), only
the total runtimes are displayed; (c) for each datapoint, 1000
samples were run, all of them on a SunBlade 2500 at 2.39 GHz with
SunOS 5.8 and 4 GB of physical memory; and (d) to avoid the
influence of outliers, the highest and lowest 1% of runtimes for
each configuration were discarded. The calculations for the CG
approach and the DA approach were carried out, respectively, using
the one-filament-per-segment methods discussed above. The FastHenry
runs were done at 5 GHz. The times expressed in Table 2 are in
microseconds per calculation.
TABLE-US-00002 TABLE 2 Comparative runtimes CGIDA CG DA N.sub.turns
(setup) (calc) (calc) FH 10.sup.2.times. 10.sup.3.times.
10.sup.5.times. 1 4.68 .+-. 0.52 3.8 .+-. 0.2 13.5 .+-. 2.6 5.1
.+-. 0.1 2 4.82 .+-. 0.54 9.1 .+-. 0.5 18.9 .+-. 1.8 12.4 .+-. 0.3
3 5.09 .+-. 0.43 18.2 .+-. 0.5 25.2 .+-. 2.9 20.2 .+-. 0.2 4 5.29
.+-. 0.50 31.1 .+-. 0.6 31.6 .+-. 4.1 26.9 .+-. 0.3 5 5.54 .+-.
0.55 46.3 .+-. 0.7 38.9 .+-. 4.4 34.9 .+-. 2.2 6 5.68 .+-. 0.47
59.6 .+-. 0.8 42.8 .+-. 4.4 43.3 .+-. 0.5 7 5.93 .+-. 0.59 69.6
.+-. 0.8 51.1 .+-. 4.9 52.9 .+-. 0.9 8 5.98 .+-. 0.49 78.1 .+-. 0.9
56.8 .+-. 6.6 59.8 .+-. 0.5
[0232] As can be seen from Table 2, the dipole approximation test
embodiment ("DA") is two and one half orders of magnitude faster
than the Classical Grover ("CG") approach. The setup times for the
DA and CG approaches are roughly one order of magnitude longer than
the calculation time of the DA approach. Thus, the total runtime
using the DA approach is dominated by the set up time. The opposite
is true for the CG approach. The overall effect is that the total
runtime of the DA approach is two orders of magnitude faster than
the runtime using CG.
[0233] The results in Table 2 correspond to a single separation.
For noise-driven synthesis applications, the computational cost for
calculating inductances for a number of possible separations is of
interest. In such applications, further gains can be obtained using
the DA method. For example, in embodiments of the DA approach, the
dipole moment and the self inductance are computed only once for
each component of interest.
[0234] At higher frequencies, a comparison between FastHenry and a
version of the dipole approximation method using Equation (20) or
its equivalent can be made. In contrast to FastHenry, for example,
the two exemplary high-frequency methods using embodiment of the
dipole approximate technique discussed above separate the
calculation of self inductance from the calculation of the mutual
inductance. FastHenry iteratively solves a system with N.sub.t
unknowns in at best O(N.sub.t.sup.2) operations and, for each
separation and frequency, the full calculation needs to be redone.
In the two exemplary approaches discussed above (both based on
filaments--one using Grover-like expressions for the filaments, the
other using dipoles), the separation of the self from the mutual
inductance can provide significant gains. For example, in the
dipole approximation equations (53) and (54), the complexity
associated with the computation of the mutual inductance is linear
with mN.
C. Alternative Embodiments
[0235] In this subsection, possible alternative techniques for
using dipole approximations in the computation of the mutual
inductance between inductors are discussed. The following
discussion proceeds with reference to inductor a and inductor b.
Further, for discussion purposes, it is assumed that the dipole
approximation technique is applied to inductor a, such that a
representative dipole moment is determined for inductor a and that
the mutual inductance is computed by determining the magnetic flux
of the representative dipole over the surface of inductor b. It
should of course be understood that the exemplary technique can be
applied in the opposite manner (where the representative dipole of
inductor b is found) and that the final mutual inductance value can
be computed as the average of the two mutual inductance
computations.
[0236] According to one exemplary alternative embodiment, the
determination of mutual inductance between a first inductor and a
second inductor proceeds as follows. Inductor a can be represented
as one or more closed polygons. For example, in the case of a
symmetric or spiral inductor, each constituent current loop can be
represented as a closed polygon approximating the geometry of a
turn. Bundles can be formed of respective opposite segments in the
closed polygons (which are representative of the turns of the
inductor). Thus, in this exemplary embodiment, a loop consists of
as many bundles as one half the number of segments per closed
polygon (that is, per turn). In this situation, there is a single
value of alpha (.alpha.) per bundle that is equal to one. The
dipole moment of inductor a is computed by adding the dipole
moments of its constituent bundles. In one particular
implementation, for example, the dipole of inductor a is the sum of
the dipole moments of each constituent loop in inductor a.
[0237] The flux of the field generated by the single dipole moment
of inductor a on each closed surface of inductor b can be computed.
For example, equation (18) may be used. In the case of a Manhattan
layout, this results in a sum of terms like equation (26) for each
segment oriented in the y direction, and an analogous term with y
exchanged for x for segments oriented in the x direction. This
procedure can be more generally applied to non-Manhattan multiple
turn inductors using Equation (49).
[0238] The complexity of the exemplary procedure can be estimated
as follows. The total number of operations is given by
(N.sub.a+N.sub.b+2), with N.sub.a=N.times.number of sides of the a
polygon, and N.sub.b=M.times.number of sides of the b polygon. The
value of "2" that is added comes from the computation of the two
dipole moments. The overall computation has been reduced from
quadratic to linear complexity and each one of the terms involves
ratios of polynomials including square roots.
[0239] FIG. 27 is a flowchart illustrating the above-described
alternative embodiment for computing mutual inductances between two
inductors. In the particular implementation shown in FIG. 27, the
inductors are assumed to be rectangular inductors. In particular,
the flowchart shows the mutual inductance computation between
inductor a and inductor b, which are not necessarily equal. FIG. 28
is a block diagram 2800 schematically showing example inductors a
and b.
[0240] At process block 2702, a circuit description of a circuit is
received (e.g., a circuit design file, such as a GDSII or Oasis
file containing the intentional inductors). The circuit description
may additionally comprise an indication of localization of the
inductors.
[0241] At process block 2704, the inductors are broken (or
partitioned) at their vertices in order to have straight segments.
FIG. 29 is a block diagram 2900 illustrating this procedure for
inductor a. Further, each turn in inductor a is replaced by a
closed loop, or ring, in order to compute the dipole moment of the
corresponding loop belonging to the inductor a. The loops or rings
can be identified by closing the turns as illustrated in block
diagram 3000 in FIG. 30. For purposes of this discussion, inductor
a is considered to be the inductor for which the representative
dipole moment is computed. As can be seen from FIG. 30, the
approximate geometrical representation of inductor a is that of a
concentric set of polygons (rectangles in the Manhattan case), one
for each of the turns of the inductor. Bundles, as described above,
can be formed from the rings.
[0242] At process block 2706, the dipole moments for each ring in
inductor a are computed and summed to produce a single
representative dipole moment. The resulting dipole moment of
inductor a is proportional to the sum of areas of all its
constituent polygons and can be computed in a single operation.
This follows directly from equation (20).
[0243] At process block 2708, the mutual inductance is computed as
the magnetic flux generated by magnetic field produced by the
representative dipole moment of inductor a though inductor b. This
computation can be performed, for example, as described above for
the case of bundles. In one particular implementation, equation
(18) is applied. Specifically, to calculate the flux of the
magnetic field due to the dipole moment of equation (49) through
inductor b, equation (18) can be used as follows:
.PSI. a .fwdarw. j = .differential. S j A ( a ) l j = p ~ ( a ) j =
1 N b .intg. segment j - y j x j + x j y j ( x j 2 + y j 2 + z j 2
) 3 / 2 . ( 56 ) ##EQU00057##
Integration of equation (56) and accounting for the relationship
that
p ~ ( a ) .ident. p ( a ) I ##EQU00058##
leads to equation (40) above for computing the mutual inductance
M.sub.ab. In the Manhattan case, this results in a sum of terms
like equation (26) for each segment oriented in the y direction,
and an analogous term with y exchanged for x for segments oriented
in the x direction. There are as many terms as there are segments
in the victim. Further, in this example, the alphas (.alpha.) can
be replaced by "1", since all the current is carried by the
loop.
[0244] The computation can be repeated by replacing inductor a with
b, and averaging the two values obtained in this manner in order to
arrive at a symmetrical mutual inductance between the two
inductors. This is indicated in FIG. 27, for example, by the two
branches in 2707, 2709 and subsequent merger at 2710, though it
should be understood that this computation can be performed in some
embodiments for just one inductor of the pair.
[0245] FIG. 31 shows the result of a mutual inductance calculation
between two exemplary rectangular inductors using the alternative
dipole approximation technique described above (dashed-symbol line)
and a field solver (solid line). In graph 3100, the value of
.zeta..ident.M.sub.ab/ {square root over (L.sub.aL.sub.b)} (the
ratio of the mutual inductance to the geometric average of the two
self inductances) is plotted against the separation (in microns)
between the borders of the two inductors. In this example, the
first inductor has 5 turns and the second inductor has 6 turns. For
both inductors, each turn consists of four segments, and the
separation between turns is 2 microns for the first inductor and 1
micron for the second. The wires of both inductors have a width of
1 micron and a thickness of 0.65 microns.
[0246] The Manhattan radius of one of them is 50 microns while the
radius for the other one is 25 microns. Results for .zeta. show
sufficiently good precision for noise estimations, where one is
mainly interested in establishing bounds. Results for separations
between the borders larger than 5 microns give adequate estimates
for noise analysis. If the noise parameter .zeta. is larger than a
predetermined noise figure of merit, one can increase the
separation among the inductors until safe margins are satisfied.
The process can be repeated for every pair of inductors till a
desired configuration is obtained.
V. Exemplary Network Environments for Applying the Disclosed
Techniques
[0247] Any of the aspects of the technology described above may be
performed using a distributed computer network. FIG. 32 shows one
such exemplary network. A server computer 3200 can have an
associated storage device 3202 (internal or external to the server
computer). For example, the server computer 3200 can be configured
to perform a mutual inductance extraction technique according to
any of the disclosed embodiments (e.g., as part of an EDA software
tool, such as a physical verification or synthesis tool). The
server computer 3200 can be coupled to a network, shown generally
at 3204, which can comprise, for example, a wide-area network, a
local-area network, a client-server network, the Internet, or other
such network. One or more client computers, such as those shown at
3206, 3208, may be coupled to the network 3204 using a network
protocol. The work may also be performed on a single, dedicated
workstation, which has its own memory and one or more CPUs.
[0248] FIG. 33 shows another exemplary network. One or more
computers 3302 communicate via a network 3304 and form a computing
environment 3300 (e.g., a distributed computing environment). Each
of the computers 3302 in the computing environment 3300 can be used
to perform at least a portion of the mutual inductance extraction
technique according to any of the disclosed embodiments (e.g., as
part of an EDA software tool, such as a physical verification or
synthesis tool). For instance, each of the computers may perform
mutual inductance extraction (or parasitic extraction generally)
for different portions of the circuit design or according to
various other criteria. The network 3304 in the illustrated
embodiment is also coupled to one or more client computers.
[0249] FIG. 34 shows that a database or data structure containing
design information (e.g., a GDSII, Oasis file, or other such file
indicative of a circuit layout) can be analyzed using a remote
server computer (such as the server computer 3200 shown in FIG. 32)
or a remote computing environment (such as the computing
environment 3300 shown in FIG. 33) in order to extract one or more
parasitic inductance values (e.g., mutual inductance between
inductors) using any of the embodiments disclosed herein. At
process block 3402, for example, the client computer sends design
data to the remote server or computing environment. For instance,
the client computer may send a GDSII, Oasis file, or other EDA
design file along with any other data used in the extraction
process). In process block 3404, the design data is received and
loaded by the remote server or by respective components of the
remote computing environment. In process block 3406, mutual
inductance values are determined using any of the disclosed
embodiments. At process block 3408, the remote server or computing
environment sends the inductance values determined to the client
computer, which receives the data at process block 3410. For
example, a database or data structure of the relevant mutual
inductances computed by the inductance extraction procedure can be
created. The mutual inductances can be stored, for example, as an
updated version of the circuit design data (e.g., included in
fields related to each signal wire) or as one or more separate
files or data structures (e.g., a SPICE file). It should be
apparent to those skilled in the art that the example shown in FIG.
34 is not the only way to obtain parasitic extraction results using
multiple computers. For instance, the design data may be stored on
a computer-readable medium that is not on a network and that is
sent separately to the server or computing environment (e.g., a
CD-ROM, DVD, or portable hard drive). Or, the server computer or
remote computing environment may perform only a portion of the
extraction procedures.
[0250] Having illustrated and described the principles of the
illustrated embodiments, it will be apparent to those skilled in
the art that the embodiments can be modified in arrangement and
detail without departing from such principles. For example, the
principles of the disclosed technology can be applied more
generally such that they do not require direct correspondence to a
dipole moment. For instance, in one exemplary embodiment, a value
associated with a first inductor can be determined. Similar to the
dipole moment, this value can be representative of plural magnetic
fields generated by respective turns of the first inductor. The
mutual inductance value between the first inductor and a second
inductor can then be determined as a function of the value. For
example, the value can be the magnitude of a vector located
substantially in the center of the first inductor, and the mutual
inductance can be determined as the flux of a magnetic field
through the second inductor, wherein the magnetic field is
represented as being generated at the location of the vector and
having a strength proportional to the value. In view of the many
possible embodiments, it will be recognized that the illustrated
embodiments include only examples and should not be taken as a
limitation on the scope of the invention. Rather, the invention is
defined by the following claims. We therefore claim as the
invention all such embodiments that come within the scope of these
claims.
* * * * *
References