Parasitic extraction

In electronic design automation, parasitic extraction is calculation of the parasitic effects in both the designed devices and the required wiring interconnects of an electronic circuit: parasitic capacitances, parasitic resistances and parasitic inductances, commonly called parasitic devices, parasitic components, or simply parasitics.

The major purpose of parasitic extraction is to create an accurate analog model of the circuit, so that detailed simulations can emulate actual digital and analog circuit responses. Digital circuit responses are often used to populate databases for signal delay and loading calculation such as: timing analysis; power analysis; circuit simulation; and signal integrity analysis. Analog circuits are often run in detailed test benches to indicate if the extra extracted parasitics will still allow the designed circuit to function.

Background

In early integrated circuits the impact of the wiring was negligible, and wires were not considered as electrical elements of the circuit. However below the 0.5-micrometre technology node resistance and capacitance of the interconnects started making a significant impact on circuit performance.[1] With shrinking process technologies inductance effects of interconnects became important as well.

Major effects of interconnect parasitics include: signal delay, signal noise, IR drop (resistive component of voltage).

Interconnect capacitance extraction

Interconnect capacitance is calculated by giving the extraction tool the following information: the top view layout of the design in the form of input polygons on a set of layers; a mapping to a set of devices and pins (from a Layout Versus Schematic run), and a cross sectional understanding of these layers. This information is used to create a set of layout wires that have added capacitors where the input polygons and cross sectional structure indicate. The output netlist contains the same set of input nets as the input design netlist and adds parasitic capacitor devices between these nets.

Interconnect resistance extraction

Interconnect resistance is calculated by giving the extraction tool the following information: the top view layout of the design in the form of input polygons on a set of layers; a mapping to a set of devices and pins (from a Layout Versus Schematic run), and a cross sectional understanding of these layers including the resistivity of the layers. This information is used to create a set of layout sub.wires that have added resistance between various sub-parts of the wires. The above Interconnect Capacitance is divided and shared amongst the sub-nodes in a proportional way. Note that unlike Interconnect Capacitance, Interconnect Resistance needs to add sub-nodes between the circuit elements to place these parasitic resistors. This can greatly increase the size of the extracted output netlist and can cause additional simulation problems.

Interconnect inductance extraction

Tools and vendors

The tools fall into the following broad categories.

  • Field solvers provide physically accurate solutions. They calculate electromagnetic parameters by directly solving Maxwell's equations. Due to high calculation burden they are applicable only very small designs or to parts of the designs.
  • Approximate solutions with pattern matching techniques are the only feasible approach to extract parasitics for complete modern integrated circuit designs.


ANSYS Q3D Extractor

ANSYS Q3D Extractor uses method of moments (integral equations) and FEMs to compute capacitive, conductance, inductance and resistance matrices. It uses the fast multipole method (FMM) to accelerate the solution of the integral equations. Outputs from the solver include current and voltage distributions, CG and RL matrices.[2][3]

FastCap, FastHenry

FastCap and FastHenry, from MIT (Massachusetts Institute of Technology) are two free parasitics extractor tools for capacitance, and inductance and resistance. Quoted in many scientific articles, they are considered golden references in their field. Source code, as well as Windows binary versions with viewer and editor are freely available from FastFieldSolvers.[4][5]

FasterCap

FasterCap, from FastFieldSolvers, is a free, open source capacitance field solver, available for Windows and Linux OS, able to simulate conductive structures embedded in piece-wise-constant, complex permittivity dielectric media, automatic mesh refinement capability and in-core/out-of-core solver engine.

StarRC

StarRC from Synopsys (previously from Avanti) is a universal parasitics extractor tool applicable for a full range of electronic designs.[6]

Quantus

Quantus from Cadence is a parasitic extractor tool for both digital and analog designs and parasitics extraction check have to be carried out to prepare the design for postlayout verification.[7]

QuickCap

QuickCap NX from Synopsys is a parasitic extractor tool for both digital and analog designs.[8] It was based on QuickCap developed by Ralph Iverson of Random Logic Corporation, which was acquired by Magma and Synopsys.

Calibre xACT3D

Calibre xACT3D from Mentor Graphics is a parasitic extractor tool for both digital and analog designs.[9] It was based on PexRC developed by Wangqi Qiu and Weiping Shi of Pextra Corporation, which was acquired by Mentor.

CapExt

CapExt from CapExt AS is a parasitic extractor tool for extracting capacitance from PCBs based on Gerber files.[10]

Fieldscale SENSE

Fieldscale SENSE from Fieldscale is a parasitic extractor tool for extracting capacitance, resistance and the whole RC equivalent circuit in a netlist format from capacitive touch sensors based on dxf and gerber files.[11]

gollark: What I need to do is make the escape bit handle `\uXXXX` sequences...
gollark: ```luafunction parseString(str) str = str:sub(2) local s = "" while str:sub(1,1) ~= "\"" do local next = str:sub(1,1) str = str:sub(2) assert(next ~= "\n", "Unclosed string") if next == "\\" then local escape = str:sub(1,1) str = str:sub(2) next = assert(decodeControls[next..escape], "Invalid escape character") end s = s .. next end return s, removeWhite(str:sub(2))end```
gollark: Okay, this is hand-rolled parsing code, I have no idea how it works.
gollark: *But* this is a bug in the JSON handling, which I should really fix *anyway*.
gollark: Ah, base64 should do it, yes.

See also

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.