XRC User
XRC 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 xRC Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
The Calibre xRC Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Calibre xRC and the Physical Verification Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chapter 2
Getting Started: Parasitic Extraction Using Calibre Interactive . . . . . . . . . . . . . . . . . . . . 17
Invoking Calibre Interactive Parasitic Extraction (PEX). . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Loading a Runset (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Specifying the Rule File for a PEX Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Specifying Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Defining Input Data Names in the Extracted Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Using Schematic Netlist Input in the Extracted Netlist (Optional) . . . . . . . . . . . . . . . . . . 21
Defining H-Cells Input (Gate-Level, Hierarchical Extraction and ADMS Only) . . . . . . . 21
Specifying Outputs for a PEX Run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Defining the Parasitic Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Specify the Netlist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Restrict the Nets (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Set Up Reports (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Add to the SVDB (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Run Calibre Interactive PEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Setting PEX Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Chapter 3
Getting Started: Parasitic Extraction Using Calibre Batch Mode. . . . . . . . . . . . . . . . . . . 31
Before You Begin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Step 1 — Create the PHDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Step 2 — Create the Parasitic Database (PDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Step 3 — Output A Netlist or Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Chapter 4
Types of Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
About the Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Hybrid xACT 3D/Rule-Based Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Hierarchical Memory Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Mixed-Signal Hierarchical Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
In-Context Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Gate-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Flat Transistor-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Comparison of Extraction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Chapter 5
Producing Parasitic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Parasitic Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Types of Parasitic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Lumped Capacitance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Distributed Resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Distributed Resistance and Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Distributed Resistance and Coupled Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Chapter 6
Basic Extraction Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Prerequisites for Performing Parasitic Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Running Transistor-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Creating a Transistor-Level Netlist from the Command Line . . . . . . . . . . . . . . . . . . . . . . 57
Creating a Transistor-Level Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . 58
Running Gate-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Creating a Gate-Level Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Creating a Gate-Level Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Running Full Hierarchical and Mixed-Signal Hierarchical Extraction . . . . . . . . . . . . . . . . . 63
Creating a Hierarchical Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . 63
Creating a Hierarchical Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Running ADMS Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Creating an ADMS Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Extracting a Distributed RC PRIMETIME Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Creating a Primetime Netlist from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Creating a Primetime Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Extracting a Lumped C Spectre Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Creating a Capacitance Netlist from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Creating a Spectre Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Extracting a Netlist with Mixed Parasitic Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Mixing Parasitics from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Mixing Parasitics from Calibre Interactive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Netlisting a Design Without Parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Creating an Ideal Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Creating an Ideal Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Backannotating Parasitics to a Source Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Backannotating from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Backannotating from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Generating a Capacitance Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Generating a Net-to-Net Coupling Capacitance Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Reporting Coupled Capacitance from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . 90
Reporting Coupled Capacitance from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . 91
Generating a Point-to-Point Resistance Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Reporting Net Resistance from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Reporting Net Resistance from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Extracting a Placed Cell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Extracting Only the Top Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Extracting a Block Using CB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Chapter 7
ASIC Design Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
ASIC Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
NOASIC Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
ASIC Mode Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
LEF/DEF Data In ASIC Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Milkyway Data In ASIC Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
GDS Data In ASIC Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Chapter 8
Handling Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Hierarchy Control with Xcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Calibre nmLVS-H and Calibre xRC Cell List Compatibility. . . . . . . . . . . . . . . . . . . . . . . 115
Xcell List Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Discovering Layout Paths for In-Context Cells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Wildcards in Xcell List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Tips For Choosing Xcells for Full Hierarchical Extraction . . . . . . . . . . . . . . . . . . . . . . . . 119
How to Run With LEF/DEF Input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Set Up the SVRF Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Resolve Different Layer Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
List GDS Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Running from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Slotted Metal Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Metal Fill Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Modeling Multiple Ground Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Varying Thickness with CMP Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Chapter 9
Tuning Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Extracting Devices without Parasitics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Extracting Particular Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Wildcards and Search Level Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Excluding Power and Ground Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Grounding Coupled Capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Ignoring or Extracting Floating Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Extracting With Multiple Substrates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Resistance Extraction and PERC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Chapter 10
Controlling Netlisting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Netlisting Multiple User-Defined Corners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Netlisting Only Direct Devices on a Selected Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Methods for Correcting Pin Swapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Using the Source Based Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
How to Join a Disjoint Parasitic Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Chapter 11
Integration and Troubleshooting Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Guide to Calibre Interactive Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Creating Batch Shell Scripts Using Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Best Practices for Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Improving Run Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Creating Smaller Netlists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Best Way to Resize Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Setting Up For Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Invocation Issues. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Chapter 12
Handling Parasitic On-Chip Variation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
On-Chip Variation in Parasitic Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Parasitic Extraction Techniques for On-Chip Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
In-Die Variation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Process Corners. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
CMP Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Chapter 13
Calibre xRC Tool Invocation Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Reference Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Setting the CALIBRE_HOME Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Command Invocation Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
calibre -lvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
calibre -xrc -phdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
calibre -xrc -pdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
calibre -xrc -fmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Appendix A
Parasitic Effects and Calibre Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Parasitic Capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Capacitance Models in Parasitic Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Parasitic Resistors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Resistance Models in Parasitic Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Appendix B
Parasitic Extraction Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
About SVRF Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Required Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Required for Lumped Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Appendix C
Output Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Parasitic Database (PDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Persistent Hierarchical Database (PHDB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
SVDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Logfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Netlists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Appendix D
Reduction Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Capacitive and Resistive Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Threshold-based Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
TICER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Appendix E
Time-it Tool Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Time-it Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Time-it Application Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Appendix F
Error and Warning Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Warning Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Glossary
Index
Third-Party Information
End-User License Agreement
Calibre® xRC™ is a parasitic extraction tool that calculates parasitic resistance and capacitance
in an IC layout, and generates parasitic netlists and reports.
The following sections that provide an overview of the Calibre xRC product:
• Interactively from the Calibre® Interactive™ graphical user interface. See “Getting
Started: Parasitic Extraction Using Calibre Interactive” on page 17.
• In batch mode from the command line. See “Getting Started: Parasitic Extraction Using
Calibre Batch Mode” on page 31.
Syntax Conventions
The command descriptions use font properties and several metacharacters to document the
command syntax.
The Calibre xRC tool can be run from Calibre’s Graphical User Interface (GUI) tool known as
Calibre Interactive.
The following key sections in this chapter describe how to use Calibre Interactive to perform
parasitic extraction:
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. Use the Browse (…) button to select the run directory
name from a list.
3. Specify the rule filename. Use the Browse button to select the rule filename from a list.
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 2-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.
Specifying Inputs
The source of your layout data varies depending on how you invoked Calibre Interactive and the
type of extraction you plan to run.
c. Click the Library tab and use the Add, Delete and Delete All buttons to edit the list
of additional layout files you would like to be available during your PEX run. Click
Inputs to continue specifying input data.
4. Select a format type using the Format dropdown menu.
5. Specify the layout top cell name.
Procedure
1. Select the H-Cells tab.
2. Select Use LVS H-Cells file and specify the hcell filename (not required if you specify
the use of layout names in the PEX netlist). The Calibre® nmLVS™ tool uses the hcell
file. The Calibre xRC tool uses the xcell file. For more information on the xcell file, see
Hierarchy Control with Xcells.
3. Specify the xcell filename in the PEX x-Cells file field.
Figure 2-3. Completing the H-Cells Tab
3. Choose the extraction level (Transistor Level, Gate Level, Hierarchical, or ADMS) 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.
ADMS extraction is similar to gate-level extraction. It provides additional automation
for integrating analog and digital blocks for simulation and requires the Calibre xRC to
ADVance MS license. See “Licensing: Parasitic Extraction Products” in the Calibre
Administrator’s Guide for details.
See Types of Extraction for more details.
4. Choose the desired extraction type from the second button on the Extraction Type: line.
Your choices are all combinations of R (resistance), C (intrinsic capacitance), and CC
(coupled capacitance).
R + C also extracts coupled capacitance between nets but represents the value by adding
it to the intrinsic capacitance. The combined intrinsic and coupled capacitance is also
known as “lumped” capacitance.
5. Select the Inductance option to extract self-inductance and mutual-inductance parasitics.
This option requires the Calibre xL license. See “Licensing: Parasitic Extraction
Products” in the Calibre Administrator’s Guide for details. 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 dialog 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.
manually. The arrow buttons are active only if SCHEMATIC has been chosen in the
Netlist tab.
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.
Procedure
1. Click the Reports tab.
2. Choose report options and specify filenames as appropriate. You must specify an LVS
report name if you chose SCHEMATIC from the Use Names From: dropdown list on
the Netlist tab.
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. Choose thePEX Options option in the Setup menu.
2. Choose 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. Here are some of the capabilities:
There are three steps in the overall Calibre xRC extraction flow. Each step has many possible
customizations based on your particular needs.
Figure 3-1. Calibre xRC Extraction
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.
Note
If your database is in LEF/DEF format, only layout names are supported. The PHDB
must be created with calibre -xrc -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. For details on invocation options for PHDB generation
with Calibre nmLVS, see “calibre -lvs”.
• To use layout names:
calibre -xrc -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. For details on
invocation options for PHDB generation with Calibre xRC, see “calibre -xrc -phdb”.
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 will write 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 will write
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 xRC tool will use for input
in the next step. This file is named after the top level cell.
Related Topics
Persistent Hierarchical Database (PHDB)
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 — Create 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.
• (non-flat extraction only) Xcell file.
When performing hierarchical extraction, the hierarchy is specified by means of an xcell
file. If you are doing a transistor-level extraction, or working with LEF/DEF layouts,
you do not need an xcell file.
• SVRF rule file.
This should be the same file as used in Step 1 — Create the PHDB.
Procedure
1. Determine which parasitics you need. The choices are
• resistance (-r)
• lumped capacitance (-c)
• 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 if no xcell list is
added. (If you are using Calibre xRC-CB, you must run flat extraction.)
• Gate-level extraction, which ignores portions of the design listed in an xcell file.
(The portions are usually devices or standard cells that have been verified
separately.) The part of the design being extracted is flattened, just as with transistor-
level extraction.
• Full hierarchical extraction, which extracts each cell listed in an xcell file only once.
This method is only recommended for designs with large, symmetrically placed cells
such as memory chips.
• Any of the above, with “select net”. This option extracts only 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.
• Special case extraction methods, such as ADMS and in-context cells.
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
“Xcell List Format” for more explanation.
b. If you decide on select-net extraction, add a PEX Extract Include SVRF statement to
your SVRF file.
3. Run the extraction.
The PDB step always contains at least the following:
calibre -xrc -pdb parasitic_switch SVRF_file
The above example performs 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 shown in the “Basic Extraction Methods” chapter.
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 -xrc -pdb -rcclm -select rules.svrf
Table 3-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.
The output depends on what values are set in the SVRF file and what parasitics were
extracted in Step 2 — Create the Parasitic Database (PDB).
For example, if the PDB contains RC values and the SVRF specifies “PEX Netlist
design.spf SPEF PRIMETIME”, Calibre xRC 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 xRC 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 -xrc -fmt
Controlling Netlisting
Netlists
The Calibre xRC extraction engine is able to extract interconnect parasitics hierarchically.
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 additional information on each of the types of extraction and reviews their
trade-offs.
About the Example Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Hybrid xACT 3D/Rule-Based Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Hierarchical Memory Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Mixed-Signal Hierarchical Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
In-Context Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Gate-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Flat Transistor-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Comparison of Extraction Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Figure 4-2 shows the design hierarchy for the SRAM block.
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. (Using the -C flag, you can
show the effects for a single specific placement, which is then used for all instances.)
Figure 4-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
In-Context Extraction
In-context extraction (-xcell -incontext or -xcell -full) extracts a cell’s parasitic information with
reference to structures outside the cell boundary. The location or “context” of a cell will affect
the internal parasitics of that cell. In other words, the metal interconnect in the region outside of
the cell will affect the capacitances internal to the cell.
In-context extraction allows you to pick a representative cell location and extract its particular
parasitic values including the effects of the surrounding material. This is particularly useful for
simulating a regular structure such as a memory cell by itself while reflecting the effects of a
common placement. This is done by specifying a particular instance of the cell in the xcell file
by appending “-C inst_id” after the cell name.
The xcell file may contain a mix of regular (context-free) and instance-specific (in-context)
cells. (It may also contain primitive cells.)
The contents of the produced PDB depend on how the extraction was invoked, as shown in
Table 4-1.
With in-context extraction, multiple instances of a cell cannot be extracted into the same PDB.
If multiple entries in the xcell file match a cell name, the first entry is used.
Any cells not marked with specific instances are analyzed separately from the environment as
with the other types of extraction.
Related Topics
Discovering Layout Paths for In-Context Cells
Gate-Level Extraction
Gate-level extraction (-xcell) extracts global nets down to top-level cells (logic gates or blocks),
which you specify using an xcell list. When you identify a cell using an xcell list, the Calibre
xRC tool extracts the parasitics down to the top-level cell, preserving the cell’s internal
structure and hierarchy. The output is a netlist with the following two hierarchical levels:
• 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 xRC 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.
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” when
creating the PDB from the command line, a flat PDB is created and the extraction includes the
effects of all geometries.
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. If both completeness of certain regions and size of output
are important, use iterative runs with mixed-signal hierarchical extraction to get compact,
detailed models on some areas, and a reference that you can fill in with a simplified model in
others.
The Calibre xRC tool produces the parasitic model types: Lumped Capacitance, Distributed
Resistance, Distributed Resistance and Capacitance, Distributed Resistance and Coupled
Capacitance.
For a more general discussion of parasitic effects, see “Parasitic Effects and Calibre Tools.”
Parasitic Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Types of Parasitic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Lumped Capacitance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Distributed Resistance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Distributed Resistance and Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Distributed Resistance and Coupled Capacitance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Parasitic Devices
There are several sources of parasitic effects in a design.
Parasitic effects include:
The Calibre xRC tool produces the following parasitic model types:
• Lumped Capacitance
• Distributed Resistance
• Distributed Resistance and Capacitance
• Distributed Resistance and Coupled Capacitance
With the separately licensed Calibre xL extension, the Calibre xRC software can also model
inductance. For more information on extracting parasitic inductance, see the Calibre xL Users
Manual.
Lumped Capacitance
With lumped capacitance extraction, all capacitance for a net is modeled as one parasitic
capacitor between the net and substrate. Depending on the command line options, the parasitic
capacitor may include the effects of coupled capacitance to another net with the effect lumped
to ground. Resistance is not modeled.
Figure 5-1 shows a simplified layout of two cells with interconnect. For lumped capacitance, or
Lumped C, two possible models can be extracted based on a command line option in the
formatting step.
Figure 5-2 shows how the capacitors are represented in the model when the -g command line
option is used in the formatting step:
With this option, the coupled capacitance is added to each intrinsic capacitor, extracted from the
net to ground.
Figure 5-3 shows how the extracted capacitors are represented in the model without the -g
command line option:
Without the -g option, the couple capacitor is present as a separate device in the net model.
Distributed Resistance
With distributed resistance extraction, the parasitic resistance of the net is broken into segments
representing geometric regions. Capacitance is not modeled.
Figure 5-4 shows a simplified layout example with the equivalent distributed resistance
extraction model. For Net_01, the net sections A to C represent how Calibre xRC has segments
a net for distributed R extraction. This is also the case for Net_02.
Figure 5-5 shows the extracted net model for distributed R, using the following command lines:
Figure 5-6 shows a simplified layout example for the distributed resistance and capacitance
parasitic model. If you do not exclude devices for which you supply the models, your final
netlist may double-count the parasitic capacitance.
Figure 5-7 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 5-7 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 5-9 shows the extracted net model for distributed R with coupled C when you use the
following commands:
In the formatting step, -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.
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.
Prerequisites for Performing Parasitic Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Running Transistor-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Creating a Transistor-Level Netlist from the Command Line . . . . . . . . . . . . . . . . . . . . . . 57
Creating a Transistor-Level Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . 58
Running Gate-Level Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Creating a Gate-Level Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Creating a Gate-Level Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Running Full Hierarchical and Mixed-Signal Hierarchical Extraction . . . . . . . . . . . . . 63
Creating a Hierarchical Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . 63
Creating a Hierarchical Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Running ADMS Extraction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Creating an ADMS Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Extracting a Distributed RC PRIMETIME Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Creating a Primetime Netlist from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Creating a Primetime Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Extracting a Lumped C Spectre Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Creating a Capacitance Netlist from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Creating a Spectre Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Extracting a Netlist with Mixed Parasitic Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Mixing Parasitics from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Mixing Parasitics from Calibre Interactive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Netlisting a Design Without Parasitics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Creating an Ideal Netlist from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Creating an Ideal Netlist from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Backannotating Parasitics to a Source Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Backannotating from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Backannotating from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Generating a Capacitance Summary Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Generating a Net-to-Net Coupling Capacitance Report . . . . . . . . . . . . . . . . . . . . . . . . . 90
Reporting Coupled Capacitance from the Command Line. . . . . . . . . . . . . . . . . . . . . . . . . 90
Reporting Coupled Capacitance from Calibre Interactive . . . . . . . . . . . . . . . . . . . . . . . . . 91
Generating a Point-to-Point Resistance Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Reporting Net Resistance from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Note
If you are using coplanar layers, the Capacitance Order statement should be
omitted from rule files generated by 2010.3 or later versions of xCalibrate.
For command-line execution, the file must also include the following statements:
o PEX Netlist to set language and optional content.
o Layout System, Layout Path, and Layout Primary to identify the top of the design.
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance or -c for lumped capacitance.
3. Generate the netlist.
If parasitic_switch included resistance, use the following:
calibre -xrc -fmt -all rules
To produce a netlist that only contains lumped capacitance, use the following:
calibre -xrc -fmt -c rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
========================================================================
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 xRC Tool Invocation Reference
Netlists
5. Set other controls as needed. When ready, click the Run PEX button in the left pane.
You do not need to clear the H-Cells field. Because extraction type is set to transistor
level, the H-Cells settings are ignored.
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
Getting Started: Parasitic Extraction Using Calibre Interactive
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 -xrc -fmt rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC 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 xRC Tool Invocation Reference
Netlists
Gate-Level Extraction
b. Click the Outputs button in the left pane. Set Extraction Mode to xRC.
Figure 6-4. Extraction Mode
c. In the area above the tabs, set Extraction Type to Gate Level.
Figure 6-5. Gate Level Setting
4. Set other controls as needed. When ready, click the Run PEX button in the left pane.
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
Getting Started: Parasitic Extraction Using Calibre Interactive
Gate-Level Extraction
Types of Extraction
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 -xrc -fmt -full rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC 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 xRC Tool Invocation Reference
Netlists
Hierarchical Memory Extraction
Mixed-Signal Hierarchical Extraction
b. Click the Outputs button in the left pane. Set Extraction Mode to xRC.
Figure 6-7. Set Extraction Mode
4. Set other controls as needed. When ready, click the Run PEX button in the left pane.
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
Getting Started: Parasitic Extraction Using Calibre Interactive
Hierarchical Memory Extraction
Basic Extraction Methods
Prerequisites
• A Calibre xRC to ADVance MS license in addition to the Calibre xRC or Calibre xRC
CB license. See “Licensing: Parasitic Extraction Products” in the Calibre
Administrator’s Guide for details.
• A valid PEX rule file for this layout.
• Hcell file or Hcell statement that includes all cells also listed in the xcell file.
• Xcell file listing primitive cells.
• Verilog libraries for the design source.
• A delay calculator, such as Mentor Graphics Time-it.
• Layout database that is LVS-clean.
For more information refer to “Prerequisites for Performing Parasitic Extraction”.
Procedure
1. Start the Calibre Interactive PEX interface:
2. Load a runset or rulefile.
3. Set up the Verilog Translator.
a. Select Setup > Verilog Translator. The dialog appears as shown in Figure 6-9.
b. In the Setup Verilog Translator dialog box, click the Libraries tab. Enter the
location of the library files in the corresponding Verilog Library Files or SPICE
Library Files fields.
c. To include SPICE files of lower level subcircuits referenced in the Verilog library
file, specify the path in the Include SPICE files field.
d. Click OK to close the dialog box.
For information on other options in the Verilog Translator, see “Setting Up the Verilog
Translator (v2lvs)” in the Calibre Interactive and Calibre RVE User’s Manual.
4. Set up the delay calculator to produce SDF for the standard cells. The ADMS flow uses
Verilog gate level blocks, which are represented in SDF format, to backannotate delays.
a. Select Setup > Delay Calculation. The dialog appears as shown in Figure 6-10.
b. In the Technology Files dialog box, enter the path to your standard cell library.
c. In the Time-it MGC_HOME field, enter the path to your Time-it™ MGC_HOME
directory. The Time-it tool can be downloaded from SupportNet.
Note
You can select delay calculators other than Time-it by selecting Other from the
drop-down menu, and entering the path of your preferred delay calculator in the
Command to Invoke Delay Calculator field. See “Setting Delay Calculation” in
the Calibre Interactive and Calibre RVE User’s Manual for required parameters.
7. Fill out the H-Cells tab. The ADMS flow requires an xcell file which identifies
primitives.
Figure 6-12. H-Cells Tab for ADMS
8. Fill out the Blocks tab. Here you specify the blocks to be netlisted and the output format
to use. The blocks are identified from the source files in the Netlist tab. The xcell file
determines whether blocks are primitives.
a. Click block names to mark them for netlisting or flattening into the parent cell.
Blocks marked with a “+” contain other blocks; click the + to show them.
You cannot unselect the top cell; it is always netlisted. Also, you cannot change
primitives, marked with a P, from the interface.
Figure 6-13. Explanation of Block Icons
b. For blocks marked with a green checkmark, right-click on block names and select
Format to access the netlist formats. (The block must be marked for netlisting first.)
Formatted blocks show the format and extraction mode after them, as shown in
figure Figure 6-14.
Figure 6-14. Formatted Block
Only formats accepted by the ADVance MS simulator are available. This includes
DSPF, Eldo, HSPICE, SPEF, and SDF. SDF is the format for backannotating delays
for Verilog gate-level description.
c. To change from the default RC extraction mode to RCC or R, right-click the green
box with the formats. This menu also lets you specify the netlist name and mark a
block for cross-annotation.
Figure 6-15. Changing Block Extraction Mode
d. Save your changes by selecting Cell Options > Save to Xcells/Hcells Files. Blocks
which you have marked for netlisting are added to the hcell and xcell files.
Figure 6-16. Saving Blocks to Cell Files
9. In the Outputs pane, set Extraction Type to ADMS. The other settings are read from the
Blocks tab. (Do not change Format here - it will not be reflected in the Blocks tab.) You
may also want to exclude power and ground nets from extraction. This is set under the
Nets tab.
10. Click the Run PEX button to extract parasitics and calculate delay. When the transcript
shows “Writing SDF”, the run is complete.
Figure 6-18. Transcript for Successful ADMS Run
Results
Running PEX produces several required files, and at least two other files in the run directory.
The required files are subsequently included in the ADMS testbench for post-layout simulation
of the design.
The required files are:
• digital_blocks.sdf — The SDF files of the digital blocks.
• top_cell.format — The post-layout netlist of the top level, where format is the format
specified in the Blocks tab.
• bind.inc — A file containing the .BIND statements for ADMS. The .BIND statements
will replace the digital block instance within the post-layout netlist with its verilog
model.
• top.inc — A file specifying the location and name of the top-level parasitic netlist.
The other files are:
• digital_blocks.spef — Intermediate files for the digital blocks.
• digital_blocks.spef.log — Time-it log files.
Related Topics
Getting Started: Parasitic Extraction Using Calibre Interactive
Time-it Tool Overview
Prerequisites
• A valid PEX rule file for this layout including a PEX Netlist statement of the following
form:
PEX NETLIST netlist_filename DSPF PRIMETIME
or
PEX NETLIST netlist_filename SPEF PRIMETIME
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC Errors = 0
========================================================================
If there are no errors, the directory also contains the DSPF or SPEF netlist you specified in the
PEX Netlist statement.
5. Select the Netlist tab, and set the format to DSPF or SPEF. The PRIMETIME item is
only available for those netlist formats.
6. Select the format menu again and set the PRIMETIME option.
Figure 6-21. Primetime Output Setting
7. Set other controls as needed. When ready, click the Run PEX button in the left pane.
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
Getting Started: Parasitic Extraction Using Calibre Interactive
Note
Unlike distributed extraction, lumped C requires -c in the netlist generation step. Using -all
or not specifying -c errors out with “ERROR: Resistance requested in netlist, but none was
extracted.”
Procedure
1. Build database of intentional devices.
To use source names, use Calibre nmLVS-H:
calibre -lvs -hier -spice $svdb_dir/top_cell.sp rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC Errors = 0
========================================================================
If there are no errors, the directory also contains the Spectre format netlist you specified in the
PEX Netlist statement. The coupled capacitance is in the .pxi file.
Related Topics
Calibre xRC Tool Invocation Reference
Netlists
Output Reference
6. Set other controls as needed. When ready, click the Run PEX button in the left pane.
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
Getting Started: Parasitic Extraction Using Calibre Interactive
Calibre extracts parasitics for only the nets listed in the PEX Extract Include statement
because of the -select switch. You can edit the statement and run this step as many times
as needed. The rest of the SVRF rule file and the layout must remain the same.
4. Generate the netlist.
calibre -xrc -fmt rules
Caution
Do not extract more parasitics to the same SVDB directory after generating a netlist.
Netlist generation can eliminate internal nodes so adding in new parasitic elements
could introduce subtle errors.
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC 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.
Related Topics
Calibre xRC Tool Invocation Reference
Extracting Particular Nets
9. Specify the nets the new extraction type applies to under the Nets tab.
10. Click Run PEX.
11. Repeat steps 8 through 10 as needed.
12. Generate the netlist.
a. In the PEX step controls, select Create Netlist.
b. Uncheck Create PDB.
c. Click Run PEX.
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 and Calibre RVE Users Manual
Calibre xL Users Manual
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC Errors = 0
========================================================================
If there are no errors, the directory also contains a file by the name you specified in the PEX
Netlist Simple statement.
4. Set other controls as needed. You can turn off the Create PDB step but it is not
necessary.
5. 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.
where parasitic_switch indicates the type of parasitics to extract. For example, -rc for
distributed resistance and capacitance or -c for lumped capacitance.
3. Generate the netlist.
If parasitic_switch included resistance, use the following:
calibre -xrc -fmt -all rules
To produce a netlist that only contains lumped capacitance, use the following:
calibre -xrc -fmt -c rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC 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 that includes a PEX Report Netsummary statement.
• 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 will end with “No meaningful analyzed data found.”
Related Topics
Getting Started: Parasitic Extraction Using Calibre Batch Mode
Getting Started: 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
Standard Verification Rule Format (SVRF) Manual
5. Provide a report name. (There is no default.) If needed, set the other options:
• SPLIT_NET causes the pair of nets to be listed on two lines instead of one.
• Number sets the maximum number of nets to include in the report. Only the most
tightly coupled pairs are reported.
• Threshold sets the capacitance in farads below which not to 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: Parasitic Extraction Using Calibre Interactive
Standard Verification Rule Format (SVRF) Manual
where
• Netname is the layout name of the net, and 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.
2. Run parasitic extraction for resistance using any of the -r switches for the parasitic flag.
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC Errors = 0
========================================================================
If there are no errors, the directory also contains a file by the name you specified in the PEX
Report Point2Point statement.
Related Topics
Standard Verification Rule Format (SVRF) Manual
Getting Started: Parasitic Extraction Using Calibre Batch Mode
where
• Netname is the layout name of the net, and 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 rulefile.
4. In the Outputs pane, set the extraction type to R, R + C, or R + C + CC.
5. Under the Reports tab, enable the Generate Point to Point Resistance Report.
Figure 6-28. Point-to-Point Resistance Report Settings
6. Enter the name of the control file you created in step 1 in the Input File field. Enter
another name in the Output File 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: Parasitic Extraction Using Calibre Interactive
Standard Verification Rule Format (SVRF) Manual
Prerequisites
• A valid PEX rule file for this layout.
• Hcell file or Hcell statement that includes all cells also listed in the xcell file.
• Layout database that is LVS-clean.
For more information refer to “Prerequisites for Performing Parasitic Extraction”.
Procedure
1. Identify the cell(s) in the xcell file using the following format:
cellname -C parent_id/cell_id
The xcell file may contain entries for other cells, which will be treated as primitives. For
instructions on finding layout IDs, see “Discovering Layout Paths for In-Context Cells”.
2. Build the database of intentional devices.
To use source names, use Calibre nmLVS-H:
calibre -lvs -hier -hcell hcell_file -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 or -c for lumped capacitance.
4. Generate the netlist. Unlike with gate-level or full hierarchical extraction, the xcell file
must be provided during netlisting.
calibre -xrc -fmt -xcell xcell_file -incontext -all rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
CALIBRE xRC WARNING / ERROR Summary
------------------------------------------------------------------------
xRC Warnings = 2
xRC Errors = 0
========================================================================
If there are no errors, the directory also contains netlists for each contextual xcell. The name of
the netlist is cellname.fmt, where cellname is the name in the xcell list and fmt is the format
specified in the PEX Netlist statement.
Related Topics
Getting Started: Parasitic Extraction Using Calibre Batch Mode
In-Context Extraction
Note
The Calibre xRC CB tool is a separately licensed parasitic extraction and netlisting
product—for licensing information, see the Calibre Administrator’s Guide.
2. When you extract parasitic effects, run with the -cb switch.
calibre -xrc -pdb -parasitic_switch -cb rules
Results
Successful Calibre xRC transcripts conclude with a count of errors and warnings as shown.
========================================================================
Related Topics
Calibre Verification Users Manual
The ASIC features in the Calibre xRC tool are useful for extracting parasitics for digital ASIC
designs with millions of nets and devices. These designs are rendered using auto-place-and-
route software and contain standard cells connected with Manhattan-style routing.
ASIC mode is optimized to improve performance for extracting parasitics for this type of
layout. When compared to flat or non-ASIC hierarchical extraction, using ASIC mode reduces
runtime, lowers memory usage, and reduces the parasitic netlist size.
ASIC mode supports LEF/DEF and LEF/DEF combined with GDS data for subcells and metal
fill. It also supports Milkyway and GDS-only data.
This chapter discusses specific topics related to parasitic extraction with ASIC designs:
ASIC Mode
For LEF/DEF data, ASIC mode is invoked automatically during the PHDB step (-phdb). If the
LEF/DEF data includes DEF metal fill, this is also handled automatically.
You can explicitly invoke ASIC mode for Milkyway or GDS data by using the -asic command
line option in the PDB step(-pdb), as follows:
You can include metal fill or other layout blocks, such as memory or analog circuits, with GDS
files. This is done with a hcell file. The Calibre xRC tool will use ASIC optimizations that
reduce the memory usage and execution time when such files are specified. For details, see
“LEF/DEF Data In ASIC Mode”.
NOASIC Mode
This discussion is specifically related to combining LEF/DEF data with GDS data for metal fill
or other layout blocks in ASIC mode.
You must carefully consider the PHDB and PDB steps when specifying metal fill or layout
blocks with GDS data for ASIC mode. You can use the -noasic option to enable or disable ASIC
optimizations for metal fill data in the PHDB and PDB steps.
Use -noasic during the PHDB step to alert the Calibre xRC tool to run in normal mode,
disabling optimizations for metal fill. When you specify -noasic for both steps as follows:
the PHDB step runs without ASIC optimizations for GDS metal fill or layout blocks. The PDB
step runs without any ASIC optimizations.
Note
When including GDS fill or layout blocks with LEF/DEF, specifying the -noasic flag in the
PDB step while the PHDB step is invoked without the -noasic flag results in an error as
follows:
FATAL ERROR: Conflicting settings: either re-run -phdb with -noasic or -pdb without
-noasic.
Omit the -noasic flag during the PHDB step to enable ASIC optimizations for fill handling. In
this case, you can specify the -asic or -noasic flags for the PDB step as follows:
In Example 1, ASIC optimization will be used for LEF/DEF or GDS metal fill or specified
layout blocks. In Example 2, the optimizations will not be used.
In-Die Variation
In-die variation and metal fill extraction are supported. Different combinations of LEF/DEF and
GDS, LEF/DEF only, GDS only, and Milkyway data formats can be used together with ASIC
mode. DSPF and SPEF output formats which are used for Static Timing Analysis, or STA, are
supported.
Extraction Types
ASIC mode supports lumped capacitance (-c), distributed resistance and capacitance (-rc), and
distributed resistance with coupled and intrinsic capacitance (-rcc) extraction types.
Excluded nets are not removed from the layout database. Their effect on signal nets is included
in the parasitic netlist. For SPEF output or DSPF output without the instance section, the final
netlist will not include excluded nets or parasitics attached to these nets. For other formats, the
parasitics on the specified nets will not be included, but the ideal net will be in the netlist. For
more information on how to exclude nets from extraction, see PEX Extract Exclude in the
Standard Verification Rule Format (SVRF) Manual.
ASIC mode supports extracting parasitics for a selected net (-select command line option). If
this is required and ASIC mode is enabled, Calibre xRC will include the selected net with its
associated parasitics in the output netlist.
SVRF reduction statements for a Calibre xRC run are executed during the formatter stage
(-fmt). You can adjust reduction parameters then rerun the formatter stage without rerunning the
the parasitic extraction stage (-pdb) or connectivity extraction stage (-phdb or -lvs).
You can control the reduction results by using the DELAY_ERROR and NOISE_ERROR
parameters for PEX Reduce Digital. DELAY_ERROR specifies a user-defined timing delay
threshold while NOISE_ERROR specifies a user-defined noise amplitude threshold. For more
information and examples of PEX Reduce Digital, see the Standard Verification Rule Format
(SVRF) Manual.
PEX Reduce CC
For distributed RC network extraction (-rcc), using PEX Reduce CC reduces coupled
capacitance between nets based on a ratio of the total net capacitance. For a reasonable
reduction you may use:
The 0.30 value means that any parasitic coupling capacitor below 30% of the total capacitance
on the coupled nets will be grounded.
For more information on PEX Reduce CC, see “Capacitive and Resistive Reduction” and PEX
Reduce CC in the Standard Verification Rule Format (SVRF) Manual.
Assuming that the unit capacitance for the design is femtofarads, this statement sets a threshold
of 1 femtofarad for combining intrinsic and coupling capacitances on nets. Any parasitic
capacitors below this threshold will be combined with neighboring parasitic capacitors.
The PEX Reduce Minres COMBINE statement can be used for combining parasitic resistors
based on a user defined threshold. A useful invocation of this statement may be:
Assuming that the unit resistance for the design is in ohms, this statement sets a threshold of 0.1
ohm for combining parasitic resistors on the same net.
For more information on PEX Reduce Mincap and PEX Reduce Minres, see “Capacitive and
Resistive Reduction” and the Standard Verification Rule Format (SVRF) Manual.
Black box extraction means that the internal contents of the xcells are ignored during the
parasitic extraction of interconnect. Gray box extraction means that the parasitics between the
top level routing and cell geometries are not ignored. These parasitics are added to the intrinsic
capacitance of a net crossing over the cell. When using ASIC mode, gray box mode is used by
default.
You can also control how routing obstructions inside standard cells are handled during parasitic
extraction. For more information on how to account for geometries inside standard cells, see the
PEX Xcell Extract Mode and PEX DEF Extract Cell Obstructions SVRF statements.
If you need to append information to the hcell list automatically generated from the LEF/DEF
data, use the -hcell command line option to add more cells to the hierarchy list during the PHDB
stage. You cannot remove cells from the hierarchy.
If you need to override the internal hcell definitions, use -hcell during -lvs or -phdb step, or
-xcell during the PDB stage.
When using these data formats, the Calibre xRC tool by default uses devices defined in the LVS
rules as the lowest level of hierarchy in the design. To take advantage of ASIC mode, you must
define the hierarchy of the design during the connectivity extraction and parasitic extraction
stages. These files should contain all standard cell and custom cell mapping between layout and
source.
If using the -xcell option, the xcell file must contain the same cell mapping as the hcell data so
that extraction is run only on the interconnect.
where the PRIMETIME parameter specifies that the SPEF output meets Primetime
requirements and SOURCENAMES specifies to use the source netlist names in the output.
For more information about controlling the output netlist, see PEX Netlist in the Standard
Verification Rule Format (SVRF) Manual.
For more information on how to use LEF/DEF input, see “How to Run With LEF/DEF Input”.
The Calibre xRC tool is able to assemble the top-level netlist from a design that is partitioned
into sub-blocks by using hierarchical DEF. This means that you can perform a full-chip
extraction without manually assembling the chip or re-entering floor-plan information.
Both the DEF and LEF sub-block data and LEF standard cell data are required. The LEF
abstract and DEF file must be present in the design library and must be included in the hcell
information.
Both LEF and GDS data for the block of interest are required. The LEF abstract must be present
in the LEF files for the design and the GDS file for the block will need to be included using a
hcell file. For example, if your design includes a GDS file for a RAM block, the xcell file would
include the following entry:
The block 64kRAM has both LEF and GDS data. This xcell declaration specifies that the file
64kRAM.gds, found in layout_path, will be used instead of the 64kRAM LEF data.
Calibre xRC tool automatically recognizes the design hierarchy. However, when including
GDS data for metal fill, you will need to use an xcell file which specifies the GDS file and file
location. This xcell file will contain this single entry.
This example shows how the GDS file is included in an xcell file:
where DSPTop is the LEF/DEF top-level design, metal_fill.gds is the GDS file found in the
layout/gds path, and DSPTop is the top cell name in the GDS file.
With LEF/DEF data, the Calibre xRC tool will retain the logical connectivity during extraction
and will not represent the short in the output netlist. The short may slightly affect the extracted
intrinsic and coupled capacitances as well as the extracted resistance. However, only the
parasitics in the immediate area of the short will be affected. These effects are dependent
physical characteristics of the shorted nets.
With GDS and Milkyway data, the output netlist is affected. Shorted nets alter the logical
connections between devices and this is reflected in the output netlist.
The Calibre xRC tool accepts Milkyway database layouts through the Foreign Database
Interface (FDI). There are two possible ways to read a Milkyway database:
Direct-Read Flow
This method uses Calibre FDI to generate the PHDB for the design by directly reading the
Milkyway design database. The layout database type and a layer mapping file must be specified
in your SVRF rule file.
where mw_db is the path to the Milkyway database and top_cell is the top level cell name of the
design.
where fdi_map_file specifies the layer mapping file pathname and filename. This file defines
the layer mapping as follows:
The PEX_FDI_MAP environment variable specifies a file which maps FDI layer names to layer
names used in the SVRF rule file. If you do not specify this environment variable the default is
no mapping file.
The parameter mapfile can be either a relative path such as ../../def_map_file.txt or an absolute
path. Layer names are case sensitive.
Example
At the command line type the following:
The mapping file, fdi_mapping_file.txt, would contain entries such as the following:
The Calibre FDI utility, fdi2gds, can be used to generate a GDS file from the Milkyway
database for extraction. The net names are taken from the Milkyway layout database because a
source netlist is not used. The net names can be added as GDS text layers or as GDS properties
on polygons.
Milkyway database allows ‘/’ (forward slash) to be used in net names. However, this is not
supported in the FDI GDS flow. To rename this character, include the following SVRF
statements in your rule file:
For more information on Layout Rename Text and PEX Netlist Character Map, see the
Standard Verification Rule Format (SVRF) Manual.
This is one way to use the Calibre FDI utility from the command line to create a GDS file for
your design:
where
• fdi2gds invokes the Calibre FDI utility for creating a GDS file.
• -system is a required switch that specifies the layout system, in this case Milkyway.
• -design is a required switch that specifies the design library location and top level cell
name.
• -outFile is a required switch that specifies the GDS output file and location.
• -layerMap is an optional switch that specifies the pathname and filename of a layer
mapping file. This is an example of a file that maps Milkyway layers to GDS layers:
#input_layer_name output_layer_number datatype
met1 12 0
via 13 0
met2 14 0
via2 15 0
met3 16 0
In this example, met1 is the Milkyway layer that maps to GDS layer 12 and datatype 0.
• -logFile is an optional switch that specifies the pathname and filename for the runtime
log for translation.
• -annotateNets is an optional switch that specifies adding annotation to all the shapes
that belong to a net. In this example, the annotation is added as a property to layer 16. In
the SVRF rule file for extraction using this GDS file, you will need to add the following
statement:
LAYOUT PROPERTY TEXT 16
If the GDS file contains standard cell abstracts, then the cells need to be specified in both the
hcell file and the LVS Box SVRF statement during LVS. The LVS step will report that the
design matches the source netlist, even though connectivity information from the standard cells
is not extracted. Use LVS Box if the schematic or layout for a cell is not complete or only the
schematic symbol or layout outline with pin locations is available.
Using GDS data with ASIC mode always requires a hcell file. If the GDS file contains
transistor-level data for standard cells, then a hcell file containing all of the standard cells is
required. If the GDS file or the source netlist does not contain full transistor-level data for all of
the standard cells, then you can use the LVS Box SVRF statement during LVS comparison.
Xcells may also be specified in your rule file using the PEX Xcell statement. You may use both
methods as long as the xcell definitions in different locations are not in conflict. If a conflict is
detected that cannot be resolved, then extraction stops with an error message. Two xcell flags or
options will cause a conflict if they cannot be simultaneously applied to one xcell.
Conflicts between xcell specifications made in the SVRF rule file and the xcell list file can be
resolved with the PEX Xcell Precedence statement. This statement allows you to control which
file takes precedence if conflicting xcell definitions are encountered between files. If a conflict
is detected, then a warning will be issued indicating the name of the affected cell and the xcell
options that will be applied. If precedence has not been set and a conflict occurs, then extraction
stops with an error. If conflicting xcell definitions are found within the same file, extraction will
always stop with an error.
If all xcell specifications are made in your SVRF rule file, then the -xcell command line option
for the PDB step is not required.
An xcell list is an ASCII file you create1. The cells listed in the xcell list define your design’s
hierarchy and designate the cells the extraction will preserve. Cells not in the xcell list are
flattened into the top circuit.
During Parasitic Database (PDB) creation, the Calibre xRC 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 xRC 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.
1. As of version 2007.3, when the input is LEF/DEF format the hcell and xcell list are automatically created
and used. You may customize the generated list but are not required to create it.
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 xRC 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. See “Hcells” in the Calibre Verification User’s Manual.
• Calibre xRC tool — defines a design's hierarchy for global net extraction. You create an
xcell list based on the hierarchy you want, and the Calibre xRC 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 list file, be sure to rename the file since these options do not work for
Calibre nmLVS-H. Xcell entries can use wildcards to match multiple cells. Entries can also
identify specific cell instances to extract “in context”.
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 does 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 8-1
provides more information on each flag.
Note
The Calibre xRC tool disregards any Hcell statements you specify in the SVRF rule file.
You must include any cell you identify with this statement in the xcell file or use the PEX
Xcell statement.
Layout name extraction does not create an XDB, which causes the Calibre Query Server
to warn that the XDB is missing. You can ignore these warnings.
2. Start the Query Server by entering the following command in a terminal window.
Specify your SVDB directory
calibre -query svdb_directory
3. When the terminal shows “OK: Ready to serve.” enter the following command:
RESPONSE FILE query_results
The results will be written to the specified file in your current working directory instead
of shown in the terminal. The server responds with “OK” when it is ready for the next
command.
4. Write out the cells. You can either write out all cells, or just the entries for a few. To get
a listing of all cells in the PHDB with their layout paths, enter the following:
PLACEMENT NAMES FLAT
5. Exit the server by typing QUIT. The response file contains the valid paths for using in
the xcell file.
If the specifications use conflicting flags, Calibre xRC generates an error and extraction stops.
For example, the following wildcard xcell specifications generate an error since a primitive
xcell cannot be extracted in context:
Use the PEX Xcell Precedence statement with the BEST keyword to resolve such conflicts, and
select only the best matching wildcard xcell specification. 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. The xcell specification to extract in context (-C) is ignored.
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.
The Layout Path statement can handle multiple LEF or DEF files. The files can either be
specified individually or by directory. If you use directories, supply the directory names in the
Layout Path statement instead of specific file names. There can be only one LEF directory and
one DEF directory per run.
In the LEF file directory, the files should end in “.lef” or “.tlef”. For the DEF file directory, all
files should end in “.def”. Compressed versions of the filenames (*.lef.gz, *.tlef.gz, or *.def.gz)
are accepted as well, provided the compression utilities are in your environment.
In the LEF/DEF flow, cross references are automatically generated, so in all SVRF statements
requiring a source/layout designation, always specify source. For example:
If the design includes GDS blocks, specify case-sensitive naming. Add the following statements
to your rule file:
If the layers in the LEF/DEF layout do not match the layer names in the Connect statements, the
DEF layers are discarded with a warning. To correct this, use a mapfile to map different names
in the LEF/DEF files to the SVRF rule file.
You can use the Layer statement to make this correction. See “LEF/DEF Layer Mapping”
subtopic in the Layer statement description.
Metal Fill
Metal fill is specified as part of the top DEF cell and can only appear once in the list. The entry
should have the following format:
GDS Macros
The entries should have the following format:
where macro_name is the macro of the LEF file and gds_file is the name of the GDS file
containing the associated cells. The macro name can use “*” to match any text. If all GDS
blocks are in a single file, your list can consist of the single entry:
* -gds gds_file -p
The GDS filename cannot use wildcards. The ports of the GDS cell should match the macro;
port names are case sensitive. Macro names must appear only once.
For mixed GDS/LEF designs, use the -hcell flag to include the GDS file list. This step
creates an xcell list named top.xcell in the pex.db directory of your SVDB directory.
2. Perform extraction and create the PDB. For LEF/DEF input, only gate-level extraction is
supported. The xcell information is provided automatically.
calibre -xrc -pdb [-xcell SVDB/pex.db/top.xcell] [-noasic] -rc rules
For mixed GDS/LEF designs, use -noasic to turn off ASIC optimizations. The ASIC
optimizations assume regular cell placement and are used by default on LEF/DEF
layouts.
The parasitic switch, -rc, is supplied as an example; you can extract any type of
parasitic.
3. Produce the netlist:
calibre -xrc -fmt -all rules_file
Results
Results are written to the file in the format you specified in the PEX Netlist statement.
When a polygon on a resistive layer is recognized as slotted, its holes are removed and the
Calibre xRC 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 8-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 8-1. Metal1 Polygon Which Meets The PEX Slots Handling Example
Parameters
Figure 8-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 8-2. Metal1 Polygon That Does Not Have Enough Slots
Figure 8-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 8-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 statement 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 8-4 shows an example of simple square or
rectangular fill between nets drawn on the same metal layer. Figure 8-5 shows multi-layer fill
and nets. Figure 8-6 also shows a non-square fill with multiple nets.
For a more general discussion of floating nets, see “Ignoring or Extracting 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 will be 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 doesn't 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 statement to the SVRF rulefile. 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.
Procedure
1. 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.)
2. Use the PEX CMP Mode statement in your extraction rule file to specify using CMP
data during extraction.
3. 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 flow can be modified to refine the extracted information.
This chapter describes how to modify the basic extraction procedure to refine the analysis and
extraction phase as follows:
Extracting devices without parasitics is not the same as extracting primitive xcells, because the
netlist contains the nets for the xcell contents, which have been flattened within the xcell. All
nets within the xcell are ideal nets, that is, they have no parasitic net models.
Figure 9-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.
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 xRC 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 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.
You can use an asterisk (*) as a wildcard in the xcell list, to ease the task of creating an xcell
file, since pcells translated to GDSII have random numbers generated after the cell name. For
more information on using wildcards with xcells, see Wildcards in Xcell List.
2. During parasitic database (PDB) creation, use the “-select” Calibre xRC command line
switch. (Use -cselect to individually report coupled and intrinsic capacitance.)
If you omit the PEX Extract Include statement from your rule file and invoke the Calibre
xRC tool using the “-select” switch, then the tool will issue an error and terminate the
run.
For more information on -select and -cselect command line options, see “calibre -xrc
-pdb” on page 171.
Example 9-1 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.
Example 9-2 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.
Excluded power and ground nets are not removed from the layout database. Their coupling
effect on signal nets is included in the parasitic netlist. However, the final netlist will exclude
parasitics attached to these nets.
You disable net exclusion by commenting out the 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 9-3. Excluding Matching Names in Top Level
Example 9-3 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.
Example 9-4 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.
For example:
When you use this switch, Calibre xRC decouples coupled capacitors found in parasitic models,
and grounds them.
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 xRC 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 9-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 will not contain any floating nets.
Note
When using selected nets (-select | -cselect 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 running with selected nets, the floating nets must also be selected.
Figure 9-3 illustrates the Calibre xRC 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.
Prerequisites
• A design file with a multiple substrates. Typically, this is a situation where the substrates
have different resistivity (mobility).
• Calibrated rule files containing multiple base layer definitions. For more information on
defining multiple base layers, see “Multiple Base Layers” in xCalibrate Batch User’s
Manual.
• All specified layers are connected.
5. For processes that have overlapping wells that are at the same height, use PEX Ground
Layer to define the order of precedence.
For mixed substrate region:
PEX GROUND LAYER nwell pwell psub
PEX MAP base_High_R psub pwell
PEX MAP base_Low_R nwell
6. 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.
Results
To validate that the capacitance values over different substrate areas behave differently, create a
testcase with parallel lines running over two different substrate areas as shown in Figure 9-4.
// Example 2
PEX MAP base_Low_R pimp diff
PEX NETLIST example2_xrc.dspf DSPF LAYOUTNAMES
In Example 1, diff layer is mapped to the high resistance base and the pimp layer is mapped to
the low resistance base. In the output netlist, the lines over the pimp region should have
different capacitance values than the lines over the diff region. For example:
cg_1 diff1 0 0.1f
cg_2 diff2 0 0.1f
cg_4 pimp1 0 0.02f
cg_5 pimp2 0 0.02f
In Example 2, both the pimp and diff layers are mapped to the low resistance base. For the
output of this example, the lines in both regions should have the same values. For example:
cg_1 diff1 0 0.02f
cg_2 diff2 0 0.02f
cg_4 pimp1 0 0.02f
cg_5 pimp2 0 0.02f
The basic extraction procedures can be customized in many ways to generate different types of
netlist output.
These topics describe how netlisting behaves and how to modify some of the basic extraction
procedures to produce different netlist output:
• To specify particular corners, use the -corner switch with the corner names, for
example:
calibre -xrc -fmt -corner typical,cc_worst -all rules
Figure 10-1 shows an example of logical pin swapping the Calibre xRC 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 xRC 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 — Using the Source Based Flow
• If the pins are on intentional models — PEX BA Mapfile
• If you are using a layout-based flow and the pins are on primitives or the top circuit
only — PEX Pin Order
• If you need to specify pin direction or pin order on intermediate circuits — How to Join
a Disjoint Parasitic Model
Figure 10-2 provides a comparison of the normal and the source based Calibre xRC formatter
flows. When creating a parasitic netlist with the source based flow, the 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 xRC 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 xRC 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.
The Calibre xRC 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 xRC 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.
1. Looks for disjoint net model fragments created during LVS by Virtual Connect
specification statements.
2. 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 xRC tool, however,
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. Extracting virtually connected nets often generates unexpected values, because the Calibre
xRC tool arbitrarily connects virtually connected net segments when calculating extracted
values. This could also cause problems with inductance extraction. Ultimately, your design
should be LVS clean without using either Virtual Connect statements.
When you use the PEX Netlist Virtual Connect statement, the Calibre xRC 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 xRC formatter makes, then use the
-fmt_warnings switch on the command line during Calibre xRC formatter invocation.
Integration
The goal of this section is to provide information 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 preferences file for Calibre xRC is .cgipexdb. You can point to a standard version
using the MGC_CALIBRE_PEX_RUNSET_FILE environment variable. The default is
$HOME/.cgipexdb. Preferences files save the settings of the Setup Preferences dialog
and previously referenced runsets. When Calibre Interactive starts it automatically reads
a 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. (Defaults can be changed by the preference
file.) 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.
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.
Settings are not loaded into the GUI until the user clicks Load.
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-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.
solution uses customization files as described in the Calibre Interactive and Calibre RVE
User’s Manual.
Prerequisites
• A Calibre Interactive run that handles your requirements
• A text editor
Procedure
1. In Calibre Interactive - PEX, select File > Control File > View.
This opens a window with the control file displayed.
2. Transfer over the settings that were specified in the GUI. You can do this one of two
ways:
• Open your top rule file in a text editor. For each statement in the control file above
#IFDEF $MGC_CALIBRE_INTERACTIVE, replace the line in the rule file with
the corresponding control file version.
• Use the control file as your new top rule file.
i. To avoid potential name collisions when the GUI writes control files, rename the
control file to a different name that does not begin with an underscore.
ii. Set the environment variable MGC_CALIBRE_INTERACTIVE to 1 in your
shell script.
The first method is better if you are concerned about editing SVRF files and attempting
to override specifications. The second method causes the rule file to be interpreted as
though the run were started from the Calibre Interactive GUI, and any overrides that
appear in the top rule file above DRC ICSTATION YES are accepted.
3. In Calibre Interactive - PEX, select Setup > Set Environment.
This opens a window with the environment and shell variables you have used displayed.
4. In Calibre Interactive - PEX, click the Transcript button.
The transcript window shows the commands that will be executed when you click the
Run PEX button.
5. Open your shell script in a text editor and make these changes:
a. Add any environment variables with a green check in the Runset column or under
the Shell Env. tab to the variables section of your script.
b. Copy the MGC_HOME setting from the transcript to your script.
c. Copy the lines beginning “$MGC_HOME/bin/calibre” to the end of your script.
d. Add redirects at the end of each “$MGC_HOME/bin/calibre” line to create log files.
(See Example 11-1 in “Best Practices for Shell Scripts”.)
Results
Run the script from the command line and verify output.
Related Topics
Best Practices for Shell Scripts
Guide to Calibre Interactive Files
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
set r = "rules"
set c = "layout_primary"
Optimization
The goal of this section is to provide tips for common optimization problems that CAD
engineers are asked to tackle. Optimization is a broad topic, and these suggestions are by no
means exhaustive.
Improving Run Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Creating Smaller Netlists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Best Way to Resize Designs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
simulation significantly. Both Calibre run time and simulation time will be sped up
by omitting global nets in these cases.
o Use iterative extraction to get greater detail on only the critical nets.
Often the engineers only need fine detail on critical nets. These cases can run more
quickly if the non-critical nets are extracted as resistance only (-r) or lumped
capacitance only (-c). Then a select-net run can be performed on the critical nets
with the required high level of detail as described in Extracting Particular Nets.
If you are scaling the layout also 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
The goal of this section is to provide CAD engineers with some simple heuristics to aid in-house
troubleshooting. It includes many of the steps used by Mentor Graphics support personnel for
initially diagnosing problems.
Setting Up For Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Invocation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
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 these things:
• Are any of the switches incompatible? See “Calibre xRC Tool Invocation Reference” on
page 165.
• Are there any errors in syntax such as missing arguments or switched order?
If it invokes but quickly exits, there should be 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.
Calibre xRC provides parasitic extraction techniques for on-chip variation analysis.
This chapter contains information on how to handle parasitic on-chip variation.
• 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 xRC read them in and make adjustments to metal thickness.
If you haven’t placed your metal fill yet, you almost certainly do not want to use in-die variation
or CMP modeling. These are sensitive to local density, which will change when you add metal
fill.
Process corners, which supply different nominal parameters such as temperature or resistance,
can be run at any time with no penalty.
In-Die Variation
In-die variation is generally enabled by the foundry. The Calibre xRC user can turn it on or off,
but not change its values.
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.
Method
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:
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, producing calibrated rules to provide 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 xRC may choose to enable in-die variation.
For manually-created calibrated rules, you can include in-die variation with the following
technique:
2. 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.
Theory
When appropriately calibrated, the Calibre xRC 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.
Key to this compensation is the idea of local density. The density of material in a region or
window around each conductor affects the thickness of the line, and indirectly, the width.
Figure 12-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).
Process Corners
Process corners can be created by both the foundry and the chip development team. When
Calibre xRC extracts parasitics, a process corner and all user-defined corners are extracted at
once. You can choose to netlist all corners, or just a few.
When using ASIC optimizations, only one corner can be extracted at a time.
Method
1. The foundry sets up calibrations for multiple corners. The calibrated rules are provided
as part of the process design kit.
The header of the calibrated rules includes a PEX Corner statement that lists the names
of process corners available in the calibrated rules.
2. The design team determines which process corners need to be tested on designs before
tape out, and adds any missing corners to the SVRF file using the PEX Corner Custom
statement.
3. The engineer running parasitic extraction specifies the corners to produce using the
-corner switch from a command-line invocation. (When using the Calibre Interactive
interface, all corners are automatically extracted and netlisted.) See “Netlisting Multiple
User-Defined Corners” for more information.
Theory
Process corners are a way of modeling manufacturing parameters. The minute differences
between individual fabbers, even of the same model, result in different wafers receiving slightly
more or less of a material than the typical amount. These differences can result in increased or
decreased performance.
The CAD group at the semiconductor design company may want to verify process performance
by running test simulations with more conservative parameters than the foundry felt necessary
to include. The CAD group can specify particular parameters by layer that they want to change
and have the engineers run verification with those.
The data for all corners is extracted during the PDB stage of a run. You cannot add a corner to a
rule file after the PDB step and then produce output for it.
CMP Modeling
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 xRC
use them to modify thickness for the conductors. When used in conjunction with in-die
variation, the CMP data will be used for modifying thickness instead of the in-die data.
Method
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 xRC.
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 xRC 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.
Theory
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 12-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 12-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. This requires large amounts of disk space to complete the extraction, however.
Calibre xRC command line options allow you to perform extraction from the command line or
with a run script.
This chapter contains reference information for the invocation of the Calibre xRC tool.
Reference Syntax
The invocation descriptions use font properties and several meta-characters to document the
command syntax.
For information on syntax conventions used in this chapter, refer to Syntax Conventions.
calibre -lvs
Runs the Calibre nmLVS-H tool and creates the Persistent Hierarchical Database (PHDB) for
use by the Calibre xRC tool.
Usage
calibre -lvs -hier -spice directory_path/layout_primary.sp rule_file_name
Description
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
For complete Calibre nmLVS-H information, see the “Calibre nmLVS and Calibre nmLVS-H”
section of the Calibre Verification User’s Manual.
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.
Examples
The SVRF rule file is design.rules and contains the following SVRF statements:
You would invoke the Calibre nmLVS-H tool from the command line using the following
syntax:
PHDBs must be re-generated if they are inconsistent with a current run; this can occur if you
change the rule file.
Parameters
• -xrc
Invokes the Calibre xRC tool. For the PHDB stage, the netlists will 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 xRC 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.
• -cb
Runs connectivity extraction using xRC-CB licenses. Cannot be used with the -turbo or
-remote switches. See “Extracting a Block Using CB” for complete information.
• -lbd @state_filename
Specifies that licenses reserved by the license broker daemon (LBD) be used during the
PHDB creation stage. The state_filename argument is the name of the state file specified
when starting the LBD.
For more information, see “Calibre License Broker Daemon (LBD) for Calibre xRC” in the
Calibre Administrator’s Guide.
• -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 xRC 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 xRC 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 switch. This switch halts the invocation if it cannot
secure the exact number of CPUs specified using -turbo.
• -remote host[, host…]
Optional switch 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 Administrators 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.
• -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
The following command invokes PHDB creation using a Calibre xRC 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, lsf2 and lsf3:
The following command invokes PHDB creation using a Calibre xRC-CB license:
• -cb
See “Extracting a Block Using CB” for complete information.
• -lbd @ state_filename
Specifies that licenses reserved by the license broker daemon (LBD) be used during the
PDB creation stage. The state_filename argument is the name of the state file specified
when starting the LBD.
For more information, see “Calibre License Broker Daemon (LBD) for Calibre xRC” in the
Calibre Administrator’s Guide.
• -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 xRC tool runs on the maximum available for which you
have licences. If you do not apply the -turbo switch, it defaults to running on two processors
if available. To force the Calibre xRC 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 switch. This switch halts the invocation if it cannot
secure the exact number of CPUs specified using -turbo.
• -xcell xcell_list
Optional switch to create the PDB hierarchically. Specifies the path to and 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”.
When -xcell is specified without -incontext or -full, the primary cell is extracted to the
boundaries of the xcells.
• -incontext
Optional switch used in conjunction with the -xcell switch. Extracts only those instances
specified in the xcell list with a -C and a layout path.
• -full
Optional switch used in conjunction with the -xcell switch. Performs hierarchical extraction,
with fully netlisted xcells. For more information, see “Hierarchical Memory Extraction”.
• -select | -cselect
Specifies to exclusively extract nets using the net names you specify with PEX Extract
Include SVRF statement. For more information, see “Extracting Particular Nets”.
The -cselect switch can only be used for lumped and coupled capacitive (-c) extraction and
R-coupled-C (-rcc) extraction, and cannot be specified with -select. When extraction is run
with -cselect, coupled capacitance is kept distinct from intrinsic capacitance; with -select,
the two are lumped together.
• -asic | -noasic
Specifies whether or not to use ASIC optimizations. By default, ASIC optimizations are on
for LEF/DEF input, and off for other formats. ASIC optimizations should only be used with
gate-level extraction. All capacitance is reported as intrinsic capacitance in -asic mode.
• -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 THRESHOLDING messages from the analyzer are printed to the
transcript. If you add the switch to the command line, messages from the analyzer are
printed to the transcript. If you do not use the switch, messages from the analyzer are not
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 only those cell instances marked for extraction in the xcell file.
You specify the output formats and filename locations with the PEX Netlist, PEX Netlist
ADMS, PEX Netlist Select, PEX Netlist Simple, and PEX Report statements in the rule file.
Parameters
• -xrc
Invokes the Calibre xRC tool.
• -fmt
Specifies producing 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 switches 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 performing 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, -adms, or -all options. It can only be used with the
-simple option.
• {-c | -r | -rc | -rcc | -adms | -all | -simple}
Selects the output mode. Choose one of the following:
• -g
Grounds any coupling capacitors.
• -cb
For more information see “Extracting a Block Using CB”.
• -lbd @ state_filename
Specifies that licenses reserved by the license broker daemon (LBD) be used during the
formatting stage. The state_filename argument is the name of the state file specified when
starting the LBD.
For more information, see “Calibre License Broker Daemon (LBD) for Calibre xRC” in the
Calibre Administrator’s Guide.
• -xcell xcell_list
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.
• -incontext
Sets the formatter to output only the contextualized cells, without the nets of the parent.
• -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 xRC formatter runs. Otherwise, messages are
not displayed.
• -fmt_info
Displays informational messages while the Calibre xRC 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.
• -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
To write only capacitances 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:
The my_rules file will specify the net file my_selected_nets as follows:
For more information on PEX Netlist Select File, see the Standard Verification Rule Format
(SVRF) Manual.
The information in the following sections focuses on the Calibre xRC parasitic extraction tool
and the xCalibrate rule file generator.
Parasitic electrical effects are well understood and have complex differential equations to
describe them. These equations are used by the category of tools called “field solvers”. Field
solvers have the highest accuracy for predicting real-world consequences of layouts. However,
field solvers also take a very long time to run and are generally unable to cope with more than a
few dozen nets at a time.
The Calibre parasitic extraction tools abstract the interactions into a set of multi-variable
polynomial equations. These equations compute parasitic effects far more quickly than field
solvers.
Note
Typical chip structures do not include skew interconnect at angles other than 45 degrees, or
conformal interconnect layers whose vertical dimensions overlap.
The parasitic effects and Calibre models are described in the following sections:
Parasitic Capacitors
Capacitance exists anytime you have two conducting layers in close proximity separated by a
dielectric, such as interconnect or floating nets. When this capacitance is not part of a design, it
is parasitic capacitance.
Parasitic capacitance couples the two conducting layers. This has the effect of slowing rise and
fall times in a signal line, introducing noise, or possibly even causing charge leakage.
Some typical situations where parasitic capacitance may be a concern include the following:
margins. Noisy signals can also couple noise into a power line, which then carries it to
other nets.
• Metal line over substrate
In analog blocks, capacitance between substrate and antennas can cause excessive noise
on the signal. This is particularly an issue in mixed-signal chips, where the substrate
carries unwanted electrical signals from digital blocks.
• Parallel interconnect
When two signal lines run parallel, too much coupling can cause glitches, where a
transition in one signal momentarily raises or lowers the voltage on the other line. This
can pass bad data to the device on the other end.
• Shielded signal
A common technique when a clock is routed close to a sensitive signal line is to also
route a line tied to ground or power in between. The tied line shields the sensitive signal
line, but may also load the clock line, causing its transitions to be less sharp and skewing
the clock cycles received in that section of the clock tree.
xCalibrate Models
The xCalibrate Rule File Generator has both calibration models and effect models. In the
xCalibrate transcript, references to “model 114” or “model 2024” refer to the calibration
models. They are used with the technology description to create small layouts for the field
solver. Results from the field solver are then analyzed by a curve fitter to determine coefficients
for the capacitance and resistance equations.
The effect models are codified in the calibrated equations. As of 2008.1, the models are
encrypted. They are occasionally referenced in xRC PDB transcripts. The capacitance models
include the following:
• Capacitance Fringe – models capacitance between the side of a wire and either the
substrate (intrinsic) or the bottom or top of a wire (crossover).
These models are used for calculations. During formatting, the calculated values are
consolidated into intrinsic and coupled capacitance. The intrinsic and coupled capacitance are
output into the netlist and reports.
Intrinsic
Intrinsic capacitance is capacitance between an interconnect and substrate, sometimes referred
to as ground. For lower layer interconnect, it is often more significant than capacitance between
two lines.
Figure A-1 shows a cross section and schematic view of intrinsic capacitance. The three
parasitic capacitors shown in the layout represent the individual parasitic effects calculated by
the calibrated rules. When the Calibre xRC formatter runs, the separate capacitances (C1, C2,
and C3 in the figure) are combined to a single intrinsic capacitance (CT in the figure). Intrinsic
capacitance appears in the netlist as “ci_instance”1.
Coupled
Coupled capacitance is capacitance between two conductors. Both the conductors are usually
interconnect. (Calibre xRC is not recommended for device extraction. Devices are typically
represented with device models provided by your foundry.)
As shown in Figure A-2 coupled capacitance is calculated across layers. The contribution from
vias is controlled separately. Most often, it is turned off because it contributes very little but
causes extraction to take longer.
How the calculated capacitance is represented in the output depends on your Calibre xRC
settings. Figure A-2 (A) represents “capacitance only” output, which you would get from the -c
extraction and formatter setting. The separate coupled capacitance effects are aggregated into a
single net-to-net parasitic capacitance value. Figure A-2 (B) represents “distributed” output,
typical of -rcc extraction. The sum of the three coupled capacitors is the same as that of the
single coupled capacitor in (A). The three capacitors are separated by parasitic resistors (not
shown) along the net. Figure A-2 (C) represents grounded, also sometimes called “lumped”,
coupled capacitance. The total coupling capacitance is present on both nets and represented as
going to ground.
Lumped
Lumped capacitance is a term loosely referring to aggregated parasitic capacitance. It is often
applied to capacitance-only (-c) extraction because it outputs a single value for a net’s intrinsic
capacitance and a single value for each net to which it is coupled.
• Extraction is run iteratively, and only one of the nets is in the more detailed extraction.
(For example, an entire chip is extracted as “capacitance only,” followed by selected
critical nets extracted with -rcc, and then the entire chip is netlisted.)
• A reduction such as PEX Reduce CC was applied. (Grounding coupled capacitance
makes simulation faster because the two nets do not need to be kept in step.)
The total capacitance on a net is the same whether it is represented as separate intrinsic and net-
to-net coupled capacitance, or as a single lumped value.
Parasitic Resistors
Parasitic resistance is an inherent property of any material. Conductors have very low resistance
to current flow, but are not perfect. The unwanted resistance is calculated post-layout by
parasitic extraction and then included in simulation because the parasitic resistance of
interconnect can decrease signal amplitude and increase rise time. In power lines, parasitic
resistance can also cause DC voltage drop.
Parasitic resistance runs along the conductive materials. Unlike capacitance and inductance, it is
not influenced by nearby structures.
Some typical situations where parasitic resistance may be a concern include the following:
The resistance models include the standard parameters such as resistivity and temperature
sensitivity (represented in netlists as either temperature coefficients or by modifying the
reported temperature based on the SPICE calculation). They also include maximum length, used
for breaking long shapes into smaller segments, and maximum area, used for breaking large
areas into smaller ones.
Either rho or sheet resistance can be used with xCalibrate. They become equivalent resistance
equations for metal layers and are encrypted. Calibrated rule files prior to version 2007.4 might
include Resistance Sheet or Resistance Rho SVRF statements. Rule files that use Resistance
Rho must also include a way to calculate layer thickness.
Note
For processes below 90 nm, you should use resistance rules calibrated by xCalibrate
v2008.1 or newer. These include better methods for handling layer thickness and bias than
the older, manually created, rules.
Connection resistance applies wherever conductive layers overlap. It can be used to model
connections created by traditional contacts and vias, or connections created by removing
dielectric between process layers. Connection resistance, R, is based on the following equation:
The SVRF file specifies n1 and n2 in the Resistance Connection statement. Typically, n2 is 0.
If your Calibre run includes reduction, the parasitic resistors may not appear to lie along the
wires in a layout viewer. In cases of extreme reduction, parasitic resistors may even cross
layers. They do not, however, cross devices or nets.
MAXLENGTH also affects via clusters. If the area covered by a via cluster is longer or wider
than MAXLENGTH, it will be divided into smaller groups. Groups of vias are modeled with
representative parasitic resistors; the exact method depends on how the SVRF statement PEX
Reduce Via Resistance is set. That statement controls the initial clustering and grouping of vias;
those groups are then subject to the MAXLENGTH (or MAXAREA) value.
MAXAREA is intended for vias that cover large areas. Some foundries now offer solid vias
between upper conductor layers where the single via covers an area equivalent to a large via
array. The MAXAREA setting applies to this and other inter-layer connection types that rely on
a large overlapped area rather than traditional vias.
Maximum segment size can be overridden with the SVRF statement PEX Resistance
Parameters … MAXLENGTH or in the Calibre Interactive interface with PEX
Options > Misc > Resistance Parameters. The MAXAREA parameter does not affect plates
and wires but only large via areas.
The Standard Verification Rule Format (SVRF) Manual is the central document you consult for
creating legal SVRF rules and operations for inclusion in your SVRF rule file.
The section “About SVRF Rules” provides information on how an SVRF rule file is interpreted.
The remaining sections describe required and optional rules needed for primary extraction
operations.
Note
You must use the same SVRF rule file for creating the PHDB, creating the PDB, and
netlisting.
Keywords Reserved. SVRF keywords are reserved words. Consequently, you must not use
reserved words for names of variables or layers. For a complete list of reserved words, see the
Standard Verification Rule Format (SVRF) Manual.
Required Set
To create a PHDB, your rule file must have the following types of rules:
• Design specification: Layer, Layout Path, Layout Primary, Layout System, and Mask
SVDB Directory
• Connectivity extraction: Capacitance Order , Connect, Connect By, or Stamp
Note
If you are using coplanar layers, the Capacitance Order statement should be omitted
from rule files generated by 2010.3 or later versions of xCalibrate.
You can find in-depth usage information for the Calibre nmLVS-H tool SVRF rule
requirements in the following Mentor Graphics publications:
Capacitance Order
The Capacitance Order statement defines the vertical order of the specified conductor layers
from bottom-to-top—any capacitance layer must appear in the Capacitance Order statement.
Therefore, you must specify any layer present in the capacitance statements in the Capacitance
Order statement.
Note
If you are using coplanar layers, the Capacitance Order statement should be omitted from
rule files generated by 2010.3 or later versions of xCalibrate.
Capacitance Statements
The capacitance calculation statements are generated by the xCalibrate rule file generator and
included in the main SVRF rule file. They are based on foundry-supplied process information
and should not be modified by hand. The capacitance calculations specify what effects the
Calibre xRC tool extracts.
For a discussion of parasitic elements and how they are modeled, see “Parasitic Effects and
Calibre Tools”.
Note
A design’s nets must have resistance and intrinsic capacitance. Otherwise, the tool-produced
net model could improperly represent the net.
Because Stamp does not provide the level of detail needed for extraction it should only be used
for LVS. All layers necessary to connect parasitic layers to device layers should be involved in
Connect (or SConnect) statements, which produce a valid point of connection for the device
pins.
Because the Calibre xRC tool works from the design’s electrical data, the PHDB creator
performs connectivity extraction prior to parasitic extraction. Consequently, you must use at
least one of these statements for specifying the connection between any abutting or overlapping
objects.
The CONNECT BY statement enables the user to connect more than two layers, as follows:
CONNECT
layer1 layer2 layer3 layer4
... BY
layerC
However, using this method to connect more than two layers impacts the performance of the
resistance engine. Therefore, it is recommended that you do not use this method to specify the
connection of more than two layers unless it is absolutely necessary.
Device
The Device statements define pins on low-level devices such as transistors and capacitors.
The Device statement directs device recognition. In the Calibre xRC tool, you use this statement
for defining the device pins, which are necessary for extracting resistance values for distributed
RC extraction.
Layer
The Layer statement defines the name of an original layer or an original layer set in terms of
layer numbers or other original layer names in the rule file.
The amount of “hierarchy” within an original layer specification statement is unlimited. You
may not, however, redefine original layers. Additionally, you cannot use the same name for
multiple layer statements.
You must use Layer specification statements if you have original layer names in the rule file,
and if you are referencing original layers by name in the Calibre xRC application.
Layout Path
The Layout Path statement specifies the pathname for your layout database. When you supply
multiple Layout Path statements, the first database must contain the top cell you specify with
the Layout Primary.
Layout Primary
The Layout Primary statement identifies a top-level cell of your layout database for tool
operation. When you specify a GDSII layout database, you must also specify the layout’s top-
level cell using this statement.
Layout System
The Layout System statement specifies your layout database type. You can specify this
statement once in the rule file.
In your SVRF rule file, you must include this statement with the XRC secondary keyword using
the following syntax:
PEX Report
The PEX Report statement generates a report of parasitic results for the extracted circuit. Use
this statement for any parasitic operation regardless of whether it is distributed RC, lumped C,
or simple extraction.
Resistance Statements
You must have at least one SVRF Resistance statement in your rule file for specifying what
values the Calibre xRC tool will extract. Your rule file may use the Resistance Connection,
Resistance Rho, and Resistance Sheet statements, or include a foundry-supplied set of
resistance statements in the file of calibrated rules.
Note
A design’s nets must have resistance and intrinsic capacitance. Otherwise, the tool-produced
net model could improperly represent the net.
For a discussion of parasitic elements and how they are modeled, see “Parasitic Effects and
Calibre Tools”.
Tip
The PEX Netlist section of the Standard Verification Rule Format (SVRF) Manual explains
usage of this statement in detail.
Specific To Lumped C
The reduction statement PEX Reduce Mincap is applicable to lumped capacitance. There is also
a statement for creating reports, PEX Report.
Format the netlist using the “-c” Calibre xRC formatter invocation switch. For example:
This mode writes the entire contents of the PDB into a netlist and uses the PEX Reduce Mincap
statement.
Lumped C Report
The PEX Report statement specifies the report’s name and the output format. Example B-2
shows an example statement.
Tip
The “PEX Report” section of the Standard Verification Rule Format (SVRF) Manual
explains usage of this statement in detail.
Distributed Netlist
The PEX Netlist statement controls several aspects of distributed RC netlist creation including
the following:
Tip
The “PEX Netlist” section of the Standard Verification Rule Format (SVRF) Manual
explains usage of this statement in detail.
Parasitic Variation
You can modify nominal resistance calculations with the Parasitic Variation statement to more
accurately model your fabrication process and account for in-die variations.
If this reduction and the TICER reduction are both specified, the Ronly reduction has
precedence provided that the network is purely resistive. If the parasitics contain capacitance or
inductance information, the TICER reduction is used.
Distributed RC Report
The PEX Report statement specifies the report’s name and the output format. Example B-4
shows an example statement.
Tip
The “PEX Report” section of the Standard Verification Rule Format (SVRF) Manual
explains usage of this statement in detail.
LVS Report
The LVS Report statement specifies the LVS report filename. You can specify this statement
once in the rule file. Because this statement pertains to the Calibre nmLVS-H tool, you must
include this statement when you use a source name extraction flow.
Source Path
The Source Path statement specifies the path to your schematic netlist database when
performing source name extraction. You must specify this statement for subsequent use by the
Calibre nmLVS tool.
Source Primary
The Source Primary statement specifies the design filename, subcircuit, or cell name for SPICE
source databases when performing source name extraction. You must specify this statement for
subsequent use by the Calibre nmLVS tool.
Source System
The Source System statement specifies your schematic netlist database format, specifically
SPICE, when performing source name extraction.
Note
The Calibre xRC formatter will leave intact illegal syntax from your input source (for
example, net names containing braces “{}” in a SPICE input source). Consequently, you
must ensure your input source is compatible with the legal syntax of the output netlist format.
///////////////////////////////////////////////////////////////
// DEFINE LAYOUT AND SOURCE INPUT
// (this can also be done in Calibre Interactive)
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// IDENTIFY BASE LAYERS FOR FASTER DEVICE RECOGNITION
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// MAP DRAWN LAYERS
///////////////////////////////////////////////////////////////
LAYER pwell 1
LAYER oxide 2
LAYER poly 4
LAYER nplus 5
LAYER pplus 6
LAYER contact 7
LAYER metal1 8
LAYER via 9
LAYER metal2 10
///////////////////////////////////////////////////////////////
// ATTACH TEXT LAYERS
///////////////////////////////////////////////////////////////
TEXT LAYER 50
ATTACH 50 metal1
ATTACH 50 metal2
LABEL ORDER metal1 metal2
///////////////////////////////////////////////////////////////
// DERIVE BOOLEAN LAYERS
///////////////////////////////////////////////////////////////
bulk = EXTENT
substr = SIZE bulk BY 2
nsub = substr NOT pwell
///////////////////////////////////////////////////////////////
// CONNECT OPERATIONS
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// DEFINE INTENTIONAL DEVICES
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// SHORT ISOLATION (optional but recommended)
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// INDICATE POWER AND GROUND NET NAMES
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// SPECIFY OUTPUTS (SVDB AND LVS REPORT)
// (this can also be done in Calibre Interactive)
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
// LVS COMPARISON SECTION
///////////////////////////////////////////////////////////////
Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Logfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Netlists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Databases
Calibre xRC uses databases to store design and extraction data at different stages of the
extraction process.
There are three databases:
PDB Contents
The PDB stores the parasitic models for each extracted net. These models consist of the
following elements:
If you know the tool will produce extraction data greater than 8.588 gigabytes in size, you can
create the pdb.seg file before executing PDB generation. Using a text editor, perform the
following steps:
1. In the pdb.seg file, list the four files in the PDB database directory and the additional
files you want, beginning with pdb5.dat.
2. Save the file to a directory named layout_primary.pdb or cell_name.pdb in your SVDB
directory.
layout_primary.pdb is the name specified by the Layout Primary specification statement
in the rule file.
Generally, to produce output that uses source names, you create the PHDB using the Calibre
nmLVS-H tool. To produce output that uses layout names, you create the PHDB using the
Calibre xRC tool.
PHDB Contents
The PHDB stores selected hierarchical geometries and the results of connectivity extraction and
device recognition. A PHDB contains the following information:
In contrast to the Calibre nmLVS-H HDB, you only need to regenerate the PHDB for the
following reasons:
SVDB
The Standard Verification Database (SVDB) is a central repository for data files and directories
the Calibre nmLVS-H and Calibre xRC tools create, specifically the PHDB and PDB.
Additionally, the SVDB stores the cross-reference files the Calibre nmLVS-H tool creates and
the Calibre xRC formatter uses when you use source name extraction.
SVDB Contents
During PHDB and PDB creation, the Calibre nmLVS-H and Calibre xRC tools generate the
SVDB directory’s contents in separate databases. By default, the SVDB stores the following
files:
• Layout netlist: The Calibre nmLVS-H tool or command generates the layout netlist. The
layout netlist contains connectivity data for the top-level cell and subcircuits down to the
primitive device level. Additionally, the layout netlist describes connections for ideal
nets, specifically nets without parasitic elements (ideal conductors).
• Cross-reference files: Required files when you perform source name extraction. The
Calibre nmLVS-H application generates cross-reference files. You must run the Calibre
nmLVS-H application before the Calibre xRC tool.
The cross-reference files establish correspondence between the layout and source. The
Layout Primary statement supplies the prefix for the files, and these files have the
following extensions: .extf, .ixf, .lph, .lvsf, .nxf, and .sph. For a description of each file
see the Mask SVDB Directory statement in the Standard Verification Rule Format
(SVRF) Manual.
• Persistent Hierarchical Database (PHDB) directory. This directory is named
layout_primary.pdb.
• Parasitic Database (PDB) directory
Logfiles
Logfiles generated during extraction contain valuable processing and results information.
Most of the fields in the PDB Net Summary are self explanatory; this section highlights the
following cryptic parts of the PDB Net Summary:
• degenerate nets
A degenerate net is a net whose parasitic model contains no resistors or capacitors, just
pins and ports. The Calibre xRC tool reports degenerate nets in the formatter transcript.
Usually, the Calibre xRC tool identifies degenerate nets found in common source drain
regions (Figure C-1) and connections by abutment (Figure C-2).
• merged nets
The Calibre nmLVS tool may cross-reference multiple layout nets to a single source net.
In this case, the tool merges layout nets and writes the combined net model to the output
netlist.
• error nets
The error nets’ total represents the overall number of nets the Calibre xRC tool extracted
and, consequently, identified with an error message.
Netlists
The Calibre xRC tool outputs different files depending on the netlist format (for example,
HSPICE) you specified. Normally, these files are in your current working directory.
• HSPICE and Spectre Output Files
• DSPF and SPEF Output Files
• R-Coupled C DSPF Netlist Extraction
• name — the top-level netlist. If extracted hierarchically, this file contains the top-
level.subckt definition, including intentional devices and cell instantiations. The
name.pex file will be included outside the top cell subckt definition. The
name.top-level_cell_name.pxi files will be included inside the top cell subckt definition.
Flat extraction will not contain cell instantiations.
• name.pex — the parasitic model, intrinsic capacitor, and resistor netlist. This file
contains the parasitic model subcircuit definitions for each extracted net. The .subckt
name is based on the net’s hierarchical connectivity. It also contains parasitic resistors
and intrinsic capacitors. The name of each parasitic model is in the form
cell_name%net_name.
• name.top-level_cell_name.pxi — the parasitic model instantiation and coupling
capacitor netlist. This file contains instances of the parasitic models and describes the
net and any pins or ports connected to the net, as well as any extracted coupling
capacitors. The top-level_cell_name comes from the Source Primary statement’s
parameter defined in the rule file. If extracted hierarchically with the -full option, an
xcell_name.pxi file is generated for each of the xcells in the design.
For lumped capacitance (-c) extraction, the name.pex file is not created and the parasitic
intrinsic capacitors are written to the top-level netlist.
The Spectre-format netlist allows mixed-case property names. In order to preserve the case you
must set the Layout Case or the Source Case statements in the rule file to YES. There are
limitations in the LVS SPICE reader. For example, for built-in devices, the case for default
property names are not preserved. For more information on SPICE see “SPICE Format” in the
Calibre Verification User’s Manual.
A Spectre-format netlist generated by the Calibre xRC tool does not run with the Cadence
Spectre simulator version 6 or newer because of case sensitivity. Include the following
statement in the extracted netlist to resolve this:
The Calibre xRC formatter appends _noxref to layout names when the layout name does not
have an entry in the cross-reference file produced by the Calibre nmLVS-H run. This does not
mean that the Calibre nmLVS-H run was incomplete or incorrect.
In general, the Calibre xRC formatter outputs these appended layout names for either of the
following reasons:
• You enable gate recognition in the Calibre nmLVS-H tool. Normally, the _noxref names
are internal to the gate.
• You enable parallel gate reduction in the Calibre nmLVS-H tool (for example, using the
LVS Reduce statement).
The Calibre xRC formatter appends _noxref to these net names and propagates the annotated
names into the netlist for the following reasons:
Reports
The Calibre xRC formatter normally creates the ASCII report in your current working directory.
You control the report’s name using either the PEX Report or PEX Report Netsummary
statements in your rule file. The Calibre Interactive PEX interface overrides these with the PEX
Report File field, under the Reports tab of the Outputs screen.
Distributed
The distributed report is produced only when a distributed netlist is specified in the formatter
stage. The formatter transcript indicates a distributed report is output with the following line:
The distributed report provides details on a net-by-net basis for parasitics. It reports the same
type of information as the lumped report.
Lumped
The lumped report is produced only when a lumped capacitance (-c) netlist is specified in the
formatter stage. It does not support source names. The report includes the following
information:
Net Summary
The net summary report is produced when the rule file contains a PEX Report Netsummary
statement. It contains data on the parasitic capacitance of the nets that were extracted. Unlike
the lumped report, it is configurable. Reported values are multiplied by the SCALE option in the
SVRF statement. If SCALE is not specified, the values are in farads.
The default format reports the following post-reduction information for all extracted nets:
• GID — An internal identifier for the net which remains the same as the net moves
through different levels of design hierarchy.
• totalC — Total capacitance.
• totalCC — Total coupled capacitance. Because this value is post-reduction it represents
a lower bound on the coupling of the net. For RC extraction this will always be 0
because all coupled capacitance is decoupled.
• ratioCC — The ratio of coupled capacitance to total capacitance. Reduction occurs
before this value is calculated, making it a lower limit on the amount of coupling on the
net.
• Cell — The cell the net is located in. Reflects cells in the xcell list only.
• Layout — The layout name of the net.
• Source — The source name of the list. When the PHDB is created using the -xrc -phdb
switches instead of LVS, the report shows “<noref>” because the source names are not
available.
If the report command has COLUMNS ADVANCED set, capacitance values include subtotals
for top of cell versus subcells. The values are reported in the following columns:
• localC — The total capacitance of the portion of the net within the top of the named cell.
• localCC — The total coupled capacitance of the portion of the net within the top of the
named cell.
• childC — The total capacitance of the portion of the net within subcells. For transistor-
level and gate-level extraction this will always be 0.
• childCC — The total coupled capacitance of the portion of the net within subcells. For
transistor-level and gate-level extraction this will always be 0.
Resistance Point-to-Point
The resistance point-to-point report is produced when the rule file contains a PEX Report
Point2Point statement. It contains point-to-point parasitic resistance calculations of specified
nets. These resistance calculation commands are specified in an input file.
The report is generated from a PDB. You can extract a report from a flat or hierarchically
generated PDB. You can generate a point-to-point resistance report for a net at the top level cell
or a net inside a cell represented in the xcell list. You can also generate a report for point-to-
point resistance on a net based on coordinates in the layout. You cannot generate a report for a
net that traverses the hierarchy of the PDB.
The report shows the ratio of coupling capacitance between any two nets related to the total net
capacitance for each net. You can generate the report based on a hierarchical or transistor-level
extraction.
Templates
Templates are ASCII text files used for defining pin direction and order in the output netlist.
They are created by the formatter in the SVDB directory, and can be edited in a text editor.
(Older versions of the Calibre xRC tool wrote templates in the current working directory and the
formatter checks that location first.)
Templates are enabled by setting the PEX_FMT_HP_PORT_MAP_MODE environment
variable to one of the following mutually exclusive values:
• TEMPLATE — maps ports using the user-defined template for each cell.
• TEMPLATE CELLNAME SOURCE — defines an alternate name for the cell in the
netlist. The Calibre xRC formatter writes cell names to the output netlist reflecting the
contents of Template Cell Name (see Figure C-3). If the netlist naming mode is
SOURCE in the PEX Netlist statement, then the formatter cross-references the Layout
Netlist Cell Name to the schematic netlist (source netlist), and the tool uses the source
cell name for the Template Cell Name.
Do not use the templates to manipulate port names. If you do, the formatter will issue a warning
message similar to the following:
WARNING:unable to find a map for port ORIG_NAME on the template for cell CELL
ORIG_NAME will NOT be ported from the cell.
If you see this warning, the netlist is incorrect. To change port names, use the Layout Rename
Text statement.
Once you enable templates and run the Calibre xRC formatter, the application searches first the
SVDB directory and then the working directory for previously-defined template files. For any
cell without a template file, the Calibre xRC formatter generates a default template and writes
the template to the template directory (normally ./template) in the SVDB directory. The
formatter derives the default template’s contents from a cell's interface description contained in
the Layout Netlist.
The Calibre xRC formatter generates one template for each xcell and stores them in the
templates directory. The resulting template files are named xcell_name.stl.
Figure C-3 illustrates the default components of an example Calibre xRC tool-generated
template:
Calibre xRC provides reduction controls used to reduce run time and/or netlist size.
This appendix provides information on the various types of reduction techniques available for
parasitic extraction.
• 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
Threshold-based reduction allows you to control the parasitic reduction output.
The PEX Reduce Digital statement decreases the size of netlists and databases. When you use
this statement in your rule file, the Calibre xRC tool uses the threshold you define for
distributed RC parasitic extraction; if a distributed RC model meets the threshold, then the
Calibre xRC formatter will convert 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:
PEX REDUCE TICER frequency
where frequency is a user-defined calculated number controlling which nodes in the circuit the
tool can select for subsequent elimination; specifically, the tool will select nodes with time
constants less than the frequency parameter.
In your rule file, you specify the calculated frequency parameter in hertz and express the value
in the SVRF PEX Reduce TICER statement using scientific notation. For example:
Using the Calibre Interactive PEX interface, you 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 a wider bandwidth of accuracy.
• 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 remain unchanged. Including temperature coefficients for resistors
affects the recalculated values for the parasitic capacitors in the final netlist.
The Time-it™ tool is a path-trace delay calculator, and computes both interconnect and cell
delay data for a netlist.
This chapter contains information about the Time-it delay calculator.
Time-it Documentation
The Time-it tool is a path-trace delay calculator, and computes both interconnect and cell delay
data for a netlist.
This chapter presents a brief overview of the Time-it tool. For more information on using the
tool, refer to the Time-it manual set, which is included in the Time-it software tree. The Time-it
manual set includes the following documentation:
The cell-level netlist can be DSPF. The interconnect netlist should be in DSPF format; if you do
not specify DSPF, the application uses wire load models specified in the timing library.
Traditionally, the cell-level and interconnect netlists are in one DSPF file.
Additional outputs from the Time-it tool include a list of effective capacitances for each net
(CEFF), the worst case rise and fall times of each net’s drivers and receivers, a worst case skew
report for each net, and a full clock tree skew report. You specify input and output parameters in
the control file.
Simulators or static timing analyzers can use the SDF output for backannotation and perform
further detailed timing verification or optimization. SDF is a standard format read by many
Verilog or VHDL logic simulators, static timing analyzers, synthesis, and place and route tools.
For accurately calculating the delay for a cell driving a distributed RC network, the delay tool
must account for the interaction between the interconnect and the cell. In addition, for the most
accurate delay calculations, the delay tool must calculate the effective capacitance (rather than
the total capacitance) of the interconnect.
Error and warning messages are generated by the Calibre xRC tool at run time.
Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Warning Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Error Messages
Error messages must be corrected to continue a Calibre xRC run.
Warning Messages
Warning messages should be reviewed to determine if they indicate a real problem in your
design.
AMS
Analog mixed signal.
ADvanceMS
A Mentor Graphics mixed signal design analysis tool.
backannotation
A process where extracted parasitics are added to the source netlist for parasitic re-simulation.
coupled capacitance
The capacitance between two conductors. See Capacitance Models in Parasitic Extraction.
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.
feedthrough net
A net within an xcell that connects to a higher-level port outside of the cell but does not connect
to any device within.
floating net
A net that is not electrically grounded through connection to a device or xcell port.
formatter
Extraction step which formats the netlist according to command line options and SVRF
statements found in the extraction rule file.
fringe capacitance
The capacitance between the side of a conductor and either the substrate (intrinsic) or the bottom
or top of another conductor (crossover). See Capacitance Models in Parasitic Extraction.
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 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-context extraction
A type of extraction which extracts the parasitics of a cell with reference to structures outside the
cell boundary. The location or “context” of the cell affects the internal parasitics of that cell. See
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). See Capacitance Models in Parasitic
Extraction.
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. See Milkyway
Data In ASIC Mode.
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.
See Capacitance Models in Parasitic Extraction.
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. See Capacitance Models in Parasitic
Extraction.
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 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.
Connectivity, 201
Index
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.