Beruflich Dokumente
Kultur Dokumente
TABLE OF CONTENTS
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 SCA flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Data flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 User interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 SIPP process description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Comments and units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Substrate layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Well/buried layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Diva rules for SCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Substrate layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 SCA flow properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Advanced Diva use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Textual interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Port data description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Command-line interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 A simple test structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Comparison to measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Low noise amplifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
TABLE OF FIGURES
Figure 1: Figure 2: Figure 3: Figure 4: Figure 5: Figure 6: Figure 7: Figure 8: Figure 9: Core modeling and extraction data flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Verification flow for substrate coupling analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 SCA user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 A substrate profile example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Substrate model including well and buried layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 A simple layout test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 SCA test and calibration structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 LNA extracted view from SCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Substrate effects on the gain of the LNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
LIST OF TABLES
Table 1: SCA results compared to measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Abstract
Substrate Coupling Analysis (SCA) of version 4.4.6 has a substantial capacity and functionality increase over previous versions. IES3 is used as its internal eld solver engine. Physical verication ow use model of SCA, as well as the command-line interface, provides the seamless and exible application of SCA. This article describes the internal ow and application examples of SCA in RF circuits to help the customer use SCA more effectively.
1 Introduction
Substrate coupling analysis has recently become both an intensive research topic and emerging commercial EDA demand in mixed-signal and RF applications[3]. The traditionally assumed insulation between devices, because of high resistivity and carefully designed junctions, is disappearing to a point where coupling between devices should be carefully analyzed. Degradation of noise characteristics in RF circuits due to such coupling and susceptibility of analog circuits to wide-range swings of digital signals are the main concerns. The features of this release of Cadence SCA can be summerized as follows: 1. A brand-new efcient eld solver SCA uses a core Poissons equation eld solver called IES3 that uses efcient multilayer Greens functions and matrix compression and solving engine. This eld solver gives sufcient extraction accuracy and speed[2, 1]. 2. Complete and exible substrate model SCA extracts both resistive and capacitive couplings inside the substrate. SCA also provides the exibility for the user to use customized junction models in buried layers and wells. For example, the user may worry about the lateral diffusion and thus they use their own model to represent the well junctions. 3. Seamless Cadence ow
We acknowledge the help and testing from Philips Semicondutor, Sunnyvale, USA and for their work on the evaluation circuit.
1
Greens function database Matrix Compression Final model (including junction and well models) Iterative Solving
Figure 1: Core modeling and extraction data ow SCA uses Virtuoso as the layout editor tool (and dfII database), Diva as the verication tool to extract the shapes. The nal model is generated specically for Spectre/SpectreRF. No conversion between databases and between simulators minimizes the errors introduced in those conversions. SCA also provides a textual interface with which the user can adopt SCA into different ows. 4. Standard process description (SIPP) SCA uses the standard process description le format, SIPP (Standard Interconnect Performance Parameter). SIPP format, championed by Si2 (http://www.si2.org), aims to standardize the process description for parasitic and substrate extraction purpose.
2 SCA ow
SCA software is comprised of three integral components: core modeling engine, front-end, and backend. In the front-end, one applies Diva rules to extract the geometry shapes and connectivities, which are then fed to the core modeling engine that generates the corresponding substrate model. In the backend, the substrate model is referred in the extracted view that is suitable for special netlisting code that assembles the substrate model into the nal netlist for simulation.
2.1 Extraction
SCA uses IES3 as the core solving engine that solves the underlying Poissons equation. Figure 1 shows the data ow of the modeling.
2.2 Data ow
The substrate prole describes the physical layer structure and the parameters. This prole is used to generate the Greens functions that capture the electrical interactions between layers. Each port is discretized into panels. Each port is assumed to be of constant electric potential; the currents injecting into or received from substrate at each panel are different. For ports of rectangular shape, the panels are also rectangles. For ports of general polygon shapes, a built-in triangularization procedure discretizes the port into many triangular panels. The efciency of IES3 lies in the matrix compression technique that reduces the matrix solving to where is the total number of panels. The solving results are then used to construct the nal model that may include customized junction models.
2.2 Data ow
Figure 2 shows the verication ow for the substrate coupling analysis. The smaller dashed window depicts the core modeling engine whose only inputs are the process information and port information. The core engine is independent of the ow and thus can be used to adapt to other similar ows. The larger dashed window describes the entire Cadence SCA ow that includes the front-end and back-end. Interactive probing is not part of the delivered ow yet. The user may write his own SKILL scripts to aid the probing.
low. The main characteristics are: no substrate capacitance; uses oat(4 bytes) as data storage and solving; each port discretized to 9 panels; SVD compression and GMRES solving at 1e-2; in nal model, elements smaller than 1e-2 of the diagonal value pruned; Fast prototyping use for processes without substrate capacitances; medium. Main characteristics: substrate capacitance included; uses complex(16 bytes) as data storage and solving; each port discretized to 9 panels; SVD compression and GMRES solving at 1e-3; in nal model, elements smaller than 1e-3 of the diagonal value pruned; sufcient for most applications; high. Characteristics same as in medium except: each port discretized to 25 panels; no pruning in nal model. good for local scrutiny extraction of a a few ports. 3
Layout in Virtuoso
DIVA
Geometry manipulation
discretization
SCA flow
SCA engine
Solving Engine
Process information
Modeling
Original schematic
Extracted view/layout
LVS
Figure 3: SCA user interface If the background extraction button is pressed, then the extraction is performed in background; otherwise, the user can continue only after the extraction is nished. If the extraction is successful, a pcell representing the whole substrate model will be shown; otherwise, an error dialog box will notify the user of the extraction failure.
L1 L2
w1 pwell
w2 nwell
bl
BP
P bulk
Figure 4: An substrate prole example for interconnect capacitance extraction). Material type describes the layer as being either an oxide layer or a semiconductor layer. In the latter case, material type refers to the doping type. Type = substrate Material Type = p/n/oxide Name = <user defined name> thickness = starting from bottom of layer layer k = dielectric constant of this layer resistivity = resistivity of this layer
3.4 Example
The following is a sample SIPP le for SCA. It has a p channel stop layer of thickness 3um, epi layer of 7um, and bulk P substrate of 300um. The process also contains a P well of thickness of 5 um, and a buried layer of 2um thick. 6
3.4 Example
# This is the sample process file for the substrate coupling analysis. # pound sign is for comment. # Define units units = { distance = um resistivity = ohm, cm } # P layer above the bulk substrate type = substrate material_type = p name = bp thickness = 3 k = 11 resistivity = 2 # Bulk substrate type = substrate material_type = p name = p_bulk thickness = 300 k = 11 resistivity = 20 type = well material_type = n name = nwell thickness = 3 k = 11 cj = 1e-9 type = buried material_type = n name = BL thickness = 2 depth = 1 k = 11 cj = 1e-12
special layers for substrate analysis only; each layer has shapes representing substrate ports and these shapes must have nets attached. These nets are usually shared with the nets at the bulk nodes of devices. special properties specifying the above layers and other properties. This section explains these two items and then suggests some advanced Diva rules writing techniques.
Sometimes, such as when you are adding depth to a port or creating ports for wells and buried layers, it is not possible to use only one substrate port layer. You can use as many layers as you wish to specify the ports, but each such layer should have the appropriate properties attached to it. Before you start SCA, the connections with substrate ports must be oating. After SCA is nished, the port nodes are then electrically connected to the substrate model generated during SCA. Some features are worth being mentioned:
Ports are allowed to have same nets. For example, you may create several guard rings that use the same net, ground. Prefer rectangular shapes to generic polygon shapes. The reason is that internal extraction engine discretizes rectangular shapes to smaller rectangular shapes while generic polygon shapes are discretized to triangles. Rectangular discretization is considered more efcient. For more detailed Diva rules for various devices, please refer to the users manual.
(list layername) shapes on layername treated as substrate ports of interest, and depth assumed to be zero; (list layername depth) shapes on layername treated as substrate ports of interest, depth (numeric value) specifying the depth of those ports; (list layername modelname) If layername is found in the process prole as a well layer, then shapes on this layer will be treated as wells that use the junction model named modelname; if layername is found in the process prole as a buried layer, then shapes on this layer will be treated as buried layers that use the junction model named modelname. The difference between well and buried layer is that ports that fall in the wells will use the well as the reference.
Figure 5 shows the model that includes regular substrate ports, well, and buried layer. Each well is considered a port with regard to the bulk substrate, but for ports inside each well, the well is the reference node. A typical way of setting up the properties is like the following Diva code: x=(lambda (ids2) (if ids2->extracted 9
well
port
bulk node
Figure 5: Substrate model including well and buried layer (dbReplaceProp ids2->extracted "subLayers" "ilList" (list (list "scaport") (list "scadeep" 3.5) (list "nwell" "nwell") (list "BL" "buried"))))) (ivCallProc x)
In this example, scaport and scadeep are regular substrate layers with the former having depth of 0 while the latter having depth of 3.5u. Layer nwell is probably an N-well layer and its junctions with p-substrate is modeled by nwell. Layer BL is probably an buried layer and its junctions are modeled by buried. Note that these layers must be available for Diva writing.
In the Diva setup, one can apply the selection layer technique to select and localize areas that are of interest for SCA purpose. This can be achieved by using an LSW layer named scaport which before SCA running is a selection layer but after SCA running is reused as the substrate layer. By drawing a shape on the scaport layer, the user species that only substrate ports covered by the shape will be generated in extracted view and later be processed in the SCA extraction. This mechanism can reduce the model and speed up both extraction and simulation by eliminating areas that do not need SCA. 10
Normally this can be achieved by the following steps: rst ignore scaport and derive the scaBulk that denes all the substrate ports, and then use geomInside to derive the ports of interest: sca1 = (geomInside scaBulk scaport) then sca1 contains substrate ports on layer scaBulk and within the scope dened by shapes on scaport. After connectivities are created, we need to save the substrate layers such as: (saveInterconnect (sca1 "scaport")) All the shapes on sca1 will be saved on the scaport layer in the extracted view. 4.3.2 SCA switch
Most users incorporate SCA capabilities by modifying existing Diva rules. There is also a need to have a switch that turns on or off the SCA Diva rules. We introduce an example on how to reduce the impact on the device recognition code. First, subConn is a derived layer for 4-terminal device extraction such as: (extractDevice pGate poly("G") nsd("S" "D") subConn("B") "nmos ivpcell") Then the trick is to use switch and geomStamp to create a different subConn layer. A simple example is given as follows. 1 2 3 4 5 6 7 8 9 10 11 psub = (geomBkgnd) (ivIf (switch "SCA?") then psub = (geomAndNot psub scaport) psub = (geomOr (geomInside scaBulk scaport) psub) subConn = (geomStamp psub pwell) else subConn = (geomStamp psub pwell)) (extractDevice pGate poly("G") nsd("S" "D") subConn("B") "nmos ivpcell") (ivIf (switch "SCA?") then scaBulks = (geomInside subConn scaport) (saveInterconnect (scaBulks "scaport")))
Major additions are in lines 2-6 and 9-11. Without SCA switch, subConn (see line 7), is the substrate layer, with the net name stamped from the P-well shapes, that provides as the bulk node for the NMOS transistor extraction. With the SCA switch, lines 2-6 break the subConn into two parts: those inside scaport for SCA purpose and the rest with net name stamped from the p-well. Note that in line 5, substrate ports will automatically be assigned a unique name if these ports do not overlap with pwell shapes. Lines 9-11 save the portion of subConn inside scaport with its already assigned net names. It can be seen that this mechanism shields the device extraction from the hassle of having to deal with SCA differently and reduces the work needed in modifying the original Diva rules.
11
5 Textual interface
The command-line interface to invoking the SCA extraction engine only uses two les: the process le and the port data le. The Diva rules and user interface transparently generate the port data le, invoke the engine and put the results back to the extracted view. By using the command-line interface directly, the user has the exibility of using SCA engine without going through the whole verication ow. The user will also be able to adapt the engine into his own other ow.
the unit for the shape description; possible customized model for particular layers; substrate port with its associated net name, port name, shape, and depth. A typical port le is as follows:
userUnits "micron" userModels "Pwell_a" "pwell" userModels "BL" "buried" net=2 layer=scaport depth=2 rect ((971.95 238.75) (981.95 370.65)) net=1 layer=scaport depth=2 poly ((742.1 239.3) (775.55 344.2) (840 239.3)) The userUnits section species the unit for the shape description. Only micron and meter are supported. The default value is micron. The UserModels sections specify the customized model for shapes that are on the rst parameter using the model name specied on the second parameter. For example, in the above port data le, shapes on layer Pwell a will use model name of pwell, and shapes on layer BL will use model name of buried. Any shapes that are not on the layers specied in userModels sections will be treated as regular substrate port. The rest of the port data le species the substrate ports. Each port starts with the net name followed by the layer name. Layer names should correspond to the substrate/well/buried layer names specied in the process le. The following depth species the port depth that sometimes gives signicantly different results. rect and poly specify the shape of the port, rectangular and polygonal respectively. A parenthesized data structure then follows to dene the actual shape. For rectangular shape, two points dene the left-lower corner and the upper-right corners respectively. For polygon shapes, each point becomes the polygon point in either clockwise or counter-clockwise direction.
12
subx options where each option comprises of the switch and its value. The switches are: -procfile procfile_name -portfile portfile_name -modelfile modelfile_name -modelname modelname -acculevel {low|medium|high} -freq frequency -procfile species the SIPP le that describes the substrate layer structure; -portfile species the port data le that describes the substrate ports; -modelfile species the le to be created that contains the subckt model for the entire substrate; -modelname species the name of the subckt; -acculevel species the accuracy level: low, medium and high; -freq species the working frequency, which defaults to 1e9 Hz. Here is an example invocation: subx -procfile sample.proc -portfile port.data -modelfile substrate.scs \\ -modelname substrate -acculevel medium
6 Examples
We give one simple example to demonstrate the data le format and results. We then present some real applications.
13
6 A1 A2
BL
BL 1
L0
B1 B2
In the run directory, SCA creates an intermediary le, port.data, that describes the entire port distribution. The port.data le is shown as follows:
userUnits "micron" userModels "Pwell_a" "pwell" userModels "BL" "buried" net=b2 layer=Poly1 depth=0 rect ((80.0 50.0) (100.0 60.0)) net=a2 layer=Poly1 depth=0 rect ((80.0 70.0) (100.0 80.0)) net=b1 layer=Poly1 depth=0 rect ((50.0 50.0) (70.0 60.0))
14
net=a1 layer=Poly1 depth=0 rect ((50.0 70.0) (70.0 80.0)) net=6 layer=Pwell_a depth=0 rect ((43.9 41.5) (74.0 86.9)) net=bl1 layer=BL depth=0 rect ((115.0 41.7) (130.3 87.7))
Note that although the depth of the bl1 port is specied as 0 in the port data le, since the layer name matches the buried layer name specied in the process le, the actual depth is obtained from the process le. The substrate model is generated as follows:
// This file is generated by the subX tool. subckt substrate (b2 a2 b1 a1 6 bl1 ref) // model inside well of net 6 on layer Pwell_a // Junction models for wells c0_well_6 (int_6 6) pwell area=1.366540e-09 perimeter=1.056000e-04 r1_b1_a1 (b1 a1) resistor r=2.103082e+03 r2_b1_int_6 (b1 int_6) resistor r=8.077988e+02 r3_a1_int_6 (a1 int_6) resistor r=8.077045e+02 // model of net bl1 on layer BL c4_buried_bl1 (int_bl1 bl1) buried area=7.038000e-10 perimeter=7.660000e-05 // Models at the top level r5_b2_a2 (b2 a2) resistor r=2.509657e+03 r6_b2_6 (b2 6) resistor r=1.943236e+03 r7_b2_int_bl1 (b2 int_bl1) resistor r=3.953767e+03 r8_b2_ref (b2 ref) resistor r=1.371588e+03 r9_a2_6 (a2 6) resistor r=2.066437e+03 r10_a2_int_bl1 (a2 int_bl1) resistor r=3.895700e+03 r11_a2_ref (a2 ref) resistor r=1.338032e+03 r12_6_int_bl1 (6 int_bl1) resistor r=4.478318e+04 r13_6_ref (6 ref) resistor r=3.044599e+02 r14_int_bl1_ref (int_bl1 ref) resistor r=3.982237e+02 ends substrate
Note that the substrate model corresponds to the structure shown in Figure 5.
15
Selection box
16
Resistor Capacitor
Capacitor
SCA pcell
10
S21(dB)
10
20
30
40 0
0.5
1.5
frequency
2.5 x 10
3
9
17
7 Summary
SCA provides a seamless substrate extraction and analysis capability within the Cadence custom RF IC design and verication ow of Virtuoso/Composer/Artist/SpectreRF. It uses an efcient Greens function database and eld solver to solve the complicated eld interactions inside the substrate. It supports Spectre and SpectreRF socket and direct netlisting and regular Diva functions. We have strived to provide a smooth Diva/SCA verication ow as well as the exibility of textual interface. SCA has been calibrated in real production process and used in production circuit verication. New features in the plan include:
Higher capacity to work in large-scale mixed-signal design and verication environment; Interactive probing to help design pinpoint the substrate problems. Integration with Assura product family.
References
[1] J. Zhao, W. Dai, S. Kapur, and D. Long. Efcient three-dimensional extraction based on static and full-wave layered greens functions. In Design and Automation Conference, pages 2249, San Francisco, June 1998. New York, NY, USA: IEEE.
[2] S. Kapur and D. Long. IES : A fast integral equation solver for efcient 3-dimensional extractions. In 37th International Conference on Computer Aided Design, Nov 1997. [3] X. Aragones, J.L. Gonzalez, and A. Rubio. Analysis and solutions for switching noise coupling in mixed-signal ICs. Kluwer Academic Publishers : Boston, 1999.
18
Cadence Design Systems, Inc. Corporate Headquarters 2655 Seely Avenue San Jose, CA 95134 800.746.6223 408.943.1234 www.cadence.com
2001 Cadence Design Systems, Inc. All rights reserved. Cadence and the Cadence logo are registered trademarks and how big can you dream? is a trademark of Cadence Design Systems, Inc. All others are properties of their holders. Stock #3488 10/01