Calbr Query User
Calbr Query 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
Introduction to Calibre Query Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Query Server Workflow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Chapter 2
Key Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
calibre -query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Acknowledgment Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Response Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Input Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Query Server Database Modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Command Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Client Contexts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Device Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Net Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Chapter 3
Standard Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Communication and Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
ACTIVATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
CONNECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
DISCONNECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ECHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
HELP COMMANDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
PASSWORD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
QUIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
RESPONSE DIRECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
RESPONSE FILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
STOP ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
TERMINATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Query Setup Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
COMPARISON RESULT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
CONTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
FILTER CULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
FILTER DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
FILTER DEVICELAYERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
FILTER DISTANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
FILTER LAYERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Chapter 4
Calibre Connectivity Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Annotated Device Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Conflicting Annotated Device Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
ANNOTATED DEVICE LAYER MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
FILTER {IN | OUT} ANNOTATED LAYERS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Annotated GDSII File Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
GDS ANNOTATED DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
GDS FILTER MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
GDS HIERARCHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
GDS HIERARCHY CLEAR EXPAND CELLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
GDS HIERARCHY EXPAND CELL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
GDS HIERARCHY EXPAND DEVICELESS CELLS . . . . . . . . . . . . . . . . . . . . . . . . . . 204
GDS MAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
GDS {DEVPROP | NETPROP | PLACEPROP} NUMBER . . . . . . . . . . . . . . . . . . . . . . . 207
GDS RESET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
GDS SEED PROPERTY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
GDS SVRF MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
GDS UNITS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
GDS WRITE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Annotated GDSII File (AGF) Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Layer Output Control for the AGF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Cell Extents Report Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
CELL EXTENTS WRITE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Port Table File Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
PORT TABLE WRITE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
PORT TABLE NAME POLYGON PORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Port Table File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Customized Layout SPICE Netlist Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
LAYOUT NETLIST ANNOTATED DEVICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
LAYOUT NETLIST CELL PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
LAYOUT NETLIST NO CELL PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
LAYOUT NETLIST COMMENT PROPERTIES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
LAYOUT NETLIST DEVICE LOCATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
LAYOUT NETLIST DEVICE LOWERCASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
LAYOUT NETLIST DEVICE TEMPLATES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
LAYOUT NETLIST EMPTY CELLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
LAYOUT NETLIST HIERARCHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
LAYOUT NETLIST HIERARCHY CLEAR EXPAND CELLS . . . . . . . . . . . . . . . . . . . 239
LAYOUT NETLIST HIERARCHY EXPAND CELL . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
LAYOUT NETLIST HIERARCHY PREFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
LAYOUT NETLIST HSPICE CR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
LAYOUT NETLIST HSPICE USER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
LAYOUT NETLIST NAMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
LAYOUT NETLIST PIN LOCATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Chapter 5
Query Server Tcl Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Tcl Shell Basic Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
calibre -qs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Tcl Basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Using Short Database Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Using LVS Custom Report Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Query Server Tcl Shell Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Administrative Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
LVS Custom Report Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
LVS Rule File Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Net Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Short Isolation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Short Repair Database Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Hcell List Generation Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Miscellaneous Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
short_db::get_change_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
short_db::get_serial_number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
short_db::get_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
short_db::goto_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
short_db::isolate_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
short_db::isolate_shorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
short_db::list_change_sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
short_db::mark_fixed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
short_db::remove_change_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
short_db::rename_change_set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
short_db::set_status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
short_db::show_change_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
short_db::switch_change_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
short_db::user_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
Chapter 6
Hcell and Hierarchical Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Current Hcell List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Evaluation of Hcells for LVS Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Evaluation of Hcells for Netlist Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
Hcell Selection Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Netlist Hcell Analysis and Reporting Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Tcl Shell Hcell Analysis Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
hcells::add_matching_hcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
hcells::automatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
hcells::clear_hcell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
hcells::clear_hcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
hcells::evaluate_current_hcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
hcells::expand_unbalanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
hcells::hcell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
hcells::hcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
hcells::placementmatch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
hcells::print_hcells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
hcells::print_hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
hcells::read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
hcells::select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
hcells::status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Hcell List Management Using Standard Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Historical Hcell Reporting and Selection Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Generating Hcell and Xcell Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Hierarchy Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Hcell Evaluation Report Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Hcell Analysis and Hierarchy Tree Report Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Unbalanced Hcell Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Cell Matches Using Placement Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Chapter 7
Query Server Error and Failure Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Failure Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Note Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Index
Third-Party Information
End-User License Agreement
Licensing
The Calibre Query Server license is required to run the Query Server. To run the Query Server
Tcl Shell for short isolation, you also need the Calibre nmLVS and Calibre nmLVS-H licenses.
Required Files
The Query Server operates on files generated in a previous LVS run.
Before starting the Query Server, you need the following items:
• Rule file containing the Mask SVDB Directory statement with the QUERY or CCI
options.
• Generated SVDB directory from a Calibre nmLVS run.
It is possible to run the Query Server using an SVDB generated by a Calibre nmLVS
connectivity extraction run alone (no LVS comparison). However, any Query Server commands
that depend upon comparison information will not function. Similarly, if LVS is run flat, any
commands that presume hierarchy will not function.
Syntax Conventions
The command descriptions use font properties and several metacharacters to document the
command syntax.
There are a number of foundational ideas you should know when using the Query Server. You
should familiarize yourself with them before using the tool.
calibre -query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Acknowledgment Messages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Response Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Input Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Query Server Database Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Command Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Client Contexts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Device Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Net Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
calibre -query
For the Tcl shell, see “calibre -qs” on page 315.
Calibre Query Server standard command line.
Usage
calibre [-cb][-nowait | -wait n][-lmconfig licensing_config_filename]
[-query_input query_file] -query [svdb_directory] [layout_primary]
Arguments
The order of the final three command line arguments is important to prevent confusion of the
parameter names with other options used by the command.
• -query
A required argument that starts the Query Server. This argument should follow all other
options except svdb_directory and layout_primary.
• svdb_directory
An optional argument that specifies the pathname to the SVDB directory. This directory is
generated by the Mask SVDB Directory rule file statement. This directory contains the
results from Calibre nmLVS execution.
• layout_primary
An optional argument that specifies the top-cell name as specified by the Layout Primary
specification statement in the rule file. You must specify this cell name only when the
svdb_directory contains data from several different primary cells. When you do not specify
layout_primary, the Query Server seeks a directory ending with phdb in the svdb_directory.
The following optional arguments should appear before -query.
• -query_input query_file
An optional argument that specifies the pathname to a text file containing a Query Server
command script.
• -cb
An optional argument that specifies to use the Calibre Cell/Block license. Refer to the
Calibre Administrator’s Guide for license information.
• -nowait
An optional argument that causes the tool to exit if a license is not available.
• -wait n
An optional argument that places a limit on the total time in minutes that Calibre queues for
a license. For example, this command:
calibre -wait 5 -query svdb
queues on a license for five minutes and exits if a license in not available in that time frame.
• -lmconfig licensing_config_filename
An optional argument that enables a loop search for default or substitute licenses. The loop
search is used rather than the default license acquisition behavior. The
licensing_config_filename argument specifies a configuration file that controls how the
license search occurs. Refer to the Calibre Administrator's Guide for more information.
Description
This command starts the Calibre Query Server in standard mode. The server accesses the PHDB
(persistent hierarchical database) and XDB (cross-reference database) in an SVDB (standard
verification database) generated by the Mask SVDB Directory specification statement in the
rule file. The QUERY and CCI options of the Mask SVDB Directory statement are typically
used.
By default, the server communicates with the client application by reading STDIN1to receive
commands and by writing to STDOUT to return acknowledgments and responses. Query
commands are issued in these modes:
Commands from a script — In this mode, the tool is controlled by a text file. For example:
Interactive commands from a user — In this mode, commands are issued by the user to the
Query Server from the command line to examine a PHDB. For example, you can enter the
following:
1. The Query Server standard mode does not have an application programming interface of its own. However,
the Query Server can be accessed through Perl scripts or other scripting languages. In particular, Perl provides
standard input/output support through its IPC::Open2 library (see http://www.cpan.org). The Query Server
flushes all output at the end of each command response in order to facilitate communication with scripting
languages.
You can use an ASCII string containing a series of commands appended to the command line
invocation (this only works in Bourne-type shells). For example:
Commands from an interface — It this mode, a client interface other than a script interacts
with the Query Server. The client must be designed to accept the output of the Query Server and
to issue commands in the forms the Query Server expects.
Acknowledgment Messages — A string returned by the Query Server to indicate that the
command has been received and to communicate about the success or failure of command
processing.
Responses — Design information returned by the server. Responses can be direct responses
written to STDOUT immediately following the acknowledgment, or they can be indirect
responses written to Response Files from which the client application can read.
CCI Files — Output files used to pass connectivity data to downstream tools. For more
information on CCI files, refer to “Calibre Connectivity Interface.”
Examples
Example 1
This excerpt shows an invocation of the Query Server from the command line, followed by the
issuing of the NET NAMES, NET LAYERS, and TERMINATE commands.
HDB QUERY SERVER terminated: CPU TIME = 0 REAL TIME = 97 LVHEAP = 0/5/69
MALLOC = 93/93/93
Example 2
The following shows various Calibre nmLVS-H and Query Server invocations, and specified
rule file statements.
Running connectivity extraction as a separate step allows you to determine if there are
connectivity issues that need to be addressed before going to comparison.
If you start the Query Server and the comparison step was not run when the SVDB was
generated, you will see this message:
You will also see this message if you use a Mask SVDB Directory statement with an option that
does not generate an XDB, such as the PHDB option.
Acknowledgment Messages
Every standard query server command elicits an acknowledgment. An acknowledgment is a
single string of text beginning with three spaces and terminated by a carriage return character.
Acknowledgments are documented for all commands that produce them in a subsection
dedicated to this information.
Since some acknowledgment lines contain pathnames and other design information; there is no
set limit on the length of an acknowledgment line. The client must be prepared to accept
acknowledgments of arbitrary length and to reformat them for display if necessary. Here are
some examples (the // comments are not part of the acknowledgment):
• OK. — This acknowledges that the command succeeded. Any additional information
generated by the command is returned in a response (see “Responses”).
• OK: <string> — This acknowledges that the command succeeded and returns some
information produced by the command. This form of acknowledgment is used by
commands that generate a small amount of information on a single line.
• NOK(<number>): <reason> — This acknowledges that the command failed to
produce the requested information. The <number> is an integer and the <reason> is a
sentence explaining the reason for failure. The <number> is provided for a program to
identify the message without parsing the <reason>. This type of acknowledgment is only
used for queries that request design information. See “Failure Messages” on page 468.
• ERROR(<number>): <reason> — This acknowledges when a problem arises such
that the command cannot be performed. The <number> is an integer and the <reason> is
a sentence explaining the reason for the error. The <number> is provided for a program
to identify the message without parsing the <reason>. Errors may represent a failure of
the environment (such as the inability to open or write to the response file) or misuse of
the communication channel by the application (such as an unknown command or a
command that is inappropriate and could have been avoided). See “Error Messages” on
page 465.
Responses are generated by a command that returns design data. Responses are different from
acknowledgments. A command that generates responses does so only if its acknowledgment
contains OK.
Responses
A response contains the design information returned by a query command. Not all standard
commands produce them. For the ones that do, a Response subsection appears on the
command’s reference page.
Certain responses are similar to ASCII DRC Results Database format. The format of the ASCII
DRC results database is found in the section “ASCII nmDRC Results Database Format” in the
Calibre Verification User’s Manual. The coordinate system used in a response is determined by
the current context of the design in which the command was invoked.
• Header line followed by one or more check sections. The header line contains a cell
name followed by the precision of the design.
• Check sections beginning with a check title line containing the name of the check, which
may contain embedded white space.
• Count line containing the number of shapes currently in the check, the number of shapes
originally in the check, the number of text lines in the check, and the date. The two
geometry counts are always equal. However, response readers must ignore the original
geometry count, which is reserved.
• Zero or more text lines, the number of lines having been given in the text line count field
of the count line.
• Zero or more polygon references, the number of polygons having been given in the
current geometry count field of the count line. Each polygon reference consists of a
polygon header line containing the character p, a polygon number (in responses the
polygons are numbered sequentially starting from 1), and the vertex count of the
polygon.
• Vertex lines contain the vertices of a polygon in counterclockwise order, one vertex per
line, with each line containing the x followed by the y coordinates of the vertex.
• End of response check title and count lines. Because it is always present and does not
change, the END OF RESPONSE line may be omitted from the command descriptions
later in this manual.
• For responses that include coordinate values, coordinates are in database units as
represented in the Calibre databases (not necessarily the same as the physical layout).
When used, magnification factors in the rule file are applied to the coordinates.
The response format is shown next. Items in angle brackets are separated by spaces and contain
no white space, except for <check_name> and <text_line>. The comments following the //
characters are for information only. They do not appear in the actual responses.
Response Files
A response file is an ASCII file that can be read by a client.
A response file is an alternate destination for Responses. You configure the Query Server to
direct output to a response file (instead of STDOUT) through the RESPONSE FILE command.
Each time a response is generated, the server opens the current response file, writes the response
into the file, and closes the file. This has several implications. First, any previous contents of the
file are overwritten by the new response. Second, after receiving the “OK” acknowledgment,
the application can rename or delete the file. The server uses the file again for the next response.
The application can establish a new response file at any point. Thus, it can have each response
directed to a different response file or can have all responses directed to the same file. In the
latter case, new responses overwrite previous responses unless the application renames the file
between responses.
Input Databases
The databases that the Query Server probes are found in a Standard Verification Database
(SVDB) directory. This directory is composed of several separate databases generated during an
LVS run.
You control the types of information written to the SVDB database through the Mask SVDB
Directory statement in the rule file used for the LVS run.
The two most important SVDB files for the Query Server are the Persistent Hierarchical
Database (PHDB) and the Cross-reference Database (XDB). Either or both may be present in
the SVDB, depending on what you specify in the Mask SVDB Directory statement. The PHDB
contains information produced during the connectivity extraction (calibre -spice) phase. The
XDB contains cross-reference information produced during the LVS comparison phase.
Note
The SVDB can be generated during a flat LVS run. However, this will cause Query Server
commands that expect design hierarchy to exist not to work. See “Flat Database Mode” on
page 29.
You can protect the SVDB database with a password to enhance security in an environment
where there is potential for unauthorized access. Once a SVDB database has been protected,
Query Server and Calibre RVE request a password before allowing access to the database. For
more information about setting an SVDB database password, refer to “Communication and
Control Commands” on page 39.
PHDB
A PHDB (persistent hierarchical database) contains information about selected hierarchical
shapes, connectivity, and extracted devices.
A PHDB is stored in the SVDB when appropriate options are used with the Mask SVDB
Directory statement.
XDB
The XDB (Cross Reference Database) contains information generated during LVS comparison,
where the XDB associates devices and nets with one another. This database contains these
items:
• Net cross-reference for nets matched during LVS, including nets matched to multiple
nets.
• Unmatched incorrect nets and indeterminate nets.
• Filtered nets that are removed by the LVS Filter Unused family of statements.
• Instance cross-reference for instances matched during LVS, including smashed
instances and gate membership information.
• Unmatched instances.
• Filtered instances that are removed by the LVS Filter Unused family of statements.
• Original netlist placement hierarchy information (for hierarchical LVS only).
Information from the PHDB and XDB is available independently. Some commands rely on both
databases to generate results.
If one or the other database is missing because of how the run was conducted, a subset of
commands that require only information from the available database continue to work. For
example, the NET SHAPES command works even if no LVS comparison has occurred (and no
XDB database has been written). The DEVICE SOURCE command works for SPICE-to-
SPICE comparisons where no PHDB has been written.
These databases are similar to a hierarchical run that has only one cell. However, they differ in
that they follow the flat LVS instance-naming methodology rather than the hierarchical LVS
instance-naming methodology. All devices and nets appear to be in a single top-level cell.
Commands which involve placement arguments, or involve multiple cells, are not available
from the Query Server in flat mode.
The flat LVS naming methodology differs from the hierarchical methodology in the following
ways:
• Device names from the PHDB are simply numbered, they do not have a SPICE element
type letter. For example, a MOS device named M0 in the hierarchical PHDB would be
named “0” in the flat PHDB.
• Since all shapes are flattened before extraction, no hierarchical names appear in a flat
PHDB. All layout nets and device names appear as names or numbers in the top-level
cell.
• Source names appear as flattened hierarchical names. They differ from their hierarchical
counterparts in that subcircuit calls are represented with X characters in both devices
and nets. For example, a net that is inside a cell placement in the hierarchical system has
the name XAA/N21, while the same net in the flat system has the name AA/N21.
Similarly, a device that has the hierarchical name XAA/MS0 has the flat name AA/MS0.
Note
Mixing of hierarchical extraction (calibre -spice) and flat comparison (calibre -lvs) is
not recommended.
In some cases, enhancements are made to the SVDB structure and the Query Server that make
such backward-compatibility impossible. In such cases where there are incompatibilities, you
may need to create a new SVDB with a later version of Calibre. The Query Server issues a
message when the SVDB is not compatible with the current Calibre version.
Command Context
Because of the hierarchical nature of the data on which the Query Server typically operates, the
client application must provide the Query Server with a context within which to interpret
command arguments.
The context defines such things as these:
• The cell (top cell in flat applications) about which queries are currently being made is
the query cell. You define the query cell using the CONTEXT command.
• The cell having the coordinate system in which the results are returned is called the
viewing cell. The viewing cell must either be the query cell or a cell containing an
instance of the query cell. By default, the query cell is the viewing cell.
• The interpretation of pathnames.
• The coordinate space used for reporting results.
• The output file location.
In commands and Query Server responses, pathnames are always relative to the query cell. For
example, if the query cell is ADDER2 and the command contains the net path X2/CLK, then the
net being specified is the net named CLK in the cell instance named X2 in the cell named
ADDER2.
Geometric Coordinates
In commands that require the specification of a geometric location using (x,y) coordinates, the
coordinates are those of the viewing cell. The coordinates are specified in user-units.
The query cell is a cell about which information is requested. The viewing cell is the context in
which the information is presented. The CONTEXT command controls how these cells are
defined.
The distinction between query cell and viewing cell is necessary because of the hierarchical
nature of the data on which the Query Server operates. When a cell contains instances of lower-
level cells, the parent cell and each of the lower-level cells each have their own coordinate
spaces. Thus, geometric results can be returned in one of the following coordinate systems:
• The coordinate system of the query cell. (The viewing cell is the same as the query cell.)
• The coordinate system of a cell containing an instance of the query cell. (The viewing
cell contains an instance of the query cell.)
Figures 2-1 through 2-4 illustrate these concepts. The top-level cell is A. It contains two
instances, X1 and X2, of cell B. Both cells contain nets N3 and N4 as shown in the figures.
Example 1
The viewing and query cells are both A (see Figure 2-2). In this case, you are viewing cell A
and asking about objects relative to cell A. Thus, N3 in the query refers to net N3 of cell A. The
results are mapped into cell A. The Query Server returns the coordinates of the gray shapes in
the coordinate system of cell A.
Example 2
The viewing cell is A, the query cell is B and the query instance is X2 (see Figure 2-3). In this
case, you are viewing cell A but making queries relative to cell B and you expect the results to
be mapped from instance X2. Thus, N3 in the query refers to net N3 of cell B. The Query Server
returns the coordinates of the gray shape in the coordinate system of cell A.
Example 3
The query and viewing cells are both B (see Figure 2-4). In this case, you are viewing cell B and
asking about objects relative to cell B. Thus, N3 in the query refers to net N3 of cell B. The
results are to be mapped into cell B. The Query Server returns the coordinates of the gray shape
in the coordinate system of cell B.
Client Contexts
The server is designed for multiple client contexts. From the server’s point of view, client
contexts are created, go through phases of being active and inactive, and eventually are deleted.
Exactly one client context is active at any given time and is called the current client.
Note
In most cases, you need not be concerned with client context. This topic would concern you
if you are building your own interface to the Query Server. This is rare. In most cases, a
script passed with the -query_input option is all you need.
Definition: The current client is the client application that is active at a specific time.
The server maintains a table of information about each client context. Commands exist which
allow a client to modify its client table information.
The following table describes the data stored as the current context for each client:
The server assigns client ID numbers (non-negative integers) to the clients. Client ID 0
represents the application itself as a client context. It initially exists, is active, can become
inactive, but can never be deleted. A client context can only be inactivated by activating another
client context. Only an inactive client context can be deleted.
Because the Query Server can support multiple clients (only one is active at any time), it creates
a separate response file for each client. When a response file is established for a client ID, it is
used for all responses until another response file is established or the client context’s response
mode is set to direct. It is the client application’s responsibility to delete these files when they
are no longer needed.
Device Tables
The device table consists of an indexed set of entries containing information about each device
type in the design. There is only one such table for the entire design, and it is independent of
context.
The indices range from 0 to n-1, where there are n Device specification statements in the rule
file. These indices are called device type numbers. Each entry contains the following
information:
The device type is one of the following constants: DIODE, RESISTOR, CAPACITOR, MOS,
BIPOLAR, USER.
Responses that describe devices or device pins use the indices into the device table to reduce the
size of the response. The DEVICE TABLE command allows you to view the device table to
interpret the device type numbers. For example, in a response giving the device pins on a net,
each pin is described by the following items:
pin_index — 0-based index of the pin in the pin lists of the device entry.
Additional information about the device, such as the values of its properties or the nets to which
its other pins are connected, can be obtained by using the DEVICE INFO command. Pin and
property names are lowercase. Layer names have the same text case as the rule file.
Net Names
Nets in the PHDB may be referred to by name or by number. Nets returned in acknowledgments
or responses are always returned by name if possible, otherwise by number.
Nets may be specified as hierarchical paths, referenced to the current viewing cell. For example:
X1/X2/3 would refer to net 3 in the instance path from X1 to X2.
Related Topics
Input Databases
Limitations
The Query Server has some limitations.
• It does not process the LVS discrepancy report and thus cannot respond to discrepancy-
number-based queries.
• It does not retain the type of state information that allows it to produce sequencing or
scanning behavior. For example, there is no “return the next device on this net” query.
All such sequencing must be performed by the application. (The Browse commands
help with this type of situation.)
• It provides no progress information as the response to a query is being generated.
• It does not find incorrect nets and incorrect instances.
A standard command consists of one or more words followed by any additional information
required by the command such as names, numbers, or pathnames.
Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Communication and Control Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Query Setup Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Cell Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Browse Deviceless or Pseudo Cells Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Device Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Net Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Placement Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Port Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Rule File Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Hcell Analysis Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Command Format
Each standard query command is a single string of text terminated by a return character.
Commands may be issued directly in the server shell, or they may appear in a script. The words
chosen to represent a command are a compromise between brevity and ease of human
recognition. Later sections cover each command in detail.
Blank lines and lines beginning with the pound character (#) are ignored and may be used in test
scripts or for documentation. All other lines are treated as command lines. Here are some
examples:
Unless specified otherwise, commands and their arguments pertain to the current query cell, and
pathnames are relative to the current query cell. Nets in a command can be referred to by name
or by number. Nets returned in responses are always returned by name if possible, otherwise by
number. Responses are shown for commands that issue responses. If a command does not issue
a response, none is indicated in the command descriptions.
Although they are shown in uppercase in this document, the server is not sensitive to the text
case of the command words.
Commands that access a layout file generally match the case sensitivity constraints for GDSII
and OASIS layout formats. Cell names are first searched using the exact case specified in the
command. If no results are generated, a second search is performed without regard to case.
Layout placement names and device names are always considered case-insensitive. You can
control how case sensitivity is considered for layout net names using Layout Preserve Case.
Case-sensitivity for XDB (cross-reference database) commands is affected by the Layout Case
and Source Case statements in the rule file.
ACTIVATE
Query Server command.
Activates a server client.
Usage
ACTIVATE client_id
Arguments
• client_id
A required positive integer.
Description
For most users, this command is not needed.
Deactivates a current client (if one exists) and activates the client (in its current context)
indicated by the client_id.
Acknowledgments
ERROR(106), ERROR(107)
Related Topics
CONNECT
DISCONNECT
Communication and Control Commands
CONNECT
Query Server command.
Connects a new client to the server.
Usage
CONNECT
Arguments
None.
Description
For most users, this command is not needed.
Deactivates the current client context, creates an unused client ID number, initializes the client
table entries for that context to their default values, makes the new client context the active
context, and returns the new client ID. Client IDs are non-negative integers.
There is no reasonable limit to the number of client contexts that may be defined at any given
time, but only one may be the current active client context. When the server is initiated, it
creates client ID 0 and activates it. This client context can never be deleted. It should be
reserved for use by the application acting on its own behalf when multiple client contexts are
being maintained. For example, some application implementations may want to cache
information such as the device table so they can use it directly without requesting it from the
server for each operation.
Acknowledgments
OK: new_client_id
Related Topics
ACTIVATE
DISCONNECT
Communication and Control Commands
DISCONNECT
Query Server command.
Disconnects a client from the server.
Usage
DISCONNECT client_id
Arguments
• client_id
A required positive integer.
Description
For most users, this command is not needed.
Deletes the stored current context of an inactive client associated with the client_id, which
makes the client_id undefined for the rest of the Query Server session. The client_id is a
positive integer.
Acknowledgments
OK., ERROR(106), ERROR(107), ERROR(108), ERROR(109)
Related Topics
ACTIVATE
CONNECT
Communication and Control Commands
ECHO
Query Server command.
Controls repetition of inputs in the output.
Usage
ECHO
Arguments
None.
Description
Toggles the STDIN echo state. By default, echoing of input is off. If the echo state is on, all
input is echoed to output.
When testing the server with a script, it is convenient to see the echo from STDIN so that the
output contains a complete transcript of the session, including comments and blank lines in the
input.
The acknowledgment shows the new echo state. The echo state applies to all clients.
Acknowledgments
OK., ECHO ON or ECHO OFF
Related Topics
Communication and Control Commands
HELP COMMANDS
Query Server command.
Lists the Query Server commands.
Usage
HELP COMMANDS
Arguments
None.
Description
Returns a list of the valid Query Server commands and arguments (including the Calibre
Connectivity Interface). Each command is listed together with its arguments on a separate line.
Alternate forms are listed on separate lines. The list is intended to serve as a reminder for people
already familiar with the command set. The returned text does not explain the commands.
Response
Help_Commands <precision> // “Help_Commands” and precision
Commands: // “Commands:”
0 0 <n> <date> // n lines of text follow (no shapes)
protocol version // first command description
help commands // next command description
... // additional command descriptions
device info <layout_device_path> // last command description
Acknowledgments
OK., ERROR(1), ERROR(101)
Related Topics
Communication and Control Commands
PASSWORD
Query Server command.
Sets a password for the SVDB.
Usage
PASSWORD pwtext
Arguments
• pwtext
A required string to serve as a password. If the string is non-empty, it must be composed be
any combination of letters, numbers, and symbols. An empty string “” removes the
password of a database.
Description
Sets or resets a password restricting access to the SVDB database.
The pwtext is case-sensitive and is required if the command is used in a script. Removal of the
SVDB database password requires you to re-enter the current password.
Acknowledgments
OK., NOK(54)
Related Topics
Communication and Control Commands
QUIT
Query Server command.
Exits the Query Server. Performs identically to the TERMINATE command.
Usage
QUIT
Arguments
None.
Acknowledgments
OK: Terminating.
Related Topics
Communication and Control Commands
TERMINATE
RESPONSE DIRECT
Query Server command.
Sets the Query Server response channel to STDOUT, which is the default. If a response file
exists at the time this command is processed, it is not deleted.
Usage
RESPONSE DIRECT
Arguments
None.
Acknowledgments
OK.
Related Topics
RESPONSE FILE
Communication and Control Commands
RESPONSE FILE
Query Server command.
Specifies an output file for server responses.
Usage
RESPONSE [MULTIPLE] FILE filename
Arguments
• filename
A required pathname of an output file. Directories in a pathname are created if they do not
exist.
• MULTIPLE
An optional keyword that specifies multiple sequential responses are all appended to the
response file. Normal response header and trailer lines are not issued for subsequent
commands.
Description
Establishes a file as the response output location for the current client context. The default
output location is STDOUT. This command issues no response data. It simply acknowledges
OK for successful response file creation. The response file may already exist, in which case any
response is written into it at the front of the file and overwriting any existing content.
The MULTIPLE setting is useful for viewing responses to several commands in succession.
If this command fails with an error, the response mode is set to direct as if the command had
been RESPONSE DIRECT. This is because any current response file may no longer be
appropriate. That is, the client may have deleted or renamed that file before issuing this
command. The client must watch for this error since it changes the acknowledgment channel.
Once the filename has been validated, the server attempts to use it for all following commands
until another RESPONSE DIRECT or RESPONSE FILE command is issued. If the server is no
longer able to write to this file path, each command that attempts to generate a response fails
with this message:
Once the RESPONSE FILE command has accepted the path, the only way to change it is with a
RESPONSE DIRECT or RESPONSE FILE command.
Acknowledgments
OK., ERROR(101), ERROR(102)
Related Topics
Communication and Control Commands
STOP ON
Query Server command.
Specifies error and NOK message handling behavior.
Usage
STOP ON [ERROR | NOK] {NO | YES}
Arguments
• NO
Keyword that specifies that the server does not stop on the associated acknowledgment
message type. This is the default.
• YES
Keyword that specifies the server stops on the associated acknowledgment message type.
• ERROR
Optional keyword that specifies the command acts on error messages. This is the default.
• NOK
Optional keyword that specifies the command acts on NOK messages. This is the default.
Description
Controls how the Query Server handles ERROR and NOK acknowledgments. If you specify
YES, then the Query Server terminates if it detects the specified ERROR or NOK condition.
The behaviors for ERROR and NOK are specified separately.
Acknowledgments
OK.
Related Topics
Communication and Control Commands
TERMINATE
Query Server command.
Exits the Query Server.
Usage
TERMINATE
Arguments
None.
Description
Causes the Query Server to exit. This is the same as the QUIT command.
An end of file (EOF) also causes the Query Server to terminate. This typically occurs when
Query Server commands are input using redirection from STDIN to a file.
Acknowledgments
OK, Terminating.
Related Topics
Communication and Control Commands
Interrupts
Certain commands (generally those that can take a long time) terminate in response to the
SIGINT signal. When the Query Server is run using a shell command line, this signal can be
sent by the ^C keystroke. This signal can be sent to the process using the kill system call on
UNIX systems.
The Query Server can also be suspended with the SIGSTOP (^Z in shells with job control) and
resumed with SIGCONT. See shell documentation on job control for more information on
SIGSTOP and SIGCONT.
Related Topics
Communication and Control Commands
COMPARISON RESULT
Query Server command.
Returns the LVS comparison result.
Usage
COMPARISON RESULT
Arguments
None.
Description
Returns the result of the LVS comparison (CORRECT, INCORRECT, or NOT COMPARED).
An INCORRECT result means some things could not be matched between layout and source.
Such objects result in certain information not being retrievable by the Query Server.
Acknowledgments
OK: result, NOK(53), ERROR(150)
Related Topics
Query Setup Commands
CONTEXT
Query Server command.
Sets the cell context for queries.
Usage
CONTEXT view_cell [query_instance_path]
CONTEXT view_cell layout_pin_count source_cell source_pin_count [query_instance_path]
Arguments
• view_cell
A required argument that specifies the name of the layout viewing cell. The view_cell names
can be original cell names or FAUX BIN cells as identified in the LVS run transcript.
• layout_pin_count
An integer that specifies a layout cell pin count. This is used when there is a many-to-one
correspondence between a source_cell and layout cells.
• source_cell
The name of a source cell that corresponds to the view_cell. This is used when there is a
many-to-one correspondence between a source_cell and layout cells.
• source_pin_count
An integer that specifies a source cell pin count. This is used when there is a many-to-one
correspondence between a source_cell and layout cells.
• query_instance_path
An optional pathname of a query instance. The query_instance_path must be of the form
X1/X2 /…/Xk-1/Xk, where integers are used in the instance names. The path is relative to
the view_cell.
Description
Establishes the query cell and optional path to an instance being queried. See “Command
Context” on page 30 for related definitions. This command deletes any existing filter windows
(see FILTER WINDOW). It also changes the client table cell context entries for the current
client (see ACTIVATE).
If OK is returned, the following changes are made to the client table for the current client:
• The viewing cell entry is set to view_cell. All results are returned in the context of this
cell’s coordinate space.
• If query_instance_path is absent, the query cell entry is set to view_cell and the query
instance entry is set to NULL; otherwise, the query instance entry is set to
query_instance_path and the query cell entry is set to the name of the corresponding cell
of that instance.
If an error is returned, the current context remains unchanged.
If your design contains many source cells to one layout cell, you can specify the layout
(view_cell) and source (source_cell) names, along with the respective pin count parameters to
establish a cross-reference context for an hcell.
The acknowledgment returns the name of the query cell so that the client may confirm the
query_instance_path leads to the desired type of cell, or, in the case where a human user issued
the query path through an interface, the interface can determine the newly established query
cell.
Acknowledgments
OK: Query cell: query_cell
Note
If multiple layout cells are chosen with the name view_cell and the same pin_count
parameters, these additional errors may appear: ERROR(103), ERROR(104), ERROR(120),
ERROR(125).
Related Topics
Query Setup Commands
FILTER CULL
Query Server command.
Filters out result shapes that do not have a minimum width and height. Marker squares produced
by Query Server commands are never filtered.
Usage
FILTER CULL x y
Arguments
• x
A required floating-point width in user units. The default is 0.
• y
A required floating-point height in user units. The default is 0.
Acknowledgments
OK., ERROR(117)
Related Topics
Query Setup Commands
FILTER DEVICES
Query Server command.
Specifies which devices get queried.
Usage
FILTER DEVICES {ALL | index_list}
FILTER DEVICENAMES {element_name [‘(’model_name ‘)’]} …
Arguments
• ALL
Keyword that specifies all devices are queried. This is the default.
• index_list
A required whitespace-delimited list of device index numbers. Valid numbers range from 0
to one less than the number of Device statements in the rule file. The index can be
determined from the device table. See the section “Device Tables” on page 34 for more
details.
• element_name
A required SPICE device element name. More than one name may be specified, with
optional model_name parameters.
• (model_name)
An optional SPICE model (subtype) name. Must be specified with an element_name.
Description
Controls which devices are queried. Devices that are in the current filter set can be queried.
When a command is issued, the new set of devices is effective with the next response from the
server.
There are two syntactical forms, each with its own set of parameters. FILTER DEVICES ALL
is set by default.
Acknowledgments
OK., ERROR(115), ERROR(126)
Related Topics
FILTER DEVICELAYERS
Query Setup Commands
FILTER DEVICELAYERS
Query Server command.
Specifies which device seed layers get queried.
Usage
FILTER DEVICELAYERS layer [layer …]
Arguments
• layer
A required seed layer name, as specified by a Device statement in the rule file. More than
one layer may be specified.
Description
Controls which device seed layers are queried. All devices that match one of the seed layer
names are included in the filtered list. By default, all seed layers are in the filter list.
Acknowledgments
OK., ERROR(158)
Related Topics
FILTER DEVICES
FILTER LAYERS
Query Setup Commands
FILTER DISTANCE
Query Server command.
Specifies a distance from a query location in which to search for objects.
Usage
FILTER DISTANCE distance
Arguments
• distance
A required, non-negative, floating-point search distance in user units. The default is 0.
Description
Sets the distance to search for objects to the distance for the current client. The value is not
checked for a reasonable maximum size, and unnecessarily large values may significantly delay
the server response. A new distance is effective beginning with the next response. If an invalid
distance is given, the former value is retained.
When the default is used, the hierarchy is searched only for placements that overlap a query
point directly (not placements that are nearby).
Acknowledgments
OK., ERROR(113)
Related Topics
Query Setup Commands
FILTER LAYERS
Query Server command.
Specifies which PHDB layers get queried.
Usage
FILTER LAYERS {ALL | layer [layer …]}
Arguments
• ALL
Keyword that specifies all layers in the PHDB are queried. This is the default.
• layer
A required name of a PHDB layer. Layer names are taken from the rule file. More than one
layer may be specified. Numbers may be used if a layer does not have a name.
Description
Controls which layers are queried. A new filter list is effective beginning with the next
response.
Only layers in the persistent hierarchical database (PHDB) are in the filter list. If an invalid list
is given, the former list is retained.
Layers in a list that are not relevant to some subsequent command are ignored. For example, the
NET LOCATION command ignores any non-connectivity layers even if they are in the filter
list.
The FILTER {IN | OUT} LAYERS command modifies an existing layer list.
Acknowledgments
OK., ERROR(111), ERROR(114)
Related Topics
FILTER DEVICELAYERS
Query Setup Commands
Layers in a list that are not relevant to some subsequent command are ignored. For example, the
NET LOCATION command ignores any non-connectivity layers even if they are in the filter
list.
Acknowledgments
OK., ERROR(111), ERROR(114)
Examples
This example shows successive executions of filtering commands and the responses from the
server.
Related Topics
FILTER DEVICELAYERS
Query Setup Commands
FILTER WINDOW
Query Server command.
Specifies regions that are queried.
Usage
FILTER WINDOW {NONE | INCLUDE x1 y1 x2 y2 | EXCLUDE x1 y1 x2 y2}
Arguments
• NONE
Keyword that specifies no area filtering is performed.
• INCLUDE
Keyword that specifies a region that is included in queries.
• EXCLUDE
Keyword that specifies a region that is excluded from queries.
• x1 y1 x2 y2
Four floating-point numbers in user units specifying the lower-left and upper-right corners
of a rectangular region. The coordinates are referenced to the viewing cell.
Description
Controls which regions of the layout can be queried.
The NONE keyword clears all current filter windows and returns to the default state (results
from the entire set of coordinates are presented). The CONTEXT command clears all windows.
Successive calls to this command with the INCLUDE and EXCLUDE keywords build up
complex viewing areas consisting of multiple rectangular areas that are either included or
excluded.
Acknowledgments
OK., ERROR(117)
Related Topics
Query Setup Commands
MAGNIFY RESULTS
Query Server command.
Specifies a magnification factor to be applied to certain results.
Usage
MAGNIFY RESULTS factor
Arguments
• factor
A required, positive, floating-point number. If not 1.0, it must be the ratio of the Layout
Precision to the Precision in the rule file, where the Precision is greater than the Layout
Precision value. The default is 1.0.
Description
Scales the output of the following commands by the factor before output:
The complete effect of MAGNIFY RESULTS on each of the preceding commands is discussed
under the respective command sections.
If other commands are used than those in Table 3-3 while a non-default factor is in effect, then
ERROR(171) is issued. Specifying a factor of 1 restores the default.
This command allows circuit extraction to be performed using a Calibre database precision that
is higher than the input layout database precision, while allowing retrieval of information using
the Query Server commands in the preceding list at the precision originally present in the layout
input database.
When this command is used, Layout Magnify AUTO, Layout Precision, and Precision must be
explicitly specified in the rule file. The Layout Precision must correspond to the physical
precision of the layout database (for example, if the physical precision is 0.001, then Layout
Precision must be 1000). The Precision value must be greater than the Layout Precision value. If
these requirements are not met, errors are issued, depending on the type of error.
If an error occurs while setting the factor, the existing value remains in effect.
Acknowledgments
OK., ERROR(170), ERROR(172), ERROR(173), ERROR(174)
Examples
Assume the rule file has the following when the SVDB is generated:
Any other magnification value causes an error. Commands in Table 3-3 can now be used.
Related Topics
Query Setup Commands
MARKER SIZE
Query Server command.
Specifies a size of marker square to be used by commands that set markers. A new size is
effective beginning with the next server response.
Usage
MARKER SIZE size
Arguments
• size
A required, positive, floating-point number in user units, which is the side length of a
square.
Acknowledgments
OK., ERROR(110)
Related Topics
Query Setup Commands
STATUS
Query Server command.
Provides the state of server settings.
Usage
STATUS [CLIENT | FILTER CULL | FILTER DEVICES | FILTER DISTANCE |
FILTER LAYERS | FILTER WINDOWS | MAGNIFY RESULTS | MARKER SIZE |
MAXIMUM VERTEX COUNT | QUERY CELL | QUERY INSTANCE | VIEW CELL |
RESPONSE MODE | PHDB | XDB]
Arguments
• CLIENT
An optional keyword that returns the current client number set with the ACTIVATE or
CONNECT commands.
• FILTER CULL
An optional keyword that returns the width and length of filtered polygons set with the
FILTER CULL command.
• FILTER DEVICES
An optional keyword that returns the FILTER DEVICES setting.
• FILTER DISTANCE
An optional keyword that returns the FILTER DISTANCE setting.
• FILTER LAYERS
An optional keyword that returns the FILTER LAYERS setting.
• FILTER WINDOWS
An optional keyword that returns the FILTER WINDOW settings.
• MAGNIFY RESULTS
An optional keyword that returns the MAGNIFY RESULTS setting.
• MARKER SIZE
An optional keyword that returns the MARKER SIZE setting.
• MAXIMUM VERTEX COUNT
An optional keyword that returns the MAXIMUM VERTEX COUNT setting.
• QUERY CELL
An optional keyword that returns the query cell name associated with the query instance.
This is controlled by the CONTEXT command.
• QUERY INSTANCE
An optional keyword that returns the query instance pathname set with the CONTEXT
command.
• VIEW CELL
An optional keyword that returns the current viewing cell name set with the CONTEXT
command.
• RESPONSE MODE
An optional keyword that returns the response mode set with the RESPONSE DIRECT and
RESPONSE FILE commands.
• PHDB
An optional keyword that returns statistics of the currently-loaded PHDB, if any.
• XDB
An optional keyword that returns statistics of the currently-loaded XDB, if any.
Description
Returns the status of various elements in the system given by the optional keywords.
If STATUS alone is issued, values for all the arguments in the client’s current context are
returned, and the acknowledgment is “OK.”
The order in which the keyword: value pairs appear in the response is not guaranteed. Program
clients that parse this response should do so on the basis of the value of keyword, not on an
assumed position of a given item in the list.
If the view and query cells are the same, the value of STATUS QUERY INSTANCE is (null).
If the FILTER LAYERS list contains all layers, the value of Filter layers is (all). If the FILTER
DEVICES list contains all device types, the value of Filter devices is (all).
The STATUS, STATUS PHDB, and STATUS XDB commands respond with the Calibre
version number used to create the respective databases. This can be used to determine if an
older database is incompatible with a newer Calibre version. The XBD and PHDB keywords
also report the database type (flat or hierarchical), as well as if the database contains no XDB or
PHDB information, respectively.
Response
If a keyword is given, there is no response, just an acknowledgment with a value. Otherwise the
response is the following:
Acknowledgments
OK.
Related Topics
Query Setup Commands
CELLS CORRESPONDING
Query Server command.
Returns a list of matched cells.
Usage
CELLS CORRESPONDING
Arguments
None.
Description
Returns a list of corresponding cell pairs as determined by Calibre nmLVS-H. Each pair
consists of a layout cell name and the corresponding source cell name.
Cells are listed in top-to-bottom order. That is, if cell A directly or indirectly contains an
instance of cell B, then cell A appears earlier in the list than cell B. Thus the first cell in the list
is the top cell of the design. This list contains only the cells that correspond between layout and
source. The complete list of layout cells or source cells can be obtained using the CELLS
LAYOUT or CELLS SOURCE commands. Due to the match by name option for hierarchical
Calibre nmLVS, this list may be more comprehensive than the hcells list given to
Calibre nmLVS. That is, it also includes all cells matched by name.
See “Hcell Analysis Commands” on page 171 for commands that optimize an hcell list.
Response
Corresponding_Cells <precision> // "Corresponding_Cells" and precision
Correspondences: // Correspondences:
0 0 <n> <date> // n lines of text follow (no shapes)
<layout_cell_name_1> <source_cell_name_1>
...
<layout_cell_name_n> <source_cell_name_n>
Acknowledgments
OK., NOK(21), ERROR(101), ERROR(102)
Related Topics
CELL CORRESPONDING LAYOUT
CELL CORRESPONDING SOURCE
Cell Query Commands
CELL TOP
Query Server command.
Returns the name of the top-level cell.
Usage
CELL TOP
Arguments
None.
Acknowledgments
OK: top_cell_name, NOK(51)
Related Topics
Cell Query Commands
CELLS LAYOUT
Query Server command.
Returns layout cell names from an LVS comparison.
Usage
CELLS LAYOUT
Arguments
None.
Description
Responds with a list of all layout cell names.
Cell are listed in top-to-bottom order according to hierarchy. That is, if cell A contains an
instance of cell B, then cell A appears earlier in the list than cell B. Thus the first cell in the list
is the top cell of the design. The list of cell names contains all cells in the layout, not just those
that correspond to source cells. The list returned can be used by the client to set up a scan over
all cells in the layout design.
Response
Cells_Layout <precision> // "Cells_Layout" and precision
Cells: // Cells:
0 0 <n> <date> // n lines of text follow (no shapes)
<cell_name_1> // top cell in layout design
... // intermediate cells in layout design
<cell_name_n> // last cell in layout design
Acknowledgments
OK., ERROR(101), ERROR(102)
Related Topics
CELLS SOURCE
CELL CORRESPONDING SOURCE
CELLS CORRESPONDING
Cell Query Commands
CELLS SOURCE
Query Server command.
Returns source cell names from an LVS comparison.
Usage
CELLS SOURCE
Arguments
None.
Description
Returns a list of all source cell names in a design.
Cells are listed in top-to-bottom order. That is, if cell A contains an instance of cell B, then cell
A appears earlier in the list than cell B. Thus, the first cell in the list is the top cell of the design.
The list of cell names contains all cells in the source, not just those that correspond to layout
cells. The list returned can be used by the client to set up a scan over all cells in the source
design.
Response
Cells_Source <precision> // "Cells_Source" and precision
Cells: // Cells:
0 0 <n> <date> // n lines of text follow (no shapes)
<cell_name_1> // top cell in source design
... // intermediate cells in source design
<cell_name_n> // last cell in source design
Acknowledgments
OK., NOK(21), ERROR(101), ERROR(102)
Related Topics
CELLS LAYOUT
CELL CORRESPONDING LAYOUT
CELLS CORRESPONDING
Cell Query Commands
EXTENT
Query Server command.
Returns the extent of the layout design in top-level space.
Usage
EXTENT
Arguments
None.
Response
• The following response occurs:
Extent <precision> // "Extent" and precision
<cell_name> // query cell
1 1 0 <date_stamp> // indicates 1 polygon returned and date stamp
p 1 4 // polygon 1 having four vertices
<X1> <Y1> // four coordinate sets
<X2> <Y1>
<X2> <Y2>
<X1> <Y2>
Acknowledgments
OK., ERROR(101), ERROR(102)
Examples
Extent 1000
mix
1 1 0 Mar 3 09:52:31 2003
p 1 4
-134000 -102000
80000 -102000
80000 32000
-134000 32000
END OF RESPONSE
0 0 0 Mar 3 09:52:31 2003
OK.
Related Topics
Cell Query Commands
Examples
Assume VIA12 is a cell without devices. This is output of NET BROWSE SHAPES with
BROWSE DEVICELESS CELLS NO specified (device-less cells are transparent):
This command also affects the NET NAMES command when the FILTER option is used.
Acknowledgments
OK.
Examples
If placement X34 contains two pseudocell placements of pseudocell ICV_22, the following
default output for NET BROWSE DEVICES might be produced with BROWSE PSEUDO
CELLS NO:
DEVICE BAD
Query Server command.
Identifies bad device seed shapes.
Usage
DEVICE BAD
Arguments
None.
Description
Returns seed shape layers and vertices for each bad device in the query cell.
Only bad devices in the query cell itself are reported. That is, no bad devices from lower-level
cell placements are reported. To obtain all the bad devices in the design, each cell must be
queried for bad devices.
Response
Device_Bad <precision> // "Device_Bad" and precision
<seed_layer_name_1> // name of first seed layer containing bad
// devices
<n> <n> 0 <date> // <n> seed shapes follow
p 1 n // first bad device seed shape
... // vertices of the first shape
... // remaining n-1 shapes on this layer
... // remaining seed layers on which bad devices are present
Acknowledgments
OK., NOK(20), ERROR(101), ERROR(102)
Related Topics
DEVICE VALID
Device Query Commands
DEVICE INFO
Query Server command.
Returns device data for a layout device instance.
Usage
DEVICE INFO layout_device_path
Arguments
• layout_device_path
A required path to a device instance, relative to the query cell.
Description
Returns the device type number, a list of nets attached to pins, a list of property values, and the
seed shape for the device specified by the layout_device_path.
The number of device pins and properties are the same as what appears in the DEVICE TABLE
output. The layout net paths appear in the same order as the pin names in the device table. The
property names are also the same as what appears in the device table. The property values listed
appear in the same order as the property names in the device table. The layout net paths are
reported at the same hierarchical level as the device. That is, they are not shortened to their
highest point in the query cell hierarchy. Vertices are in the coordinate space of the viewing cell.
In addition to the usual output, the DEVICE INFO command provides instance-specific model
information for devices that use the TEXT MODEL LAYER option in the rule file Device
operation. When an instance-specific model exists, it appears in the DEVICE INFO response
after the initial device information section and following the string “Model:”.
Response
Device_Info <precision> // "Device_Info" and precision
Info: // Information begins here
0 0 <n> <date> // n lines of text follow
<device_type_number> // 0-based index of this device type in
// device table
<layout_net_path_1> // net connected to first pin in device table
... // nets connected to other pins in device table
// order
<property_value_1> // value of first device property in device
// table
... // value of other properties in device table order
[<text_model_name>] // text model name, if applicable
<seed_layer_name>: // name of layer containing seed shape
// followed by a colon
1 1 0 <date> // one seed shape follows
p 1 n // seed shape with n vertices
... // n vertices of the seed shape
Acknowledgments
OK., NOK(9), NOK(33), ERROR(101), ERROR(102)
Examples
Example 1
The following command requests information about device C4 relative to the current query cell:
Example 2
This example shows the difference between instance-specific output from a device classified
using TEXT MODEL LAYER and one that does not. A capacitor recognized with this device
statement:
that has text R1 from layer DEVTEXT on the device seed shape produces this output:
DEVICE INFO R3
Device_Info 1000
Info:
0 0 4 May 8 09:50:45 2002
11
19
22
42
5
Model:
0 0 1 May 8 09:50:45 2002
R1 <<<<<<< Note this.
RPPOLY
1 1 0 May 8 09:50:45 2002
p 1 4
-15000 0
-12000 0
-12000 3000
-15000 3000
END OF RESPONSE
0 0 0 May 8 09:50:45 2002
OK.
DEVICE INFO R3
Device_Info 1000
Info:
0 0 4 May 8 09:50:45 2002
11
19
22
42
5
RPPOLY
1 1 0 May 8 09:50:45 2002
p 1 4
-15000 0
-12000 0
-12000 3000
-15000 3000
END OF RESPONSE
0 0 0 May 8 09:50:45 2002
OK.
Related Topics
PLACEMENT INFO
Device Query Commands
DEVICE LAYOUT
Query Server command.
Returns pathnames of layout devices corresponding to a source device.
Usage
DEVICE LAYOUT source_device_path
Arguments
• source_device_path
A required pathname of a source device relative to the current query cell.
Description
Returns the pathnames of all corresponding layout devices relative to the current query cell that
correspond to the device specified in the source_device_path.
Acknowledgments
OK: layout_dev_path1…layout_dev_pathn, NOK(2), NOK(7), NOK(21), NOK(70)
Examples
This example shows a query of which cell is the query cell, followed by a DEVICE LAYOUT
query of a source device path. The corresponding layout device path is returned.
Related Topics
DEVICE SOURCE
PLACEMENT LAYOUT
DEVICE INFO
Device Query Commands
DEVICE LOCATION
Query Server command.
Returns the pathname of a device at a specified location.
Usage
DEVICE LOCATION x y
Arguments
• x
A required floating-point number representing an x-coordinate in user units in viewing cell
space.
• y
A required floating-point number representing a y-coordinate in user units in viewing cell
space.
Description
Returns the pathname of a device based upon the seed shape directly under location x y in the
viewing cell.
Devices whose device type number is not in the client’s FILTER DEVICES list are ignored.
Devices having seed shape layers not in the client’s FILTER DEVICELAYERS list are ignored.
If two or more device seed shapes overlap the location, one is arbitrarily selected and the others
are ignored.
Filters
These commands control the availability of devices for location reporting.
Acknowledgments
OK: device_pathname, NOK(6), ERROR(116)
Related Topics
DEVICE INFO
Device Query Commands
DEVICE NAMES
Query Server command.
Returns a list of all devices in the current query cell. The devices are listed in an arbitrary order.
Usage
DEVICE NAMES [FLAT]
Arguments
• FLAT
Optional keyword that specifies to report all devices in the query cell’s internal hierarchy,
relative to the query cell. By default, only the devices at the primary level of the query cell
are reported.
Filters
FILTER DEVICES controls the availability of name reporting.
Response
• The following response occurs:
Device_Names <precision> // "Device_Names" and precision
Devices: // "Devices:"
0 0 <n> <date> // n lines of text follow
<device_name_1> <device_type_1> // first device name and type
... // intermediate device names and
types
<device_name_n> <device_type_n> // last device name and type
Acknowledgments
OK., NOK(18), NOK(19), ERROR(101), ERROR(102)
Related Topics
PLACEMENT NAMES
Device Query Commands
DEVICE PINS
Query Server command.
Returns layout device pin and net information.
Usage
DEVICE PINS layout_device_path
Arguments
• layout_device_path
A required pathname of a layout device relative to the current query cell.
Description
Returns the device type number, a list of the nets attached to pins, and the locations of pin
shapes for the device given in the layout_device_path. The Mask SVDB Directory statement in
the rule file requires the PINLOC keyword for pin location information to be available for the
Query Server.
Pin shapes are reported within an area equal to the rectangular extent of the seed shape plus the
marker size, if any. Returned vertex coordinates are in viewing cell space.
The returned layout net paths appear in the same order as the pin names in the DEVICE
TABLE. The property names are as in the device table. The net paths are reported at the same
hierarchical level as the device. That is, they are not shortened to their highest point in the query
cell hierarchy. This command is only available when pin location information is saved to the
PHDB.
Response
Device_Pins <precision> // "Device_Pins" and precision
Info: // "Info:"
0 0 <n> <date> // n lines of text follow
<device_type_number> // 0-based index of this device type in
// device table
<layout_net_path_1> // net connected to first pin in device table
... // nets connected to other pins in device table order
<pin_layer_name> // name of layer containing pin shape
np np 0 <date> // np pin shapes follow
p 1 n // seed shape with n vertices
... // n vertices of the seed shape
... // additional pin shapes
<pin_layer_name> // name of layer containing last pin shape
... // polygon information for last pin shape
Acknowledgments
OK., NOK(18), NOK(19), ERROR(101), ERROR(102), ERROR(159), ERROR(160)
Related Topics
NET PINS
LAYOUT NETLIST PIN LOCATIONS
Device Query Commands
DEVICE SOURCE
Query Server command.
Returns pathnames of source devices corresponding to a layout device.
Usage
DEVICE SOURCE layout_device_path
Arguments
• layout_device_path
A required pathname of a layout device relative to the current query cell.
Description
Returns the pathnames of all corresponding source devices relative to the current query cell that
correspond to the device specified in the layout_device_path.
Acknowledgments
OK: source_dev_path1…source_dev_pathn, NOK(2), NOK(7), NOK(21), NOK(71)
Examples
This example shows a query of which cell is the query cell, followed by a DEVICE SOURCE
query of a layout device path. The corresponding source device path is returned.
Related Topics
DEVICE LAYOUT
Device Query Commands
DEVICE TABLE
Query Server command.
Returns a table of information about all devices in the design.
Usage
DEVICE TABLE
Arguments
None.
Description
Returns a table of device information. See the section “Device Tables” on page 34.
The device table references all devices recognized in the design and is independent of the
current context.
The device type is one of the following constants: DIODE, RESISTOR, CAPACITOR, MOS,
BIPOLAR, USER.
If any of model name, netlist element name, or netlist model name were not specified in the rule
file, they are represented in the response by the string “null”.
The pin info lines contain the following entries separated by white space: pin_name, pin_layer,
list_number, where list_number is the ordinal of the swap list in the DEVice statement:
If pin groups are used in the DEVice statement instead of individual pins, then there are two
numbers indicating the pin group element of the pin. The numbers can be thought of as the
column and row indices of a matrix. For example, assume this is the DEVice statement:
DEVICE user seed W(a1) X(a2) Y(b1) Z(b2) ([a1 b1] [a2 b2])
The pin groups are row vectors of a 2×2 matrix, where the rows are shown between brackets.
The DEVICE TABLE command would return this:
a1 W 1 1
a2 X 1 2
b1 Y 2 1
b2 Z 2 2
Pin a1 corresponds to the first column and first row of the matrix, and so forth.
Pin and property names are lowercase. The layer names have the same case as in the rule file.
The precision value in the output response header is multiplied by the MAGNIFY RESULTS
factor.
Response
Device_Table <precision> // "Device_Table" and precision
Table Count // "Table count"
0 0 1 <date> // 1 line of text follows
<k> // k device entries are defined (indexed 0
// through k-1)
Device Entry 0 // "Device Entry" followed by the device number
0 0 <n> <date> // n lines of text follow
<device_layer_name> // name of seed layer for this device
<device_type> // basic type of device (see description for
// values)
<element_name> // element name of the device
<model_name> // model name of the device; "(null)" if
// none
<netlist_element_name> // netlist element name of the device;
// "(null)" if none
<netlist_model_name> // netlist model name of the device;
// "(null)" if none
<pin_count> // number of pins of device
<pin_info_0> // information about first pin (see description)
... // information about remaining pins
<aux_layer_count> // number of auxiliary layers associated
// with device
<aux_layer_0> // name of first auxiliary layer
// remaining auxiliary layers
<property_count> // number of device properties
<property_name_0> // first property name
// remaining property names
... // remaining device entries 1 through k-1
Acknowledgments
OK., ERROR(101), ERROR(102)
Related Topics
DEVICE INFO
DEVICE TEMPLATES USED
ANNOTATED DEVICE LAYER MAP
Device Query Commands
Acknowledgments
OK., ERROR(101), ERROR(102)
Examples
Device_Templates_Used 1000
Templates:
0 0 4 Aug 15 13:26:43 2012
mn 2 21 (140)
mp 3 21 (140)
r(pl) 4 1 (3)
r(d) 5 1 (22)
END OF RESPONSE
0 0 0 Aug 15 13:26:43 2012
Related Topics
DEVICE TABLE
Device Query Commands
DEVICE VALID
Query Server command.
Indicates whether the specified device is valid.
Usage
DEVICE VALID {LAYOUT | SOURCE} device_path
Arguments
• LAYOUT
Keyword that specifies the device_path is for the layout.
• SOURCE
Keyword that specifies the device_path is for the source.
• device_path
A required pathname to a device relative to the query cell.
Description
Indicates whether the layout or source device at the specified device_path is valid. This
command is identical to PLACEMENT VALID.
PHDBs and XDBs (when available) are searched for layout device names. XDBs (when
available) are searched for source names.
Acknowledgments
OK: device_path, NOK(7), NOK(8), NOK(9)
Related Topics
DEVICE BAD
NET BROWSE DEVICES
PLACEMENT BROWSE DEVICES
Device Query Commands
The layout_net_path is traced upward to its highest hierarchical representative before listing of
devices occurs. The response also shows placements that contain additional devices on the
specified net down the hierarchy.
Filters
FILTER DEVICES controls the availability of device reporting.
Response
Net_Browse_Devices <precision> // "Net_Browse_Devices" and precision
Devices: // "Devices:"
0 0 k <date> // 0 0 number_of_devices datestamp
<device_name_1> <device_index_1>
// name of the device, index into the device table
... additional devices ... // additional names and indices
Placements: // "Placements:"
0 0 k <date> // 0 0 number_of_placements datestamp
<placement_name_1><cell_name> // placements containing additional
// devices.
... additional placements ... // additional placements.
Acknowledgments
OK., NOK(5), NOK(32), NOK(33), NOK(34), NOK(35)
Related Topics
Net Query Commands
The layout_net_path is traced upward to its highest hierarchical representative before listing of
nets occurs. The response also shows placements that contain additional nets on the specified
net down the hierarchy.
Filters
FILTER LAYERS and FILTER {IN | OUT} LAYERS control the availability of net reporting.
Response
Net_Browse_Nets <precision> // "Net_Browse_Nets" and precision
Nets: // "Nets:"
0 0 k <date> // 0 0 number_of_nets datestamp
<net_name_1> // name of the net
... additional nets ... // additional names
Placements: // "Placements:"
0 0 k <date> // 0 0 number_of_placements datestamp
<placement_name_1> <cell_name> // placements containing additional
// nets.
... additional placements ... // additional placements and cells.
Acknowledgments
OK., NOK(5), NOK(32), NOK(33), NOK(35)
Related Topics
NET BROWSE SHAPES
NET NAMES
Net Query Commands
The layout_net_path is traced upward to its highest hierarchical representative before listing of
ports occurs. The response also shows placements that contain additional ports on the specified
net down the hierarchy.
If a port is not named by a port text object, this is shown with the string “(unnamed port)”.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS
Response
Net_Browse_Ports <precision> // "Net_Browse_Ports" and precision
Ports: // "Ports:"
0 0 k <date> // 0 0 number_of_ports datestamp
<port_name_1> <device_index_1> // name of the port
... additional ports ... // additional names
Placements: // "Placements:"
0 0 k <date> // 0 0 number_of_placements datestamp
<placement_name_1> <cell_name> // placements containing additional
// ports.
... additional placements... // additional placements and cells.
Acknowledgments
OK., NOK(5), NOK(12), NOK(32), NOK(33), NOK(35)
Related Topics
NET PORTNAMES
NET PORTS
Net Query Commands
The layout_net_path is traced upward to its highest hierarchical representative before listing of
shapes occurs. The response also shows placements that contain additional shapes on the
specified net down the hierarchy.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS
Response
Net_Browse_Shapes <precision> // "Net_Browse_Shapes" and precision
Layer_name_1 // first layer on which net appears
<k> <k> 0 <date> // k polygons on this layer
p 1 4 // first polygon on this layer
... // vertices of the first polygon
... // remaining k-1 polygons on this layer
... // remaining layers with net.
Placements: // "Placements:"
0 0 k <date> // 0 0 number_of_placements datestamp
<placement_name_1><cell_name> // placements containing additional
// devices.
... additional placements ... // additional placements.
Acknowledgments
OK., NOK(5), NOK(29), NOK(32), NOK(33), NOK(35)
Related Topics
NET BROWSE NETS
NET EXTERNAL SHAPES
NET SHAPES
Net Query Commands
NET DEVICENAMES
Query Server command. Corresponding Tcl shell command: qs::net_devicenames.
Returns all device instance paths on a specified layout net.
Usage
NET DEVICENAMES layout_net_name
Arguments
• layout_net_name
A required name of a layout net in the current query cell.
Filters
FILTER DEVICES
Response
• The following response occurs:
Net_Devicenames <precision> // "Net_Devicenames" and precision
Devices: // "Devices:"
0 0 k <date> // 0 0 number_of_devices datestamp
<device_path_1> <device_index_1> // path of the device, index in the
// device table
... additional devices... // additional paths and indices
Acknowledgments
OK., NOK(5), NOK(33), NOK(34)
Related Topics
NET BROWSE DEVICES
Net Query Commands
DEVICE TABLE
Only shapes on the layers allowed by the current setting of the FILTER LAYERS command are
returned. Only pins allowed by the current setting of the FILTER WINDOW command are
returned.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER WINDOW, FILTER CULL
Response
Net_Shapes <precision> // "Net_Shapes" and precision
Layer_name_1 // first layer on which shapes were found
<k> <k> 0 <date> // k polygons on this layer
p 1 4 // first polygon on this layer
... // vertices of the first polygon
... // remaining k-1 polygons on this layer
... // remaining layers on which shapes were found.
Acknowledgments
OK., NOK(29), NOK(33), ERROR(101), ERROR(102)
Related Topics
NET BROWSE SHAPES
NET SHAPES
Net Query Commands
NET LAYERS
Query Server command. Corresponding Tcl shell command: qs::net_layers.
Returns the names of layers on a specified net in the current query cell.
Usage
NET LAYERS layout_net_path
Arguments
• layout_net_path
A required pathname of a layout net relative to the query cell.
Description
Returns the names of layers with shapes on the net corresponding to the layout_net_path.
The net pathname specified need not be the highest representative of the net in query cell. It is
traced through out the query cell, not just downward from the given path.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER WINDOW
Response
Net_Layers <precision> // "Net_Layers" and precision
Layers: // first layer on which shapes were found
0 0 n <date> // n unique layers on this net
Layer_name_1 // first layer on this net
... // remaining n-1 layers on this net
Acknowledgments
OK., NOK(5)
Related Topics
NET BROWSE SHAPES
NET SHAPES
Net Query Commands
NET LAYOUT
Query Server command.
Returns the pathnames of layout nets in the current query cell that correspond to a source net.
Usage
NET LAYOUT source_net_path
Arguments
• source_net_path
A required pathname of a source net relative to the query cell.
Description
Returns the pathname of all corresponding layout nets in the query cell that correspond to the
source net specified in the source_net_path.
Calibre nmLVS may create one-to-many or many-to-many correspondences between nets. The
acknowledgment returns a list of all layout nets corresponding to the given source net. The first
net in the list is the primary corresponding net according to the cross-reference. The remaining
nets are listed in an arbitrary order.
See the NET SOURCE command for a description of circumstances under which
Calibre nmLVS removes nets for comparison purposes. The Query Server does not find
incorrect nets or nets that have been removed due to device reduction, but it does find
unmatched nets. Incorrect and unmatched nets are shown in the LVS Report.
Acknowledgments
OK: layout_net_path1…layout_net_path_n, NOK(2), NOK(4), NOK(21), NOK(44), NOK(62),
NOK(64), NOK(66)
Related Topics
NET BROWSE NETS
Net Query Commands
NET LOCATION
Query Server command.
Returns the pathnames of nets at a specified location.
Usage
NET LOCATION x y
Arguments
• x
A required floating-point number representing an x-coordinate in user units in viewing cell
space.
• y
A required floating-point number representing a y-coordinate in user units in viewing cell
space.
Description
Returns the pathnames of nets in the current query context that intersect the x y coordinates.
The search for nets considers all shapes obtained by flattening the hierarchy directly below the
query point. Shapes that are not on a layer in the current client’s FILTER LAYERS list are
ignored. Layers in the filter layer list that are not connectivity layers are ignored. If two or more
net shapes overlap the specified location, all nets are selected and returned.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER DISTANCE, FILTER WINDOW
Acknowledgments
OK: net_path_name, NOK(14), NOK(116)
Related Topics
Net Query Commands
NET NAMES
Query Server command.
Returns a list of net names in the current query cell.
Usage
NET NAMES {{FLAT | UNIQUE [FILTER]} | FILTER}
Arguments
• FLAT
Keyword that specifies to flatten the internal hierarchy of the query cell before returning the
net names.
• UNIQUE
Keyword that specifies net names from lower-level cells that do not connect to higher-level
cells are returned.
• FILTER
Keyword that specifies to return only net names that have geometry that satisfies the filters
provided by the FILTER LAYERS and FILTER WINDOW commands. This keyword can
be specified by itself or in conjunction with UNIQUE. If specified with UNIQUE, then the
behaviors of both keywords applies.
Description
Returns a list of all net names in the current (optionally flattened) query cell. The order in which
the nets are listed is arbitrary.
If FLAT is used, nets of cells placed in the query cell at any level are reported with a query-cell-
based net name leading to the cell instance containing the net. The resulting list contains the
same design-wide net under several names. For example, if the net CLK in the top cell connects
to the net CLK1 in cell instance X23, the resulting list contains both CLK and X23/CLK.
The presence of pseudocells and device-less cells may affect the visibility of nets in your
design. If the FILTER option is set and the UNIQUE option is not, you can set the BROWSE
PSEUDO CELLS and BROWSE DEVICELESS CELLS options to report nets from lower level
cells.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER WINDOW
Response
Net_Names <precision> // "Net_Names" and precision
Nets: // "Nets:"
0 0 <n> <date> // n lines of text follow
<net_name_1> // first net name in current context
... // intermediate net names in current context
<net_name_n> // last net name in current context
Acknowledgments
OK., NOK(15), NOK(16), NOK(17), NOK(33), ERROR(101), ERROR(102), ERROR(130)
Examples
If a cell has 4 nets VSS, VDD, 3, and 4, and nets VSS and VDD appear on the layers MET1, but
layers 3 and 4 do not, then the following filtering occurs:
NET NAMES
Net_Names 1000
Nets:
0 0 4 Feb 28 16:54:12 2005
VSS
VDD
3
4
END OF RESPONSE
0 0 0 Feb 28 16:54:12 2005
OK.
END OF RESPONSE
0 0 0 Feb 28 16:55:00 2005
OK.
FILTER may be used in conjunction with the UNIQUE option to produce filtered net names
from lower levels of hierarchy. Additionally, if only net VSS appears inside the coordinate
window (0,0) (10,10), then the following occurs:
Related Topics
NET BROWSE NETS
NET TEXT MAP
Net Query Commands
Cell names can be original cell names or FAUX BIN cells as identified in the LVS run
transcript.
The order in which the returned placements are listed is arbitrary. A path that extends upward in
the hierarchy is searched from its highest point in the hierarchy. For example, if net X1/X3/2 is
used as the reference_net, and this net connects to the net GND in the current query cell, the
commands NET NOT CONNECTED X1/X3/2 NANDCELL GND and NET NOT
CONNECTED GND NANDCELL GND are equivalent.
Response
Net_Not_Connected <precision> // "Net_Not_Connected" and precision
Placements: // "Placements:"
0 0 <n> <date> // n lines of text follow
<placement_name_1> // first placement name rooted in current
// context
... // intermediate names rooted in current
// context
<placement_name_n> // last placement name rooted in current
// context
Acknowledgments
OK., NOK(5), NOK(33), NOK(36), NOK(37), NOK(38), NOK(39)
Examples
NET NOT CONNECTED VCC VCCA NANDCELL VCC
When executed from the top-level cell, this command finds placements of NANDCELL where
the VCC net in NANDCELL is not connected to the top-level VCC or VCCA nets.
Related Topics
Net Query Commands
NET PINS
Query Server command.
Returns names and locations of intentional device pins on a layout net.
Usage
NET PINS layout_net_path
Arguments
• layout_net_path
A required path to a layout net referenced from the current query cell.
Description
Returns the intentional device pins attached to the net associated with the layout_net_path.
Each pin is represented as a device pathname, a device type number (that is, the 0-based index
of the device in the DEVICE TABLE), and a marker square centered at the pin location on the
pin layer. The location on which the square is centered is the lowest leftmost point where the pin
shape touches or overlaps the device seed shape. The actual shape of the pin is not given. Vertex
coordinates are given in viewing cell space.
Under certain circumstances, the device recognizer assigns more than one logical device pin to
the same physical pin shape. In this case, a marker is present for each of the logical device pins,
but they all center on the same location. The size of the marker squares is determined by the
current value of the MARKER SIZE parameter.
The pin location information is only available if the Mask SVDB Directory PINLOC or CCI
options are specified in the rule file that generated the database.
Only pin shapes on the layers allowed by the current FILTER LAYERS setting are returned.
Only pins allowed by the current FILTER WINDOW setting are returned. The pins are listed in
the “Pins:” check section in an arbitrary order. Each line is a white-space-separated list of the
following items:
See “DEVICE TABLE” on page 96 for the meaning of device_type and pin_index.
The pin_number is not strictly necessary since it simply increments by one for each line, but is
included for convenience.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER WINDOW
Response
Net_Pins <precision> // "Net_Pins" and precision
Pins: // "Pins:"
0 0 <n> <date> // n lines of text follow (n pins were found)
<pin_info_1> // pin number 1 (see description for definition of
// pin_info)
... // more pins
<pin_info_n> // pin number n
Layer_name_1 // first layer on which pins are present
<k> <k> 0 <date> // k pins on this layer
p <i> 4 // i is the number of this pin in the "Pins:" check
// section
... // four vertices of the first square
... // remaining m-1 pins on this layer
... // remaining layers on which pins are present
Acknowledgments
OK., NOK(1), NOK(5), NOK(33), ERROR(101), ERROR(102)
Related Topics
NET PORTS
NET PORTNAMES
Net Query Commands
NET PORTNAMES
Query Server command.
Returns the names of all ports on a layout net.
Usage
NET PORTNAMES layout_net_path
Arguments
• layout_net_path
A required path to a layout net referenced from the current query cell.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS
Response
• The following response occurs:
Net_Portnames <precision> // "Net_Portnames" and precision
Ports: // "Ports:"
0 0 k <date> // 0 0 number_of_ports datestamp
<port_name_1> // name of the port
... additional ports ... // additional ports
Acknowledgments
OK., NOK(5), NOK(12), NOK(33)
Related Topics
NET PORTS
NET PINS
Net Query Commands
NET PORTS
Query Server command.
Returns port names and locations on a layout net.
Usage
NET PORTS layout_net_path
Arguments
• layout_net_path
A required path to a layout net referenced from the current query cell.
Description
Returns the names of the ports attached to the net associated with the layout_net_path and a
marker square for each port. The ports are listed in an arbitrary order. The ports returned are not
only those in the query cell, but those in any cell placement into which the net extends.
A port may have more than one location. Each location is listed separately in the Ports: section
of the response, and a separate marker is given on the appropriate layer for each location. The
size of the marker is specified with the MARKER SIZE command.
Only ports on the layers allowed by the current FILTER LAYERS setting are returned. Only
ports allowed by the current FILTER WINDOW setting are returned.
The number <i> which appears in the polygon entry for each marker square is the index number
of the corresponding port in the Ports: section of the response. Information on any given port
may be obtained by the PORT INFO command.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER WINDOW
Response
Net_Ports <precision> // "Net_Ports" and precision
Ports: // "Ports:"
0 0 <n> <date> // n lines of text follow (n ports were found)
1 <port_name_1> // index of first port and first port name
... // more indices and ports
<n> <port_name_n> // index of last port last port name
Layer_name_1 // first unfiltered layer on which ports are
// present
<k> <k> 0 <date> // k ports on this layer
p <i> 4 // i is the number of this port in the "Ports:"
// check section
... // four vertices of the first square
... // remaining m-1 ports on this layer
... // remaining unfiltered layers on which ports are
// present
Acknowledgments
OK., NOK(5), NOK(12), NOK(33), ERROR(101), ERROR(102)
Related Topics
NET PORTNAMES
NET PINS
Net Query Commands
NET SHAPES
Query Server command.
Returns shapes of a layout net.
Usage
NET SHAPES layout_net_path
Arguments
• layout_net_path
A required path to a layout net referenced from the current query cell.
Description
Returns the shapes of the net associated with the layout_net_path. The shapes are flattened into
the coordinate system of the viewing cell. The layout_net_path is traced throughout the query
cell, not just downward from the given path.
Only shapes on the layers allowed by the current FILTER LAYERS and FILTER WINDOW
settings are returned. Polygons in the response are limited to 4096 vertices by default. Polygons
that have more than this number of vertices are segmented into polygons that obey the
maximum vertex limitation controlled by the MAXIMUM VERTEX COUNT setting.
Any layer that contains node numbers can have a polygon returned by this command, including
Connect layers and derived layers that get connectivity from Stamp operations or from node-
preserving layer constructors (for example NOT and AND).
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER WINDOW, FILTER CULL
Response
Net_Shapes <precision> // "Net_Shapes" and precision
Layer_name_1 // first layer on which the net has a presence
<k> <k> 0 <date> // k polygons on this layer
p 1 4 // first polygon on this layer
... // vertices of the first polygon
... // remaining k-1 polygons on this layer
... // remaining layers on which net has a presence.
Acknowledgments
OK., NOK(5), NOK(29), NOK(33), ERROR(101), ERROR(102)
Examples
The following command requests shapes of net CLOCK1 relative to the current query cell:
Related Topics
NET BROWSE SHAPES
NET EXTERNAL SHAPES
Net Query Commands
NET SOURCE
Query Server command.
Returns the pathnames of source nets that correspond to a layout net.
Usage
NET SOURCE layout_net_path
Arguments
• layout_net_path
A required pathname of a layout net relative to the query cell.
Description
Returns the pathnames of all corresponding source nets to the layout_net_path in the
corresponding source cell.
Calibre nmLVS may create one-to-many or many-to-many correspondences between nets. The
acknowledgment returns a list of all source nets corresponding to the given layout net. The first
net in the list is the primary corresponding net according to the cross-reference.
Calibre nmLVS may discard certain nets during comparison. The Query Server has limited
ability to cross-reference nets that have been discarded during comparison. Nets that can be
traced down in the layout database are matched to a lower level net if an unambiguous
correspondence point can be found (PHDB database must be present).
Net names may also be lost during comparison for the following reasons:
• A lower level net is flattened to a higher level in the hierarchy where it connects to a
higher level net. If so, Calibre nmLVS-H uses the name of the higher-level net.
• A net is filtered out for comparison purposes if it only connects devices that are
combined into a structure used for comparison purposes (that is, device reduction and
logic gate recognition).
• A net is filtered out for comparison purposes if it does not connect to more than one
device. This includes nets that are left floating after device filtering.
Query Server does not find incorrect nets or nets that have been removed due to device
reduction, but it does find unmatched nets. Incorrect and unmatched nets are shown in the LVS
Report.
Acknowledgments
OK: source_net_path_1…source_net_path_n, NOK(2), NOK(3), NOK(21), NOK(45),
NOK(63), NOK(65), NOK(67)
Related Topics
NET LAYOUT
LAYOUT NETLIST NAMES
Net Query Commands
Certain texts are not used for SPICE netlist net names by Calibre. These texts are not included
in the map.
Response
Net_Text_Map <precision> // "Net_Text_Map" and precision
Net Texts:
0 0 <n> <date> // n lines of text follow
<net_text> <net_number> // net_text is the name of net net_number
Acknowledgments
OK., NOK(46)
Related Topics
NET NAMES
Net Query Commands
NET TRACE
Query Server command. Corresponding Tcl shell command: qs::net_trace.
Returns the complete pathname of the highest representative of a net.
Usage
NET TRACE layout_net_path
Arguments
• layout_net_path
A required pathname of a layout net relative to the query cell.
Description
Returns the pathname of the highest representative of the net associated with the
layout_net_path in the query cell, as well as all intermediate net pathnames between the highest
net and the given net.
The trace proceeds upward from the given layout_net_path until it reaches the highest
hierarchical representative within the current query cell. This does not imply that the net does
not also descend into other instances below the query cell instances, or that the net does not
descend into the instances on the given path by more than one pin, or that the net does not
connect through an external pin of the query cell into higher levels of the design.
Acknowledgments
OK: net_path net_name1…net_namen, NOK(5)
Examples
Consider the following command and acknowledgment:
Net X1/X2/clk2 may be connected not only to net X1/X2/X3/clk3, but also to some net like X1/
X2/X3/sync by a second pin in instance X1/X2/X3.
Related Topics
NET BROWSE NETS
Net Query Commands
NET VALID
Query Server command.
Identifies valid nets in the layout or source.
Usage
NET VALID {LAYOUT | SOURCE} net_path
Arguments
• SOURCE
Keyword that specifies the net_path is a source net path.
• LAYOUT
Keyword that specifies the net_path is a layout net path.
• net_path
A required net path relative to the current query cell. Net paths are of the form X0/X1/
net_name, where instance names precede the net name.
Description
Checks whether a layout or source net associated with the net_path is valid. A PHDB and XDB
are searched for LAYOUT nets. An XDB is searched for SOURCE nets.
Acknowledgments
OK: net_path, NOK(3), NOK(4), NOK(5)
Related Topics
NET NAMES
PLACEMENT BROWSE NETS
Net Query Commands
Acknowledgments
OK., NOK(18), ERROR(32), ERROR(33)
Related Topics
Placement Query Commands
Related Topics
Placement Query Commands
Acknowledgments
OK., NOK(22), ERROR(32), ERROR(33)
Related Topics
Placement Query Commands
Acknowledgments
OK., NOK(10), ERROR(32), ERROR(33)
Related Topics
Placement Query Commands
PLACEMENT INFO
Query Server command.
Returns the name and extent of a cell placement. Coordinates are returned in viewing cell space.
Usage
PLACEMENT INFO placement_path
Arguments
• placement_path
A required path of a layout placement relative to the query cell. If a device placement name
is provided, this has the same effect as using the DEVICE INFO command.
Response
• The following response occurs:
Placement_Info 1000 // "Placement_Info" and precision
cell_name // placement_name is a placement of cell_name
1 1 0 <date> // 1 polygon in response
p 1 4
... // four sets of vertices marking the extent of
// a placement
Acknowledgments
OK, NOK(32), ERROR(102), ERROR(104)
Related Topics
Placement Query Commands
PLACEMENT LAYOUT
Query Server command.
Returns the name of a layout placement that corresponds to a source placement.
Usage
PLACEMENT LAYOUT source_placement_path
Arguments
• source_placement_path
A required path of a source placement relative to the query cell.
Description
Returns the name of the corresponding layout placement for the specified
source_placement_path. Because device and placement correspondence are maintained in the
same data structures, this command is an alias for the DEVICE LAYOUT command when the
source_placement_path is a device.
Acknowledgments
OK: layout_placement, NOK(2), NOK(8), NOK(21), NOK(70)
Related Topics
PLACEMENT SOURCE
Placement Query Commands
PLACEMENT LOCATION
Query Server command.
Returns pathnames of placements at a specified location.
Usage
PLACEMENT LOCATION {{cell_name x y ll_x ll_y ur_x ur_y} | {x y [FLAT]}}
Arguments
• cell_name
A name of a layout cell.
• xy
Required coordinates of a placement origin in viewing cell space. The parameters are
floating-point numbers in user units.
• ll_x ll_y
Coordinates of the lower-left corner of a placement’s extent in viewing cell space. The
parameters are floating-point numbers in user units.
• ur_x ur_y
Coordinates of the upper-right corner of a placement’s extent in viewing cell space. The
parameters are floating-point numbers in user units.
• FLAT
An optional keyword that specifies all placements at any level of the hierarchy below the x y
coordinates are reported. This keyword may only be specified with x y.
Description
Returns the pathname of each matching placement in the layout that corresponds to the given
parameters.
A placement is selected by the first form of this command if the placement meets the following
criteria:
• It is a placement of cell cell_name in the layout hierarchy in or below the current query
cell.
• The rectangular extent of the placement in the layout database overlaps the rectangular
extent given in the command.
• The origin of the placement in viewing cell coordinates is within the current FILTER
DISTANCE from the point specified by x y.
The first form (cell_name …) of this command is primarily for layout editors. It is necessary
because, given a placement of a cell in a database, an editor cannot determine the layout path by
which that placement is known to the Query Server. This is because the editor cannot determine
the numbering system used in the layout from which the Query Server operates, and the layout
may have had additional cells and placements added to the design by hierarchical injection.
The second form (no cell_name) of the command is for interactive use or use in a script. It
returns all placements of any cell placed under a specified point with coordinates x y at the
hierarchical level of the current context. If FLAT is used, all placements at any level of the
hierarchy below the coordinates are reported.
Cell names can be original cell names or FAUX BIN cells as identified in the LVS run
transcript.
The layout pathnames of each placement meeting the previous criteria are returned in the
acknowledgment. The placement extents known to the Query Server are based on the shapes
used for the placement when the hierarchical database was created from the original layout file.
For this reason, they may differ from the extent known to a layout editor. The matching
placements are returned in order of decreasing overlap between the hierarchical database extent
and the editor extent. That is, the first placement path returned is the most likely to be the
desired placement because it has the greatest overlap with the editor’s placement extent
specified as ll_x ll_y ur_x ur_y in the command.
Response
Placement_Location 1000 // "Placement_Location" and precision
placement_name cell_name // placement_name of cell cell_name
...
Acknowledgments
OK: placement_path1…placement_pathn, NOK(24)
Related Topics
Placement Query Commands
PLACEMENT NAMES
Query Server command.
Returns layout placement names in a query cell.
Usage
PLACEMENT NAMES [FLAT]
Arguments
• FLAT
An optional keyword that specifies all cell placements in the flattened query cell are
reported.
Description
Returns a list of all layout placement names that appear in the current query cell. By default,
only cell placements appearing immediately in the query cell are reported. The FLAT keyword
reports all placements in the internal hierarchy of the query cell. The order in which the
placements are listed is arbitrary.
Response
Placement_Names <precision> // "Placement_Names" and design precision
Placements: // "Placements:"
0 0 <n> <date> // n lines of text follow
<placement_name_1> // first placement name in current context
... // intermediate placement names in
// current context
<placement_name_n> // last placement name in current context
Acknowledgments
OK., NOK(22), NOK(23), NOK(33), ERROR(101), ERROR(102)
Related Topics
Placement Query Commands
PLACEMENT SOURCE
Query Server command.
Returns the name of a source placement that corresponds to a layout placement.
Usage
PLACEMENT SOURCE layout_placement_path
Arguments
• layout_placement_path
A required path of a layout placement relative to the query cell.
Description
Returns the name of the corresponding source placement for the specified
layout_placement_path. Because device and placement correspondence are maintained in the
same data structures, this command is an alias for the DEVICE SOURCE command when the
placement is a device.
Acknowledgments
OK: source_name, NOK(2), NOK(7), NOK(21), NOK(71)
Related Topics
PLACEMENT LAYOUT
Placement Query Commands
PLACEMENT TRANSFORM
Query Server command.
Returns transform matrix data for a given placement.
Usage
PLACEMENT TRANSFORM placement_path
Arguments
• placement_path
A required path of a layout placement relative to the query cell.
Description
Returns the transform information (x-offset, y-offset, reflection, rotation) about the placement
associated with the placement_path. Offsets are in database units; reflection is 0 for no
reflection and 1 for reflection; rotation is in degrees.
Acknowledgments
OK: x-offset y-offset reflection rotation, NOK(32)
Related Topics
Placement Query Commands
PLACEMENT VALID
Query Server command. This is the same as the DEVICE VALID command when the
placement is a device.
Indicates whether a layout or source placement is valid.
Usage
PLACEMENT VALID {LAYOUT | SOURCE} placement_path
Arguments
• LAYOUT
Keyword that specifies the placement_path is for the layout.
• SOURCE
Keyword that specifies the placement_path is for the source.
• placement_path
A required path of a layout placement relative to the query cell.
Acknowledgments
OK: placement_path, NOK(7), NOK(8), NOK(9)
Related Topics
Placement Query Commands
PLACEMENTS OF
Query Server command.
Returns layout placements of a cell.
Usage
PLACEMENTS OF cell_name [FLAT]
Arguments
• cell_name
A required name of a layout cell.
• FLAT
An optional keyword that specifies the query cell is flattened before reporting placements.
Description
Returns the layout placements of the specified cell_name in the query cell. By default, only
placements that appear at the level of hierarchy of the query cell are reported. The order in
which the placements are listed is arbitrary.
Cell names can be original cell names or FAUX BIN cells as identified in the LVS run
transcript.
Response
Placements_Of <precision> // "Placements_Of" and precision
Placements: // "Placements:"
0 0 <n> <date> // n lines of text follow
<placement_name_1> // first placement name rooted in the
// current context
... // intermediate names rooted in the current
// context
<placement_name_n> // last placement name rooted in the
// current context
Acknowledgments
OK., NOK(22), NOK(23), NOK(33), ERROR(101), ERROR(102)
Related Topics
Placement Query Commands
PORT INFO
Query Server command. Corresponding Tcl shell command: dfm::get_port_data.
Returns information about a port object.
Usage
PORT INFO port_name
Arguments
• port_name
A required name of a port in the current query cell.
Description
Returns the name of the net to which the port associated with the port_name is attached in the
current query cell, the signal direction of the port, and for each location associated with the port,
a marker square centered at that location on the appropriate layer.
The size of the marker squares is determined by the current value of the MARKER SIZE
parameter.
Response
Port_Info <precision> // "Port_Info" and precision
Port: <port_name> // constant "Port:" followed by port name
0 0 2 <date> // two lines of text follow
<net_name> // net attached to port
<signal_direction> // signal direction number: 0 = in, 1 = out,
// 2 = in/out
Layer_name_1 // first layer on which port appears
k k 0 <date> // k shapes on this layer
p 1 4 // first shape on this layer
... // four vertices of the first shape
... // remaining k-1 shapes on this layer
... // remaining layers on which port appears.
Acknowledgments
OK., NOK(11), ERROR(101), ERROR(102)
Related Topics
NET BROWSE PORTS
NET PORTNAMES
PLACEMENT BROWSE PORTS
PORT NAMES
Port Query Commands
PORT LOCATION
Query Server command.
Returns the pathname of a port object nearest the given coordinates.
Usage
PORT LOCATION x y
Arguments
• x
A required floating-point number representing an x-coordinate in user units in viewing cell
space.
• y
A required floating-point number representing a y-coordinate in user units in viewing cell
space.
Description
Returns the pathname of the closest port in the current query instance to the x y coordinates in
the viewing cell.
Ports of cells with placements in the query cell are ignored. That is, only ports of the query cell
itself are examined. Ports that are not on a layer in the current client’s FILTER LAYERS list are
ignored. If two or more ports are equidistant from the location, one is arbitrarily selected and the
others are ignored.
Filters
FILTER LAYERS, FILTER {IN | OUT} LAYERS, FILTER DISTANCE
Acknowledgments
OK: port_name, NOK(13), ERROR(116)
Related Topics
Port Query Commands
PORT NAMES
Query Server command.
Returns the name of ports in the current query cell.
Usage
PORT NAMES [FLAT]
Arguments
• FLAT
An optional argument that causes all ports in the flattened query cell to be reported.
Description
Returns a list of all port names in the current query cell.
If the FLAT keyword is omitted, only ports at the primary level of the query cell are reported. If
the FLAT keyword is used, all ports in the flattened query cell are reported. That is, ports of
cells placed in the query cell at any hierarchical level are reported with a query-cell-based
pathname leading to the cell instance containing the port. The ports are listed in alphabetical
order. Ports with more than one location are listed only once.
Response
Port_Names <precision> // "Port_Names" and precision
Ports: // "Ports:"
0 0 <n> <date> // n lines of text follow
<port_name_1> // first port name in current context
... // intermediate port names in current context
<port_name_n> // last port name in current context
Acknowledgments
OK., NOK(10), NOK(15), NOK(33), ERROR(101), ERROR(102)
Related Topics
PORT INFO
NET PORTNAMES
NET BROWSE PORTS
PLACEMENT BROWSE PORTS
Port Query Commands
Certain text objects are not used for SPICE netlist net names. These text object values are not
included in the map.
Response
Port_Text_Map <precision> // "Port_Text_Map" and precision
Port Texts:
0 0 <n> <date> // n lines of text follow
<port_text> <net_number> // port_text is the name of a port connected
// to net net_number
Acknowledgments
OK., NOK(47)
Related Topics
NET BROWSE PORTS
NET PORTNAMES
PLACEMENT BROWSE PORTS
Port Query Commands
Response
# SVDB: <software version> <time stamp>
# SVDB: LVS Settings Report (lsrf) (File format 1)
# SVDB: Layout Primary <cell>
# SVDB: Rules -0 <filename> <time stamp>
# SVDB: <format> -0 <filename> <time stamp>
# SVDB: SNL -0 <filename>
# SVDB:
# SVDB:
# SVDB:
# SVDB:
# SVDB: End of header.
HIERARCHY_SEPARATOR "<character>"
LVS_POWER_NAME <list of power nets>
LVS_GROUND_NAME <list of ground nets>
SOURCE_PATH <filename>
SOURCE_SYSTEM <format>
UNIT_LENGTH <number>
PRECISION <number>
LVS_COMPARE_CASE <NO | YES>
LAYOUT_CASE <NO | YES>
SOURCE_CASE <NO | YES>
LVS_SPICE_REPLICATE_DEVICES <NO | YES>
LVS_DB_LAYER <layer list>
LVS_DOWNCASE_DEVICE <NO | YES>
# CONNECTIVITY:
CONNECT ...
# IMPLICIT CONNECTIVITY:
IMPLICIT_CONNECT ...
Acknowledgments
OK., ERROR(101)
Examples
# SVDB: Calibre Version v2012.4_2.0 Mon Oct 1 16:52:04 PDT 2012
# SVDB: LVS Settings Report (lsrf) (File format 1)
# SVDB: Layout Primary TOP
# SVDB: Rules -0 rules-11.C Tue Apr 3 13:12:20 2012
# SVDB: GDSII -0 lay11.gds Fri Mar 23 13:50:30 2012
# SVDB: SNL -0 src11.sp
# SVDB:
# SVDB:
# SVDB:
# SVDB:
# SVDB: End of header.
HIERARCHY_SEPARATOR "/"
LVS_POWER_NAME VDD
LVS_GROUND_NAME VSS
SOURCE_PATH src.sp
SOURCE_SYSTEM SPICE
UNIT_LENGTH 1e-06
PRECISION 1000
LVS_COMPARE_CASE NAMES TYPES
LAYOUT_CASE YES
SOURCE_CASE YES
LVS_SPICE_REPLICATE_DEVICES NO
LVS_DB_LAYER NWELL DIFF
LVS_DOWNCASE_DEVICE YES
# CONNECTIVITY:
CONNECT A B BY C
# IMPLICIT CONNECTIVITY:
IMPLICIT_CONNECT D B
IMPLICIT_CONNECT F B
IMPLICIT_CONNECT H B
The connectivity response uses CONNECT when the connection is due to a Connect or
Sconnect statement. If the connectivity is established through node-preserving layer derivation,
then an IMPLICIT CONNECTIVITY section appears.
Related Topics
Rule File Query Commands
RULES CONNECTIVITY
Query Server command. Corresponding Tcl shell command: qs::rules_connectivity.
Returns the Connect and Sconnect settings, as well as all connections made by node-preserving
operations.
Usage
RULES CONNECTIVITY
Arguments
None.
Description
Returns the Connect and Sconnect statements in the rule file, as well as layer connections made
by node-preserving layer operations. Connectivity derived from Stamp operations is also
returned.
Encrypted layers and device layers with no connectivity are not returned.
Connections established through Connect or Sconnect are reported using the word CONNECT.
Connections established through layer derivation are reported using the string
IMPLICIT_CONNECT.
Response
Rules_Connectivity <precision>
Connects:
0 0 <number of connect lines to follow> <time stamp>
CONNECT ...
IMPLICIT_CONNECT ...
...
END OF RESPONSE
0 0 0 <time stamp>
OK.
Acknowledgments
OK., ERROR(101)
Examples
Assume the following in the rule file:
CONNECT A B BY C
D = B NOT E
F = D AND G
H = I STAMP BY F
Rules_Connectivity 1000
Connects:
0 0 4 May 3 10:41:46 2012
CONNECT A B BY C
IMPLICIT_CONNECT D B
IMPLICIT_CONNECT F B
IMPLICIT_CONNECT H B
END OF RESPONSE
0 0 0 May 3 10:41:46 2012
OK.
Related Topics
Rule File Query Commands
Acknowledgments
OK: netlist_path_name, NOK(43)
Related Topics
Rule File Query Commands
Acknowledgments
OK: net_name_list
Related Topics
Rule File Query Commands
RULES PRECISION
Query Server command. Corresponding Tcl shell command: qs::rules_precision.
Returns the Precision statement setting in the rule file.
Usage
RULES PRECISION
Arguments
None.
Acknowledgments
OK: precision
Related Topics
Rule File Query Commands
Precision
The query netlist commands may be used in any order. For example, a new hcell file can be read
in without re-reading the netlists to see the effects of adding a particular hcell to the hcell file.
However, the contents of the output reports is dependent on the prevailing conditions at the time
the reports are generated.
See Hcell List Management Using Standard Commands for detailed usage information
regarding the commands in this section.
Related Topics
NETLIST READ
Hcell Analysis Commands
Hcell List Management Using Standard Commands
NETLIST AUTOMATCH
Query Server command. Corresponding Tcl shell command: hcells::automatch.
Specifies that candidate hcells are matched by name.
Usage
NETLIST AUTOMATCH {OFF | ON | STRICT}
Arguments
• OFF
Keyword that specifies automatic matching by cell name is disabled. This is the default.
• ON
Keyword that specifies automatic matching by cell name is enabled.
• STRICT
Keyword that specifies automatic matching by cell name is enabled, but only of the matched
cells have the same number of ports in layout and source.
Description
Controls whether cells with the same name in layout and source should be considered hcells
(similar to the -automatch Calibre nmLVS command line option) when the NETLIST ADD
MATCHING HCELLS command is issued.
The ON setting should only be used when it is certain that source subcircuits match
corresponding layout cells of the same name.
When automatic matching is enabled, cell names that are the same are paired as hcells. Injected
cell names having the prefix ICV_ are reserved for Calibre internal use and are not used as
hcells.
Acknowledgments
OK., ERROR(134)
Related Topics
NETLIST PLACEMENTMATCH
Hcell Analysis Commands
Historical Hcell Reporting and Selection Scripts
Related Topics
NETLIST CLEAR HCELLS
Hcell Analysis Commands
Hcell List Management Using Standard Commands
Acknowledgments
OK., ERROR(134)
Related Topics
NETLIST CLEAR HCELL
Hcell Analysis Commands
Hcell List Management Using Standard Commands
When the setting is NO, all cells in the current list remain in the list, regardless of the THIC
(total hierarchical instance count) benefit they provide.
When the setting is YES (the default), all cells in the current list are evaluated along with cells
selected by automatic means (NETLIST AUTOMATCH and NETLIST
PLACEMENTMATCH). Cells in the current hcell list are removed from the list if they do not
meet the evaluation thresholds configured through the NETLIST EVALUATION
THRESHOLD command.
Acknowledgments
OK., NOTE: No explicit hcells are currently available for evaluation.
Related Topics
Hcell Analysis Commands
Hcell List Management Using Standard Commands
By default, cells that represent less than a 30 percent reduction in total hierarchical instance
count (THIC) and that contain less than 1 percent of the total flat instance count of the design
are not selected. If a cell satisfies the flat_threshold, it is selected as an hcell regardless of THIC
savings. The flat_threshold assists in permitting large hcells to be selected even if they do not
contribute toward meeting the THIC_threshold.
Cells that meet the conditions of the command are added to the current hcell list by NETLIST
SELECT HCELLS.
See Hcell List Management Using Standard Commands for a complete discussion of the
threshold values.
Acknowledgments
OK., ERROR(149)
Related Topics
Hcell Analysis Commands
Hcell List Management Using Standard Commands
See “Unbalanced Hcell Reporting” on page 463 for details of using this command.
Acknowledgments
OK., ERROR(134)
Related Topics
Hcell Analysis Commands
NETLIST HCELL
Query Server command. Corresponding Tcl shell command: hcells::hcell.
Adds an hcell pair to the system hcell list.
Usage
NETLIST HCELL layout_cell source_cell
Arguments
• layout_cell
A required argument specifying a layout cell name corresponding to the source_cell.
• source_cell
A required argument specifying a source cell name.
Acknowledgments
OK., ERROR(134)
Related Topics
NETLIST HCELLS
NETLIST READ
Hcell Analysis Commands
Hcell List Management Using Standard Commands
NETLIST HCELLS
Query Server command. Corresponding Tcl shell command: hcells::hcells.
Reads in an existing hcell list.
Usage
NETLIST HCELLS filename
Arguments
• filename
A required pathname to a file containing an hcell list.
Description
Causes the filename to be read in and used as an hcell file (similar to the -hcell Calibre nmLVS
command line option). Removes any existing hcells from the hcells list maintained by the
system.
Acknowledgments
OK., ERROR(134), ERROR(146)
Related Topics
NETLIST HCELL
NETLIST READ
Hcell Analysis Commands
Hcell List Management Using Standard Commands
NETLIST PLACEMENTMATCH
Query Server command. Corresponding Tcl shell command: hcells::placementmatch.
Specifies that candidate hcells are matched by placement count.
Usage
NETLIST PLACEMENTMATCH {OFF | ON | LOOSE}
Arguments
• OFF
Keyword that specifies automatic matching by placement count and pin count is disabled.
This is the default.
• ON
Keyword that specifies automatic matching by placement count and pin count is enabled.
• LOOSE
Keyword that specifies automatic matching by placement count is enabled, but pin count is
ignored.
Description
Controls whether the NETLIST ADD MATCHING HCELLS command adds hcells that are
matched using the placement matching heuristic to the current hcell list maintained by the
system. Cells can be matched as hcells based on whether the number of times the cells appear in
the layout and source is identical and the number is unique.
If ON is specified, cells are matched as hcells based upon placement counts, and pin counts
must also match in the layout and source.
Cells that match (or could match) using placement matching have their names preceded by a
pound (#) character in the netlist evaluation report.
See “Cell Matches Using Placement Matching” on page 464 for additional details.
Acknowledgments
OK., ERROR(134)
Related Topics
Hcell Analysis Commands
Historical Hcell Reporting and Selection Scripts
NETLIST READ
Query Server command. Corresponding Tcl shell command: hcells::read.
Reads the rule file for netlist information.
Usage
NETLIST READ rule_file [LAYOUT | SOURCE]
Arguments
• rule_file
A required pathname to the LVS rule file.
• LAYOUT
An optional keyword that causes only the layout netlist to be analyzed. If the Layout System
in the rule file is not SPICE, then the LAYOUT option is not useful.
• SOURCE
An optional keyword that causes only the source netlist to be analyzed.
Description
Causes the source and layout netlists specified in the rule_file to be read into memory for
analysis.
The SOURCE and LAYOUT keywords cause the command to read only that netlist and to use it
as both source and layout. Using these options allows you to analyze the effectiveness of one set
of hcells from either the layout or source set.
Acknowledgments
OK., ERROR(134), ERROR(135), ERROR(145)
Examples
NETLIST AUTOMATCH STRICT (automatch hcells by names)
NETLIST PLACEMENTMATCH ON (match hcells by placement count)
NETLIST READ rules (read the rule file)
NETLIST ADD MATCHING HCELLS (add matching cells)
RESPONSE FILE cells.report (send the report to this file)
NETLIST SELECT HCELLS (write the effective hcell report)
RESPONSE FILE hcells (send an initial hcell list to this file)
NETLIST REPORT HCELLS (initial hcell list)
The hcells file contains the hcells the Query Server chooses based upon default selection
criteria. This file can be tested in an LVS run for performance and further modification. The
cells.report follows the “Hcell Evaluation Report Format” on page 457.
Related Topics
NETLIST ADD MATCHING HCELLS
NETLIST HCELL
NETLIST HCELLS
Hcell Analysis Commands
Historical Hcell Reporting and Selection Scripts
The RESPONSE FILE command can be used to print the hcell list to a file.
Acknowledgments
OK.
Examples
This sequence of commands is used to generate an hcell list that has been built up from previous
commands:
Related Topics
NETLIST REPORT HIERARCHY
NETLIST SELECT HCELLS
Hcell Analysis Commands
Historical Hcell Reporting and Selection Scripts
The RESPONSE FILE command can be used to print the report to a file. Since the report can be
long for large designs, using a response file is recommended.
Acknowledgments
OK., ERROR(136), ERROR(143), ERROR(144)
Related Topics
NETLIST REPORT HCELLS
NETLIST SELECT HCELLS
Hcell Analysis Commands
Hcell List Management Using Standard Commands
See “Historical Hcell Reporting and Selection Scripts” on page 453 for a selection of scripts
that show how commands are used together.
Response
See “Hcell Evaluation Report Format” on page 457.
Acknowledgments
OK., ERROR(134), ERROR(136), ERROR(148)
Related Topics
Hcell Analysis Commands
Hcell List Management Using Standard Commands
NETLIST STATUS
Query Server command. Corresponding Tcl shell command: hcells::status.
Lists the current status of netlist analysis commands and whether the netlists and rule file have
been read.
Usage
NETLIST STATUS
Arguments
None.
Response
• The following response occurs:
netlist automatch: <on | off>
netlist placementmatch: <on | off>
netlist THIC threshold: <percent>
netlist Flat instance count threshold: <percent>
netlist evaluate current hcells: <yes | no>
netlist hcell file: <file | null>
netlist expand unbalanced <from rules | no | yes>
[ netlist read from rule file: <rule_file_name> |
netlist Netlists not read. ]
Acknowledgments
OK.
Related Topics
Hcell Analysis Commands
Hcell List Management Using Standard Commands
The Calibre Connectivity Interface (CCI) provides a way for downstream silicon modeling tools
to access extracted layout connectivity information. This information includes layout shapes,
nets, devices, and corresponding schematic or source names. Third-party parasitic extractors are
an example of potential clients for this interface.
All data required for the CCI interface is enabled with the Mask SVDB Directory … QUERY
CCI rule file statement. The file formats produced are standard Query Server formats which do
not conform to the usual DRC results format.
A basic script for generating all CCI files needed for downstream flows is discussed under
“Generating CCI Output Files” on page 304.
The CCI commands require a Calibre Connectivity Interface license. Refer to the Calibre
Administrator’s Guide for licensing information.
L1 and L2 are conflicting layers because they both represent the same device. Mixing annotated
device layers with devices of the same type also causes layer conflicts. Here is an example:
L1 and L2 are conflicting layers because they both represent the same device type.
Only one layer from a set of conflicting layers can be a part of the current set of annotated layers
at any given time. When the CCI client starts, if there is a set of conflicting layers, the first layer
of the conflicting set that appears in the LVS Annotate Devices rule file statements is used, and
the remainder of the conflicting layers are ignored. You can select which conflicting layer to
filter by using the FILTER IN ANNOTATED LAYERS command. See “FILTER {IN | OUT}
ANNOTATED LAYERS” on page 194 for more details.
If conflicting layers are present as discussed under “Conflicting Annotated Device Layers” on
page 190, only one layer of the set of conflicting layers is reported by this command.
Response
Annotated_Device_Layer_map <precision>
Device_Layer_Mappings:
<k> <k> 0 <date> // k layer entries
<dev> <dev_idx> <layer_name>
...
Acknowledgments
OK., NOK(40), ERROR(130)
Examples
Annotated_Device_Layer_map 1000
Devices_Layer_Mappings:
0 0 24 Oct 15 10:43:47 2010
mn(n) 0 DLAYER_MN_PROP
mn(ns) 1 DLAYER_MN_PROP
mn(nvt1) 2 DLAYER_MN_PROP
mp(p) 3 DLAYER_MP_PROP
mp(ps) 4 DLAYER_MP_PROP
mp(pvt1) 5 DLAYER_MP_PROP
mn(ncap) 20 DLAYER_MN_PROP
END OF RESPONSE
0 0 0 Oct 15 10:43:47 2010
OK.
Related Topics
Annotated Device Commands
When IN and ALL are specified (the defaults), all non-conflicting annotated device layers are
read in. When IN and layer are specified, all non-conflicting layers from the set of specified
layers are read in.
If any layers conflict, the first one of the conflicting set that appears in an LVS Annotate
Devices statement is used, and all other layers in the conflicting set are ignored. Conflicting
layers are discussed under “Conflicting Annotated Device Layers” on page 190.
Acknowledgments
OK., NOK(40), ERROR(130), ERROR(161), ERROR(162), ERROR(163)
Related Topics
Annotated Device Commands
You create the AGF file using the GDS WRITE command. This file is used in conjunction with
the outputs of the LAYOUT NETLIST WRITE, LAYOUT NAMETABLE WRITE, and
LAYOUT NET XREF WRITE commands to provide a complete set of cross-references for
layout connectivity annotations.
To use the YES option, the LVS Annotate Devices specification statement must be present in
the rule file. When YES is specified, the annotated devices are represented by promoted seed
shapes containing the paths to the originally-recognized devices in higher-level circuits of the
design.
Assume you have a resistor cell called RCELL with two device instances, R0 and R1. Assume
RCELL is placed once in cell TOP as shown in Figure 4-1.
Assume the AGF file for the above design is represented by two device seed shapes contained in
RCELL, and each shape has a DFM property containing the recognized device name for the
device as it appears in the SPICE netlist:
.SUBCKT RCELL 1 2
R0 1 3 2 40
R1 1 3 2 50
.ENDS
.SUBCKT TOP
X0 RCELL A B
.ENDS
Further assume R0 must be promoted in order for the annotated device property to have
meaning.
If GDS ANNOTATED DEVICES YES is used when the AGF file is generated, the new
promoted location of R0 with its extended pathname is generated in the file. RCELL now
contains only instance R1. TOP contains both the promoted instance R0 and RCELL as shown
in Figure 4-2.
.SUBCKT RCELL 1 2
RR1 1 3 2 50 $P=1.8e-07
.ENDS
.SUBCKT TOP
RX0/R0 A B X0/3 40 $P=2.3e-06
X0 RCELL A B
.ENDS
Acknowledgments
OK., NOK(57)
Related Topics
LAYOUT NETLIST ANNOTATED DEVICES
Annotated Device Commands
GDS HIERARCHY
CCI command.
Controls the hierarchy output by the GDS WRITE command.
Usage
GDS HIERARCHY {AGF | HCELL | FLAT}
Arguments
• AGF
Keyword that specifies to generate the native AGF hierarchy with no additional expansion
of cells and is consistent with normal GDSII output hierarchy. This is the default.
• HCELL
Keyword that specifies to expand all non-hcells into the containing hcell. It also expands
unbalanced hcells that were expanded during LVS comparison.
• FLAT
Keyword that specifies to expand all lower-level cells into the top-level cell.
Acknowledgments
OK., ERROR(122)
Related Topics
Annotated GDSII File Commands
GDS WRITE
Cell names can be original cell names or FAUX BIN cells as identified in the LVS run
transcript.
The cellname parameter may contain the asterisk (*) wildcard, which matches zero or more
characters.
See also GDS HIERARCHY EXPAND DEVICELESS CELLS and GDS HIERARCHY
CLEAR EXPAND CELLS.
Acknowledgments
OK., NOK(36)
Related Topics
Annotated GDSII File Commands
GDS MAP
CCI command. Corresponding Tcl Shell command: qs::gds_map.
Returns or configures the layer map scheme of AGDS output.
Usage
GDS MAP [calibre_layer gdsii_layer [gdsii_datatype]]
GDS MAP calibre_layer gdsii_layer gdsii_datatype {DEVICE | ORIGINAL}
Arguments
• calibre_layer
The name (not number) of a Calibre rule file layer. This argument is required if DEVICE or
ORIGINAL is specified.
• gdsii_layer
The number of an AGDS output layer. This argument is required if DEVICE or
ORIGINAL is specified.
• gdsii_datatype
The number of an AGDS layer datatype. This argument is required if DEVICE or
ORIGINAL is specified.
• DEVICE
A required keyword in the second syntax form of the command. This keyword configures
the output layer as a device seed layer. May not be specified with ORIGINAL.
• ORIGINAL
A required keyword in the second syntax form of the command. This keyword configures
the output layer as an original layer. May not be specified with DEVICE.
Description
Without any optional arguments, this command returns the current Calibre layer name to layer
number and datatype mapping for all Device layers output by a subsequent GDS WRITE
command. Output layer numbers and datatypes are assigned by the system by default. Output
can be sent to a RESPONSE FILE in this case.
If any of the optional arguments are specified, the command does not return the layer mapping
information. Instead, the additional parameters configure the GDS WRITE command output. If
gdsii_datatype is specified, then the output uses that datatype; otherwise, no datatype is used.
The GDSII standard specifies layers and datatypes are numbers between zero and 63; however,
values between -32767 and +32767 are accepted by the Query Server.
If GDS SEED PROPERTY DEVICE ORIGINAL is specified, then either the DEVICE or
ORIGINAL keyword must be supplied in a GDS MAP command in order to configure the
desired output layer. Separate GDS MAP commands are needed to produce each DEVICE or
ORIGINAL output layer type.
The precision value in the output response header is multiplied by the MAGNIFY RESULTS
factor.
Response
GDS_Map <precision> // GDS_Map and rule file precision
Layers: // "Layers:"
0 0 <n> <date> // n lines of text follow
<name> <layer> <datatype> // mapping for layer <name>
... // continue for all meaningful layers.
<name> <layer> <datatype> [ DEVICE | ORIGINAL] // additional keywords
// if DEVICE and ORIGINAL are both used
// for the same output.
Acknowledgments
OK., ERROR(114), ERROR(123), ERROR(124), ERROR(133)
Related Topics
Annotated GDSII File Commands
Generating CCI Output Files
GDS FILTER MAP
GDS SVRF MAP
The PROPVALUE records controlled by the command’s keywords are always assigned to
output polygons. DEVPROP properties appear on device seed shapes. NETPROP properties
appear on interconnect shapes. PLACEPROP properties appear on placements.
See GDS SEED PROPERTY for a means to control the DEVPROP property value.
Acknowledgments
OK.
Related Topics
Annotated GDSII File Commands
GDS RESET
CCI command.
Sets the AGDS commands to their default values.
Usage
GDS RESET
Arguments
None.
Description
Causes default settings to take effect for the GDS WRITE command.
Affects the GDS MAP and GDS {DEVPROP | NETPROP | PLACEPROP} NUMBER
commands. Does not affect the MAXIMUM VERTEX COUNT.
Acknowledgments
OK.
Related Topics
Annotated GDSII File Commands
The DEVICE keyword enables device instance names to be written, which is done by default.
The ORIGINAL keyword enables net name properties (if available on seed layers) to be
written. Using both DEVICE and ORIGINAL enables both forms to be written.
The property numbers that get used are controlled by the GDS {DEVPROP | NETPROP |
PLACEPROP} NUMBER command. DEVPROP is for device instances, NETPROP is for net
names.
If this command is used with both DEVICE and ORIGINAL, then associated GDS MAP
commands must use these keywords (one command for each keyword), depending on which
output property is desired on a given output layer. For example, this sequence outputs properties
of both types:
Due to seed promotion, original layer shapes may occur at a different level than the recognized
seed shapes.
Acknowledgments
OK.
Related Topics
Annotated GDSII File Commands
The following shows the difference between the default GDS MAP format and the SVRF
format when saved using RESPONSE FILE.
If non-zero datatypes are used, then the associated Layer Map and Layer statements are
included in the output.
Acknowledgments
OK.
Related Topics
Annotated GDSII File Commands
GDS UNITS
CCI command.
Specifies the values of the UNITS record in the output of the GDS WRITE command. GDS
UNITS has no other effect on CCI output.
Usage
GDS UNITS precision dbu_size
Arguments
• precision
A required floating-point number that specifies the physical precision of the output
database. The reciprocal of the rule file Precision is the default.
• dbu_size
A required number that specifies the database unit in meters. The number may be floating-
point or in scientific notation. The dbu_size is the ratio of the Unit Length rule file
parameter to the Precision parameter by default.
Acknowledgments
OK., ERROR(117)
Examples
Assuming the default Precision of 1000 and the default Unit Length of 1e-06, this command
specifies the default output values:
Related Topics
Annotated GDSII File Commands
GDS WRITE
GDS WRITE
CCI command.
Writes an AGDS file.
Usage
GDS WRITE filename
Arguments
• filename
A require pathname of a file. If the filename ends in the .Z or the .gz suffix, the output file is
compressed using the compress or gzip utility, respectively. Using compressed output
suffixes assumes you have the appropriate utilities in your environment. Directories in a
pathname are created if they do not exist.
Description
Writes layout geometry in AGF format to the specified filename. Other commands in the GDS
family configure the output before GDS WRITE is used.
Device instance names, net IDs, and placement names are written to GDSII property records
PROPATTR and PROPVALUE. By default, the PROPATTR record value is 1 for all
properties. The value for PROPATTR records may be changed using the GDS {DEVPROP |
NETPROP | PLACEPROP} NUMBER command.
By default, the maximum vertex count is 200 (same as GDSII standard). It may be adjusted with
the MAXIMUM VERTEX COUNT command.
By default, the database precision follows the rule file Precision setting. The database precision
can be changed with the GDS UNITS command. Additionally, the MAGNIFY RESULTS
factor is multiplied by all x y coordinate values prior to output.
This command requires a Calibre Connectivity Interface license in addition to a Calibre Query
Server license. Refer to the Calibre Administrator’s Guide for license information.
The AGF file is used in conjunction with the outputs of the LAYOUT NETLIST WRITE and
LAYOUT NAMETABLE WRITE commands.
Filters
The FILTER LAYERS, FILTER DEVICELAYERS, and FILTER DEVICES commands
control which layers and device seed shapes are written to the file. See “Layer Output Control
for the AGF” on page 218 for details about layer output control.
Response
Writes an Annotated GDSII File (AGF) Format file.
Acknowledgments
OK., NOK(33), ERROR(102), ERROR(103), ERROR(130)
Related Topics
Annotated GDSII File Commands
Generating CCI Output Files
Format
The Annotated GDSII File consists of a collection of records in the following format:
HEADER record.
BGNLIB record including a current timestamp.
LIBNAME record (the name is always lvs.dii).
UNITS record based on rule file PRECISION and UNIT LENGTH parameters.
placement hierarchy (.lph suffix) file. Only cells generated during connectivity
extraction are expanded in this manner.
Parameters
None.
Related Topics
Annotated GDSII File Commands
Generating CCI Output Files
• Use the FILTER LAYERS command after the GDS MAP command and before the
GDS WRITE command. The order of the commands is important.
• If the layer is assigned a name in the rule file, then the layer number cannot be used in
the FILTER LAYERS command.
• Only the layers involved in connectivity and in Device operations are output in the AGF
by default. The LVS DB Layer specification statement adds other layers to the output.
• If you do not explicitly map the layers to some layer numbers, the layers get mapped as
layer numbers 1, 2, 3, and so forth. Therefore, explicitly map all the layers (or at least all
the connectivity layers) so you know the numbers they are getting mapped to. This can
be done by using the GDS MAP command. For example, this maps metal1 to layer 0
datatype 0:
GDS MAP metal1 0 0
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Response
Writes a cell extent report. Format is as follows:
The names of the cells follow the SVDB header information. Each cell name is followed by the
x y coordinates of the lower-left and upper-right corners of the cell extent.
The MAGNIFY RESULTS factor is multiplied by all x y coordinate values prior to output.
Acknowledgments
OK., ERROR(101), ERROR(102)
Related Topics
Generating CCI Output Files
A basic script for generating all CCI files needed for downstream flows is discussed under
“Generating CCI Output Files” on page 304.
The MAGNIFY RESULTS factor is multiplied by all x y coordinate values prior to output.
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Response
Writes a Port Table File Format file.
Acknowledgments
OK., ERROR(101), ERROR(102), ERROR(130)
Related Topics
Generating CCI Output Files
Port Table File Commands
When YES is specified, Port Layer Polygon ports exist, and the PORT TABLE CELLS WRITE
command is used, then unnamed ports that appear by default in the port table, such as this:
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Response
Writes a Port Table File Format file.
Acknowledgments
OK., ERROR(101), ERROR(102), ERROR(130)
Related Topics
Generating CCI Output Files
Port Table File Commands
Parameters
• port-name
Layout name of the port object, for example the GDSII text string when using Port Layer
Text, or <UNNAMED> for Port Layer Polygon.
• node-number
Layout node number to which the port is connected.
• node-name
Layout node name to which the port is connected, or layout node number if the node is
unnamed.
• location
Form: x y; in database units. This is the location of the database text object when using Port
Layer Text, or a vertex on the port polygon marker when using Port Layer Polygon.
• layer-attached
Layer of the polygon to which the port got attached. It is the rule file layer name or rule file
layer number if the layer is unnamed. This layer appears in a Connect or Sconnect operation.
• cell-name
Cell name field is present only when the file is produced by the PORT TABLE WRITE
command with the CELLS keyword. It specifies the name of the cell in which the port
resides. The PORT TABLE WRITE command only writes ports from the top-level cell.
Examples
PORT TABLE WRITE produces the following output:
A basic script for generating all CCI files needed for downstream flows is discussed under
“Generating CCI Output Files” on page 304.
To use the YES option, the LVS Annotate Devices specification statement must be present in
the rule file. When YES is specified, the annotated devices are represented as promoted device
paths in higher-level circuits of the design. Pins of the promoted devices may also require new
pins that route through the design.
For example, an original netlist containing two resistors might look like this:
.SUBCKT RCELL 1 2
R0 1 3 2 40
R1 1 3 2 50
.ENDS
.SUBCKT TOP
X0 RCELL A B
.ENDS
Suppose that a property P can be measured using DFM Property and you want to create a netlist
with P properties annotated for some downstream tool. Furthermore, assume the resistor R0
must be promoted to the top level in order to make a meaningful measurement for P. However,
R1 can be annotated in place inside cell RCELL.
After netlist extraction using LVS Annotate Devices and use of the LAYOUT NETLIST
ANNOTATED DEVICES YES command in the Query Server, the following netlist might
result:
.SUBCKT RCELL 1 2
RR1 1 3 2 50 $P=1.8e-07
.ENDS
.SUBCKT TOP
RX0/R0 A B X0/3 40 $P=2.3e-06
X0 RCELL A B
.ENDS
Notice that the resistor R0 has been promoted to cell TOP. R0 retains its original hierarchical
pathname (with an R prefixed in order to remain as a valid SPICE netlist). A hierarchical net
path X0/3 has appeared in cell TOP and is routed down through to RCELL in order to provide
proper connectivity between the two resistors.
Note
LAYOUT NETLIST ANNOTATED DEVICES YES is mutually exclusive with LAYOUT
NETLIST SEPARATED PROPERTIES YES.
Acknowledgments
OK., OK: LAYOUT NETLIST SEPARATED PROPERTIES was set to NO, NOK(57)
Related Topics
LAYOUT NETLIST REPORT BAD ANNOTATED DEVICES
Customized Layout SPICE Netlist Commands
Annotated Device Commands
to become this:
to become this:
Related Topics
LAYOUT NETLIST NO CELL PREFIX
Customized Layout SPICE Netlist Commands
LAYOUT NETLIST WRITE
to be written as this:
Property areac is not standard for capacitors in SPICE, hence it is written out as a comment.
Related Topics
Customized Layout SPICE Netlist Commands
This command requires use of either the CCI or ANNOTATE DEVICES option of the Mask
SVDB Directory rule file statement.
Acknowledgments
OK., ERROR(130)
Related Topics
Customized Layout SPICE Netlist Commands
Acknowledgments
OK.
Related Topics
Customized Layout SPICE Netlist Commands
The YES option is useful for using pushdown separate properties (PDSP) when pin location
information is not desired in the generated netlist (the information is still provided in the PDSP
file). See “Customized Files for Pushdown Backannotation” on page 267 for more information
about this flow.
The YES option instructs the Query Server to write device template info in the form of SPICE
comments. The header of the CCI netlist file contains this comment indicating that device
template information was requested:
* Device templates: NO
If both LAYOUT NETLIST PIN LOCATIONS YES and LAYOUT NETLIST DEVICE
TEMPLATES are specified, the former command’s format is used for the output.
Response
The device template has the following format:
Acknowledgments
OK., NOK(40)
Examples
*.DEVTMPLT 0 mp() PSEED GPIN(g) SDPIN(s) SDPIN(d)
This line represents pin layer and ordering information for all netlist devices that include the
$D=0 comment. It represents an MP device with no model name. The seed layer is PSEED, the
pin layers are GPIN, SDPIN, and SDPIN for the pin names g, s, and d, respectively. The
following device instance in the netlist:
Related Topics
Customized Layout SPICE Netlist Commands
If LAYOUT NETLIST NAMES SOURCE is not specified, the layout netlist is written with all
cells by default. If LAYOUT NETLIST NAMES SOURCE is specified, the layout netlist is
written flat for the ALL, FLAT, and AGF options. The LAYOUT NETLIST HIERARCHY
command with the corresponding keywords is invalid in this situation.
If ALL is not specified, then the LAYOUT NAMETABLE WRITE command should be used
with the EXPAND_CELLS option.
Acknowledgments
OK., ERROR(122), ERROR(128)
Related Topics
Customized Layout SPICE Netlist Commands
The NO keyword creates an invalid SPICE netlist because the type of element is no longer
designated by the first character in the line. However, some tools prefer not to have the extra
character in the netlist. For example, the following netlist might be created by the LAYOUT
NETLIST WRITE command with LAYOUT NETLIST HIERARCHY set to FLAT. By default,
the netlist is generated with the extra call prefix characters, as shown here:
If the hierarchy prefix option is set to NO, the extra call character at the beginning of each line
is omitted:
Acknowledgments
OK., ERROR(122)
Related Topics
Customized Layout SPICE Netlist Commands
to be written as this:
Related Topics
LAYOUT NETLIST HSPICE USER
Customized Layout SPICE Netlist Commands
to be written as this:
Related Topics
LAYOUT NETLIST HSPICE CR
Customized Layout SPICE Netlist Commands
The LAYOUT keyword is frequently preferred when generating a Layout Net Cross-Reference
(LNXF) file with LAYOUT NET XREF WRITE.
The NONE keyword is used together with LAYOUT NAMETABLE WRITE to generate a
Layout Netlist Names (LNN) file that maps net and instance numbers to names. The NONE
setting causes this note to be issued:
NOTE: Backward compatibility mode used for LNXF file generation: LAYOUT NETLIST
NAMES NONE was set.
Unmatched nets or instances are identified using a prefix when SOURCE is specified. The
prefix is typically _Layout_, but if there are source names that begin with _Layout_, additional
_ characters are added to the prefix to insure that it is unique.
Acknowledgments
OK., ERROR(111), ERROR(129)
Related Topics
LAYOUT NETLIST UNIQUE NAMES
Customized Layout SPICE Netlist Commands
The pin location output of the YES option corresponds to the LVS Center Device Pins
statement setting in the rule file. By default, the reported pin locations are chosen arbitrarily on
the intersection of device seed shapes and pins.
The YES option should not be used for pushdown separate properties (PDSP) flows. Use
LAYOUT NETLIST DEVICE TEMPLATES YES instead.
Response
The device template has the following format:
Acknowledgments
OK.
Examples
This example shows the output when LAYOUT NETLIST PIN LOCATIONS YES is specified.
This line represents pin layer and ordering information for all netlist devices that include the
$dt=0 comment. It represents an MP device with no model name. The seed layer is PSEED, the
pin layers are GPIN, SDPIN, and SDPIN for the pin names g, s, and d, respectively. The
following device instance in the netlist:
corresponds with *.DEVTMPLT 0. Pin locations for this device are as follows (recall that
SPICE syntax puts standard MOS pins in the order d g s):
Related Topics
LAYOUT NETLIST DEVICE LOCATION
Customized Layout SPICE Netlist Commands
When using LVS Annotate Devices, it is sometimes necessary to output device instances that
are not found on the annotated layer. Instances associated with the annotated layer that do not
interact with the layer are written to the filename. These instances are not output by LAYOUT
NETLIST WRITE.
Acknowledgments
OK., NOK(33), ERROR(130), ERROR(131)
Related Topics
LAYOUT NETLIST ANNOTATED DEVICES
Annotated Device Commands
Customized Layout SPICE Netlist Commands
Acknowledgments
OK.
Related Topics
STATUS LAYOUT NETLIST
Customized Layout SPICE Netlist Commands
The LVS Push Devices SEPARATE PROPERTIES YES statement must be used in the rule file
for the LAYOUT NETLIST SEPARATED PROPERTIES YES option to have any effect.
When YES is specified, the separated properties are written to the output netlist.
See “Customized Files for Pushdown Backannotation” on page 267 for additional details.
Acknowledgments
OK., NOK(58)
Examples
Assume this is in the rule file:
These commands in the Query Server shell can be used to write a separated properties file
props.data and a backannotation netlist cci_pdsp.netlist:
Related Topics
Customized Layout SPICE Netlist Commands
Writing PDSP Properties in CCI
The YES option overrides LVS Netlist Box Contents NO, LVS Netlist Unnamed Box Pins NO,
and the LVS Netlist Internally Floating Pins NO settings in the rule file. The purpose of
LAYOUT NETLIST TRIVIAL PINS YES is to ensure that every place there is a pin needed in
the AGF file, the AGF has an associated pin in the CCI netlist. (That is, if appropriate, a pin is
represented in the CCI netlist where the net appears in more than one level of hierarchy,
including box cells.) This is because the AGF has no mechanism for storing pins other than the
CCI netlist.
If LAYOUT NETLIST TRIVIAL PINS NO is used, then the rule file settings for the
aforementioned specification statements have precedence. In other words, the CCI generated
netlist matches the calibre -spice netlist in that case.
Acknowledgments
OK.
Related Topics
Customized Layout SPICE Netlist Commands
Specifying only NO or YES without the INSTANCES or NETS options means the setting
applies to both nets and instances.
The YES option causes combined layout instance and net names to appear in the form:
>_Layout_<l_name>_Source_<s_name>
where <l_name> is the layout name and <s_name> is the source name. For example, two layout
resistors in series: R0 1 2, R1 2 3 when mapped to a single source resistor RA, are named as
follows:
RA 1 2
R_Layout_1_Source_RA 2 3
This scheme guarantees a valid netlist when smashing of resistors occurs. The NO option
causes the name of the smashed layout net or instance to be mapped directly to the source name.
Using the previous example of series resistors, this is the format:
RA 1 2
RA 2 3
Smashing of nets simply changes pin names of the netlist, which does not cause the netlist to
become invalid. Hence, the default for NETS is NO.
Acknowledgments
OK.
Related Topics
Customized Layout SPICE Netlist Commands
Details of the layout netlist format are included under “Customized SPICE Netlist Format.” By
default, the netlist written is similar to the netlist produced by calibre -spice.
This command preserves floating nets created by LVS Preserve Floating Top Nets YES and
LVS Netlist All Texted Pins YES specification statements. Net names, including floating nets
(which must be named) and named pins, are not written if LAYOUT NETLIST NAMES NONE
is used.
Output coordinates are in database units as represented in the Calibre database (not necessarily
the same as the physical layout). When used, magnification factors in the rule file are applied to
the coordinates.
When flattening of the netlist is required, the LAYOUT NETLIST WRITE command writes a
*.STRIP_TYPE_CHAR directive to the netlist, which instructs the parser to strip the leading
character from all names read in after deciding on the device type, but before any further
processing. For example, the resistor “ROUT” would be treated as a resistor, but with the name
“OUT”. The directive applies to all SPICE read for the current circuit, even SPICE read in
previously. This is used in Calibre PERC flows to strip the leading characters from device
names.
Acknowledgments
OK., NOK(33), ERROR(101), ERROR(102)
Examples
See “Generating CCI Output Files” on page 304.
Related Topics
Customized Layout SPICE Netlist Commands
STATUS LAYOUT NETLIST
• $X $Y coordinates.
• $PIN_XY coordinates when present.
The filename format is shown under “Separated Properties File Format” on page 271.
See “Customized Files for Pushdown Backannotation” on page 267 for more details about the
commands used with the PDSP flow.
Acknowledgments
OK., NOK(68), ERROR(102), ERROR(122), ERROR(131), ERROR(150)
Examples
Assume this is in the rule file:
These commands in the Query Server shell can be used to write a separated properties file
cci_props.data and a backannotation netlist cci.netlist:
Related Topics
LAYOUT NETLIST SEPARATED PROPERTIES
Customized Layout SPICE Netlist Commands
Writing PDSP Properties in CCI
Acknowledgments
OK.
Related Topics
LAYOUT NETLIST RESET
LAYOUT NETLIST WRITE
Customized Layout SPICE Netlist Commands
This file is used in conjunction with an Annotated GDSII File (AGF) Format file and a Layout
Netlist Names File Format (LNN) file.
By default, the netlist is identical in structure to the netlist produced by calibre -spice. Various
configuration options alter the structure of the netlist produced.
• Subcircuit definitions
.SUBCKT definitions in the layout netlist represent original cells in the input database
or pseudo-cells created by Calibre hierarchical pre-processing. For original database
cells, subcircuit names in the layout netlist are identical to cell names in the input
database. An exception occurs when a cell name in the input database begins with a
dollar sign ($) character. Cell names that start with $ usually have the prefix __. In
general, to avoid conflicts with database names, the prefix consists of N underscores,
where N is one larger than the number of leading underscores in any database cell
named ___*$* (that is, any database cell whose name begins with at least two
underscores followed by a $). This prefix is necessary to make those cell names valid in
SPICE. Recall that a leading $ denotes a comment in SPICE.
Subcircuit definitions indicate which nets in the cell serve as pins of the cell. All nets in
a cell that make connections to nets outside of the cell appear as pins in the .SUBCKT
line for the cell.
For example:
.SUBCKT ABC 1 2
R1 1 2 50
.ENDS
describes cell ABC with two pins: 1, 2. These numbers are net numbers in the cell.
• Subcircuit calls
Subcircuit calls are represented by standard SPICE subcircuit call notation X.
Comments provide some additional information. For example, the line:
X3 5 7 ABC $T=-375 13750 1 0 $X=2250 $Y=2000
describes a placement of cell ABC with nets 5, and 7 connected to the first and second
pins of ABC respectively. The comment field $T represents the transform of the
placement: X translation, Y translation, reflection (0 or 1, indicating false or true, with
the X-axis being the axis of symmetry) and rotation (0, 90, 180, or 270 degrees, counter-
clockwise); $X and $Y represent coordinates of the placement.
• Devices
When possible, devices in the layout netlist are represented with regular SPICE
elements (M, R, C, D, Q, and so on). In other cases (for example, when the device is not
a standard SPICE element), devices in the layout netlist are represented with subcircuit
calls. In the latter case, the layout netlist contains an empty subcircuit definition
describing the device. Device lines provide the type of device, pin connections, model
name and parameters or properties. Location of the device is presented as an X Y
coordinate pair in database units encoded as a comment at the end of the device.
For example, this line:
M2 4 5 6 7 p L=1 W=2 $X=-6000 $Y=1000
describes a MOS device instance of type P (in SVRF, DEVice MP) with drain, gate,
source and bulk connected to nets 4, 5, 6, and 7 respectively and W/L as specified at the
coordinates (-6000,1000) in the current cell. This line:
X2 7 8 9 10 11 Q3E $X=1000 $Y=1000
describes a device instance of type Q3E with five pins. In this case, the netlist also
contains a subcircuit definition such as this:
.SUBCKT Q3E C B E1 E2 E3
.ENDS
Actual seed and pin device shapes that make up the device may occur at various levels
above and below the device coordinates. Their location is governed by the
Calibre nmLVS circuit extraction seed promotion functionality. The device coordinates
appear at a vertex of the seed shape after translation into the current cell. Device
coordinates can also be configured to appear at the center of the seed shape when the
coordinates of the center lie on the seed shape using the LAYOUT NETLIST DEVICE
LOCATION command.
Some built-in devices make use of optional substrate pins defined by Calibre. They are
specified as:
R0 1 2 50 $SUB=3
where R0 is a resistor with terminals on nets 1 and 2 and substrate pin on net 3. This
feature is controlled with the LVS Netlist Comment Coded Substrate specification
statement. If LVS Netlist Comment Coded Substrate NO is specified in the rule file, the
resistor is output as a call to a subcircuit:
.SUBCKT R pos neg sub
.ENDS
X0 1 2 3 r=50
Devices included in the netlist are affected by the FILTER DEVICES setting currently
active in the Query Server. Only devices of FILTERED types are included in the netlist.
• Nets
The nets in the layout netlist can be specified in one of three ways:
• Using a combination of layout net names available from text in the layout database
(default) and net numbers for untexted nets.
• Pure net numbers.
• Source names where source names are available, layout names prefixed by a string
where matching names are not available. The prefix is typically _Layout_, but if there
are source names that begin with _Layout_, additional _ characters are added to the
prefix to ensure that it is unique. When devices are reduced through series or parallel
reduction, the first device in the group is named with the corresponding source name.
Other devices in the group are named with a name like
_Layout_<layout_name>_Source_<source_name>.
Name format is controlled with the LAYOUT NETLIST NAMES command.
• Net numbers
Net numbers are determined arbitrarily by Calibre during circuit extraction. The
combination of subcircuit calls and subcircuit definitions in the layout netlist describes
how electrical nets traverse levels of hierarchy in the design.
• Expanded placements
The LAYOUT NETLIST HIERARCHY command can be used to expand cells in place
within the netlist. When cells are expanded, the names of cell placements are of the form
XXi/[Xj…]/Xk.
Note that all device and cell placement names have exactly one extra letter at the front
when compared with names in the unexpanded netlist (LAYOUT NETLIST
HIERARCHY ALL). This extra letter ensures that the generated netlist is compatible
with SPICE readers and that the generated names can all be easily mapped to regular
Calibre hierarchical names by simply removing the first letter. The extra letter is applied
within all cells (those that have expanded placements as well as those that do not).
.SUBCKT TOP 14 13
M0 13 4 5 13 p L=3e-06 W=1.3e-05 $X=47000 $Y=-2000
M1 3 2 14 14 n L=1e-06 W=9e-06 $X=-52000 $Y=-35000
M2 5 4 14 14 n L=2e-06 W=1e-05 $X=49000 $Y=-42000
X3 14 13 CELL_1 $T=-104000 -58000 0 0 $X=-108000
$Y=-76000
.ENDS
SUBCKT TOP 14 13
MM0 13 4 5 13 p L=3e-06 W=1.3e-05 $X=47000 $Y=-2000
MM1 3 2 14 14 n L=1e-06 W=9e-06 $X=-52000 $Y=-35000
MM2 5 4 14 14 n L=2e-06 W=1e-05 $X=49000 $Y=-42000
MX3/M0 X3/11 X3/1 X3/10 6 p L=1e-06 W=1.8e-05 $X=3000 $Y=9500
MX3/M1 X3/9 X3/1 X3/8 1 n L=1e-06 W=1.8e-05 $X=3000 $Y=-10500
XX3/X2 X3/23 13 X3/24 14 X3/26 CELL_2 $T=0 -22000 0 0 $X=-40000
$Y=-102000
.ENDS
See the LAYOUT NETLIST HIERARCHY command for more details on types of
flattening available.
The principal CCI command of interest in the PDSP flow is LAYOUT SEPARATED
PROPERTIES WRITE. It generates a file containing netlist elements with separated properties.
The format is discussed under “Separated Properties File Format.” The procedure for
calculating PDSP properties is discussed under “Writing PDSP Properties in CCI” on page 268.
Commands to configure and write a backannotated netlist using CCI netlist writer include the
following.
2. (Optional) Derive DFM Property layers that contain all simulation properties you are
interested in, similar to this:
nsd_prop = DFM PROPERTY nsd
[ A = AREA( nsd ) ]
[ P = PERIM( nsd ) ]
These layers must interact with pin layers for the devices. If you do not perform this
step, then you will typically assign DFM properties to the seed layers of devices.
3. Write Device statements in your rules that use the layers from Step 2 as annotation
auxiliary layers. Include the standard property computation block and device annotation
program block as follows:
device mn(n) ngate ngate(g) nsd(s) nsd(d) pwell(b)
[ PROPERTY L, W
L = perimeter_outside(ngate,nsd) * 0.5
W = perimeter_co(ngate,nsd) * 0.5
]
<nsd_prop>
[
PROPERTY AS, AD, PS, PD
AS = DFM_NUM_VAL( nsd_prop, A, s ) * UNIT_LENGTH() * UNIT_LENGTH()
AD = DFM_NUM_VAL( nsd_prop, A, d ) * UNIT_LENGTH() * UNIT_LENGTH()
PS = DFM_NUM_VAL( nsd_prop, P, s ) * UNIT_LENGTH()
PD = DFM_NUM_VAL( nsd_prop, P, d ) * UNIT_LENGTH()
]
When writing these, ensure the device type/subtype combinations are unique to these
Device statements. Also, ensure that no other Device statements have annotation
program blocks that share the same seed layers as these statements.
An alternative to using UNIT_LENGTH() for scaling is to set Unit Length 1 in the LVS
rules.
4. Run circuit extraction:
calibre -spice layout.sp rules
If there are any problems indicated in the transcript or circuit extraction report, fix them
and re-run this step.
Save it as pdsp_script.
6. Run the Query Server:
calibre -query svdb < pdsp_script
If there are any ERROR or NOK responses, fix the problems and re-run this step.
Results
The cci.netlist file contains the customized SPICE netlist for downstream tool use. It lacks the
PDSP properties. The cci_props.data file contains a netlist with the PDSP properties.
Related Topics
Customized Files for Pushdown Backannotation
Separated Properties File Format
A generic, user-defined MOS device can only be formed during device recognition from a
Device statement that satisfies all of the following conditions:
• The Device statement must contain one of each of the following pins, in any order: G, S,
D.
• The S and D pins must be swappable.
• There must be only one swap group in the Device statement; that is, no other pins
besides S/D can be swappable with any other pin.
• There can be any number of additional pins specified in the Device statement.
• There can be any number of auxiliary layers specified.
• The Device statement can use any user-defined element name and any model name
(model name is optional).
The following Device statement is interpreted as a generic user-defined MOS device. The
appropriate swapping is performed during device pushdown:
Properties that are not separated, but are used in LVS comparison, appear in a comment-coded
section like this in the file:
For generic user-defined MOS devices, built-in swappable properties (AS/AD, PS/PD and so on
— the same set supported for built-in MOS—are supported, when present.
When S/D pins are swapped during pushdown, these property values are swapped just as with
built-in MOS devices.
LVS also detects other generic devices. Fully generic swappable user devices can only be
formed during Calibre device recognition from a Device statement that satisfies all of the
following conditions:
• The Device statement must contain exactly two pins of any name that are swappable
with one another.
• There must be only one swap group in the Device statement; that is, no other pins
besides the pair satisfying the first requirement can be swappable with any other pin.
• There can be any number of additional pins specified in the Device statement.
• There can be any number of auxiliary layers specified.
• The Device statement can use any user-defined element name and any model name
(model name is optional).
The following Device statement is interpreted as a fully generic swappable user device. The
appropriate swapping is performed during device pushdown:
Format
Pin locations are written in a format similar to the following. Note the $PIN_XY field:
Parameters
• device
The name of a device.
• n
A non-negative integer signifying the ordinal index of the device.
• $PIN_XY=<x1>,<y1>,<x2>,<y2>,…,<xN>,<yN>
$PIN_XY= followed by comma-separated numbers, which represent the lower-left and
upper-right vertices of pins (possibly swapped). The order of the coordinates follows the
pins of the corresponding netlist device element.
• $X=<x>
$X= followed by a number in user units representing the x-coordinate of the device body.
By default, it is the lower-left vertex. It can also be the center if LAYOUT NETLIST
DEVICE LOCATION CENTER is specified.
• $Y=<y>
$Y= followed by a number in user units representing the y-coordinate of the device body.
By default, it is the lower-left vertex. It can also be the center if LAYOUT NETLIST
DEVICE LOCATION CENTER is specified.
• $D=<n>
$D= followed by a non-negative integer. The integer gives the ordinal of the Device
statement that was used in the rule file. A 0 means the first Device statement.
Examples
* Calibre Connectivity Interface Layout netlist
* Calibre VERSION: v2014.1 Mon Jan 6 12:44:50 PST 2014
* Type: SPICE
* Hierarchy: AGF
* Empty cells: YES
* Trivial pins: YES
* Device pin locations: NO
* String Properties: YES
* Primitive device subckts: NO
* HSPICE capacitors/resistors: NO
* HSPICE user devices: NO
* Comment Properties: NO
* Net name type: NONE
* Instance name type: LAYOUT
* Device location: CENTER
* Filter devices: (all)
* Device lowercase: NO
* Device templates: YES
* Separated properties: NO
* Calibre pushdown separate-properties (back-annotation) data
***************************************
*
* These lvs-actionable properties, indexed by DEVICE element(model) will
be kept in the netlist:
*
* KEEP_PROP_BEGIN
* KEEP_PROP mn L W
* KEEP_PROP mp L W
* KEEP_PROP_END
*
.SUBCKT nand
M0 as=1.075e-10 ad=1.25e-10 ps=5.075e-05 pd=5.25e-05
$PIN_XY=6875,61000,5125,61000,5125,61000,5125,61000 $X=6000 $Y=61000 $D=1
M1 as=1.25e-10 ad=1.075e-10 ps=5.25e-05 pd=5.075e-05
$PIN_XY=14875,61000,13125,61000,13125,61000,13125,61000 $X=14000 $Y=61000
$D=1
M2 as=8.4375e-11 ad=1.0125e-10 ps=4.125e-05 pd=4.35e-05
$PIN_XY=6625,21500,5375,21500,5375,21500,5375,21500 $X=6000 $Y=21500 $D=0
.ENDS
***************************************
.SUBCKT CellA
* nothing transcripted
.ENDS
***************************************
.SUBCKT inv
M0 as=1.075e-10 ad=1.075e-10 ps=5.075e-05 pd=5.075e-05
$PIN_XY=6875,61000,5125,61000,5125,61000,5125,61000 $X=6000 $Y=61000 $D=1
M1 as=8.4375e-11 ad=8.4375e-11 ps=4.125e-05 pd=4.125e-05
$PIN_XY=6625,21500,5375,21500,5375,21500,5375,21500 $X=6000 $Y=21500 $D=0
.ENDS
***************************************
.SUBCKT CellB
* nothing transcripted
.ENDS
***************************************
.SUBCKT TOPCELL
The LNN file is generated by LAYOUT NAMETABLE WRITE together with the LAYOUT
NETLIST NAMES NONE command. The LNN file is used with the GDS WRITE AGF file to
correlate net numbers in the AGF file and customized SPICE netlist to the texted layout net
names.
To generate a Layout Netlist Names file, your rules file must include a Mask SVDB Directory
statement with the NETLIST, GDSII, or CCI option.
A basic script for generating all CCI files needed for downstream flows is discussed under
“Generating CCI Output Files” on page 304.
This file is used in conjunction with the AGF file produced by GDS WRITE and a customized
netlist produced by LAYOUT NETLIST WRITE.
.SUBCKT TOP
X0 net_A ICV_1
.ENDS
the net AAA in ICV_1 connects upward to net_A in cell TOP while nets BBB and CCC do not
extend upward. In the LNN file, the nets BBB and CCC are represented while AAA is not:
% TOP
net_A 1
X0/BBB X0/1
X0/CCC X0/2
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Acknowledgments
OK., NOK(33), ERROR(102), ERROR(103), ERROR(130)
The command may generate warnings as it executes. These transcript to the standard out and are
prefixed by the string WARNING.
Examples
The following example shows output using the default LAYOUT NETLIST HIERARCHY
setting and the AGF setting.
Format
General form:
# SVDB: header_line
# SVDB: header_line
...
# SVDB: header_line
% cell_name pin_count
number name
number name
...
...
The file begins with a number of SVDB header lines indicated with pound characters (#).
Following that, there is a section for each cell in the layout hierarchy (not just corresponding
cells or hcells, but all cells). The first line in each section consists of a percent (%) sign, a space,
the cell name, a space, and finally the number of pins of the cell. If the cell name starts with a
dollar sign ($), the SPICE name (with prefix underscores) is included after the pin count. The
format is this:
% cell_name pin_count
Each of the following lines represents a net within the current cell and consists of the net
number (local to the cell), a space, and the user-specified net name. The format is this:
number name
Only texted nets have entries in the Layout Netlist Name file.
Parameters
• % cell_name
A % character followed by the name of a cell.
• pin_count
Integer specifying a pin count.
• spice_compatible_cell_name
Alternate name of a cell for names that start with $. This name complies with SPICE naming
conventions as $ indicates a comment.
• number
An integer corresponding to a net number. The net number is cell-specific.
• name
A name of a net.
Examples
# SVDB: ....
....
# SVDB: ....
% NAND 5
4 I1
5 I2
6 OUT
% TOP 0
2 VDD
3 VSS
17 CLOCK
% $VIA2 1 [__$VIA2]
Related Topics
Customized SPICE Netlist Format
Annotated GDSII File (AGF) Format
A basic script for generating all CCI files needed for downstream flows is discussed under
“Generating CCI Output Files” on page 304.
HIERARCHY SEPARATOR
CCI command.
Specifies the hierarchy delimiter character.
Usage
HIERARCHY SEPARATOR separator_character
Arguments
• separator_character
A required single character that is used for a hierarchy delimiter. The following characters
may be used for separator_character:
~!#$%^&*+‘=:;,.?|/
Description
Changes the hierarchical separator reported in cross-reference files, annotated GDS files, and
layout netlist files from the default “/” character to a specified separator character.
This command is useful in design flows that use the “/” character as a literal character in SPICE
names through the LVS Spice Slash Is Space NO rule file specification statement. The literal
forward slash “/” remains as is, but the hierarchy separators are changed to
separator_character. For example, the following SPICE netlist generates a file output using the
literal “/” character when used in conjunction with LVS Spice Slash Is Space NO:
The SVDB database must be from Calibre version 2003.4 or later. This command is not
available to SVDB databases generated by a flat LVS run. This command does not affect the
normal operation of non-CCI Query Server commands.
Acknowledgments
OK., ERROR(122), ERROR(153), ERROR(155)
Related Topics
Cross-Reference System File Commands
HIERARCHY WRITE
CCI command.
Writes a Layout or Source Placement Hierarchy file.
Usage
{LAYOUT | SOURCE} HIERARCHY WRITE filename [OMN]
Arguments
• LAYOUT
Keyword that specifies to write a Layout Placement Hierarchy (LPH) file.
• SOURCE
Keyword that specifies to write a Source Placement Hierarchy (SPH) file.
• filename
A required pathname to an output file. Directories in a pathname are created if they do not
exist.
• OMN
An optional keyword that specifies original model names are written.
Description
Writes a LAYOUT or SOURCE Placement Hierarchy (LPH or SPH) file describing the
original netlist placement hierarchy to the specified filename.
Details of the Placement Hierarchy format are provided under “Placement Hierarchy (LPH/
SPH) File Format” on page 294. A similar file is generated by Calibre when the Mask SVDB
Directory SLPH option is set in the rule file. In flat mode, this note is generated:
An empty file is generated when the command is used in FLAT XDB mode.
If OMN is used, the Mask SVDB Directory statement in the rule file must have the OMN option
specified. Original model names are names of devices as they appear in an input SPICE netlist
before any processing of *.EQUIV statement and LVS Map Device substitutions. See “Example
2 — Original model name (OMN) in the SPH and LPH files” on page 295 for details of the
output.
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Acknowledgments
OK., NOK(33), ERROR(101), ERROR(102), ERROR(130), NOTE
Related Topics
Cross-Reference System File Commands
If the optional LAYOUT_OMN or SOURCE_OMN keywords are specified, then the Mask
SVDB Directory statement in the rule file must have the OMN option specified. Original model
names are names of devices as they appear in an input SPICE netlist before any processing of
*.EQUIV statement and LVS Map Device substitutions. See “Original Model Name
Information (OMN) in IXF File” on page 299.
If BOX is specified, then matched LVS Box cells are written in the output in this form:
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Acknowledgments
OK., NOK(33), ERROR(101), ERROR(102), ERROR(122)
Related Topics
Cross-Reference System File Commands
The output of this command is often preferred to the default NET XREF WRITE output. The
advantage of the LNXF format is that it provides additional net cross reference detail to
downstream tools for all nets in the layout without the downstream tool having to follow
connectivity up and down through cells in order to find valid cross reference nets. Details of the
file format are provided under “Layout Net Cross-Reference File (LNXF) Format” on page 301.
If you want nets that have been combined during comparison (due to various LVS comparison
features like the LVS Filter SHORT keyword and open circuit error recovery) shown with
representative nets paired together followed by the combined nets shown only with the
representative net from the other design, then use LAYOUT NETLIST NAMES LAYOUT.
This gets you the same net grouping as an NXF file, which is desirable for certain flows.
If LAYOUT NETLIST NAMES NONE is set, layout nets are identified by net number. If the
LAYOUT or SOURCE option is set, layout nets are identified by name if available, else by
number. Note that the NONE option does not provide the NXF format discussed in the previous
paragraph. If the NONE option is used, then the following message is written to the transcript:
NOTE: Backward compatibility mode used for LNXF file generation: LAYOUT NETLIST
NAMES NONE was set.
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information. The PHDB must be created
with Calibre versions 2009.2 and later.
Acknowledgments
OK., NOK(33), ERROR(101), ERROR(102)
Related Topics
Cross-Reference System File Commands
A net may have no correspondence due to discrepancies in the design. These discrepancies can
be unmatched nets or graph transformations like filtering, reduction, or logic injection. These
unmatched nets are not written to the output by default. The UNMATCHED option changes
this.
A net specified by the UNMATCHED command could have a trailing “R” representing the net
was removed during device reduction. Furthermore, the set of characters “$_” indicates there is
no matching device on a particular side of the comparison. The following example indicates that
net 333 in the source netlist was removed due to device reduction and that there is no
corresponding net in the layout:
0 $_ 0 333 R
A trailing “U” in the NXF file indicates that a net is unmatched and has been reported during
comparison. In the following example, net 777 is unmatched in the source netlist:
0 777 0 $_ U
Requires a Calibre Connectivity Interface license in addition to a Calibre Query Server license.
Refer to the Calibre Administrator’s Guide for license information.
Acknowledgments
OK., NOK(33), NOK(62), NOK(63), NOK(64), NOK(65), ERROR(101), ERROR(102)
Related Topics
Cross-Reference System File Commands
XREF XNAME
CCI Command.
Configures the subcircuit call format of cross-reference file commands.
Usage
XREF XNAME {LAYOUT | SOURCE} [ON | {OFF [BOX]}]
Arguments
• LAYOUT
Keyword that causes layout names to be configured. This option is used by default.
• SOURCE
Keyword that causes source names to be configured. This option is used by default.
• ON
An optional keyword that causes the normal hierarchical pathname format used in LVS and
elsewhere in the Query Server to be output. This is the default.
• OFF
An optional keyword that causes subcircuit calls in paths to drop the leading X character.
This does not include primitive subcircuit calls or calls to LVS Box cells.
• BOX
An optional keyword that causes LVS Box cell subcircuit calls to drop the leading X
character.
Description
Configures the hierarchical pathname format for the output of the following commands:
When ON is specified (the default when the command is used), this command produces the
standard hierarchical pathname format used elsewhere in Calibre nmLVS and the Query Server
for the aforementioned commands. Specifically, when operating on SVDB databases created by
hierarchical circuit comparison, names of SPICE subcircuit calls include the preceding
subcircuit-call designator “X”, like this:
0 a/Xb
Specifying OFF causes subcircuit call names to appear without preceding X characters, like
this:
0 a/b
except for primitive subcircuit call names, which retain the X prefix. (Primitive subcircuit calls
are those referencing empty subcircuits, user-defined devices, or LVS Box cells. Note that
primitive subcircuit call names can only appear at the end of a hierarchical pathname or as the
only element in a pathname).
The BOX option is used with OFF and causes LVS Box subcircuit call names to appear without
the preceding X character. Other primitive subcircuit names have the X character, as usual.
Acknowledgments
OK., ERROR(122)
Related Topics
Cross-Reference System File Commands
Note that this identification scheme is somewhat different from the one used in the AGF (GDS
WRITE) and the customized layout netlist (LAYOUT NETLIST WRITE). In particular, note
that all nets in the AGF and the customized layout netlist are identified solely by their numbers.
The correspondence between numbers and user-specified names, for texted layout nets, is
provided in the Layout Netlist Name file (LAYOUT NAMETABLE WRITE).
# SVDB: header_line
# SVDB: header_line
…
# SVDB: header_line
% cell_name pin_count
instance_identifier cell_or_device_name pin_count
instance_identifier cell_or_device_name pin_count
…
%cell_name pin_count
instance_identifier cell_or_device_name pin_count
instance_identifier cell_or_device_name pin_count
…
Each placement hierarchy file begins with a number of SVDB header lines indicated with a
pound sign (#). The header format is described under “SVDB Header Description” on page 302.
Following that there is a section for each cell in the hierarchy (all cells). The first line in each
section consists of a percent (%) sign, a space, the cell name, a space, and finally the number of
pins of the cell. The format is this:
% cell_name pin_count
Each of the following lines represents a cell instance (placement) or device instance within the
current cell and consists of the instance identifier (local to the cell), a space, the name of the cell
or device being instantiated, a space and the number of pins on the instance. The format is this:
Note that no connectivity information is present other than pin counts. Also, cells that do not
contain devices or placements of other cells (no vias) are not represented. Note also that
parameterized subcircuits in SPICE are flattened in this listing.
Parameters
• % cell_name
A % character followed by the name of a cell.
• pin_count
Integer specifying a pin count.
• instance_identifier
A string that defines a SPICE instance.
• cell_or_device_name
The name of the instance. For devices, this is given for M elements but not for others.
Examples
Example 1
# SVDB: ...
...
# SVDB: ...
% NAND 5
M1 MP 4
M2 MP 4
M3 MN 4
M4 MN 4
%PARMSUB 3
CO 2
C1 2
% TOP 0
X1 NAND 5
X2 NAND 5
X3/X0 PARMSUB 3
The XREF XNAME command configures the use of the “X” character on subcircuit calls in
these tables. When XREF XNAME is set to OFF, the listing for cell TOP becomes this:
% TOP 0
1 NAND 5
2 NAND 5
3/0 PARMSUB 3
Example 2 — Original model name (OMN) in the SPH and LPH files
The SPH and LPH files can be generated with original model name information. Original model
names are model names of devices as they appear in an input SPICE netlist before any
processing of *.EQUIV substitutions. This information is also available through the Instance
Cross-Reference (IXF) file (see “Original Model Name Information (OMN) in IXF File” on
page 299). This capability is enabled through the Mask SVDB Directory OMN option and the
HIERARCHY WRITE OMN option.
To generate the information in the SPH/LPH files, use the OMN option to the HIERARCHY
WRITE commands:
This information is written into the placement hierarchy report in the following form:
where mod is the original model name of the instance. The square brackets are not part of the
output. For example:
Format
General form:
# SVDB: header_line
# SVDB: header_line
…
# SVDB: End of header.
% layout_cell layout_pin_count source_cell source_pin_count
layout_id layout_path source_id source_path
layout_id layout_path source_id source_path
…
% layout_cell layout_pin_count source_cell source_pin_count
layout_id layout_path source_id source_path
layout_id layout_path source_id source_path
…
Each hierarchical cross-reference file begins with a number of SVDB header lines indicated
with a pound sign (#). The remainder of each file contains sections for individual
correspondence cells or hcells. These cells exist in both layout and source netlists. There is one
section for each hcell. Each hcell section begins with a percent sign (%) line specifying the
layout cell name and pin count and the corresponding source cell name and pin count. This is
followed by lines of corresponding layout-source elements in the cell.
The layout_path and source_path fields contain hierarchical pathnames rooted in the particular
hcell that owns them. Note that the IXF and NXF files produced by the Query Server always
have layout ID and source ID values of 0. More information about individual instance and net
lines is provided in the following sections.
The layout_path and source_path fields identify corresponding layout and source instances.
Instances are identified by hierarchical pathnames rooted in the particular hcell to which this
object belongs. An instance pathname consists of zero or more cell instance identifiers,
followed by a device instance identifier, separated by “/” characters. The layout_id and
source_id fields are for internal use and should be ignored. In particular, note that the layout_id
field does not contain layout instance numbers. For example:
% ALU 25 ALU 25
0 X2/X3/M1 0 M1
0 D2 0 X3/X1/D8
Reduced devices (such as those created by series or parallel device reduction) are represented in
the file by all their original constituents. The original devices appear in consecutive lines in the
file, with the corresponding device from the other design repeated in each line. When a reduced
layout device is matched to a reduced source device, then all the original layout devices are
listed in consecutive lines on the left, with a representative original source device repeated on
the right; all the other original source devices are listed in consecutive lines on the right, with a
representative original layout device repeated on the left. The representative devices are chosen
arbitrarily. Reduced layout devices (other than the representative) are indicated with the string
SL, which stands for smashed layout. Reduced source devices (other than the representative) are
indicated with the string SS, which stands for smashed source. For example:
0 R10 0 R1
0 R11 0 R1 SL
0 R10 0 R2 SS
0 R10 0 R3 SS
In this example, layout devices R10 and R11 were reduced to a single device and correspond to
source devices R1, R2, and R3 that were also reduced to a single device. Layout device R10 and
source device R1 were chosen as representatives.
Capacitor and resistor devices with swapped positive and negative pins are indicated with the
trailing letter X. For example:
0 RR1 0 RRR1 X
0 CC1 0 CCC1 X
MOS devices with swapped source and drain pins are indicated with the trailing letter X. For
example:
0 M10 0 M1 X
The X indicates that the source pin of the layout device corresponds to the drain pin of the
source device and vice-versa. Lines that represent reduced devices (SL or SS) have correct X
values as well, with respect to the two devices reported on that particular line. LVS logic gates
are represented by the original transistors that form them. All matched transistors in the layout
gate are listed, along with the corresponding transistors in the source gate.
The XREF XNAME command configures the use of the X character on subcircuit calls in these
tables. When XREF XNAME is set to OFF, flattened instance names are changed. The
following transistor (M) and User Defined (X) primitive devices normally represented as this:
0 X0/X0/M0 0 XA/XA/MA
0 X0/X1/X1 0 XA/XB/XB
0 0/0/M0 0 A/A/MA
0 0/1/X1 0 A/B/XB
0 X0/X2/X2 0 XA/XC/XC
0 0/2/2 0 A/C/C
If the INSTANCE XREF WRITE BOX keyword is specified, the LVS Box cells that are
matched in layout and source are annotated like this immediately after the SVDB header:
This information is generated similarly to the OMN information generated in the SPH/LPH files
(see “Example 2 — Original model name (OMN) in the SPH and LPH files” on page 295).
The OMN option of the Mask SVDB Directory rule file statement must be used.
This information is written to the instance cross-reference report in the following form:
where lmod and smod are layout original model name and source original model name
respectively. The square brackets and vertical bar are not part of the output. For example:
The layout_path and source_path fields identify corresponding layout and source nets. Nets are
identified by hierarchical pathnames rooted in the particular hcell to which this object belongs.
A net pathname consists of zero or more cell instance identifiers, followed by a net identifier,
separated by “/” characters. The layout_id and source_id fields are for internal use and should
be ignored. In particular, note that the layout_id field does not contain layout net numbers. For
example:
% ALU 25 ALU 25
0 X2/X3/7 0 SIG1
0 13 0 X3/X1/8
In certain situations, Calibre nmLVS may match several layout nets to one source net, or several
source nets to one layout net, or a group of several layout nets (together) to a group of several
source nets. This may occur, for example, in split gate reduction or when Calibre nmLVS
detects an open circuit or short circuit discrepancy. In these cases, a representative net is chosen
for the layout side and a representative net is chosen for the source side. The representative pair
appears in the net cross-reference file. In addition, each of the remaining layout nets appears
with the source representative, and each of the remaining source nets appears with the layout
representative. In the following example, layout nets 1, 2, and 3 were matched (as a group) to
source nets n1, n2, and n3.
0 1 0 n1
0 1 0 n2
0 1 0 n3
0 2 0 n1
0 3 0 n1
Note that some nets are unmatched even when LVS is successful. Examples of nets that are
never matched are nets internal to certain types of logic gates formed by Calibre nmLVS and
nets removed because of series device reduction. Unmatched nets do not appear in the net cross-
reference file.
The XREF XNAME command configures the use of the “X” character on expanded subcircuit
calls in these tables. When XREF XNAME is set to OFF, expanded net names are changed as
follows:
0 X0/X0/0 0 XA/XA/1
0 X0/X1/N 0 XA/XB/N
0 0/0/0 0 A/A/1
0 0/1/N 0 A/B/N
If the NET XREF WRITE BOX option is specified, LVS Box cells in the NXF file are reported
in this form:
CCI produces an exact record of the matches that it made during the LVS comparison phase.
CCI does not report nets that were not compared. Transformations are controlled by the rule file
and CCI reflects what the rule file contains.
Logic injection for the CCI and backannotation flow can cause nets to “disappear” because
injected components have taken the place of individual devices. If the absence of the original
nets is a problem, then the rule file used for CCI output should be set to LVS Inject Logic NO.
However, for LVS comparison, YES is the preferred setting (and the default) for performance
reasons.
• Because the cross-reference entries are generated directly from the PHDB, either layout
net names or layout net numbers are available through the LAYOUT NETLIST
NAMES setting in the CCI interface. The LNXF allows creation of a flow that does not
need to generate the Layout Netlist Names (LNN) file because net numbers in the
Annotated GDSII File (AGF) file correspond to net numbers in the LNXF file generated
with LAYOUT NETLIST NAMES NONE.
• This command provides a super-set of the cross-reference information that is provided
by the NET XREF WRITE command. Specifically, it adds cross-reference information
for some nets that have a valid cross reference in one cell and extend upward in the
hierarchy but are not considered relevant for LVS comparison purposes because they are
not connected to devices outside of the cell.
When LAYOUT NETLIST NAMES LAYOUT is used, the LNXF file handles nets that have
been combined during comparison (due to various LVS comparison features like the LVS Filter
SHORT keyword and open circuit error recovery) by showing representative nets paired
together followed by the combined nets shown only with the representative net from the other
design. For example, if layout nets L1, L2, and L3 are all combined and matched with similarly
combined source nets S1 and S2, the relevant section of the LNXF file appears as follows:
0 L1 0 S1
0 L2 0 S1
0 L3 0 S1
0 L1 0 S2
This is the same as the NXF file format and can be desirable for certain flows.
If LAYOUT NETLIST NAMES NONE is used, the LNXF file follows this convention only for
combined source nets. Combined layout nets are not included in the customary grouping order,
but repeated for the same group of source nets for each layout net, like this:
0 L1 0 S1
0 L1 0 S2
0 L2 0 S1
0 L2 0 S2
0 L3 0 S1
0 L3 0 S2
The first line in the header identifies the type of file and its format version, and is the only line
which differs between files representing the same design. Here are the first lines from each of
the four different files mentioned previously:
The second line in the header gives the name of the top (primary) cell of the design. The third,
fourth, and fifth lines identify the rule file, layout GDSII file, and source netlist file used in
creating the file. The entries on these lines are the type of file (Rules, GDSII, or SNL,
respectively, the latter standing for source netlist) followed by a checksum for the file (or -0 if
no checksum is present), the pathname to the file at the time the information was captured (or
“(none)” if a pathname is not present) and a time stamp of the file which was used (or “(none)”
if a time stamp is not present). A time stamp, when specified, is of the form:
Parameters
• % layout_cell
A % character followed by the name of a layout cell.
• layout_pin_count
Integer specifying a pin count for the layout cell.
• source_cell
The name of a source cell corresponding to the layout_cell.
• source_pin_count
Integer specifying a pin count for the source cell.
layout_id layout_path source_id source_path
• layout_id
An internally assigned integer to identify the layout object.
• layout_path
The netlist path to the layout object.
• source_id
An internally assigned integer to identify the source object.
• source_path
The netlist path to the source object.
• BOX
String that indicates matched LVS Box cells. This appears in IXF files when the
INSTANCE XREF WRITE BOX keyword is specified. This appears in NXF files when the
NET XREF WRITE BOX keyword is specified.
• LOMN=lmod
LOMN= followed by an original layout model name. This appears in IXF files when the
INSTANCE XREF WRITE LAYOUT_OMN keyword is used.
• SOMN=smod
SOMN= followed by an original source model name. This appears in IXF files when the
INSTANCE XREF WRITE SOURCE_OMN keyword is used.
• SL
String that indicates the layout device participated in reduction.
• SS
String that indicates the source device participated in reduction.
• X
String that indicates a device that has undergone pin swapping.
Related Topics
Cross-Reference System File Commands
Prerequisites
• A Mask SVDB Directory generated with the CCI option during a hierarchical
comparison run.
• A Calibre Query Server and Calibre Connectivity Interface license.
• Ensure an output directory exists in your working directory.
Procedure
1. In a text editor, create the following file:
#################################
##### Generate the Annotated GDSII File
#################################
### set the value used for the PROPATTR record in GDSII BOUNDARY
### element to indicate node id
gds netprop number 1
### set the value used for the PROPATTR record in GDSII SREF
### element to indicate placement name
gds placeprop number 2
### set the value used for the PROPATTR record in GDSII BOUNDARY
### element to indicate device name
gds devprop number 3
### write out the gds map showing layer name to number mappings
response file output/gds_map
# map device layers in the rule file.
gds map
response direct
#################################
##### Generate the Layout Netlist
#################################
### include trivial pins and empty cells in the layout netlist
layout netlist trivial pins YES
layout netlist empty cells YES
#####################################
##### write the net to name mapping file (LNN)
#####################################
layout nametable write output/svdb.lnn
#####################################
###### Generate Cross Reference Information
#####################################
### write the source and layout placement hierarchy files (sph,lph)
source hierarchy write output/svdb.sph
layout hierarchy write output/svdb.lph
#####################################
##### Generate the Port Table File
#####################################
### write the port table
port table write output/svdb.ports
quit
4. As an alternative to the script in Step 1, you can use this one for writing out device seed
shapes having net ID properties or instance name properties and additional files:
# Define property numbers in annotated GDSII
GDS NETPROP NUMBER 5
GDS PLACEPROP NUMBER 6
GDS DEVPROP NUMBER 7
# Output seed polygons with either net ids or with instance names
GDS SEED PROPERTY DEVICE ORIGINAL
Prerequisites
• Ensure that you have access to a Calibre Connectivity Interface license, as well as
Calibre Query Server, Calibre nmLVS, and Calibre nmLVS-H licenses. Refer to the
Calibre Administrator’s Guide for license information.
Procedure
1. To generate a flat netlist consisting only of a specific diode device, D(probe), using
source net names, with device locations at the center of the seed shape, use the following
steps:
2. Use the following rule file statement to enable full CCI functionality within the PHDB:
MASK SVDB DIRECTORY "svdb" CCI
5. After getting the “OK: Ready to serve.” prompt, issue the following commands:
FILTER DEVICENAMES D(probe)
LAYOUT NETLIST HIERARCHY FLAT
LAYOUT NETLIST DEVICE LOCATION CENTER
LAYOUT NETLIST NAMES SOURCE NETS
LAYOUT NETLIST WRITE probe.net
TERMINATE
Results
This creates the desired netlist in the file probe.net. This is used in conjunction with an AGF file
produced by the GDS WRITE command and an LNN file produced by the LAYOUT
NAMETABLE WRITE command.
Prerequisites
• LVS connectivity extraction rule file.
• The Mask SVDB Directory CCI option is used in the rule file.
• Calibre nmLVS-H, Calibre Query Server, and Calibre Connectivity Interface licenses.
Procedure
1. Run LVS extraction:
calibre -spice lay.net rules
2. Use the following commands to write an AGF file along with the SVRF layer and
datatype map:
calibre -query svdb
gds svrf map yes
response file gds_map
gds map
response direct
gds write svdb.agf
quit
3. Load the svdb.agf file into Calibre DESIGNrev and load the input layer name
information using Layer > Load Input SVRF Layer Names.
Results
The svdb.agf file contains layers mapped by the SVRF rule file. When the SVRF layer names
are loaded, you can see the corresponding named layers in the AGF.
The gds_map file shows the layer mapping information. Together, the two files allow you to see
the connectivity and device layers.
Prerequisites
• LVS connectivity extraction rule file.
• The Mask SVDB Directory CCI option is used in the rule file.
• Calibre nmLVS-H, Calibre Query Server, and Calibre Connectivity Interface licenses.
Procedure
1. Run hierarchical connectivity extraction as usual, for example:
calibre -spice lay.net -lvs -hier -hcell cells rules
Results
The SPICE netlist fuse.net contains the R(FUSE) devices.
The Query Server Tcl shell is a separate component of the Query Server. It operates on Standard
Verification Database (SVDB) and Persistent Hierarchical Database (PHDB) data generated
from a Calibre nmLVS run using the Mask SVDB Directory QUERY specification statement.
To use the Query Server Tcl shell, you must have the following:
The Tcl shell responds to Query Server Tcl commands, general Tcl commands, and many shell
commands from the host operating system.
Initialization File
You can specify an initialization file for the Tcl shell to source on startup. The shell searches for
the initialization file in this order:
calibre -qs
Calibre Query Server Tcl Shell mode.
You can invoke the Tcl shell from your usual shell session. You can issue commands directly at
the command line prompt or in batch mode using a Tcl command file.
Usage
calibre -qs [-cb] [ -turbo [n] [-turbo_all] ] [-svdb svdb_dir] [-rev revname] [top_cell]
[-exec command_file]
Arguments
• -qs
A required argument that invokes the Tcl shell.
• -cb
Specifies to use the Calibre Cell/Block license. Refer to the Calibre Administrator's Guide
for license information.
• -svdb svdb_dir
An argument set that loads a SVDB database.
• top_cell
An optional argument that indicates the top-level cell. This is required to prevent ambiguity
when there is more than one top-level cell in the SVDB. To prevent ambiguity of the
options, it is also required when you specify -svdb with -exec.
• -rev revname
An optional argument set that specifies the revision that Query Server Tcl shell will load
from the command line.
• -exec command_file
An optional argument set used to pass an existing Tcl command script to the Query Server
Tcl shell. The command_file script is run and the Tcl shell exits. If you use the -svdb option
with -exec, then you must specify the top_cell argument also. This prevents “-exec” from
being interpreted as the top cell name.
• -turbo [n]
An optional argument set that enables multithreaded parallel processing for interactive short
isolation only. The value of n specifies the number of CPUs to use. If you do not specify n,
the application uses the maximum number of CPUs on the machine.
• -turbo_all
An optional argument used in conjunction with -turbo. When the number of CPUs specified
with -turbo are not available, the tool normally runs with fewer threads than requested. This
command line option causes the tool to exit if it cannot get the number of CPUs specified.
Description
Each Query Server Tcl session opens a database revision, performs queries or edits on the
revision, and ultimately closes the same revision or saves to a different revision. A database
revision is the collection of on-disk data for a specific session. By default, the command
qs::open_svdb -svdb svdb opens the original PHDB database revision in read-only mode.
Each revision can be in either one of two states: frozen or non-frozen. A frozen revision cannot
be modified but can serve as the starting point for new revisions. After opening a frozen
revision (such as the original revision), you can create an editable (read or write) revision using
dfm::create_rev. Alternatively, a previously saved revision can be opened using
qs::open_svdb -svdb svdb -rev rev_name.
To exit the Tcl shell, type qs::quit. Alternatively, you can type “exit” (without quotation marks)
or “exit -force” if you have made changes to the database.
Examples
Here is an example invocation:
...
-------------------------------------------------------------------------
-------------------------------------------------------------------------
--- CALIBRE::LVS QUERY SERVER
-------------------------------------------------------------------------
-------------------------------------------------------------------------
--------------------------------- READING PHDB --------------------------
#########################################################################
>
Related Topics
calibre -query
Tcl Basics
You should know some fundamental Tcl language ideas when using the Tcl shell.
• Tcl is case sensitive.
The core set of Tcl commands are all lowercase, as are the Query Server Tcl extensions.
• Order matters.
Subroutines must be listed before they are called. Statements within a Tcl procedure are
executed sequentially.
Also, the # must be the first character of the command. That means that the first line in
the following example is valid because it is preceded by a semicolon, but the third line is
not, because the second line ended with a backslash.
} ;# End loop
qs::inc short_itr \
# "increment iterator"
• Namespace considerations.
A namespace can be thought of as a library of commands with a particular prefix. Tcl
commands are often prefixed with namespace of the form “name::”. However, the
strings “qs::” and “short_db::” are not Tcl namespaces and cannot be imported.
Some YieldServer (dfm::) commands are enabled in the Query Server Tcl shell and
access data in the PHDB. These are documented in the Calibre YieldServer Reference
Manual.
• Iterators.
Iterators are Tcl objects that can be thought of as opaque lists. The internal structure of
an iterator is not generally predictable. Certain iterators can be incrementally stepped
through using a loop to access all the values. In some cases, an iterator may store only
one entry, in which case it cannot be incremented. It is important not to treat an iterator
as a string by using it in a string-related context. It is generally a good practice to test if
an iterator is empty.
The main difference between the Query Server commands (qs::) and the short database
commands (short_db::) is the latter do not require a short iterator to be created or incremented.
This simplifies short isolation programming. The qs:: commands require the creation of a short
iterator with several additional steps that creates additional overhead for the user. Whenever
possible, the short_db:: commands should be used in place of the qs:: command equivalents.
Prerequisites
• A hierarchical Calibre nmLVS connectivity extraction (calibre -spice) run has been
performed.
• An SVDB generated using Mask SVDB Directory SI.
• A Calibre Query Server license.
Procedure
1. Start the Query Server Tcl shell:
calibre -qs -svdb svdb
Session data is stored in a DFM database revision. This revision can be created
explicitly using dfm::create_rev or it is done implicitly when the session is saved.
2. Use the short_db::get_serial_number command to display the current serial number:
> short_db::get_serial_number
0
A serial number tracks a short in the Query Server Tcl shell. It replaces the need to
create a short iterator with the qs:: commands.
3. Attempt to localize the short by adding text to a layer with the short_db::add_text
command:
> short_db::add_text -sn 0 -label VSS -pt {12.0 47.0} -layer metal2
Added text 12 47 metal2
This new text object has added another text short to index 0.
5. Delete the text with the short_db::delete_text command:
> short_db::delete_text -sn 0 -label VSS -pt {12.0 47.0}
Deleted VSS at 12 47
The masking polygon removed part of metal2 in memory, which causes the short to
disappear.
8. Display the current change_set name with the short_db::get_change_set command:
> short_db::get_change_set
default
A unique change set is always active at any point in the session. The first change set is
always “default”. All short repairs database commands that affect the state of a short
(that is, adding and removing text or polygons) are associated with a change set.
9. Review the changes affecting the state of short serial number 0 within the change set
“default” with the short_db::show_change_set command:
> short_db::show_change_set -name default -sn 0
{0 1 {short_db::add_text -sn 0 -label VSS -layer metal2 -pt { 12.0
47.0 } }} {0 1 {short_db::delete_text -sn 0 -label VSS -pt { 12.0
47.0 } }} {0 1 {short_db::add_mask_polygon -sn 0 -layer metal2 -dbu
-cell_coordinates -ec { 3000 210000 25000 210000 25000 220000 3000
220000 } }}
11. Save the changes made to the current DFM database with the dfm::save_rev command:
> dfm::save_rev
Creating revision 1
Saving revision 1
13. The next portion of the example shows how to trace work that was done on the PHDB in
a previous revision. Open SVDB revision 1 with the qs::open_svdb command:
> qs::open_svdb -svdb svdb -rev 1
Opening database "svdb/TOP.phdb/db", revision 1
15. Use short_db::show_change_set to display the saved commands that get applied when
you move to a different short:
> short_db::show_change_set -all -name PGfixed
{0 1 {short_db::add_text -sn 0 -label VSS -layer metal2 -pt { 12.0
47.0 } }} {0 1 {short_db::delete_text -sn 0 -label VSS -pt { 12.0
47.0 } }} {0 1 {short_db::add_mask_polygon -sn 0 -layer metal2 -dbu
-cell_coordinates -ec { 3000 210000 25000 210000 25000 220000 3000
220000 } }}
The changes are as when the default change set was in effect.
16. Use short_db::get_status to recall the status of the short:
short_db::get_status
0
FIXED
You could now run short_db::isolate_shorts to determine if there are more shorts to fix.
17. Quit the session.
> quit
Prerequisites
• A complete Calibre nmLVS rule file.
• A Calibre Query Server license
Procedure
1. Add this statement to your rule file.
set overall_status 0
# Start out with overall status based on CORRECT compare status:
# Note that CORRECT statuses include 'CORRECT' and 'CORRECT ...'
# with some additional overall status info.
set printed_something 0
# Protect against dry-run
if { [ qs::extraction_summary_is_available ] } {
if { \
[ qs::write_lvs_extraction_summary_report_to_file $repfile ] } {
incr printed_something
}
}
# Run the report - use the summary interface to get the name of the
# LVS SUMMARY file we are writing to:
*/]
2. Run Calibre nmLVS with the complete Calibre nmLVS rule file.
Results
Results in the generated report appear similar to this:
================================================
=== XYZ Corp. GENERATED CUSTOM SUMMARY REPORT
===
# # ~ ~
# # x x
# @
# # ___
# # / \
Extraction Summary
------------------
Extraction Start Time: Wed Jan 25 10:47:15 2012
Extraction Finish Time: Wed Jan 25 10:47:16 2012
Circuit Extraction Report: qaout.lvs.lvs.rep.ext
Circuit Extraction SPICE Netlist: qaout.spiout
Short Circuit Count: 1
Comparison Summary
------------------
Comparison Start Time: Wed Jan 25 10:47:16 2012
Comparison Finish Time: Wed Jan 25 10:47:16 2012
LVS Comparison Report: qaout.lvs.lvs.rep
LVS Comparison Status: CORRECT.
# _ _
# * *
# # |
# # \___/
#
Some commands in Table 5-3 fulfill more than one role and appear as subsets of other
command types.
Administrative Commands
The administrative commands provide high-level control of the Query Server Tcl Shell.
Net Commands
The net commands query information about layout nets.
The qs:: commands provide a method of resolving shorts along with the short_db:: commands.
The latter set of commands is preferable in most circumstances. For more information on the
shorts repair database commands, see Table 5-9.
The short database family of commands has equivalent qs:: commands. Whenever possible, the
short database commands should be used in place of their qs:: equivalents.
Miscellaneous Commands
These commands issued in the Tcl shell provide access to various information.
Commands in the dfm:: scope are documented in the Calibre YieldServer Reference Manual.
The dfm:: family of commands is documented in the Calibre YieldServer Reference Manual.
qs::add_mask_polygon
Short isolation command.
Suppresses short isolation on a specified layer.
Usage
qs::add_mask_polygon -layer name -it short_iterator
-ec {x1 y1 x2 y2 … [{x1 y1 x2 y2 …}...]}
[-cell name] [-dbu] [-top_coordinates | -cell_coordinates] [-help]
Arguments
• -layer name
A required argument and layer name. In order to be used for short isolation, the layer must
appear in a rule file Connect statement.
• -it short_iterator
A required argument and short iterator name.
• -ec { x1 y1 x2 y2 … [{x1 y1 x2 y2 …}...]}
A required argument and Tcl list of lists of polygon vertex coordinates. Coordinates are
floating-point numbers in user units by default. At least two vertices must be specified. If
only two vertices are specified, they are interpreted as the lower-left and upper-right vertices
of a rectangle. Additional vertices may be specified to make polygons of any shape. Each
sub-list specifies a distinct polygon.
• -cell name
An optional argument and cell name that specify a cell in which to isolate shorts.
• -dbu
An optional argument that specifies database units are used. When this option is specified,
coordinates are integers.
• -top_coordinates
An optional argument that specifies the top-level coordinates are used. This is the default.
• -cell_coordinates
An optional argument that specifies the cell-level coordinates are used. The cell of the
current index location of the short iterator is used.
• -help
An optional argument that shows the command usage.
Return Values
For successful attachment, the following is returned:
Description
Creates mask polygons in memory that suppress short isolation on a specified layer and within
the areas of the specified mask polygons.
The -layer name option specifies the layer to mask for short isolation. Any portion of a name
layer that lies within the area of a mask polygon is ignored when using qs::isolate_short. The
layer specified using the name parameter must appear in a Connect statement in the rule file for
the layer to be masked for short isolation. Figure 5-2 illustrates how qs::add_mask_polygon
works.
The -it argument specifies a short iterator in which to generate mask polygons.
The -ec argument specifies mask polygon vertex coordinates. At least one list of polygon vertex
coordinates must be specified. Each coordinate list contains a set of x y values that specify
vertices. At least two pairs of x y coordinates must be specified for any vertex list.
If multiple mask polygons are specified and they touch or overlap, then they are merged into a
single polygon. Subsequently, the command behaves as if the merged polygon had been
specified. Specifying a layer that is not in a Connect statement is allowed, but does not do
anything useful.
The -cell option specifies the cell to mask for short isolation. When this option is used, the list of
coordinates given by -ec must be within the coordinate space of the cell. The masked polygon is
removed within all cell instances. This parameter has no interaction with -top_coordinates or
-cell_coordinates.
The -dbu option specifies that the given coordinates are in database units. When this option is
not specified, all coordinates are floating-point numbers. When this option is specified, then all
coordinates are integers.
By default coordinates are in top-cell space and in user units. The -top_coordinates option
explicitly specifies that top-cell space is used. The -cell_coordinates option specifies cell-space
coordinates. The cell for cell space coordinates is determined by the current short in the iterator.
Examples
This example shows the creation of a short iterator and the addition of a mask polygon to the
iterator. Then it shows an attempt to isolate a short where a mask polygon causes shorted
polygons to be ignored.
> qs::add_mask_polygon -it $si -layer metal1 -ec {{47000 302000 47000
271000 48000 271000 48000 312000}} -dbu
metal1 TOP (polygons) 1 (vertices) 4
Related Topics
short_db::add_mask_polygon
qs::delete_mask_polygon
qs::list_mask_polygon
Short Isolation Commands
qs::add_text
Short isolation command.
Adds a text object to a short iterator.
Usage
qs::add_text -it short_iterator -label text_label -layer name -pt {x y}
[-top_coordinates | -cell_coordinates] [-dbu] [-help]
Arguments
• -it short_iterator
A required argument and short iterator name.
• -label text_label
A required argument and a string that serves as a net name.
• -layer name
A required argument and layer name (or number if the layer is drawn). See the following
description section for details about specifying this parameter.
• -pt {x y}
A required argument and list of two coordinate values. The x and y parameters are floating-
point numbers that specify a top-level location in user units (by default).
• -top_coordinates
An optional argument that specifies the top-level coordinates are used. This is the default.
• -cell_coordinates
An optional argument that specifies the cell-level coordinates are used. The cell of the
current index location of the short iterator is used.
• -dbu
An optional argument that specifies database units are used. When this option is specified,
coordinates are integers.
• -help
An optional argument that shows the command usage.
Return Values
For successful attachment, the following is returned:
Description
Adds a new text label to a short iterator at the specified location. A polygon to which the text
label is attached must enclose the coordinates of the -pt argument list for the text attachment to
be successful. If you attempt to add text to a location where there is no polygon, the command
reports a failure to add the text. Top-level coordinates in user units are assumed by default.
The specified -layer name parameter determines the layer to which the specified text label is
attached. The target layer for the text object must have connectivity information for the
attachment to be successful. That is, the layer must appear in a Connect or Sconnect statement
(but not after the BY argument), or it must be derived from such a layer by a series of node-
preserving operations.
For the following discussion, assume these statements are in the rule file:
LAYER diff 5
LAYER poly 6
LAYER metal1 10
LAYER metal2 15
LAYER txt 20
• It is the first argument to an Attach statement. The label is assigned to the second
argument of the same Attach statement. For example:
qs::add_text -it $si -layer txt -label clk1 -pt {10.0 15.0}
This assigns the label clk1 to metal1 at the specified coordinates. The effect of this
command is similar to putting a label on the text layer using the corresponding Attach
statement in the rule file.
• It appears in a Connect statement, but is not a BY layer. For example:
qs::add_text -it $si -layer metal1 -label clk1 -pt {10.0 15.0}
qs::add_text -it $si -layer metal2 -label sig1 -pt {15.0 15.0}
Both of these commands have the effect of placing text objects on Connect layers.
• It is derived, has connectivity information, is not a Connect or Sconnect BY layer, and
appears as the second argument to an Attach statement. The text is attached to the target
layer of the Attach statement. For example:
qs::add_text -it $si -layer sd -label cap1 -pt {10.0 15.0}
This assigns the label cap1 to layer sd. The sd layer meets the four criteria.
This command is useful for debugging shorts. By placing new text objects in the short_iterator,
this can assist in isolating the location of a short by reducing the geometric path between shorted
text labels.
Examples
This example shows the creation of a short iterator and the addition of a text label to the iterator.
Related Topics
short_db::add_text
qs::delete_text
qs::list_text
Short Isolation Commands
qs::close_svdb
Administrative command.
Closes the database without quitting Query Server.
Usage
qs::close_svdb [-force] [-help]
Arguments
• -force
An optional argument that discards all changes from the current session.
• -help
An optional argument that shows the command usage.
Return Values
None.
Related Topics
qs::open_svdb
qs::copy_svdb
Administrative command.
Creates a copy of an SVDB database.
Usage
qs::copy_svdb -from source_path -to target_path [-help]
Arguments
• -from source_path
A required argument and pathname of an SVDB database to copy.
• -to target_path
A required argument and pathname of the target pathname of the copied SVDB.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Copies the specified SVDB (see Mask SVDB Directory for more information) from the
specified source directory to the specified target directory. This command is needed to copy an
SVDB database because of its internal structure. The usual UNIX commands for copying or
moving files do not work for copying an SVDB directory. However, the UNIX tar command
does work properly for these directories.
Examples
>qs::copy_svdb -from svdb -to /user/scratch1/sandbox/new_svdb
Read/Write db
Related Topics
qs::open_svdb
qs::comparison_summary_is_available
LVS custom report command.
Returns a 1 if the comparison summary information is available. Otherwise a 0 is returned.
Usage
qs::comparison_summary_is_available [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
See “Using LVS Custom Report Commands” on page 321.
Related Topics
qs::extraction_summary_is_available
qs::create_lvs_summary_report
qs::write_lvs_comparison_summary_report_to_file
qs::get_run_summary_data
qs::create_lvs_summary_report
LVS custom report command. The information created is identical to that created by the LVS
Summary Report specification statement.
Writes an LVS summary report to an output file.
Usage
qs::create_lvs_summary_report filename [-help]
Arguments
• filename
A required pathname for the report output file.
• -help
An optional argument that shows the command usage.
Return Values
None.
Examples
See “Using LVS Custom Report Commands” on page 321.
Related Topics
qs::write_lvs_comparison_summary_report_to_file
qs::write_lvs_extraction_summary_report_to_file
qs::get_run_summary_data
qs::delete_mask_polygon
Short isolation command.
Deletes all mask polygons generated using the qs::add_mask_polygon command that exist in
the specified iterator.
Usage
qs::delete_mask_polygon -it short_iterator [-help]
Arguments
• -it short_iterator
A required argument and short iterator name.
• -help
An optional argument that shows the command usage.
Return Values
None.
Related Topics
short_db::delete_mask_polygon
qs::list_mask_polygon
qs::add_mask_polygon
Short Isolation Commands
qs::delete_text
Short isolation command.
Deletes a text label in the short isolation session.
Usage
qs::delete_text -it short_iterator -label text_label
[-pt {x y}] [-top_coordinates | -cell_coordinates] [-dbu] [-help]
Arguments
• -it short_iterator
A required argument and short iterator name.
• -label text_label
A required argument and string that serves as a net name. This label must have been added
using the qs::add_text.
• -pt {x y}
An optional argument and list of two coordinate values. The x and y parameters are floating-
point numbers that specify a top-level location in user units.
• -top_coordinates
An optional argument that specifies the top-level coordinates are used. This is the default.
• -cell_coordinates
An optional argument that specifies the cell-level coordinates are used. The cell of the
current index location of the short iterator is used.
• -dbu
An optional argument that specifies database units are used. When this option is specified,
coordinates are integers.
• -help
An optional argument that shows the command usage.
Return Values
For successful global deletion of a label, “Deleted specified text label at all locations.” is
returned. For successful deletion of a label at a location, the following is returned:
For unsuccessful deletion of a label, “Failed to delete text. Text label does not exist.” is
returned.
Description
Deletes a text label that was added using qs::add_text. The text label is deleted from the
specified short iterator. This command does not delete text labels that originated from the
layout.
If the -pt option is not used, then the command deletes all added text labels with the name
specified by -label text_label. If the -pt option is used, then only the added text label nearest the
specified coordinates is deleted. Top-level coordinates in user units are used by default.
This command is useful for debugging shorts. By removing added text labels in the short
iterator, this can assist in isolating the location of a short.
Related Topics
short_db::delete_text
qs::list_text
qs::add_text
Short Isolation Commands
qs::device_templates_used
Rule file query command. Corresponding standard command: DEVICE TEMPLATES USED.
Returns lists of the instances formed during device recognition, along with associated statistics.
Device types and subtypes that are not used to generate instances (as in LVS Box cells) are not
output.
Usage
qs::device_templates_used [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
The following is the list format. The braces ({ }) are literal.
Examples
> qs::device_templates_used
{mn n 0 24 195} {mp p 1 24 195}
Related Topics
LVS Rule File Query Commands
qs::extraction_summary_is_available
LVS custom report command.
Returns a 1 if connectivity extraction summary information is available. Otherwise a 0 is
returned.
Usage
qs::extraction_summary_is_available [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
See “Using LVS Custom Report Commands” on page 321.
Related Topics
qs::comparison_summary_is_available
qs::ran_softchk
qs::ran_erc
qs::write_lvs_extraction_summary_report_to_file
qs::create_lvs_summary_report
qs::get_run_summary_data
qs::gds_map
CCI command. Corresponding standard commands: GDS MAP, GDS SVRF MAP, and GDS
SEED PROPERTY.
Returns the layer map scheme of AGDS output.
Usage
qs::gds_map [-device] [-original] [-svrf filename] [-help]
Arguments
• -device
Optional argument that specifies recognized device layers are represented. This is the
default. This is similar to GDS SEED PROPERTY DEVICE output in CCI.
• -original
Optional argument that specifies original seed layers are represented. This is similar to GDS
SEED PROPERTY ORIGINAL output in CCI.
• -svrf filename
Optional argument set that specifies SVRF compliant output is sent to the filename. This is
similar to GDS SVRF MAP YES output in CCI.
• -help
An optional argument that shows the command usage.
Return Values
Tcl list format; the braces ({ }) are literal. Each sublist in the output has this form:
Description
Without any optional arguments, this command returns the current Calibre layer name to layer
number and datatype mapping for all Device layers output by a GDS WRITE command in the
standard CCI flow. Output layer numbers and datatypes are assigned by the system.
Note that qs::gds_map does not configure AGF output layers. Use the GDS MAP command for
this.
With no options specified, qs::gds_map reports mappings only for layers containing recognized
device seed shapes. In a corresponding output AGF file, each shape is annotated with the device
name as a string property (like M0). A null list {} appears in each qs::gds_map output list in this
case.
The -original option changes the map output so that the device layers are not the recognized
device shapes but the original seed shape geometries used in the Device statement.
When both optional -device and -original arguments are used, mappings for layers containing
seed shapes are reported with the DEVICE or ORIGINAL keyword in the output, according to
whether a layer contains recognized device seed shapes or original seed shapes.
The difference between DEVICE and ORIGINAL shapes is DEVICE shapes can be promoted
to other cells by interaction between device layers. Also, ORIGINAL shapes do not have the
recognized device name annotation in the AGF output. (They can have a node number if the
seed shape is a connectivity layer.)
The default output is a Tcl list of lists. Each sublist represents a layer mapping and contains four
fields: Calibre layer name, layer number, layer datatype (0 by default), and either a null list {},
the word DEVICE, or the word ORIGINAL.
When qs::gds_map is used with the -svrf argument set, layer mappings are written to the given
filename in SVRF format suitable for inclusion in a rule file or for use in Calibre DESIGNrev
for naming layers in the layer palette.
Examples
Example 1
This is an example of the default output (identical if -device option is used):
> qs::gds_map
Example 2
> qs::gds_map -device -original
LAYER well 1
LAYER sub 2
LAYER seed 3 // ORIGINAL
LAYER seed 4 // DEVICE
qs::get_run_summary_data
LVS custom report command.
Collects information for a custom LVS Summary Report.
Usage
qs::get_run_summary_data option [-help]
Arguments
• option
An option to be chosen from the following tables:
Table 5-11 connectivity and device extraction data
Table 5-12 ERC data
Table 5-13 circuit extraction files
Table 5-14 LVS comparison data
Table 5-15 circuit comparison files.
• -help
An optional argument that shows the command usage.
Return Values
String.
Description
Gets the information to create a custom LVS Summary Report. Time data is presented in
seconds since the last epoch. If data is not available, the server returns an empty string or 0.
Table 5-11. LVS Connectivity and Device Extraction Data Options (cont.)
Option Description
-unattached_name_pad_count Number of unattached texts detected.
-virtual_connect_count Number of virtual connections created.
-sconnect_conflict_count Number of SCONNECT conflicts detected.
-global_name_conflict_count Number of global name conflicts detected.
-unattached_port_pad_count Number of unattached ports detected.
-bad_device_count Number of bad devices identified.
-ext_box_cell_count Number of BOX cells present during
extraction.
-trivial_port_pads_reported Number of trivial port pads reported, when
LVS Report Trivial Ports NO is used.
Examples
See “Using LVS Custom Report Commands” on page 321.
Related Topics
qs::create_lvs_summary_report
qs::write_lvs_comparison_summary_report_to_file
qs::write_lvs_extraction_summary_report_to_file
qs::get_shorts
Short isolation command.
Creates a short iterator used for input to other commands.
Usage
qs::get_shorts -report_file filename [-help]
Arguments
• -report_file filename
A required argument and pathname of a report file that lists short information. This file is
created when qs::isolate_short is run on an iterator generated by the qs::get_shorts
command.
• -help
An optional argument that shows the command usage.
Return Values
Short Iterator response to the shell and a short iterator.
Description
Returns an iterator that contains short information. The iterator is expected to be stored in a
variable. The shorts iterator can be passed to qs::isolate_short. It can be stepped forward using
the qs::inc command.
If you store two different iterators using this command in the same session, the first iterator is
deleted and the second is maintained.
This command also reserves the name of a report file. The report file is written when
qs::isolate_short is run on the shorts iterator. The format of the file is identical to the file
generated by the LVS Isolate Shorts YES statement in the rule file.
Examples
This example shows the storing of short information in the iterator $si, followed by isolation of
the first short in the iterator.
Related Topics
Short Isolation Commands
qs::help
Administrative command.
Displays a table of all Query Server Tcl shell commands.
Usage
qs::help
Arguments
None.
Return Values
List of commands and descriptions.
Examples
> qs::help
Query Server Commands:
(For usage help on commands try "qs::cmd -help" or "qs::help command
qs::cmd")
qs::inc
Iterator control command.
Increments an iterator to point to the next entry in the sequence.
Usage
qs::inc iterator_name [-help]
Arguments
• iterator_name
A required argument that must be an iterator name.
The iterator_name should not use the $ character as when referencing a variable.
• -help
An optional argument that shows the command usage.
Return Values
None.
Examples
This example shows the creation of a short iterator and a loop to isolate the shorts in the iterator.
The results are written to the shorts.rep file.
Related Topics
qs::get_shorts
qs::isolate_short
Short Isolation Commands
qs::isolate_short
Short isolation and iterator control command.
Performs short isolation using an iterator.
Usage
qs::isolate_short -it short_iterator
[-by_cell {also | no | yes}]
[-by_layer {also | no | yes}]
[-flat {no | yes | if_fast}]
[-help]
Arguments
• -it short_iterator
A required argument and short iterator name. The short_iterator is created by
qs::get_shorts.
• -by_cell { also | no | yes }
An optional argument set that specifies whether to report the cell of origin for short
polygons. When this option is specified, one of these arguments must be present:
also — Shorts are reported both fully merged and in the cell of origin for each layer
comprising the short. This is the default behavior if this option is not specified.
no — Short polygons are not reported in the cell of origin.
yes — Shorts are reported in the cell of origin for each layer comprising the short.
• -by_layer { also | no | yes }
An optional argument and argument that specifies whether to report separate results per
short, per layer. When this option is specified, one of these arguments must be present:
also — Shorts are reported both fully merged and are reported with separate layer
information. This is the default behavior if this option is not specified.
no — Shorts are not reported with layer information.
yes — Shorts are reported with separate layer information.
• -flat { no | yes | if_fast }
An optional argument set that specifies whether to perform the short isolation flat. When
this option is specified, one of these arguments must be present:
no — Short isolation is performed hierarchically. This is the default behavior if this
option is not specified.
yes — Short isolation is performed flat.
if_fast — Short isolation is performed flat if it will be faster than performing it
hierarchically.
If the “yes” or “if_fast” (and flat isolation occurs) options are used, then all -by_cell “yes”
or “also” results are reported at the top level.
• -help
An optional argument that shows the command usage.
Return Values
Short isolation transcript and the file specified in the -report_file argument of the qs::get_shorts
command.
Description
Performs short isolation on the current short from the short_iterator.
The short isolation results output is controlled by the -by_cell and -by_layer, and -flat options.
By default, this command performs short isolation using the same method as the rule file
statement LVS Isolate Shorts YES BY CELL ALSO BY LAYER ALSO. This means short
isolation reports both the cell of origin and the layer involved in the short in addition to fully-
merged results. This is regardless of what appears in the rule file for LVS Isolate Shorts.
Short circuit (index: <n>) (cell: <cell>) (net_id: <n>) (text: <name> was
assigned).
<label> at (<x>,<y>)
<label> at (<x>,<y>)
Examples
This example shows a loop to isolate the shorts in the iterator si.
Related Topics
short_db::isolate_short
qs::isolate_shorts
qs::get_shorts
qs::inc
Short Isolation Commands
qs::isolate_shorts
Short isolation command.
Isolates shorts from an SVDB database.
Usage
qs::isolate_shorts [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Short isolation transcript and an LVS Isolate Shorts results database. By default, the name of the
database is the rule file LVS Report name appended with “.shorts”.
Description
Performs hierarchical short isolation using the data from the SVDB database. The short
isolation is performed according to the options specified with LVS Isolate Shorts YES in the
rule file. If LVS Isolate Shorts NO is specified, short isolation is run as if LVS Isolate Shorts
YES is specified with no other keywords.
The command returns an ASCII short isolation database as for LVS Isolate Shorts YES. The
format is discussed under “Hierarchical Short Isolation Results Database” in the Calibre
Verification User’s Manual. The database can be used in Calibre LVS RVE.
Examples
This example shows the creation of a hierarchical short isolation database using the rule file
settings.
> qs::isolate_shorts
Related Topics
short_db::isolate_shorts
qs::isolate_short
Short Isolation Commands
qs::list_mask_polygon
Short isolation and iterator data retrieval command.
Lists the mask polygons in the system.
Usage
qs::list_mask_polygon -it short_iterator [-top_coordinates | -cell_coordinates] [-dbu] [-help]
Arguments
• -it short_iterator
A required argument and short iterator name. The short iterator is created by qs::get_shorts.
• -top_coordinates
An optional argument that specifies the top-level coordinates are used. This is the default.
• -cell_coordinates
An optional argument that specifies the cell-level coordinates are used. The cell of the
current index location of the short iterator is used.
• -dbu
An optional argument that specifies database units are used. When this option is specified,
coordinates are integers.
• -help
An optional argument that shows the command usage.
Return Values
One or more Tcl lists. Each list is comprised of a layer and cell name, followed by one or more
lists of polygon vertex coordinates.
Description
Lists the mask polygons in the specified short iterator. Mask polygons are generated using the
qs::add_mask_polygon command.
Coordinates are returned in top-cell space and in user units by default. The -top_coordinates
option explicitly specifies that top-cell space is used. The -cell_coordinates option specifies
cell-space coordinates. The cell for cell-space coordinates is determined by the current index
location in the iterator.
The -dbu option specifies that database units are used. When this option is not specified, all
returned coordinates are floating-point numbers. When this option is specified, then all returned
coordinates are integers.
Examples
> set si [qs::get_shorts -report_file shorts.rep]
> qs::list_mask_polygon -it $si
{metal1 TOP {0.0 0.0 100.0 0.0 100.0 100.0 0.0 100.0}} {metal2 TOP {0.0
0.0 100.0 0.0 100.0 100.0 0.0 100.0} {200.0 200.0 300.0 200.0 300.0 300.0
200.0 300.0}}
Related Topics
qs::add_mask_polygon
qs::delete_mask_polygon
Short Isolation Commands
qs::list_text
Short isolation and iterator control command.
Returns a list of text labels in the system.
Usage
qs::list_text -it short_iterator [-top_coordinates | -cell_coordinates] [-dbu] [-help]
Arguments
• -it short_iterator
A required argument and short iterator name. The iterator is created by qs::get_shorts.
• -top_coordinates
An optional argument that specifies the top-level coordinates of added text objects are
returned. This is the default.
• -cell_coordinates
An optional argument that specifies the cell-level coordinates of added text objects are
returned. The cell of the current index location of the short iterator is used.
• -dbu
An optional argument that specifies database units are returned. When this option is
specified, coordinates are integers.
• -help
An optional argument that shows the command usage.
Return Values
List.
Description
Returns a Tcl list for text labels added to an iterator by the qs::add_text command. The list is of
this form:
The x and y coordinates are returned in top-cell space and in user units by default. The
-top_coordinates option explicitly specifies that top-cell space is used. The -cell_coordinates
option specifies cell-space coordinates. The cell for cell-space coordinates is determined by the
current index location in the iterator.
The -dbu option specifies that database units are used. When this option is not specified, all
returned coordinates are floating-point numbers. When this option is specified, then all returned
coordinates are integers.
Examples
> set si [qs::get_shorts -report_file shorts.rep]
> qs::list_text -it $si
{VSS 23.0 42.0 metal2}
Related Topics
qs::add_text
qs::delete_text
Short Isolation Commands
qs::net_devicenames
Corresponding standard command: NET DEVICENAMES
Returns a list of instance paths of all devices on a specified layout net.
Usage
qs::net_devicenames -net layout_net_path [-cell cell_name] [-help]
Arguments
• -net layout_net_path
A required argument set that specifies a layout net name or path. The layout_net_path is
relative to the query cell context.
• -cell cell_name
An optional argument set that specifies the query cell context. By default, the top level cell
is assumed.
• -help
An optional argument that shows the command usage.
Return Values
List.
Description
Returns a Tcl list of paths of device instances on the net specified by the layout_net_path in
sub-lists. The device template number ($D comment coded property) is also in each sub-list.
The cell context is top level by default and can be changed with the -cell option.
The net specified by the layout_net_path is traced throughout the query cell context, not just
downward from the given path.
Examples
This example shows the command output in interactive mode: Three instances are returned for
the net PWR. The device template number is 1.
Related Topics
Net Commands
qs::net_layers
Corresponding standard command: NET LAYERS.
Returns a list of layers that comprise a net.
Usage
qs::net_layers -net layout_net_path [-cell cell_name] [-help]
Arguments
• -net layout_net_path
A required argument set that specifies a layout net name or path. The layout_net_path is
relative to the query cell context.
• -cell cell_name
An optional argument set that specifies the query cell context. By default, the top level cell
is assumed.
• -help
An optional argument that shows the command usage.
Return Values
List.
Description
Returns a Tcl list of layer names having shapes on the net specified by the layout_net_path. The
cell context is top level by default and can be changed with the -cell option.
The net specified by the layout_net_path is traced throughout the query cell context, not just
downward from the given path.
Examples
This shows a command execution in interactive mode. The contents of var can be processed as a
Tcl list.
Related Topics
Net Commands
qs::net_trace
Corresponding standard command: NET TRACE
Returns the pathname of the highest representative of a net and all intermediate net pathnames
between the net and its highest representative. The specified net is also returned.
Usage
qs::net_trace -net layout_net_path [-cell cell_name] [-help]
Arguments
• -net layout_net_path
A required argument set that specifies a layout net name or path. The layout_net_path is
relative to the query cell context.
• -cell cell_name
An optional argument set that specifies the query cell context. By default, the top level cell
is assumed.
• -help
An optional argument that shows the command usage.
Return Values
List.
Description
Returns the pathname of the highest representative of the net associated with the
layout_net_path. By default, the root of the path is the top level. Using the -cell parameter
changes the context to the specified cell. Intermediate net pathnames between the highest
representative net and the specified net are also returned, along with the specified net itself. The
output is a Tcl list.
The trace proceeds upward from the given layout_net_path until it reaches the highest
hierarchical representative within the cell context. This does not imply that the net does not also
descend into other instances below the primary level of the context cell, or that the net does not
descend into the instances on the given path by more than one pin, or that the net does not
connect through an external pin of a specified -cell parameter into higher levels of the design.
Examples
Assume this simplified layout netlist:
Related Topics
Net Commands
qs::open_svdb
Administrative command.
Opens an SVDB database.
Usage
qs::open_svdb -svdb svdb [-rev revision] [-top_cell top_cell] [-phdb | -summary} [-help]
Arguments
• -svdb svdb
A required argument and name of the Mask SVDB Directory database to open. This
database should be generated using the Mask SVDB Directory SI option.
• -rev revision
An optional argument and revision name or non-negative integer corresponding to a PHDB
revision.
• -top_cell top_cell
An optional argument and top-level cell database record to open, as specified in a rule file
Layout Primary statement.
• -phdb
An optional argument that reads the PHDB for the specified SVDB directory. This is the
default behavior.
• -summary
An optional argument that opens and reads the summary information for the specified
SVDB directory. Use the -summary option in LVS summary report generation applications.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Opens the specified SVDB database. If the -top_cell option is used, then that cell’s data is
accessed.
When used without the -rev option, this command opens the default SVDB revision. This is
typically the “master” database revision (revision 0). Revision 0 is not editable.
When the -rev option is used, the specified database revision is opened.
By default, the PHDB is read, if it is available. The -summary option causes only the summary
information needed for a custom LVS summary report to be generated. See
qs::create_lvs_summary_report.
Examples
>qs::open_svdb -svdb svdb
Opening database "svdb/TOP.phdb/db", revision ‘master’
Loading hierarchy and connectivity
...
Loading device info
>
Related Topics
qs::close_svdb
qs::copy_svdb
qs::perf_stats
Administrative command.
Starts the performance monitor.
Usage
qs::perf_stats -label name [-help]
Arguments
• -label name
A required argument and label name for a statistics report. The name must be a valid Tcl
object that evaluates as a string.
• -help
An optional argument that shows the command usage.
Return Values
Statistics report.
Description
This command starts the performance statistics monitor and outputs time and memory usage to
the shell transcript. The -label name argument is a string that is prefixed to the statistics report.
# C shell
setenv COCKPIT_PERF_STATS
You start the output of performance statistics by setting a variable, like this:
The “message” here could be a string or any Tcl object that returns a string. To stop the statistics
report, do this:
To disable the reporting of the “PRE” statistics, set the following environment variable:
# C shell
setenv COCKPIT_PERF_STATS_DISABLE_PRE
Examples
After setting this variable:
# C shell
setenv COCKPIT_PERF_STATS
The output for each index of the iterator would be similar to this:
qs::port_table
A Calibre Connectivity Interface license is required for this command. Mask SVDB Directory
CCI must have been specified for the SVDB that is loaded when this command is used.
Corresponding CCI command: PORT TABLE WRITE.
Returns a listing of information about cell ports in the layout design.
Usage
qs::port_table [-cells] [-list] [-write filename] [-help]
Arguments
• -cells
An optional argument that returns port information for all cells. Cell names are added to the
output, which by default, they are not. By default, only top-level ports are output.
• -list
An optional argument that causes the output to be a Tcl list of port information. This is the
default behavior.
• -write filename
An optional argument that specifies to write a port table to the specified file.
• -help
An optional argument that shows the command usage.
Return Values
When -write is not used, a Tcl list of lists, where each sub-list represents a port. Each sub-list is
of this form:
port_name — Name of the port. If the port has no name (as for Port Layer Polygon), then
the name is <UNNAMED>.
net_name — Name of the net to which the port is attached. If the net is unnamed, then this
argument is identical to the node_ID.
cell_name — Name of the cell in which the port appears when the -cell option is used. By
default, this field is empty.
With the -write option, a report as discussed under “Port Table File Format” on page 224.
Examples
This shows the -list output:
dfm::port_table -list
{GND 1 GND 1300 3600 metal2 {}} {<UNNAMED> 1 GND 20625 6250 metal2 {}}
{PWR 2 PWR 1300 82400 metal2 {}} {<UNNAMED> 2 PWR 20625 78875 metal2 {}}
{<UNNAMED> 3 3 20000 45100 metal2 {}}
The ports are all from the top level. The coordinates are in top-level space. Cell names are not
reported in this case. Ports generated from Port Layer Polygon are shown as <UNNAMED>.
qs::quit
Administrative command.
Exits the Query Server Tcl shell. The command qs::exit is an alias and performs the same
function. Alternatively, you can type “exit”.
Usage
qs::quit [-force] [-help]
Arguments
• -force
An optional argument that closes the database, discarding all changes to the PHDB.
• -help
An optional argument that shows the command usage.
Return Values
None.
qs::ran_erc
LVS custom report command.
Returns a 1 if ERC has been run. Otherwise, a 0 is returned.
Usage
qs::ran_erc [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
This shows the return of the command when entered interactively and ERC has not been run:
>qs::ran_erc
0
Related Topics
qs::extraction_summary_is_available
qs::ran_softchk
qs::write_lvs_comparison_summary_report_to_file
qs::create_lvs_summary_report
qs::ran_softchk
LVS custom report command.
Returns a 1 if LVS Softchk has been run. Otherwise a 0 is returned.
Usage
qs::ran_softchk [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
This shows the return of the command when entered interactively and LVS Softchk has not
been run:
>qs::ran_softchk
0
Related Topics
qs::extraction_summary_is_available
qs::write_lvs_extraction_summary_report_to_file
qs::ran_erc
qs::create_lvs_summary_report
qs::rules_connectivity
Rule file query command. Corresponding standard command: RULES CONNECTIVITY.
Returns rule file connectivity statement information.
Usage
qs::rules_connectivity [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
The following is the response format. The braces ({ }) are literal.
Description
Returns the Connect and Sconnect statements in the rule file, as well as layer connections made
by node-preserving layer operations. Connectivity derived from Stamp operations is also
returned. The connectivity statements are returned as Tcl lists.
Encrypted layers and device layers with no connectivity are not returned.
Connections established through Connect or Sconnect are reported using the word CONNECT.
Connections established through layer derivation are reported using the string
IMPLICIT_CONNECT.
Examples
Assume the following in the rule file:
CONNECT A B BY C
D = B NOT E
F = D AND G
H = I STAMP BY F
Related Topics
LVS Rule File Query Commands
qs::rules_layout_case
Rule file query command. Corresponding standard command: RULES {LAYOUT | SOURCE}
CASE.
Returns the Layout Case setting in the rule file.
Usage
qs::rules_layout_case [-help]
Arguments
• -help
An optional argument that shows the command usage. 0 is NO, 1 is YES.
Return Values
Integer.
Examples
This response indicates Layout Case YES is set:
> qs::rules_layout_case
1
Related Topics
LVS Rule File Query Commands
qs::rules_lvs_compare_case
Rule file query command. Corresponding standard command: RULES LVS COMPARE CASE.
Returns the LVS Compare Case keyword settings in the rule file: NO, YES, NAMES, TYPES,
SUBTYPES, or VALUES as a Tcl list.
Usage
qs::rules_lvs_compare_case [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
List.
Examples
This response indicates LVS Compare Case NAMES TYPES is set:
> qs::rules_lvs_compare_case
NAMES TYPES
Related Topics
LVS Rule File Query Commands
qs::rules_lvs_db_layer
Rule file query command. Corresponding standard command: RULES LVS DB LAYER.
Returns the LVS DB Layer parameters in the rule file as a Tcl list of layer names.
Usage
qs::rules_lvs_db_layer [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
List.
Examples
This example assumes LVS DB Layer POLY DIFF is in the rule file.
> qs::rules_lvs_db_layer
POLY DIFF
Related Topics
LVS Rule File Query Commands
qs::rules_lvs_downcase_device
Rule file query command. Corresponding standard command: RULES LVS DOWNCASE
DEVICE.
Returns the LVS Downcase Device setting in the rule file. 0 is NO, 1 is YES.
Usage
qs::rules_lvs_downcase_device [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
This response indicates LVS Downcase Device YES is set:
> qs::rules_lvs_downcase_device
1
Related Topics
LVS Rule File Query Commands
qs::rules_lvs_ground_name
Rule file query command. Corresponding standard command: RULES LVS {GROUND |
POWER} NAME.
Returns the LVS Ground Name setting of the rule file.
Usage
qs::rules_lvs_ground_name [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
List.
Description
Returns the LVS Ground Name nets in the rule file as a Tcl list. If nets are declared as variables,
the values of the variables are returned. If the names are declared with wildcards, the wildcards
are returned, not the matching names.
Examples
This example assumes LVS Ground Name VSS GND is in the rule file:
> qs::rules_lvs_ground_name
VSS GND
Related Topics
LVS Rule File Query Commands
qs::rules_lvs_power_name
Rule file query command. Corresponding standard command: RULES LVS {GROUND |
POWER} NAME.
Returns the LVS Power Name setting of the rule file.
Usage
qs::rules_lvs_power_name [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
List.
Description
Returns the LVS Power Name nets in the rule file as a Tcl list. If nets are declared as variables,
the values of the variables are returned. If the names are declared with wildcards, the wildcards
are returned, not the matching names.
Examples
This example assumes LVS Power Name VCC VDD is in the rule file:
> qs::rules_lvs_power_name
VCC VDD
Related Topics
LVS Rule File Query Commands
qs::rules_lvs_spice_replicate_devices
Rule file query command. Corresponding standard command: RULES LVS SPICE
REPLICATE DEVICES.
Returns the LVS Spice Replicate Devices setting in the rule file. 0 is NO, 1 is YES.
Usage
qs::rules_lvs_spice_replicate_devices [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
This response indicates LVS Spice Replicate Devices YES is set:
> qs::rules_lvs_spice_replicate_devices
1
Related Topics
LVS Rule File Query Commands
qs::rules_precision
Rule file query command. Corresponding standard command: RULES PRECISION.
Returns the Precision setting in the rule file as a floating-point number.
Usage
qs::rules_precision [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Floating-point number.
Examples
This example assumes Precision 1000 is set in the rule file:
> qs::rules_precision
1000.0
Related Topics
LVS Rule File Query Commands
qs::rules_source_case
Rule file query command. Corresponding standard command: RULES {LAYOUT | SOURCE}
CASE.
Returns the Source Case setting in the rule file. 0 is NO, 1 is YES.
Usage
qs::rules_source_case [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Integer.
Examples
This response indicates Source Case YES is set:
> qs::rules_source_case
1
Related Topics
LVS Rule File Query Commands
qs::rules_unit_length
Rule file query command. Corresponding standard command: RULES UNIT LENGTH.
Returns the Unit Length setting in the rule file. The return value is in meters and represented in
scientific notation.
Usage
qs::rules_unit_length [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Floating-point number.
Examples
This example assumes that Unit Length u is set in the rule file:
> qs::unit_length
1e-06
Related Topics
LVS Rule File Query Commands
qs::write_lvs_comparison_summary_report_to_file
LVS custom report command.
Writes the summary comparison information to an output file. The created file should be
opened for write access using the Tcl open command as a part of a summary report generation
script.
Usage
qs::write_lvs_comparison_summary_report_to_file filename [-help]
Arguments
• filename
A required pathname of the report output file.
• -help
An optional argument that shows the command usage.
Return Values
None.
Examples
See “Using LVS Custom Report Commands” on page 321.
Related Topics
qs::comparison_summary_is_available
qs::create_lvs_summary_report
qs::get_run_summary_data
qs::write_lvs_extraction_summary_report_to_file
qs::write_lvs_extraction_summary_report_to_file
LVS custom report command.
Writes the summary extraction information to an output file. The created file should be opened
for write access the Tcl open command as a part of a summary report generation script.
Usage
qs::write_lvs_extraction_summary_report_to_file filename [-help]
Arguments
• filename
A required pathname of the report output file.
• -help
An optional argument that shows the command usage.
Return Values
None.
Examples
See “Using LVS Custom Report Commands” on page 321.
Related Topics
qs::extraction_summary_is_available
qs::create_lvs_summary_report
qs::get_run_summary_data
qs::write_lvs_comparison_summary_report_to_file
qs::write_lvs_settings_report
Rule file query command. Corresponding standard command: LVS SETTINGS REPORT
WRITE.
Returns a summary report of LVS rule settings.
Usage
qs::write_lvs_settings_report filename [-help]
Arguments
• filename
A required pathname of the report output file.
• -help
An optional argument that shows the command usage.
Return Values
Report.
Description
Returns a report file with a summary of LVS rule file settings to the specified filename. The
report format is as follows:
The connectivity response uses CONNECT when the connection is due to a Connect or
Sconnect statement. If the connectivity is established through node-preserving layer derivation,
then an IMPLICIT CONNECTIVITY section appears.
Related Topics
LVS Rule File Query Commands
short_db::add_mask_polygon
Short repairs database command.
Suppresses short isolation on a specified layer.
Usage
short_db::add_mask_polygon -layer name -ec {x1 y1 x2 y2… [{x1 y1 x2 y2 …}...]}
-sn serial_number [-cell name] [-dbu] [-top_coordinates | -cell_coordinates] [-help]
Arguments
• -layer name
A required argument and name (or number) of an original layer.
• -ec { x1 y1 x2 y2 … [{x1 y1 x2 y2 …}...]}
A required argument and Tcl list of lists of polygon vertex coordinates. Coordinates are
floating-point numbers in user units by default. At least two vertices must be specified. If
only two vertices are specified, they are interpreted as the lower-left and upper-right vertices
of a rectangle. Additional vertices may be specified to make polygons of any shape. Each
sub-list specifies a distinct polygon.
• -sn serial_number
A required argument and serial number of a short.
• -cell name
An optional argument and name of a cell in which to isolate shorts.
• -dbu
An optional argument that specifies coordinates are in database units.
• -top_coordinates
An optional argument that specifies coordinates are given in top-level space. This is the
default.
• -cell_coordinates
An optional argument that specifies coordinates are given in cell-level space.
• -help
An optional argument that shows the command usage.
Return Values
For a successful attachment, the following is returned:
Description
Creates mask polygons in memory that suppress short isolation on a specified layer and within
the areas of the specified mask polygons.
The -layer name option specifies the layer to mask for short isolation. Any portion of a name
layer that lies within the area of a mask polygon is ignored when using short_db::isolate_short.
The name parameter must appear in a Connect statement in the rule file for the layer to be
masked for short isolation. See Figure 5-3:
The -ec option is required and specifies polygon vertex coordinates. Each coordinate list
contains a set of x y values that specify vertices. At least two pairs of x y coordinates must be
specified for any vertex list. If only two pairs are specified, then they are interpreted with x1 y1
being the lower-left corner, and x2 y2 being the upper-right corner of an orthogonal rectangle.
Additional vertices may be specified to make polygons of any shape.
If multiple mask polygons are specified and they touch or overlap, then they are merged into a
single polygon. Subsequently, the command behaves as if the merged polygon had been
specified. Specifying a layer that is not in a Connect statement is allowed, but does not do
anything useful.
The -sn option is required and specifies which serial number is used. A serial number is used to
identify a group of related shorts. Shorts having the same serial number share the same
electrical connection.
The -cell option specifies the cell to mask for short isolation. When this option is used, the list of
coordinates given by -ec must be within the coordinate space of the cell. The masked polygon is
removed within all cell instances. This parameter has no interaction with -top_coordinates or
-cell_coordinates.
The -dbu option specifies that the given coordinates are in database units. When this option is
not specified, all coordinates are floating-point numbers. When this option is specified, then all
coordinates are integers.
By default coordinates are in top-cell space and in user units. The -top_coordinates option
explicitly specifies that top-cell space is used. The -cell_coordinates option specifies cell-space
coordinates. The cell for cell space coordinates is determined by the current short in the iterator.
Examples
This example shows coordinates in database units:
Related Topics
short_db::delete_mask_polygon
Short Repair Database Commands
short_db::add_text
Short repairs database command.
Adds a text object to the short isolation database.
Usage
short_db::add_text -label text -layer layer_name -pt {x y} -sn serial_number
[-top_coordinates | -cell_coordinates] [-dbu] [-help]
Arguments
• -label text
A required argument and text label to assign to a layer.
• -layer layer_name
A required argument and layer (name or number) as defined by a Layer statement in the rule
file. This command assigns text (label) to a connect layer. The layer_name must be one of
these types:
o The layer is original and is the source layer in an Attach operation. The label is
assigned to the target layer of Attach.
o Layer is original, connect, non-contact, and is not the source layer of an Attach
operation. The label is assigned to the layer.
o Layer is derived, connect, non-contact, and is the target layer of an Attach operation.
The label is assigned to layer.
• -pt {x y}
A required argument and coordinate list of a text object. The x y values are in user units in
top-level space by default.
• -sn serial_number
A required argument and serial number of a short.
• -top_coordinates
An optional argument that specifies coordinates are given in top-level space. This is the
default.
• -cell_coordinates
An optional argument that specifies coordinates are given in cell-level space.
• -dbu
An optional argument that specifies coordinates are in database units.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Adds a new text label to a short iterator at the specified location. A polygon to which the text
label is attached must enclose the coordinates of the -pt argument list for the text attachment to
be successful. If you attempt to add text to a location where there is no polygon, the command
reports a failure to add the text. Top-level coordinates in user units are assumed by default.
The specified layer_name parameter determines the layer to which the specified text label is
attached. The target layer for the text object must have connectivity information for the
attachment to be successful. That is, the layer must appear in a Connect or Sconnect statement
(but not after the BY argument), or it must be derived from such a layer by a series of node-
preserving operations.
For the following discussion, assume these statements are in the rule file:
LAYER diff 5
LAYER poly 6
LAYER metal1 10
LAYER metal2 15
LAYER txt 20
• It is the first argument to an Attach statement. The label is assigned to the second
argument of the same Attach statement. For example:
short_db::add_text -layer txt -label clk1 -pt {10.0 15.0} -sn 0
This assigns the label clk1 to metal1 at the specified coordinates. The effect of this
command is similar to putting a label on the text layer using the corresponding Attach
statement in the rule file.
• It appears in a Connect statement, but is not a BY layer. For example:
short_db::add_text -layer metal1 -label clk1 -pt {10.0 15.0} -sn 0
short_db::add_text -layer metal2 -label sig1 -pt {15.0 15.0} -sn 0
Both of these commands have the effect of placing text objects on Connect layers.
This assigns the label cap1 to layer sd. The sd layer meets the four criteria.
Examples
Example 1
This example assigns the label clk1 to metal1. The effect of this edit is similar to putting a label
on the text layer using the Attach operation. Layer mark satisfies this criteria and can be
assigned a label.
SVRF:
LAYER metal1 10
LAYER metal2 15
LAYER mark 20
CONNECT metal2 metal1 BY via
TEXT LAYER mark
ATTACH mark metal1
QS Tcl Shell:
Example 2
Using the same Layer declaration statements in the previous example, layers metal1 and metal2
satisfy this criteria and can be assigned a clock1 and signal label. The via layer cannot be
assigned a label using short_db::add_text.
QS Tcl Shell:
Example 3
Using the same Layer declaration statements in the first example, this assigns the label cap1 to
src_drn.
SVRF:
LAYER metal1 10
LAYER metal2 15
LAYER mark 20
CONNECT metal2 metal1 BY via
TEXT LAYER mark
ATTACH mark metal1
LAYER diff 25
TEXT LAYER diff
src_drn = diff NOT poly
CONNECT src_drn metal1 BY contact
ATTACH diff src_drn
QS Tcl Shell:
Related Topics
short_db::delete_text
Short Repair Database Commands
short_db::assign_short
Short repairs database command.
Assigns or de-assigns a short to a specific user. If -sn is not specified, then the current short
serial number is assumed. If -uid or -login are not specified, then the current user’s ID is
assumed. Assignments can be reviewed with the command short_db::user_info -show.
Usage
short_db::assign_short [-show | -show_all] [-sn serial_number] [-r]
[-uid integer | -login string] [-help]
Arguments
• -show
An optional argument that shows information on a user currently using the SVDB.
• -show_all
An optional argument that shows information on all users currently using the SVDB.
• -r
An optional argument that removes the assignment of a short to a specific user.
• -sn serial_number
An optional argument that assigns a short of the specified serial number to a user.
• -uid integer
An optional argument that specifies the user’s ID number.
• -login string
An optional argument that specifies the user’s login name.
• -help
An optional argument that shows the command usage.
Return Values
Short assignment information.
Examples
> short_db::assign_short -login jdoe
# (jdoe has to be a valid user on the system)
Related Topics
short_db::comment_short
short_db::get_serial_number
short_db::user_info
short_db::get_status
short_db::set_status
short_db::comment_short
Short repairs database command.
Adds or returns comments on a short. Returns comments if -text is not specified. If -sn is not
specified, then the current short’s serial number is used.
Usage
short_db::comment_short [-text “string”] [-sn serial_number] [-help]
Arguments
• -text “string”
An optional argument and comment text contained in the string. The quotation marks are
literal.
• -sn serial_number
An optional argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
Comment strings.
Examples
This shows assignment of comment text to the current short:
Related Topics
short_db::assign_short
short_db::get_serial_number
Short Repair Database Commands
short_db::delete_mask_polygon
Short repairs database command.
Deletes all mask polygons added using the short_db::add_mask_polygon command that
correspond to a serial number.
Usage
short_db::delete_mask_polygon -sn serial_number [-help]
Arguments
• -sn serial_number
A required argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
None.
Related Topics
Short Repair Database Commands
short_db::add_mask_polygon
short_db::delete_text
Short repairs database command.
Deletes a text object in the short isolation database.
Usage
short_db::delete_text -label name -sn serial_number
[-pt {x y}] [-top_coordinates | -cell_coordinates] [-dbu][-help]
Arguments
• -label name
A required argument and text label to delete.
• -sn serial_number
A required argument and serial number of a short.
• -pt {x y}
An optional argument and coordinates of a text label. The coordinates are in user units in
top-level space by default.
• -top_coordinates
An optional argument that specifies coordinates are given in top-level space. This is the
default.
• -cell_coordinates
An optional argument that specifies coordinates are given in cell-level space.
• -dbu
An optional argument that specifies coordinates are in database units.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Deletes a text label added using short_db::add_text for the short with the serial_number. This
command does not delete text labels that originated from the layout.
If the -pt option is not used, then the command deletes all added text labels with the name
specified by name. If the -pt option is used, then only the added text label closest to the
specified coordinates is deleted. Top-level coordinates in user units are used by default.
This command is useful for debugging shorts. By removing added text labels in the short
iterator, this can assist in isolating the location of a short.
Examples
> short_db::delete_text -label VSS -pt {47.5 271.5} -sn 0
Deleted 47.5 271.5
Related Topics
Short Repair Database Commands
short_db::get_change_set
Short repairs database command.
Returns the name of the change set of the current short. Change sets contain records of any
attempts to isolate or modify the properties of a short.
Usage
short_db::get_change_set [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Related Topics
short_db::list_change_sets
short_db::rename_change_set
short_db::remove_change_set
short_db::switch_change_set
short_db::get_serial_number
Short repairs database command.
Returns the current short’s serial number. A serial number is assigned to each short in the
SVDB database, indexed from 0.
Usage
short_db::get_serial_number [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Examples
> short_db::get_serial_number
0
Related Topics
short_db::assign_short
short_db::get_status
short_db::set_status
short_db::comment_short
short_db::mark_fixed
short_db::get_status
Short repairs database command.
Returns a status name of a short.
Usage
short_db::get_status [-sn serial_number] [-help]
Arguments
• -sn serial_number
An optional argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Returns the user-defined status name of a short. The status name is assigned with the
short_db::set_status command. When -sn is not specified, the current short serial number is
used. After retrieving the status of a short, use short_db::goto_short to make that short the
current one.
Related Topics
short_db::assign_short
short_db::mark_fixed
short_db::comment_short
short_db::get_serial_number
short_db::goto_short
Short repairs database command.
Makes the short with a specified serial number the current short.
Usage
short_db::goto_short -sn serial_number [-help]
Arguments
• -sn serial_number
A required argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Examples
short_db::goto_short -sn 3
Current short serial number is 3
Related Topics
short_db::assign_short
short_db::mark_fixed
short_db::comment_short
short_db::get_serial_number
short_db::isolate_short
Short repairs database command.
Isolates a short in the shorts database.
Usage
short_db::isolate_short -sn serial_number
[-by_cell yes | no | also]
[-by_layer yes | no | also]
[-flat yes | no | if_fast]
[-help]
Arguments
• -sn serial_number
A required argument and serial number of a short.
• -by_cell {also | no | yes}
An optional argument set that specifies whether to report the cell of origin for short
polygons. When this option is specified, one of these arguments must be present:
also — Shorts are reported both fully merged and in the cell of origin for each layer
comprising the short. This is the default behavior if this option is not specified.
no — Short polygons are not reported in the cell of origin.
yes — Shorts are reported in the cell of origin for each layer comprising the short.
• -by_layer {also | no | yes}
An optional argument set that specifies whether to report separate results per short, per
layer. When this option is specified, one of these arguments must be present:
also — Shorts are reported both fully merged and are reported with separate layer
information. This is the default behavior if this option is not specified.
no — Shorts are not reported with layer information.
yes — Shorts are reported with separate layer information.
• -flat { no | yes | if_fast }
An optional argument set that specifies whether to perform the short isolation flat. When
this option is specified, one of these arguments must be present:
no — Short isolation is performed hierarchically. This is the default behavior if this
option is not specified.
yes — Short isolation is performed flat.
if_fast — Short isolation is performed flat if it will be faster than performing it
hierarchically.
If the “yes” or “if_fast” (and flat isolation occurs) options are used, then all -by_cell “yes”
or “also” results are reported at the top level.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message of this format:
Short circuit (index: <n>) (cell: <cell>) (net_id: <n>) (text: <name> was
assigned).
<label> at (<x>,<y>)
<label> at (<x>,<y>)
Description
Performs short isolation on the current short. The short isolation results output is controlled by
the -by_cell and -by_layer, and -flat options. By default, this command performs short isolation
using the same method as the rule file statement LVS Isolate Shorts YES BY CELL ALSO BY
LAYER ALSO. This means short isolation reports both the cell of origin and the layer involved
in the short in addition to fully-merged results regardless of what appears in the rule file for
LVS Isolate Shorts. The coordinates are in database units.
A sub-directory with the path “svdb/topcell.phdb/isi/” is created to hold RDB files. The files are
written to “./isi/topcell-change_set-sn#.shorts”. Where topcell, change_set, sn#, and shorts
represent their current values.
Examples
> short_db::isolate_short -sn 0
Short circuit (index: 0) (cell: nand2) (net_id: 1) (text: VDD).
VDD at (10,83)
VSS at (10,1)
Related Topics
short_db::isolate_shorts
Short Repair Database Commands
short_db::isolate_shorts
Short repairs database command.
Finds shorts in the short isolation database.
Usage
short_db::isolate_shorts
[-by_cell yes | no | also]
[-by_layer yes | no | also]
[-flat yes | no | if_fast]
[-help]
Arguments
• -by_cell {also | no | yes}
An optional argument set that specifies whether to report the cell of origin for short
polygons. When this option is specified, one of these arguments must be present:
also — Shorts are reported both fully merged and in the cell of origin for each layer
comprising the short. This is the default behavior if this option is not specified.
no — Short polygons are not reported in the cell of origin.
yes — Shorts are reported in the cell of origin for each layer comprising the short.
• -by_layer {also | no | yes}
An optional argument set that specifies whether to report separate results per short, per
layer. When this option is specified, one of these arguments must be present:
also — Shorts are reported both fully merged and are reported with separate layer
information. This is the default behavior if this option is not specified.
no — Shorts are not reported with layer information.
yes — Shorts are reported with separate layer information.
• -flat {no | yes | if_fast}
An optional argument set that specifies whether to perform the short isolation flat. When
this option is specified, one of these arguments must be present:
no — Short isolation is performed hierarchically. This is the default behavior if this
option is not specified.
yes — Short isolation is performed flat.
if_fast — Short isolation is performed flat if it will be faster than performing it
hierarchically.
If the “yes” or “if_fast” (and flat isolation occurs) options are used, then all -by_cell “yes”
or “also” results are reported at the top level.
• -help
An optional argument that shows the command usage.
Return Values
Short isolation transcript and RDB format short isolation database. The name of the database is
current_change_set.shorts.rdb.
Description
Sequentially runs short isolation on all shorts. Performs hierarchical short isolation using the
data from the SVDB database. The short isolation is performed according to the options
specified with LVS Isolate Shorts YES in the rule file. If LVS Isolate Shorts NO is specified,
short isolation is run as if LVS Isolate Shorts YES is specified with no other keywords.
The command returns an ASCII short isolation database as for LVS Isolate Shorts YES. The
format is discussed under “Hierarchical Short Isolation Results Database” in the Calibre
Verification User’s Manual. The database can be used in Calibre LVS RVE.
A sub-directory with the path “svdb/topcell.phdb/isi/” is created to hold RDB files. The files are
written to “./isi/topcell-change_set-shorts”. Where topcell, change_set, and shorts represent
their current values.
Examples
> short_db::isolate_shorts
Current short serial number is 0
Short circuit (index: 0) (cell: TOP) (net_id: 1) (text: PWR).
GND at (13.5,217)
PWR at (442,217.5)
Related Topics
short_db::isolate_short
Short Repair Database Commands
short_db::list_change_sets
Short repairs database command.
Returns a list of all change sets. Change sets contain records of any attempts to isolate or modify
the properties of a short. The change set must have changes in it in order to be listed.
Usage
short_db::list_change_sets [-help]
Arguments
• -help
An optional argument that shows the command usage.
Return Values
List of change sets that have changes in them.
Examples
> short_db::get_change_set
default
> short_db::list_change_sets
change1
default
Related Topics
short_db::remove_change_set
short_db::switch_change_set
short_db::rename_change_set
short_db::mark_fixed
Short repairs database command.
Marks the short associated with the serial number as “FIXED”.
Usage
short_db::mark_fixed -sn serial_number [-help]
Arguments
• -sn serial_number
A required argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
None.
Examples
> short_db::mark_fixed -sn 0
Related Topics
short_db::assign_short
short_db::set_status
short_db::comment_short
short_db::get_serial_number
short_db::remove_change_set
Short repairs database command.
Deletes the contents of a change set.
Usage
short_db::remove_change_set -name set {-all | -sn serial_number} [-help]
Arguments
• -name set
A required argument and change set name to delete.
• -all
A argument that deletes all changes associated with change set. Mutually exclusive with -sn.
• -sn serial_number
A argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Deletes the contents of the specified change set for a short. Change sets contain records of any
attempts to isolate or modify the properties of a short. By default, the changes associated with
the current short are deleted. If the -sn option is used, then the specified short’s changes are
deleted. If the -all option is used, then the entire content of the change set is deleted.
Examples
> short_db::remove_change_set -name change2 -sn 0
Removed change_set group "change2"
Related Topics
short_db::list_change_sets
short_db::switch_change_set
short_db::rename_change_set
short_db::rename_change_set
Short repairs database command.
Renames a change set.
Usage
short_db::rename_change_set -to new_set [-from old_set] [-help]
Arguments
• -to new_set
A required argument and new name of a change set.
• -from old_set
An optional argument and name of a change set to rename. By default, the current change
set is the old_set.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Renames a change set to the new_set name. Change sets contain records of any attempts to
isolate or modify the properties of a short.
By default, the current change set is renamed. The -from option specifies the name of another
change set to rename.
After changes are made to the PHDB, switching back to a previous change set can be performed
with short_db::switch_change_set.
Examples
> short_db::rename_change_set -from default -to change0
Renamed change_set from "default" to "change0"
Related Topics
short_db::list_change_sets
short_db::switch_change_set
short_db::show_change_set
short_db::get_change_set
short_db::set_status
Short repairs database command.
Assigns or removes the status label. By default, this occurs for the current short. If the -sn
option is used, then that short’s status label is affected.
Usage
short_db::set_status -label “string” [-r] [-sn serial_number] [-help]
Arguments
• -label “string”
A required argument and status label name. The quotation marks are literal.
• -r
An optional argument that removes the user defined status label for a short.
• -sn serial_number
An optional argument and serial number of a short.
• -help
An optional argument that shows the command usage.
Return Values
None.
Examples
> short_db::set_status -label assigned
Related Topics
short_db::assign_short
short_db::mark_fixed
short_db::comment_short
short_db::get_serial_number
short_db::show_change_set
Short repairs database command.
Reports the changes in a change set.
Usage
short_db::show_change_set {-all | -sn serial_number} [-name set] [-help]
Arguments
• -all
A argument that returns all changes associated with a change set. Either this argument or the
-sn argument set must be specified.
• -sn serial_number
A argument that returns the subset of changes associated with the short having the
serial_number.
• -name set
An optional argument that specifies the name of a change set.
• -help
An optional argument that shows the command usage.
Return Values
Returns a structured list of lists in this format:
Where serial_number is the integer serial number of the short and si_value is a Boolean value
indicating whether short isolation was run on this short. Zero indicates that short isolation did
not run yet. A value of 1 indicates that short isolation already ran. The change_list argument can
be any number of user-defined Query Server Tcl shell commands.
Description
Returns a list of changes associated with a change set. Change sets contain records of any
attempts to isolate or modify the properties of a short. By default, the current change set is
assumed. Another change set can be specified with the -name option.
The -all argument shows all changes associated with the change set. The -sn argument shows
just the changes associated with the specified short.
Examples
> short_db::show_change_set -name default -sn 0
{ 0 1 {short_db::add_text -label VSS -layer metal1 -pt {47.5 271.0} }} { 0
1 {short_db::delete_text -label VSS -pt { 47.5 271.5 } }} { 0 1
{short_db::add_mask_polygon -layer metal1 -dbu -cell_coordinates -ec {
22500 73000 22500 42000 23500 42000 23500 83000 } }}
Related Topics
short_db::switch_change_set
short_db::rename_change_set
short_db::get_change_set
short_db::list_change_sets
short_db::switch_change_set
Short repairs database command.
Defines a new change set.
Usage
short_db::switch_change_set -to new_set [-help]
Arguments
• -to new_set
A required argument and change set name.
• -help
An optional argument that shows the command usage.
Return Values
Confirmation message.
Description
Defines a new change set if new_set does not exist and makes it the current one. Otherwise, it
makes the (existing) new_set the current one. Change sets contain records of any attempts to
isolate or modify the properties of a short.
Examples
> short_db::get_change_set
Current change_set is "change0"
Related Topics
short_db::list_change_sets
short_db::show_change_set
short_db::rename_change_set
short_db::get_change_set
short_db::user_info
Short repairs database command.
Shows or modifies user information for a short.
Usage
short_db::user_info [-show | -show_all] [-login string] [-uid integer]
[-fname string] [-email string] [-phone string] [-comment “string”] [-help]
Arguments
• -show
An optional argument that shows information about the current user.
• -show_all
An optional argument that shows information on all users.
• -login string
An optional argument that specifies a user’s last name.
• -uid integer
An optional argument that specifies a user’s UNIX ID.
• -fname string
An optional argument that adds a user’s first name.
• -email string
An optional argument that adds an email address.
• -phone string
An optional argument that adds a user’s phone number.
• -comment “string”
An optional argument that adds a user’s comment. Double quotation marks are used to
enclose the comment.
• -help
An optional argument that shows the command usage.
Return Values
If no options are specified, the command returns nothing. For -show or -show_all, user
information is returned.
Description
Shows or adds user information, depending on the options specified. The -show and -show_all
options act independently of other options for this command. If one of these options is specified
together with the adding options, the specified information is added first, then shown as
appropriate.
If neither the -login nor the -uid option is supplied, the present user’s login credentials are
assumed for the options that add information. Otherwise, added information is for the user
specified by -login or -uid. If both options are specified, the -login option has priority and is
searched for first, followed by the -uid option. If the login or uid is found, information is added
accordingly. When using any of the adding options, existing records are overwritten if they
already exist.
Examples
> short_db::user_info -show
userid 30007
lastname
firstname
login jdoe
phone
email
comment
timestamp 2009-01-19 22:40:25
short_sn 0
The timestamp is self-explanatory. The short_sn is the short serial number currently assigned to
the user.
Related Topics
short_db::assign_short
short_db::set_status
short_db::get_status
short_db::get_serial_number
Hcells define correspondence between layout and source cells is hierarchical LVS.
Calibre nmLVS-H cannot determine these correspondences if the subcircuit names are different
in the two designs, so a user-defined hcell list is needed. The Query Server can assist in finding
a prospective set of hcells that act as design partitions to improve comparison efficiency and to
make debugging simpler.
The Query Server Hcell analysis feature helps to identify a useful set of hcells to test.
Commands are provided to read input data, identify hcells through various manual or automatic
means, and to produce reports detailing cells, effectiveness of hcells, statistics on contained
instances, and so forth.
Note
Any hcell list generated by the Query Server should be regarded as provisional and should
be thoroughly tested to ensure validity.
The functionality in the Tcl shell based Query Server (calibre -qs) supersedes similar
functionality in the command-line based Query Server (calibre -query). The historical method
for doing Hcell analysis using the non-Tcl Query Server is discussed under “Hcell List
Management Using Standard Commands.”
See “Hcells” in the Calibre Verification User’s Manual for more information about hcells.
Tip
If you have only one SPICE netlist to evaluate, you specify it as in both Layout Path and
Source Path statements.
Hcells that are explicitly or automatically identified are part of the current hcell list. Hcells are
added to the current hcell list in the following ways:
• Hcell rule file statement. (The LVS Exclude Hcell statement filters out hcells.)
• hcells::hcells command together with an hcell file.
• hcells::hcell command for specifying individual cells.
• hcells::add_matching_hcells command together with hcells::automatch or
hcells::placementmatch commands.
The hcells::hcells and hcells::hcell commands are explicit ways of adding hcells to the current
hcell list. The hcells::automatch and hcells::placementmatch commands cause cells to be
matched automatically. Note that cells identified by the hcells::automatch and
hcells::placementmatch commands are not automatically added to the current hcell list. The
hcells::add_matching_hcells command is needed to add matched cells to the current hcell list.
You can remove cells from the current hcell list with the following commands:
The hcells::status command reports current settings of various hcell analysis commands.
the design, and the proportion of internal instance counts within cells compared to the total
instance count of the design.
Effectiveness thresholds ensure that the most effective hcells are selected. To illustrate the need
for effectiveness measurement, hcells::automatch selects all cells that have the same name in
layout and source. Many of those are usually small cells (like vias), or cells that appear only a
few times in the design and have few internal instances. These cells contribute virtually nothing
to reducing data size or execution time, and sometimes may even degrade performance if used
as hcells. Automatched cells may also result in discrepancies, for example, when the layout
version of the cell does not closely correspond to the source. When hcells::automatch is used
with a reasonable effectiveness threshold, fewer hcells are likely to be selected, and LVS results
are likely to be more useful.
THIC analysis works as follows. Assume there is a cell with two transistors, and the cell is
placed three times. From the flat point of view, there are six device instances. From the
hierarchical point of view, there are five instances: two devices and three placements. The
reduction in THIC if this cell is treated as an hcell is then ((6 - 5)/6 * 100) or 16.7 percent.
The hcells::select command iteratively identifies the most effective hcells based partly upon
THIC. Identification of new hcells continues until the combined incremental benefit of all
remaining hcell candidates, taken together, falls below a configured threshold. By default, the
threshold is set so that hcells that collectively provide less than a 30 percent reduction in THIC
are not selected. This threshold is reflected in the Potential Remaining Savings column of the
hcell evaluation report. See “Hcell Evaluation Report Format” on page 457.
The hcells::select command also considers the instance count with a cell (at its top level) and
compares this to the total flat instance count of the design. By default, if a cell’s internal
instance count represents one percent of the total flat instance count of the design, that cell is
selected as an hcell, even if it contributes nothing to THIC savings. This instance count
threshold ensures large cells with many instances can also serve as hcells. The instance counts
are shown in the Instance Count In This Cell column of the hcell evaluation report.
When hcells::evaluate_current_hcells -no is set, current hcells are always kept in the current
hcell list regardless of whether they actually meet the evaluation thresholds.
Following is an example of hcell report generation where both layout and source are assumed to
be SPICE.
$ calibre -qs
> hcells::automatch -strict
> hcells::read -rules lvs.rules
> hcells::add_matching_hcells
> hcells::select -threshold 30 1 -file cells.report
> hcells::print_hcells -file hcells
This script identifies hcell candidates based upon the automatch algorithm, which is discussed
in the reference documentation for hcells::automatch. Additionally, any Hcell specification
statements in the rule file are read. The entire collection of hcell candidates are then evaluated
against the thresholds (which are defaults in this case).
Note
If the layout is geometric, then only the source netlist is evaluated.
The contents of the HCELL EVALUATION REPORT in the cells.report file are the same as
the ones generated by the Query Server’s NETLIST SELECT HCELLS command. See “Hcell
Evaluation Report Format” on page 457 for an example report.
The hcells::print_hierarchy command prints a hierarchy report that can be useful when adding
or removing hcells from the current list.
You can use hcells::hcell to add hcells to the current list and hcells::clear_hcell to remove hcells
from the current list. The generated hcell list should be thoroughly tested in LVS runs to ensure
it performs well and produces valid results.
Following is an example that reads an hcell file, removes hcells that cause inefficiency in the
layout database, and then analyzes the source netlist using those hcells. In this example, the rule
file specifies a geometric Layout System and Source System SPICE.
$ calibre -qs
> hcells::hcells -file hcells
> hcells::automatch -strict
> hcells::read -rules extract.rules -auto_expand preset
> hcells::add_matching_hcells
> hcells::print_hcells -file cells.extract
• Reads in an hcell correspondence file called hcells. If no hcell file exists, you can skip
hcells::hcells.
• Designates cells having the same names and numbers of ports in layout and source as
potential hcells.
• Reads hcells based on the rule file and uses the internal automatic hcell expansion
setting as a filter. If this filtering is too restrictive (too many hcells are being expanded,
so your hcell list is too small), you can relax the -auto_expand preset setting.
• Adds the unexpanded layout cells to the current hcell list. If you want to filter the list
further for the LVS comparison stage, use hcells::select in a subsequent step.
• Prints the selected hcells to the file cells.extract.
• Cannot match one cell in the source to many (with different names) in the layout.
• Executes after netlist extraction, where undesirable cell expansion can occur and hcell
candidates are subsequently missed.
• Cannot determine when a cell has been mirrored (flipped). When such cells are used as
hcells, this can lead to false errors.
• Does not consistently match cells having unlike names in layout and source.
Related Topics
Hcell and Hierarchical Analysis
$ calibre -qs
Read the reports and select an hcell pair. Add the pair using the hcells::hcell command, and
regenerate the reports:
Runtime performance for regenerating the report after adding a pair of hcells is fast even for
large designs. Regenerating the report identifies the next highest potential hcell candidates
taking into account the new hcell. (Note that specifying additional hcells will decrease the
potential importance of other cells that share hierarchy above and below that hcell.)
See “Hcell Analysis and Hierarchy Tree Report Format” on page 459.
hcells::add_matching_hcells
Hcell analysis command. Corresponding NETLIST command: NETLIST ADD MATCHING
HCELLS.
Adds cells identified with the hcells::automatch or hcells::placementmatch commands to the
current hcell list.
Usage
hcells::add_matching_hcells [-help]
Arguments
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134)
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
hcells::automatch
hcells::placementmatch
hcells::automatch
Hcell analysis command. Corresponding NETLIST command: NETLIST AUTOMATCH.
Identifies layout and source cells that match by name.
Usage
hcells::automatch {-off | -on | -strict} [-help]
Arguments
• -off
Argument that specifies cells with names that match between source and layout are not used
as hcells. This is the default.
• -on
Argument that specifies cells with names that match between source and layout are used as
hcells. This setting should only be used when it is certain that source subcircuits match
corresponding layout cells of the same name. The tool does not check that matched cells of
the same name are also topologically equivalent.
• -strict
Argument that specifies cells are matched as with -on but must also have the same number
of ports.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134)
Description
Causes cells with the same name in layout and source to be identified as candidates for the
current hcell list. Using -on is similar to the -automatch command line option in Calibre
nmLVS. Cell names that are the same are paired as hcells. Cell names that begin with
ICV_[nnn] are reserved for internal use and are not used as hcells.
Cells matched by this command are added to the current hcell list using
hcells::add_matching_hcells.
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
hcells::clear_hcell
Hcell analysis command. Corresponding NETLIST command: NETLIST CLEAR HCELL.
Removes a corresponding cell pair from the current hcell list.
Usage
hcells::clear_hcell -layout layout_name -source source_name [-help]
Arguments
• -layout layout_name
Required argument and layout cell name to delete from the hcell list.
• -source source_name
Required argument and source cell name to delete from the hcell list.
• -help
Optional argument that shows the command usage.
Return Values
NOK(49)
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
hcells::clear_hcells
Hcell analysis command. Corresponding NETLIST command: NETLIST CLEAR HCELLS.
Removes all corresponding cell pairs from the current hcell list.
Usage
hcells::clear_hcells [-help]
Arguments
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134)
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
hcells::evaluate_current_hcells
Hcell analysis command. Corresponding NETLIST command: NETLIST EVALUATE
CURRENT HCELLS.
Controls hcell effectiveness evaluation.
Usage
hcells::evaluate_current_hcells {-yes | -no} [-help]
Arguments
• -yes
Required argument that specifies all cells in the current hcell list are evaluated along with
cells selected by automatic means (hcells::automatch and hcells::placementmatch). This is
the default.
• -no
Required argument that specifies all cells in the current hcell list remain in the list after
evaluation.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(148)
Description
Controls whether cells in the current hcell list undergo evaluation by hcells::select.
When -yes is used, cells in the current hcell list are removed from the list if they do not meet the
hcells::select evaluation thresholds. The -no option is useful when you know the current hcell
list contains cells that you want to remain in the hcell list.
Related Topics
Evaluation of Hcells for LVS Comparison
Evaluation of Hcells for Netlist Extraction
Tcl Shell Hcell Analysis Commands
hcells::expand_unbalanced
Hcell analysis command. Corresponding NETLIST command: NETLIST EXPAND
UNBALANCED.
Controls unbalanced hcell expansion.
Usage
hcells::expand_unbalanced {-rules | -no | -yes} [-help]
Arguments
• -rules
Argument that causes unbalanced cell expansion to follow the LVS Expand Unbalanced
Cells specification statement in the rule file (the default rule file setting is YES). This is the
default.
• -no
Argument that prevents expansion of unbalanced cells regardless of settings in the rule file.
• -yes
Argument that causes expansion of unbalanced cells regardless of settings in the rule file.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134)
Related Topics
Unbalanced Hcell Reporting
Tcl Shell Hcell Analysis Commands
hcells::hcell
Hcell analysis command. Corresponding NETLIST command: NETLIST HCELL.
Adds a single hcell pair to the current hcell list. The cells must correspond between layout and
source.
Usage
hcells::hcell -source source_name -layout layout_name [-help]
Arguments
• -source source_name
Required argument and source cell name to add to the hcell list.
• -layout layout_name
Required argument and layout cell name to add to the hcell list.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134)
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
hcells::hcells
Hcell analysis command. Corresponding NETLIST command: NETLIST HCELLS.
Creates a current hcell list from an hcell file. The current hcell list, if any, is cleared first.
Usage
hcells::hcells -file filename [-help]
Arguments
• -file filename
Required argument and pathname of an hcell file.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(101), ERROR(134), ERROR(146)
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
hcells::placementmatch
Hcell analysis command. Corresponding NETLIST command: NETLIST
PLACEMENTMATCH.
Identifies corresponding layout and source cells by placement count.
Usage
hcells::placementmatch {-off | -on | -loose} [-help]
Arguments
• -off
Argument that specifies placement matching does not occur. This is the default.
• -on
Argument that specifies placement matching occurs and pin counts must be the same to get
a match.
• -loose
Argument that specifies placement matching occurs regardless of pin count.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134)
Description
Identifies hcell candidates for addition to the current hcell list if the number of times the cells
appear in layout and source are identical and the number is unique. Cells matched by this
command are added to the current hcell list using hcells::add_matching_hcells.
Note that this command can identify invalid hcell pairings, so its output should be carefully
verified. If invalid pairings are made for an LVS run, high memory consumption, long run
times, and false errors are possible.
This command also causes the hcells::print_hierarchy command to flag cells using the
placement matching heuristic. Cells that match (or could match) using this methodology have
their names preceded by a pound (#) character in the report.
Related Topics
Tcl Shell Hcell Analysis Commands
hcells::print_hcells
Hcell analysis command. Corresponding NETLIST command: NETLIST REPORT HCELLS.
Writes the current list of hcells to a file.
Usage
hcells::print_hcells -file filename [-help]
Arguments
• -file filename
Required argument and output filename of an hcell list.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(101)
Related Topics
Tcl Shell Hcell Analysis Commands
Evaluation of Hcells for LVS Comparison
Evaluation of Hcells for Netlist Extraction
hcells::print_hierarchy
Hcell analysis command. Corresponding NETLIST command: NETLIST REPORT
HIERARCHY.
Writes a hierarchy tree report of cell statistics.
Usage
hcells::print_hierarchy -file filename {-source | -layout} [-help]
Arguments
• -file filename
Required argument that specifies the output file name of the hierarchy tree report.
• -source
Argument that creates a source netlist report.
• -layout
Argument that creates a layout netlist report.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(101), ERROR(136), ERROR(143), ERROR(144)
Description
Writes a hierarchy tree report for the source or layout netlist to the filename. Either -source or
-layout must be specified. The report statistics are based upon the current hcell list, if any.
See “Hcell Analysis and Hierarchy Tree Report Format” on page 459 for details about the
report.
Related Topics
Tcl Shell Hcell Analysis Commands
Evaluation of Hcells for LVS Comparison
Evaluation of Hcells for Netlist Extraction
hcells::read
Hcell analysis command. Corresponding NETLIST command: NETLIST READ.
Reads in the layout and source netlists, along with any Hcell statements that may be in the rule
file.
Usage
hcells::read -rules rulefile [-source | -layout] [-auto_expand {n | NONE | ALL | PRESET}]
[-report {n | PRESET | ALL | NONE}] [-help]
Arguments
• -rules rulefile
Required argument that specifies the LVS rule file.
• -source
Optional argument that specifies to read the source netlist.
• -layout
Optional argument that specifies to read the layout netlist.
• -auto_expand {n | NONE | ALL | PRESET}
Optional argument set that controls expansion of HIGH COST hcells in the layout geometry
database. This option functions similarly to the LVS Auto Expand Hcells rule file statement
and overrides that statement when present in the rule file. This option applies only when
reading a layout geometry database.
NONE is the default and causes no hcells to be expanded. ALL expands all hcells that are
subject to expansion. PRESET uses internal heuristics to determine the best hcells to
expand, if any. The n parameter is a positive integer less than 100 that specifies a threshold
value as a percent. Hcells that exceed the threshold are expanded.
• -report {n | PRESET | ALL | NONE}
Optional argument set that identifies HIGH COST hcells in the layout geometry database
and reports them in the transcript. This option functions similarly to the LVS Auto Expand
Hcells rule file statement REPORT keyword and overrides that statement when present in
the rule file. This option applies only when reading a layout geometry database.
PRESET is the default and uses internal heuristics to determine the hcells to report, if any.
NONE specifies no hcells are reported. ALL reports all hcells that are subject to reporting.
The n parameter is a positive integer less than 100 that specifies a threshold value as a
percent. Hcells that exceed the threshold are reported.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134), ERROR(135), ERROR(145)
Description
Causes the source and layout netlists specified in the rulefile to be read into memory for
analysis. The rulefile should be an LVS rule file where both physical layout and source are
specified. Additionally, any Hcell statements in the rule file are read and added to the current
hcell list.
When neither -source nor -layout is specified, this command reads both source and layout
databases for evaluation. Hcell analysis finds corresponding cells based upon the matching
conditions specified (automatch, placementmatch, or explicit cell matching list).
When the Layout System is geometric and automatching is requested, the layout database is
examined for names that appear in the source netlist so that automatch hcell candidates can be
appropriately identified.
The -source and -layout options cause this command to read only the source or layout netlist,
respectively, and use it as both source and layout. The hcell analysis is based only upon the
specified netlist.
The -auto_expand and -report options function similarly to the LVS Auto Expand Hcells
specification statement options and are used for hcell expansion reporting and control.
Examples
> hcells::read -rules calibreLVS.rul
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
Evaluation of Hcells for LVS Comparison
hcells::select
Hcell analysis command. Corresponding NETLIST commands: NETLIST SELECT HCELLS
and NETLIST EVALUATION THRESHOLD.
Selects hcells in the current hcell list and generates a report of the current hcell statistics.
Usage
hcells::select -file filename [-threshold THIC_threshold [flat_threshold]] [-help]
Arguments
• -file filename
Required argument and evaluation report pathname.
• -threshold THIC_threshold [flat_threshold]
Optional argument and evaluation thresholds expressed as percentage values from 0 to 100.
The THIC_threshold represents the computational savings based upon total hierarchical
instance count (THIC) reduction. The default THIC_threshold is 30 percent. The
flat_threshold represents the ratio of a cell’s internal instance count (top level of the cell) to
the entire design’s flat instance count, in percent. The default flat_threshold is 1. If a cell
satisfies the flat_threshold, it is selected as an hcell regardless of THIC savings.
• -help
Optional argument that shows the command usage.
Return Values
ERROR(134), ERROR(136), ERROR(148), ERROR(149)
Description
Generates an hcell evaluation report and sets the current hcell list based upon the -threshold
settings. By default, cells that represent less than a 30 percent reduction in total hierarchical
instance count (THIC) and that contain less than 1 percent of the total flat instance count of the
design are not selected. Increasing either THIC_threshold or flat_threshold tends to reduce the
number of selected hcells.
The report is written to the filename. See “Hcell Evaluation Report Format” on page 457.
If hcells::evaluate_current_hcells -no is set, then hcells::select does not adjust the current hcell
list, but the report is generated, as usual.
Related Topics
Tcl Shell Hcell Analysis Commands
Evaluation of Hcells for LVS Comparison
hcells::status
Hcell analysis command. Corresponding NETLIST command: NETLIST STATUS.
Displays the settings of the hcell evaluation system.
Usage
hcells::status
Arguments
None.
Return Values
ERROR(134), ERROR(135), ERROR(145)
Examples
> hcells::status
automatch: on
placementmatch: on
THIC threshold: 30%
Flat instance count threshold 1%
evaluate current hcells: yes
hcell file: cells.list
expand unbalanced: from rules
read from rule file: calibreLVS.rul
Related Topics
Tcl Shell Hcell Analysis Commands
Current Hcell List
Rule files are read using the NETLIST READ command. You can then specify hcells explicitly
or automatically.
You can see a hierarchy report by using the NETLIST REPORT HIERARCHY command. This
report can assist in choosing hcell candidates manually.
You can add cells to the current hcell list in any of the following ways:
• The Hcell rule file statement adds hcells through the rule file.
• NETLIST HCELLS adds hcells from an hcell file.
• NETLIST HCELL adds hcells manually.
• NETLIST AUTOMATCH or NETLIST PLACEMENTMATCH identify matching
hcells automatically.
• NETLIST ADD MATCHING HCELLS adds cells identified with the automatch or
placement matching heuristics.
Hcells that have been explicitly identified are part of the current hcell list. Hcells identified
through the automatch and placement matching heuristics are not, by default, part of the current
hcell list until NETLIST SELECT HCELLS is used.
You can remove cells from the current hcell list with the following commands:
The NETLIST SELECT HCELLS automatically selects hcells for the designs that have been
read in. The command calculates the effectiveness of hcells at reducing the total hierarchical
instance count (THIC) of the design. The command works by iteratively identifying the most
effective hcell and calculating the THIC with that cell counted as an hcell. Both layout and
source are considered in the calculation, when available. Identification of new hcells continues
until the combined incremental benefit of all remaining hcell candidates, taken together, falls
below the THIC threshold, which is selectable. By default, hcells that collectively provide less
than a 30 percent reduction in THIC are not reported.
In addition, hcells whose instance count (at the top level of the cell) represents at least one
percent of the total flat instance count of the design are selected by default, regardless of their
contribution to THIC savings. This is a selectable threshold.
You can configure execution of the NETLIST SELECT HCELLS command through the
following commands:
The rule file is assumed to have Layout System SPICE. (If this is not the case, then the
NETLIST HCELLS command must be used to specify hcell names and evaluation occurs for
the source netlist only.) Here is a sequence of commands for hcell evaluation:
calibre -query
NETLIST AUTOMATCH STRICT (match hcells by name and pins)
NETLIST READ rules (read the rule file)
NETLIST ADD MATCHING HCELLS (add matching cells to current list)
RESPONSE FILE cells.eval (send the report to this file)
NETLIST SELECT HCELLS (create hcell report and add
new cells to hcell list)
RESPONSE FILE cells (send cell names to this file)
NETLIST REPORT HCELLS (write the hcell list)
This writes a cells.eval report with cell statistics. The report is sorted by cell count and shows
memory savings percentages for hcell pairs in layout and source. See “Hcell Evaluation Report
Format” on page 457 for an example report. Using the report, you can choose to add (NETLIST
HCELL) or remove hcells (NETLIST CLEAR HCELL) from the current list.
The file cells contains a list of hcells that meet the default evaluation criteria. This can be used
as a -hcell list in LVS-H. This list may not be optimal, so you should test it thoroughly,
checking memory use and LVS results for validity.
This shows an interactive sequence of commands for checking the hcell candidates from the
automatic matching algorithms:
calibre -query
NETLIST READ rules (read the rule file netlists)
NETLIST CLEAR HCELLS (clear the current hcell list)
NETLIST AUTOMATCH ON (automatch hcells by names)
NETLIST PLACEMENTMATCH ON (match hcells by placement count)
NETLIST ADD MATCHING HCELLS (add matching cells to current list)
NETLIST SELECT HCELLS (select hcells in the current list
and return a report to the shell)
NETLIST EVALUATE CURRENT HCELLS NO (now discount hcell efficiency)
NETLIST ADD MATCHING HCELLS (add matching cells to current list)
NETLIST SELECT HCELLS (update the current hcell list)
NETLIST REPORT HCELLS (show the hcell list again)
In this case, the reports and cell lists are returned to the shell. The final hcell list shows all cells
that were matched automatically, not taking into account their efficiency as hcells. The
RESPONSE FILE command can be used to save the outputs to separate files for comparison.
• A Mask SVDB Directory generated from a connectivity extraction run (calibre -spice),
where the QUERY keyword has been used.
• An LVS connectivity extraction rule file.
• Extracted layout SPICE netlist.
Procedure
1. Copy the connectivity extraction rule file to a new name, as follows:
cp extract.rules hcell_gen.rules
2. Open the hcell_gen.rules file and ensure these settings are active:
LAYOUT SYSTEM SPICE
LAYOUT PATH layout.sp // extracted SPICE netlist
Hierarchy Reporting
The NETLIST REPORT HIERARCHY command produces a report of cells found in the source
or layout hierarchy. Cells that would make good hcells appear in order of priority, from top to
bottom, in the table found in the report.
When trying to identify potential hcells, generate reports for both the source and the layout, if
possible. (If both designs are not available, create a rule file that compares the available design
with itself.) For example, given a rule file named rules with the following lines:
calibre -query
Now select an hcell pair from the reports, add it using the NETLIST HCELL command, and
regenerate the reports:
Regenerating the report after adding a pair of hcells is fast even for large designs. This sequence
identifies the next highest potential hcell candidates taking into account the new hcell. (Note
that specifying additional hcells lessens the potential importance of other cells that share
hierarchy above and below that hcell.)
See “Hcell Analysis and Hierarchy Tree Report Format” on page 459 for details.
Total Hier. Instance Count Layout and Source — The instance counts in the layout and
source netlist for each cell. If only the source is analyzed the Layout column is empty and vice
versa.
Instance Count In This Cell Layout and Source — The counts of instances at the primary
level of each cell in the layout and source.
Saved By This Cell — Percentage of Total Hierarchical Instance Count (THIC) saved by the
hcell pair. For example, a cell with two device instances that is placed three times represents a
total of six flat instances. But if the cell is used as an hcell, there would be five instances (two
devices and three calls to the cell with the devices). This would result in a 16.7 percent savings
for the cell.
Total Savings So Far — Percentage of THIC saved by hcell pairs above and including the
current pair. By default, when this value reaches 30%, no additional hcells are selected due to
THIC savings.
Potential Remaining Savings — Percentage of THIC that could be saved by other hcells.
Instance Count In This Cell — The total number of instances contained at the top level of the
cell. By default, when this number is at least one percent of the total flat instance count of the
design, the cell is selected as an hcell regardless of the contribution the cell may make to THIC
savings.
Layout and Source Cell Name — Cell names of corresponding cells in layout and source. If
only the source is analyzed the Layout Cell column is empty and vice versa.
Parameters
None.
Examples
This example shows an analysis of the source netlist alone. The cell name columns on the right
side of the report have been removed to conserve space.
=======================
C A L I B R E L V S
HCELL EVALUATION REPORT
=======================
...
The final two lines in the report represent cells that made no contribution to THIC savings (the
Saved By This Cell column value is null). These cells were selected as hcells because the
instances they contain (9040 and 6681) represent at least one percent of the total flat instance
count of the design.
Related Topics
Netlist Hcell Analysis and Reporting Flow
Hcell List Management Using Standard Commands
The header of the file contains a description of the file’s columns. This shows a header for a
layout hierarchy report. The numbered sections correspond to column numbers in the hierarchy
table. A source hierarchy report contains a subset of the information under item 10 under
Column Definitions.
========================================
C A L I B R E L V S
HCELL ANALYSIS AND HIERARCHY TREE REPORT
========================================
Column Definitions
------------------
Flat - The following columns present statistics concerning the flattened
design.
With Hcells - the following columns present statistics taking into account
the current hcells and automatch setting.
The hierarchy table immediately follows the header. An example is shown later in this section.
The hierarchy tree follows the hierarchy table. It follows this general form:
Hierarchy Tree
--------------
Parameters
None.
Examples
The following is an excerpt of a hierarchy table from an actual report. It is shown divided into
two parts in order to fit the page width.
Column 9 shows a savings of 0.0 for cells that are already included in the current hcell list.
Hierarchy Tree
--------------
In some cases the following line may appear due to unbalanced hcell placement counts in the
two designs.
Related Topics
Netlist Hcell Analysis and Reporting Flow
Hcell List Management Using Standard Commands
The hcells::select and NETLIST SELECT HCELLS command takes unbalanced cell expansion
into account when ranking hcells, calculating memory savings, and calculating instance counts.
For example, if cell A in the layout is placed exactly 1000 times, and cell B in the source is
placed exactly 1000 times, and no other cell in layout or source is placed exactly 1000 times,
then the cells A and B are selected as hcells for analysis. By default, cells matched using this
feature must have the same number of pins in layout and source. The count used is the flat
instance count, column (1), in the hcell analysis report. The search for matched hcells occurs
among remaining non-hcells after any explicit hcells and automatch hcells are identified.
For example, when hcells::placementmatch -on is specified, the hcell analysis section of the
report has these features in column 10:
This section contains the runtime messages given by the Query Server.
Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Failure Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Note Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Error Messages
This section describes the errors that may be returned as acknowledgments. Errors generally
involve avoidable problems, such as unknown commands, missing arguments, or environment
failures.
Failure Messages
This section describes the failures that may be returned as acknowledgments. They indicate the
command (usually a request for design information) was performed but failed to produce the
requested response.
The following is a list of failure messages from the Query Server Tcl shell.
Note Messages
The following NOTE messages can be issued:
• NOTE: Backward compatibility mode used for LNXF file generation: Old SVDB -
Rerun calibre.
This is issued when the SVDB is created with Calibre 2009.1 or earlier, but LNXF file
generation requires a later version of the tool to generate the SVDB.
• NOTE: Backward compatibility mode used for LNXF file generation: LAYOUT
NETLIST NAMES NONE was set.
This is issued in Calibre 2012.3 or later when LAYOUT NETLIST NAMES NONE is
set and an LNXF file is generated. The LNXF format is an older format in this case. To
get the later format, use LAYOUT instead of NONE.
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.
The purpose of hierarchical cell (hcell) analysis in netlist extraction and performance optimization is to identify and manage a set of hcells that can improve the efficiency of Layout versus Schematic (LVS) comparisons and reduce memory usage. Hcell analysis helps partition the design to improve performance and make debugging simpler by identifying and selecting cells that can correspond between layout and source, thus enhancing netlist comparison and extraction processes . By analyzing hierarchical structures, hcell analysis can optimize the performance through the reduction of total hierarchical instance counts, ensuring only the most beneficial cells are selected as hcells . It also provides tools and reports to evaluate the potential savings and effectiveness of selected hcells in reducing computational overhead during the analysis .
Setting `LAYOUT NETLIST ANNOTATED DEVICES` to YES during SPICE netlist generation results in using annotated device layers instead of the originally-recognized ones. This promotes annotated devices to higher-level circuits within the design, which can better represent logical hierarchy and physical layout in the netlist, provided that the LVS Annotate Devices specification is included in the rule file .
The LAYOUT NETLIST SEPARATED PROPERTIES command controls whether separated properties are written to the output netlist. It is mutually exclusive with LAYOUT NETLIST ANNOTATED DEVICES YES, meaning they cannot both be active simultaneously, which impacts the netlist's descriptive details concerning device properties. This interaction demands careful configuration to decide what property information is preferred in the output, balancing between annotated device and property details .
Challenges in managing text labels with `qs::delete_text` include ensuring accurate specification of the short iterator and text label parameters for successful deletion. The command only deletes manually added text and not those originating from the layout, which requires precise usage of options like coordinates or label names to isolate shorts effectively. Failing to provide correct options results in an unsuccessful deletion attempt .
The setting for LOWERCASE device names within Calibre's Connectivity Interface determines the text case used for device names in the output netlist. It helps in ensuring consistency in naming conventions, readability, and compatibility with systems or languages that may have case-specific nomenclature requirements .
Calibre nmLVS may remove nets during comparison when they are filtered out for not connecting to more than one device, or are involved only with devices reduced into structures for comparison, such as device reduction and logic gate recognition. Such removals impact the Query Server's NET SOURCE command because it retains limited ability to cross-reference nets discarded during comparison, unless traced down in the layout database with an unambiguous correspondence point .
The `qs::close_svdb` command ensures data integrity by closing the database without quitting the Query Server, effectively saving the current state unless the `-force` option is used, which discards changes. This allows users to close their session in a controlled way, preserving any necessary data integrity up to that point .
The FILTER LAYERS command influences the NET EXTERNAL SHAPES command by controlling which layers are considered when returning vertices of external net shapes connected to the current query cell. Specifically, only shapes on the layers allowed by the current setting of the FILTER LAYERS command are included in the results . If an invalid layer list is used, the previous list is retained, ensuring the NET EXTERNAL SHAPES command only works with valid and relevant layers per the filter setup .
The main function of the NET BROWSE DEVICES command in Calibre's Query Server Manual is to return information about devices on a layout net. It uses a required pathname of a layout net relative to the query cell and an optional pathname of a cell placement relative to the query cell. The command traces the layout_net_path upward to its highest hierarchical representative before listing the devices and also shows placements that contain additional devices on the specified net down the hierarchy .
The NET LOCATION command identifies net pathnames at specific x y coordinates in the query cell context. It works by searching for nets that intersect with the given coordinates, considering all shapes that are part of the net by flattening the hierarchy directly below the specified location. Only shapes on layers included in the current client’s FILTER LAYERS list are considered, and only connectivity layers are examined. If multiple net shapes overlap the specified coordinates, all corresponding nets are returned .