Xact User
Xact User
This document contains information that is proprietary to Mentor Graphics Corporation. The original recipient of this
document may duplicate this document in whole or in part for internal business purposes only, provided that this entire
notice appears in all copies. In duplicating any part of this document, the recipient agrees to make every reasonable
effort to prevent the unauthorized use and distribution of the proprietary information.
This document is for information and instruction purposes. Mentor Graphics reserves the right to make
changes in specifications and other information contained in this publication without prior notice, and the
reader should, in all cases, consult Mentor Graphics to determine whether any changes have been
made.
The terms and conditions governing the sale and licensing of Mentor Graphics products are set forth in
written agreements between Mentor Graphics and its customers. No representation or other affirmation
of fact contained in this publication shall be deemed to be a warranty or give rise to any liability of Mentor
Graphics whatsoever.
MENTOR GRAPHICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
MENTOR GRAPHICS SHALL NOT BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, OR
CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)
ARISING OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT,
EVEN IF MENTOR GRAPHICS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
U.S. GOVERNMENT LICENSE RIGHTS: The software and documentation were developed entirely at
private expense and are commercial computer software and commercial computer software
documentation within the meaning of the applicable acquisition regulations. Accordingly, pursuant to
FAR 48 CFR 12.212 and DFARS 48 CFR 227.7202, use, duplication and disclosure by or for the U.S.
Government or a U.S. Government subcontractor is subject solely to the terms and conditions set forth in
the license agreement provided with the software, except for provisions which are contrary to applicable
mandatory federal laws.
TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of
Mentor Graphics Corporation or other parties. No one is permitted to use these Marks without the prior
written consent of Mentor Graphics or the owner of the Mark, as applicable. The use herein of a third-
party Mark is not an attempt to indicate Mentor Graphics as a source of a product, but is intended to
indicate a product from, or associated with, a particular third party. A current list of Mentor Graphics’
trademarks may be viewed at: www.mentor.com/trademarks.
The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of
Linus Torvalds, owner of the mark on a world-wide basis.
Chapter 1
Calibre xACT Product Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
The Calibre xACT Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Calibre xACT Digital Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Calibre xACT and the Full Custom Design Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Calibre xACT Digital Flow Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Calibre xACT Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Calibre xACT 3D Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Calibre xACT 3D Reference Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Calibre xACTView Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Chapter 2
Getting Started: Calibre xACT Parasitic Extraction For Transistor-Level Designs . . . . 23
Transistor-Level Extraction Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Creating a Top-level Control File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Performing Extraction with Layout Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Performing Extraction with Source Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Chapter 3
Getting Started: Calibre xACT Parasitic Extraction for Digital Designs . . . . . . . . . . . . 31
Digital Design Extraction Flow Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
SVRF Statements Supported By the Digital Extraction Flow . . . . . . . . . . . . . . . . . . . . . . . . 33
Performing Digital Extraction With Calibre xACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Chapter 4
Getting Started: Calibre xACT 3D Parasitic Extraction Using Calibre Interactive . . . . 39
Invoking Calibre Interactive Parasitic Extraction (PEX). . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Loading a Runset (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Specifying Rule File for PEX Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Input Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Defining Input Data Names in the Extracted Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Using Schematic Netlist Input in the Extracted Netlist (Optional) . . . . . . . . . . . . . . . . . . 43
Defining H-Cells Input (Gate-Level and Hierarchical Extraction Only) . . . . . . . . . . . . . . 43
Outputs for a PEX Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Defining the Extraction Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Specifying the Parasitic Netlist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Restricting the Nets (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Setting Up Reports (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Adding to the SVDB (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Running Calibre Interactive PEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Setting PEX Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Chapter 5
Getting Started: Calibre xACT 3D Parasitic Extraction Using Batch Mode . . . . . . . . . . 53
Batch Mode Setup for Calibre xACT 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Direct Netlisting With Calibre xACT 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Using the Calibre xACT 3D PDB Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Step 1 — Creating the PHDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Step 2 — Creating the Parasitic Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Step 3 — Generating A Netlist or Report. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Chapter 6
Getting Started: Calibre xACT TSV Parasitic Extraction Using Batch Mode. . . . . . . . . 65
TSV Extraction Flow Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Step 1 — Creating the PHDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Step 2 — Creating the Parasitic Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Step 3 — Adding TSV Information to the PDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Step 4 — Creating a Netlist or Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Chapter 7
Getting Started: Calibre xACT 3D Reference Parasitic Extraction Using Batch Mode . 73
Calibre xACT 3D Reference Tool Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Step 1 — Creating the PHDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Step 2 — Creating the Parasitic Database Using Calibre xACT 3D Reference . . . . . . . . . . 75
Step 3 — Creating a Netlist or Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
The Calibre xACT 3D Reference Standalone Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Calibre xACT 3D Reference Standalone Flow Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Creating the Capacitance Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Chapter 8
Types of Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Comparison of Extraction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Calibre xACT Extraction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Calibre xACT Flat Transistor-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Selective Resistance Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Multiple Netlist Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3D Select Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Flat LEF/DEF Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Block-by-block Hierarchical Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Full Hierarchical LEF/DEF Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
GDS and OASIS Metal Fill Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
DEF Metal Fill Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Extraction With GDS Macrocells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Multi-Temperature Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Multi-Corner Multi-Temperature Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Calibre xACT 3D Extraction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Hybrid xACT 3D/Rule-Based Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Extraction Using Boundary Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Hierarchical Memory Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Mixed-Signal Hierarchical Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Chapter 9
Producing Parasitic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Parasitic Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Types of Parasitic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Distributed Resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Distributed Resistance and Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Distributed Resistance and Coupled Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Chapter 10
Basic Extraction Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Prerequisites for Performing Parasitic Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Running Gate-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creating a Gate-Level Netlist with Calibre xACT 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Creating a Gate-Level Netlist from Calibre Interactive with Calibre xACT 3D . . . . . . . . 110
Running Transistor-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Creating a Transistor-Level Netlist with Calibre xACT. . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Creating a Transistor-Level Netlist Using Calibre xACT 3D Direct Netlisting. . . . . . . . . 113
Creating a Transistor-Level Netlist Using the Calibre xACT 3D PDB Extraction Flow. . 114
Creating a Transistor-Level Netlist from Calibre Interactive with Calibre xACT 3D . . . . 115
Running Full Hierarchical and Mixed-Signal Hierarchical Extraction . . . . . . . . . . . . . . . . . 117
Creating a Hierarchical Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . 117
Creating a Hierarchical Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Netlisting a Design Without Parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Creating an Ideal Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Creating an Ideal Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Backannotating Parasitics to a Source Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Backannotating from the Command Line Using Calibre xACT 3D Direct Netlisting. . . . 123
Backannotating from the Command Line Using the Calibre xACT 3D PDB Flow. . . . . . 124
Backannotating from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Generating a Capacitance Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Net-to-Net Coupling Capacitance Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Reporting Coupled Capacitance from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . 127
Reporting Coupled Capacitance from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . 128
Point-to-Point Resistance Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Reporting Net Resistance from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Reporting Net Resistance from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Top Level Only Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Chapter 11
Handling Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Hierarchy Control with Xcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Importing GDS Cell Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Slotted Metal Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Metal Fill Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Modeling Multiple Ground Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Chapter 12
Tuning Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Calibre xACT Processing Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Extracting Net Resistance By Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Device Extraction Without Parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Select-Net Extraction with Calibre xACT and Calibre xACT 3D. . . . . . . . . . . . . . . . . . . . . 150
Select-Layer Extraction with Calibre xACT and Calibre xACT 3D . . . . . . . . . . . . . . . . . . . 152
Extracting Particular Nets with the Calibre xACT 3D PDB flow . . . . . . . . . . . . . . . . . . . . . 153
Exclusion of Power and Ground Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Coupling Capacitance Output Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Grounding Coupled Capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Ignore or Extract Floating Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Resistance Extraction and PERC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Chapter 13
Controlling Netlisting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Netlisting Multiple Corners and Multiple Temperatures. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Generating Multiple Netlists With Calibre xACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Netlisting Only Direct Devices on a Selected Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Methods for Correcting Pin Swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Using the Source Based Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
How to Join a Disjoint Parasitic Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Port Names for Net Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Verification of Timing with Probe Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Chapter 14
Integration and Troubleshooting Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Setting Up For Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Invocation Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Chapter 15
Handling Parasitic On-Chip Variation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
On-Chip Variation in Parasitic Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Parasitic Extraction Techniques for On-Chip Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
In-Die Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
CMP Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Chapter 16
FS3 File Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
FS3 File Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
FS3 File Header Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Technology Layer Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Geometries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Chapter 17
Calibre xACTView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Calibre xACTView Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Calibre xACTView GUI Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Calibre xACTView Session Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
FS3 Display Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Layer Palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Axes Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Ruler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Chapter 18
Calibre xACT Tool Invocation Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Setting the CALIBRE_HOME Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Command Invocation Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
calibre -lvs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
calibre -xact. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
calibre -xact -phdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
calibre -xact -3d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
calibre -xact -tsv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
calibre -xact -3dref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
calibre -xact -fmt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
xactview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Appendix A
Reduction Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Capacitive and Resistive Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Threshold-based Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
TICER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Glossary
Index
Third-Party Information
End-User License Agreement
The Calibre xACT products consist of Calibre® xACT™, Calibre xACT 3D, Calibre xACT 3D
Reference, and Calibre xACTView.
The following sections provide an overview of the Calibre xACT product line:
Parasitic extraction runs before static timing analysis. The cycle of Place & Route, DRC,
parasitic extraction, and static timing analysis is often repeated several times.
Calibre xACT, Calibre xACT 3D, and Calibre xACT 3D Reference require clean connectivity
data. You should run these tools only after your layout passes LVS checks. If the layout is not
electrically correct, the parasitic results will not apply to the final design.
After running parasitic extraction, you may choose to simulate your design. You can also use
the reports to identify the most affected nets. Usually the cycle of physical verification, parasitic
extraction, and post-layout verification is repeated several times before tapeout.
then used for static timing analysis.Although the Calibre xACT transistor-based (custom) flows
only support 16nm and smaller processes, the Calibre xACT cell-based (digital) flows support
all foundries and process geometries for which Calibre® xRC™ or Calibre xACT extraction
rules are available.
Use Calibre xACT to calculate the parasitics in your design. Parasitic effects can slow down
signals or add noise in your design, among other problems.
• All required product licenses. For Calibre xACT 3D licensing information, see the
“Licensing: Parasitic Extraction Products” section of the Calibre Administrator’s Guide.
• Either the $MGC_HOME or $CALIBRE_HOME environment variables defined.
Calibre tools require that the CALIBRE_HOME environment variable be set. See
“Setting the CALIBRE_HOME Environment Variable” in the Calibre Administrator’s
Guide for details.
Run the Calibre xACT 3D tool using one of the following methods:
• From the command line using the direct netlisting flow. See “Direct Netlisting With
Calibre xACT 3D”.
• From the Calibre® Interactive™ graphical user interface. See “Getting Started: Calibre
xACT 3D Parasitic Extraction Using Calibre Interactive”.
• From the command line using the PDB flow. See “Using the Calibre xACT 3D PDB
Flow”.
The accuracy of the extracted results and the run time depend on a number of parameters, such
as the number of discretization points used to discretize the problem and the iteration stopping
criteria for the linear system solver. These parameters can be used to trade off accuracy with run
time.
In addition, Calibre xACT 3D Reference provides an option to report error estimation for the
extracted results. You can use the error estimation to decide the grid size and other parameters.
However, computing the error takes additional run time.
• Running as part of a complete extraction flow using GDSII input to produce a parasitic
netlist.
• Running standalone with an existing FS3 file to produce a capacitance matrix.
See “Getting Started: Calibre xACT 3D Reference Parasitic Extraction Using Batch Mode”.
To run the Calibre xACT 3D Reference tool with LVS you must have the following:
• The FS3 file containing the layer descriptions, 3D layout polygon descriptions, and
extraction commands for the field solver.
• The Calibre software installed.
• All required product licenses. For Calibre xACT 3D Reference licensing information,
see the “Licensing: Parasitic Extraction Products” section of the Calibre Administrator’s
Guide.
• Either the $MGC_HOME or $CALIBRE_HOME environment variables defined.
Calibre tools require that the CALIBRE_HOME environment variable be set. See
“Setting the CALIBRE_HOME Environment Variable” in the Calibre Administrator’s
Guide for details.
• The FS3 file containing the layer descriptions, 3D layout polygon descriptions, and
extraction commands for the field solver.
• A Linux machine with OpenGL installed. In order to invoke Calibre xACTView from a
remote machine, you must use a VNC software version that supports OpenGL.
• The Calibre software installed.
• All required product licenses for Calibre xACT 3D or Calibre xACT 3D Reference. For
licensing information, see the “Licensing: Parasitic Extraction Products” section of the
Calibre Administrator’s Guide. Calibre xACTView does not require a separate license.
• Either the $MGC_HOME or $CALIBRE_HOME environment variables defined.
Calibre tools require that the CALIBRE_HOME environment variable be set. See
“Setting the CALIBRE_HOME Environment Variable” in the Calibre Administrator’s
Guide for details.
Run the Calibre xACTView tool from the command line. See “Calibre xACTView” for details.
The Calibre xACT extraction flow for advanced process nodes offers many possible
customizations based on your particular needs.
Figure 2-1 illustrates the Calibre xACT direct netlisting extraction flow.
Caution
SVRF rule files that contain deprecated or obsolete SVRF statements are not guaranteed to
work properly with Calibre xACT.
Tip
Shell scripts are an excellent way to run Calibre from the command line. A script can
explicitly set environment variables and record invocation combinations you use frequently.
Calibre xACT supports DSPF, SPEF, and HSPICE netlist formats. When
performing extraction with source names be sure to specify the SOURCENAMES
keyword.
• PEX Extract Exclude specifies to exclude the named nets from parasitic extraction.
When performing extraction with source names be sure to specify the
SOURCENAMES keyword.
• PEX Extract Temperature specifies a temperature dependency for the extracted
resistance.
• PEX Reduce Analog specifies to perform reduction of extracted data from analog
designs.
• Unit Capacitance specifies the capacitance scale factor for device calculations. This
may already be defined in your rules.C file.
• Include specifies to include statements from the specified rule file in the top-level
rule file.
3. Save and close the file.
Prerequisites
• You have met the requirements outlined in Transistor-Level Extraction Setup.
• You have created a top-level control file. See Creating a Top-level Control File for an
example. Note: in the example, you must replace the SOURCENAMES keyword
specified for the PEX Netlist and PEX Extract Exclude statements with the
LAYOUTNAMES keyword to perform extraction with layout names.
Procedure
1. Verify the top-level control file contains the following statements to specify the
“inputs”, a layout database:
• Layout System
• Layout Path
• Layout Primary
The layout database, also called the design, is a physical representation of your IC. The
Calibre xACT software can read GDS, OASIS, and LEF/DEF formats.
2. Determine which parasitics you need. The choices are:
• Resistance (-r) — Exclusively writes resistance models into the netlist.
• Lumped Capacitance (-c) — Exclusively writes capacitance models into the
netlist.
• Resistance and Distributed Capacitance (-rc) — Specifies distributed RC
parasitic extraction and writes the distributed RC models into the netlist.
• Resistance with Distributed Capacitance and Coupled Capacitance between
nets (-rcc) — Specifies R-coupled-C extraction and writes fully-coupled models in
to the netlist. This is the default if no option is specified.
There is a trade-off between the amount of detail and how long the netlist takes to
simulate. For example, a netlist with parasitics as lumped capacitance (-c) takes less
time to simulate than one with coupled capacitance (-rcc) between nets, which takes less
time than one with coupled capacitance between nets including floating nets.
3. Determine the output you need.
• Netlists are useful for simulation. The format you need depends on your simulator.
Only one format of netlist is generated at a time. Calibre xACT supports DSPF,
SPEF, and HSPICE netlist formats.
• Reports are useful for identifying the nets or cells most affected by parasitics, or for
post-processing in spreadsheets or with scripts. Reports can be generated at the same
time as netlists.
4. Output the netlist or report(s). Using the top-level control file, xact_t.rules, run Calibre
xACT to create the DSPF netlist:
calibre -xact -rcc xact_t.rules
The output depends on what values are set in the top-level control file and what
parasitics were specified on the command line.
Results
Calibre xACT ends the transcript with a summary of errors and warnings. Be sure to check for
any errors; these invalidate results.
The working directory also contains the requested netlist and reports. For this example, the tool
creates a netlist named netlist.dspf.
Related Topics
calibre -xact
Creating a Top-level Control File
Prerequisites
• You have met the requirements outlined in Transistor-Level Extraction Setup.
• You have created the top-level control described in Creating a Top-level Control File.
Procedure
1. Verify the SVRF rule file contains the following statements to specify the “inputs”, a
layout database, and source netlist.
a. Layout System, Layout Path, and Layout Primary statements specify the layout
database.
The layout database, also called the design, is a physical representation of your IC.
You identify this database in your SVRF rule file. The Calibre xACT software can
read GDS, OASIS, and LEF/DEF formats.
b. Source System, Source Path, and Source Primary statements specify the source
netlist.
If you require source (schematic) names in the generated netlist, you need the source
netlist. This netlist must be in SPICE format and is identified in the SVRF rule file.
You must also specify the SOURCENAMES keyword for the PEX Netlist
statement, as well as for statements PEX Extract Exclude or PEX Extract Include
when used.
2. Determine which parasitics you need. The choices are:
• Resistance (-r) — Exclusively writes resistance models into the netlist.
• Lumped Capacitance (-c) — Exclusively writes capacitance models into the
netlist.
• Resistance and Distributed Capacitance (-rc) — Specifies distributed RC
parasitic extraction and writes the distributed RC models into the netlist.
• Resistance with Distributed Capacitance and Coupled Capacitance between
nets (-rcc) — Specifies R-coupled-C extraction and writes fully-coupled models in
to the netlist. This is the default if no option is specified.
There is a trade-off between the amount of detail and how long the netlist takes to
simulate. For example, a netlist with parasitics as lumped capacitance (-c) takes less
time to simulate than one with coupled capacitance (-rcc) between nets, which takes less
time than one with coupled capacitance between nets including floating nets.
3. Determine the output you need.
• Netlists are useful for simulation. The format you need depends on your simulator.
Only one format of netlist is generated at a time. Calibre xACT supports DSPF,
SPEF, and HSPICE netlist formats.
• Reports are useful for identifying the nets or cells most affected by parasitics, or for
post-processing in spreadsheets or with scripts. Reports can be generated at the same
time as netlists.
4. Use the top-level control file, xact_t.rules, to run Calibre LVS and perform device
recognition:
calibre -lvs -hier xact_t.rules
The output is controlled by rules specified in the top-level control file and parasitics
specified on the command line.
Results
Calibre xACT ends the transcript with a summary of errors and warnings. Be sure to check for
any errors; these invalidate results.
The working directory contains the requested netlist and reports. The example top-level control
file, xact_t.rules, creates a netlist named netlist.dspf.
Related Topics
calibre -xact
Creating a Top-level Control File
The Calibre xACT digital extraction flow generates either SPEF or DSPF file output.
This chapter describes the setup and execution of the Calibre xACT tool when extracting digital
designs.
Note
The Calibre xACT digital extraction flow does not require the rules.xact file for
processes larger than 10nm, but will apply it if it is included.
Caution
SVRF rule files that contain deprecated or obsolete SVRF statements are not
guaranteed to work properly with Calibre xACT.
The type of required design files depends on which Calibre xACT digital flow you are
using. The supported Calibre xACT digital flows are:
o Flat LEF/DEF Extraction
o Block-by-block Hierarchical Extraction
o Full Hierarchical LEF/DEF Extraction
o Extraction with dummy (metal) fill or virtual fill (GDS, OASIS, and DEF formats):
• GDS and OASIS Metal Fill Extraction
• DEF Metal Fill Extraction
o Extraction With GDS Macrocells
o Multi-Temperature Extraction
o Multi-Corner Multi-Temperature Extraction
For more information on these flows see “Types of Extraction“.
• Capacitance Order
• Layout Path
• Layout Primary
• Layout System
• Layout Case
• Mask SVDB Directory
• Source Case
Procedure
1. Create a master directory for your design, master_dir.
2. Create a rules directory containing the following SVRF parasitic extraction rule files for
the target technology and metal scheme:
• capacitance rule file (rules.C)
• resistance rule file (rules.R)
• xact rule file (rules.xact) — required for processes smaller than 10nm.
3. Create a design data directory containing the LEF and DEF files (or links to them) for
your design, digital_design_dir.
4. To generate the control files and run script needed to run Calibre xACT, use the Calibre
xACT digital flow preparation script, $MGC_HOME/pkgs/icxc/unrlsd/xactsocprep.sh.
For example, execute the xactsocprep.sh script from the master_dir directory:
$MGC_HOME/pkgs/icxc/unrlsd/xactsocprep.sh d
This script traverses all of the design files including hierarchical instantiations and
creates the following control files and run scripts needed by Calibre xACT:
• xactrun — The Calibre xACT runscript.
• xact.svrf — The top-level rule file.
• xact_layers.svrf — Rule file containing layer definitions and connect commands.
Review each of these files and change any settings if needed.
5. To perform the extraction, execute the xactrun run script:
./xactrun
This run script contains the command line similar to the following:
calibre -xact parasitic_switch SVRF_file
Results
Calibre xACT notifies you when it has successfully completed. Be sure to check the transcript
for any other errors which may invalidate results.
It is important to check the transcript from your first run with a new design and technology to
make sure the layers are mapped correctly. Calibre xACT is usually able to automatically map
layer names in your LEF and DEF files to layer names in the SVRF rule file, even if the names
are different. If it cannot map LEF/DEF layers in the rule file the tool generates warnings. For
example:
--- Processing LEF file
design/lef/tech.lef
WARNING: M1 not found in rules. Layer discarded
WARNING: M2 not found in rules. Layer discarded
WARNING: M3 not found in rules. Layer discarded
WARNING: M4 not found in rules. Layer discarded
WARNING: M5 not found in rules. Layer discarded
WARNING: M6 not found in rules. Layer discarded
WARNING: M7 not found in rules. Layer discarded
WARNING: The following SVRF layers did not map to LEF layers in the
generated PTF file:
--No parasitic information will be present for these layers.
metal7 -- Conductor layer
metal6 -- Conductor layer
metal5 -- Conductor layer
metal4 -- Conductor layer
metal3 -- Conductor layer
metal2 -- Conductor layer
metal1 -- Conductor layer
Here the first and last group of warnings indicate that LEF/DEF layers (M1-M7) failed to map
onto SVRF layer names (metal1-metal7). The middle warning indicates that none of the via
layers were mapped. In this case you must give Calibre xACT some help to map the layers
correctly, otherwise it will not extract any parasitic information for the design. To make sure the
layers are mapped correctly, add the following lines to your layer definition rule file:
PEX DEF MAP M1 metal1
PEX DEF MAP M2 metal2
PEX DEF MAP M3 metal3
PEX DEF MAP M4 metal4
PEX DEF MAP M5 metal5
PEX DEF MAP M6 metal6
PEX DEF MAP M7 metal7
PEX DEF MAP VIA1 via1
PEX DEF MAP VIA2 via2
PEX DEF MAP VIA3 via3
PEX DEF MAP VIA4 via4
PEX DEF MAP VIA5 via5
PEX DEF MAP VIA6 via6
Calibre xACT is instructed to map the LEF/DEF layer name given by M1 to its corresponding
SVRF layer name (metal1).
Weak connections occur when a component pin has an inbound and outbound connection in two
different locations on the port, so the net is disjoint at the top level. If nets have disjoint
segments, Calibre xACT generates warnings similar to the following:
WARNING: No reduction for net ’net1’ because it has a disconnected
component.
In this case no reduction occurs for these wires. To bridge these opens and ensure reduction is
performed for these nets, include the PEX Report Opens statement in your rule file.
Related Topics
calibre -xact
The Calibre® Interactive™ PEX Graphical User Interface (GUI) provides an interface to the
Calibre xACT 3D tool.
The following sections describe how to use Calibre Interactive to perform parasitic extraction
with Calibre xACT 3D using the PDB flow:
Note
The steps in this chapter assume the Calibre software is already installed and licensing is
properly set up.
Prerequisites
Environment correctly set up and configured:
Procedure
1. Click Rules.
2. Specify the run directory name. You can use the Browse (…) button to select the run
directory name from a list.
3. Specify the rule file name. You can use the Browse button to select the rule filename
from a list. You can use the View button to view or edit the rule file.
4. Click Load. This loads GUI fields and sets GUI options based on rule file data.
Figure 4-1. Loading Rules in Calibre Interactive
Tip
After you load a rule file, any information you specify in the GUI supersedes
information in your loaded rule file.
Input Specification
The source of your layout data varies depending on how you invoked Calibre Interactive and the
type of extraction you plan to run.
Procedure
Note
You do not need to perform these steps for flat extraction.
For xACT 3D, choose the accuracy (200 or 600). The default is 200. Setting the
accuracy to 600 is more accurate, but will significantly increase runtime.
3. Select the extraction level (Transistor Level, Gate Level, or Hierarchical) from the first
button on the Extraction Type: line.
Transistor Level is also known as “flat” extraction. Any cell placements are flattened
into the top cell.
Gate Level extracts parasitics for geometries within the top cell, down to the boundary
of the xcells. Xcells are specified in the file provided to the Inputs > H-Cells tab.
Hierarchical extracts parasitics for each identified xcell (not each cell placement) and
the top cell. All geometries have parasitics extracted.
See the “Types of Extraction” chapter for more details.
4. Select the desired extraction type from the second button on the Extraction Type line.
Your choices are combinations of R (resistance), C (intrinsic capacitance), and CC
(coupled capacitance). Valid choices for use with the Calibre xACT tool are R + C +
CC, R + C, R, and No R/C.
R + C extracts coupled capacitance between nets but represents the value by adding it to
the intrinsic capacitance.
5. Select the Inductance option to extract self-inductance and mutual-inductance parasitics.
This requires an additional Calibre xL license to run. Inductance extraction is covered in
detail in the Calibre xL User’s Manual.
Note
The second button on the Extraction Type line controls the information that is
extracted into the PDB. The Setup > PEX Options panel includes a Parasitics to
output to RC netlist: field that controls the information from the PDB that is displayed in
the netlist. In other words, you can set up your netlist to display a subset of what you
have extracted to the PDB.
Tip
Specify source net names if you chose the SCHEMATIC option for naming nets in
the extracted netlist; specify layout net names if you chose LAYOUT naming.
Tip
All left panel buttons must be green before clicking Run PEX. A button changes
from red to green when you have specified all required information associated with
that button.
2. After the parasitic netlist is created, you can use Calibre RVE to highlight parasitic
elements in the layout viewer.
To run Calibre RVE, the SVDB must have RVE cross-references. This is set in the
Outputs > SVDB tab, and is on by default. For detailed information on using the
Calibre Results Viewing Environment (RVE) for PEX, see “Using Calibre RVE for
PEX” in the Calibre Interactive and Calibre RVE User’s Manual.
Procedure
1. Select the PEX Options in the Setup menu.
2. Select the PEX Options button in the left panel to display the options panel. Selecting
the PEX Options item in the Setup menu adds the PEX Options button to the left panel
button list.
3. Table 4-4 lists the capabilities available in PEX Options.
The Calibre xACT 3D parasitic extraction tool can generate a netlist in a single step or using a
three step PDB batch process.
Figure 5-1 illustrates the Calibre xACT 3D direct netlisting extraction flow.
Figure 5-2 illustrates the Calibre xACT 3D PDB extraction flow. Each step has many possible
customizations based on your particular needs.
• A capacitance rule file. Calibre xRC, Calibre xACT 3D, and Calibre xACT use the same
capacitance rule file.
• A resistance rule file. Calibre xRC, Calibre xACT 3D, and Calibre xACT use the same
resistance rule file.
For the direct netlisting extraction flow, use calibrated rule files generated with the
2014.2 or newer versions of xCalibrate.
For the PDB extraction flow, use calibrated rule files generated with the 2008.4 or newer
versions of xCalibrate. As of the 2012.3 release, using calibrations and rule files
generated with previous versions will issue the following warning:
WARNING: Calibre xACT 3D does not support pre-2008.4 release
calibrations. Extraction results may be unexpected.
• An SVRF file with layers, connectivity, devices, and parasitic calculations is specified.
Caution
SVRF rule files that contain deprecated or obsolete SVRF statements are not guaranteed to
work properly with Calibre xACT.
Tip
Shell scripts are an excellent way to run Calibre from the command line. A script can
explicitly set environment variables and record invocation combinations you use frequently.
• Layout Primary
The layout database, also called the design, is a physical representation of your IC. The
Calibre xACT software can read GDS, OASIS, and LEF/DEF formats.
2. Determine which parasitics you need. The choices are:
• Resistance (-r) — Exclusively writes resistance models into the netlist.
• Lumped Capacitance (-c) — Exclusively writes capacitance models into the
netlist.
• Resistance and Distributed Capacitance (-rc) — Specifies distributed RC
parasitic extraction and writes the distributed RC models into the netlist.
• Resistance with Distributed Capacitance and Coupled Capacitance between
nets (-rcc) — Specifies R-coupled-C extraction and writes fully-coupled models in
to the netlist. This is the default if no option is specified.
There is a trade-off between the amount of detail and how long the netlist takes to
simulate. For example, a netlist with parasitics as lumped capacitance (-c) takes less
time to simulate than one with coupled capacitance (-rcc) between nets, which takes less
time than one with coupled capacitance between nets including floating nets.
3. Determine the output you need.
• Netlists are useful for simulation. The format you need depends on your simulator.
Only one format of netlist is generated at a time. Calibre xACT supports DSPF,
SPEF, and HSPICE netlist formats.
• Reports are useful for identifying the nets or cells most affected by parasitics, or for
post-processing in spreadsheets or with scripts. Reports can be generated at the same
time as netlists.
4. Output the netlist or report(s). For example, using the top-level control file you created,
xact_3d.rules, run Calibre xACT 3D to create a DSPF netlist:
calibre -xact -3d -rcc xact_3d.rules
The output depends on what values are set in the top-level control file and what
parasitics were specified on the command line.
Results
Calibre xACT ends the transcript with a summary of errors and warnings. Be sure to check for
any errors; these invalidate results.
The working directory also contains the requested netlist and reports. For this example, the tool
creates a netlist named netlist.dspf.
Note
If your database is in LEF/DEF format, only layout names are supported. The PHDB
must be created with calibre -xact -phdb.
For the output to be used in extraction, directory_path must match that specified in
the Mask SVDB Directory statement, and filename must be the cell name of the
Layout Primary statement.
The PHDB is only generated once per layout. You do not need to regenerate the PHDB
unless your design changes, or you modify the SVRF connectivity rules.
Results
Calibre notifies you when it has successfully completed. Check the transcript for any errors.
After creating the PHDB, these files are created:
• PHDB — The PHDB is stored in the Standard Verification Database (SVDB) and used
in creating the PDB.
• LVS Report file (default: lvs.rep) — If you used Calibre® nmLVS™, it writes the
results of the LVS run to this ASCII file. The file is not used in parasitic extraction.
• LVS Extraction file (default: lvs.rep.ext) — If you used Calibre nmLVS, it writes the
results of the circuit extraction to this file. The file is not used in parasitic extraction.
• layout netlist — This is the SPICE netlist that the Calibre xACT tool uses for input in
the next step. This file is named after the top level cell.
Related Topics
calibre -xact -phdb
Step 2 — Creating the Parasitic Database
There are many decisions that affect how you create the PDB. The most important is speed
versus level of detail, which affects accuracy. Parasitic extraction for an entire chip can take
from hours to more than a day. (The exact duration depends on the capabilities of the computer
on which you run the analysis and the number of nets in the IC design.)
Prerequisites
• PHDB created in Step 1 — Creating the PHDB.
If you are doing multiple runs, you must use the same PHDB each time. The PHDB
must be in the SVDB directory; you cannot separately specify the location.
Note
If you are performing multiple extractions on the same design into a single PDB,
the extractions need to all be the same type (for example, all gate-level).
Transistor-level (“flat”) extraction is the most accurate, but also slow. For large designs,
flat extraction may produce netlists that are too large to simulate. However, where
accuracy is critical, transistor-level extraction on a limited section of the design provides
detailed information.
a. If you decide on gate-level or full hierarchical extraction, construct an xcell list. See
“Hierarchy Control with Xcells” on page 135 for details.
b. If you decide on select-net extraction, add a PEX Extract Include statement to your
rule file.
c. If you decide to extract a limited section of the design, and you are performing
resistance and distributed capacitance (-rc) or resistance with distributed capacitance
and coupled capacitance between nets (-rcc) extraction where highest accuracy is
important, you can control the accuracy by adding the PEX Fieldsolver Mode
statement to your rule file. Accuracy can be set to 200 or 600. The default setting for
this statement is 200. Setting the accuracy to 600 is more accurate, but will
significantly increase runtime.
3. Run the extraction.
The PDB step always contains at least the following:
calibre -xact -3d parasitic_switch SVRF_file
The above example would perform a transistor-level extraction for resistance and
distributed capacitance using the settings specified in the file rules.svrf, and any files it
included. More simple examples are described in “Basic Extraction Methods”.
4. If you need additional detail on parts of the design (for example, getting precise
couplings for critical nets), run extraction again using the same files.
For example:
calibre -xact -3d -rcclm -select rules.svrf
Table 5-1 shows common options for the PDB creation step. The decisions you made
earlier let you choose among the extraction and parasitic options. Only one extraction
option and one parasitic option can be specified per run.
Table 5-1. Invocation Line for PDB Step in Calibre xACT 3D PDB Flow
Required Extraction Options1 Parasitic Options1 Additional Options Required
no switch (flat) -r -noasic
calibre -xact -3d -xcell xcell_file -rc -select rule_file
-xcell xcell_file -full -rcc
1. Select only one from this column.
The output depends on what values are set in the SVRF file and what parasitics were
extracted.
For example, if the PDB contains RC values and the SVRF specifies “PEX Netlist
design.spf SPEF PRIMETIME”, Calibre xACT 3D writes out a SPEF netlist suitable for
the PrimeTime® static timing analysis program containing distributed resistance and
capacitance parasitic models. Any specified reports are also created.
The formatter provides the following additional options for specifying an output netlist:
Results
Calibre xACT 3D ends the transcript with a summary of errors and warnings. Be sure to check
for any errors; these invalidate results.
The working directory also contains the requested netlist and reports.
Related Topics
calibre -xact -fmt
Controlling Netlisting
The Calibre xACT TSV parasitic extraction process is a specialized flow for Through-Silicon-
Via (TSV) extraction that updates the parasitic database (PDB) generated by Calibre xACT 3D
with additional TSV parasitic information and couplings for parasitic analysis.
Figure 6-1 shows the four steps of the complete TSV parasitic extraction flow using Calibre
xACT 3D. Each step has many possible customizations based on your particular needs.
Caution
SVRF rule files that contain deprecated or obsolete SVRF statements are not guaranteed to
work properly with Calibre xACT.
Tip
Shell scripts are an excellent way to run Calibre from the command line. A script can
explicitly set environment variables and record invocation combinations you use frequently.
The layout database, also called the design, is a physical representation of your IC.
You identify this database in your SVRF rule file.
• If you require source or schematic names in the generated netlist, use Source
System, Source Path, and Source Primary statements to specify the source netlist.
If you require source (schematic) names in the generated netlist, you will need the
source netlist. This netlist must be in SPICE format and is identified in the SVRF
rule file.
2. Create the PHDB.
• To use source names:
calibre -lvs -hier -spice directory_path/filename.sp SVRF_file
For the output to be used in extraction, directory_path must match that specified in
the Mask SVDB Directory statement, and filename must be the cell name of the
Layout Primary statement.
• To use layout names:
calibre -xact -phdb SVRF_file
The PHDB is only generated once per layout. You do not need to regenerate the PHDB
unless your design changes, or you modify the SVRF connectivity rules.
Results
Calibre notifies you when it has successfully completed. Check the transcript for any errors.
After creating the PHDB, these files are created:
• PHDB — The PHDB is stored in the Standard Verification Database (SVDB) and used
in creating the PDB.
• LVS Report file (default: lvs.rep) — If you used Calibre nmLVS, it writes the results
of the LVS run to this ASCII file. The file is not used in parasitic extraction.
• LVS Extraction file (default: lvs.rep.ext) — If you used Calibre nmLVS, it writes the
results of the circuit extraction to this file. The file is not used in parasitic extraction.
• layout netlist — This is the SPICE netlist that the Calibre xACT tool uses for input in
the next step. This file is named after the top level cell.
Related Topics
calibre -lvs
calibre -xact -phdb
Prerequisites
• PHDB created in Step 1 — Creating the PHDB.
If you are doing multiple runs, you must use the same PHDB each time. The PHDB
must be in the SVDB directory; you cannot separately specify the location.
• SVRF rule file.
This should be the same file as used in Step 1.
Procedure
1. Determine which parasitics you need. The choices are:
• Resistance and distributed capacitance (-rc)
• Resistance with distributed capacitance and coupled capacitance between nets (-rcc)
There is a trade-off between the amount of detail and how long the netlist takes to
simulate. For example, a netlist with parasitics as lumped capacitance takes less time to
simulate than one with coupled capacitance between nets, which takes less time than one
with coupled capacitance between nets including floating nets.
2. Determine how much of the design you need to extract.
The less of the design you perform parasitic extraction for, the faster simulation will run.
Your choices are:
• “Flat” transistor-level extraction, which flattens all design hierarchy and extracts
parasitics for everything not explicitly excluded. This is the default.
• “Select-net” extraction, which extracts only the nets explicitly specified. Use this
with iterative extraction to handle critical nets: first most of the design is extracted
with minimal detail, and then extraction is run again selecting the critical nets with
more parasitic detail.
Transistor-level (“flat”) extraction is the most accurate, but also slow. For large designs,
flat extraction may produce netlists that are too large to simulate. However, where
accuracy is critical, transistor-level extraction on a limited section of the design provides
detailed information.
3. Run the extraction without the fieldsolver.
performs a transistor-level extraction for resistance and distributed capacitance using the
settings specified in the file rules.svrf and any files it includes.
Results
Calibre xACT 3D ends the transcript with a summary of errors and warnings. Be sure to check
for any errors; these invalidate results.
This step creates the PDB directory in the SVDB directory. The PDB stores the parasitic models
for each extracted net. These models consist of the net’s name and the collection of device pins,
ports, parasitic delays, and circuit elements.
Related Topics
Command Invocation Reference
Types of Extraction
Producing Parasitic Models
Procedure
1. Add TSV network information to the PDB with the following command:
calibre -xact -tsv
2. The PDB is updated to contain TSV parasitic information and couplings for parasitic
analysis.
Caution
The PEX Netlist 3DIC statement cannot be specified when the -tsv command line
option is used.
Results
Calibre xACT 3D ends the transcript with a summary of errors and warnings. Be sure to check
for any errors; these invalidate results.
This step updates the PDB directory in the SVDB directory. The updated PDB stores additional
TSV parasitic models for each extracted net. These models consist of the net’s name and the
collection of device pins, ports, parasitic delays, and circuit elements.
Related Topics
calibre -xact -tsv
Producing Parasitic Models
Procedure
1. Determine the output you need.
• Reports are useful for identifying the nets or cells most affected by parasitics, or for
post-processing in spreadsheets or with scripts. Reports can be generated at the same
time as netlists.
• Netlists are useful for simulation. The format (SPICE, DSPF, CalibreView…) your
format depends on your simulator. Only one format of netlist is generated at a time.
2. Verify the SVRF rule file contains the necessary statements for your output.
• Reports: Any of the following:
• Netlist: The format is specified with a PEX Netlist statement, depending on the
parasitics that were extracted.
The output depends on what values are set in the SVRF file and what parasitics were
extracted.
For example, if the PDB contains RC values and the SVRF specifies “PEX Netlist
design.spf SPEF PRIMETIME”, Calibre xACT 3D writes out a SPEF netlist suitable for
the PrimeTime® static timing analysis program containing distributed resistance and
capacitance parasitic models. Any specified reports are also created.
The formatter provides the following additional options for specifying an output netlist:
Results
Calibre xACT 3D ends the transcript with a summary of errors and warnings. Be sure to check
for any errors; these invalidate results. The working directory also contains the requested netlist
and reports.
Related Topics
calibre -xact -fmt
Controlling Netlisting
Caution
SVRF rule files that contain deprecated or obsolete SVRF statements are not guaranteed to
work properly with Calibre xACT.
Tip
Shell scripts are an excellent way to run Calibre from the command line. A script can
explicitly set environment variables and record invocation combinations you use frequently.
If you require source (schematic) names in the generated netlist, you will need the
source netlist. This netlist must be in SPICE format and is identified in the SVRF
rule file.
2. Create the PHDB.
• To use source names:
calibre -lvs -hier -spice directory_path/filename.sp SVRF_file
For the output to be used in extraction, directory_path must match that specified in
the Mask SVDB Directory statement, and filename must be the cell name of the
Layout Primary statement.
• To use layout names:
calibre -xact -phdb SVRF_file
The PHDB is only generated once per layout. You do not need to regenerate the PHDB
unless your design changes, or you modify the SVRF connectivity rules.
Results
Calibre notifies you when it has successfully completed. Check the transcript for any errors.
After creating the PHDB, these files are created:
• PHDB — The PHDB is stored in the Standard Verification Database (SVDB) and used
in creating the PDB.
• LVS Report file (default: lvs.rep) — If you used Calibre nmLVS, it writes the results
of the LVS run to this ASCII file. The file is not used in parasitic extraction.
• LVS Extraction file (default: lvs.rep.ext) — If you used Calibre nmLVS, it writes the
results of the circuit extraction to this file. The file is not used in parasitic extraction.
• layout netlist — This is the SPICE netlist that the Calibre xACT tool uses for input in
the next step. This file is named after the top level cell.
Related Topics
calibre -lvs
calibre -xact -phdb
Prerequisites
• PHDB created in Step 1 — Creating the PHDB.
If you are doing multiple runs, you must use the same PHDB each time. The PHDB
must be in the SVDB directory; you cannot separately specify the location.
• SVRF rule file.
This should be the same file as used in Step 1.
Procedure
1. Determine which parasitics you need. The choices are:
• Resistance and distributed capacitance (-rc)
• Resistance with distributed capacitance and coupled capacitance between nets (-rcc)
There is a trade-off between the amount of detail and how long the netlist takes to
simulate. For example, a netlist with parasitics as lumped capacitance takes less time to
simulate than one with coupled capacitance between nets, which takes less time than one
with coupled capacitance between nets including floating nets.
2. Determine how much of the design you need to extract.
The less of the design you perform parasitic extraction for, the faster simulation runs.
Your choices are:
• “Flat” transistor-level extraction, which flattens all design hierarchy and extracts
parasitics for everything not explicitly excluded. This is the default.
• “Select-net” extraction, which extracts only the nets explicitly specified. Use this
with iterative extraction to handle critical nets: first most of the design is extracted
with minimal detail, and then extraction is run again selecting the critical nets with
more parasitic detail.
Transistor-level (“flat”) extraction is the most accurate, but also slow. For large designs,
flat extraction may produce netlists that are too large to simulate. However, where
accuracy is critical, transistor-level extraction on a limited section of the design provides
detailed information.
a. If you decide on select-net extraction, add a PEX Extract Include statement to your
SVRF rule file.
b. If you want to control the settings used by the Calibre xACT 3D Reference field
solver, add a PEX 3DReference statement to your SVRF rule file.
3. Run the extraction.
The PDB step always contains at least the following:
calibre -xact -3dref parasitic_switch SVRF_file
performs a transistor-level extraction for resistance and distributed capacitance using the
settings specified in the file rules.svrf, and any files it includes. More simple examples
are shown in “Basic Extraction Methods”.
4. If you need additional detail on parts of the design (for example, getting precise
couplings for critical nets), run extraction again using the same files.
For example:
calibre -xact -3dref -rcc -select rules.svrf
Table 7-1 shows common options for the PDB creation step. The decisions you made
earlier let you choose among the extraction and parasitic options. Only one extraction
option and one parasitic option can be specified per run.
Results
Calibre xACT 3D Reference ends the transcript with a summary of errors and warnings. Be sure
to check for any errors; these invalidate results.
This step creates the PDB directory in the SVDB directory. The PDB stores the parasitic models
for each extracted net. These models consist of the net’s name and the collection of device pins,
ports, parasitic delays, and circuit elements.
Related Topics
calibre -xact -3dref
Types of Extraction
Producing Parasitic Models
Prerequisites
• PHDB created in Step 1 — Creating the PHDB.
The PHDB contains connectivity information.
• PDB created in Step 2 — Creating the Parasitic Database Using Calibre xACT 3D
Reference.
The PDB contains the parasitic information.
• SVRF rule file.
This should be the same file as used in Steps 1 and 2.
Procedure
1. Determine the output you need.
• Reports are useful for identifying the nets or cells most affected by parasitics, or for
post-processing in spreadsheets or with scripts. Reports can be generated at the same
time as netlists.
• Netlists are useful for simulation. The format (SPICE, DSPF, CalibreView…) your
format depends on your simulator. Only one format of netlist is generated at a time.
2. Verify the SVRF rule file contains the necessary statements for your output.
• Reports: Any of the following
• Netlist: The format is specified with a PEX Netlist statement, depending on the
parasitics that were extracted.
The output depends on what values are set in the SVRF file and what parasitics were
extracted.
For example, if the PDB contains RC values and the SVRF specifies “PEX Netlist
design.spf SPEF PRIMETIME”, Calibre xACT 3D writes out a SPEF netlist suitable for
the PrimeTime static timing analysis program containing distributed resistance and
capacitance parasitic models. Any specified reports are also created.
The formatter provides the following additional options for specifying an output netlist:
Results
Calibre xACT 3D ends the transcript with a summary of errors and warnings. Be sure to check
for any errors; these invalidate results. The working directory also contains the requested netlist
and reports.
Related Topics
calibre -xact -fmt
Controlling Netlisting
Tip
Shell scripts are an excellent way to run Calibre from the command line. A script can
explicitly set environment variables and record invocation combinations you use frequently.
Prerequisites
• An FS3 file either generated by Calibre xACT 3D or created by hand.
Procedure
Produce the capacitance matrix.
The Calibre xACT extraction engine is able to extract interconnect parasitics in a variety of
ways. For example, Hierarchical extraction is usually faster and requires less memory; the
hierarchical netlists it creates are also smaller than equivalent non-hierarchical netlists and
easier to simulate.
This chapter provides descriptions of various types of extraction.
The other consideration is the size of the produced data and netlist. Large designs may require
several gigabytes of memory for the PHDB and PDB. Flat extraction requires more space than
any form of hierarchical extraction.
Table 8-1 lists commonly used extraction flows and identifies which Calibre xACT tools
support them.
Related Topics
Creating a Transistor-Level Netlist with Calibre xACT
all other layers are extracted with the global parasitic model. The specified layers must be
original or derived layers.
Related Topics
Calibre xACT Processing Control
Extracting Net Resistance By Layer
In the NETLIST_CONTROL section, use the NETLIST: directive to specify the netlist name
and format. You can also include the NET: directive to control extraction on a specific net. If
NET: is not specified then all nets are used. You can specify one or more NETLIST: directives.
Specifying multiple NETLIST: directives generates the netlists simultaneously in a single run.
Related Topics
Calibre xACT Processing Control
Generating Multiple Netlists With Calibre xACT
3D Select Extraction
3D select extraction (-3dselect) extracts all nets selected for Calibre xACT and a subset of nets
defined for Calibre xACT 3D, and combines the results into a single parasitic netlist. Use this
flow for high-accuracy extraction of critical nets with field solver accuracy on all layers.
The command line option -3dselect activates the hybrid xACT/xACT 3D flow. You can specify
the nets to be extracted by using either the PEX Extract Include or PEX Extract Exclude
statement. If neither statement is specified, then all nets are extracted. The subset of nets to be
extracted by Calibre xACT 3D are defined with PEX Fieldsolver Mode NETS statement. The
extraction results from both tools are combined and written to the same netlist.
All layers on all nets are extracted by the field solver with the specified field solver mode of
600.
If PEX Fieldsolver Mode statement is specified with the NETS keyword and the -3dselect
option is specified on the command line, for example:
All layers on net “clk” are extracted with field solver mode 600. All other nets are extracted
Calibre xACT.
If PEX Fieldsolver Mode statement is specified with the NETS keyword and the -3dselect
option is specified on the command line, for example:
All nets are extracted by the field solver with mode 200 except for net “B”. Net B is extracted
with Calibre xACT. Nets “A” and “Z” are extracted with mode 600.
The -3dselect option is not supported with the -3d, -full option, or -3d -pdb (Calibre xACT 3D
PDB extraction flow).
• In each of the SVRF control files, set the DEF “DESIGN” name of each block using the
Layout Primary statement. For example:
LAYOUT PRIMARY “subBlockAlpha”
• Use the Layout Path statement to define the name of the LEF technology file plus the
name of the LEF files for the leaf cells (cell library plus hard IP blocks), and the name of
the DEF file for the sub-block that you are extracting. For example:
LAYOUT PATH “myTechFile.lef”
“myCellLibrary.lef”
“subBlockAlpha.def”
• Run Calibre xACT using this command file, then change the name of the DEF file to
point to the next hierarchical block. Then run it again.
• To extract the top-level DEF file, you need LEF file(s) containing macro definitions of
each of the hierarchical sub-blocks in the design. Including LEF macros for the sub-
blocks and excluding their DEF designs is equivalent to telling Calibre xACT to black
box the hierarchical sub-blocks. Be sure to change the name of the top cell to make sure
the tool can find it. For example:
LAYOUT PRIMARY “myTopCell”
LAYOUT PATH “myTechFile.lef”
“myCellLibrary.lef”
“subBlockAlpha.lef
“subBlockBravo.lef”
“subBlockCharlie.lef”
“myTopLevel.def”
• This flow generates a SPEF file for each sub-block, plus a SPEF file for the top level.
Make sure that you rename the SPEF files after each iteration. Otherwise they will
overwrite each other.
• Ensure that the Layout Path statement in your top-level SVRF control file includes the
names of all the DEF files in your hierarchy. The Layout Path statement must also name
all of the LEF files that describe the leaf cells (cell library plus any hard IP blocks). The
Layout Path statement must list LEF files that describe LEF macros corresponding to the
hierarchical sub-blocks in your hierarchy, otherwise the extraction run will terminate
with an error. For example:
LAYOUT PATH “myTechFile.lef”
“myCellLibrary.lef”
“subBlockAlpha.lef”
“subBlockBravo.lef”
“subBlockCharlie.lef”
“subBlockAlpha.def”
“subBlockBravo.def”
“subBlockCharlie.def”
“myTopLevel.def”
To black-box hierarchical blocks, remove the corresponding DEF files from the
LAYOUT PATH list.
• The Layout Primary statement in your top-level SVRF command file must define the
name of the top cell in your design. For example:
LAYOUT PRIMARY “myTopCell”
Although Calibre xACT can read gzipped fill data, there is typically no performance advantage
to zipping GDS fill files.
Create a layer map file to map the metal fill layer numbers onto equivalent DEF layer names.
The map file format consists of nine columns in the following order:
• column 1: LEFDEFlayername
• column 2: GDSdefaultlayernumber
• column 3: GDSdefaultlayerdatatype
• column 4: GDSfilllayernumber
• column 5: GDSfilllayerdatatype
• column 6: GDStextlayernumber
• column 7: GDStextlayerdatatype
• column 8: GDScellboundarylayernumber
• column 9: GDScellboundarylayerdatatype
Columns 8 and 9 (GDS cell boundary layer and datatype) are optional. Although they are
technically not required at all for importing fill data, the same map file is used for importing
GDS macrocells as for importing fill, so it is good practice to include the cell boundary
information columns.
For example:
metal1 31 0 31 1 31 99 108 0
metal2 32 0 32 1 32 99 108 0
metal3 33 0 33 1 33 99 108 0
....
It is possible to map more than one GDS fill layer number to a single LEF/DEF layer. For
example, when you want to combine dummy and OPC fill, GDS layers 31.1 and 31.7
respectively, into your M1 layer, repeat the line in the mapfile for the LEF/DEF layer(s) that
you want to map:
M1 31 0 31 1 31 99 108 0
M1 31 0 31 7 31 99 108 0
To import GDS fill data specify the PEX Xcell ... FILL statement in your SVRF rule file. For
example:
You may also use this statement to translate the (x,y) location of the fill cell, which is useful if
you are using different origins in your GDS fill file from those in your DEF file. See “Importing
GDS Cell Views” for details.
Calibre xACT reads the GDS file and calculates coupling to the individual fill shapes during
extraction. Typically there is small overhead for reading the GDS file, but no performance
overhead for calculating coupling to the GDS fill shapes, which are treated by Calibre xACT as
floating by default, or grounded depending on the setting of the PEX XACT Fill statement.
into the Calibre xACT database by adding the name of the DEF fill file to the bottom of the
Layout Path list in your SVRF command file. For example:
The wildcard “*” specifies to import all cells contained in the specified GDS file. You can
include multiple PEX Xcell statements to import cells from different GDS files. If you rule file
contains multiple instances of this statement, it is only necessary to specify the MAP keyword
once. Importing specific cells from a single GDS file is not supported.
Multi-Temperature Extraction
The parasitic resistance of interconnects varies at different temperatures. To model the
resistance variation, it is common to perform temperature variation extraction at the same
process corner. By creating multiple netlists at the minimum, typical, and maximum
temperature, and performing simulation at all three temperatures, designers can feel confident
that the design will perform as expected at all temperatures.
Temperature extraction is controlled with the PEX Extract Temperature statement. You can
create multiple SPEF netlists with different temperature settings by re-running the extraction
step for each temperature. Remember to give a new netlist name for each temperature run using
the PEX Netlist statement.
• PEX XACT Corner — Relates the name of a process corner to the corresponding
process technology file used by Calibre xACT.
• Reflective Boundary — This boundary condition forces the normal component of the
electric field at the boundary to be zero. It is equivalent to placing a reflective wall at the
boundary and placing a mirror image of the cell on the other side of this wall and the
same distance from it.
• Periodic Boundary — This boundary condition replicates the enclosed geometries,
creating copies on the other side of the boundary.
• Reflective Cell Array — This boundary condition places a mirror image of the
enclosed geometries on the other side of the boundary and grounds all conductors in the
mirror image.
• Periodic Cell Array — This boundary condition copies the enclosed geometries on the
other side of the boundary and grounds all copies of conductor geometries.
Figure 8-2 shows an example of a cell_array with reflective setting for the X orientation and
periodic setting specified for the Y orientation. The tool determines the number of cells.
Use the SVRF statements PEX Fieldsolver Boundary and PEX Fieldsolver Cell_array to specify
the boundary conditions to be used by the capacitance solver.
In contrast to gate-level extraction, where the output includes netlist data only to the level of the
cell’s boundary, hierarchical memory extraction includes netlist data within the xcells. The
n-level netlist contains instantiated xcells with subcircuit definitions. Additionally, this type of
extraction:
• Flattens nets beginning in intermediate non-xcell hierarchical levels into the closest
parent xcells
• Extracts the successive hierarchical xcell levels until it reaches the primitive device level
Note
Hierarchical memory extraction optimizes extraction runtimes and netlist size. The actual
capacitance values for a net extracted hierarchically and flat will be slightly different.
Because data is stored, analyzed, and processed once per cell instead of once for every flat
placement of the cell, hierarchical RC or RCC netlisting cannot show the actual effect of
geometries that overlap or abut each specific placement of the cell.
Figure 8-3 shows two examples of how information in a hierarchical netlist approximates the
actual layout.
Example A shows the actual RC interaction between a cell, Cell A.1, and an adjacent geometry.
It also shows how the same construction looks in a hierarchical netlist. Because Cell A.1 is an
xcell and thus context-free by default, the RC component is shown between the adjacent
geometry and ground.
Example B shows how the actual RC component of two identical cells, Cell A.1, compares
when a metal layer is placed over only one of the cells. It also shows how the same construction
looks in a hierarchical netlist. The actual RC component of the two cells differs, but because
Cell A.1 is predefined, the RC component of the two cells is equal in the hierarchical netlist,
despite the overlaying metal layer.
Related Topics
Running Full Hierarchical and Mixed-Signal Hierarchical Extraction
• Cells that are extracted hierarchically at the transistor level. These cells are extracted
and netlisted as subcircuits in the parasitic netlist.
• Cells that are treated as primitive cells. Primitive cells are identified by -P flags in the
xcell list. For these cells, no parasitics are extracted and the contents are not netlisted.
They are instantiated in the netlist as cell references.
In both cases the netlist preserves a level of hierarchy for the listed cell. For more information
on the xcell file, see “Hierarchy Control with Xcells”.
Related Topics
Running Full Hierarchical and Mixed-Signal Hierarchical Extraction
• Top-level cell
• Instances for the highest-level xcells
You cannot use flat LVS for the PHDB with gate-level extraction.
The highest hierarchical xcell instances define the hierarchy. In gate-level extraction xcell
instances do not contain other xcell instances. The Calibre xACT 3D tool ignores the
connections within the xcell instances and their lower-level structures (cells, transistors, and
nested xcells).
Unlike flat extraction, gate-level netlists include net data to the level of the cell’s boundary.
Nets that cross the cell’s boundary are flattened into the parent. You generally use gate-level
extraction when you have externally defined libraries containing standard cell data. In this case,
include your standard cells in your xcell list.
Calibre xACT 3D supports both LEF/DEF and GDS designs. Power and ground nets are
automatically excluded for LEF/DEF designs.
Related Topics
Running Gate-Level Extraction
Netlists created from a PDB generated with flat extraction do not have any subcircuits.
Flat transistor-level extraction is the default. If the invocation does not contain “-xcell” in the
command line, a flat netlist is created and the extraction includes the effects of all geometries.
Related Topics
Running Transistor-Level Extraction
The Calibre xACT tool uses different parasitic models to perform extraction.
This chapter includes the following sections that provide information for producing parasitic
models.
Parasitic Devices
There are several sources of parasitic effects in a design.
These parasitic effects include:
The Calibre xACT tool produces the following parasitic model types: Distributed Resistance,
Distributed Resistance and Capacitance, Distributed Resistance and Coupled Capacitance.
With the separately licensed Calibre® xL extension, the Calibre xACT software can also model
inductance. For more information on extracting parasitic inductance, see the Calibre xL User’s
Manual.
Distributed Resistance
With distributed resistance extraction, the parasitic resistance of the net is broken into segments
representing geometric regions. Capacitance is not modeled.
Figure 9-1 shows a simplified layout example with the equivalent distributed resistance
extraction model. For Net_01, the net sections A to C represent how Calibre xACT segments a
net for distributed R extraction. This is also the case for Net_02.
Figure 9-2 shows the extracted net model for distributed R, using the following command lines:
Figure 9-4 shows the extracted net model for distributed R and C, using the following command
lines:
In the formatting step, the option -all is used for writing distributed results; it does not produce
lumped capacitance.
Figure 9-4 also shows how the intrinsic capacitors for each net segment include the effect of the
coupled capacitor, for example, capacitor CG is the sum of the intrinsic capacitance for segment
G plus the coupled capacitance between segment G of Net_01 and segment J of Net_02. Each
net is also shaded separately to show that they are not explicitly coupled together.
Figure 9-6 shows the extracted net model for distributed R with coupled C when you use the
following commands:
In the formatting step, the -all option is used for writing distributed results; it does not produce
lumped capacitance.
The overlapping shaded areas show that Net_01 and Net_02 are capacitively coupled through
CC1 to CC3. These coupled capacitors are explicitly included in the model and are not added to
the intrinsic capacitors, as in the distributed R and C case.
Extraction can be performed in a variety of ways including extraction type, netlist type, or
design hierarchy, and produce various netlists or reports depending on your verification needs.
This chapter provides procedures for common extraction runs using both the command-line
interface and the Calibre Interactive GUI. Each procedure details the minimum required steps.
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance.
3. Generate the netlist. You do not need to specify the xcell list.
Results
The transcript for a successful Calibre xACT 3D run concludes with a count of errors and
warnings. For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the transistor-level netlist you specified in the
PEX Netlist statement. The exact number of files depends on the output format.
Related Topics
Calibre xACT Tool Invocation Reference
Calibre xACT 3D Gate-Level Extraction
4. Specify the extraction type by clicking the Outputs button in the left pane.
a. Set Extraction Mode to xACT 3D.
Figure 10-2. Extraction Mode
b. In the area above the tabs, set Extraction Type to Gate Level.
Figure 10-3. Gate Level Setting
where parasitic_switch indicates the type of parasitics to extract. For example, for
distributed resistance and coupling capacitance (-rcc), use the following:
calibre -xact rules
This is the default behavior if a parasitic switch is not specified. To produce a netlist that
only contains lumped capacitance (-c), use the following:
calibre -xact -c rules
Results
The transcript for a successful Calibre xACT run concludes with a count of errors and warnings.
For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the transistor-level netlist you specified in the
PEX Netlist statement. The exact number of files depends on the output format.
Related Topics
Calibre xACT Flat Transistor-Level Extraction
Calibre xACT Tool Invocation Reference
calibre -xact
If you are using layout names, then you can skip this step.
2. Extract parasitic effects and generate the netlist.
calibre -xact -3d -parasitic_switch -turbo rules
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance.
calibre -xact -3d -rc -turbo rules
Results
The transcript for a successful Calibre xACT 3D run concludes with a count of errors and
warnings. For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 0
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the transistor-level netlist you specified in the
PEX Netlist statement. The exact number of files depends on the output format.
Prerequisites
• Layout database that is LVS-clean.
• A valid PEX rule file for this layout.
• For more information refer to “Prerequisites for Performing Parasitic Extraction”.
Procedure
1. Build the database of intentional devices.
To use source names, use Calibre nmLVS-H:
calibre -lvs -hier -spice $svdb_dir/top_cell.sp rules
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance.
3. Generate the netlist.
Results
The transcript for a successful Calibre xACT 3D run concludes with a count of errors and
warnings. For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the transistor-level netlist you specified in the
PEX Netlist statement. The exact number of files depends on the output format.
Related Topics
Calibre xACT Tool Invocation Reference
Full hierarchical extraction is intended for use on designs with significant amounts of repeated
hierarchy such as memory.
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance.
4. Generate the netlist. You do not need to specify the xcell list.
calibre -xact -fmt -full rules
Results
Successful Calibre xACT 3D transcripts conclude with a count of errors and warnings as
shown.
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the netlist you specified in the PEX Netlist
statement. Each xcell appears in the netlist as a subcircuit. The exact number of files depends on
the output format.
Related Topics
Calibre xACT Tool Invocation Reference
Hierarchical Memory Extraction
Mixed-Signal Hierarchical Extraction
Prerequisites
• A valid PEX rule file for this layout. If you are creating a DSPF netlist for use in a
hierarchical simulator that accepts a position file, add PEX Netlist Position File.
• Hcell file or Hcell statement that includes all cells also listed in the xcell file.
• Xcell file listing cells to preserve in the parasitic netlist.
• Layout database that is LVS-clean.
• For more information refer to “Prerequisites for Performing Parasitic Extraction”.
Procedure
1. Start the PEX interface in Calibre Interactive.
calibre -gui -pex
4. Specify the Extraction Type by clicking the Outputs button in the left pane.
a. Set Extraction Mode to xACT 3D.
Figure 10-7. Set Extraction Mode
Results
The transcript for a successful Calibre xACT run concludes with a count of errors and warnings.
For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains a file with the name you specified in the PEX
Netlist Simple statement.
Backannotating from the Command Line Using Calibre xACT 3D Direct Netlisting . 123
Backannotating from the Command Line Using the Calibre xACT 3D PDB Flow . . . 124
Backannotating from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
2. Extract parasitic effects and generate the netlist with Calibre xACT 3D direct netlisting.
calibre -xact -3d -parasitic_switch rules
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance.
Results
The transcript for a successful Calibre xACT 3D run concludes with a count of errors and
warnings. For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 0
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the netlist you specified in the PEX Netlist
statement. The exact number of files depends on the output format.
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance.
3. Generate the netlist.
If parasitic_switch included resistance, use the following:
calibre -xact -fmt -all rules
To produce a netlist that only contains lumped capacitance, use the following:
calibre -xact -fmt -c rules
Results
The transcript for a successful Calibre xACT 3D run concludes with a count of errors and
warnings. For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains the netlist you specified in the PEX Netlist
statement. The exact number of files depends on the output format.
Prerequisites
• A valid PEX rule file for this layout.
o The PEX Netlist statement should indicate SOURCEBASED.
• Layout database that is LVS-clean.
• For more information refer to “Prerequisites for Performing Parasitic Extraction”.
Procedure
1. Start the PEX interface in Calibre Interactive.
2. Load a runset or rule file.
3. Specify the extraction type and other settings. Generally, for backannotation you use
names from the schematic.
4. Click Run PEX to produce the netlist.
Results
Check the Transcripts pane to verify the run completed with no errors. If you have selected
“View netlist after PEX finishes” in the Outputs pane, a text viewer appears with the generated
netlist loaded.
Related Topics
Calibre Interactive Users Manual
Getting Started: Calibre xACT 3D Parasitic Extraction Using Batch Mode
Types of Extraction
Running Gate-Level Extraction
Prerequisites
• A valid PEX rule file for this layout that includes a PEX Report Netsummary statement.
• A layout database that is LVS-clean.
• For more information refer to “Prerequisites for Performing Parasitic Extraction”.
Procedure
1. Set up the PEX Report Netsummary information to provide the needed details.
2. Perform parasitic extraction for capacitance. (The extraction may also include resistance
or induction effects.)
Results
Look for a file with the name specified in the PEX Report Netsummary statement. If no
capacitance data was extracted, the report ends with “No meaningful analyzed data found.”
Related Topics
Getting Started: Calibre xACT 3D Parasitic Extraction Using Batch Mode
Getting Started: Calibre xACT 3D Parasitic Extraction Using Calibre Interactive
========================================================================
If there are no errors and the extraction included coupled capacitance data, the directory also
contains a file by the name you specified in the PEX Report Coupling Capacitance statement.
If the file is not present, check the transcript for warnings regarding PEX REPORT COUPLING
CAPACITANCE.
Related Topics
Getting Started: Calibre xACT 3D Parasitic Extraction Using Batch Mode
5. Provide a report name. (There is no default.) If needed, set the other options:
• Number sets the maximum number of nets to include in the report. Only the most
tightly coupled pairs are reported.
• Threshold sets the capacitance threshold in farads below which the tool should not
report.
6. Set other controls as needed.
7. Click Run PEX to produce the report (and netlist).
Results
Check the Transcripts pane to verify the run completed with no warnings about PEX Report
Coupling Capacitance or errors.
If there are no errors, the directory contains the report file along with the netlist.
Related Topics
Getting Started: Calibre xACT 3D Parasitic Extraction Using Calibre Interactive
where:
• Netname is the layout name of the net, and is same for both entries. (Resistance
cannot be measured across devices.)
• Location is one of the following:
The file can contain multiple entries. Each should be on a separate line.
2. Run parasitic extraction for resistance using any of the -r switches for the parasitic flag.
Results
The transcript for a successful Calibre xACT run concludes with a count of errors and warnings.
For example:
CALIBRE xACT WARNING / ERROR Summary
------------------------------------------------------------------------
xACT Warnings = 2
xACT Errors = 0
========================================================================
If there are no errors, the directory also contains a file by the name you specified in the PEX
Report Point2Point statement. If an entry in the report says “No analyzed resistors on net” the
points in the entry have insignificant resistance or the net was not extracted.
Related Topics
Getting Started: Calibre xACT 3D Parasitic Extraction Using Batch Mode
where:
• Netname is the layout name of the net, and is the same for both entries. (Resistance
cannot be measured across devices.)
• Location is one of the following:
The file can contain multiple entries. Each should be on a separate line. The PEX Report
Point2Point statement in the Standard Verification Rule Format (SVRF) Manual has
more information.
2. Start the PEX interface in Calibre Interactive.
3. Load a runset or rule file.
4. In the Outputs pane, set the extraction mode to xACT 3D and set the extraction type to
R, R + C, or R + C + CC.
5. Under the Reports tab, select the Point to Point tab. Select Generate Point to Point
Resistance Report.
6. Enter the name of the control file you created in step 1 in the Input field. Enter another
name in the Output field.
7. Set other controls as needed.
8. Click Run PEX to produce the report (and netlist).
Results
Check the Transcripts pane to verify the run completed with no errors. The directory contains
the report file along with the netlist. If an entry in the report says “No analyzed resistors on net”
the points in the entry have insignificant resistance or the net was not extracted.
Related Topics
Getting Started: Calibre xACT 3D Parasitic Extraction Using Calibre Interactive
During Parasitic Database (PDB) creation, the Calibre xACT 3D tool caches a copy of the xcell
list you input into the tool, even if the xcell list is empty. If you supply an empty xcell list, or if
none of the cells in the provided xcell list are found in the layout, the Calibre xACT 3D tool
issues the following warning message at the conclusion of the PDB stage:
WARNING: Could not match any layout cell names against the XCELL file:
xcell_file_name
An empty xcell list effectively produces a transistor-level (flat) PDB and, consequently, a flat
netlist or report.
layout_name source_name
With the Calibre nmLVS-H tool, you indicate the cell list using the “-hcell” switch. For
example, the following command line invocations demonstrate a typical Calibre nmLVS-H and
Calibre xACT tool run using the same cell list throughout, called hcell_list:
The cell list performs the following functions in each of the tools:
• Calibre nmLVS-H tool — Maps the layout’s cell names to their corresponding
source’s cell names when you perform source name extraction. When invoking the
Calibre nmLVS-H tool, you specify the hcell list by using the “-hcell hcell_list” switch;
see “calibre -lvs” for details. See “Hcells” in the Calibre Verification User’s Manual for
information on hcells.
• Calibre xACT 3D tool — Defines a design's hierarchy for global net extraction. You
create an xcell list based on the hierarchy you want, and the Calibre xACT 3D tool
analyzes and extracts the hierarchy.
Although an hcell list can be used as an xcell list, xcell lists have additional options. If you add
xcell options to your hcell file, be sure to rename the file since these options will not work for
Calibre nmLVS-H. Xcell entries can use wildcards to match multiple cells.
layout_name source_name
In both formats, each cell is on its own line and can only appear once. If the xcell file follows
the hcell list format, you can use the same file for both source name extraction and parasitic
extraction. The second column (the source column) is ignored during parasitic extraction. The
second, xcell-specific format can only be used for parasitic extraction and will not work as an
hcell list for source name extraction.
The flags in the xcell-specific format can appear in either upper or lower case. Table 11-1
provides more information on each flag.
Note
The Calibre xACT tool disregards any Hcell statements you specify in the SVRF rule file.
You must include any cell you identify with the Hcell statement in the xcell file or use the
PEX Xcell statement.
If the specifications use conflicting flags, Calibre xACT 3D generates an error and extraction
stops. For example, the following wildcard xcell specifications generates an error:
You can use the PEX Xcell Precedence statement with the BEST keyword to resolve such
conflicts. The BEST keyword finds the best matching wildcard xcell name and applies only the
flags for that specification. All other matches are ignored. With the BEST keyword, cells whose
names match pmos_rf* would be treated as primitive xcells and the xcell specification to
indicate the cell is a pcell (-PCDEF) is not applied.
Caution
Use the asterisk (*) wildcard in the xcell list with discretion as it could potentially increase
runtime. It is recommended to specify as much of the name as possible before using a
wildcard.
• Select cells that occur multiple times. The more times a cell appears, the faster
extraction will be.
• Do not specify densely packed cells as xcells. In full hierarchical extraction, coupling
between xcells is not modeled. For example, in a memory design, specify the cell
containing an array rather than the cell containing a single bit.
• Do not specify cells that overlap another xcell. The contents in the overlapped area will
be counted more than once.
• Do not specify cells with feedthrough nets as xcells, unless you are formatting the netlist
in extended DSPF with the HSIM keyword set.
Note that it is only necessary to specify the mapfile once in your rule file. Calibre xACT
uses the same mapfile for GDS cell views as it does for GDS fill, so if you are also using
a PEX Xcell ... FILL statement in the same rule file, then you only need to provide the
path to the mapfile once.
2. Create a layer map file to map the metal fill layer numbers onto equivalent DEF layer
names. The map file format consists of nine columns in the following order:
• column 1: LEFDEFlayername
• column 2: GDSdefaultlayernumber
• column 3: GDSdefaultlayerdatatype
• column 4: GDSfilllayernumber
• column 5: GDSfilllayerdatatype
• column 6: GDStextlayernumber
• column 7: GDStextlayerdatatype
• column 8: GDScellboundarylayernumber
• column 9: GDScellboundarylayerdatatype
For example:
metal1 31 0 31 1 31 99 108 0
metal2 32 0 32 1 32 99 108 0
metal3 33 0 33 1 33 99 108 0
....
If you do not know the metal fill layer numbers for your fill data, you can find them by
visually inspecting the data using Calibre DESIGNrev.
It is possible to map more than one GDS fill layer number to a single LEF/DEF layer.
For example, if you want to combine GDS layers 31.0 and 31.20 and map them onto
your M1 layer, repeat the line in the mapfile for the LEF/DEF layer(s) that you want to
map:
M1 31 0 31 1 31 99 108 0
M1 31 20 31 1 31 99 108 0
If you omit columns 8 and 9 from the mapfile, Calibre xACT uses a default layer 108.0
for cell boundary information. If no geometries are found on that layer, Calibre xACT
uses the extent of the cell geometries on layers specified in the layer map file. The
bottom left-most macro pin is frequently located at an offset from the origin. When this
occurs, the cell boundary is calculated incorrectly causing the cell to be offset when
imported into Calibre xACT and the pin locations not to match. To avoid this problem,
specify a cell boundary layer and data type if it is different than the default. You can do
this by specifying two additional columns in the Calibre xACT GDS mapfile. For
example, the following mapfile entry:
M1 10 0 10 1 10 99 110 0
3. If the GDS macrocells include text annotations on the layer that you specified in the
mapfile, then the cell ports are named accordingly in Calibre xACT.
This results in coupling between nets in proximity to the cell and shapes inside the cell.
This is represented in the netlist as coupling capacitances between the two associated
nets, rather than being lumped to the net’s total capacitance.
4. If the GDS macrocells do not include text annotations, then the cells inherit port names
from the corresponding LEF macro definitions.
Turning on slotted metal modeling causes extraction to complete more quickly by “unslotting”
the metal regions. This replaces a polygon with slots, or holes, with a resistively equivalent
solid polygon for calculations. The SVRF statement needs to be included in the extraction rules
file.
When a polygon on a resistive layer is recognized as slotted, its holes are removed and the
Calibre xACT 3D tool calculates the resistance of the newly unslotted polygon, using a higher
sheet resistance based on the percentage of hole area to total area of the polygon. The unslotted
polygon is also used for capacitance extraction. In most cases, this has minimal effect on
accuracy.
For example, for polygons in the metal1 layer to be treated as slotted, specify PEX Slots
Handling as follows:
Figure 11-1 shows an example of a slotted polygon which meets the parameters set by the PEX
Slots Handling example. There are 15 slots and the total area of these is not greater than 50% of
the polygon area.
Figure 11-1. Metal1 Polygon Which Meets the PEX Slots Handling Example
Parameters
Figure 11-2 shows an example of a polygon that does not meet the parameters of the example.
In this case, there are too few slots. This polygon is treated as a non-solid polygon during
extraction.
Figure 11-2. Metal1 Polygon That Does Not Have Enough Slots
Figure 11-3 shows another example of a polygon that does not meet the parameters from the
SVRF statement. Although there are 15 slots, the total area of these is greater than
AREA_RATIO of 0.5. The polygon is handled as a non-solid polygon during extraction.
Figure 11-3. Metal1 Polygon That Has More Than 50% Area in Slots
To model the coupling resulting from metal fill, run parasitic extraction in -rc or -rcc mode and
specify the SVRF statement as follows:
This allows the metal fill to float, which gives a better approximation of real conditions. This
may increase extraction time and the netlist size. If the netlists are too large to simulate, use
PEX Reduce CC for targeted reduction.
For lumped capacitance extraction, which treats all neighbor nets as grounded, you need to
extract the metal fill nets so that they can be simulated. To extract nets associated with the metal
fill, set the statement as follows:
Floating nets and signal nets are extracted in the same manner.
Note
If the metal fill has not been added yet, set the target density using the PEX Density
Estimate statement. In-die tables must be included in the calibrated rule file for the process
technology.
Many metal fill configurations are supported. Figure 11-4 shows an example of simple square
or rectangular fill between nets drawn on the same metal layer. Figure 11-5 shows multi-layer
fill and nets. Figure 11-6 also shows a non-square fill with multiple nets.
For a more general discussion of floating nets, see “Ignore or Extract Floating Nets”.
Note
You cannot model multiple ground regions with -rc extraction.
Prerequisites
• A design file with a separate layer for ground regions. Typically, this is your p-well
layer.
• A complete SVRF rule file including statements for calculating intrinsic capacitance.
These are a normal part of the foundry-supplied calibrated rules.
Procedure
1. If it does not already exist, create a layer with shapes for the different ground regions in
your layout. Different regions can be on different layers.
2. In the SVRF rule file, verify all ground layers have connectivity. (If you are using a well
layer, it should already have connectivity.) The layer name must be in a Connect
statement. For example:
CONNECT analog_regions
You can also connect related regions to each other with a Virtual Connect Name
statement. For example:
VIRTUAL CONNECT NAME "digital_regions?"
3. Add PEX Ground Layer to the SVRF rule file. For example:
PEX GROUND LAYER analog_regions digital_regions
4. To model ground regions not otherwise connected to a signal net, specify the PEX
Extract Floating Nets statement in the rule file. You can select how the parasitic
capacitance is calculated based on the GROUNDED, ALL, or REDUCED parameters
for this statement.
5. Run extraction as usual. Distributed RC extraction and netlisting are not supported with
multiple grounds, but all other types of parasitic models are. When running full
hierarchical extraction, the ground regions are only reflected within the cells that contain
the region-defining shapes.
Prerequisites
• Before you begin, you need a text version of the CMP data. For information on
producing a text version of the database, see the documentation for the CMP modeling
software.
• Make sure the layer names in the CMP data and the SVRF rule file are the same. Layers
are matched by name and are not case sensitive. (For VCMP, the Calibre software treats
all layer names as lowercase when looking for the corresponding file.)
Procedure
1. Use the PEX CMP Mode statement in your extraction rule file to specify the use of CMP
data during extraction.
2. Proceed with extraction using your usual methods. The CMP data can be used with all
extraction modes.
Results
If you get an error message about zero or negative thickness, check the following:
• Does the conductive layer have the same name (no misspellings) in both the SVRF file
and the CMP data?
• Does the text file show a zero or negative value for the layer? In a Praesagus text file, the
layer thickness is given as the last two values on a line that begins with the layer name.
• Is a layer used in the SVRF file missing in both the CMP data and the technology file?
If the run seems to be using the wrong values for layer thickness, check that all layer names are
distinct regardless of case. Because the file parser does not flag duplicate names, when layer
names differ only by capitalization the wrong layers may be matched.
The basic extraction procedures can be fine-tuned to refine the analysis and extraction phase.
Calibre xACT Processing Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Extracting Net Resistance By Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Device Extraction Without Parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Select-Net Extraction with Calibre xACT and Calibre xACT 3D . . . . . . . . . . . . . . . . . 150
Select-Layer Extraction with Calibre xACT and Calibre xACT 3D . . . . . . . . . . . . . . . 152
Extracting Particular Nets with the Calibre xACT 3D PDB flow. . . . . . . . . . . . . . . . . . 153
Exclusion of Power and Ground Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Coupling Capacitance Output Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Grounding Coupled Capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Ignore or Extract Floating Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Resistance Extraction and PERC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
• Specifies how one or more nets are handled during parasitic extraction with a directive
called EXTRACT_CONTROL.
• Specifies how netlisting is performed with a directive called NETLIST_CONTROL.
These controls can be defined in a text file or directly in your top-level control file using special
syntax; see the PEX XACT Control statement. When this statement is specified, Calibre xACT
runs parasitic extraction and netlisting using the settings defined by the statement. If
EXTRACT_CONTROL is defined, then extraction uses the specification in
EXTRACT_CONTROL. If NETLIST_CONTROL is defined, then netlist generation uses the
specifications in NETLIST_CONTROL. Settings specified in PEX XACT Control statement
override the global command line and some SVRF statement specifications such as
PEX Netlist.
The parasitic model command line switch (-rcc, -rc, etc.) controls extraction and netlisting
globally. Net-specific parasitic model selections are also made using PEX XACT Control
statement. Parasitic models have the following order of precedence: RCC > RC > R, C, Cg. It is
important to note that you cannot run R only extraction and then request a C only netlist; This
sequence generates an error. However, you can run RCC extraction, then request a C only
netlist; In this case, the capacitance data required to create the netlist has been extracted.
Related Topics
Creating a Top-level Control File
Multiple Netlist Generation
Selective Resistance Extraction
In this example, the netlist name and format generated is specified with PEX Netlist.
Save and close the file.
Or optionally run Calibre xACT 3D to perform extraction using the field solver for the
capacitance extraction:
calibre -xact -3d -rcc xact_t.rules
Results
Capacitance and resistance is extracted for all nets and layers, and only resistance is extracted
for vias between the metal layers on nets VDD? and VSS?.
Related Topics
Selective Resistance Extraction
It is not the same as primitive xcells, because the netlist contains the nets for the xcell contents,
which have been flattened within the xcell. All nets within the xcell will be ideal nets, that is,
they will have no parasitic net models.
Figure 12-1 compares a typical transistor level extraction with a pcell extracted without
parasitics. Note that this method of extraction ignores only the parasitics inside the pcell. The
parasitics outside the pcell are still extracted.
Invocation
To invoke extraction of devices without parasitic net models in the xcells (ideal cells), mark the
cells with a -i switch in the xcell file.
Requirements
In order for this extraction method to provide useful information, the following requirements
must be met:
• The gate-level option (-xcell xcell_file) for Calibre xACT 3D must be set, even though
the design is transistor level.
• Designs must use parameterized cells.
• The parameterized cell models must account for all of the parasitics in the cell.
• Each cell model must have an entry in the hcell file, and an identical entry in the xcell
file. All entries will be treated as parameterized cells.
When performing select-net extraction with Calibre xACT and Calibre xACT 3D, you must
perform the following operations:
1. Identify the selected nets by name using the PEX Fieldsolver Mode NETS statement in
your SVRF rule file.
2. Use the “-3dselect” Calibre xACT command line switch.
If you omit the PEX Fieldsolver Mode NETS statements from your rule file and invoke the
Calibre xACT tool using the “-3dselect” switch, then the tool will extract all nets with Calibre
xACT.
Explanation: When this SVRF statement is present in the rule file and -3dselect is specified on
the command line, all layers on net “clk” are extracted with field solver mode 600. All other
nets are extracted with Calibre xACT.
• Use question mark (?) character as a wildcard matching zero or more characters in a net
name.
• Use one of two mutually exclusive secondary keywords, TOPLEVEL and
RECURSIVE, to specify where in the hierarchy to search for a matching name.
TOPLEVEL is the default.
Example 12-2. Extracting Matching Names in Top Level
Explanation: Any net in placement X0/X1 that is not ported out of that cell and has a name
beginning with foo is extracted with fieldsolver mode 600. For instance, this statement would
use fieldsolver mode 600 for top level net names foobar, foos, and foo1, but 1foo or ffoo would
be extracted with Calibre xACT.
Explanation: Includes any source net, from any level of the hierarchy, that is not ported out and
has the character strings in or out somewhere within the net name. For instance, this statement
would extract pin and pout with fieldsolver mode 600, no matter what level of the hierarchy
they occur on.
Note
The tool supports wildcards in the net name only, not in the path. For example, X0/X1/foo?
is supported, but ?/X0/vdd is not supported. In other words, the wildcard character does not
match hierarchy.
1. Identify the selected layers by name using the PEX Fieldsolver Mode LAYERS
statement in your SVRF rule file.
2. Use the “-3dselect” Calibre xACT command line switch.
You can specify the accuracy level used for extraction on one or more specified layers using
PEX Fieldsolver Mode LAYERS.
Explanation: When this SVRF statement is present in the rule file and -3dselect is specified on
the command line, layer M1 is extracted with field solver mode 600. All other non-specified
layers are extracted with Calibre xACT.
To specify the extraction accuracy level for both nets and layers, you can include both PEX
Fieldsolver Mode LAYERS and PEX Fieldsolver Mode Nets statements in your rule file.
Example 12-5. Selecting Both Layers and Nets for Field Solver Extraction
Explanation: In this example, Calibre xACT extracts all layers on net clk with field solver
mode 600 and extracts layer M2 on all other nets with field solver mode 600. All other non-
specified layers and nets are extracted with Calibre xACT.
1. Identify the selected nets by name using the PEX Extract Include statement in your
SVRF rule file.
2. During parasitic database (PDB) creation with the “-pdb” command line switch, use the
“-select” Calibre xACT 3D command line switch.
If you omit the PEX Extract Include statements from your rule file and invoke the Calibre
xACT 3D tool using the “-select” switch, then the tool will issue an error and terminate the run.
• Use question mark (?) character as a wildcard matching zero or more characters in a net
name.
• Use one of two mutually exclusive secondary keywords, TOPLEVEL and
RECURSIVE, to specify where in the hierarchy to search for a matching name.
TOPLEVEL is the default.
Example 12-6. Including Matching Names in Top Level
Explanation: Includes any net in placement X0/X1 that is not ported out of that cell and has a
name beginning with foo. For instance, this statement would include top level net names foobar,
foos, and foo1, but would not include 1foo or ffoo.
Explanation: Includes any source net, from any level of the hierarchy, that is not ported out and
has the character strings in or out somewhere within the net name. For instance, this statement
would include pin and pout, no matter what level of the hierarchy they occur on.
Note
The tool supports wildcards in the net name only, not in the path. For example, X0/X1/foo?
is supported, but ?/X0/vdd is not supported. In other words, the wildcard character does not
match hierarchy.
You disable net exclusion by commenting out the PEX Extract Exclude statement in your SVRF
rule file.
You can use wildcards to select nets to exclude when performing a parasitic extraction run. You
can also specify where in the hierarchy to search for a matching net name.
• Use question mark (?) character as a wildcard matching zero or more characters in a net
name.
• Use one of two mutually exclusive secondary keywords, TOPLEVEL and
RECURSIVE, to specify where in the hierarchy to search for a matching name.
TOPLEVEL is the default.
Example 12-8. Excluding Matching Names in Top Level
Explanation: Excludes any name in the top level namespace that has the character string vdd
anywhere within it. For instance, this statement would exclude top level net names vdd, nvdd,
and vdds.
Explanation: Excludes any net, at any level of the hierarchy, that is not ported out and has a
name containing the character string vdd. For instance, this statement would exclude nvdd and
vdds, no matter what level of the hierarchy they occur on.
The optional “-g” switch can also be specified when you invoke the Calibre xACT formatter.
For example:
Any coupled capacitors found in the parasitic models are decoupled and grounded in the
parasitic netlist.
When floating net coupling is enabled and a signal net is capacitively coupled to a floating net,
the floating net is not assumed to be fixed. Instead, the Calibre xACT 3D tool approximates the
effective capacitance of the floating net and computes the effective (series) capacitance to
ground of the signal net through the floating net as shown in Figure 12-2.
This algorithm requires that there are signal nets and floating nets in the design, and is disabled
if floating nets are extracted (that is, if PEX Extract Floating Nets is set to ALL). In contrast to
extracting floating nets, the final netlist does not contain any floating nets.
Note
When extracting selected nets (-select switch), nets not selected are assumed to be
grounded—this means that only selected nets can potentially float. To use the floating net
coupling algorithm when extracting with selected nets, the floating nets must also be selected.
Figure 12-3 illustrates the Calibre xACT 3D tool’s result when you set this. It shows a test
structure with a signal net, net_a, and unnamed floating net. C1 represents parasitic coupling
capacitance. When you extract floating nets, C1 is represented as a coupling capacitor between
net_a and the floating net rather than lumped with intrinsic capacitance. The netlist contains
both nets, and C1 is listed with other coupling capacitors.
When extracting floating nets, both floating nets and signal nets are treated in the same manner.
This increases extraction time and creates floating nets in the netlist.
Netlist content can vary greatly depending on your design and analysis goals.
These topics describe how netlisting behaves and how to modify the basic extraction procedures
to change the produced netlists.
Prerequisites
• A rules directory containing the following SVRF rule files for the target technology and
metal scheme:
o A top-level control file.
o A capacitance rule file for each process corner.
o A resistance rule file for each process corner.
• The following design files:
o A technology LEF file (TLEF).
o A LEF cell library.
2. To extract multiple process corners, use the PEX XACT Corner statement. In this
example the three process corners are typical, min, and max. The PEX XACT Corner
statement tells Calibre xACT the name of the process corner.
3. The PEX Extract Temperature statement defines two temperature corners, 27 and 120.
4. The variable $XACT_SOC_CORNER is set internally by Calibre and in each case
carries the value of one of the process corners. The Include statements inside of the
#IFDEF conditional use the value of the $XACT_SOC_CORNER variable to locate the
capacitance and resistance decks for each corner. The Include statements following the
#ELSE statement are required to make this SVRF code example compile in Calibre.
5. Run the extraction step. For example:
calibre -xact -rcc xactsoc_multi.svrf
The Calibre xACT extraction step generates one SPEF file for each temperature and
process corner combination. In this example, the tool creates six SPEF netlists, one for
each combination of the three process corners defined by the three PEX XACT Corner
statements with the two PEX Extract Temperature corners.
6. Optionally, to restrict the multi-corner run to specific process corners, use the -corner
option. For example, the following command line extracts only the typical process
corner:
calibre -xact -corner typical xactsoc_multi.svrf
The following command line extracts the min and max corners:
calibre -xact -corner min,max xactsoc_multi.svrf
For more information on command line options for Calibre xACT, see “calibre -xact” on
page 233.
Prerequisites
• You have created a top-level control file called xact_t.rules. See “Creating a Top-level
Control File” for an example.
• You have met the requirements outlined in “Transistor-Level Extraction Setup” on
page 23 for Calibre xACT.
Procedure
1. Using a text editor, create a file called xact_netlist.control file and enter the following
statements:
// Netlist specifications for RC Models
NETLIST_CONTROL {
MODEL: RC
NETLIST: pex1.dspf NETLIST_FORMAT: DSPF NET: ?VDDCOL? MODEL: Cg
}
// Netlist specifications for RCC Models
NETLIST_CONTROL {
MODEL: RCC
NETLIST: pex2.spef NETLIST_FORMAT: SPEF NET: ?VDDCOL? MODEL: Cg
NETLIST: pex3.hspice NETLIST_FORMAT: HSPICE
}
2. Using a text editor, add the following statement in the xact_t.rules file:
PEX XACT CONTROL [xact_netlist.control]
Figure 13-1 shows an example of logical pin swapping the Calibre xACT 3D tool produces by
default for a schematic NAND gate and its representation in the layout.
In this example, the Calibre nmLVS-H tool reports the design is LVS clean and creates the
layout-to-source cross-reference files using the swapped pins. By default, the Calibre xACT 3D
tool subsequently uses the swapped pins when creating the distributed RC netlist.
You can prevent pin ordering anomalies by using DSPF format. This format bases pin order on
the pin names instead of the pin connections. If there are port direction restrictions in a certain
output format, the formatter makes the appropriate adjustment. In SPEF, the formatter uses “b”
for type “x” pins because SPEF grammar does not include an any-direction notation.
There are four methods to correct pin order. The one to use depends on whether you are using
source-based flow, in which nets are based on source netlists, or the default layout-based flow
(using layout names or schematic/source names).
• If you are using source-based flow, see “Using the Source Based Flow”.
• If the pins are on intentional models, see “PEX BA Mapfile”.
• If you are using a layout-based flow and the pins are on primitives or the top circuit
only, see “PEX Pin Order”.
• If you need to specify pin direction or pin order on intermediate circuits, see “How to
Join a Disjoint Parasitic Model”.
Figure 13-2 provides a comparison of the normal and the source based Calibre xACT 3D
formatter flows. When creating a parasitic netlist with the source based flow, the Calibre xACT
3D formatter also uses the schematic (source) netlist.
Prerequisites
Before using this source based flow, you must modify your Standard Verification Rule Format
(SVRF) rule file by adding or modifying the following SVRF statements:
Note
When using the source-based flow, the Calibre xACT formatter automatically sets
the Source Case SVRF statement to YES regardless of its setting in your SVRF rule
file.
Procedure
1. To output each multi-fingered transistor as a separate device using the source-based
flow, specify the PEX Netlist statement with the SOURCENAMES keyword in your
rule file.
2. To collapse multi-fingered devices back into one device using the source-based flow,
specify the PEX Netlist statement with the SOURCEBASED keyword in your rule file.
3. Generate the netlist.
Results
You can verify whether the Calibre xACT 3D formatter used the source-base flowed by
comparing the output netlist to the original LVS source netlist and seeing that the transistors are
the same.
For example, given the original LVS source netlist sample:
MM7 net054 net37 vss! vss! N W=15u L=4u M=4
The Calibre xACT 3D netlist output with PEX NETLIST SOURCENAMES specified is:
MM7 MM7:d MM7:g MM7:s MM7:b N L=4e-06 W=1.5e-05
MM7@4 MM7@4:d MM7@4:g MM7@4:s MM7@4:b N L=4e-06 W=1.5e-05
MM7@3 MM7@3:d MM7@3:g MM7@3:s MM7@3:b N L=4e-06 W=1.5e-05
MM7@2 MM7@2:d MM7@2:g MM7@2:s MM7@2:b N L=4e-06 W=1.5e-05
Here the output netlist shows each multi-fingered transistor as a separate device.
The Calibre xACT 3D netlist output with PEX NETLIST SOURCEBASED specified is:
MM7 MM7:d MM7:g MM7:s MM7:b N L=4e-06 W=1.5e-05 M=4
Here the output netlist shows the multi-fingered device as one device with a multiplicity of 4
(M=4), like in the original LVS source netlist.
• Looks for disjoint net model fragments created during LVS by Virtual Connect
specification statements.
• Subsequently connects these fragments to the “trunk” of the net model using a small-
value resistor.
You can allow for incomplete net routing using the Virtual Connect SVRF specification
statements during LVS and connect like-named net fragments. The Calibre xACT 3D tool will
extract and produce a PDB containing a net model consisting of several disjoint parasitic model
fragments—a true representation of the actual drawn design. Consequently, this will create
problems for post-extraction simulation because there is no physical connection between these
net fragments.
Note
You should use this statement in specific limited cases where you require a “clean” LVS
when using Virtual Connect specification statements for locally disjoint power or signal
nets. Ultimately, your design should be LVS clean without using either Virtual Connect
statements.
When you use the PEX Netlist Virtual Connect statement, the Calibre xACT 3D formatter
checks for disjoint net fragments. If the formatter finds such a fragment, the application selects
a node on the fragment and connects this node using a low-value resistor to a node on the
“trunk” of the net model. Although the formatter makes a reasonable choice of nodes when
connecting, this connection is essentially arbitrary.
If you want a listing of the connections the Calibre xACT 3D formatter makes, then use the
-fmt_warnings switch on the command line during Calibre xACT 3D formatter invocation.
Some troubleshooting and integration techniques are provided to address common problems.
Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Optimization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Setting Up For Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Invocation Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Integration
Integration information is provided for CAD engineers who are deploying pre-configured tools
to their engineering groups.
Instructions for integrating the Calibre Interactive interface with layout viewers are available in
the “Setting the Socket Port for a Layout Viewer” appendix of the Calibre Interactive and
Calibre RVE User’s Manual.
• Preferences file
The Calibre Interactive preferences file for parasitic extraction is .cgipexdb. The default
location is $HOME/.cgipexdb. The preferences files save the settings on the Startup tab
of the Setup Preferences dialog and previously referenced runsets. When Calibre
Interactive starts it automatically reads the preference file.
• Runsets
A runset is a text file created by Calibre Interactive to store the settings specified in the
interface. Only non-default data is recorded. Users are typically prompted to load a
runset at the start of each interactive session.
• Run scripts
A run script is any script which can be executed. For Calibre Interactive, run scripts are
typically part of a trigger as described in the “Trigger Functions in Calibre Interactive”
chapter of the Calibre Interactive and Calibre RVE User’s Manual. More generally,
shell run scripts may also be used at the command line to execute a series of Calibre
Interactive runs.
• Rule files
A rule file is a file that contains SVRF and TVF statements specifying the details of the
Calibre run. Many SVRF specifications are only accessible in the rule file; a user cannot
override them from Calibre Interactive.
Calibre Interactive loads files in the following sequence when invoked:
The preferences file populates the runset list and startup preferences.
2 Load a runset file and fill in the fields in the GUI.
If the Load Runset File dialog has not been disabled by the preferences file, Calibre
Interactive prompts the user to specify a runset. If the dialog has been disabled or the
user cancels the dialog, no runset is loaded and default values are used in the fields.
3 Load files as user specifies.
Typically, the user loads at least one rule file but may also load additional runsets.
Rule file settings are not loaded into the GUI until the user clicks Load.
The rule file and additional runsets can change fields already set in stages 1 and 2.
The most recently loaded settings file (or manual setting by the user) is used at
execution.
4 At execution, Calibre Interactive prepares a control file and runs any pre- and
post-execution trigger run scripts.
5 At exit, Calibre Interactive prompts the user to save current settings to the loaded
runset file. If the user made any changes, they will overwrite previous settings.
In stage 4, Calibre Interactive prepares a control file. This file includes the rule file and GUI
settings. Its name is based on the rule file name. For example, if the rule file is “rules”, then the
control file is “_rules_”. This file is written to the working directory. Subsequent runs overwrite
control files with the same name.
For information on how to run a batch shell script in Calibre Interactive see “Running Batch
Calibre with a Calibre Interactive Control File” in the Calibre Interactive and Calibre RVE
User’s Manual.
/bin/rm -rf
The following is an example shell script that follows best practices. Alternatives are provided
together, with all but one commented out. This example run script can be used as the basis of
your scripts.
#!/bin/csh -f
## Ensure which version will be run
setenv MGC_HOME /net/tools/calibre/<calibre_release>/lv_micro.ixl
setenv PATH $MGC_HOME/bin:$PATH
## Clean the working directory
/bin/rm -r *svd* *SVD* lvs.log phdb.log pdb.log fmt.log *sum tr*
####### Use this environment variable for debugging ###############
###################################################################
#setenv CALIBRE_ECHO_RULE_FILE YES
######## Run-Specific Environment Variables #######################
###################################################################
# Mentor Graphics Variables
# Your Flow Variables
#setenv PROCESS_SIZE 90
#setenv PROCESS_TYPE CU
#setenv ADD_FILL NO
## Hcells for LVS and PHDB
set h = ""
#set h = "-hcell hcells"
## Xcells for xACT PDB
set x = ""
#set x = "-xcell xcells"
set r = "rules"
set c = "layout_primary"
###### Run PHDB, PDB, and FMT steps
$MGC_HOME/bin/calibre -lvs -hier -spice svdb/$c.sp $h $r >&! lvs.log
#$MGC_HOME/bin/calibre -xact -phdb $x $r >&! phdb.log
$MGC_HOME/bin/calibre -xact -3d -rcc $x $r >&! pdb.log
$MGC_HOME/bin/calibre -xact -fmt -all $x $r >&! fmt.log
Optimization
Tips are provided for common optimization problems that CAD engineers are asked to tackle.
Optimization is a broad topic, and these suggestions are by no means exhaustive.
When you are working with parasitics, you should scale your layouts using the PEX Magnify
statement instead of the DRC methods of Magnify or Precision and Resolution because
PEX Magnify can also scale your device properties.
If you are also scaling the layout for Calibre nmDRC and nmLVS, be sure that your
combination of statements does not just change the scale. See “Input Layout Database
Magnification” in the Calibre Verification User’s Manual for more details.
Troubleshooting
Analysis techniques are provided for CAD engineers with some simple heuristics to aid in-
house troubleshooting. This includes many of the steps used by Mentor Graphics support
personnel for initially diagnosing problems.
Setting Up For Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Invocation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Invocation Issues
If you are getting a usage message when you try to invoke Calibre, there is an error in the
command line.
Check for the following:
• Are any of the switches incompatible? See “Calibre xACT Tool Invocation Reference”.
• Are there any errors in syntax such as missing arguments or switched order?
If Calibre invokes but quickly exits, there is typically an explanatory error message, such as
“Could not get requested number of CPUs” or “problem with access of file”. If the run did not
cleanly exit with an error message, and you can reproduce the problem, please open a service
request on supportnet.mentor.com.
• Fabrication equipment can vary. A wafer processed in an etch station will not be
identical to a wafer processed in a neighboring etch station. This is sometimes referred
to as “process variation”.
• Relative placements interact. The way lines and fill are placed (both spacing and internal
width) changes how the actual drawn shapes appear. RET/OPC corrects as much of this
as possible, but there is always some effect.
• Metals and dielectric can bulge or sag. Additionally, steps such as reactive ion etching
cause some lines to be etched deeper than others. The changes in height are referred to
as “loading”.
• The chemical-mechanical polishing (CMP) step will grind down the interiors of large
polygons, and some regions of the wafer, more than others.
• In-die variation — Local density is used in conjunction with specialized rules to make
adjustments to the drawn shapes. The adjusted shapes are used for calculating parasitic
effects. Some foundries also supply loading effects in their in-die information. See “In-
Die Variation” for more detail.
• CMP modeling — If your foundry provides appropriate CMP modeling files, you can
have Calibre xACT read them in and make adjustments to metal thickness.
If you have not placed your metal fill yet, you almost certainly do not want to use in-die
variation or CMP modeling. These techniques are sensitive to local density, which will change
when you add metal fill.
In-Die Variation
The in-die variation workflow takes into account the in-die variation of resistance and
capacitance values in the extraction process.
When appropriately calibrated, the Calibre xACT tool uses the drawn dimensions of each
conductor along with the local density of the material in a region around the conductor to
determine the actual width, spacing, and thickness of each line.
The concept of local density is key to predicting the actual dimensions of each line. The density
of material in a region or window around each conductor affects the thickness of the line, and
indirectly, the width. Figure 15-2 shows how local density can vary from region to region.
In window (a), the area occupied by the layer material is relatively small compared to the area
of the window itself; the local density is low. In window (b), the ratio of conductor area to
window area is much higher, and local density is therefore much higher. Even though all of the
lines in (a) and (b) have the same drawn width, the actual widths and thicknesses will differ
between (a) and (b).
Prerequisites
In-die variation is generally enabled by the foundry. The Calibre xACT user can turn it on or
off, but not change its values.
Caution
Calibrated rules created before version 2008.2 allowed the use of manually created Parasitic
Variation statements for similar effects, but the newer encrypted calibrated rules are not
compatible with this.
The following method is preferred, because the xCalibrate rule file generator can more
accurately calculate the effect of in-die variation on the capacitance and resistance equations.
Procedure
1. The foundry performs process measurements and determines how density and edge-to-
edge distance affects properties such as edge displacement, thickness, temperature
coefficients, and resistance.
2. The foundry creates in-die tables that follow the format described in Table Syntax in the
xCalibrate Batch User’s Manual.
3. The foundry runs calibration and provides calibrated rules as part of its design kit.
4. The CAD engineer at the chip design company provides wrapper scripts and SVRF files
for the Calibre users. These may turn on or off in-die effects.
5. If the wrapper scripts do not turn on in-die functionality, the engineer running
Calibre xACT may choose to enable in-die variation.
6. Or, for manually-created calibrated rules, you can include in-die variation with the
following technique:
Obtain information on in-die variation from the foundry.
7. Add Parasitic Variation statements to your rule file to model the effects of in-die
variation on width, thickness, and resistance. Because you will not always want to
include in-die effects, it is recommended to enclose the lines within a #ifdef
preprocessor directive.
Note
Older calibrated rule files may already include some Parasitic Variation statements.
CMP Modeling
The CMP modeling workflow for modeling chemical-mechanical polishing adds some
specialized steps to the extraction process.
CMP models predict how much erosion of the dielectric and dishing of metal occur on the wafer
surface because of the CMP step in manufacturing. The models create a grid of the wafer and,
for each square, determine the amount of polishing force or erosion. (The exact effect calculated
by the CMP model depends on which modeling program you are using.)
Figure 15-3 shows the potential effects of CMP. The metal is softer than the dielectric, and so is
abraded more rapidly, resulting in dishing. Where dense stretches of metal switch to dielectric,
the polishing agent can “pile up” on one side, resulting in uneven erosion. Design geometry
interacts with the CMP forces to dictate exactly how thickness will vary.
Figure 15-4 illustrates a side effect of the interaction: metal fill placement completely changes
the profile of the CMP erosion. Notice, however, that even very regular metal fill still does not
eliminate the uneven wear.
CMP models only predict how thickness will be affected. They can be used in conjunction with
in-die variation, which also calculates density effects on edge placement. Because having a full
view of neighboring shapes is important to both techniques, transistor-level (flat) extraction is
best. However, this requires large amounts of disk space to complete the extraction.
Prerequisites
Most manufacturing processes use chemical-mechanical polishing (CMP) to planarize the wafer
surface after deposition. The effect of the CMP step is calculated using complex software which
creates data files. The foundry may supply those files as part of a design kit.
If you have CMP modeling files in the Praesagus or VCMP format, you can have Calibre xACT
use them to modify thickness for the conductors. When CMP data is used in conjunction with
in-die variation, the CMP data is used instead of the in-die data.
Procedure
1. The foundry runs CMP modeling software and adds the data to the design kit.
2. The CAD group places the CMP files in a location accessible to the engineers running
Calibre xACT.
3. The CAD group sets up the environment variables and files for running CMP modeling.
See “Varying Thickness with CMP Files” for more information.
4. When appropriate, the engineer running Calibre xACT enables CMP input during
extraction.
CMP effects are sensitive to neighborhood density. Most of the time you would not
benefit from including CMP data before placing metal fill.
The FS3 file is an intermediate file generated during a Calibre xACT 3D run.
This chapter describes the .fs3 file format.
The Calibre xACT 3D Reference and Calibre xACT 3D tools use an FS3 file as input during
PDB generation. This file contains the interconnect process technology data, the layout polygon
data for which the capacitance is calculated, and the extraction commands for the field solver.
The layout polygon data represents nets described as node-to-node segments with layer
information. Each polygon has a name that reflects the name of the net or net segment to which
the polygon belongs. The names of the nets or net segments for which the total and coupling
capacitance to be extracted are specified. Use the field solver SVRF statements to control the
options that appear in the FS3 file.
fs3_version v2012.3_0.31
Planar dielectric layer properties are listed here in their required order of appearance:
Dielectric Layers
A dielectric layer entry begins with the keyword diel followed by an ordered list of properties
for that layer.
Dielectric layer properties are listed here in their required order of appearance:
• extra_width — A floating point value that specifies the extra width of side walls on top
of the layer for a trapezoid shape.
• offset — An optional floating point value that specifies the offset needed to describe a
trapezoid shape. Note: This parameter is obsolete and is ignored.
This is an example of dielectric layer entries with the header:
Listed in their required order of appearance, layer properties for both normal and spacer
conformal dielectric layers include:
Listed in their required order of appearance, layer properties for both normal and spacer airgap
dielectric layers include:
This is an example of airgap dielectric layer entries for both normal and spacer airgaps:
Conductor Layers
There are two types of conductor layers: normal and spacer. Both contain actual routing
information. A conductor layer entry begins with the keyword cond followed by an ordered list
of properties for that layer.
Listed in the required order, the layer properties for both normal and spacer conductor layers
include:
• top_thk — A floating point value that specifies the conformal coating thickness on top
of a conductor.
• top_sp — A floating point value that specifies the spacing on top of a conductor.
• top_enc — A floating point number that specifies any enclosure on top of a conductor.
This is an example of conductor layer entries for both normal and spacer conductors:
Listed in their required order of appearance, layer properties for contact or via layers include:
Geometries
All layered structures are defined by polygons. The geometries section specifies the shapes of
the polygons on a given layer for all geometries in the region being extracted.One or more
geometries may exist in your design.
Table 16-2 lists the allowable geometry definitions.
The polygons for different structures are given in the following order:
• Dielectrics
• Conformal dielectrics
• For multiple conformal dielectrics the outer conformal is first and the inner conformal is
last
• Airgaps
type
_
id nodeNumber dielectricConstant
minSpacing z1 z2 layerName pointCount XYcoordinatePairs
[zmod
z1’ z2’
] [bias
xbias ybias
]
[dev
dev_id
[
dev_id...
]] [ign
ign_id
[
ign_id...
]]
The line begins with a designated type and the id separated by an underscore ( _ ).
• net_id where id is the id number of the net in accordance with the layout.
• win_id where id is the id number of the net in accordance with the layout.
• flr_id where id is the id number of the floating net in accordance with the layout.
• flt_id where id is the id number of the net in accordance with the layout.
The geometry entry types allowed for via conductors are:
• via_id where id is the id number of the via in accordance with the layout.
• wia_id where id is the id of the window via in accordance with the layout.
• flr_id where id is the name of the floating net in accordance with the layout.
• flt_id where id is the name of the net in accordance with the layout.
Table 16-3 describes the conductor geometry parameters.
Optional add on parameters that may be included in the geometry for conductors:
type
_
id nodeNumber dielectricConstant
minSpacing z1 z2 layerName pointCount XYcoordinatePairs
The line begins with a designated type and the id separated by an underscore ( _ ). The
geometry entry types allowed for dielectrics are:
• diel_id where id is the id number of the dielectric layer taken from the process
description.
• conf_id where id is the id of the created conformal dielectric.
• agap_id where id is the id of the created airgap.
Table 16-5 describes the dielectric geometry parameters.
The line begins with a designated type and the id separated by an underscore ( _ ).
Commands
Commands provide instructions to the field solver on what to extract and what to ignore. The
nets to be extracted are put in the end of the file.
Table 16-7 lists the allowable commands and their description.
Extract Commands
Extract commands specify the nets to be extracted by the field solver. Every “net + node id”
must be individually extracted or the field solver treats it as a window net. The line begins with
the required keyword extract.
extract
netID nodeID
[
netID nodeID
...]
The netID nodeID pairs are repeated for the number of segments per run. Extract commands are
given for all nets or net nodes to be extracted. The field solver computes the capacitance vector,
both total and coupling, of the nets defined in the extract list. The nets need to be segmented in
order to extract the distributed coupling capacitances. Each segment corresponds to a branch of
the circuit network and is noted by a node number.
The following is an example of some extract command entries including the section header:
// Extract commands
extract net_1 76
extract net_1 70
extract net_1 50
extract net_1 10
extract net_2 76
extract net_2 78
extract net_2 64
extract net_2 14
extract net_2 22
...
• node to node
• node to layer
• layer to layer
• node to base
• layer to base
The line begins with the required keyword exclude with the from and to specifications
separated by the required keyword between. The general form is:
exclude
from
between
to
The from portion of the entry must be one of the following forms:
// Exclude commands
exclude METAL_MOMR_M4_1 all between base all
exclude METAL_MOMR_M3_1 all between base all
exclude METAL_MOMR_M2_1 all between base all
exclude METAL_MOMR_M1_1 all between METAL_MOMR_M1_1 all
exclude METAL_MOMR_M2_1 all between METAL_MOMR_M2_1 all
...
// Exclude devices
exclude FDI_FSI_FINAL NET_2 30 between SALI_FINAL NET_17 856022
exclude FDI_FSI_FINAL NET_2 30 between FDI_FSI_FINAL NET_17 856022
exclude SALI_FINAL net_1 11 between SALI_FINAL net_30 904552
exclude SALI_FINAL net_1 11 between NDIFSI_FINAL net_30 904502
...
Calibre xACTView is a 3D layout viewer used to visualize technology stack and design
structures for integrated circuit designs in 2D and 3D views. It provides the ability to
graphically view the different polygons processed for capacitance extraction as seen by Calibre
xACT 3D and Calibre xACT 3D Reference.
This chapter describes the features of the Calibre xACTView tool.
Supplying the -fs3 filename.fs3 option automatically displays the FS3 file. Optionally,
supplying the parasitic database (PDB) with the -pdb switch allows Calibre xACTView to
display the actual layout net names instead of the net ids from the FS3 file. Use the -layers
option with the -fs3 option to specify which layers are visible in the FS3 Display Window upon
invocation of the Calibre xACTView tool. Use the -window option with the -fs3 option to
display a specified area of a large FS3 file upon invocation.
If you do not specify the -fs3 option, the Calibre xACTView tool opens with nothing displayed.
Select File > Open from the menu or the Open toolbar button to display the Input Files dialog
box (Figure 17-1).
Enter the name of the FS3 file you want to view or click the “...” button to display the Select
FS3 File dialog (Figure 17-2).
Load the parasitic database associated with the FS3 file to view net names instead of net ids for
polygons. Enter a parasitic database (PDB) name or click the “...” button to open the Select PDB
dialog (Figure 17-3). For more information on displaying net information, see “Net and Node
Information Display” on page 206.
For more information on Calibre xACTView invocation options, see “xactview” on page 246.
For details on the FS3 file format, see “FS3 File Structure” on page 185.
The Calibre xACTView session window is divided into three main areas:
• FS3 Display Window — Here the FS3 data can be viewed graphically from the 3D View
tab or as a text file from the Text View tab.
• Layer Palette — Use this palette to control the display of the layers shown in the
graphical view.
• Axes Window — Use this view to track the current orientation of the structure shown in
the 3D View window.
Display Controls
Options for display manipulation are accessible from the Calibre xACTView toolbars, menu
picks, or hotkeys. You can specify the direction of the rotation for all axes.
The following views are available to control the display shown in the 3D View tab’s graphical
view:
• Front view
• Back view
• Left view
• Right view
• Top view
• Bottom view
• 3D view
Pressing the left mouse down while dragging the cursor across the display window
automatically enables the 3D view and rotates the image. Use the arrow keys on your keypad or
the Up, Down, Left, and Right toolbar buttons to pan the image in 2D view.
By default, Calibre xACTView displays the net id and node number information found in the
FS3 file. To display the net name and node number, load the PDB associated with the design.
The Calibre xACTView tool uses the PDB file to map the net ids in the FS3 file to the actual
layout net names. For more information on loading the PDB, see “Calibre xACTView
Invocation” on page 201.
Use this window to specify the net ids and their associated nodes that you want to highlight in
the 3D View display window (Figure 17-7). Each net entry has controls that turn the
highlighting on or off, change the color of the highlight, or control the transparency. By default,
Calibre xACTView lists the net id and node number information found in the FS3 file. To
display the net name and node number, load the PDB associated with the design.
By default, the Nets/Nodes window is hidden. Use the Window > Nets/Nodes menu selection
to toggle the display of the Nets/Nodes window and the Devices window. This window may be
undocked from the application window or closed to increase the 3D viewing area.
Device Highlighting
Device highlighting is controlled by the Devices window (Figure 17-8).
Use this window to specify the devices that you want to highlight in the 3D View display
window (Figure 17-9). Each Device ID entry has controls that turn the highlighting on or off,
change the color of the highlight, or control the transparency. By default, Calibre xACTView
lists the device id information found in the FS3 file.
By default, the Devices window is hidden. Use the Window > Devices menu selection to toggle
the display of the Devices window and the Nets/Nodes window. This window may be undocked
from the application window or closed to increase the 3D viewing area.
Use this window to specify the layers with ignored capacitance that you want to highlight in the
3D View display window (Figure 17-12). Each layer entry has controls that turn the
highlighting on or off, change the color of the highlight, and control the transparency.
You can view ignored capacitance from one layer at a time. Select a layer name from the From
layer droplist (Figure 17-11) to display the associated To layer(s) in the list box.
Select the Remove Highlights button to clear the highlights from the display and clear the
selected layers from the Ignored Capacitance:Layers window.
Use the Window > Ignored Capacitance:Layers menu selection to toggle the display of the
Ignored Capacitance:Layers window. This window may be undocked from the application
window or closed to increase the 3D viewing area.
Layer Palette
The Calibre xACTView layer palette controls the appearance of the layers for the displayed
structure. The palette lists the layer names and types specified in FS3 file. The layer names are
listed in the order they appear in the FS3 file. Use this palette to turn the display of specific
layers on or off, change the color of a layer, or control the layer transparency.
The layer palette settings can be saved, loaded, or reset using controls found on the Options
menu. For example, use the Options > Save Layer Properties menu selection to save these
settings to a layer properties file. For more information on layer property controls, see the
“Options Menu” on page 219.
The layer palette window is open by default when the tool is invoked. This window may be
undocked from the application window or closed to increase the 3D viewing area. You may also
use the Window > Layers menu selection to toggle the display of the layer palette.
Figure 17-13 shows the layer palette (Layers window) for Calibre xACTView.
The layer transparency dropdown list controls the display of each layer shape shown in the FS3
Display window. The transparency choices are:
Axes Window
The Axes window displays the X, Y, and Z coordinate axes. This view tracks the orientation of
the structure shown in the FS3 display window.
This window may be undocked from the application window or closed to increase the 3D
viewing area. You may also use the Window > Axes menu selection to toggle the display of the
Axes window.
Menus
The Calibre xACTView GUI has the following menus:
• File — A pulldown menu that contains the open, export, and exit commands.
• View — A pulldown menu that contains the view manipulation selections. These
operations are also accessible from the horizontal and vertical toolbars.
• Layers — A pulldown menu that controls the types of layers shown in the 3D View
window and Layers window.
• Options — A pulldown menu containing the Preferences menu selection.
• Window — A pulldown menu that controls the display of the Layers, Axes, and Nets/
Nodes windows.
• Help — A pulldown menu that contains the About menu selection. The About menu
selection displays an informational dialog box containing the Calibre xACTView
version information.
File Menu
Figure 17-16 shows the File menu contents for Calibre xACTView.
“Calibre xACTView Invocation” on page 201 shows the Input Files dialog box. Use the Input
Files dialog box to specify the FS3 file you want to display in the Calibre xACTView window.
Optionally, you may also specify the PDB name to display the layout net names instead of the
net id when selecting nets in the display.
Figure 17-17 shows the Save to file dialog box. Use the Save to file dialog box to export the
current view to a PNG (*.png) file.
View Menu
Figure 17-18 shows the View menu contents for Calibre xACTView.
The View menu contains selections that control the display of the structure shown in the 3D
View window. Most of these selections can also be found on the toolbars. For more information
on the toolbars, see “Toolbars”.
Layers Menu
Figure 17-19 shows the Layers menu contents for Calibre xACTView.
The Layers menu controls which layers are shown in the 3D View window and the Layers
window. Toggle the display of a layer by selecting the menu item. A check mark or x next to the
menu item indicates that layer type is currently shown in the display.
Options Menu
Figure 17-20 shows the Options menu contents for Calibre xACTView.
Select Options > Preferences to display the Preferences dialog box. Use the Preferences dialog
box to set Ruler, Grid, Cross Section, and View preferences. Select Options > Reset
Preferences to reset all preferences to their defaults.
Figure 17-21 shows the Ruler tab in the Preferences dialog box. Use this dialog to control the
appearance and behavior of the ruler.
Figure 17-22 shows the Grid tab in the Preferences dialog box. Use this dialog to control the
appearance and positioning of the grid.
Figure 17-23 shows the Cross Section tab in the Preferences dialog box. Use this dialog to set
the color of the cutline and the step value used when tuning the position of the cutline.
Figure 17-24 shows the View tab in the Preferences dialog box. Use this dialog to set the
background color for the 3D View display window.
Select Options > Reset Preferences to reset the preferences to the tool defaults (Figure 17-25).
The layer properties file is an ASCII text file created with the Calibre xACTView tool that
contains the layer names, color, and transparency settings defined in the layer palette for each
displayed layer. Use the layer property controls on the Options menu to optionally create or
save, load, or reset your layer palette settings to the layer properties file (*.layerprops).
Select Options > Save Layer Properties to display the Save Layer Properties dialog
(Figure 17-26). To save the color and transparency settings for all layers currently shown in the
layer palette to a layer properties file, enter a file name and choose Save. If a file exists by the
name specified in this field, you are prompted to overwrite the file.
Select Options > Load Layer Properties to display the Load Layer Properties dialog
(Figure 17-27). To load previously saved layer palette settings, select a layer property file name
(*.layerprops) and choose Open. The color and transparency settings for displayed layers in the
layer palette are updated in the layer palette and 3D View display window.
Select Options > Reset Layer Properties to reset all palette display settings to the tool
defaults.
Window Menu
Figure 17-28 shows the Window menu contents for Calibre xACTView.
The Window menu toggles the display of the Layers, Axes, and Ignored Capacitance:Layers
windows. Change the window display by selecting the menu item. A check mark or x next to the
menu item indicates that window is currently shown. No check mark or x indicates the window
is hidden.
The Window menu also contains radio buttons used to control the display the Nets/Nodes or
Devices windows. Use the Nets/Nodes and Devices windows to highlight structures in the
display window. For more information on highlighting structures, see “Net and Node
Highlighting” or “Device Highlighting”.
Figure 17-29 shows the Calibre xACTView tool with its Layers, Ignored Capacitance Layers,
Devices, and Nets/Nodes windows hidden.
Help Menu
Figure 17-30 shows the Help menu contents for Calibre xACTView.
Select Help > About to display the About Calibre xACTView dialog box. This dialog box
displays the tools version information.
Toolbars
The Calibre xACTView toolbars provide quick access to the most commonly used operations.
By default the application window contains a horizontal toolbar and a vertical toolbar. These
toolbars may be undocked from the main application window or moved within the window
allowing you to customize your view.
Figure 17-31 shows the horizontal toolbar for Calibre xACTView.
• Open — Displays the Input Files dialog. Use this dialog to select and open an FS3 file.
• Ruler — Enables Ruler Mouse Mode. This item is available when you are in one of the
2D views. Use this tool to do measurements of your structure.
• Z All — Zoom all displays the entire structure in the 3D View window.
• Z In — Zoom in enlarges the image shown in the 3D View window by 20% increments.
• Z Out — Zoom out shrinks the image shown in the 3D View window by 20%
increments.
• Rot-X — Rotates the image in small increments along the x-axis. The direction of the
rotation can be set to either Clockwise or Counter-Clockwise from the View > Rotate
>X axis menu.
• Rot-Y — Rotates the image in small increments along the y-axis. The direction of the
rotation can be set to either Clockwise or Counter-Clockwise from the View > Rotate
>Y axis menu.
• Rot-Z — Rotates the image in small increments along the z-axis. The direction of the
rotation can be set to either Clockwise or Counter-Clockwise from the View > Rotate
>Z axis menu.
• Up — Pans the window view north.
• Down — Pans the window view south.
• Right — Pans the window view west.
• Left — Pans the window view east.
• Full — Restores the structure to its original form. Use this button to return to the full
structure display after a cross section operation.
• Section — Displays the Cross section view tools in the toolbar and initiates the creation
of a cross section. This button is accessible in the 2D view only. The entries for the
Cross section view tools are disabled until a cut line is drawn. Once the cut line is drawn,
select the Apply button to make the cut and display the cross section.
Figure 17-32 shows the vertical toolbar for Calibre xACTView.
Ruler
Ruler Mouse Mode is available when you are in one of the 2D views. Use this tool to measure
your structure in microns (um).
Figure 17-33 shows how the ruler measurements are displayed in both the 3D View display
window and the status bar.
The Ruler tab in the Preferences dialog box controls the appearance and behavior of the ruler
(see Figure 17-21). Use the Number of Rulers option in this dialog to specify the number of
rulers that can be drawn in the display; the minimum setting is 1 and the maximum setting is 10.
The following dialog appears when the maximum number of rulers have been drawn:
Figure 17-35 shows how multiple ruler measurements are displayed in both the 3D View
display window and the status bar. In this example, Number of Rulers is set to 5, and 4 out of 5
rulers have been drawn in the display. Note that Ruler 5 in the status bar has no value yet.
Select the Ruler toolbar button or change to 3D view to clear the drawn rulers from the display.
Calibre xACT command line options allow you to execute the tool from the command line or
with a run script.
This chapter contains the Calibre xACT tool invocation reference information.
Syntax Conventions
The command descriptions use font properties and several metacharacters to document the
command syntax.
Note
Omit braces, vertical bars, and notational fonts listed above when you actually enter a
command.
calibre -lvs
Runs the Calibre nmLVS-H tool and creates the persistent hierarchical database (PHDB) for use
by the Calibre xACT tool.
Usage
calibre -lvs -hier -spice directory_path/layout_primary.sp rule_file_name
Description
Runs the Calibre nmLVS-H tool and creates the Persistent Hierarchical Database (PHDB) for
use by the Calibre xACT tool.
When you invoke the Calibre nmLVS-H tool, you must specify an explicit path to the SVDB
directory using the following syntax:
directory_path/layout_primary.sp
where:
• directory_path is the path you specified in the Mask SVDB Directory statement in the
rule file
• layout_primary.sp is the design’s top-level cell you specified with the Layout Primary
statement in the rule file
Note
In standard LVS usage, you can specify any directory name for the SPICE netlist. To
use the LVS output in the PDB stage, however, directory_path must match the
Mask SVDB Directory setting.
Parameters
None. For complete Calibre nmLVS-H information, see the “Calibre nmLVS and Calibre
nmLVS-H” section of the Calibre Verification User’s Manual.
Examples
The SVRF rule file is design.rules and contains the following SVRF statements:
You invoke the Calibre nmLVS-H tool from the command line using the following syntax:
calibre -xact
Based on the input design data specified in the rule file, Calibre xACT extracts parasitic data,
performs parasitic analysis on the preprocessed data, and generates the output netlist.
Usage
calibre -xact [-c | -r | -rc | -rcc | -simple] [-g] [-3dselect] [-turbo [number_of_cpus] [-turbo_all]]
[-corner {corner [,corner]… }] [-wait time | -nowait] rule_file_name
Parameters
• [-c |-r | -rc | -rcc | -simple]
Selects the parasitic model. Select one of the following options:
• -g
Grounds any coupling capacitors.
• -3dselect
Invoke the 3D select extraction. Specify this flag when you specify the PEX Fieldsolver
Mode statemnet in your rule file to extract specific nets with the Calibre xACT 3D
fieldsolver tool. Do not use with -3d, -full, or -pdb.
• -turbo [number_of_cpus]
Specifies using multi-threaded parallel processing for extraction. The number_of_cpus
argument is a positive integer specifying the number of processors to use in the processing.
If you omit this number, the Calibre xACT tool runs on the maximum available for which
you have licenses. If you do not apply the -turbo switch, it defaults to running on two
processors if available. To force the Calibre xACT tool to run on only one processor, specify
“-turbo 1” on the command line.
For more information on this option, refer to the Calibre Administrator’s Guide.
• -turbo_all
Optional parameter used with the -turbo switch. This parameter halts the invocation if it
cannot secure the exact number of CPUs specified using -turbo.
• -corner {corner[,corner]… }
Specifies one or more process corners to be extracted in a multi-corner run. If you specify
two or more corner names, specify the names as a comma separated list with no spaces. If
the rules define multiple corners and you do not use this parameter, all corners are netlisted.
Do not use with the Calibre xACT digital flow.
• -wait time | -nowait
Specifies how Calibre xACT handles waiting for a license. By default, the tool waits
indefinitely for a license to become available. With the -wait parameter, the tool waits for
any appropriate license for the number of minutes specified by the time argument. The tool
exits if no licenses become available before time expires.
License checking occurs in two stages. The first pass checks for a qualified license without a
wait. If no license is acquired, a second pass is performed and a wait is done on the first
existing qualified license. If the -nowait parameter is specified, the second pass is not
performed.
• rule_file_name
Specifies the path to and name of the SVRF rule file.
Examples
To create an output netlist with a distributed RCC network (distributed resistance, coupling
capacitance, and intrinsic capacitance) for a layout name flow using an annotated GDS file
(PEX Netlist LAYOUTNAMES), use the following command:
For a source name flow (PEX Netlist SOURCENAMES), you must run Calibre LVS before
running Calibre xACT. For example:
PHDBs must be re-generated if they are inconsistent with a current run; this can occur if you
change the rule file.
Parameters
• -xact
Invokes the Calibre xACT tool. For the PHDB stage, the netlists contain layout names. Use
calibre -lvs for schematic names.
• -phdb
Runs connectivity extraction and device recognition on the layout database specified in the
rule file, and generates a PHDB.
The resulting PHDB is named layout_primary.phdb, where layout_primary is the name
specified by the Layout Primary specification statement in the rule file.
This command also generates a layout netlist named layout_primary.sp which is input to the
formatter.
The Calibre xACT tool places both the PHDB and the layout netlist in the SVDB.
• -noasic
Specifies to disable the ASIC extraction mode when including GDS metal fill or layout
blocks. By default, ASIC optimizations are on for LEF/DEF, and off for other formats.
Specifying this flag ensures that these optimizations are not used for fill extraction that
involves GDS data.
• -turbo [number_of_cpus]
Specifies using multi-threaded parallel processing for PHDB creation. The number_of_cpus
argument is a positive integer specifying the number of processors (CPUs) to use in the
processing. If you omit this number, the Calibre xACT tool runs on the maximum available
for which you have licenses. If you do not apply the -turbo switch, it defaults to running on
two processors if available. To force the Calibre xACT tool to run on only one processor,
specify “-turbo 1” on the command line.
For more information on this option, see the Calibre Administrator’s Guide.
• -turbo_all
Optional argument used with the -turbo parameter. This parameter halts the invocation if it
cannot secure the exact number of CPUs specified using -turbo.
• -remote host[, host…]
Optional parameter to run the software on remote hosts using the MTFlex multi-threaded,
parallel processing architecture. It must be specified in conjunction with the -turbo
parameter. It enables multi-threaded operation on remote hosts of a distributed network.
You must specify at least one host parameter. A list of hosts is comma-delimited and
specifies that multiple hosts participate in multi-threaded operations. You must have the
required number of licenses for your job.
For more details, see the Calibre Administrator’s Guide.
• -remotefile filename
This parameter is part of the MTflex multi-threaded, parallel processing architecture, which
enables multi-threaded operation on remote hosts of a distributed network. It must be
specified in conjunction with the -turbo parameter, which specifies the number of
processors you are using, including those on the remote hosts. The filename specifies the
pathname of a configuration file containing information for the local and remote hosts. You
must have the required number of licenses for your job.
For more details, see the Calibre Administrator’s Guide.
• -hcell hcell_list
Specifies the path to and name of the hcell file. It is used to create hierarchical PHDBs. See
“Hierarchy Control with Xcells” for an in-depth discussion of hcells and xcells.
• rule_file_name
Specifies the path to and name of the SVRF rule file.
Examples
The following command invokes PHDB creation using a Calibre xACT license:
The following command runs the same job on a computer named lsf3:
The following command runs the same job on two remote host computers named lsf2 and lsf3:
• -turbo [number_of_cpus]
Specifies using multi-threaded parallel processing for PDB creation. The number_of_cpus
argument is a positive integer specifying the number of processors to use in the processing.
If you omit this number, the Calibre xACT tool runs on the maximum available for which
you have licenses. If you do not apply the -turbo parameter, it defaults to running on two
processors if available. To force the Calibre xACT tool to run on only one processor, specify
“-turbo 1” on the command line.
For more information on this option, refer to Calibre Administrator’s Guide.
• -turbo_all
Optional argument used with the -turbo parameter. This parameter halts the invocation if it
cannot secure the exact number of CPUs specified using -turbo.
• -remote host[, host…]
Optional parameter used to run the software on remote hosts using the MTFlex multi-
threaded, parallel processing architecture. It must be specified in conjunction with the -turbo
switch. It enables multi-threaded operation on remote hosts of a distributed network. You
must specify at least one host parameter. A list of hosts is comma-delimited and specifies
that multiple hosts participate in multi-threaded operations. You must have the required
number of licenses for your job.
For more details, see the Calibre Administrator’s Guide.
• -remotefile filename
This switch is part of the MTflex multi-threaded, parallel processing architecture, which
enables multi-threaded operation on remote hosts of a distributed network. It must be
specified in conjunction with the -turbo switch, which specifies the number of processors
you are using, including those on the remote hosts. The filename specifies the pathname of a
configuration file containing information for the local and remote hosts. You must have the
required number of licenses for your job.
For more details, see the Calibre Administrator’s Guide.
• -xcell xcell_list
Optional switch to create the PDB hierarchically. Specifies the path to and the name of the
file containing a list of cells to be preserved during extraction (xcells). For more information
on xcells, see “Hierarchy Control with Xcells” on page 135. Used only in the PDB
extraction flow.
When -xcell is specified without -full, the primary cell is extracted to the boundaries of the
xcells.
• -full
Optional switch used in conjunction with the -xcell switch. Performs hierarchical extraction,
with fully netlisted xcells. Used only in the PDB extraction flow. Do not use with -hybrid.
For more information, see “Hierarchical Memory Extraction” on page 95.
• -select
Specifies to exclusively extract nets using the net names you specify with PEX Extract
Include SVRF statement. For more information, see “Extracting Particular Nets with the
Calibre xACT 3D PDB flow” on page 153. Use together with -hybrid to extract all nets
selected for xRC and all nets selected for xACT, then combine the extraction results into a
single PDB. Used only in the PDB extraction flow.
• -noasic
By default, ASIC optimizations are off for all Calibre xACT 3D supported formats.
• -nocheck
Continues the extraction run with only a warning if file date stamps (commented
checksums) are inconsistent with each other. If -nocheck is not specified and the date
stamps are inconsistent, the extraction run stops.
• -pdb_info
Controls whether messages from the analyzer are printed to the transcript.
• -E output
Specifies an output file name for SVRF code generated by the TVF processor. If
rule_file_name contains no TVF statements, output is empty. TVF code is processed before
the run is started.
• -tvfarg argument
Specifies an argument that is passed to a compile-time TVF script. The argument can
contain no space characters. The argument is read by the tvf::get_tvf_arg command in the
TVF rule file. For more information about TVF see the Standard Verification Rule Format
(SVRF) Manual.
• rule_file_name
Specifies the path to and name of the SVRF rule file.
Examples
This example extracts resistance and distributed capacitance in a direct netlisting flow.
This example shows a select net run using the PDB extraction flow.
This example shows a hybrid run using the PDB extraction flow.
The formatter then includes the TSV parasitic information in the generated netlist.
• -select
Specifies exclusively extracting nets using the net names you specify with the PEX Extract
Include SVRF statement. For more information, see “Extracting Particular Nets with the
Calibre xACT 3D PDB flow” on page 153.
• -pdb_info
Controls whether messages from the analyzer are printed to the transcript.
• rule_file_name
Specifies the path to and name of the SVRF rule file.
• -fs3 fs3_file_name
An optional parameter set that specifies the supplied input file (fs3_file_name) as FS3. This
option set is used when running Calibre xACT 3D Reference standalone to generate a
capacitance matrix.
Examples
This example extracts resistance and distributed capacitance, and stores the results in the pdb.
This example generates a matrix file (.mtx) and an output file (.out).
You specify the output formats and filename locations with the PEX Netlist, PEX Netlist Select,
PEX Netlist Simple, and PEX Report statements in the rule file.
Parameters
• -fmt
Produces netlists and reports from parasitic data stored in PDBs.
This argument generates netlists and reports from parasitic data generated during selected
and flat extraction. Selected nets and flattened global nets are processed with the same
command line parameters because, in both cases, the parasitic model represents nets
extracted in their entirety and flattened to the top-level cell. Netlists and reports use layout
netlist names unless source names are specified in the rule file. Parasitic models are named
cell_name%net_name in the output netlists.
• -netmodel
Specifies to perform netlist formatting using a file used for selected nets with assigned net
models. The SVRF rule file must contain a PEX Netlist Select File statement. This option
cannot be used with -c, -r, -rc, -rcc, or -all options. It can only be used with the -simple
option.
• {-c | -r | -rc | -rcc | -all | -simple}
Selects the output mode. Select one of the following:
• -g
Grounds any coupling capacitors.
• -xcell xcell_list
Required if the PDB contains only cells extracted with -incontext. Formerly, required with
all hierarchical PDBs to specify the path to and name of the xcell file. Retained for
backwards compatibility in scripts.
• -full
Specifies that the formatter should produce a fully hierarchical netlist.
• -corner {corner[,corner]… | all}
Selects the process corners to write out. If you specify two or more corner names, do not
place a space between names. If the rules define multiple corners and you do not use this
switch, only the typical corner is netlisted.
When -corner is used in the formatter stage, sensitivity netlisting is disabled and sensitivity
variations do not appear in the netlist.
• -fmt_warnings
Displays warning messages while the Calibre xACT formatter runs. Otherwise, messages
are not displayed.
• -fmt_info
Displays informational messages while the Calibre xACT formatter runs. Otherwise,
messages are not displayed.
• -nocheck
Continues the extraction run with only a warning if file date stamps (commented
checksums) are inconsistent with each other. If -nocheck is not specified and the date
stamps are inconsistent, the extraction run stops.
• rule_file_name
Specifies the path to and name of the SVRF rule file.
Examples
To write resistance with distributed capacitance and coupled capacitance between nets to the
output netlist, use the following invocation:
When using a net file to define how specific nets should be formatted, use the following
invocation:
For more information on PEX Netlist Select File see the Standard Verification Rule Format
(SVRF) Manual.
xactview
Invokes the Calibre xACTView 3D layout viewer.
Note
Using the Exceed on Demand (EoD) client installed on the Windows platform to run
Calibre xACTView can cause the session to fail or the display panel to appear blank. Use an
EoD client installed on a Linux RH6 platform to run Calibre xACTView instead.
Usage
xactview [-fs3 fs3_file_name [-pdb pdb_name] [-layers layers] [-window x1 y1 x2 y2]]
| [-version | -help]
Parameters
• -fs3 fs3_file_name
An optional parameter set used to open the FS3 file in Calibre xACTView tool.
• -pdb pdb_name
An optional parameter set used with the -fs3 option that loads the parasitic database
associated with the FS3 file. Use this option to view net names instead of net ids for
polygons in the Calibre xACTView tool.
• -layers layers
An optional parameter set used with the -fs3 option to specify which layers are visible in the
FS3 display window upon invocation of the Calibre xACTView tool. The layers parameter
is a list of one or more layer names found in the FS3 file separated by spaces.
• -window x1 y1 x2 y2
An optional parameter set used with the -fs3 option to specify the top view display of a
small portion of a large FS3 file in the FS3 display window upon invocation of the Calibre
xACTView tool. This option is not available from within the Calibre xACTView GUI.
• -version
An optional switch used to output the version of the Calibre xACTView tool.
• -help
An optional switch used to output the usage for the Calibre xACTView tool.
Description
Invokes the Calibre xACTView 3D layout viewer. The parameters are optional. You can invoke
the viewer then load an FS3 file from the Calibre xACTView GUI. Use the viewer to
graphically analyze the different polygons processed for capacitance extraction by Calibre
xACT 3D and Calibre xACT 3D Reference.
Examples
This example invokes the Calibre xACTView tool.
xactview
This example invokes the Calibre xACTView tool and loads the FS3 file, displaying a graphical
view of the 3D structure.
This example invokes the Calibre xACTView tool, loads the FS3 file, and loads the PDB
associated with the design. Loading the PDB allows you to view net names instead of net ids for
polygons in the Calibre xACTView tool.
This example invokes the Calibre xACTView tool and loads the FS3 file displaying only the
layers ipoly, gate, metal1, and metal2. Upon invocation, the display option for all other layers is
set to off.
Various extraction reduction techniques are available to streamline the extraction process.
Capacitive and Resistive Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Threshold-based Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
TICER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
• PEX Reduce CC
• PEX Reduce Mincap
• PEX Reduce Minres
PEX Reduce CC reduces the number of coupled capacitors by converting coupled capacitors
that meet some constraint to lumped capacitance. The lumped capacitance on a net is
represented as a single value coupled to ground, thus reducing the overall netlist size.
PEX Reduce Mincap reduces both intrinsic and coupled capacitors based on a user-defined
threshold value. The command can specify to remove or combine capacitors.
PEX Reduce Minres reduces parasitic resistors by combining them based on a user-defined
threshold value. The command combines parasitic resistors.
Note
The PEX Reduce CC reduction overall provides the best control. It is the only one which
bounds the error that can be introduced by aggressive reduction. Mentor Graphics
recommends replacing PEX Reduce Lumped with PEX Reduce CC.
PEX Reduce CC
The PEX Reduce CC specification is applied during netlisting. The total coupling capacitance
between two nets is compared to a constraint, either an absolute value such as 3 femtofarads or
a percentage of the total net capacitance for either net. If the coupling capacitance is less than
the constraint, it is decoupled from the nets and included in the lumped capacitance to ground.
Note the percentage constraint must hold for both nets.
PEX Reduce CC runs before PEX Reduce TICER. For more information, see PEX Reduce CC
in the Standard Verification Rule Format (SVRF) Manual.
By setting the REMOVE threshold, any capacitors that fall below the threshold value are either
grounded or removed.
By setting the COMBINE threshold, any capacitors that fall below the threshold value are
combined with neighboring capacitors on the same net.
For more information see PEX Reduce Mincap in the Standard Verification Rule Format
(SVRF) Manual.
For more information see PEX Reduce Minres in the Standard Verification Rule Format
(SVRF) Manual.
Threshold-based Reduction
The PEX Reduce Digital statement decreases the size of netlists and databases.
When you use the PEX Reduce Digital statement in your rule file, the Calibre xACT tool uses
the threshold you define for distributed RC parasitic extraction; if a distributed RC model meets
the threshold, then the Calibre xACT formatter converts the model into a lumped C model by
discarding the resistors.
TICER
TICER stands for “Time Constant Equilibration Reduction”.
You specify this reduction method in your SVRF rule file using the following SVRF statement
and keyword:
where frequency is a user-defined calculated number controlling which nodes in the circuit the
tool can select for subsequent elimination; specifically, the tool selects nodes with time
constants less than the frequency parameter.
In your rule file, specify the calculated frequency parameter in hertz and express the value in the
PEX Reduce TICER statement using scientific notation. For example:
Using the Calibre Interactive PEX interface, specify TICER reduction by selecting “Enable
TICER reduction below” and entering a frequency. The “Enable TICER reduction below”
option is in the PEX Options pane. To enable PEX Options, select Setup > PEX Options in the
Calibre Interactive - PEX menu.
• Setting the frequency parameter to a higher value results in larger (more R and C
elements) interconnect circuits having accuracy over a wider bandwidth.
• Setting the frequency parameter to a lower value results in more compression and an
earlier roll-off in accuracy.
where:
transition_time_minimum — the shortest rise or fall time you expect in your design. In general,
you can estimate this value using 1/5 of your design’s switching delay.
These changes are caused by how RC delays are calculated when using TICER. Including
temperature coefficients in the extraction process affects the final values of parasitic resistors.
During TICER reduction the values for resistors and capacitors are recalculated so that the RC
delayer in the network remains unchanged. Including temperature coefficients for resistors
affects the recalculated values for the parasitic capacitors in the final netlist.
backannotation
A process where extracted parasitics are added to the source netlist for parasitic re-simulation.
coupled capacitance
The capacitance between two conductors.
disjoint parasitic
A parasitic element associated with an incompletely routed net.
distributed capacitance
Parasitic capacitance modeled with separate elements distributed over a net that is divided into
segments.
FS3 file
A generated file containing the interconnect process technology data (layer descriptions), the
layout polygon 3D data (geometry and shape descriptions), and the extraction commands for the
field solver.
floating net
A net that is not electrically grounded through connection to a device or xcell port.
fringe capacitance
The capacitance between the side of a conductor and either the substrate (intrinsic) or the bottom
or top of another conductor (crossover).
gate-level extraction
A type of hierarchical extraction in which nets are extracted down to user-defined cells, but no
further. The PDB and PHDB contain no information about cell contents. See “Calibre xACT 3D
Gate-Level Extraction”.
hcell
A user-specified hierarchical cell used by Calibre nmLVS.
hierarchical extraction
A type of extraction which extracts data for each user-defined cell as well as the top level of the
design. See “Hierarchical Memory Extraction”.
in-context cells
Cells that are specified in an xcell file for in-context extraction.
in-die variation
During parasitic extraction, the drawn dimensions of conductors along with the local density of
the material in a region around the conductor are used to determine the actual width, spacing, and
thickness of each line.
intrinsic capacitance
The capacitance between a net and substrate (ground).
lumped capacitance
The amount of parasitic capacitance for a net. The lumped capacitance is represented as a single
parasitic capacitor between net and ground and includes all intrinsic and coupled capacitance
effects.
map file
A file which maps layout layer names to layer names used in a SVRF rule file.
mutual inductance
Defined as the ratio of electromotive force (emf) generated between two inductors, or the full
emf effect of one current loop over another.
nearbody capacitance
The capacitance between the sides of two conductors, either on the same layer or different layers.
net exclusions
Nets in the design for which no parasitic model is extracted.
parasitic models
A set of multi-variable polynomial equations that compute parasitic effects.
parasitic netlist
A netlist containing models of the parasitic effects. The exact format and types of parasitics are
specified by SVRF statements and command-line options.
PHDB
The Persistent Hierarchical Database, a database that stores information about your layout.
PDB
The Parasitics Database created by the extraction step. This database contains information about
the parasitic capacitance and resistance.
plate capacitance
The capacitance between the lower surface of a conductor and the substrate, or the lower surface
of a conductor and the upper surface of another conductor.
primitive cell
A cell that a designer provides from a standard library (for example, nand, xor, or). In
hierarchical extraction, a primitive cell is designated with a -P in the xcell file and does not have
parasitics extracted.
probe points
User-specified points on a net that are labeled and used to verify timing.
process corners
The variations on a “typical” process: for instance, metal thickness may not be exactly
controlled.
process variation
Deterministic or random variability resulting from manufacturing process steps responsible for
creating devices and interconnect in an integrated circuit.
signal net
A net that either has connections to devices or xcell ports, or is designated a port.
replicated device
Devices or cells that are repeated and connected together in a series or parallel combination.
Replicated devices may correspond to one device on the source side (netlist or schematic).
self inductance
The change in a magnetic field of a conductor due to a change in current flow.
sensitivity aware
A type of extraction where electronic or physical sensitivities are taken into account during the
extraction process. See also “process variation”.
smashed devices
Devices or cells that consist of drawn layout polygons at the same hierarchical level, also called
“flattened”.
source-based extraction
A type of extraction where the extracted parasitics from the layout are included in the source
netlist, where layout devices are matched to source devices. See “Backannotating Parasitics to a
Source Netlist” and “Using the Source Based Flow”.
SVDB
The Standard Verification Database. The term is also used to indicate the directory named in the
MASK SVDB DIRECTORY statement. The SVDB directory also contains the PHDB and PDB.
TICER
TIme Constant Equilibration Reduction method, used to reduce parasitic networks. See
“TICER”.
transistor-level extraction
A type of extraction where the design’s interconnect nets are flattened into a top-level cell. For
more information, see “Calibre xACT Flat Transistor-Level Extraction”.
xcell
A user-specified extraction cell. The xcell appears in the generated netlists as a circuit. Every
xcell must also be an hcell.
xcell file
An ASCII file that maps xcells to cells defined in the layout. For certain types of extraction, the
xcell file settings may also affect whether parasitics are extracted.
For third-party information, refer to Third Party Software for Calibre Products.
End-User License Agreement
The latest version of the End-User License Agreement is available on-line at:
www.mentor.com/eula
IMPORTANT INFORMATION
USE OF ALL SOFTWARE IS SUBJECT TO LICENSE RESTRICTIONS. CAREFULLY READ THIS LICENSE
AGREEMENT BEFORE USING THE PRODUCTS. USE OF SOFTWARE INDICATES CUSTOMER’S COMPLETE
AND UNCONDITIONAL ACCEPTANCE OF THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT.
ANY ADDITIONAL OR DIFFERENT PURCHASE ORDER TERMS AND CONDITIONS SHALL NOT APPLY.
This is a legal agreement concerning the use of Software (as defined in Section 2) and hardware (collectively “Products”)
between the company acquiring the Products (“Customer”), and the Mentor Graphics entity that issued the corresponding
quotation or, if no quotation was issued, the applicable local Mentor Graphics entity (“Mentor Graphics”). Except for license
agreements related to the subject matter of this license agreement which are physically signed by Customer and an authorized
representative of Mentor Graphics, this Agreement and the applicable quotation contain the parties’ entire understanding
relating to the subject matter and supersede all prior or contemporaneous agreements. If Customer does not agree to these
terms and conditions, promptly return or, in the case of Software received electronically, certify destruction of Software and all
accompanying items within five days after receipt of Software and receive a full refund of any license fee paid.
1.1. To the extent Customer (or if agreed by Mentor Graphics, Customer’s appointed third party buying agent) places and Mentor
Graphics accepts purchase orders pursuant to this Agreement (each an “Order”), each Order will constitute a contract between
Customer and Mentor Graphics, which shall be governed solely and exclusively by the terms and conditions of this Agreement,
any applicable addenda and the applicable quotation, whether or not those documents are referenced on the Order. Any
additional or conflicting terms and conditions appearing on an Order or presented in any electronic portal or automated order
management system, whether or not required to be electronically accepted, will not be effective unless agreed in writing and
physically signed by an authorized representative of Customer and Mentor Graphics.
1.2. Amounts invoiced will be paid, in the currency specified on the applicable invoice, within 30 days from the date of such invoice.
Any past due invoices will be subject to the imposition of interest charges in the amount of one and one-half percent per month
or the applicable legal rate currently in effect, whichever is lower. Prices do not include freight, insurance, customs duties, taxes
or other similar charges, which Mentor Graphics will state separately in the applicable invoice. Unless timely provided with a
valid certificate of exemption or other evidence that items are not taxable, Mentor Graphics will invoice Customer for all
applicable taxes including, but not limited to, VAT, GST, sales tax, consumption tax and service tax. Customer will make all
payments free and clear of, and without reduction for, any withholding or other taxes; any such taxes imposed on payments by
Customer hereunder will be Customer’s sole responsibility. If Customer appoints a third party to place purchase orders and/or
make payments on Customer’s behalf, Customer shall be liable for payment under Orders placed by such third party in the event
of default.
1.3. All Products are delivered FCA factory (Incoterms 2010), freight prepaid and invoiced to Customer, except Software delivered
electronically, which shall be deemed delivered when made available to Customer for download. Mentor Graphics retains a
security interest in all Products delivered under this Agreement, to secure payment of the purchase price of such Products, and
Customer agrees to sign any documents that Mentor Graphics determines to be necessary or convenient for use in filing or
perfecting such security interest. Mentor Graphics’ delivery of Software by electronic means is subject to Customer’s provision
of both a primary and an alternate e-mail address.
2. GRANT OF LICENSE. The software installed, downloaded, or otherwise acquired by Customer under this Agreement, including any
updates, modifications, revisions, copies, documentation, setup files and design data (“Software”) are copyrighted, trade secret and
confidential information of Mentor Graphics or its licensors, who maintain exclusive title to all Software and retain all rights not
expressly granted by this Agreement. Except for Software that is embeddable (“Embedded Software”), which is licensed pursuant to
separate embedded software terms or an embedded software supplement, Mentor Graphics grants to Customer, subject to payment of
applicable license fees, a nontransferable, nonexclusive license to use Software solely: (a) in machine-readable, object-code form
(except as provided in Subsection 4.2); (b) for Customer’s internal business purposes; (c) for the term of the license; and (d) on the
computer hardware and at the site authorized by Mentor Graphics. A site is restricted to a one-half mile (800 meter) radius. Customer
may have Software temporarily used by an employee for telecommuting purposes from locations other than a Customer office, such as
the employee’s residence, an airport or hotel, provided that such employee’s primary place of employment is the site where the
Software is authorized for use. Mentor Graphics’ standard policies and programs, which vary depending on Software, license fees paid
or services purchased, apply to the following: (a) relocation of Software; (b) use of Software, which may be limited, for example, to
execution of a single session by a single user on the authorized hardware or for a restricted period of time (such limitations may be
technically implemented through the use of authorization codes or similar devices); and (c) support services provided, including
eligibility to receive telephone support, updates, modifications, and revisions. For the avoidance of doubt, if Customer provides any
feedback or requests any change or enhancement to Products, whether in the course of receiving support or consulting services,
evaluating Products, performing beta testing or otherwise, any inventions, product improvements, modifications or developments made
by Mentor Graphics (at Mentor Graphics’ sole discretion) will be the exclusive property of Mentor Graphics.
3. BETA CODE.
3.1. Portions or all of certain Software may contain code for experimental testing and evaluation (which may be either alpha or beta,
collectively “Beta Code”), which may not be used without Mentor Graphics’ explicit authorization. Upon Mentor Graphics’
authorization, Mentor Graphics grants to Customer a temporary, nontransferable, nonexclusive license for experimental use to
test and evaluate the Beta Code without charge for a limited period of time specified by Mentor Graphics. Mentor Graphics may
choose, at its sole discretion, not to release Beta Code commercially in any form.
3.2. If Mentor Graphics authorizes Customer to use the Beta Code, Customer agrees to evaluate and test the Beta Code under normal
conditions as directed by Mentor Graphics. Customer will contact Mentor Graphics periodically during Customer’s use of the
Beta Code to discuss any malfunctions or suggested improvements. Upon completion of Customer’s evaluation and testing,
Customer will send to Mentor Graphics a written evaluation of the Beta Code, including its strengths, weaknesses and
recommended improvements.
3.3. Customer agrees to maintain Beta Code in confidence and shall restrict access to the Beta Code, including the methods and
concepts utilized therein, solely to those employees and Customer location(s) authorized by Mentor Graphics to perform beta
testing. Customer agrees that any written evaluations and all inventions, product improvements, modifications or developments
that Mentor Graphics conceived or made during or subsequent to this Agreement, including those based partly or wholly on
Customer’s feedback, will be the exclusive property of Mentor Graphics. Mentor Graphics will have exclusive rights, title and
interest in all such property. The provisions of this Subsection 3.3 shall survive termination of this Agreement.
4. RESTRICTIONS ON USE.
4.1. Customer may copy Software only as reasonably necessary to support the authorized use. Each copy must include all notices
and legends embedded in Software and affixed to its medium and container as received from Mentor Graphics. All copies shall
remain the property of Mentor Graphics or its licensors. Except for Embedded Software that has been embedded in executable
code form in Customer’s product(s), Customer shall maintain a record of the number and primary location of all copies of
Software, including copies merged with other software, and shall make those records available to Mentor Graphics upon
request. Customer shall not make Products available in any form to any person other than Customer’s employees and on-site
contractors, excluding Mentor Graphics competitors, whose job performance requires access and who are under obligations of
confidentiality. Customer shall take appropriate action to protect the confidentiality of Products and ensure that any person
permitted access does not disclose or use Products except as permitted by this Agreement. Customer shall give Mentor Graphics
written notice of any unauthorized disclosure or use of the Products as soon as Customer becomes aware of such unauthorized
disclosure or use. Customer acknowledges that Software provided hereunder may contain source code which is proprietary and
its confidentiality is of the highest importance and value to Mentor Graphics. Customer acknowledges that Mentor Graphics
may be seriously harmed if such source code is disclosed in violation of this Agreement. Except as otherwise permitted for
purposes of interoperability as specified by applicable and mandatory local law, Customer shall not reverse-assemble,
disassemble, reverse-compile, or reverse-engineer any Product, or in any way derive any source code from Software that is not
provided to Customer in source code form. Log files, data files, rule files and script files generated by or for the Software
(collectively “Files”), including without limitation files containing Standard Verification Rule Format (“SVRF”) and Tcl
Verification Format (“TVF”) which are Mentor Graphics’ trade secret and proprietary syntaxes for expressing process rules,
constitute or include confidential information of Mentor Graphics. Customer may share Files with third parties, excluding
Mentor Graphics competitors, provided that the confidentiality of such Files is protected by written agreement at least as well as
Customer protects other information of a similar nature or importance, but in any case with at least reasonable care. Customer
may use Files containing SVRF or TVF only with Mentor Graphics products. Under no circumstances shall Customer use
Products or Files or allow their use for the purpose of developing, enhancing or marketing any product that is in any way
competitive with Products, or disclose to any third party the results of, or information pertaining to, any benchmark.
4.2. If any Software or portions thereof are provided in source code form, Customer will use the source code only to correct software
errors and enhance or modify the Software for the authorized use, or as permitted for Embedded Software under separate
embedded software terms or an embedded software supplement. Customer shall not disclose or permit disclosure of source
code, in whole or in part, including any of its methods or concepts, to anyone except Customer’s employees or on-site
contractors, excluding Mentor Graphics competitors, with a need to know. Customer shall not copy or compile source code in
any manner except to support this authorized use.
4.3. Customer agrees that it will not subject any Product to any open source software (“OSS”) license that conflicts with this
Agreement or that does not otherwise apply to such Product.
4.4. Customer may not assign this Agreement or the rights and duties under it, or relocate, sublicense, or otherwise transfer the
Products, whether by operation of law or otherwise (“Attempted Transfer”), without Mentor Graphics’ prior written consent and
payment of Mentor Graphics’ then-current applicable relocation and/or transfer fees. Any Attempted Transfer without Mentor
Graphics’ prior written consent shall be a material breach of this Agreement and may, at Mentor Graphics’ option, result in the
immediate termination of the Agreement and/or the licenses granted under this Agreement. The terms of this Agreement,
including without limitation the licensing and assignment provisions, shall be binding upon Customer’s permitted successors in
interest and assigns.
4.5. The provisions of this Section 4 shall survive the termination of this Agreement.
5. SUPPORT SERVICES. To the extent Customer purchases support services, Mentor Graphics will provide Customer with updates and
technical support for the Products, at the Customer site(s) for which support is purchased, in accordance with Mentor Graphics’ then
current End-User Support Terms located at http://supportnet.mentor.com/supportterms.
6. OPEN SOURCE SOFTWARE. Products may contain OSS or code distributed under a proprietary third party license agreement, to
which additional rights or obligations (“Third Party Terms”) may apply. Please see the applicable Product documentation (including
license files, header files, read-me files or source code) for details. In the event of conflict between the terms of this Agreement
(including any addenda) and the Third Party Terms, the Third Party Terms will control solely with respect to the OSS or third party
code. The provisions of this Section 6 shall survive the termination of this Agreement.
7. LIMITED WARRANTY.
7.1. Mentor Graphics warrants that during the warranty period its standard, generally supported Products, when properly installed,
will substantially conform to the functional specifications set forth in the applicable user manual. Mentor Graphics does not
warrant that Products will meet Customer’s requirements or that operation of Products will be uninterrupted or error free. The
warranty period is 90 days starting on the 15th day after delivery or upon installation, whichever first occurs. Customer must
notify Mentor Graphics in writing of any nonconformity within the warranty period. For the avoidance of doubt, this warranty
applies only to the initial shipment of Software under an Order and does not renew or reset, for example, with the delivery of (a)
Software updates or (b) authorization codes or alternate Software under a transaction involving Software re-mix. This warranty
shall not be valid if Products have been subject to misuse, unauthorized modification, improper installation or Customer is not in
compliance with this Agreement. MENTOR GRAPHICS’ ENTIRE LIABILITY AND CUSTOMER’S EXCLUSIVE
REMEDY SHALL BE, AT MENTOR GRAPHICS’ OPTION, EITHER (A) REFUND OF THE PRICE PAID UPON
RETURN OF THE PRODUCTS TO MENTOR GRAPHICS OR (B) MODIFICATION OR REPLACEMENT OF THE
PRODUCTS THAT DO NOT MEET THIS LIMITED WARRANTY. MENTOR GRAPHICS MAKES NO WARRANTIES
WITH RESPECT TO: (A) SERVICES; (B) PRODUCTS PROVIDED AT NO CHARGE; OR (C) BETA CODE; ALL OF
WHICH ARE PROVIDED “AS IS.”
7.2. THE WARRANTIES SET FORTH IN THIS SECTION 7 ARE EXCLUSIVE. NEITHER MENTOR GRAPHICS NOR ITS
LICENSORS MAKE ANY OTHER WARRANTIES EXPRESS, IMPLIED OR STATUTORY, WITH RESPECT TO
PRODUCTS PROVIDED UNDER THIS AGREEMENT. MENTOR GRAPHICS AND ITS LICENSORS SPECIFICALLY
DISCLAIM ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.
8. LIMITATION OF LIABILITY. TO THE EXTENT PERMITTED UNDER APPLICABLE LAW, IN NO EVENT SHALL
MENTOR GRAPHICS OR ITS LICENSORS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES (INCLUDING LOST PROFITS OR SAVINGS) WHETHER BASED ON CONTRACT, TORT OR ANY OTHER
LEGAL THEORY, EVEN IF MENTOR GRAPHICS OR ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES. IN NO EVENT SHALL MENTOR GRAPHICS’ OR ITS LICENSORS’ LIABILITY UNDER THIS
AGREEMENT EXCEED THE AMOUNT RECEIVED FROM CUSTOMER FOR THE HARDWARE, SOFTWARE LICENSE OR
SERVICE GIVING RISE TO THE CLAIM. IN THE CASE WHERE NO AMOUNT WAS PAID, MENTOR GRAPHICS AND ITS
LICENSORS SHALL HAVE NO LIABILITY FOR ANY DAMAGES WHATSOEVER. THE PROVISIONS OF THIS SECTION 8
SHALL SURVIVE THE TERMINATION OF THIS AGREEMENT.
9.1. Customer acknowledges that Mentor Graphics has no control over the testing of Customer’s products, or the specific
applications and use of Products. Mentor Graphics and its licensors shall not be liable for any claim or demand made against
Customer by any third party, except to the extent such claim is covered under Section 10.
9.2. In the event that a third party makes a claim against Mentor Graphics arising out of the use of Customer’s products, Mentor
Graphics will give Customer prompt notice of such claim. At Customer’s option and expense, Customer may take sole control
of the defense and any settlement of such claim. Customer WILL reimburse and hold harmless Mentor Graphics for any
LIABILITY, damages, settlement amounts, costs and expenses, including reasonable attorney’s fees, incurred by or awarded
against Mentor Graphics or its licensors in connection with such claims.
9.3. The provisions of this Section 9 shall survive any expiration or termination of this Agreement.
10. INFRINGEMENT.
10.1. Mentor Graphics will defend or settle, at its option and expense, any action brought against Customer in the United States,
Canada, Japan, or member state of the European Union which alleges that any standard, generally supported Product acquired
by Customer hereunder infringes a patent or copyright or misappropriates a trade secret in such jurisdiction. Mentor Graphics
will pay costs and damages finally awarded against Customer that are attributable to such action. Customer understands and
agrees that as conditions to Mentor Graphics’ obligations under this section Customer must: (a) notify Mentor Graphics
promptly in writing of the action; (b) provide Mentor Graphics all reasonable information and assistance to settle or defend the
action; and (c) grant Mentor Graphics sole authority and control of the defense or settlement of the action.
10.2. If a claim is made under Subsection 10.1 Mentor Graphics may, at its option and expense: (a) replace or modify the Product so
that it becomes noninfringing; (b) procure for Customer the right to continue using the Product; or (c) require the return of the
Product and refund to Customer any purchase price or license fee paid, less a reasonable allowance for use.
10.3. Mentor Graphics has no liability to Customer if the action is based upon: (a) the combination of Software or hardware with any
product not furnished by Mentor Graphics; (b) the modification of the Product other than by Mentor Graphics; (c) the use of
other than a current unaltered release of Software; (d) the use of the Product as part of an infringing process; (e) a product that
Customer makes, uses, or sells; (f) any Beta Code or Product provided at no charge; (g) any software provided by Mentor
Graphics’ licensors who do not provide such indemnification to Mentor Graphics’ customers; (h) OSS, except to the extent that
the infringement is directly caused by Mentor Graphics’ modifications to such OSS; or (i) infringement by Customer that is
deemed willful. In the case of (i), Customer shall reimburse Mentor Graphics for its reasonable attorney fees and other costs
related to the action.
10.4. THIS SECTION 10 IS SUBJECT TO SECTION 8 ABOVE AND STATES THE ENTIRE LIABILITY OF MENTOR
GRAPHICS AND ITS LICENSORS, AND CUSTOMER’S SOLE AND EXCLUSIVE REMEDY, FOR DEFENSE,
SETTLEMENT AND DAMAGES, WITH RESPECT TO ANY ALLEGED PATENT OR COPYRIGHT INFRINGEMENT
OR TRADE SECRET MISAPPROPRIATION BY ANY PRODUCT PROVIDED UNDER THIS AGREEMENT.
11.1. If a Software license was provided for limited term use, such license will automatically terminate at the end of the authorized
term. Mentor Graphics may terminate this Agreement and/or any license granted under this Agreement immediately upon
written notice if Customer: (a) exceeds the scope of the license or otherwise fails to comply with the licensing or confidentiality
provisions of this Agreement, or (b) becomes insolvent, files a bankruptcy petition, institutes proceedings for liquidation or
winding up or enters into an agreement to assign its assets for the benefit of creditors. For any other material breach of any
provision of this Agreement, Mentor Graphics may terminate this Agreement and/or any license granted under this Agreement
upon 30 days written notice if Customer fails to cure the breach within the 30 day notice period. Termination of this Agreement
or any license granted hereunder will not affect Customer’s obligation to pay for Products shipped or licenses granted prior to
the termination, which amounts shall be payable immediately upon the date of termination.
11.2. Upon termination of this Agreement, the rights and obligations of the parties shall cease except as expressly set forth in this
Agreement. Upon termination of this Agreement and/or any license granted under this Agreement, Customer shall ensure that
all use of the affected Products ceases, and shall return hardware and either return to Mentor Graphics or destroy Software in
Customer’s possession, including all copies and documentation, and certify in writing to Mentor Graphics within ten business
days of the termination date that Customer no longer possesses any of the affected Products or copies of Software in any form.
12. EXPORT. The Products provided hereunder are subject to regulation by local laws and European Union (“E.U.”) and United States
(“U.S.”) government agencies, which prohibit export, re-export or diversion of certain products, information about the products, and
direct or indirect products thereof, to certain countries and certain persons. Customer agrees that it will not export or re-export Products
in any manner without first obtaining all necessary approval from appropriate local, E.U. and U.S. government agencies. If Customer
wishes to disclose any information to Mentor Graphics that is subject to any E.U., U.S. or other applicable export restrictions, including
without limitation the U.S. International Traffic in Arms Regulations (ITAR) or special controls under the Export Administration
Regulations (EAR), Customer will notify Mentor Graphics personnel, in advance of each instance of disclosure, that such information
is subject to such export restrictions.
13. U.S. GOVERNMENT LICENSE RIGHTS. Software was developed entirely at private expense. The parties agree that all Software is
commercial computer software within the meaning of the applicable acquisition regulations. Accordingly, pursuant to U.S. FAR 48
CFR 12.212 and DFAR 48 CFR 227.7202, use, duplication and disclosure of the Software by or for the U.S. government or a U.S.
government subcontractor is subject solely to the terms and conditions set forth in this Agreement, which shall supersede any
conflicting terms or conditions in any government order document, except for provisions which are contrary to applicable mandatory
federal laws.
14. THIRD PARTY BENEFICIARY. Mentor Graphics Corporation, Mentor Graphics (Ireland) Limited, Microsoft Corporation and
other licensors may be third party beneficiaries of this Agreement with the right to enforce the obligations set forth herein.
15. REVIEW OF LICENSE USAGE. Customer will monitor the access to and use of Software. With prior written notice and during
Customer’s normal business hours, Mentor Graphics may engage an internationally recognized accounting firm to review Customer’s
software monitoring system and records deemed relevant by the internationally recognized accounting firm to confirm Customer’s
compliance with the terms of this Agreement or U.S. or other local export laws. Such review may include FlexNet (or successor
product) report log files that Customer shall capture and provide at Mentor Graphics’ request. Customer shall make records available in
electronic format and shall fully cooperate with data gathering to support the license review. Mentor Graphics shall bear the expense of
any such review unless a material non-compliance is revealed. Mentor Graphics shall treat as confidential information all information
gained as a result of any request or review and shall only use or disclose such information as required by law or to enforce its rights
under this Agreement. The provisions of this Section 15 shall survive the termination of this Agreement.
16. CONTROLLING LAW, JURISDICTION AND DISPUTE RESOLUTION. The owners of certain Mentor Graphics intellectual
property licensed under this Agreement are located in Ireland and the U.S. To promote consistency around the world, disputes shall be
resolved as follows: excluding conflict of laws rules, this Agreement shall be governed by and construed under the laws of the State of
Oregon, U.S., if Customer is located in North or South America, and the laws of Ireland if Customer is located outside of North or
South America or Japan, and the laws of Japan if Customer is located in Japan. All disputes arising out of or in relation to this
Agreement shall be submitted to the exclusive jurisdiction of the courts of Portland, Oregon when the laws of Oregon apply, or Dublin,
Ireland when the laws of Ireland apply, or the Tokyo District Court when the laws of Japan apply. Notwithstanding the foregoing, all
disputes in Asia (excluding Japan) arising out of or in relation to this Agreement shall be resolved by arbitration in Singapore before a
single arbitrator to be appointed by the chairman of the Singapore International Arbitration Centre (“SIAC”) to be conducted in the
English language, in accordance with the Arbitration Rules of the SIAC in effect at the time of the dispute, which rules are deemed to be
incorporated by reference in this section. Nothing in this section shall restrict Mentor Graphics’ right to bring an action (including for
example a motion for injunctive relief) against Customer in the jurisdiction where Customer’s place of business is located. The United
Nations Convention on Contracts for the International Sale of Goods does not apply to this Agreement.
17. SEVERABILITY. If any provision of this Agreement is held by a court of competent jurisdiction to be void, invalid, unenforceable or
illegal, such provision shall be severed from this Agreement and the remaining provisions will remain in full force and effect.
18. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject matter and supersedes all prior
or contemporaneous agreements. Any translation of this Agreement is provided to comply with local legal requirements only. In the
event of a dispute between the English and any non-English versions, the English version of this Agreement shall govern to the extent
not prohibited by local law in the applicable jurisdiction. This Agreement may only be modified in writing, signed by an authorized
representative of each party. Waiver of terms or excuse of breach must be in writing and shall not constitute subsequent consent, waiver
or excuse.