Calbr 3dstack User
Calbr 3dstack User
          Document Revision 10
Unpublished work. © Siemens 2020
This document contains information that is confidential and proprietary to Mentor Graphics Corporation, Siemens
Industry Software Inc., or their affiliates (collectively, "Siemens"). 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 confidential and proprietary information.
This document is for information and instruction purposes. Siemens 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 Siemens to determine whether any changes have been made.
The terms and conditions governing the sale and licensing of Siemens products are set forth in written agreements
between Siemens and its customers. End User License Agreement — You can print a copy of the End User
License Agreement from: mentor.com/eula.
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 Siemens whatsoever.
SIEMENS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
AND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.
SIEMENS SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL OR
PUNITIVE DAMAGES, LOST DATA OR PROFITS, EVEN IF SUCH DAMAGES WERE FORESEEABLE, ARISING
OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT, EVEN IF SIEMENS
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
LICENSE RIGHTS APPLICABLE TO THE U.S. GOVERNMENT: This document explains the capabilities of
commercial products that were developed exclusively at private expense. If the products are acquired directly or
indirectly for use by the U.S. Government, then the parties agree that the products and this document are
considered "Commercial Items" and "Commercial Computer Software" or "Computer Software Documentation," as
defined in 48 C.F.R. §2.101 and 48 C.F.R. §252.227-7014(a)(1) and (a)(5), as applicable. Software and this
document may only be used under the terms and conditions of the End User License Agreement referenced above
as required by 48 C.F.R. §12.212 and 48 C.F.R §227.7202. The U.S. Government will only have the rights set forth
in the End User License Agreement, which supersedes any conflicting terms or conditions in any government order
document, 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 Siemens or
other parties. No one is permitted to use these Marks without the prior written consent of Siemens or the owner of
the Marks, as applicable. The use herein of third party Marks is not an attempt to indicate Siemens as a source of a
product, but is intended to indicate a product from, or associated with, a particular third party. A list of Siemens'
trademarks may be viewed at: www.plm.automation.siemens.com/global/en/legal/trademarks.html and
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.
 Author: In-house procedures and working practices require multiple authors for documents. All
 associated authors for each topic within this document are tracked within the Mentor Graphics
 Technical Publication’s source. For specific topic authors, contact Mentor Graphics Technical
 Publication department.
 Revision History: Released documents maintain a revision history of up to four revisions. For
 earlier revision history, refer to earlier releases of documentation which are available on https://
 support.sw.siemens.com/.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
4                                                                        Calibre® 3DSTACK User’s Manual, v2020.2
    Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                        Table of Contents
Revision History
Chapter 1
Introduction to Calibre 3DSTACK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                       11
  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  3D-IC Description Language Usage Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                            16
  Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     16
  Documentation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                17
Chapter 2
Getting Started With Calibre 3DSTACK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                            19
 Calibre 3DSTACK Invocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   20
   calibre -3dstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      21
   Invoking Calibre Interactive for Calibre 3DSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                23
 Using Calibre 3DSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 24
   Creating a Calibre 3DSTACK Rule File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                          24
   Running a Calibre 3DSTACK Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                            27
     Running a Calibre 3DSTACK Verification from the Command Line. . . . . . . . . . . . . . .                                               28
     Running a Calibre 3DSTACK Verification from Calibre Interactive . . . . . . . . . . . . . . .                                           29
     Running Calibre Interactive 3DSTACK From Calibre DESIGNrev . . . . . . . . . . . . . . . .                                              31
   Calibre 3DSTACK Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  33
   Assembly Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          34
   Calibre 3DSTACK Results Analysis Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                               37
     Highlighting DRC Results from a Calibre 3DSTACK Run. . . . . . . . . . . . . . . . . . . . . . .                                        38
     Opening a Calibre 3DSTACK DFM Database in Calibre RVE. . . . . . . . . . . . . . . . . . . .                                            40
     Debugging Connectivity Errors in Calibre 3DSTACK . . . . . . . . . . . . . . . . . . . . . . . . . .                                    43
     Using Path Isolation to Debug Shorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                      48
     Viewing Design Elements in a Schematic View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                               51
     Verification Results Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               51
   Calibre Interactive for Calibre 3DSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                         53
     Creating a Source Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             53
     Specifying a Source Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               55
     Specifying Report and Results Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                       57
     Specifying Assembly Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                    58
     Selecting Specific Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               59
     Writing a Calibre Interactive Customization File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                            60
     Triggers in Calibre Interactive 3DSTACK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                          61
Chapter 3
Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              63
 Rule File Format and Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               65
 System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        67
   select_checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          203
   unselect_checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            206
   3dstack_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          209
  Check Text Override Comments for Calibre 3DSTACK . . . . . . . . . . . . . . . . . . . . . . . . . . .                                        211
Chapter 4
Calibre 3DSTACK Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   215
 System Netlist Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               216
   System Netlist Generator Flow and Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                               218
     Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         218
     sng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   220
   System Netlist Generator Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                225
     System Netlist Generator GUI Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                        225
     Main Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             228
     Properties Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           231
     Set Net Name Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  232
   System Netlist Generator Configuration File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                  233
     PLACEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 234
     CONNECTIVITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   235
     EXPORTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            237
   System Netlist Generator Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                           238
     sng::create_journal_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               240
     sng::export_db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           241
     sng::export_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            242
     sng::new_db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          243
     sng::open_db. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          244
     sng::save_db . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         245
     sng::filter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     246
     sng::get_begin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          248
     sng::get_buses. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          250
     sng::get_chips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         251
     sng::get_nets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        252
     sng::get_pins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         253
     sng::get_placements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              254
     sng::get_ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         255
     sng::get_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            257
     sng::get_property_names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  258
     sng::incr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      260
     sng::set_property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            261
     sng::sort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      262
     sng::add_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         264
     sng::connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         265
     sng::create_chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           267
     sng::create_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                268
     sng::import_chip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            269
     sng::remove_chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             271
     sng::remove_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            272
     sng::remove_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  273
       sng::set_net_name_template. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               274
       sng::unconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      275
    AIF Converter Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .           276
     AIF Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     276
     AIF Export File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            278
     3dstack::aif2gds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      280
     3dstack::aif2oasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      281
     3dstack::aif2spice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      282
    Spreadsheet Converters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         283
     3dstack::ss2gds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     284
     3dstack::ss2oasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     286
     3dstack::ss2spice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      288
     3dstack::xsi2gds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      290
     3dstack::xsi2oasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      293
     3dstack::xsi2spice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      296
Appendix A
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   299
 Calibre 3DSTACK Flow Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                        300
   Example Design Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  300
   Preparing the Dies for Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   301
   Creating the Calibre 3DSTACK Rule File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                          302
   Writing Assembly Operations in the Calibre 3DSTACK Rule File . . . . . . . . . . . . . . . . . .                                          304
    Setting Up Global Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                304
    Defining Dies Used in the Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                       305
    Defining Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          308
    Defining Layer Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  316
    Placing the Dies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         318
   Writing Verification Checks in the Calibre 3DSTACK Rule File . . . . . . . . . . . . . . . . . . .                                        322
    Checking Connectivity (LVS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                    322
    Checking Layer Spacing (DRC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                      323
    Checking For Sufficient Pad Overlap (DRC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                             324
 System Netlist Generator Flow Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                        326
   Creating a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            327
   Importing Chips into the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   328
   Modifying and Adding Pins on Chips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                        330
   Creating Placements for the Chips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   331
   Defining Net Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               333
   Exporting the Complete Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   335
 Rule File Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          338
   Calibre 3DSTACK+ Extended Syntax Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                  338
   Standard (Legacy) Syntax Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                        344
   Standard (Legacy) Syntax Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                        346
 Report File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         348
   Report Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       348
   Summary of Drawn Layers, Placements, and Text Layers. . . . . . . . . . . . . . . . . . . . . . . . .                                     348
   Verification Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          351
Appendix B
Standard Calibre 3DSTACK Syntax Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                          355
  System and Miscellaneous Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                             356
    assembly_path_extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   357
    export_connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               358
    export_layout (Standard Syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                       363
    export_template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             367
    layer_props_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            370
    report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    372
    run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   374
    set_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         376
    source_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         377
    source_netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          379
    svrf_spec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       384
    warning_severity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             385
  Assembly Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   386
    anchor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      388
    attach_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       390
    connect (Standard Syntax) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   392
    derived_connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             394
    ignore_pin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        395
    ignore_trailing_chars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               396
    import_net_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              398
    import_pin_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              399
    import_text_labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .              400
    layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     402
    layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      405
    layout_case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         408
    layout_primary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .            409
    map_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .             410
    net_map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        412
    pin_map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         413
    pin_swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        415
    place_chip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        416
    place_layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         419
    rename_text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          422
    trace_text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       424
  Standard Rule Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .               426
  set_auto_rve_show_layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  434
  set_rve_cto_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          435
  tvf_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       437
Appendix C
Error and Warning Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
 Warning Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Index
Third-Party Information
End-User License Agreement
with EDA Software Supplemental Terms
 The Calibre® 3DSTACK application enables you to verify designs containing flip chips,
 Through Silicon Vias (TSVs), and other 2.5D and 3D-IC configurations.
 For an introduction to the Calibre 3DSTACK tool, view the following getting started video:
 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
 3D-IC Description Language Usage Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                16
 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       16
 Documentation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  17
Overview
 Traditional ICs are self-contained and are verified at the chip-level using Calibre nmDRC,
 Calibre nmLVS, Calibre RVE, and Calibre DESIGNrev. 3D-ICs consist of multiple stacked
 chips with connectivity achieved through traces on an interposer or with special vias or bumps.
 The Calibre 3DSTACK tool verifies the interfaces between these chips, which may consist of
 black box IP.
 A cross-section of a 3D-IC is illustrated in Figure 1-1. The primary difference between a 2.5D
 and 3D-IC configuration is the use of a silicon interposer. A silicon interposer, as illustrated in
 Figure 1-2, electrically connects the pads between chips. These chips can either use TSVs
 (allowing for additional stacking), or may contain no TSVs (in which case the chips do not
 allow for additional stacking and are flip chips). 2.5D configurations use a silicon interposer,
 while 3D-IC configurations contain TSVs in active silicon that form a complete 3D stack.
 A TSV is a via that passes through the substrate of a chip or silicon interposer. Typically, in a
 chip containing TSVs, devices and metal layers are manufactured on one side of the chip (the
 front), while additional metal layers are manufactured on the other side of the chip (the back).
 The front metal layers are normally manufactured at a more advanced process node than the
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Calibre 3DSTACK
Overview
 back metal layers. Small spheres of solder called micro bumps can be used to connect multiple
 chips together. Refer to Figure 1-1.
 For example, in Figure 1-2, two designs (chip1 and chip2) are to be assembled on a silicon
 interposer. To assemble the die stack, chip2 is shifted along the x-axis by x_offset and the
 interposer is rotated clockwise by 90 degrees. Figure 1-2 summarizes the necessary inputs and
 outputs to a 3DSTACK assembly operation.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                               Introduction to Calibre 3DSTACK
                                                                                                       Overview
 Figure 1-3 illustrates the input files that Calibre 3DSTACK accepts and the output files that it
 creates. Dimensional check (DRC) and connectivity operations (LVS) can be performed on the
 assembled chip stack using commands specified in the 3DSTACK rule file.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Calibre 3DSTACK
Overview
 The following figure illustrates the typical workflow for verifying a design with
 Calibre 3DSTACK.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                               Introduction to Calibre 3DSTACK
                                                                                                       Overview
Related Topics
 Requirements
 Calibre 3DSTACK Invocation
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Calibre 3DSTACK
3D-IC Description Language Usage Restrictions
 The 3DIC_DL may constitute or contain trade secrets and confidential information of Mentor
 Graphics or its licensors. You shall not make the 3DIC_DL available in any form to any person
 other than your employees and on-site contractors, excluding Mentor Graphics competitors,
 whose job performance requires access and who are under obligations of confidentiality.
Requirements
 Before running the Calibre 3DSTACK tool, you must have a full Calibre installation and the
 appropriate licenses. The chips in your stack must already be DRC and LVS clean.
 You must have the following Calibre licenses:
       Note
    If you specify the -turbo invocation option, the number of Calibre nmDRC-H/nmDRC and
    nmLVS-H/nmLVS licenses are scaled according to the Standard Multithreaded License
 Consumption Formula used for all the Calibre tools. See “Licensing for Multithreaded
 Operations” in the Calibre Administrator’s Guide for details.
 Calibre 3DSTACK also automatically reserves all available Calibre DESIGNrev licenses
 available at the time of invocation.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                               Introduction to Calibre 3DSTACK
                                                                                  Documentation Conventions
 You must set the CALIBRE_HOME or MGC_HOME environment variable to point to the
 location of your Mentor Graphics software tree. See “Setting the CALIBRE_HOME
 Environment Variable” in the Calibre Administrator’s Guide for details.
       •   The layout files that compose the 3D assembly. The layout must be in GDS, OASIS®1,
           or LEF/DEF format. Cell and pin names should not have spaces, as this causes the
           exported netlist to be incorrect.
       •   A valid Calibre 3DSTACK rule file containing only commands specified in the
           Command Reference chapter of this document, plus any standard Tcl constructs.
       •   A source netlist for the chip stack is highly recommended.
Related Topics
 Calibre 3DSTACK Invocation
Documentation Conventions
 The command descriptions for Calibre 3DSTACK statements use font properties and several
 metacharacters to document the command syntax.
 The commands described in this document and any examples follow the syntax conventions
 outlined in the following table.
                               Table 1-1. Syntax Conventions
  Convention                Description
  Bold                      Bold fonts indicate a required item.
  Italic                    Italic fonts indicate a user-supplied argument.
  Monospace                 Monospace fonts indicate a shell command, line of code, or URL. A bold
                            monospace font identifies text you enter.
  Underline                 Underlining indicates either the default argument or the default value of
                            an argument.
  UPPercase                 For certain case-insensitive commands, uppercase indicates the minimum
                            keyword characters. In most cases, you may omit the lowercase letters
                            and abbreviate the keyword.
  []                        Brackets enclose optional arguments. Do not include the brackets when
                            entering the command unless they are quoted.
    1. OASIS® is a registered trademark of Thomas Grebinski and licensed for use to SEMI®, San Jose. SEMI®
    is a registered trademark of Semiconductor Equipment and Materials International.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Introduction to Calibre 3DSTACK
Documentation Conventions
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                            Chapter 2
               Getting Started With Calibre 3DSTACK
 The Calibre 3DSTACK tool uses the powerful and familiar set of verification and analysis
 features included with the Calibre nmDRC, Calibre nmLVS, Calibre RVE, and Calibre
 DESIGNrev products. Calibre 3DSTACK uses its own rule file format and commands, but the
 principles of operation are familiar to existing Calibre verification flows.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Invocation
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                         Getting Started With Calibre 3DSTACK
                                                                                               calibre -3dstack
calibre -3dstack
 Command-line invocation arguments control the mode and operations performed by
 Calibre 3DSTACK.
Usage
 calibre -3dstack {[-help] [-turbo [number_of_processors]] {[-system {GDS | OASIS}]
     [-create_assembly assembly_name] | [-use_assembly assembly_path]}
     | [-cs]} rule_file_name [-run_dir directory] [-compile_only]
Arguments
 •    -3dstack
      Required switch that enables Calibre 3DSTACK.
 •    -help
      Optional switch that displays the command line usage.
 •    -turbo
      Optional switch that enables multi-threaded parallel processing. You can optionally specify
      the number of processors to use (the default is all).
                 Note
              If you specify the -turbo invocation option, the number of Calibre nmDRC-H/
              nmDRC and nmLVS-H/nmLVS licenses are scaled according to the Standard
          Multithreaded License Consumption Formula used for all the Calibre tools. See
          “Licensing for Multithreaded Operations” in the Calibre Administrator’s Guide for
          details.
          Calibre 3DSTACK also automatically acquires all available Calibre DESIGNrev
          licenses available at the time of invocation.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
calibre -3dstack
 •      -cs
        Optional switch that verifies the syntax of the source netlist file and checks if placements
        involved in connectivity checks are valid; no verification checks are run. If the report
        command is not specified, the log is saved to the working directory.
 •      rule_file_name
        Required switch that specifies the path to the 3DSTACK rule file.
 •      -run_dir directory
        Optional switch that specifies a path to a directory to place output files. The default is the
        current directory.
 •      -compile_only
        Optional switch that specifies to only compile the extended Calibre 3DSTACK+ rule file to
        the internal standard syntax. The compiled rule file is written to your working directory with
        the name <name>.3dstack. The standard syntax file is useful for debugging your specified
        operations.
Description
 When a Calibre 3DSTACK run is executed, specified layout files are assembled according to
 the instructions present in your Calibre 3DSTACK rule file. Calibre 3DSTACK then performs
 specified verification checks and generates 3DSTACK results databases, an extracted layout
 netlist, and a report file, if specified by your rule file.
 Additional information about the command options for Calibre Interactive can be found under
 the topic “Invoking Calibre Interactive from the Command Line” in the Calibre Interactive
 User’s Manual.
       Note
     The use_assembly argument is mutually exclusive with the create_assembly and system
     arguments. When create_assembly is specified, only the assembly and export_template
 commands are executed (no rule checks are done). When use_assembly is included in the
 invocation, no assembly and export_template commands are performed; all the specified checks
 are executed on the specified assembly file.
Examples
 Invoke Calibre 3DSTACK in batch mode:
Invoke Calibre Interactive for Calibre 3DSTACK with the following command:
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                      Getting Started With Calibre 3DSTACK
                                                          Invoking Calibre Interactive for Calibre 3DSTACK
Invoke Calibre Interactive batch mode for Calibre 3DSTACK with the following command:
 Generate a compiled version of a Calibre 3DSTACK+ rule file in your working directory
 without performing any other operations.
Related Topics
 System Netlist Generator Flow and Invocation
 Invoking Calibre Interactive for Calibre 3DSTACK
          •    Enter the following command to invoke the Calibre Interactive GUI launcher and
               click the 3DSTACK button:
                   calibre -gui
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Using Calibre 3DSTACK
 The extended syntax rule file is compiled into a standard syntax file in your working directory
 during a run. You can use the standard syntax file for debugging.
This procedure steps you through the creation of an extended syntax rule file.
        Note
     The rule file must only consist of commands defined in the “Command Reference” chapter
     of this document and supported Tcl constructs. Rule checks cannot share names with
 Calibre 3DSTACK file format keywords. See the “Examples” chapter to view sample rule files
 using the 3D-IC Description Language.
Procedure
        1. Create a new text file using an editor of your choice.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                        Getting Started With Calibre 3DSTACK
                                                                       Creating a Calibre 3DSTACK Rule File
      3. Specify the config command to define optional run settings for Calibre 3DSTACK:
               config \
                  -layout_primary TOP_CELL \
                  -source_netlist {-file top_cell.spi -format SPICE -case YES }\
                  -report {-file 3dstack.report} \
                  -export_connectivity {-file 3dstack.v -format verilog }
          In this example, only the top-level layers are brought into Calibre 3DSTACK. The
          -layer_info argument set defines all layers used in the assembly of the stack.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Creating a Calibre 3DSTACK Rule File
        5. Define how the dies are physically placed and stacked using the stack command. This
           operation creates an assembly layout view that represents your 3D-IC die stacking
           configuration.
                 stack -stack_name assembly \
                    -die { \
                       -name interposer \
                       -source pInterp \
                       -placement 0 0 \
                       -invert \
                       } \
                       -z_origin 0 \
                    -tier { \
                       -die {-name chip1 -placement 14 12 -source pChip1}\
                       -die {-name chip2_a -placement 80 12 -source pChip2}\
                       -die {-name chip2_b -placement 80 45 -source pChip3}\
                    }
                 …
            The -placement option defines the x and y position of the die. Tiers are collections of
            dies that occupy the same vertical starting position (z-coordinate). The -source option
            allows you to map the assembly chip name to the instance name in the source netlist.
                  Tip
               It is helpful to preview your physical model in Calibre DESIGNrev before writing
               any rules. You can instruct Calibre 3DSTACK to only generate the assembly layout
            view from your rule file using the -create_assembly option as follows:
                 calibre -3dstack -create_assembly assembly_name 3dstack.rules
        6. Write connectivity checks for your assembly using the connected command:
                 connected -check_name CONNECT_PAD_TO_BUMP \
                    -layer_type1 pad \
                    -layer_type2 bump \
                    -black_box \
                    -comment "CONNECT::IO Connectivity Check"
        7. Apply other verification checks as required. See “Rule Check Commands” on page 136
           for details.
Related Topics
 Command Reference
 Examples
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                                    Running a Calibre 3DSTACK Verification
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Running a Calibre 3DSTACK Verification
            where rule_file is the path to your 3DSTACK rule file. Sample rule files are provided in
            the “Examples” section of Appendix A.
            By default, Calibre 3DSTACK writes all associated verification output files to your
            working directory. The outputs are described in detail under “Calibre 3DSTACK
            Output” on page 33.
        3. During the verification run, observe the transcript output to view the assembly and rule
           checking process. Investigate and correct any warnings or error messages as necessary.
        4. When the verification run completes, open the report file, 3dstack_report.rpt, in your
           output directory in a text editor and become familiar with the different sections.
           Understanding the structure of the assembly and verification process greatly aids in
           debugging complex designs. Information on the report file can be found under “Report
           File Format” on page 348 of Appendix C.
Results
 Your output directory now contains the assembled layout view, 3dstack_assembly.gds.gz, and
 results database files that can be opened in Calibre RVE. If specified, your run directory also
 contains a report file used to debug the verification run. To understand how to view and analyze
 the verification results produced by a Calibre 3DSTACK run, proceed to “Calibre 3DSTACK
 Results Analysis Examples” on page 37.
Related Topics
 Calibre 3DSTACK Invocation
 Calibre 3DSTACK Results Analysis Examples
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                                    Running a Calibre 3DSTACK Verification
         Note
      In the case of a conflict between commands in the rule file and Calibre Interactive, the
      settings in Calibre Interactive take precedence.
Prerequisites
      •   You have met the “Requirements” listed in Chapter 1.
      •   You have a valid Calibre 3DSTACK rule file. Refer to “Creating a Calibre 3DSTACK
          Rule File” on page 24 for more details.
Procedure
      1. Enter the following command to invoke Calibre Interactive for Calibre 3DSTACK:
               calibre -gui -3dstack
      2. After you invoke Calibre Interactive, you are prompted to specify a runset file.
          A runset sets GUI options and can be useful for managing different types of verification
          operations. You can continue without a runset by clicking Cancel, or load an existing
          runset with the Browse (…) button.
      3. Click on the Rules button in the upper-left pane of the CI window and specify the path
         to your Calibre 3DSTACK rule file and run directory.
                                     Figure 2-2. Specify Rule File
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Running a Calibre 3DSTACK Verification
        4. (Optional) Click the Load button to load instructions from the rule file and apply them
           to the current Calibre Interactive session. Any syntax errors are reported.
        5. Click on the Outputs button and enable the “Show results in RVE” checkbox under the
           Reports tab to display results in Calibre RVE following a Calibre 3DSTACK run.
        6. Enable the “Write 3DSTACK Summary Report File” checkbox and specify a path to a
           file. The report file contains important information about the design and verification
           results. Enabling this option is highly recommended.
        7. Ensure that the input and output file options are correct and then click Run 3DSTACK.
                                         Figure 2-3. Run 3DSTACK
Results
 Your output directory now contains the assembled 3DSTACK layout view (if specified) and
 results databases that can be opened in Calibre RVE. Your run directory also contains a report
 file used to debug the verification results.
 To understand how to view and analyze the verification results produced by a
 Calibre 3DSTACK run, proceed to “Calibre 3DSTACK Results Analysis Examples” on
 page 37.
Related Topics
 Calibre 3DSTACK Invocation
 Calibre 3DSTACK Results Analysis Examples
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                                    Running a Calibre 3DSTACK Verification
      2. Select Verification > Run 3DSTACK. You do not have to save your layout file. The
         current layout view is exported to Calibre Interactive, including unsaved changes.
3. After you invoke Calibre Interactive, you are prompted to specify a runset file.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Running a Calibre 3DSTACK Verification
            You can continue without a runset by clicking Cancel, or load an existing runset with
            the Browse (…) button.
        4. Click the Rules button, specify the path to your Calibre 3DSTACK rule file, and click
           Load. Loading a rule file updates the fields in the Calibre Interactive GUI with the
           settings from your rule file.
        5. Click the Inputs button, enable the “Export from layout viewer” checkbox, and specify
           the layout view in Calibre DESIGNrev using the Chip Name dropdown box.
            The above snapshot of Calibre Interactive shows that the interposer top cell was
            exported from Calibre DESIGNrev. The Layout Path field of the Layouts table lists the
            path as interposer.calibre.db.
        6. Click Run 3DSTACK to start a verification run from Calibre Interactive.
Results
 The layout view of one of the specified chips in your 3DSTACK assembly was exported from
 Calibre DESIGNrev and used in a Calibre 3DSTACK verification run. This process allows you
 to modify layouts in Calibre DESIGNrev and view changes in the verification results without
 saving the layout.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                         Getting Started With Calibre 3DSTACK
                                                                                     Calibre 3DSTACK Output
Related Topics
 Calibre 3DSTACK Invocation
 Calibre 3DSTACK Results Analysis Examples
Output Files
 The following output files are created in your working directory during a run:
                  Note
               If you do not specify the config -report command in your rule file, then there is no
               limit to the number of results written to the results database.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Assembly Views
Assembly Views
 Calibre 3DSTACK generates an overhead assembly view of your stacked package when you
 perform a verification run or when you invoke the tool with the -create_assembly option. You
 can also create an optional assembly view that displays the package in the x, y, and z
 dimensions.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                         Getting Started With Calibre 3DSTACK
                                                                                              Assembly Views
 Calibre 3DSTACK saves the overhead view of your assembly in your working directory as
 3dstack_assembly.gds.gz. Open this file in Calibre DESIGNrev to see the layout of your stack.
 You can optionally generate a cross-sectional x, y, and z view of your assembly. The tool
 generates the <name>_cross_section.gds.gz assembly view file in your working directory if
 you specify thicknesses and z-origins for your dies (where name is “3dstack” or the name
 specified by the -create_assembly invocation argument).
 The cross-section view includes die bumps. Die bumps are drawn as a thin rectangular object on
 the interface layer of the die.
      •   Apply the -thickness option of the die command. This option defines the thickness of the
          die in microns. If this is not specified, you can use the
          CALIBRE_3DSTACK_DEFAULT_THICKNESS environment variable to set a global
          thickness for all dies.
      •   Apply the -z_origin option in the stack command. The -z_origin option specifies the
          height of the object from the bottom of the stack.
 The following is an example:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Assembly Views
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                               Getting Started With Calibre 3DSTACK
                                                                      Calibre 3DSTACK Results Analysis Examples
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
Prerequisites
        •   Calibre 3DSTACK results databases generated by a verification run. See “Running a
            Calibre 3DSTACK Verification” on page 27.
        •   Layout files that compose the assembly.
Procedure
        1. Load the Calibre 3DSTACK assembly in a supported layout editor and launch
           Calibre RVE with the Calibre 3DSTACK RDB file. For Calibre DESIGNrev:
                 calibredrv 3dstack_assembly.gds.gz -rve 3dstack.rdb
                   Tip
                It is also possible to debug a design by viewing the Calibre 3DSTACK report file
                (generated with the report command). The report file can be opened from the Report
            tab in Calibre RVE, or in any supported text viewer. Refer to the Report File Format in
            Appendix C for more details on report files.
        2. Choose Clear Existing Highlights from the Calibre RVE Highlight options dropdown
           menu.
            This option causes Calibre RVE to clear existing highlights before creating a new
            highlight.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
      3. Select the check you want to view in the tree view, or use Shift- and Ctrl-click to select
         multiple checks.
      4. In the detailed view, double-click on a result to highlight it, as shown in Figure 2-5, or
         use the highlight toolbar. Browse each result by clicking the next and previous icons
         (       ).
          Figure 2-5 shows an internal check result highlighted in Calibre DESIGNrev. See
          “Using Calibre RVE for DRC” in the Calibre RVE User’s Manual for more information
          on debugging with Calibre RVE for DRC.
                Tip
             You can also view DRC errors in the context of the separate components for the
             3DSTACK assembly. To do this, open the design (the base chip, for example) in
          your layout viewer, then highlight the result using Calibre RVE.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
Results
 You performed the following actions while completing this procedure:
        •   Used Calibre RVE to view DRC results generated by a Calibre 3DSTACK verification.
        •   Highlighted DRC results from Calibre RVE in Calibre DESIGNrev.
 You can control the highlighting behavior in Calibre RVE from your rule file by applying check
 text override comments.
 For complete details, see “-set_rve_cto_file” on page 122 and “-set_auto_rve_show_layers” on
 page 121.
Related Topics
 Calibre 3DSTACK Invocation
 Running a Calibre 3DSTACK Verification
        2. Start Calibre RVE from the layout editor’s graphical user interface:
            •    Calibre DESIGNrev and Calibre layout viewers — Verification > Start RVE.
            •    Other supported layout viewers — Calibre > Start RVE.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
      4. Setup the Internal Schematic Viewer to display the source and layout netlists as follows:
          a. Click Setup > Options to open the Options tab.
          b. Select the Schematic Viewer category.
          c. Enable Show netlist schematics when highlighting connectivity objects.
          d. Enable the Schematic, Hierarchy, and Text options for Show Panes.
          e. Click Apply.
           f. Choose View > Schematics > All to open the layout and source netlists in the
              Internal Schematic Viewer.
               Now, when you highlight a net it is automatically highlighted in the Internal
               Schematic Viewer in addition to the physical layout.
          g. Close the Options tab, or click the 3dstack.rdb tab to return to viewing 3DSTACK
             results.
Results
 Calibre RVE automatically opens the 3dstack.rdb and the 3DSTACK report generated by the
 run, as shown in Figure 2-6. You can also choose View > Results and View > Reports to see
 the available results databases and reports. Schematic views of the source and layout netlists are
 shown in windows below the RDB tab.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
 The RDB tab is displayed using Calibre RVE for DRC. The display includes the following
 areas:
        •   Tree View — (left side) Choose View > Tree Options to change the grouping.
        •   Detailed View — (top right) Displays property data in table format. Choose View >
            Result Options to change the view.
        •   Results Data — (center right) Shows property data for the result(s) selected in the
            detailed view.
                      Figure 2-6. Calibre 3DSTACK Results in Calibre RVE
                   Tip
                 Check names are defined in the rule file with the -check_name option. For example:
                 external -check_name EXT_ …
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
Related Topics
 Highlighting DRC Results from a Calibre 3DSTACK Run
 Viewing Design Elements in a Schematic View
       Note
    In the case where multiple text labels overlap a pad in the layout, the tool generates a multi-
    text error and chooses to use one of the text labels attached to the pad for the connectivity
 analysis. Because the chosen label may not match your design intent, it is important to review
 and resolve all multi-text errors to ensure that the layout is correct. If you do not resolve the
 multi-text errors, your connectivity analysis may not be correct.
Prerequisites
      •   A Calibre 3DSTACK database with a connected check using the -detailed option.
          The -detailed option adds the LNC (Layout Net Component) and SNC (Source Net
          Component) properties to the database.
      •   A Calibre 3DSTACK database opened in Calibre RVE, as described in “Opening a
          Calibre 3DSTACK DFM Database in Calibre RVE” on page 40.
      •   The 3DSTACK assembly open in an attached layout viewer.
      •   The source and layout netlists open in the Internal Schematic Viewer, as described in
          Step 4 of “Opening a Calibre 3DSTACK DFM Database in Calibre RVE” on page 40.
Procedure
      1. Disable “Clear Existing Highlights” in the Calibre RVE Highlight options dropdown
         menu.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
            This causes Calibre RVE to keep existing highlights, and allows you to view layout net,
            source net, and result highlights together
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
      4. Click on the layout net (Net ID) and SourceNet links to highlight the nets in the Internal
         Schematic Viewer.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
            You can also click on the LNC and SNC text strings to highlight the ports on the
            placements involved in the result. The layout net is also highlighted in the layout viewer.
        5. Click the highlight button (    ) in the highlight toolbar to highlight the result in the
           layout viewer. Since highlighted shapes and layers may overlap, you may need to use
           your layout viewer controls to set layer visibility.
            The following figure shows the result from a connected check highlighted in
            Calibre DESIGNrev. The layout net is also highlighted from Step 4.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
      6. For a MissingPads result, the result properties include links for the missing pad and the
         source net. (The MissingPads results occurs when a port in the source netlist has no
         corresponding layout pad.) Do the following to highlight the net and source port:
          a. Click the “SourceNet” link in the Result Data Pane in Calibre RVE. The net is
             highlighted in Calibre DESIGNrev and in the source and layout netlist views in the
             Internal Schematic Viewer.
          b. Click the “MissingPad” link. The port is highlighted in the source netlist.
          c. (Optional) Double-click the result in the Details View to highlight it in Calibre
             DESIGNrev. When the result is highlighted, there is no layout object to highlight, so
             the result properties are displayed in the bottom left corner of the top cell in the
             assembly.
      7. (Optional) Click the 3DSTACK Report tab to view the text report.
          Tip: You can right-click a result in the detailed view for a context-sensitive highlight
          menu:
          The available menu items depend on the properties included with the result.
Results
 You performed the following actions while completing this procedure:
      •   Viewed the LNC and SNC properties in the Calibre RVE display.
      •   Viewed the source and layout nets in the Internal Schematic Viewer.
      •   Highlighted the layout net in the layout viewer.
      •   Highlighted the result from the connected check in the layout viewer.
 All these actions provide useful information for debugging a connectivity result in
 Calibre 3DSTACK results.
Related Topics
 Calibre 3DSTACK Invocation
 Running a Calibre 3DSTACK Verification
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
      Try It!          Calibre 3DSTACK Debugging Shorts Tutorial and Example Kit (eKit)
                       This eKit uses example data to demonstrate how to find shorts using path
                       isolation in Calibre 3DSTACK.
                       Go to this page on Support Center to download the eKit (Documentation tab,
                       Document Types=Getting Started Guide). The link goes to the latest release.
Procedure
        1. Ensure that your rule file contains a connected check, for example:
                 connected -check_name Connect.Full_Assembly \
                     -comment "Incorrect connection."
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
      4. Close Calibre RVE and add the -isolate_path option to a connected check in your rules:
               connected -isolate_path …
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
            The highlighted path now includes only the physical objects associated with the short
            instead of all of the objects on the involved nets.
        8. Investigate the most congested areas of the path. For example, the following areas
           should be reviewed for shorts:
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                       Getting Started With Calibre 3DSTACK
                                                              Calibre 3DSTACK Results Analysis Examples
9. Continue investigating high-density areas until you identify all shorts in the design.
Procedure
      1. Choose Setup > Options to open the Options tab.
      2. Select the Schematic Viewer category.
      3. Enable the “Show netlist schematics when highlighting connectivity objects” option.
      4. Click Apply.
      5. Choose View > Schematics > All to open the layout and source netlists in the Internal
         Schematic Viewer.
                  Tip
               If you close the schematic views, you need to repeat this step to reopen them.
Results
 When you highlight a net, device, instance, or pin, the design element is highlighted in both the
 attached layout viewer and the Internal Schematic Viewer. The Internal Schematic Viewer is
 displayed in a new window below the results and report tabs.
 See “Internal Schematic Viewer” in the Calibre RVE User’s Manual for complete information.
Related Topics
 Calibre 3DSTACK Invocation
 Running a Calibre 3DSTACK Verification
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre 3DSTACK Results Analysis Examples
 Verification results from a run have the following properties that can be used to group results by
 check or layer type:
                     Property              Description
                     Check+                Check name
                     type1                 placed_layer_type or placed_layer_type1
                     type2                 placed_layer_type2
                     types                 placed_layer_type list for density check
          Note
        These properties are not added for custom_check results.
<check-name>_<check-index>
where:
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Getting Started With Calibre 3DSTACK
                                                                               Calibre Interactive for Calibre 3DSTACK
      •    Chip assembly operations — Modify the layouts, assembly operations of the chip
           stack, layers, and placements.
      •    Netlist specification — Specify a source netlist, verify its syntax, and export the
           extracted connectivity of your stack.
      •    Text operations — Import, map, or modify text.
      •    Verification check selection — Select specific checks to execute in the verification run.
      •    Customization files — Customize panels in the GUI.
 Entries made in the Calibre Interactive interface take precedence over commands in the rule
 file. Loading the rule file in Calibre Interactive updates the interface with the rule file settings.
For detailed information on Calibre Interactive, see the Calibre Interactive User’s Manual.
         Note
      If you specify a LEF/DEF database for a die and load your rule file, the tool automatically
      converts the die to OASIS format and references the OASIS file in Calibre Interactive.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre Interactive for Calibre 3DSTACK
Procedure
        1. Select the Rules button in the left panel of the CI window, define the path to your rule
           file, and click Load.
        2. Click Setup and enable the “3DSTACK options” checkbox.
        3. Click 3DSTACK Options and click the Netlist tab.
                   Figure 2-8. Create Source Netlist With Calibre Interactive
            All pins for each placed chip must be connected. Any unconnected pins are reported as
            errors.
        6. Click Run 3DSTACK.
            The configuration file and your defined placements are passed to the System Netlist
            Generator tool. The System Netlist Generator uses the given information to generate a
            source netlist for your assembly.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                        Getting Started With Calibre 3DSTACK
                                                                     Calibre Interactive for Calibre 3DSTACK
Results
 You have created a source netlist for your 3D assembly by defining connectivity in a
 configuration file. Calibre 3DSTACK passes this information to the System Netlist Generator
 and generates a source netlist for your design. The netlist is used in the verification run to
 perform LVS.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre Interactive for Calibre 3DSTACK
                    Note
                 If you specify a CSV netlist or spreadsheet netlist, you can use the Column Order
                 field and Subckt Pins dropdown list to customize the reading of the file.
        7. To verify the syntax of the source netlist file and validate placement operations without
           executing a full verification run, enable the “Check source netlist only” checkbox, and
           click Run 3DSTACK.
            Calibre 3DSTACK displays a report file that summarizes the results of the syntax check
            of your source netlist file. It also reports any invalid placements found in the assembly.
                   Caution
                 When you are ready to run a full verification on your 3D IC, disable the “Check
                 source netlist file only” checkbox before clicking Run 3DSTACK.
Results
 A source netlist file has been specified and checked for syntax errors and placement issues. A
 source netlist allows you to perform advanced connectivity debugging with your DFM database
 verification results. For complete details, see “Debugging Connectivity Errors in Calibre
 3DSTACK” on page 43.
 If your source netlist was clean, the report contains the following text:
        *************************************************************************
                          OVERALL SYNTAX CHECK RESULTS
        *************************************************************************
                                           ####################
                                           #                  #
                                           #    SYNTAX OK     #
                                           #                  #
                                           ####################
                                 #         #          #########################
                                     # #              #                       #
                                      #               # SYNTAX CHECK FAILED #
                                     # #              #                       #
                                 #         #          #########################
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                        Getting Started With Calibre 3DSTACK
                                                                     Calibre Interactive for Calibre 3DSTACK
      2. Enable “Show results in RVE checkbox” under the Reports to display results in Calibre
         RVE following a Calibre 3DSTACK run.
          This checkbox is disabled if the Create Only operation is enabled under
          Setup > 3DSTACK Options.
      3. Specify a CTO file that controls how Calibre RVE displays rule check results. See
         “Check Text Override Comments for Calibre 3DSTACK” on page 211 for details on
         this file.
      4. Enable the “Generate child RDBs” checkbox and use the table to select additional RDBs
         that you want to generate.
          These databases are produced by Calibre 3DSTACK and are opened along with
          3dstack.rdb when the run completes.
      5. Enable the “Write 3DSTACK Summary Report File” checkbox and specify a pathname
         for the report.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre Interactive for Calibre 3DSTACK
            You can limit the number of results per check in the report by enabling the User
            Specified checkbox and entering a positive integer value.
            The report file contains important information about the design and verification results.
            Enabling this option is highly recommended.
Results
 The results database file and directory have been specified. These files contain verification
 results used by Calibre RVE. Additionally, a report file and reporting options have been
 specified.
        2. Click the 3DSTACK Options button on the left pane of Calibre Interactive and specify
           the assembly operations to apply at run time.
            The assembly options define how Calibre 3DSTACK uses or generates the 3DSTACK
            assembly view file. The assembly options in Calibre Interactive behave as follows:
            •    Create & Use — Calibre 3DSTACK generates a 3DSTACK assembly file
                 internally and uses it in a verification run. This option invokes Calibre 3DSTACK
                 without the -create_assembly and -use_assembly options, which is the default mode.
                 See “Calibre 3DSTACK Invocation” on page 20 for a description of the assembly
                 command options.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                        Getting Started With Calibre 3DSTACK
                                                                     Calibre Interactive for Calibre 3DSTACK
                Note
              The “Load assembly in viewer” checkbox is only enabled when you open
              Calibre Interactive from Calibre DESIGNrev. Enable this option to open the
          assembly view layout in Calibre DESIGNrev immediately following a run.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre Interactive for Calibre 3DSTACK
        2. Click the checkbox next to the check name or check group to enable or disable the
           checks at run time. A green check mark indicates that the check is enabled, a red cross
           indicates that the check is excluded.
                   Note
                 Use the View menu to sort the checks and groups. Use the Select menu to toggle
                 check selection.
Procedure
        1. Open Calibre Interactive for Calibre 3DSTACK and load a rule file.
        2. Create a new text file called select_checks.tcl in your working directory and insert the
           following text:
        set _customMaster_0 [CUSTOM::VARIABLE -name "select_by" -choices \
          {{"All checks" 0} {"by group" 1} } -initval {1} -select 1 -boolean 0 \
          -prompt "select checks by:" -display 1 -tool 3DSTACK ]
        CUSTOM::LABEL -prompt "Select checks by group " -tool 3DSTACK \
          -master [list $_customMaster_0 1]
        CUSTOM::CHECK -name "connected" -choices {connected} -initval {connected}\
          -select 1 -boolean 1 -prompt "connected" -display 1 -tool 3DSTACK \
          -master [list $_customMaster_0 1]
        CUSTOM::CHECK -name "internal" -choices {internal} -initval {internal} \
          -select 1 -boolean 1 -prompt "internal" -display 1 -tool 3DSTACK \
          -master [list $_customMaster_0 1]
        CUSTOM::CHECK -name "external" -choices {external} -initval {external} \
          -select 0 -boolean 1 -prompt "external" -display 1 -tool 3DSTACK \
          -master [list $_customMaster_0 1]
        CUSTOM::CHECK -name "enclosure" -choices {enclosure} -initval {enclosure}\
          -select 0 -boolean 1 -prompt "enclosure" -display 1 -tool 3DSTACK \
          -master [list $_customMaster_0 1]
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                        Getting Started With Calibre 3DSTACK
                                                                     Calibre Interactive for Calibre 3DSTACK
      4. In the file field, browse to the path where you saved the select_checks.tcl file and click
         OK.
          A new Customization button appears under the Transcript button on the left panel of
          Calibre Interactive.
      5. Click on the Customization button.
          The select_checks.tcl file, shown in Step 2, enables modification of the select checks
          command.
                 Figure 2-13. Customization Settings in Calibre Interactive
      6. Choose the checks to include in the verification run and click OK to close the dialog
         box.
      7. Choose Setup > Select Checks to verify that the checks have been selected as intended.
Results
 A Calibre Interactive customization file has been created and used to modify the select checks
 command. This particular example is useful for saving select check options after
 Calibre Interactive is closed.
 In this case, if you choose the All Checks option, no commands are added to the control file,
 and therefore all checks are run. If you choose the By Group option, you may choose to select
 checks by the type of rule check.
 Use this example to create your own customization file for Calibre Interactive.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Getting Started With Calibre 3DSTACK
Calibre Interactive for Calibre 3DSTACK
 The trigger program is run immediately before or after a batch Calibre 3DSTACK run. For
 complete information on Calibre Interactive triggers, see “Trigger Functions in Calibre
 Interactive” in the Calibre Interactive User’s Manual.
 To access the Trigger options in Calibre Interactive 3DSTACK, select Setup > Preferences
 and click on the Triggers tab. The following trigger parameters are available.
                        Table 2-2. Supported Trigger Parameters
                  Parameter                   Runtime Replacement
                  %r                          Calibre 3DSTACK rule file
                  %R                          Calibre Interactive runset file
                  %t                          Top cell of the 3D assembly
                  %e                          Calibre termination status
                  %P                          Netlist placement table content (Inputs>Netlist
                                              tab)
                  %d                          Run directory
                  %m                          Calibre 3DSTACK report file
                  %C                          System Netlist Generator Configuration file
                  %n                          3D Netlist file
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                      Chapter 3
                                                                              Command Reference
 The Calibre 3DSTACK rule file uses its own set of commands to assemble and verify your 3D-
 IC design intent.
 This chapter documents the extended (3DSTACK+) syntax, which is recommended for all new
 rule files. At runtime, your specified extended syntax rule file is translated to a standard syntax
 file in your working directory. The translated standard syntax file is useful for debugging your
 run.
 The standard syntax is documented under “Standard Calibre 3DSTACK Syntax Commands” on
 page 355.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
  no_texts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   195
  no_trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    197
  offgrid_centers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        198
  overlap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    200
  select_checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        203
  unselect_checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .          206
  3dstack_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        209
 Check Text Override Comments for Calibre 3DSTACK . . . . . . . . . . . . . . . . . . . . . . . .                                            211
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Command Reference
                                                                                  Rule File Format and Syntax
 The Calibre 3DSTACK+ syntax can be used to decouple rule and analysis specifications from
 the physical assembly, similar to a typical design flow. This enables you to reuse rule files for
 multiple assemblies.
        Note
      The tool writes temporary files to /tmp by default. Set the MGC_TMPDIR environment
      variable to a different path to customize the temporary file output location.
Format
 A Calibre 3DSTACK+ rule file must conform to the following formatting and syntax rules:
      •   The file is parsed as a Tcl file. It must follow standard Tcl syntax and formatting rules.
          Standard Tcl constructs are supported and can be useful for parameterizing your
          assembly (for example, using loops and variables to define layers and die locations).
                Tip
              You can optionally create additional information about Tcl errors generated from
              your Calibre 3DSTACK rule files by setting the
          CALIBRE_ENABLE_3DSTACKPLUS_DECK_DUMP environment variable to a non-
          null value. This option will export a file named <rule_file>_exported.3dstack+ that
          contains enables you to debug the source of Tcl errors in your rules.
      •   The main assembly commands are die, config, and stack. These are summarized in the
          following section.
      •   All distances are specified in microns.
      •   The System and Assembly commands must be written in the order as listed in the
          following table. Rule checks should be written last, as the rule checks usually depend on
          the layers, dies, and assembly configuration.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
Rule File Format and Syntax
        •   It can be convenient to include sets of operations in different files and then source them
            from a main rule file. For example, you may have the following files:
                 main.3dstack
                 processes.3dstack
                 die_definitions.3dstack
                 stacked_system.3dstack
                 rule_checks_<process>.3dstack
            The main.3dstack rule file calls the other rule files as follows:
                 #!3dstack+
set_version 1.0
                 #define layers
                 source "./processes.3dstack"
                 #define dies
                 source "./die_definitions.3dstack"
                 #define assembly
                 source "./stacked_system.3dstack"
Parameters
                 Table 3-1. Extended Calibre 3DSTACK+ Command Summary
 Keyword                             Usage               Description
 System Commands
 run                                 Optional            Enables you to run other Calibre verification rules,
                                                         such as DRC, LVS, and extraction, on layouts in
                                                         your stack.
 set_version                         Required            Must specify the version as 1.0.
 Assembly Commands
 process                             Optional            Specifies information about a collection of layers
                                                         that can be referenced in a die or component.
 die                                 Required            Defines a single die (or interposer) in the
                                                         assembly. This statement includes a number of
                                                         arguments that define the name, layout path, and
                                                         physical information about the die, such as the
                                                         material, layers, and dimensions.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                              System Variables
Examples
      #!3dstack+
      #===========================================#
      # Calibre 3DSTACK+ Rule File
      # ==========================================#
      set_version -version 1.0
config <options>
      die <options>
      …
      stack <options>
      …
      <verification commands>
      …
System Variables
 The 3DSTACK+ file format supports a set of system variables that allow you to easily reference
 layer placements based on the specified type.
 The following variables are available:
      •    _layer_type
      •    _layer_types
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
System Variables
        •     _layer_type1
        •     _layer_type2
 The following examples demonstrate how to apply the variables in your rule file:
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                      Command Reference
                                                                    Assembly and Configuration Commands
 In addition to the run command, the following commands are supported in Calibre 3DSTACK+
 rule files.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
die
 Required in 3DSTACK+ extended syntax file.
 Defines a single die in the assembly. This statement includes a number of arguments that define
 the name, layout path, and layers.
Usage
 die -die_name die_name
     {-layout ‘{’ arguments ‘}’ | -lefdef ‘{’ arguments ‘}’}
     [-thickness value]
     [-process process_name]
     {-layer_info ‘{’ arguments ‘}’ } …
     [-anchor ‘{’-name name {-placement x_offset y_offset | -layer number -text label}‘}’] …
     [-interposer | -package | -laminate | -substrate]
     [-rename_text {“expression”… | {-file file}}]
     [-import_text_labels file
         [-order column_list]
         [-xsi {NET_NAME | PIN_NUMBER | PIN_NAME}]
         [[-attach_to {-layer layer_name -component component_name}] …]
         [-top_level_coords]]
     [-netlist spice_file]
     [-wb_connect layer1_name layer2_name [BY layer3_name] [-use_in_svrf]] …
Arguments
 •      -die_name die_name
        Required argument and value set that specifies the name of the die. The die can be thought
        of as a cell in your design. The name must be unique within the assembly.
 •      -layout ‘{’ arguments ‘}’
        Required argument and value set that specifies the path, layout system type, and top cell of a
        layout. See “-layout” on page 80 for details.
 •      -lefdef ‘{’ arguments ‘}’
        Argument and value set that specifies the paths to LEF and DEF files, if a LEF/DEF layout
        system is used for the die. See “-lefdef” on page 81 for details.
 •      -thickness value
        Optional argument set that defines the thickness of the die in microns. Calibre 3DSTACK
        uses the thickness values to generate a cross-sectional assembly view of the stack. See
        “Assembly Views” on page 34 for details.
        If this option is not specified, you can use the
        CALIBRE_3DSTACK_DEFAULT_THICKNESS environment variable to set a global
        thickness for all dies. If neither the environment variable nor the -thickness option is
        specified, the thickness of the placement level is calculated based on the minimum width
        and height of the dies in the same level.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
 •    -process process_name
      Optional keyword and name for process layer information defined with the “process”
      command.
      The process layer information is usually provided by the foundry that manufactures your IC.
      The advantage of applying this command is that you do not have to redefine layer
      information for each die in the 3D-IC. Instead, you can refer to a process that is already
      defined in the die command.
                 Note
              If you specify layer information in addition to a process in the die command, the
              layer information overwrites the process specification if the same information is
          defined in the process. If items are not defined in the layer information, the process data
          is merged with the layer information.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
        Instead of in-line expressions, you can specify the path to a file that contains a list of
        expressions. The file contains one expression per line. For example:
                 /A/B/
                 /A.*B/R/
                 /^VDD.*/VCC/
                 /A/B/g
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
Description
 The die command is the primary building block for chips in your assembly. It defines the
 following components of a die:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
 The anchors are labels fixed to coordinates on specified dies that can be referenced in the stack
 definition for alignment purposes. For example, you can specify an anchor at the center of a die
 called controller_center and then use the controller_center label in your assembly operations to
 place other dies relative to the center of the controller.
 The -interposer argument has no impact on the assembly, but it can be referenced in
 downstream rules to apply specific checks for 2.5D ICs.
 Use the -text option to relate text labels to the layers of the dies. These associations are required
 if there are connectivity checking rules defined in the deck. The -no_update argument should be
 used when associating text with a source placement layer for use with a locations check. This
 prevents the source layer from being included in the extracted layout netlist.
 Multiple layers may be specified for each die. Use the -svrf option to generate derived layers
 within the die.
 The hierarchical (white-box) connections define the connectivity of the materials inside of the
 die for netlist extraction purposes. When specified, the intra-die and inter-die connectivity is
 taken into account during connectivity rule checking.
 Through-tier connectivity checks are supported. This feature allows you to verify connections
 that pass through multiple dies. For example, if you stack ChipA on top of an interposer and
 ChipB on the bottom of the interposer, you can verify the connectivity of the traces from the
 pads of ChipA, through the interposer layers, and down to the pads of ChipB. This feature is
 achieved by defining internal layers for a die without specifying the -top or -bottom options for
 those layers.
 The -layer_info argument of the die command allows you to specify whether the layer belongs
 to the top or bottom surface of the die. If you do not specify either -top or -bottom, the layer is
 considered internal to the die and is used for internal connectivity tracing.
           Note
        If you do not want to check connectivity through tiers, apply the -nothrutier option in the
        connected check.
Examples
Example 1
 The following command defines a new die based on an existing layout for a memory device.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
      die \
      –die_name RAM_block \
      –layout { -path ./RAM.oas –type OASIS –primary RAM } \
      -thickness 150 \
      -layer_info { -type pad -name pad1 –top \
                    -layer { 40:2,41:2 } –text { 40:2,41:2 } } \
      -layer_info { -type pad -name pad2 –bottom \
                    -layer { 8-15:0 }    -text { 24-39:1 } } \
      -layer_info { -type bump -name bump1 –top \
                    -layer { 2-7,16-23 } } \
      -layer_info { -type bump -name bump2 –bottom \
                    –layer { 40-41:3-7 -depth top_only} –text { 40:3 –depth 1 }
      } \
      –rename_text "/a_bump/a/"
 The new die is given the name RAM_block. The die definition includes the following layers:
                 Table 3-3. Layer Information for the RAM_block Die
    Name       Type        Vertical        Layer Numbers                Text Numbers                 Depth
                           Location        Number         Datatype Number              Datatype
    pad1       pad         Top             40, 41         2             40, 41         2             All
    pad2       bump        Bottom          8-15           0             24-39          1             All
    bump1 bump             Top             2-7, 16-23 any               none           none          All
    bump2 bump             Bottom          40-41          3-7           40             3             Top cell
      •    pad1 and pad2 are of type pad, and bump1 and bump2 are of type bump. pad1 and
           bump1 are in the top surface of the die, and pad2 and bump2 are in the bottom of the die.
      •    pad1 is the merger of layer number 40 and datatype 2 with layer number 41 and datatype
           2. The text on it is associated from the same layers.
      •    pad2 is the merger of layer numbers from 8 to 15 with datatype 0. The text on it is
           associated with layer numbers from 24 to 39 with datatype 1.
      •    bump1 is the merger of layer numbers from 2 to 7 with all datatypes and layer numbers
           from 16 to 23 with all datatypes. It has no associated text.
      •    bump2 is the merge of layer numbers 40-41 with datatypes from 3 to 7. The text on it is
           attached from layer number 40 with datatype 3 from only the top cell.
 Any text on all layers of the die are from “a_bump” to “a” with the rename_text option and the
 GNU regular expression “/a_bump/a/”.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
Example 2
        die \
        –die_name INT \
        –layout {-path ./INT.gds} \
        -anchor {-name mem -placement 0 0 } \
        -anchor {-name log -placement 1000 0 } \
        -interposer \
        -layer_info {-type pad   -name pad1 -layer 40 -top} \
        -layer_info {-type pad   -name pad2 -layer 41 -top} \
        -layer_info {-type route -name route -layer 42 -top} \
        -wb_connect pad1 pad2 BY route \
 The die command defines an interposer die with the name INT. The die has two anchors: mem
 at (0,0) location, and log at (1000,0).
 The die also has three defined layers: pad1, pad2, and route. pad1 and pad2 are of type pad, and
 route is of type route. All three layers are on the top surface of the die.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
Example 3
 The following example demonstrates a LEF/DEF design:
Example 4
 This example shows the definition of a die with the name der. The die has three layers defined:
 pad1, pad2, and merge. pad1 and pad2 are original layers, and merge is a derived layer which is
 a union of pad1 and pad2.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
Example 5
 The following example demonstrates the anchor usage:
        die -die_name T2 \
         -layout { -path $env(DESIGN_DIR)/dfm/3di/init/layout_1.gds -type gdsii \
         -primary top }
         -layer_info { -type bump -name 22 -layer 2 } \
         -anchor { -name anch3 -layer 22 -text VSS } \
         -anchor { -name anch4 -placement 200 300 }
Example 6
 This example demonstrates how to use the -process option instead of the -layer_info argument
 set.
After defining a process, you can apply it in the die command as follows:
Example 7
 This example demonstrates how to use a variable for the -text and -trace_text options in the case
 that you want to switch between operations using a global setting.
 Set a global variable that controls the desired text operation that changes depending on an
 environment variable:
Set a Tcl variable for the -text option that attaches text from a desired layer.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
 Based on the environment variable, perform either the text attachment from the specified layer
 or instruct Calibre 3DSTACK to run text tracing for LVS.
      if { $textTraceSwitch ne 0 } {
         set text "-trace_text"
         set value ext_pad
      }
 Calibre 3DSTACK uses the $text and $value variables in the die command to perform text
 tracing or text layer attachment based on their settings.
Related Topics
 config
 process
 stack
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
-layout
 Option for the die command.
 Defines the name of the top-level cell for the 3D assembly.
           Note
        If physical precisions differ between layouts, the generated assembly file uses the least
        common denominator of the precisions of the input layouts.
 For example, if two input layouts have precisions of 1/2000 and 1/3000, the output file is
 generated with a precision of 1/6000.
Usage
 die … -layout ‘{’
     -path layout_path
     [-type {gdsii | oasis}]
     [-primary primary_name]
     [-depth {all | top-only}]
     ‘}’
Arguments
 •      -layout ‘{’ arguments ‘}’
        Required argument and value set that specifies the path, layout system type, and top cell of a
        layout. If the -layout argument set is not used, the -lefdef argument set must be applied.
        Note, you must enclose the arguments within the {} braces. The arguments for -layout are
        described as follows:
 •      -path layout_path
        Required argument and value set that specifies the path to a GDS or OASIS layout file used
        for the die. Calibre 3DSTACK treats any input file with the extension .gz or .Z as a
        compressed file. The gunzip application must be available in your environment.
 •      -type {gdsii | oasis}
        Optional argument set that specifies the layout system for the die. The default is gdsii.
 •      -primary cell
        Optional argument set that specifies the name of a cell in the layout. If this argument set is
        not specified, the cell is assumed to use the name specified by the die_name argument.
 •      -depth {all | top-only}
        Optional argument set that specifies whether all of the layout should be read or just the
        layout that belongs to the specified primary cell. The default is that all of the layout
        geometry is read. Specify -depth top-only to only import geometry that belongs to the
        specified primary cell.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
-lefdef
 Option for the die command.
 Specifies the paths to LEF and DEF files, if a LEF/DEF layout system is used for the die or
 component.
        Note
      You must enclose the arguments of the -lefdef option in braces {}.
Usage
 die … -lefdef ‘{’
     {-lef technology_lef [lef_file …]}
     -def def_file
     ‘}’
Arguments
 •    -lef technology_lef [lef_file …]
      Required argument and value set that specifies the paths to the technology LEF followed by
      LEF files used for the layout of the die. This argument cannot be specified with -layout.
 •    -def def_file
      Required argument and value set that specifies the path to a DEF file that contains the layout
      for the die. The die positioning options (-placement, -rotate, -flip, and -mag) are ignored if
      specified; the tool reads this information from the DEF.
Description
 The -layer_info -name argument references layers in the LEF/DEF designs by name. The -layer
 option does not apply to LEF/DEF layouts.
 Calibre 3DSTACK automatically translates the LEF/DEF die to OASIS format using the
 fdi2oasis application. If an error occurs during translation, view the <topcell>.calfdi.log file.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
-layer_info
 Option for the die, component, or process commands.
 Specifies a layer in the die, component, or process. You can specify more than one layer by
 applying the -layer_info argument set multiple times.
          Note
        You must enclose the arguments of the -lefdef option in braces {}.
Usage
 {die | component | process} … {-layer_info ‘{’ -type layer_type -name layer_name
    {-layer ‘{’ layer_numbers [-depth {all | top-only}] ‘}’
      | {-svrf ‘{’ layer_derivation ‘}’ [-show]}
    {[-text ‘{’ layer_numbers [-depth {number …}] [-no_update] ‘}’ …]
      | [-net_text layer_numbers] | [-trace_text layer]}
    [-ext_connect [die_name …]]
    [-icrx file | -mipt file]
    [-rc_model]
    [-texttype]
    [-top | -bottom]
    [-via]
    [-virtual]
    [-pex_map layer_name]
    }…
    ‘}’ } …
Arguments
 •      -type layer_type
        Required argument set within -layer_info that specifies the type of layer. The layer_type is
        used in rule or analysis operations and can be any user-defined string. However, it is
        recommended that layer_type values should identify common building blocks of 3D ICs,
        such as pad, bump, c4, tsv, and rdl layers.
        See “Defining Layers” on page 308 for an example.
 •      -name layer_name
        Required argument set that specifies the name of the layer. The layer_name does not have
        to be unique. The layer name helps you identify the layer in the assembly.
 •      -layer ‘{’ layer_numbers [-depth {all | top-only}] ‘}’
        Argument and value set that specifies the layer number, datatype, and depth for the layer.
        One of -layer or -svrf must be specified for each -layer_info argument. You must enclose
        the arguments for each layer within the {} braces.
            o    layer_numbers — Required argument with -layer that specifies the layer numbers
                 and datatypes used for the layer in the specified die layout. Multiple layer numbers
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
               and datatypes may be specified as a range or separated by commas; the layers are
               merged. For example:
                   -layer 2-7,16-23
                   -layer 40-41:3-7
          o    -depth {all | top-only} — Optional argument set that specifies whether all of the
               layer should be read or just the parts of the layer that belong to the specified primary
               cell. The default is that all of the layer geometry is read. Specify -depth top-only to
               only import geometry on this layer that belongs to the specified primary cell.
 •    -svrf ‘{’ layer_derivation ‘}’ [-show]
      Argument and value set that specifies a layer derivation using SVRF commands. Either
      -layer or -svrf must be specified for each -layer_info argument. Only one -svrf argument can
      be used within a -layer_info argument set.
      The -svrf option is similar in function to that of a rule check statement. The layer_derivation
      must consist of at least one standalone layer operation, which is the output layer. If two
      output layers are specified, they are merged. Local layer definitions can be used in the layer
      derivation.
                 Note
               The output layer from the SVRF operation is global for use within other -svrf layer
               derivations for the same die.
          o    -depth {number …} — Optional argument set that specifies the level of design
               hierarchy from which to retrieve the text labels. If this argument set is not specified,
               text labels are retrieved from all levels of design hierarchy. You can specify any
               number of depth numbers, for example “-depth {0 1 2}”.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
            o    -no_update — Optional argument that specifies the layer is not included in the
                 extracted layout netlist. Similar to the -no_update argument for attach_text.
        You can specify multiple text layers by repeating the -text option as follows:
                 die … \
                 -layer_info {
                 -type INTERP_via_rdl1
                 -name INTERP_via_rdl1
                 -layer 19
                 -text 19
                 -text 50
                 …
                 }
 •      -net_text layer_numbers
        Optional argument set that specifies that the text attached to the specified layers represents
        net names instead of pin names (the text labels of this layer are not interpreted as pins of the
        die or package). This option allows Calibre 3DSTACK to extract layout net names from the
        text labels of whitebox connectivity layers and check them against net names in source
        netlists. This option cannot be specified with -text.
        To perform checking on net layers, apply the -net_mismatch option of the connected
        command.
 •      -trace_text layer
        Optional argument set that specifies to trace text connectivity from the layer specified by the
        layer argument. In order for text tracing to work, the full white box connectivity must be
        defined with the -wb_connect option. Cannot be specified with the -text option. The
        following is an example of the usage of -trace_text:
                 -layer_info { -type pad -name ext_pad -text {137:122 -depth 1} }
                 -layer_info { -type bump -name metal1_bottom -layer 253:0 \
                    -trace_text ext_pad -top }
                 -layer_info { -type route -name via1_bottom -layer 251:0 }
                 -wb_connect ext_pad metal1_bottom BY via1_bottom
 •      -ext_connect [die_name …]
        Optional argument that specifies the die’s external interface layer for connectivity purposes.
        This option is used to explicitly define the off-die interface layers for connectivity tracing.
        At least one layer on each die must be defined as an external connectivity error to perform
        connected checks, otherwise the tool issues the following error:
                 3DSTACK_WARNING_1312: No "-ext_connect" defined for [DIE1] and
                 [DIE2] dies. Check Check_name will not be performed.
        The die_name argument is optional and specifies an interactive die or component in the
        package to define the exact die-to-die interaction with this layer. This is particularly useful
        in the case of multiple dies interacting in different tiers to explicitly define die-to-die
        connectivity.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
      You can specify multiple values in a space-separated Tcl list format. If you specify a list of
      names (for example, -ext_connect {DIE CAP1}, the tool generates connectivity between
      that particular placement layer and all possible placement layers from the specified dies.
 •    -icrx file
      Optional argument set that specifies the path to a file that contains parasitic information in
      ICRX format. Use this option with the export_layout -enable_rc_deck option to automate
      RC extraction rule generation. If this option is specified in both the die and process
      commands, the file in the die command takes precedence. Encrypted ICRX files are
      supported. This option is mutually exclusive with the -mipt option.
 •    -mipt file
      Optional argument set that specifies the path to a file that contains parasitic information in
      MIPT format. Use this option with the export_layout -enable_rc_deck option to automate
      RC extraction rule generation. If this option is specified in both the die and process
      commands, the file in the die command takes precedence. This option is mutually exclusive
      with the -icrx option.
 •    -texttype
      Optionally defines the derived layer as a TEXTYPE layer. For example:
               die -die_name die1 \
                   -layout {
                       -primary TOP
                       -path     ./layout.gds
                       -type     gdsii
                   } \
                   -layer_info {
                       -type M3_text \
                       -name M3_text \
                       -layer 15 -texttype \
                   } \
                   -layer_info {
                       -type M3_mark \
                       -name M3_mark \
                       -texttype\
                       -svrf { EXPAND TEXT                   "?" M3_text BY 0.1 } \
                       -show \
                       -top
                   }
 •    -rc_model
      Optional argument that specifies to generate additional PEX extraction statements for TSVs
      in the extraction file, as follows:
           PEX NETLIST 3DIC <placement-layer-name> FILE <PATH> SUBNODE <sub>
           PEX 3DIC COUPLING <placement-layer-name> ANALOG MAXDISTANCE <max_distance>
           PEX 3DIC COUPLING <placement-layer-name> DIGITAL <frequency> MAXDISTANCE <max_distance>
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
die
        Where the <PATH>, <sub>, <max_distance>, and <frequency> fields must be completed
        manually after generating the file and are defined as follows:
            o      PATH — Specifies the path to the netlist.
            o      sub — Specifies the “sub” node in the TSV sub-circuit.
            o      max_distance — Specifies the maximum distance (in microns) beyond the extents of
                   the TSV for which the coupling is calculated. Anything beyond the maximum
                   distance is not considered in the coupling calculation.
            o      frequency — Specifies the frequency in Hz.
 •      -top
        Optional argument that indicates that the layer is physically placed on the top side of the die.
        This argument is needed to correctly connect the interface layers in the stack.
 •      -bottom
        Optional argument that indicates that the layer is physically placed on the bottom side of the
        die. This argument is needed to correctly connect the interface layers in the stack.
                   Note
                If the -top or -bottom keywords are not specified and the die has more than one
                layer, then the layer is considered internal to the die and cannot be identified as an
            interacting layer. As a result, the layer cannot be used in checks with two layer types.
            If the die only has one layer, the layer is automatically treated as interacting and you do
            not need to specify either -top or -bottom.
 •      -via
        Optional argument that specifies that the layer is a via layer. This is used for annotated GDS
        generation when creating the extraction rule file.
        The extraction engine requires certain layers to be defined as conductors in the generated
        extraction rule file. The conductors are defined using the BY keyword of the Connect
        statement. For example, in this statement:
                   CONNECT A C BY B
        the B layer is a conductor. The -via option controls the layers that serve as conductors when
        the Connect statements are generated in the extraction rule file. Port Layer statements are
        not generated for conductors.
 •      -virtual
        Optional argument that specifies that an interposer layer can be involved in connectivity
        checking with neighboring dies, even when the layer does not directly interact with them. In
        other words, this option allows you to define checks for “inner” layers of the dies that are
        not marked as interacting with the -bottom or -top options. The -virtual option can only be
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                          die
      used if the die uses the -interposer option. The layer must be part of the white-box
      connectivity of the die (see the -wb_connect option for more details).
      If you specify the -top, -bottom, or -virtual options for the layer, then the layer can
      participate in geometrical checks.
      The specified virtual layers in an interposer can be checked with the following layers:
          o    Top layers of a die in the bottom tier of the interposer.
          o    Bottom layers of a die in the top tier of the interposer.
      As an example, this option allows you to check connectivity between C4 bumps on one die
      and BGA pads on an interposer die by marking the BGA layer with the -virtual option.
 •    -pex_map layer_name
      Optional argument set that maps the current physical layer to a calibrated layer name. The
      layer_name value must not contain spaces and can be used in different layer definitions.
      Calibre 3DSTACK uses this information to write an SVRF file when exporting an annotated
      GDS file with the config -export_connectivity command.
      The SVRF file is named <gds_name>.map.svrf, where gds_name is the name you specified
      for the annotated GDS. The calibrated layer_name and assembly layer pairings are written
      to the generated SVRF file with PEX Map statements.
Description
 The -layer_info -name argument references layers in the LEF/DEF designs by name. The -layer
 option does not apply to LEF/DEF layouts.
 Calibre 3DSTACK automatically translates the LEF/DEF die to OASIS format using the
 fdi2oasis application. If an error occurs during translation, view the <topcell>.calfdi.log file.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
component
component
 Optional in 3DSTACK+ extended syntax file.
 Defines a single component in the assembly. A component can be an object, such as a resistor,
 capacitor, or inductor, but it cannot be a die.
Usage
 component -component_name
    {-layout ‘{’ arguments ‘}’ | -lefdef ‘{’ arguments ‘}’}
    [-thickness value]
    [-process process_name]
    {-layer_info ‘{’ arguments ‘}’ } …
    [-anchor ‘{’-name anchor_name {-placement x_offset y_offset
        | -layer number -text label}‘}’] …
    [-interposer | -package | -laminate | -substrate]
    [-rename_text {“expression”… | {-file file}}]
    [-import_text_labels file
        [-order column_list]
        [-xsi {NET_NAME | PIN_NUMBER | PIN_NAME}]
        [-attach_to {-layer layer_name -component component_name} …]
        [-top_level_coords]]
    [-source_netlist spice_file]
    [-wb_connect layer1_name layer2_name [BY layer3_name] ] …
    [-swappable pin_list]
Arguments
 •      -component_name name
        Required argument that specifies the beginning of a component definition.
 •      -layout ‘{’ arguments ‘}’
        Required argument and value set that specifies the path, layout system type, and top cell of a
        layout. See “-layout” on page 80 for details.
 •      -lefdef ‘{’ arguments ‘}’
        Argument and value set that specifies the paths to LEF and DEF files, if a LEF/DEF layout
        system is used for the component. See “-lefdef” on page 81 for details.
 •      -thickness value
        Optional argument set that defines the thickness of the die in microns. Calibre 3DSTACK
        uses the thickness values to generate a cross-sectional assembly view of the stack. See
        “Assembly Views” on page 34 for details.
        If this option is not specified, you can use the
        CALIBRE_3DSTACK_DEFAULT_THICKNESS environment variable to set a global
        thickness for all dies. If neither the environment variable nor the -thickness option is
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                  component
      specified, the thickness of the placement level is calculated based on the minimum width
      and height of the dies in the same level.
 •    -process process_name
      Optional keyword and name for process layer information defined with the “process”
      command.
      The process layer information is usually provided by the foundry that manufactures your IC.
      The advantage of applying this command is that you do not have to redefine layer
      information for each die or component in the 3D-IC. Instead, you can refer to a process that
      is already defined in the component command.
                 Note
              If you specify layer information in addition to a process in the component command,
              the layer information overwrites the process specification if the same information is
          defined in the process. If items are not defined in the layer information, the process data
          is merged with the layer information.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
component
        Instead of in-line expressions, you can specify the path to a file that contains a list of
        expressions. The file contains one expression per line. For example:
                 /A/B/
                 /A.*B/R/
                 /^VDD.*/VCC/
                 /A/B/g
            -top_level_coords
               Specifies that the coordinates for text labels in the file belong to the top level.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                  component
 •    -source_netlist spice_file
      Optional keyword and path to a SPICE netlist that contains the subcircuit definition for the
      specified layout. If you specify this option, Calibre 3DSTACK automatically calls the
      System Netlist Generator tool to build a complete netlist during a verification run.
 •    -wb_connect layer1_name layer2_name [BY layer3_name]
      Optional argument set that defines the connectivity of the materials inside of the component.
      This is only required for hierarchical (white-box) connectivity extraction of the assembly.
 •    -swappable pin_list
      Optional argument set that specifies a list of pins that are physically equivalent. For
      example, in the case of a two pin resistor, both of the pins are considered equivalent and can
      be marked as swappable for LVS purposes.
Description
 The component command usage and syntax is the same as the die command. Use this command
 to define items in your assembly that are part of the connectivity or assembly of the stack, but
 are not dies. The only argument unique to this command is the -swappable option.
Examples
 Define a new component.
      component \
         –component_name RESISTOR \
         –layout {-path ./resistor.gds} \
         -layer_info {-type pad   -name R1 -layer 40 -top} \
         -layer_info {-type pad   -name R2 -layer 41 -top} \
         -layer_info {-type route -name res_layer -layer 42 -top} \
         -wb_connect pad1 pad2 BY res_layer \
         -swappable {r1 r2}
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
stack
stack
 Required in 3DSTACK+ extended syntax file.
 Defines the locations of objects in the assembly.
Usage
 stack -stack_name stack_name {die_stack | tier_spec | stack_ref }…
die_stack Usage
 -die | -component | -package | -laminate | -substrate ‘{’
          -name name
          [-anchor anchor_name from_anchor_name to_anchor_name | -placement x y]
          [-mag factor] [-rotate angle] [-flip {x | y}] [-invert]
          [-rename_text {“expression”… | {-file file} }]
          [-ignore_pin {“expression”… | {-file file} } ]
          [-source source_name]
     ‘}’ [-z_origin value]
tier_spec Usage
 -tier ‘{’
          {die_stack | stack_ref }…
       ‘}’
stack_ref Usage
 -stack stack_name
Arguments
 •      -stack_name stack_name
        Required argument set that specifies a stack name used in rule check commands. If this
        command is specified multiple times, each stack_name value must be unique.
 •      -die | -component | -package | -laminate | -substrate ‘{’ arguments ‘}’
        Argument set that specifies a placement of a die, component, package, laminate, or
        substrate. The arguments are described as follows:
            o    -name name
                 Required argument and value set that specifies a placement. The object must be
                 defined in the file.
            o    -anchor anchor_name from_anchor_name to_anchor_name
                 Optional argument and value set that specifies the anchoring information.
                 anchor_name specifies the name of the object already being placed in the stack.
                 from_anchor_name specifies the name of an anchor defined for the anchor_name
                 object. to_anchor_name specifies the name of an anchor defined for the current
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                        stack
               object name. -anchor and -placement are mutually exclusive. If both options are not
               specified, the object is placed at the location of the last specified die.
          o    -placement x y
               Optional argument and value set that specifies the location to place the object. The
               location is defined by x and y coordinates (x y) and should be specified in microns.
               -anchor and –placement are mutually exclusive. If both options are not specified, the
               object is placed at the location of the last specified object. If there is no previously
               placed object, the default placement location is (0 0).
          o    -mag factor
               Optional argument and value set that specifies a magnification factor by which to
               expand or shrink the placement. Coordinate data in the object is multiplied by the
               specified factor.
          o    -rotate angle
               Optional argument and value set that specifies the rotation angle of the current
               placement. The angle must be an integer between 0 and 360.
          o    -flip {x | y}
               Optional argument and value set that specifies the axis around which the current
               placement is flipped. If you are viewing the layout from above, flipping the layout
               around the y axis means that the shapes on the left side are moved to the right side,
               and the shapes on the right side are moved to the left side. Flipping around the x axis
               means that the shapes on the top side are moved to the bottom side and the shapes on
               the bottom side are moved to the top side.
               The -flip option does not affect the -top and -bottom layer definitions for the die, but
               it does affect the die placement coordinates.
          o    -invert
               Optional argument that indicates that the layers with the top connections become
               bottom connections, and vice versa in the current placement. In this case, if viewing
               the layout from the side (cross-section view), the layers on the top are moved to the
               bottom and the layers on the bottom are moved to the top. The die placement
               coordinates do not change, but the -top and -bottom layer definitions are affected.
          o    -rename_text {“expression”… | {-file file} }
               Optional argument and value set that specifies the rule for text renaming. The
               expression is a GNU regular expression.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
stack
                 Instead of in-line expressions, you can specify the path to a file that contains a list of
                 expressions. The file contains one expression per line. For example:
                     /A/B/
                     /A.*B/R/
                     /^VDD.*/VCC/
                     /A/B/g
                       Note
                    To list all successfully ignored pins in the report, include
                    “-report_ignored_pins YES” in the config -report argument set. See “-report” on
                 page 109 for details.
            o    -source source_name
                 Optional argument and value set that specifies the corresponding source placement
                 of a cell, similar to the map_placement command in standard Calibre 3DSTACK.
                 Hierarchical names are supported if the source netlist is hierarchical; use the forward
                 slash (/) as the hierarchy separator. For example:
                 •   A source netlist has a top cell named 3DSTACK_TOP that contains one
                     placement, named INTERPOSER, of the sub-circuit INTERPOSER_CHIP.
                 •   The INTERPOSER_CHIP has two placements, named DIE1 and DIE2.
                 In order to map to DIE1, you specify the hierarchical source_name as
                 INTERPOSER/DIE1.
 •      -tier ‘{’ {die_stack | stack_ref}… ‘}’
        Argument and value set that specifies a tier consisting of dies and stacks placed at the same
        z coordinate. A tier provides a method to place elements side-by-side. Additional
        connectivity checking is performed between the die placements within the same tier.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                        stack
 •    -stack stack_name
      Argument and value set that specifies the name of a stack defined in the
      Calibre 3DSTACK+ rule file. The same stack cannot be referenced more than once.
 •    -z_origin value
      Optional argument set that specifies the height of the die from the bottom of the stack,
      where the value is a distance in microns. This option enables the generation of a cross-
      section assembly view. See “Assembly Views” on page 34 for details.
Description
 The stack statement defines the assembly operations that construct your 3D package. It defines
 the locations of die placements and interface layers that connect die placements. The stack
 represents any set of vertical alignments. A true 3D stack may consist of multiple object
 placements. In a 2.5D interposer approach, each stack consists of a single die placement and the
 interposer. It is also possible to have an interposer with multiple stacks, each consisting of more
 than one die (or equivalent object) placement.
For Calibre 3DSTACK, all stack definitions are combined into a single assembly.
 At least one die, stack, or tier must be specified. The elements can be specified multiple times.
 The order of stack arguments determines the stack’s structure. The order in the stack is from
 bottom to top and does not always indicate whether die placements interact with one another.
 Each subsequent element in the stack is placed in a layer with the z coordinate greater than the z
 coordinate of the previous element.
 The -tier option is used to group elements side by side—all elements in a tier are at the same z
 location. The -tier option has special meaning during connectivity checking (see “connected” on
 page 144 for more details).
        Note
      Connectivity between die layers is determined implicitly by the layer definitions and die
      locations. If you need to explicitly define connectivity, use the connect command.
<stack-name>_tier<tier-index>_<die-name><placement-id>
where:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
stack
 The preceding example defines a stack named w_tier with the following die placements (for
 simplicity, the height of each die placement is 100):
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                        stack
Ignoring Pins
 You can also specify to ignore certain pins as follows:
Related Topics
 config
 die
 process
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connect
connect
 Optional in 3DSTACK+ extended syntax file.
 Defines explicit connectivity between die layers in a stack. This enables you to manually define
 connectivity between layers instead of using only the implicit connectivity provided by the
 physical assembly.
Usage
 connect -stack stack_name {-die die_name -layer die_layer_name}
    {-die die_name -layer die_layer_name} …
Arguments
 •      -stack stack_name
        Specifies the name of a stack that has been defined in the stack command.
 •      -die die_name
        Specifies a die that belongs to the named stack. The -die and -layer arguments must be
        specified in pairs. The first specified -die and -layer argument set is connected to any
        number of following -die and -layer pairs. You must specify at least one pair.
 •      -layer die_layer_name
        Specifies a single layer in the die.
Examples
 The following example demonstrates how to define explicit layer connectivity between a single
 layer that is present in three dies within the same stack.
     Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     connect
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
config
 Specifies configuration information for the 3DSTACK+ syntax format rule file. The top cell
 name, source netlist, report file, connectivity, and other information can be specified.
Usage
 config
    [-layout_primary name]
    [-layout_case {no | yes}]
    [-layer_props_file props_file]
    [-source_netlist ‘{’-file file_name -format {SPICE | MGC | CSV | VERILOG
        [-version {2001 | 1995}] } [-case {YES | NO}]
        [-hier [-wrap interposer_name]] [-order {column_list}] [-subckt_pins {pin_type}]
        [-apply_bboxing cell_list] ‘}’]
    [-report ‘{’ -file report_path [-max_results value] [-child_rdbs {NO | YES}]
        [-report_ignored_pins {NO | YES}] ‘}’]
    [-ignore_trailing_chars char_list]
    [-export_connectivity ‘{’ -file output_file [-format {VERILOG | AIF | MGC | SPICE
        | XSI]}] [-hier [-no_top]] [-pkg package_name]‘}’]…
    [-net_map “-nets list_of_nets -to net_name”]
    [-import_net_map -file filename]
    [-pin_map “-pins list_of_pins -to pin_name”]
    [-import_pin_map -file filename]
    [-set_auto_rve_show_layers {NO | YES}]
    [-set_rve_cto_file -set_rve_cto_file cto_file]
    [-svrf_spec -svrf_spec specification_file]
    [-units [-distance {um | mm | nm}] [-power {W | mW | uW}] [-time {s | hr | min | ms | us}]]
Arguments
 The descriptions for the config command options are contained in each of the linked topics.
Description
 This command provides a way to include the configuration information provided with certain
 standard Calibre 3DSTACK commands in the 3DSTACK+ extended syntax rule file. You can
 use the 3dstack_block command to include standard Calibre 3DSTACK commands that are not
 specified with the config command.
Examples
 The example specifies the name of the top cell for the 3D assembly as BGA, and generates the
 file 3dstack.report containing a report of the run. It also specifies to import connectivity
 information hierarchically from netlist.spice.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-layout_primary
 Option for the config command.
 Defines the name of the top-level cell for the 3D assembly.
Usage
 config … -layout_primary name
Arguments
 •    name
      Required value that specifies the name of the top-level cell for the 3D assembly. The default
      name is “TOPCELL_3DI” if this command does not appear in the chip stack rule file.
Examples
      config … layout_primary TOPCELL_3DSTACK
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-layer_props_file
 Option for the config command.
 Specifies a layer properties file for Calibre DESIGNrev that sets custom layer visibility options.
Usage
 config … -layer_props_file props_file
Arguments
 •    props_file
      Required path to a layer properties file. See the “Description” section for details.
Description
 The specified props_file defines the properties of the layers used in Calibre DESIGNrev and
 follows this format:
where:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-layout_case
 Option for the config command.
 Controls the case-sensitivity for the pins in layout.
        Note
      The config -source_netlist case option controls the case-sensitivity for the pins in the source.
Usage
 config … -layout_case {no | yes}
Arguments
 •    no | yes
      Optional value that controls the case-sensitivity handling of the assembly layout. If you
      specify yes, the layout net and pin names are handled in case-sensitive manner. The
      equivalent standard syntax command is layout_case. The default is no.
Examples
      config … -layout_case yes
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-source_netlist
 Option for the config command.
 Imports a source netlist file used for connectivity comparison. It is highly recommended that
 you use a source netlist during the verification of your assembly.
        Note
      The config -layout_case option controls the case-sensitivity for the pins in the layout.
Usage
 config … -source_netlist -file file_name
    -format {SPICE | MGC | CSV | {VERILOG [-version {2001 | 1995}]} }
    [-hier [-wrap interposer_name]]
    [-case {NO | YES}]
    [-order {column_list}]
    [-subckt_pins {NET_NAME | PIN_NUMBER | PIN_NAME}]
    [-apply_bboxing cell_list]
Arguments
 •    -file file_name
      Required argument and value set that specifies the name of the source netlist file.
 •    -format {SPICE | MGC | CSV | {VERILOG [-version {2001 | 1995}]} }
      Required argument and value set that specifies the format of the input file.
      The MGC format contains a list of add_connection directives that describe single
      connections in the 3D assembly:
      add_connection -connection1 {placement1 cell1 net1 pin_instance_name1} \
         -connection2 {placement2 cell2 net2 pin_instance_name2}
      If you specify to read a Verilog netlist, apply the -version argument to specify the version of
      the input netlist. The default version is Verilog 2001.
      The CSV keyword supports comma-separated value input files in AIF, XSI, or spreadsheet
      format. Calibre 3DSTACK also writes a SPICE file with the extension .spi to your working
      directory for debugging purposes. See “AIF Converter Reference” on page 276 and
      “Spreadsheet Converters” on page 283 for details on these files.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, and NET_NAME. This option can only be specified with the CSV keyword.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
 If there are connected checks specified in the chip stack rule file, the imported connectivity
 information is checked against the netlist information extracted from the chip stack. If your
 source netlist file is case-sensitive, specify the -case YES option.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
 Specify the -hier option if the source netlist is hierarchical. The standard syntax source_filter
 command is not supported when the -hier argument is used. See the sng command for
 information on generating a hierarchical source netlist.
 You can create a source netlist using the System Netlist Generator. See “System Netlist
 Generator Flow Example” on page 326.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-report
 Option for the config command.
 Generates a report file that contains information about the verification run. This is useful for
 debugging the design.
Usage
 config … -report -file report_file [-max_results value] [-child_rdbs {NO | YES}]
    [-report_ignored_pins {NO | YES}]
Arguments
 •    -file report_file
      Required argument set that specifies the name of the output file.
 •    -max_results value
      Optional argument set that limits the number of reported results (per check) to the number
      specified with the value keyword. The max_results argument applies to each check in the
      rule file. The value keyword must be a positive integer, unless “all” is specified. If value is
      set to “all”, no limitation is applied to the report command. The default is 50.
                  Note
               If you do not specify the report command in your rule file, then there is no limit to
               the number of results written to the results database.
Description
 Generates a file containing a report of the run. The format of the report is similar to the reports
 for Calibre nmLVS and Calibre PERC runs. Refer to Report File Format for an example.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
 The following sections are only generated when a source netlist is specified in the chip stack
 rule file:
Examples
 Use the following command to generate a report file with no reported result limitations:
Use the following command to limit the results for each rule check to a maximum of 30:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-ignore_trailing_chars
 Option for the config command.
 Removes specified characters from the end of text labels.
Usage
 config … -ignore_trailing_chars {character...}
Arguments
 •    character...
      Required list of characters to remove from the end of all text labels.
Description
 Removes up to one character from the end of text labels during connectivity extraction. Trailing
 characters, such as “:”, are sometimes used on text labels to indicate implied connections
 between polygons that are not physically connected.
 In the 3DSTACK assembly, it is possible for placement labels to inherit trailing characters. For
 example, the VSS and CLK nets may also be VSS: and CLK:. These are interpreted as different
 nets, even though they are the same.
 Use this command to ignore trailing characters so that the nets are connected during
 connectivity comparison.
Examples
 The following text label pairs are used in a design:
                  Table 3-4. Nets With Trailing Characters In Design
          Net            Standard Text Label              Label With Implied Connectivity
          VDD            VDD                              VDD:
          VSS            VSS                              VSS.
          CLK            CLK                              CLK::
          ADR            ADR                              ADR,
The following nets are extracted during connectivity analysis as a result of the command:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
 Note, that only the last character (“:”) was removed from the CLK net. Even though that
 character is specified, Calibre 3DSTACK only ignores the last character in the string, so the
 CLK and CLK: text labels are still considered different nets.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-export_connectivity
 Option for the config command.
 Exports the connectivity information into a netlist file.
Usage
 config … -export_connectivity -file file_name
    [-format {VERILOG | AIF | MGC | SPICE | XSI}]
    [{-property number} | -text]} [-flat]
    [-hier [-no_top]
    [-pkg package_name]]
Arguments
 •    -file file_name
      Required argument and value set that specifies the name of the output file.
 •    -format {VERILOG | AIF | MGC | SPICE | XSI}
      Optional argument set that specifies the format for the output connectivity file (the default is
      Verilog).
                 Note
               Use the export_layout command to write out annotated GDS files.
 •    -hier
      Optional argument that specifies to generate a hierarchical netlist for 2.5D ICs. This option
      only works with -format SPICE. You must also specify die -interposer for one of the
      imported chips.
      When the -interposer argument is applied to a layout and the -hier option is used, the
      generated netlist instantiates all dies within the layout instance specified by -interposer. The
      top cell of the assembly only contains the instantiated interposer die. The net names are
      generated from the interposer pin names.
 •    -no_top
      Optional argument that specifies not to create a new top cell for the entire design. This
      option requires -hier to be specified.
 •    -pkg package_name
      Optional argument that specifies a package layout in the design. The layout must not be an
      interposer. The specified package_name must have at least one layer defined in the
      connectivity stack. This option requires -hier to be specified.
Description
 Exports connectivity to a file in the specified format (Verilog, AIF, SPICE, MGC, or XSI).
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
 The MGC format contains a list of add_connection directives that describe single connections in
 the 3D assembly:
 Warnings are issued for single-port connections (nets connected to one port only) in the
 extracted netlist.
       Caution
    There should not be spaces in cell or pin names as this causes the exported netlist to be
    incorrect. For pins, the tool creates multiple pins in such a case. The export_connectivity
 command issues a warning for these cases.
AIF Format
 See “AIF Export File Format” on page 278 for details on the AIF netlist exported by
 Calibre 3DSTACK.
XSI Format
 Calibre 3DSTACK generates the XSI CSV file using the pins from all placements in the
 following columns:
685,685,TOPCELL_3DI,assembly1_tier1_BGA1,BS_SW1_GPIO_40,BGA
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
Examples
 This example demonstrates the config -export_connectivity -hier option. The two netlists are
 shown side-by-side for comparison:
                      Table 3-5. config -export_connectivity -hier
  3dstack_hier.sp                                         3dstack_no_hier.sp
  .SUBCKT TOP_CELL                                        .SUBCKT TOP_CELL
  XpInterposer                                            XpInterposer
  … interposer                                            … interposer
  .ENDS TOP_CELL                                          XpController
                                                          … controller
                                                          XpRam0
  .SUBCKT controller                                      … ram
  …                                                       XpRam1
  .ENDS controller                                        … ram
                                                          .ENDS TOP_CELL
  .SUBCKT ram
  …
  .ENDS ram                                               .SUBCKT controller
                                                          …
                                                          .ENDS controller
  .SUBCKT interposer
  …                                                       .SUBCKT ram
  XpController                                            …
  … controller                                            .ENDS ram
  XpRam0
  … ram                                                   .SUBCKT interposer
  XpRam1                                                  …
  … ram                                                   .ENDS interposer
  .ENDS interposer
 Without -hier, all chips in the assembly are instantiated in the TOP_CELL. With -hier, the chips
 that are not interposers are instantiated within the interposer.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-net_map
 Option for the config command.
 Specifies nets that can use a different name during connectivity checking. This command is
 useful for waiving known connectivity errors by adjusting net names at runtime.
Usage
 config … -net_map -nets list_of_nets -to net_name
Arguments
 •    -nets list_of_nets
      Required list of nets to rename.
 •    -to net_name
      Required name for the list of specified nets. All nets in the list_of_nets argument are
      renamed to the specified value.
Description
 The net mapping operation only occurs in memory during connectivity checking. Net mapping
 is written to the Calibre 3DSTACK report file.
 However, you cannot apply the -net_map statement multiple times to the same net
 (one-to-many). For example, the following is not allowed:
        Note
      Case-sensitivity is determined by the config -source_netlist -case setting.
Examples
 In this example, chip_1 and chip_2 have nets called “global_reset”. These nets are connected to
 a net named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can map the nets during connectivity checking by specifying the
 following command:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-import_net_map
 Option for the config command.
 Imports a text file that contains a list of net mapping statements.
Usage
 config … -import_net_map -file filename
Arguments
 •    -file filename
      Required argument that specifies the path to a file that contains a list of net mapping
      statements.
Description
 The file specified by the -file argument set contains one net mapping statement per line. Each
 line contains two space-separated entries as follows:
      original_net_name new_net_name
      …
 Where the original_net_name argument is an existing net name in the design and the
 new_net_name is the desired name.
        Note
      The same net cannot be renamed to different values.
        Note
      Case-sensitivity is determined by the config -source_netlist -case setting.
Examples
 In this example, chip_1 and chip_2 have nets called “global_reset”. These nets are connected to
 a net named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can rename the nets by specifying a file that contains the correct
 mapping:
global_reset reset
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-pin_map
 Option for the config command.
 Specifies pins that can use a different name during connectivity checking. This command is
 useful for waiving known connectivity errors by adjusting pin names at runtime. This operation
 does not rename pins in the layout.
         Note
      If you want to change text labels in the design, see “rename_text” on page 422.
Usage
 config … -pin_map -pins list_of_pins -to pin_name
Arguments
 •    -pins list_of_pins
      Required list of pins to rename.
 •    -to pin_name
      Required name for the list of specified pins. All pins in the list_of_pins argument are
      renamed to the specified value.
Description
 This command behaves similar to rename_text, except that the pin names in the layout and
 source are not physically altered. The pin mapping operation only occurs in memory during
 connectivity checking.
         Note
      If the specified pin name does not exist in the layout, then the mapping operation is ignored.
 The nets of the pins that are mapped are merged, forming a logical connection that is later
 checked against source. In other words, during the connectivity checking these mapped pins are
 treated as connected even if they are not physically connected.
 However, you cannot apply the -pin_map statement multiple times to the same pin
 (one-to-many). For example, the following is not allowed:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
        Note
      Case-sensitivity is determined by the config -source_netlist -case setting.
Examples
 In this example, chip_1 and chip_2 have pins called “global_reset”. These pins are connected to
 a pin named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can map the pins during connectivity checking by specifying the
 following command:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-import_pin_map
 Option for the config command.
 Imports a text file that contains a list of pin mapping statements.
Usage
 config … -import_pin_map -file filename
Arguments
 •    -file filename
      Required argument that specifies the path to a file that contains a list of pin mapping
      statements.
Description
 The file specified by the -file argument set contains one pin mapping statement per line. Each
 line contains two space-separated entries as follows:
      original_pin_name new_pin_name
      …
 Where the original_pin_name argument is an existing pin name in the design and the
 new_pin_name is the desired name.
        Note
      The same pin cannot be renamed to different values.
 The nets of the pins that are mapped are merged, forming a logical connection that is later
 checked against source. In other words, during the connectivity checking these mapped pins are
 treated as connected even if they are not physically connected.
Examples
 In this example, chip_1 and chip_2 have pins called “global_reset”. These pins are connected to
 a pin named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can rename the pins by specifying a file that contains the correct
 mapping:
global_reset reset
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-set_auto_rve_show_layers
 Option for the config command.
 Specifies for all rule checks (except tvf_block) whether Calibre RVE layer highlights show only
 layers used to derive the rule check.
Usage
 config … -set_auto_rve_show_layers {NO | YES }
Arguments
 •    NO
      Specifies not to apply -set_rve_show_layers AUTO to any checks that do not have an
      existing Calibre RVE layer specification. This is the default.
 •    YES
      Applies -set_rve_show_layers AUTO to all rule checks that do not have an existing Calibre
      RVE layer specification.
Description
 Use this optional rule file command to control the “-set_rve_show_layers {layer_list | AUTO}”
 option for all rule checks. When this command is specified with YES in the Calibre 3DSTACK
 rule file, then -set_rve_show_layers AUTO is applied to all rule checks that do not already
 specify the -set_rve_show_layers option. The AUTO keyword instructs Calibre RVE to only
 show the input layers that were used to derive the rule checks.
       Note
    In order to use this functionality, you must enable the Calibre RVE option “Only show
    check-dependent layers while highlighting results (hides other layers)” on the
 Setup > Options > Highlighting pane in the DRC/DFM Highlighting area. See “RVE Show
 Layers” in the Calibre RVE User’s Manual for complete details.
Examples
      config … -set_auto_rve_show_layers YES
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-set_rve_cto_file
 Option for the config command.
 Specifies the path to a check text override file that controls how results are highlighted in
 Calibre RVE.
Usage
 config … -set_rve_cto_file -file cto_file
Arguments
 •    -file cto_file
      Required argument and value that specifies the path to a check text override file.
Description
 Use this optional rule file command to specify the path to a check text override (CTO) file. The
 cto_file contains DRC RVE check text comments that control how results are highlighted in
 Calibre RVE. Only one CTO file is allowed.
        Note
      The -set_rve_* arguments in your Calibre 3DSTACK rule file take precedence over Calibre
      RVE options in your CTO file specified for the same rules.
The following CTO file specifies two check text comments for a rule named pads_on_grid:
      # DRC RVE check text override file for a Calibre 3DSTACK rule file
      #
      pads_on_grid
      RVE Highlight color: red
      RVE Show Layers: backside_rdl
 For complete information on the CTO file and how to load it, see “DRC RVE Check Text
 Override File (CTO File)” in the Calibre RVE User’s Manual.
         Caution
     Calibre RVE searches your working directory and loads a CTO file named 3dstack.rdb.cto
     if it exists. Do not use -set_rve_cto_file to specify this file if it exists in your working
 directory as it is automatically loaded. You may use 3dstack.rdb.cto as the CTO filename if it
 exists outside of your working directory.
Examples
      config … -set_rve_cto_file -file ./custom_rve_settings.cto
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-svrf_spec
 Option for the config command.
 Includes a file containing SVRF statements in the run.
Usage
 config … -svrf_spec svrf_file
Arguments
 •    svrf_file
      Required path to a file containing SVRF specification statements.
Examples
      config … -svrf_spec ./3dprocess.svrf
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
config
-units
 Option for the config command.
 Specifies the physical units used in the 3DSTACK+ rule file.
        Note
      The -units option has no effect on statements inside the 3dstack_block command.
Usage
 config … -units [-distance {um | mm | nm}] [-power {W | mW | uW}]
    [-time {s | hr | min | ms | us}]
Arguments
 •    -distance {um | mm | nm}
      Specifies the units for distance. The value must be microns, millimeters, or nanometers. The
      default is microns.
 •    -power {W | mW | uW}
      Specifies the units for power. The value must be watts, milliwatts, or microwatts. The
      default is watts.
 •    -time {s | hr | min | ms | us}
      Specifies the units for time. The value must be seconds, hours, minutes, milliseconds, or
      microseconds. The default is s.
Examples
      config -units {-distance nm}
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                       config
-warning_severity
 Option for the config command.
 Specifies the severity level for warning messages.
Usage
 config … -warning_severity -warning {message_id | *} -severity {0 | 1 | 2} [-count count]
Arguments
 •    -warning {message_id | *}
      Specifies the warning message by the ID. You can also specify * to include all warning
      messages.
 •    -severity {0 | 1 | 2}
      Sets the severity level of the message. The following keywords are supported:
          0 — Disables the warning message. The tool does not print this message.
          1 — Enables the warning message (the default).
          2 — Configures the warning message as an error. The tool immediately exits from arun
            after printing the contents of the message.
 •    -count count
      Sets an upper limit on the number of messages printed when the -severity is set to 1. This
      must be an integer greater than 0.
Examples
      config … \
         -warning_severity -warning 3DSTACK_WARNING_108 -severity 1 -count 20
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
process
process
 Defines technology kit layer information for the dies, interposers, packages, and other
 components used in a 3D-IC.
Usage
 process -name process_name
    {-layer_info ‘{’ arguments ‘}’ } …
    [-wb_connect layer1_name layer2_name [BY layer3_name] ] …
Arguments
 •    -name process_name
      Required keyword and name for the process technology.
 •    -layer_info ‘{’ arguments ‘}’
      Required argument and value set that specifies a layer in the process. You can specify more
      than one layer by applying the -layer_info argument set multiple times. Note that you must
      enclose the arguments for each layer within the {} braces.
      See “-layer_info” on page 82 for details.
 •    -wb_connect layer1_name layer2_name [BY layer3_name]
      Optional argument set that defines the connectivity of the process layers. This is only
      required for hierarchical (white-box) connectivity extraction of the assembly.
Description
 The process data is usually provided by the foundry that manufactures your IC. The advantage
 of applying this command is that you do not have to redefine layer information for each die in
 the 3D-IC. Instead, you can refer to a process that is already defined in the die command.
        Note
     If you specify layer information and a process in the die command, the layer information
     overwrites the process specification if the same information is defined in the process. If
 items are not defined in the layer information, the process data is merged with the layer
 information.
Examples
      process -name N10
          -layer_info {-type pad -name pad1 -layer 40 -top} \
          -layer_info {-type pad -name pad2 -layer 41 -top} \
          -layer_info {-type merge -name merge \
          -svrf {MERGE (EXTENT DRAWN pad1 pad2)}}
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     process
After defining a process, you can apply it in the die command as follows:
Related Topics
 die
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
export_layout
export_layout
 Generates an annotated GDS and extraction data for a specified portion of the assembly.
        Note
     You can use a different xCalibrate version than your current Calibre version. If you set the
     XCALIBRATE_HOME environment variable to a custom path, Calibre 3DSTACK uses
 that version instead of the xCalibrate version specified by MGC_HOME.
Usage
 export_layout -file output_file [-output_dir directory] [-stack stack_name]
    [-die ‘{’-die_name die_name
             [-layer_info ‘{’-name layer_name
                              [-pex_map calibrated_layer_name]
                              [-rc_model]
                              [-bottom_rc_interface | -top_rc_interface]
                           ‘}’]…
             [-rename_text {“expression”… | {-file file}]
             [-second_ground ‘{’
                 -name layer_name
                 {-vertices {x1 y1 x2 y2} | -extent }
                 -text "ground_name"
                 [-pex_map layer_name] ‘}’ ]
           ‘}’]
    [-cci [-ground_name name] [-power_name name]]
    [-enable_rc_deck | -enable_rc_map]
    [-flat] [-netlist_format {[SPICE] [XSI] [VERILOG] [MGC] [AIF]}]
    [-pex_map_file file]
    [-property property_number]
    [-rename_text "expression"]
    [-text [-use_net_text]]
    [-use_lvs_names]
    [-virtual_connect {net …}]
Arguments
 •    -file output_file
      Required argument set that specifies the path to output the generated layout file. The tool
      creates a DFM database in 3dstack.dfmdb/pex/<output_file>, where output_file is your
      specified layout file without the extension. For example, if you specified the following:
              export_layout -file my_output.agds …
      the tool creates a directory named my_output in the DFM database and saves all output files
      from the export_layout command in that directory.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                export_layout
               3dstack.dfmdb/pex/my_output/
                                 my_output.agds
                                   …
      If you want to output the files to a directory instead of a DFM database, apply the
      -output_dir option.
 •    -output_dir directory
      Optional argument set that specifies a directory in which to write all output files from the
      export_layout command. If you do not specify this option, the tool generates all output from
      the export_layout command to 3dstack.dfmdb/pex/<output_file> in your working directory.
 •    -stack stack_name
      Optional argument set that specifies to export the stack of dies as a new layout file.
 •    -die {arguments}
      Optional argument that specifies to export one or more interacting dies.
      The arguments inside the -die option must be enclosed in brackets {} and are described as
      follows:
          -die_name die_name
             Optional argument that specifies the name of the die to export.
          -layer_info {arguments}
             Optional argument set that specifies layers to include in the exported layout from the
             die.
             The -layer_info arguments must be enclosed in brackets {} and are described as
             follows:
               •   -name layer_name
                   Optional argument set that specifies a layer to export on the die.
               •   -pex_map calibrated_layer_name
                   Optional argument set that maps calibrated layer names to the physical layers in
                   the assembly. This argument set only applies for -format GDS.
                   The Calibre 3DSTACK tool uses this information to write an SVRF file when
                   exporting an annotated GDS file. The SVRF file is named
                   <gds_name>.map.svrf, where gds_name is the name you specified for the
                   annotated GDS. The calibrated layer names and assembly layer pairings are
                   written to the generated SVRF file with PEX Map statements. The following is
                   an example:
                   -layer_info {-name M1 -pex_map PM1_M1}
• -rc_model
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
export_layout
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                export_layout
              label. The tool also writes the information to the .map.svrf file. To use this option, you
              must specify the following arguments:
               •   -name layer_name — Specifies the name of the layer on which the second
                   ground shape is generated.
               •   -vertices x1 y1 x2 y2 — Specifies a set of coordinates for the ground pin shape.
                   This option is mutually exclusive with -extent.
               •   -extent — Specifies that the extent of the die should be used as the shape for the
                   second ground. This option is mutually exclusive with -vertices.
               •   -text “ground_name” — Specifies the text label for the second ground.
               •   -pex_map layer_name — Specifies the calibrated layer name for the second
                   ground.
 •    -cci [-ground_name] [-power_name]
      Optional argument that generates a set of standard files that can be used in third-party
      extraction flows. This option cannot be specified with the -text, -flat, -enable_rc_deck,
      -use_lvs_names, or -netlist_format options. The -cci argument includes the following
      options:
          -ground_name name
              Specifies a ground name used for ground nets in the generated Layer Net Specs
              (LNS) file.
          -power_name name
              Specifies a power name used for power nets in the generated LNS file.
      When you specify the -cci argument set, the tool creates a Layer Net Specs file in your
      working directory. The LNS file is an SVRF file that contains the following sections:
          o    Layer definitions.
          o    Connectivity statements.
          o    Power and ground name statements, if specified using the -power_name and
               -ground_name options.
      The tool generates a flat spice netlist that contains a top subcircuit without any instances and
      with sorted net numbers as pins.
      If you set the CALIBRE_3DSTACK_ENABLE_HIER_CCI environment variable to a non-
      null value, the following items include placement information:
          o    lnn (Layout Netlist Names)
          o    ixf (Instance Xref File)
          o    nxf (Net Xref File)
          o    lnxf (Layout Net Xref File)
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
export_layout
 •    -enable_rc_deck
      Optional argument that specifies to generate an extraction rule file for interface layers
      between two specified dies. You must specify the extraction files for each die with the -icrx
      or -mipt options in the -layer_info option of the die or process commands. The tool does the
      following when you specify this option:
          a. Retrieves interacting layers in each of the specified dies. The order of the layers is
             read from the specified stack.
              The dies that contain the interacting layers must have a MIPT or ICRX file,
              otherwise the tool issues an error.
          b. Generates a mapping file and MIPT file for the interacting layers between the
             specified dies in the export_layout output directory.
          c. Uses the mapping and MIPT file to generate the final RC rules file for the interface
             layers.
          d. Generates a log file named xcalibrate.log in the export_layout output directory.
      You can specify the export_layout command with this option for each of the interacting
      dies. This option cannot be specified with -enable_rc_map.
 •    -enable_rc_map
      Optional argument that specifies to only generate the xcalibrate_map file. This argument
      only applies to -enable_rc_deck and cannot be specified with -layout_only. If the MIPT files
      were not specified, the tool creates placeholders in the map file with the following format:
              <DIE_NAME>_mipt
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                export_layout
      For example:
               #RC layer names               LVS layer names
               BOT_TOPMETAL_MINUS1           AP
               TOP_TOPMETAL                  P_die1
               BOT_TOPMETAL                  P_die2
               BOT_TOPVIA                    C
      The tool skips a line if it contains less than two space-separated fields or if the line starts
      with a comment character (#).
 •    -property property_number
      Optional argument that specifies the property number to which to write connectivity
      information in the annotated GDS file. The default property number is 1. The number
      argument must an integer between 0 and 65535. This option only applies to -format GDS
      and is mutually exclusive with -text.
 •    -rename_text {“expression”… | {-file file}
      Optional argument set that renames text in the exported layout. The expression is a GNU
      regular expression. Multiple expressions are supported, but the entire set of expressions
      must be enclosed in quotes or braces. For example:
               -rename_text "/</\[/ />/\]/"
      Instead of in-line expressions, you can specify the path to a file that contains a list of
      expressions. The file contains one expression per line. For example:
               /A/B/
               /A.*B/R/
               /^VDD.*/VCC/
               /A/B/g
 •    -text
      Optional argument that specifies to include text in the generated layout file. If this argument
      is specified, the -flat argument is also applied automatically.
 •    -use_net_text
      Optional argument that specifies to use the net text for the pin names on all layers. When
      specified, text layers containing net name labels are treated as pin text layers and are used in
      Port Layer Text and Attach statements in the generated extraction rule file. If you do not
      specify this option, the tool uses the text and pin layers defined in the -layer_info option.
 •    -use_lvs_names
      Optional argument that specifies to use original layer names from the -layer_info option in
      the generated LVS rules file. If this argument is not specified, the tool uses the layer names
      from the generated Calibre 3DSTACK assembly. This argument cannot be specified with
      -cci.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
export_layout
 •    -virtual_connect {net …}
      Optional argument set that specifies a list of nets to which the virtual connect statement is
      applied. When the virtually connected nets are written to the .map.svrf file, Calibre xACT
      treats the virtually connected bumps on the same net as if they are connected, even if they
      are physically disconnected. The net value can be a regular expression.
Description
 The export_layout command also generates a template Calibre xACT rule file that contains all
 possible SVRF statements and placeholders for statements that need to be modified. The
 generated template file is written to the specified annotated GDS directory with the extension
 .template.svrf.
 Statements enclosed in brackets “< >” are placeholders that must be completed. The following
 is an example:
      INCLUDE ./path_to_lvs_deck
      INCLUDE <path_to_C_rules>INCLUDE <path_to_R_rules>
      INCLUDE <path_to_xact_rules>
Examples
 Export the assembly stack and files to a directory instead of a DFM database:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                export_layout
Export the layout interaction between the controller die and the interposer:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
Rule Check Commands
      •    Checks in the 3DSTACK+ file operate on placement layer types. The layer type is a
           custom string that is defined in the die -layer_info, component -layer_info, or
           process -layer_info commands.
      •    You can specify stack names in rule checks to apply rules to certain stacks.
      •    The -direction argument allows you to specify the vertical direction in which a check is
           applied.
      •    The connected check has options to specify white box and black box checking. See
           “connected” on page 144 for details.
      •    You can define a custom check using TVF statements with the custom_check command.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Command Reference
                                                                                        Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      centers
centers
 Checks for misaligned pads.
Usage
 centers -check_name check_name
    {-layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]}
    [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
    “constraint_value”
    [-alignment {octagonal_only | orthogonal_only}] [-overlapping] [-square]
    [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      output results. If centers is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
      For example, if a check is defined between layer_type1 and layer_type2, all the placement
      layers of layer_type1 that interact with the placement layer of layer_type2 (as defined by the
      stack) are checked against each other.
      If the check has only one layer type specified, the check is done on all placement layers of
      that type.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
          up — The check is only performed from the bottom to the top of the stack. This is the
            default.
          down — The check is only performed from the top to the bottom of the stack.
          both — The check is performed in both directions
 •    -constraint “constraint_value”
      Required argument and constraint that specifies the dimensions of the measurement region
      around a pad of the specified layer type, which must have an upper bound. The
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
centers
 If you want to check the center alignment of overlapping pads, specify the -overlapping
 argument. This option only checks the specified constraint between two overlapping pads. If
 this option is not specified, the centers command checks for neighboring and overlapping pads.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      centers
      Note
    The centers command operates with rectilinear shapes. If the geometries that you want to
    check include non-rectilinear shapes, then it is recommended to generate layer derivations
 without the non-rectilinear shapes and then use the derived layer in the check.
Examples
Example 1
 This example reports any pads on a layer placement that are not exactly within a center-to-
 center distance of 80 microns.
 If any pads from -placement1 (or all layers of type pads in the extended syntax) are not exactly
 80 um away from each pad’s center, Calibre 3DSTACK flags them by selecting the offending
 pads, similar to this:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
centers
Example 2
 This example demonstrates how to check the alignment between two overlapping pad
 placements. In this case, a chip is stacked on an interposer and you want to ensure that the pads
 do not misalign more than 0.1 um.
 The following rule check defines a maximum center-to-center deviation between the
 cont_placement and inter_placement pads of 0.1 um. It also specifies that the pad placements
 are orthogonally aligned and the detection region is square shaped.
 In this example, the check selects any interposer pads with centers more than 0.1 um away from
 the centers of the controller pads:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      centers
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connected
connected
 Checks for connectivity between connected shapes when there is a source netlist present. When
 no source netlist is present, it checks for matching text strings on connected shapes.
Usage
 connected -check_name check_name
    {[-layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]]
        | [-die1 die_name {[-standalone ] | [-die2 die_name]}]}
    [-stack ‘{’ stack_name_list ‘}’]
    [-detailed] [-black_box] [-white_box] [-isolate_path]
    [-net_mismatch {ALL | {[MULTI_NAME] [MISMATCH] [MISSING_NAME]}}]
    [-nothrutier] [-no_dangling_ports] [-no_extra_ports] [-no_missing_ports]
    [-pin_list list_of_pins]
    [-text_checks ‘{’ALL | NONE | [type …]‘}’]
    [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      If you do not specify a second layer type with the -layer_type2 option, Calibre 3DSTACK
      performs connectivity checks on placed_layer_type1 layer inside the die. See “Internal
      Connectivity Checking” on page 149 for details.
      If you do not specify a layer type or a die, the tool performs a connectivity check on the
      entire assembly.
 •    -die1 die_name {[-standalone] | [-die2 die_name]}
      Argument and value set that checks connectivity for one or more dies. This argument cannot
      be specified with the -layer_type1 or -layer_type2 arguments.
      The benefit of this die-name to die-name connectivity checking is that pin text layers can be
      attached to any one (or multiple) layers in the die and Calibre 3DSTACK automatically
      constructs the pins for this die. If you perform layer-type to layer-type connectivity
      checking, pin text layers must be attached to the layer type that represent the pins. This
      argument set has the following two modes:
         o    -die1 die_name -standalone — Checks the internal connectivity of the specified die.
              This option checks the internal connectivity of the die in isolation, ignoring any
              external connections from the assembly operations. If you use this option and your
              assembly only contains one die, then you do not need to include any stack
              definitions because the tool generates the stack internally.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                   connected
                     Note
                   Dangling port checks are automatically disabled for standalone connectivity
                   checking.
          o    -die1 die_name -die2 die_name2 — Checks the connectivity between the two
               specified dies.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -detailed
      Argument that enables detailed reporting of connectivity errors. This option is always
      enabled. Additional properties are reported for each result:
          o    LNC (Layout Net Components) — the names of the ports connected to the layout
               net.
          o    SNC (Source Net Components) — the names of the ports connected to the source
               net.
      This feature has no effect if source_netlist is not present in the chip stack rule file.
 •    -isolate_path
      Optional argument that enables path isolation for connected results that involve shorts. This
      feature enables you to highlight paths between shorted pins or pads in your design that can
      help debug the cause of connectivity errors.
      When you enable this option, the shorts in connectivity results are filtered under a
      <connect_check_name>_isolated result to display only the ports that are physically
      involved in the short. This option has no effect on open circuit results. See “Using Path
      Isolation to Debug Shorts” on page 48 for an example.
 •    -net_mismatch {ALL | {[MULTI_NAME] [MISMATCH] [MISSING_NAME]}}
      Optional argument that specifies to check for net text issues on the specified layer. You
      must specify either attach_text -net_text or die -layer_info -net_text on the layer, depending
      on your rule file syntax. The tool issues a warning and skips net text checks if these options
      are not specified for the layer. MISMATCH and MISSING_NAME errors are reported by
      default.
      See “Net Text Mismatch Checking” on page 151 for details.
      The options behave as follows:
          ALL
              Report all net mismatch problems.
          MULTI_NAME
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connected
              Report multiple net names in the layout that belong to a single net name in the source.
         MISMATCH
              Report net names in the layout that are different than net names in the source. The
              tool performs this check by default.
         MISSING_NAME
              Report missing net names in the layout for net names found in the source. The tool
              performs this check by default.
      The following is an example:
               connected … -net_mismatch {MULTI_NAME MISMATCH}
 •    -no_dangling_ports
      Optional argument that specifies to exclude DanglingPort errors from the verification
      results. DanglingPort errors are reported when port placements have no physical
      connectivity with connectivity layers. To check for this type of error without performing a
      full connectivity check, use the dangling_ports command.
 •    -no_extra_ports
      Optional argument that specifies to exclude ExtraPort errors from the verification results. If
      you want this option to apply to an entire layer, then it must be specified for each connected
      check in which the layer is specified. To check for this type of error without performing a
      full connectivity check, use the extra_ports command.
                  Note
               If you apply this option, extra port errors are listed in the report within the context of
               each connected command.
 •    -pin_list list_of_pins
      Optional argument set that specifies a list of pins for which to report shorts or opens. This
      argument set can only be applied when you are checking a single layer type with the
      -layer_type1 argument set. If this option is not specified, shorts and opens are reported for
      all pins. See Example 3 later in this section.
 •    -no_missing_ports
      Optional argument that specifies to exclude MissingPort errors from the verification results.
      If you want this option to apply to an entire layer, then it must be specified for each
      connected check in which the layer is specified. To check for this type of error without
      performing a full connectivity check, use the missing_ports command.
 •    -text_checks ‘{’ALL | NONE | [type …]‘}’]
      Optional argument and keyword list that specifies the types of text checks that you want to
      execute. The results of these checks are reported for each specified connected command.
      You can specify either of the following options to enable or disable all text checks:
          o    ALL — All text checks are performed. This is the default.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                   connected
                 Note
               To check for these types of errors without performing a full connectivity check, use
               the floating_texts, multi_texts, and no_texts commands.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
 •    -black_box
      Optional argument to specify black box connection checking. As an example, even if
      internal routing layers for the interposer are defined in the assembly file, block box checking
      is performed. If tiers are defined with the stack command, connectivity checks are applied
      between the interposer and the dies of the interacting tier but not between dies within a tier.
 •    -white_box
      Optional argument to specify white box connection checking. As an example, routing layers
      are checked through the interposer. If tiers are defined with the stack command,
      connectivity checking is applied between dies within the tier that interact with the
      interposer. A compiler error occurs if the internal routing layers of the interposer are not
      defined in the assembly file and -white_box only is specified.
                 Note
               Both -black_box and -white_box may be specified. If neither is specified, both are
               used.
 •    -nothrutier
      Optional argument that specifies not to perform through-tier connectivity checking in the
      connected check. This option ignores internal layers that pass through dies from the
      connected check.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connected
Description
 The connected check is applied in the following manner in a 3DSTACK+ rule file:
        Note
     If you specify multiple layer types in different connected checks for the same dies, then the
     tool ignores the duplicated connected rule checks and only executes one of the checks. In
 this case, the tool issues the following warning:
This command has two modes, depending on the presence of a source netlist in the rule file:
      •   Mode 1 — Verifies that connected shapes on the specified placed layers form valid
          connections, and outputs results to a check named check_name. This mode is enabled
          when config -source_netlist is present in the chip stack rule file. (See “Creating a
          Calibre 3DSTACK Rule File” on page 24 for more information.)
      •   Mode 2 — Verifies that connected shapes on the specified placed layers contain
          identical text strings, and outputs results in a check named check_name. This mode is
          enabled when config -source_netlist is not present in the chip stack rule file. (See
          “Creating a Calibre 3DSTACK Rule File” on page 24 for more information.)
 More information on each mode is given later in the section.
        Note
     If you do not specify a second layer or layer type (depending on the syntax), Calibre
     3DSTACK performs connectivity checks on the first specified layer inside the die. See
 “Internal Connectivity Checking” on page 149 for details.
Typically, this command appears more than once in the chip stack rule file.
       Caution
     Calibre 3DSTACK issues an error message if placements involved in a connected check are
     not part of a connectivity stack. A connectivity stack is defined by explicitly issuing the
 die -wb_connect command in the rule file or through implicit interactions generated by
 Calibre 3DSTACK. To avoid this error, the connectivity should be properly defined.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                   connected
Mode 1
 If the config -source_netlist command is present in the chip stack rule file, this command
 verifies that connected shapes on the specified placed layers form valid connections, and
 outputs results to a check named check_name.
 Connectivity data is extracted from the chip stack based on placement layer connections (either
 defined explicitly using a die -wb_connect statement, or implicitly if there are no connect
 statements) and text layers. You can also define implicit connectivity between die layers using
 the connect command. This connectivity data is compared with the connectivity data defined in
 the source netlist. All mismatches are considered invalid connections and are reported as errors.
 Connected shapes that do not contain text are output in a separate text checks.
      •   Net — The 3D assembly node number that the pin is connected to.
      •   Port — The 3D assembly port name in the form placement_name:net_name.
      •   SourceNet — The netlist node number that the pin is connected to. If the netlist node
          number cannot be determined, “UNKNOWN” is used for the value.
Mode 2
 If the config -source_netlist command is not present in the chip stack rule file, this rule check
 verifies that connected shapes on the specified layers contain identical text strings, and outputs
 results in a check named check_name. Connected shapes that do not contain text are output in a
 separate text checks. If there are no connect statements in the rule file, a connections are
 executed implicitly for the specified layers.
      •   Shorts — Checks that all pins connected to the same net have the same name. If the
          names are different, Calibre 3DSTACK reports a short for the associated geometry.
      •   Opens — Checks that one or more pins that share the same name are physically
          connected. If they are not connected, Calibre 3DSTACK reports an open for the
          associated geometry.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connected
The shorts and opens are reported in sections of the Calibre 3DSTACK report file:
      RuleCheck: CONNECT_1
      -------------------------------------------------------------------------
      ----------------------
      OPENS
      ----------------------
      1
      Port: pRAM_stack1:vdd
      Net: 68
      LNC: pRAM_stack1:vdd
      ...
      ----------------------
      SHORTS
      ----------------------
      200
      Port: pRAM_stack1:vdd
      Net: 68
      SNC: pRAM_stack1:vdd
      ...
Text Checks
 All text-related verification checks are reported by the type of text result and the chip it belongs
 to (if the placement is part of a connectivity check). The text results are organized into the
 following categories:
      •   Floating text — Text labels that do not overlap with a pad. Apply the floating_texts
          command outside of connected statements.
      •   No text — Pads that are missing text labels. Apply the no_texts command outside of
          connected statements.
      •   Multi text — Pads that have more than one text label (overlapping labels). In certain
          cases, pads can overlap and create overlapping text labels. In these cases, the following
          warning message is issued:
              WARNING: there are multiple text-labels overlapping with the pads on
              layer layer.
              "connected" check may produce incorrect results!
          Multi text warnings are not issued if the overlapping text labels are identical. Apply the
          multi_texts command outside of connected statements.
          In the case where multiple text labels overlap a pad in the layout, the tool generates a
          multi-text error and chooses to use one of the text labels attached to the pad for the
          connectivity analysis. Because the chosen label may not match your design intent, it is
          important to review and resolve all multi-text errors to ensure that the layout is correct.
          If you do not resolve the multi-text errors, your connectivity analysis may not be correct.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                   connected
                 Note
              If there are multiple placements for one chip and the placements do not use
              rename_text operations, the text results are reported for the first placement only (the
          other affected placements are mentioned in the generated Calibre RVE check
          comments).
      •   Extra Port — Missing ports in the source (or extra ports in the layout). The
          source_netlist command must be included in order for these results to be produced.
          Calibre RVE allows you to highlight and cross-reference LNC and SNC ports from the
          details pane. This result can occur if one or more of the following conditions are true:
          o    The subcircuit for a placement is missing a pin definition in the source netlist.
          o    When multiple text labels are found on one pad, Calibre 3DSTACK chooses one of
               the labels and associates it with that pad during connectivity extraction. As a result,
               an Extra Port result can occur because the placement port may not be found in the
               source netlist.
          You can disable this check by specifying the -no_extra_ports option.
      •   Missing Ports — A port in the source netlist has no corresponding layout pad. The
          source_netlist command must be included in order for these results to be produced.
          When the result is highlighted, there is no layout object to highlight, so the result
          properties are displayed in the bottom left corner of the top cell in the assembly.
          The result includes the properties SourceNet and MissingPort and these properties are
          displayed as links in the Result Data Pane—click the links to highlight the source net
          and port. The Calibre 3DSTACK DFM Database and the source netlist must be open in
          Calibre RVE; see “Debugging Connectivity Errors in Calibre 3DSTACK” on page 43.
          You can disable this check by specifying the -no_missing_ports option.
 To perform net text checking, you must specify the connected -net_mismatch option on the
 given layers.
 A net is considered matching (no issues) when there is only one net text label in a given path
 and that net text label matches the source net name in the source netlist. If this is not the case, all
 layout pin instance geometries on the path are marked with a net mismatch error.
      •   Missing Name — There is no name associated with the current layout net. All pads of
          the net are reported.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connected
      •   Mismatch — The source net name is not among the associated net names.
      •   Multi Name — Multiple net names are attached to the same layout net. All text pads are
          reported.
 The result also contains the following formation:
 Based on the defined stack, the connectivity check conn1 derives three separate connectivity
 checks:
      •   Between the bump type of placement layers of the INT die placement and the first
          placement of the MEM die
      •   Between the bump type of placement layers of the INT die placement and the second
          placement of the MEM die
      •   A separate check between the bump type of placement layers of two MEM die
          placements, since they are defined within the same tier.
              die -die_name INT -interposer -layout {-path ./INT.gds} \
                 -anchor {-name mem1 -placement 0 0} \
                 -anchor {-name mem2 -placement 1000 0} \
                 -layer_info {-type bump -bottom -layer 43 -text 44}
              die -die_name MEM -layout {-path ./MEM.gds} \
                 -anchor {-name int -placement 0 0} \
                 -layer_info {-type bump -bottom -layer 40 -text 40}
              stack -stack_name w_tier \
                 -die {-name INT -invert -rotate 90} \
                 -tier { \
                    -die {-name MEM -anchor INT mem1 anchor_INT} \
                    -die {-name MEM -anchor INT mem2 anchor_INT} \
                 }
              connected -check_name conn1 -layer_type1 bump -layer_type2 bump
Both white box and black box checking is performed (the default).
Example 2
 The following example performs black box connectivity checks on a 2.5D design. This can be
 performed even if the internal routing layers of the interposer are defined in the assembly file.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                   connected
 The following check performs white box checking. It checks the physical connection of the pad
 layers through the interposer.
Example 3
 If you specify only one layer type, Calibre 3DSTACK checks the connectivity of that layer
 inside the die. For example, the following rule checks for opens and shorts on geometry
 connected to the bump layer type.
For this same example, you can specify a list of pins to check on the layer type as follows:
In this case, the tool only reports shorts or opens on the VDD and VSS pins.
Example 4
 The following example checks the connectivity between two dies:
Example 5
 The following example checks the internal connectivity of a single die:
Example 6
 The following example verifies the connectivity between all dies in the assembly using a single
 check:
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
connected
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                        copy
copy
 Exports specified layer contents.
Usage
 copy -check_name check_name -layer_type placed_layer_type
    [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
    [-comment “comment”]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      output results. If copy is specified multiple times, each check_name must be unique.
 •    -layer_type placed_layer_type
      Argument and value set that specifies the type of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
          up — The check is only performed from the bottom to the top of the stack. This is the
            default.
          down — The check is only performed from the top to the bottom of the stack.
          both — The check is performed in both directions
Description
 Use this command to copy and export the layer contents. This command saves the layer
 placement in DFM database format and exports it into the 3dstack.rdb and corresponding
 auxiliary RDB.
Examples
      copy -check_name enc_check -layer_type bump \
         -comment "EXPORT OPERATION\n Writing layer type bump to DFM database"
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
copy
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                custom_check
custom_check
 Used in the 3DSTACK+ extended syntax file. Cannot be used in the standard rule file.
 Defines custom checks using TVF format for the 3DSTACK+ syntax.
Usage
 custom_check -check_name check_name
    [-stack stack_list] [-direction {up | down | both}]
    -layer_type1 ‘{’ placed_layer_type1… [-merge] ‘}’
    [-layer_type2 ‘{’ placed_layer_type2 … [-merge] ‘}’ ]
    -tvf ‘{’ tvf_body ‘}’
Arguments
 •    -check_name check_name
      Required argument set that specifies the check name. The check name must be unique in the
      rule file. The check name is used in the output result database.
 •    -stack stack_list
      Optional argument set that specifies the stack(s) the check is applied to. The check is
      applied to all stacks if this argument is not specified.
 •    -direction {up | down | both}
      Optional argument set specifying the direction of the check if two layer types are specified.
          o    up — Apply check from bottom to top (default).
          o    down — Apply the check from top to bottom.
          o    both — Apply the check in both directions.
 •    -layer_type1 ‘{’ placed_layer_type1 … [-merge] ‘}’
      A required argument set that specifies the layer type(s) the check applies to. If -merge is
      specified all layers of the specified type(s) are merged before the check is applied.
 •    -layer_type2 ‘{’ placed_layer_type2 … [-merge] ‘}’
      An optional argument set that specifies one or more layer types used for a second layer
      argument in the rule check. The check is applied to layers of layer_type1 and layer_type2
      that interact. If -merge is specified all layers of the specified type(s) are merged before the
      check is applied.
 •    -tvf ‘{’ tvf_body ‘}’
      Required argument set that specifies a block of TVF statements that define a rule check. See
      the “Description” section for more information on writing the rule check body.
      If a list is used within the command body, braces ({…}) should be used to enclose the list to
      ensure correct evaluation. Do not use the list syntax ([list …]).
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
custom_check
Description
 The custom_check command defines a custom rule check using TVF statements. Internally, the
 tool generates a set of TVF blocks with the correct layer arguments depending on the layer types
 specified with -layer_type1 and -layer_type2.
 If custom_check is defined with only the -layer_type1 argument, then a set of TVF rule checks
 is generated for all layers corresponding to placed_layer_type1. If -merge is specified all
 matching layers are merged and only one rule check is generated for the merged layer.
 If both -layer_type1 and -layer_type2 are specified, then a set of TVF rule checks is generated
 using interacting layer pairs of type placed_layer_type1 and placed_layer_type2. If -merge is
 specified all matching layers are merged and only one rule check is generated for the merged
 layer.
 The TVF::OUTLAYER statement can have only one argument, the output layer name, when
 used in Calibre 3DSTACK. Use the TVF::SETLAYER statement for layer derivations. For
 example, the following construction causes an error:
The output layer for the preceding example is correctly specified as follows:
      # CORRECT, use SETLAYER for derivation and OUTLAYER with one argument
      TVF::SETLAYER out = EXT via < 0.35 ABUT < 90 SINGULAR
      TVF::OUTLAYER out
 Comments may be specified with tvf::COMMENT; check text comments are specified with
 tvf::@. See “Rule checks in Compile-Time TVF” for details.
      •   Do not change the value of global Tcl variables. Global variables may be used within the
          rule check body, but any changes are local in scope. Therefore, modification of such Tcl
          variables within the tvf_body may result in undefined or undesired behavior.
      •   Do not declare Tcl variables within the tvf_body. Usage of locally declared variables
          results in an error.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                custom_check
      •   Use the {A B …} list construction. Do not use the list command because command
          substitution takes place and the list command is evaluated.
          For example, the command [list A B] is evaluated and replaced by “A B” (without
          quotes), which is generally not the intent, as it is no longer a list. Use the {A B} list
          construction for proper evaluation.
 The following actions take place when the custom_check code body is evaluated:
      1. Command substitution and Tcl variable evaluation takes place. Use the preceding
         coding guidelines to ensure correct evaluation.
      2. The evaluated custom_check code body is passed to the generated 3DSTACK rule file,
         along with other commands converted from 3DSTACK+ to standard 3DSTACK.
          No syntax checking is done for the 3DSTACK commands within the custom_check,
          therefore any errors are reported during the 3DSTACK rule file compilation or at
          runtime, not during the 3DSTACK+ rule file compilation step.
Examples
Example 1
 A custom check between two interacting pad layers.
Example 2
 A custom check that checks the ratio of the die area to package area.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
custom_check
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                               dangling_ports
dangling_ports
 Checks for placed ports that do not have physical connectivity on a specified placement or layer
 type.
       Note
     This rule check identifies problems with physical connectivity in the layout that are not
     reported using netlist-based connectivity checks. The dangling_ports check is not intended
 to highlight missing text. For missing text, use the no_texts check.
Usage
 dangling_ports -check_name check_name
    -layer_types layer_types_list
    [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Use this command to verify that the port placements in the layout have physical connectivity
 with connectivity layers.
        Note
     If all port placements of the same pin are physically unconnected (for example, they are all
     are dangling) in the layout and the corresponding port is not connected in the source netlist,
 they are not highlighted as an error because the layout versus netlist is technically correct.
 Port-related verification checks are reported by the type of result and the chip, placement, die,
 or layer to which it belongs. This command allows you to perform port checks without running
 a full connectivity analysis with the connected command.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
dangling_ports
         Note
      If you do not specify a source netlist, Calibre 3DSTACK uses the layout connectivity to
      check for dangling ports.
Examples
 This command verifies that all of the ports on the pad layer type are connected to physical
 geometry.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      density
density
 Checks for density constraints on specified placements.
Usage
 density -check_name check_name { -layer_types {placed_layer_type …} }
    [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
    -constraint “constraint_expression” [-expression “density_expression”]
    [-window {wxy | wx wy} [-step {sxy | sx sy}] ]
    [-window_type {truncate | backup | ignore | wrap}] [-inside { extent | placed_layer}]
    [-centers value] [-comment “comment”] [rve_option ...]
Arguments
 •    -checkname check_name
      Required argument and value set that specifies a check name, which is used when writing
      output results.
 •    -layer_types {placed_layer_type …}
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
          up — The check is only performed from the bottom to the top of the stack. This is the
            default.
          down — The check is only performed from the top to the bottom of the stack.
          both — The check is performed in both directions
 •    -constraint “constraint_expression”
      Required argument and value set that specifies a constraint. The constraint_expression
      “< 0” is not allowed.
      When used without a density_expression, data capture windows whose area ratio meets the
      constraint_expression are output. In this case, if the ratio is intended as a percentage, the
      constraint_expression should contain numbers between 0 and 1, where division by 100 has
      already occurred.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
density
      In Table 3-7, x is a numeric argument (including numeric variables and other numeric-
      valued expressions). There is no compile-time or runtime exception checking on the
      arguments of these functions, and unreasonable or undefined values may result from certain
      arguments.
      The expression must not result in strictly negative values because such values cannot be
      checked by a constraint_expression. Division by zero is defined not to satisfy any
      constraint_expression.
      Parentheses have the highest precedence for the calculation of numeric values and may be
      used for grouping of terms.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                             Command Reference
                                                                                                       density
      Operators — Unary operators (+, -, !, ~) require only one numerical argument and all such
      operators have the same precedence. The unary + and - operators are the usual positive and
      negative signs. The other unary operators do the following:
          ! operator — Returns 0 (or false) if its argument is non-zero and 1 (or true) if its
             argument is 0.
          ~ operator — Returns 0 (or false) if the argument is positive and 1 (or true) if the
             argument is non-positive.
      The following table shows some useful combinations of the ~ and ! operators.
                        Table 3-8. ! and ~ Operator Combinations
    x         !(x)        !!(x)        !(x-1)      !!(x-1)      ~(x)        ~~(x)        ~(x-1)       ~~(x-1)
    3         0           1            0           1            0           1            0            1
    2         0           1            0           1            0           1            0            1
    1         0           1            1           0            0           1            1            0
    0         1           0            0           1            1           0            1            0
    -1        0           1            0           1            1           0            1            0
    -2        0           1            0           1            1           0            1            0
    -3        0           1            0           1            1           0            1            0
      Table 3-7 does not show the following relations explicitly, but they can be verified from the
      table:
          !~(x) = ~~(x) and ~!(x) = !!(x).
      The binary operators ^, *, /, +, - require two numerical arguments. The ^ operator is the
      same as the C language pow( ) function, where x ^ y means x raised to the y power.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
density
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      density
      The stepped data capture windows start in the lower-left corner of the data capture extent
      and initially are tiled in sxy or sx increments to the right. Upon arriving at the right edge of
      the data capture extent, the capture windows are tiled upward by the sxy or sy increment and
      are tiled again starting from the left edge of the data capture extent.
      For further details, refer to the Density command described in the Standard Verification
      Rule Format (SVRF) Manual.
 •    -window_type {truncate | backup | ignore | wrap}
      Optional argument and value set that specifies the type of window.
          o    truncate
               Optional keyword that specifies a data capture window is truncated at the limits of
               the data capture extent. The density calculation in a truncated window is based upon
               the truncated dimensions of the window. This is the default behavior if you do not
               specify this keyword. The algorithms for this and related keywords are discussed in
               the “Functional Details” section of the Density command in the Standard
               Verification Rule Format (SVRF) User’s Manual.
                            Figure 3-1. density -window_type truncate
          o    backup
               Optional keyword that specifies if a window overlaps the right or top edges of the
               data capture extent, the window is shifted left or down until it is no longer
               overlapping the data capture extent. The density calculation is then performed after
               the window has been shifted.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
density
         o    ignore
              Optional keyword that specifies if a window overlaps the right or top edges of the
              data capture extent, then the window is ignored and no data for that window location
              is output.
                            Figure 3-3. density -window_type ignore
         o    wrap
              Optional keyword that specifies if a window overlaps the right or top edges of the
              data capture extent, then the data capture extent and its data are duplicated and added
              to the right side or top side of the original bounding box. The density measurement is
              then taken in the window that intersects the duplicated data capture extent regions.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      density
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
density
Description
 The density verification check is typically used to compute the density of an input layer within
 a specified data capture window, such as in this design rule: “The density of metal2 in every
 50 x 50 area of the layout must exceed 25%.” The default density function is defined as the
 ratio of the total area of the input layers within the data capture window to the area of the
 window itself. The density is calculated as the window is tiled over a specified data capture
 extent. Each window placement that meets the constraint value is output as part of a merged
 layer.
 The size of the data capture window, the data capture extent, and how the data capture window
 is tiled across the capture extent are controlled with options. The density_expression option is
 used to provide a custom calculation instead of the default density calculation.
 For further details, refer to the Density command described in the Standard Verification Rule
 Format (SVRF) Manual. Also see “Density Best Practices” in the Calibre Solutions for Physical
 Verification manual.
Examples
 This example check computes the density of an input layer’s route and bump types:
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                    enclosure
enclosure
 Checks for sufficient separation distance between the exterior-facing sides of the first
 placement’s edges and the interior-facing sides of the second placement’s edges.
Usage
 enclosure -check_name check_name
    {-layer_type1 placed_layer_type1 -layer_type2 placed_layer_type2}
    [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
    -constraint “constraint_value” [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 -layer_type2 placed_layer_type2
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
      For example, if a check is defined between layer_type1 and layer_type2, all the placement
      layers of layer_type1 that interact with the placement layer of layer_type2 (as defined by the
      stack) are checked against each other.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
          up — The check is only performed from the bottom to the top of the stack. This is the
            default.
          down — The check is only performed from the top to the bottom of the stack.
          both — The check is performed in both directions
 •    -constraint “constraint_value”
      Specifies the checking distance, which must have an upper bound. The constraint_value
      must conform to the constraint notation described under “Constraints” in the Standard
      Verification Rule Format (SVRF) Manual.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
enclosure
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays the rule check
      results. Multiple options are allowed. The permitted values for rve_option are described in
      detail under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Measures the separation distance between the exterior-facing sides of placed_layer_type1 edges
 and the interior-facing sides of placed_layer_type2 edges, and outputs edge pairs that satisfy the
 specified constraint_value.
Examples
 This rule example applies to all interacting pad-bump layers in the upward direction (the
 default) for all stacks. It measures the separation distance between the exterior-facing sides of
 pad layer edges and the interior-facing sides of bump layer edges.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                    enclosure
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
external
external
 Checks for sufficient separation distance between the exterior-facing sides of the first
 placement’s edges and the exterior-facing sides of the second placement’s edges.
Usage
 external -check_name check_name
      {-layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]}
     [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
     -constraint “constraint_value” [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
      For example, if a check is defined between layer_type1 and layer_type2, all the placement
      layers of layer_type1 that interact with the placement layer of layer_type2 (as defined by the
      stack) are checked against each other.
      If the check has only one layer type specified, the check is done on all placement layers of
      that type.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
         up — The check is only performed from the bottom to the top of the stack. This is the
           default.
         down — The check is only performed from the top to the bottom of the stack.
         both — The check is performed in both directions
 •    -constraint “constraint_value”
      Required argument and value set that specifies the checking distance, which must have an
      upper bound. The constraint_value must conform to the constraint notation described under
      “Constraints” in the Standard Verification Rule Format (SVRF) Manual.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     external
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Measures the separation distance between the exterior-facing sides of placed_layer_type1edges
 and the exterior-facing sides of placement2 edges. If -placement2 is not specified, this
 command measures the separation distance between the exterior-facing sides of
 placed_layer_type1 edges. Edge pairs are output that satisfy the specified constraint_value.
The placement1 and placement2 values must be a pair of placed polygon layers.
Examples
Example 1
 This example rule measures the separation distance between the exterior-facing sides of pad
 layer edges and the exterior-facing sides of edges of the same layer.
Example 2
 The following example demonstrates how assemble dies and check for sufficient spacing
 between chip placements.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
external
 For this example, we want to ensure that no chip comes within 65 microns of the extents of the
 chip edge (using the predefined chip extent layer)
        Tip
      You can also derive layers to determine the chip extent using the die -svrf option:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     external
 Calibre 3DSTACK flags the Mem_1 chip placement because it lies within 65 um of the
 Controller’s extents. Mem_2 is within a safe distance:
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
extra_ports
extra_ports
 Checks for missing ports in the source (or extra ports in the layout) on a specified chip,
 placement, die or layer.
Usage
 extra_ports -check_name check_name
     -layer_types layer_types_list
     [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Use this command to verify that the pads in the layout match the ports in the source netlist. Port-
 related verification checks are reported by the type of result and the chip, placement, die, or
 layer to which it belongs. This command allows you to perform port checks without running a
 full connectivity analysis with the connected command.
 The source_netlist command must be included in order for these results to be produced. Calibre
 allows you to highlight and cross-reference LNC and SNC ports from the details pane. This
 result can occur if one or more of the following conditions are true:
      •   The subcircuit for a placement is missing a pin definition in the source netlist.
      •   When multiple text labels are found on one pad, Calibre 3DSTACK chooses one of the
          labels and associates it with that pad during connectivity extraction. As a result, an Extra
          Port result can occur because the placement port may not be found in the source netlist.
Examples
 This command verifies that the layout pads match the source netlist for all pad layer types.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                  extra_ports
Related Topics
 missing_ports
 multi_texts
 floating_texts
 no_texts
 connected
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
floating_pads
floating_pads
 Checks for pads of a layer type or stack that do not overlap any other pads from other dies or
 interposers in the stack.
Usage
 floating_pads -check_name check_name
     -layer_type layer_type [-stack stack_name_list ]
     [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type layer_type
      Required argument that specifies a single layer type. The layer type is checked with
      interacting layers from other dies to highlight floating pads.
 •    -stack stack_name_list
      Optional argument and value set that specifies a Tcl-formatted list of stack names. If this
      option is used, the check only applies to the layer types on the specified list of stacks.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 This command enables you to check for unconnected pads on dies and interposers in your
 layout. If they are not connected to any interacting layers, the tool reports a floating pad error.
Examples
 The first command verifies that all pads are connected to interacting geometry on the RAM and
 IO stacks. The second command verifies floating pads for all pad layer types in the assembly.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                floating_pads
Related Topics
 offgrid_centers
 overlap
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
floating_texts
floating_texts
 Checks for text labels that are not attached to any geometry on a specified chip, placement, die
 or layer.
Usage
 floating_texts -check_name check_name
     {-dies die_name_list | -layer_types layer_types_list }
     [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -dies die_name_list
      Argument and value set that specifies a Tcl-formatted list of die names. This argument set
      cannot be specified with -layer_types.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types. This argument set
      cannot be specified with -dies.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Use this command to verify that text labels in the design are attached to physical geometry. If
 they are not attached, Calibre 3DSTACK reports a floating text error. Text-related verification
 checks are reported by the type of text result and the chip, placement, die, or layer to which it
 belongs. This command allows you to perform floating text checks without running a full
 connectivity analysis with the connected command.
Examples
 The first command verifies that all text is correctly attached to geometry on the controller and
 interposer die. The second command verifies floating text for all pad layer types.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                floating_texts
Related Topics
 no_texts
 multi_texts
 connected
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
floating_trace
floating_trace
 Checks for traced layers with attached text labels that are not connected to a pad.
Usage
 floating_trace -check_name check_name
     {-dies die_name_list | -layer_types layer_types_list }
     [-comment “comment”]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -dies die_name_list
      Argument and value set that specifies a Tcl-formatted list of die names. This argument set
      cannot be specified with -layer_types.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types. This argument set
      cannot be specified with -dies.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
Examples
 This example checks for traced layers with text that are not connected pad on the controller and
 interposer die.
Related Topics
 floating_texts
 no_trace
 multi_trace
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     internal
internal
 Checks for sufficient separation distance between the interior-facing sides of the first
 placement’s edges and the interior-facing sides of the second placement’s edges.
Usage
 internal -check_name check_name
     {-layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2] }
     [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
     -constraint “constraint_value”
     [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 [-layer_type2 placed_layer_type2]
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
      For example, if a check is defined between layer_type1 and layer_type2, all the placement
      layers of layer_type1 that interact with the placement layer of layer_type2 (as defined by the
      stack) are checked against each other.
      If the check has only one layer type specified, the check is done on all placement layers of
      that type.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
          up — The check is only performed from the bottom to the top of the stack. This is the
            default.
          down — The check is only performed from the top to the bottom of the stack.
          both — The check is performed in both directions
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
internal
 •    -constraint “constraint_value”
      Specifies the checking distance, which must have an upper bound. The constraint_value
      must conform to the constraint notation described under “Constraints” in the Standard
      Verification Rule Format (SVRF) Manual.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Measures the separation distance between the interior-facing sides of placed_layer_type1 edges
 and the interior-facing sides of placed_layer2 edges. If placed_layer_type2 is not specified, this
 command measures the separation distance between interior-facing sides of placed_layer_type1
 edges. Edge pairs are output that satisfy the specified constraint_value.
Examples
 This example rule applies to all interacting pad-to-pad layers in both the upward and downward
 directions of all stacks. The check measures the separation distance between the interior-facing
 sides of pad layer edges and the interior-facing sides of interacting pad layer edges.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                    locations
locations
 Checks the location of pads and that the shape and text match between source and layout.
Usage
 locations -check_name check_name
      {-layer_type1 placed_layer_type1 -layer_type2 placed_layer_type2}
     [-stack ‘{’ stack_name_list ‘}’]
     [-constraint “constraint_value”] [-text_only | -overlap_only] [-no_case]
     [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name that is used when writing out
      results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 -layer_type2 placed_layer_type2
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
      For example, if a check is defined between layer_type1 and layer_type2, all the placement
      layers of layer_type1 that interact with the placement layer of layer_type2 (as defined by the
      stack) are checked against each other.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -constraint “constraint_value”
      Optional argument and value set that specifies the overlap constraint in terms of a
      percentage. The constraint must have an upper bound. The constraint_value must conform
      to the constraint notation described under “Constraints” in the SVRF Manual. The default
      constraint is “<100”.
 •    -text_only
      Optional argument that specifies to only check for placement geometries with text that does
      not match. If the geometries overlap, but the text does not match, Calibre 3DSTACK reports
      a “Different Text” error. If the geometries do not overlap, then the geometry is reported as
      an “Unmatched Pads” error. This option cannot be specified with -overlap_only or
      -constraint.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
locations
 •    -no_case
      Optional argument that specifies to perform case-insensitive text comparison. For example,
      when you apply this option, “VDD” in the layout and “vdd” in the source are not considered
      different.
 •    -overlap_only
      Optional argument that specifies to only check for placement geometries that meet the
      specified constraint_value. Geometries that do not overlap or exceed the specified
      constraint are flagged as “Unmatched Pads” errors. This option cannot be specified with
      -text_only.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 This command checks that pads overlap correctly, have matching shapes, and have text labels
 that match between two placement layers. Checking is done in both directions—layout pads are
 compared to source pads and source pads are compared to layout pads. The source pad
 information must be given as a placement in the 3DSTACK assembly.
 Location checking is only done for pads with attached text, in other words, for placement layers
 with associated text placement layers specified with the attach_text command. By default, the
 attach_text command causes the placement layer to be part of connectivity extraction, which is
 only needed for layout placement layers. When using attach_text with source layers, use the
 -no_update argument to specify that the layer is not included in the extracted layout netlist.
 The command produces an output layer with result shapes corresponding to the pad. Each result
 has the following property annotations:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                    locations
Examples
      locations -check_name locations_check                     \
         -layer_type1 pad \
         -layer_type2 bump
      ************************************************************************
         LOCATIONS RULECHECK RESULTS
      ************************************************************************
      RuleCheck: locations_check ( text only check Selecting unmatched pad
      placements between pCont_CONTROLLER_if and pInterp_INTERP_FRONT_if
      layers.)
      ------------------------------------------------------------------------
      gnd in placement pCont (-454.49, 10.28)
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
missing_ports
missing_ports
 Checks for ports in the source netlist that have no corresponding layout pad on a specified chip,
 placement, die or layer.
Usage
 missing_ports -check_name check_name
     -layer_types layer_types_list
    [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Use this command to verify that each pad in the source netlist has a corresponding layout pad.
 Port-related verification checks are reported by the type of result and the chip, placement, die,
 or layer to which it belongs. This command allows you to perform port checks without running
 a full connectivity analysis with the connected command.
 The source_netlist command must be included in order for these results to be produced. When
 the result is highlighted, there is no layout object to highlight, so the result properties are
 displayed in the bottom left corner of the top cell in the assembly.
 The result includes the properties SourceNet and MissingPort and these properties are displayed
 as links in the Result Data Pane (click the links to highlight the source net and port). The
 Calibre 3DSTACK DFM database and the source netlist must be open in Calibre RVE; see
 “Debugging Connectivity Errors in Calibre 3DSTACK” on page 43.
Examples
 This command verifies that the layout contains matching pads found in the source netlist for all
 pad layer types.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                missing_ports
Related Topics
 extra_ports
 multi_texts
 floating_texts
 no_texts
 connected
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
multi_texts
multi_texts
 Checks for multiple text labels attached to the same pad on a specified chip, placement, die or
 layer. In the case where multiple text labels overlap a pad in the layout, the tool generates a
 multi-text error and chooses to use one of the text labels attached to the pad for the connectivity
 analysis. Because the chosen label may not match your design intent, it is important to review
 and resolve all multi-text errors to ensure that the layout is correct. If you do not resolve the
 multi-text errors, your connectivity analysis may not be correct.
        Note
     If there are multiple placements for one chip and the placements do not use rename_text
     operations, the text results are reported for the first placement only (the other affected
 placements are mentioned in the generated Calibre RVE check comments).
Usage
 multi_texts -check_name check_name
   {-dies die_name_list | -layer_types layer_types_list }
   [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -dies die_name_list
      Argument and value set that specifies a Tcl-formatted list of die names. This argument set
      cannot be specified with -layer_types.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types. This argument set
      cannot be specified with -dies.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Use this command to verify that pads in the design only contain one text label. Multiple text
 labels on a single pad may indicate a layout connectivity error. Text-related verification checks
 are reported by the type of text result and the chip, placement, die, or layer to which it belongs.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                  multi_texts
 This command allows you to perform multiple text checks without running a full connectivity
 analysis with the connected command.
 The check verifies that your design does not have pads that have more than one text label
 (overlapping labels). In certain cases, pads can overlap and create overlapping text labels. In
 these cases, the following warning message is issued:
Multi text warnings are not issued if the overlapping text labels are identical.
Examples
 The first command verifies that each pad on the controller and interposer die only contains a
 single text label. The second command performs the same check, but for all pad layer types.
Related Topics
 floating_texts
 no_texts
 connected
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
multi_trace
multi_trace
 Checks for multiple traced layers with different text labels that are attached to a pad on the same
 traced layer.
Usage
 multi_trace -check_name check_name
   {-dies die_name_list | -layer_types layer_types_list }
   [-comment “comment”]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -dies die_name_list
      Argument and value set that specifies a Tcl-formatted list of die names. This argument set
      cannot be specified with -layer_types.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types. This argument set
      cannot be specified with -dies.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
Examples
 This example checks for more than one traced layer attached to each pad on the controller and
 interposer die.
Related Topics
 multi_texts
 no_trace
 floating_trace
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     no_texts
no_texts
 Checks for missing text labels for pads on a specified chip, placement, die or layer.
Usage
 no_texts -check_name check_name
    {-dies die_name_list | -layer_types layer_types_list }
    [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -dies die_name_list
      Argument and value set that specifies a Tcl-formatted list of die names. This argument set
      cannot be specified with -layer_types.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types. This argument set
      cannot be specified with -dies.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 Use this command to verify that all pads in the design are correctly labeled with text objects.
 Text-related verification checks are reported by the type of text result and the chip, placement,
 die, or layer to which it belongs. This command allows you to perform missing text checks
 without running a full connectivity analysis with the connected command.
Examples
 The first command verifies that all pads are correctly labeled on the controller and interposer
 die. The second command verifies pad text for all pad layer types.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
no_texts
Related Topics
 multi_texts
 floating_texts
 connected
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                     no_trace
no_trace
 Checks for traced layers that do not have an attached text label.
Usage
 no_trace -check_name check_name
    {-dies die_name_list | -layer_types layer_types_list }
    [-comment “comment”]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -dies die_name_list
      Argument and value set that specifies a Tcl-formatted list of die names. This argument set
      cannot be specified with -layer_types.
 •    -layer_types layer_types_list
      Argument and value set that specifies a Tcl-formatted list of layer types. This argument set
      cannot be specified with -dies.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
Examples
 This example checks for traced layers that are missing text labels on the controller and
 interposer die.
Related Topics
 no_texts
 multi_trace
 floating_trace
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
offgrid_centers
offgrid_centers
 Checks for pad centers that are not aligned to a specified grid.
Usage
 offgrid_centers -check_name check_name
     -layer_type placed_layer_type
     [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
     -resolution {resolution_value | {x_resolution_value y_resolution_value }}
     [-hint] [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type placed_layer_type
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
         up — The check is only performed from the bottom to the top of the stack. This is the
           default.
         down — The check is only performed from the top to the bottom of the stack.
         both — The check is performed in both directions
 •    -resolution {resolution_value | { x_resolution_value y_resolution_value}}
      Required argument and value set that specifies the grid resolution in microns. Floating-point
      numbers are allowed. The resolution_value is applied in both the x and y directions. The
      x_resolution_value and y_resolution_value arguments enable you to specify different
      resolutions in the respective dimensions.
 •    -hint
      Optional keyword that specifies the output objects provide locations of nearby on-grid
      points. These can be useful for correcting the locations of off-grid objects. The locations of
      the HINT markers are simply suggestions for on-grid locations.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                               offgrid_centers
      See “Offgrid” in the SVRF Manual for complete details on this option’s operation.
 •    -comment “comment”
      Optional argument and value set that specifies a rule check comment. You can specify
      multi-line comments using the “\n” escape sequence.
 •    rve_option …
      Optional argument and value set that controls how Calibre RVE displays rule check results.
      Multiple options are allowed. The permitted values for rve_option are described in detail
      under “Check Text Override Comments for Calibre 3DSTACK” on page 211.
Description
 This command detects whether the center points of pad shapes are aligned to a specified grid.
 The grid used for checking objects is defined by either the resolution_value or
 x_resolution_value and y_resolution_value parameters. For example, if you specify the
 resolution as 45, then all relevant points (vertices, endpoints, or center points) of objects are
 checked to see if their x and y coordinates are on a 45 micron grid.
 The functionality is similar to the SVRF Offgrid operation with the CENTERS option as
 described in the Standard Verification Rule Format (SVRF) User’s Manual.
Examples
 This example checks for pads on the “route” layer that are not aligned to a five micron grid:
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
overlap
overlap
 Checks for sufficient overlap between two placed layers.
        Note
     This rule check is not recommended for pad alignment checking if the two pad shapes are of
     a different size or different shape type (for example, a circle versus a square). Instead, use
 the centers check.
Usage
 overlap -check_name check_name
    {-layer_type1 placed_layer_type1 -layer_type2 placed_layer_type2}
    [-stack ‘{’ stack_name_list ‘}’] [-direction {up | down | both}]
    -constraint “constraint_value” [-exact] [-by_area] [-intersection]
    [-comment “comment”] [rve_option …]
Arguments
 •    -check_name check_name
      Required argument and value set that specifies a check name, which is used when writing
      out results. If this command is specified multiple times, each check_name must be unique.
 •    -layer_type1 placed_layer_type1 -layer_type2 placed_layer_type2
      Argument and value set that specifies the type(s) of the layer for which the check is applied.
      All geometrical checks are applied on interfacing (interacting) placement layers defined by
      the stack(s). The placement layer refers the layer of the die placement.
      For example, if a check is defined between layer_type1 and layer_type2, all the placement
      layers of layer_type1 that interact with the placement layer of layer_type2 (as defined by the
      stack) are checked against each other.
 •    -stack ‘{’ stack_name_list ‘}’
      Optional argument and value set that specifies the stack(s) for which the rule check is
      applied. If this argument set is not specified, the check is applied to all stacks. The stack
      with the given name should be specified. If the -stack argument is specified, the checks are
      applied only to specified stack(s).
 •    -direction {up | down | both}
      Optional argument and value set that specifies the direction of the check. If the -direction
      argument is specified, the checks are performed only in the specified direction.
         up — The check is only performed from the bottom to the top of the stack. This is the
           default.
         down — The check is only performed from the top to the bottom of the stack.
         both — The check is performed in both directions
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                      overlap
 •    -constraint “constraint_value”
      Required argument and value set that specifies the overlap constraint, which must have an
      upper bound. The constraint_value must conform to the constraint notation described under
      “Constraints” in the SVRF Manual.
 •    -exact
      Optional argument that specifies that the percentage constraint_value is not rounded to the
      nearest integer. If this argument is not applied, then the constraint is always rounded. For
      example, if you specify the following:
               overlap … -constraint 98.6
      The tool checks for pads that do not overlap by at least 99%. However, if you apply the
      -exact option as follows:
               overlap … -constraint 98.6 -exact
 If you specify the -by_area option, the overlap value is the area overlap between the first and
 secondary placement layers instead of the percentage overlap.
To report the intersecting region between the placement layers, use the -intersection keyword.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
overlap
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                select_checks
select_checks
 Selects specified checks to execute during a Calibre 3DSTACK verification.
Usage
 select_checks { -check_names ‘{’ check_name_pattern [check_name_pattern …] ‘}’
     | -stack_names ‘{’ stack_name_pattern [stack_name_pattern …] ‘}’
     | -layer_types ‘{’ layer_type_pattern [layer_type_pattern …] ‘}’ }
Arguments
 •    -check_names ‘{’check_name_pattern [check_name_pattern …]‘}’
      Argument and value set that specifies a list of rule checks that are executed. The list of
      checks are specified as Tcl regular expressions. Multiple check_name_pattern values are
      allowed.
 •    -stack_names ‘{’stack_name_pattern [stack_name_pattern …]‘}’
      Argument and value set that specifies a list of stacks for which rule checks are not executed.
      Any checks that apply to the specified stacks are executed. The list of stacks are specified as
      Tcl regular expressions. Multiple stack_name_pattern values are allowed. Must not be
      specified with the -check_names or -layer_types argument.
 •    -layer_types ‘{’layer_type_pattern [layer_type_pattern …]‘}’
      Argument and value set that specifies a list of layer types for which rule checks are not
      executed. Any checks that apply to the specified layer types are executed. The list of layer
      types are specified as Tcl regular expressions. Multiple layer_type_pattern values are
      allowed. Must not be specified with the -stack_names or -check_names argument.
 •    -check_types ‘{’check_type …‘}’
      Optional argument and value set that specifies the types of checks to execute. The
      check_type can be any of the following values:
                   enclosure                  internal                  external
                   connected                  locations                 copy
                   overlap                    density                   centers
                   offgrid_centers            tvf_block
                   floating_texts             multi_texts               no_texts
                   extra_ports                missing_ports             dangling_ports
                 Note
               Specify texts_checks or ports_checks to select all text and port checks, respectively.
      You can specify any number of check_type values. If this option is not specified, all check
      types are selected.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
select_checks
Description
 This command executes only those rule checks that are defined by the check_name_pattern
 argument list. Checks can also be selected using the -stack_names and -layer_types
 arguments.
 Multiple select_checks commands are allowed in the Calibre 3DSTACK rule file. If multiple
 select_checks statements are specified, the list is accumulated as shown in Example 2.
Examples
Example 1
 Specify a single check to run:
Example 2
 Specify multiple checks to run using either of the following methods:
Example 3
 Execute internal and external checks only.
Example 4
 Specify a single layer type to run (this can result in multiple rule check selection):
Example 5
 Specify multiple layer types to run:
Example 6
 Alternatively, enter multiple commands:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                select_checks
Example 7
 Specify single stack to run (this can result in multiple rule check selection):
Related Topics
 unselect_checks
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
unselect_checks
unselect_checks
 Selects specified checks not to execute during a Calibre 3DSTACK verification.
Usage
 unselect_checks { -check_names ‘{’check_name_pattern [check_name_pattern …] ‘}’
    | -stack_names ‘{’ stack_name_pattern [stack_name_pattern …] ‘}’
    | -layer_types ‘{’ layer_type_pattern [layer_type_pattern …] ‘}’ }
Arguments
 •    -check_names ‘{’check_name_pattern [check_name_pattern …]‘}’
      Required argument and value set that specifies a list of rule checks that are excluded from
      the verification run. The list of checks are specified as Tcl regular expressions. Multiple
      check_name_pattern values are allowed.
 •    -stack_names ‘{’stack_name_pattern [stack_name_pattern …]‘}’
      Argument and value set that specifies a list of stacks for which rule checks are not executed.
      Any checks that apply to the specified stacks are executed. The list of stacks are specified as
      Tcl regular expressions. Multiple stack_name_pattern values are allowed. Must not be
      specified with the -check_names or -layer_types argument.
 •    -layer_types ‘{’layer_type_pattern [layer_type_pattern …]‘}’
      Argument and value set that specifies a list of layer types for which rule checks are not
      executed. Any checks that apply to the specified layer types are executed. The list of layer
      types are specified as Tcl regular expressions. Multiple layer_type_pattern values are
      allowed. Must not be specified with the -stack_names or -check_names argument.
 •    -check_types ‘{’check_type …‘}’
      Optional argument and value set that specifies the types of checks to exclude. The
      check_type can be any of the following values:
                  enclosure                  internal                  external
                  connected                  locations                 copy
                  overlap                    density                   centers
                  offgrid_centers            tvf_block
                  floating_texts             multi_texts               no_texts
                  extra_ports                missing_ports             dangling_ports
                Note
              Specify texts_checks or ports_checks to unselect all text and port checks,
              respectively.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                              unselect_checks
      You can specify any number of check_type values. If this option is not specified, no check
      types are unselected.
Description
 This command removes specified rule checks from the Calibre 3DSTACK verification run that
 are defined with the check_name_pattern value list.
Checks can also be unselected using the -stack_names and -layer_types arguments.
 The syntax and usage is similar to the DFM Unselect Check command described in the
 Standard Verification Rule Format (SVRF) Manual. Multiple unselect_checks commands are
 allowed in the rule file. If multiple unselect_checks statements are specified, the list is
 accumulated as shown in Example 2.
Examples
Example 1
 Unselect a single check:
Example 2
 Unselect multiple checks using either of the following methods:
Example 3
 Exclude internal and external check types from the verification run.
Example 4
 Specify a single layer type to run (this can result in multiple rule check selection):
Example 5
 Specify multiple layer types to run:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
unselect_checks
Example 6
 Alternatively, enter multiple commands:
Example 7
 Specify single stack to run (this can result in multiple rule check selection):
Related Topics
 select_checks
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Command Reference
                                                                                                3dstack_block
3dstack_block
 Used in the 3DSTACK+ extended syntax file.
 Defines a code block in which standard Calibre 3DSTACK rule file format commands can be
 specified. This command allows you to directly pass standard 3DSTACK syntax commands to
 the Calibre 3DSTACK run.
Usage
 3dstack_block ‘{’ body ‘}’
Arguments
 •    ‘{’ body ‘}’
      The body is a required set of arguments that consist of commands from the standard Calibre
      3DSTACK syntax. You must enclose the commands in braces {}.
      If a list is used within the command body, braces ({…}) should be used to enclose the list to
      ensure correct evaluation. Do not use the list syntax ([list …]).
Description
 Use this command to define custom commands. The 3dstack_block command allows you to
 specify commands from the standard 3DSTACK syntax language in the extended 3DSTACK+
 rule file. See “Standard Calibre 3DSTACK Syntax Commands” on page 355
 Some configuration information can be specified with the config command rather than by using
 standard Calibre 3DSTACK commands in a 3dstack_block statement; this includes the
 layout_primary, source_netlist, report, ignore_trailing_chars, and export_connectivity
 commands.
Evaluation Details
 The tool performs command substitution and evaluates Tcl variables before evaluating the code
 within the 3dstack_block. Use the following guidelines when using Tcl within the
 3dstack_block:
      •   Do not change the value of global Tcl variables. Global variables may be used within the
          code body, but any changes are local in scope. Therefore, modification of such Tcl
          variables within the 3dstack_block may result in undefined or undesired behavior.
      •   Do not declare Tcl variables within the 3dstack_block. Usage of locally declared
          variables results in an error.
      •   Use the {A B …} list construction. Do not use the list command because command
          substitution takes place and the list command is evaluated.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
3dstack_block
      1. Command substitution and Tcl variable evaluation takes place. Use the preceding
         coding guidelines to ensure correct evaluation.
      2. The evaluated 3dstack_block code body is passed to the generated 3DSTACK rule file,
         along with other commands converted from 3DSTACK+ to standard 3DSTACK.
         No syntax checking is done for the 3DSTACK commands within the 3dstack_block,
         therefore any errors are reported during the 3DSTACK rule file compilation or at
         runtime, not during the 3DSTACK+ rule file compilation step.
Examples
      3dstack_block {
         export_template -chip c2.oas -system OASIS
         run -drc -directory ./DRC -rule_deck ./n45_m.rules \
            -run_options "-turbo -hier"
         source_filter -chip interposer -subckt tsv -short_pins {bottom top}
         map_placement -placement Memory_1 -source memory_block_1
         ignore_pin -placement p1 -pin {VSS}
         import_text_labels -chip stack_die -file lvsText_dieWrapper.txt
         tvf_block creating_logic_to_memory_connects {
              tvf::SETLAYER l_logic_ltsv_to_memory = l_ltsv NOT i_out_M1_tsv;
           } -export_layers {l_logic_ltsv_to_memory} -attach_to_placement l
         set_auto_rve_show_layers YES
         set_rve_cto_file -file ./custom_rve_settings.cto
      }
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Command Reference
                                                    Check Text Override Comments for Calibre 3DSTACK
Arguments
 •    -set_rve_highlight_index index
      Applies a Calibre RVE Highlight Index comment to the check. The index value is an integer
      that specifies the highlight layer index used for the rule check. See “RVE Highlight Index”
      in the Calibre RVE User’s Manual for more details.
 •    -set_rve_highlight_color color
      Applies a Calibre RVE Highlight Color comment to the check. The color value (for
      example, blue) specifies the layer color used when the rule check is highlighted in supported
      layout viewers from Calibre RVE. See “RVE Highlight Color” in the Calibre RVE User’s
      Manual for more details.
 •    -set_rve_priority priority
      Applies a Calibre RVE Priority comment to the check. The priority value is an integer that
      sets the display priority for a rule check. The rule check priority is displayed in the tree view
      of Calibre RVE and can be used to sort the rule checks. See “RVE Priority” in the
      Calibre RVE User’s Manual for more details.
 •    -set_rve_show_layers {layer_list | AUTO}
      Specifies the layers that are shown in the layout editor when highlighting a result from the
      rule check. The layer_list parameter is a list of layers that are visible when highlighting a
      rule check result in the layout editor (unspecified layers are hidden).
      The AUTO keyword instructs Calibre RVE to only show the input layers that were used to
      derive the rule check.
      This command is only supported by Calibre DESIGNrev, Calibre WORKbench, and
      Cadence Virtuoso.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
Check Text Override Comments for Calibre 3DSTACK
      In order to use this functionality, you must enable the Calibre RVE option “Only show
      check-dependent layers while highlighting results (hides other layers)” on the
      Setup > Options > Highlighting pane in the DRC/DFM Highlighting area. See “RVE
      Show Layers” in the Calibre RVE User’s Manual for more details.
 •    -set_rve_link doc [-anchor_tag tag] [-display_text text]
      Applies a Calibre RVE Link comment to the check. This option creates a hyperlink to a
      filename specified by the doc value. The link is displayed in the check text pane of
      Calibre RVE for the specified rule check. The -set_rve_link command may be specified
      with the following optional arguments:
          o   -anchor_tag tag
              An optional keyword and parameter that specifies a named destination tag within the
              document.
          o   -display_text text
              An optional keyword and parameter that specifies the display text for the hyperlink.
              If this keyword and parameter is not included, the hyperlink text displays the full
              path.
      See “RVE Link” in the Calibre RVE User’s Manual for more details.
Description
 The usage of check text override comments is described in detail in the section “DRC Rule
 Check Comments for Calibre RVE” in the Calibre RVE User’s Manual.
 The CTO commands can be used to set the priority of text related checks during connectivity
 extraction.
Examples
Example
 If you want to change the default Calibre RVE highlight color for a rule check, you may specify
 the set_rve_highlight_color option as follows:
 When this check is selected in the Calibre 3DSTACK results database using Calibre RVE, the
 new highlight color option is listed in the check comments section. When the result is
 highlighted, the result layer in the layout editor is colored red.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Command Reference
                                                    Check Text Override Comments for Calibre 3DSTACK
Example
 Multiple check comment options may also be specified as follows:
Example
 To assign priorities to text-related checks, include a CTO in your 3DSTACK rule file as
 follows:
      my_connected_check_1
      RVE Priority: 1
      No_Text
      RVE Priority: 2
      Floating_Text
      RVE Priority: 2
      Multi_text
      RVE Priority: 2
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Command Reference
Check Text Override Comments for Calibre 3DSTACK
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                   Chapter 4
                                                     Calibre 3DSTACK Utilities
 Calibre 3DSTACK includes utilities that allow you to convert other layout or CSV files into
 supported formats.
 The spreadsheet conversion utilities and AIF conversion utilities are commands within the
 Calibre YieldServer tool.
 System Netlist Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
 AIF Converter Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
 Spreadsheet Converters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                      Calibre 3DSTACK Utilities
                                                                                                     System Netlist Generator
   sng::remove_placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
   sng::set_net_name_template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
   sng::unconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Flow and Invocation
 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
 sng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Workflow
 The System Netlist Generator can be invoked from Calibre Interactive to generate a netlist from
 an existing rule file or it can be used in a stand-alone flow.
 The System Netlist Generator workflow is illustrated in the following figure.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                 Calibre 3DSTACK Utilities
                                                             System Netlist Generator Flow and Invocation
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Flow and Invocation
sng
 Invocation arguments for the System Netlist Generator control the startup mode and operation
 of the tool.
Usage
Interactive (GUI) Invocation
 sng [-gui] [-project project_file]} [-log_dir log_file_directory]
Batch Script Invocation
 sng -batch -script script_file [-script_args script_args] [-log_dir log_file_directory]
Hierarchical Source Netlist Creation
 sng -batch{-stitch -assembly assembly_netlist -top_cell top_cell -die_map die_map_file
    [-run_dir run_dir] [-output output_file] [-rename_cells]}
Arguments
 •    -batch
      Required keyword for batch mode and hierarchical source netlist creation. This keyword
      cannot be specified with -gui.
 •    -script script_file
      Keyword and path to a script file that contains batch Tcl commands for the System Netlist
      Generator. This argument is required for batch mode invocation and cannot be specified
      with -gui.
 •    -script_args script_args
      Keyword and list of arguments that are passed to the Tcl script_file. The passed arguments
      can be accessed in the script using standard predefined variables, such as argv0, argv, and so
      on. This argument cannot be specified with the -gui argument.
 •    -gui
      Optional keyword that invokes the System Netlist Generator graphical user interface. This
      argument cannot be specified with the -batch argument. If you invoke sng without any
      arguments, the GUI is automatically loaded.
 •    -project project_file
      Optional keyword and path to an existing project. The project_file database opens when you
      invoke the System Netlist Generator GUI. This argument cannot be specified with the
      -batch argument.
 •    -log_dir log_file_directory
      Optional keyword and path to a directory that contains generated log files. By default, a
      directory named sng_log_dir is created where you launch the tool.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                 Calibre 3DSTACK Utilities
                                                             System Netlist Generator Flow and Invocation
 •    -stitch
      Generates a hierarchical netlist from specified input netlists. This argument set must be used
      with -batch.
 •    -assembly assembly_netlist
      Required path to the assembly netlist file. The netlist file contains instantiations of all chips
      in the stack and the top cell for the assembly.
 •    -top_cell cell_name
      Required name of the top cell in the assembly netlist file for the stitching flow.
 •    -die_map die_map_file
      Required file that specifies die netlist files that belong to chip instantiations (subcircuits) in
      the assembly netlist file. Each line in the file contains a single mapping and the fields are
      space-separated. You must enter the fields in the order as follows:
                chip_name format file_path cell_name
      The first column corresponds to placed chips in the 3D-IC assembly netlist. The second
      column indicates the format of the individual netlist files. The third column specifies the
      path to each netlist file. Finally, the last column maps the cell in the specified netlist file to
      the chip in the assembly netlist.
 •    -run_dir run_dir
      Optional path to a directory to which all output files are saved. The default run directory is
      the current working directory.
 •    -output output_file
      Optional path for the generated netlist file. The default netlist file is named sng_stitch.spi.
 •    -rename_cells
      Optional keyword that instructs the System Netlist Generator to rename all cells in the
      individual die netlists. The cell names in the die netlists are prefixed with the chip name in
      the generated netlist.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Flow and Invocation
Description
 The System Netlist Generator application is located in the $CALIBRE_HOME/bin directory of
 the Calibre installation tree. You can invoke the tool in batch or interactive modes. You can
 specify a script with a set of supported Tcl commands and System Netlist Generator Commands
 in batch mode.
You can create a hierarchical netlist using the -batch -stitch keywords and related arguments.
Examples
GUI Invocation Example
 Invoke the System Netlist Generator graphical user interface:
sng -gui
or
sng
      set db [sng::new_db]
      sng::create_chip db -chip_name "cont_chip" -cell_name "cont"
      sng::add_pin db -pin_name "select" -chip_name "cont" \
         -type "INPUT"
      set iter [sng::get_pins db -chip_name cont_chip]
      test {$iter ne ""}
      puts [sng::get_property_names $iter]
      sng::add_pin db -pin_name "enable" -chip_name "ram_chip" \
         -type "INPUT" -bus_name readdata -bus_order 1
      •     bb_netlist.spi — The black box assembly netlist file created by a 3DSTACK assembly
            run.
      •     base.spi and stack.spi — White box versions of cells in the assembly.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                 Calibre 3DSTACK Utilities
                                                             System Netlist Generator Flow and Invocation
      •   chips_to_netlists.map — The die mapping file that specifies the netlists to include and
          how the cells in the netlist correspond to the subcircuits in the bb_netlist.spi assembly.
 bb_netlist.spi (the black box assembly netlist file):
      .SUBCKT top_assembly
      Xpinter 2 3 5 8 1 4 6 7 inter
      .ENDS top_assembly
      .SUBCKT base bclk_1 bclk_2 bgnd bin_1 bin_2 bout_1 bout_2 bvdd
      .ENDS base
      .SUBCKT inter ipad0 ipad1 ipad2 ipad3 ipad4 ipad5 ipad6 ipad7
      Xpbase ipad1 ipad5 ipad4 ipad2 ipad3 ipad6 ipad7 ipad0 base
      Xpstack ipad1 ipad5 ipad4 ipad2 ipad3 ipad6 ipad7 nIsolated0 stack
      .ENDS inter
      .SUBCKT stack sclk_1 sclk_2 sgnd sin_1 sin_2 sout_1 sout_2 svdd
      .ENDS stack
      .SUBCKT base bclk_1 bclk_2 bgnd bin_1 bin_2 bout_1 bout_2 bvdd
      RR1 A B rap w=3.0 l=3.0 r=21.0m
      RR1 C D rap w=3.0 l=3.0 r=21.0m
      .ENDS base
      .SUBCKT stack sclk_1 sclk_2 sgnd sin_1 sin_2 sout_1 sout_2 svdd
      RR1 A B rap w=3.0 l=3.0 r=21.0m
      RR1 C D rap w=3.0 l=3.0 r=21.0m
      .ENDS stack
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Flow and Invocation
      .SUBCKT top_assembly
      Xpinter 2 3 5 8 1 4 6 7 inter
      .ENDS top_assembly
      .SUBCKT inter ipad0 ipad1 ipad2 ipad3 ipad4 ipad5 ipad6 ipad7
      Xpbase ipad1 ipad5 ipad4 ipad2 ipad3 ipad6 ipad7 ipad0 base
      Xpstack ipad1 ipad5 ipad4 ipad2 ipad3 ipad6 ipad7 nIsolated0 stack
      .ENDS inter
      .SUBCKT stack_0 sclk_1 sclk_2 sgnd sin_1 sin_2 sout_1 sout_2 svdd
      RR1 A B rap w=3.0 l=3.0 r=21.0m
      RR1 C D rap w=3.0 l=3.0 r=21.0m
      .ENDS stack_0
      .SUBCKT stack sclk_1 sclk_2 sgnd sin_1 sin_2 sout_1 sout_2 svdd
      Xstack_0 sclk_1 sclk_2 sgnd sin_1 sin_2 sout_1 sout_2 svdd stack_0
      .ENDS stack
      .SUBCKT base_0 bclk_1 bclk_2 bgnd bin_1 bin_2 bout_1 bout_2 bvdd
      RR1 A B rap w=3.0 l=3.0 r=21.0m
      RR1 C D rap w=3.0 l=3.0 r=21.0m
      .ENDS base_0
      .SUBCKT base bclk_1 bclk_2 bgnd bin_1 bin_2 bout_1 bout_2 bvdd
      Xbase_0 bclk_1 bclk_2 bgnd bin_1 bin_2 bout_1 bout_2 bvdd base_0
      .ENDS base
 The “inter” subckt has no white box data and the sng command gives following warning for this
 flow: “Warning: Assembly netlist cell "inter" is not matched to any individual cell.”
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                             Calibre 3DSTACK Utilities
                                                                    System Netlist Generator Graphical User Interface
Figure 4-2. Select Multiple Cells by Clicking and Dragging the Cell Corner
 Edit properties by entering values for each field or by copying and pasting values from existing
 fields. Figure 4-3, Figure 4-4, and Figure 4-5 demonstrate how you can easily modify multiple
 cell properties at once.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Graphical User Interface
      Figure 4-4. Shift-select and Paste Into Multiple Cells in the System Netlist
                                      Generator
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Calibre 3DSTACK Utilities
                                                         System Netlist Generator Graphical User Interface
 Enable the Show generated netlist file in Calibre RVE SPICE File Viewer checkbox to view
 a graphical representation of the complete netlist.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Graphical User Interface
Main Window
 Main Window
 System Netlist Generator Main Window.
                                       Figure 4-6. Main Window
Objects
                                 Table 4-1. Main Window Contents
  Item                                  Description
  File > New                            Creates a new System Netlist Generator project.
                                        Command equivalent: sng::new_db
  File > Open                           Opens an existing System Netlist Generator project.
                                        Command equivalent: sng::open_db
  File > Save                           Saves the current System Netlist Generator project.
                                        Command equivalent: sng::save_db
  File > Close                          Closes the active System Netlist Generator project.
                                        Command equivalent: none
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Calibre 3DSTACK Utilities
                                                         System Netlist Generator Graphical User Interface
Usage Notes
 Enter the following command to invoke the System Netlist Generator main window:
sng -gui
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Graphical User Interface
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Calibre 3DSTACK Utilities
                                                         System Netlist Generator Graphical User Interface
Properties Panel
 Properties button
 Shows detailed properties about objects in the design tree.
                                      Figure 4-7. Properties Panel
Objects
                                Table 4-2. Properties Panel Contents
        Item                       Description
        name                       Name of the port or net.
        chip_name                  Chip associated with the port or net.
        placement_name             Placement associated with the port or net.
        type                       Direction of the port or net.
        bus_name                   Bus name attached to the port or net.
        bus order                  Order of the bus pins for the port or net.
        net_name                   Net connectivity for the port or net.
Usage Notes
 The properties panel opens when objects are selected in the Chip Definition tree in the main
 window. The panel allows you to view and sort all properties of the selected chips, assemblies,
 or placements.
        Tip
      Click the button in the upper-left of the properties table to select items to show in the table.
      Right-click on any column header to apply a filter or to sort the column contents.
Related Topics
 Main Window
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Graphical User Interface
Objects
                          Table 4-3. Set Net Name Template Contents
             Item             Description
             Prefix           String that is prefixed to all net names defined in a
                              sng::connect command that do not have an assigned net
                              name.
             Delimiters       Start end delimiters for the net. For example, { and }.
             Save Net         Saves the net name template so that it is applied to port
             Name             connections when they are created.
             Template
Related Topics
 sng::connect
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                          Calibre 3DSTACK Utilities
                                                                System Netlist Generator Configuration File Format
 The commands used in the configuration file can also be entered directly into the System Netlist
 Generator Tcl command prompt or in a System Netlist Generator batch script.
 PLACEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
 CONNECTIVITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
 EXPORTS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Configuration File Format
PLACEMENTS
 Imports chips and creates placements.
Usage
 PLACEMENTS ‘{’
   placement_name chip_name format file_path top_cell
   ...
   ‘}’
Arguments
 •    placement_name
      Required argument that specifies the name of the placement to create.
 •    chip_name
      Required argument that specifies the name of the chip of which the placement is an instance.
 •    format
      Required argument that specifies the format of the file containing the chip definition. A
      value of SPICE is currently supported.
 •    file_path
      Required argument that specifies the path to a file containing the chip definitions.
 •    top_cell
      Required argument that specifies the top cell name of the chip.
Description
 Imports chip definitions from a specified file and creates a placements for them in the System
 Netlist Generator. The PLACEMENTS command must only appear once in the configuration
 file. Each line in the PLACEMENTS command within the required brackets ‘{’ ‘}’ must define
 the placement_name, chip_name, format, file_path, and top_cell for the placement. There is
 no limit to the number of placements that you create, but each placement definition must appear
 on a new line.
Examples
      PLACEMENTS {
      myram1 myram SPICE ram_netlist.spi myram
      myram2 myram SPICE ram_netlist.spi myram
      interposer1 interposer SPICE interp_rev0.spi interposer
      controller1 controller SPICE controller.spi controller
      }
Related Topics
 CONNECTIVITY
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                 Calibre 3DSTACK Utilities
                                                       System Netlist Generator Configuration File Format
CONNECTIVITY
 Connects specified pins with new nets.
Usage
 CONNECTIVITY ‘{’
   from_placement ‘{’pin …‘}’ to_placement ‘{’pin …‘}’ [to_placement ‘{’pin …‘}’ …]
   ...
   ‘}’
Arguments
 •    from_placement ‘{’pin …‘}’
      Required list of arguments that defines the primary placement name and a list of pins that
      connect to the secondary placements (to_placement). The from_placement placement must
      be defined in the PLACEMENTS command. Any number of pins can be defined; however,
      all pins must correspond to the pins in the subsequent to_placement pin lists.
 •    to_placement ‘{’pin …‘}’
      Required list of arguments that defines the secondary placement name and a list of pins that
      connect to the primary placement (from_placement). The to_placement placement must be
      defined in the PLACEMENTS command. Any number of secondary placements are
      allowed, but they must be written on the same line.
Description
 Defines the connectivity for specified placements in the assembly. Each line in the
 CONNECTIVITY command defines pin connectivity for a primary placement. A primary
 placement is specified with the from_placement argument. Connectivity is established by
 specifying subsequent placement names and pin lists on the same line. The order of the pin lists
 establishes the connections. Nets are created automatically to connect the specified pins.
 For example, if you want to connect pin_a and pin_b on placement1 to pin_q and pin_d on
 placement2, as shown in the following figure, your CONNECTIVITY command must be
 written as follows:
      CONNECTIVITY {
      placement1 {pin_a pin_b} placement2 {pin_q pin_d}
      }
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Configuration File Format
Examples
 This example demonstrates how to define connectivity for the myram1 and myram2
 placements.
      CONNECTIVITY {
      myram1{vdd} interposer1{vdd} controller1{vdd}
      myram1{gnd} interposer1{gnd} controller1{gnd}
      myram2{vdd gnd wri} myram1{wri} controller1{wri<1> wri<2> wri<3> wri<4>}
      }
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                 Calibre 3DSTACK Utilities
                                                       System Netlist Generator Configuration File Format
EXPORTS
 Exports the connectivity and placements defined in the configuration file to a netlist file.
Usage
 EXPORTS ‘{’
   top_cell format file_name
   ...
   ‘}’
Arguments
 •    top_cell
      Required argument that specifies the top cell name for the exported netlist file.
 •    format
      Required argument that specifies the netlist format of the exported netlist file. The only
      supported value is SPICE.
 •    file_name
      Required argument that specifies the name of the exported netlist file.
Examples
      EXPORTS {
      myTopCell SPICE 3d_assembly.spi
      }
Related Topics
 CONNECTIVITY
 PLACEMENTS
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
        Tip
      All commands support the -help option. Use the -help option in the System Netlist
      Generator shell to report the usage for each command.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::create_journal_file
 Creates a journal file in your working directory while the System Netlist Generator tool is
 running. No journal is created if this command is not specified.
Usage
 sng::create_journal_file
Arguments
 None.
Examples
 sng::create_journal_file
Related Topics
 System Netlist Generator Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::export_db
 Exports the current project to a file.
Usage
 sng::export_db db_instance -path file_path [-placements] [-connectivity]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -path file_path
      Required argument and value that specifies the path for the exported project file.
 •    -placements
      Optional keyword that specifies to only save placement information to the database. No
      connectivity is exported unless the -connectivity argument is also specified.
 •    -connectivity
      Optional keyword that specifies to only save connectivity information to the database. No
      placements are exported unless the -placements argument is also specified.
Examples
      sng::export_db db –path /user/3d_netlist/my_db –placements -connectivity
Related Topics
 sng::save_db
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::export_netlist
 Exports specified chip definitions or the complete assembly to a netlist file.
Usage
 sng::export_netlist db_instance -path file_path
    [-chip_name_list {chip_names … | {chip_name cell_name} …}]
    [-top_cell_name top_cell_name] [-interposer chip_name]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -path file_path
      Required keyword and path for the new netlist file.
 •    -chip_name_list {chip_names … | {chip_name cell_name} …}
      Optional keyword and list of chips that you want to write to the netlist. If you do not specify
      this option, all connectivity information is exported. You can specify a list of chips or a list
      of chip and cell name pairs. The cell_name is the subcircuit name used for the chip in the
      exported netlist. If you only specify a list of chip_names, the exported subcircuit uses the
      chip name as the name of the subcircuit.
 •    -top_cell_name top_cell_name
      Optional keyword and top cell name of the exported netlist file. The default top cell name is
      3DSTACK_TOP_CELL. This option cannot be specified with the -chip_name_list option.
 •    -interposer chip_name
      Optional keyword set that indicates that the specified chip_name is an interposer.
Description
 Exports an assembly or specified chips to a netlist file. The netlist is written in SPICE format. If
 the -chip_name_list argument is not used, the tool exports the assembly connectivity
 information for the entire project.
Examples
      sng::export_netlist my_db –chip_name_list "myram1 myram2" -path ./3dic.net
Related Topics
 sng::save_db
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::new_db
 Creates a new project.
Usage
 sng::new_db [-name db_name]
Arguments
 •    -name db_name
      Optional keyword and argument that specifies the name of the new database.
Examples
      set db [sng::new_db -name my_3dic_source.sng]
Related Topics
 sng::save_db
 sng::open_db
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::open_db
 Opens the specified project.
Usage
 sng::open_db -path file_path [-name db_name]
Arguments
 •    -path file_path
      Required keyword and path to an existing System Netlist Generator project database.
 •    -name db_name
      Optional keyword and argument that specifies the name of the new database.
Examples
 Open an existing project:
Related Topics
 sng::save_db
 sng::remove_chip
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::save_db
 Saves the current state of the project.
Usage
 sng::save_db db_instance -path file_path [-compact]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -path file_path
      Required keyword and path to the location where you want to save the System Netlist
      Generator project database.
 •    -compact
      Optional keyword that saves the database in compact mode using the PLACEMENTS and
      CONNECTIVITY commands. This command option can only be used if the file_path is a
      directory.
Description
 Saves the current state of the project to the specified file_path. Compact mode saves the project
 as a System Netlist Generator configuration file. See “System Netlist Generator Configuration
 File Format” on page 233 for details.
        Note
      Quotation marks (“ ”) cannot be used in the file_path.
Examples
      sng::save_db –path /home/user/existing_db
Related Topics
 sng::open_db
 sng::remove_chip
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::filter
 Applies a filter to a specified iterator. This command is supported in batch mode only.
Usage
 sng::filter iterator -expression filtering_expression
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_buses, sng::get_chips, sng::get_nets, sng::get_placements, sng::get_ports,
      sng::get_property, sng::get_property_names.
 •    -expression filtering_expression
      Required keyword and filtering expression that is applied to the iterator object. The
      filtering_expression is any supported Tcl math expression. The expression can contain
      property names of the objects in the System Netlist Generator project and supports Tcl
      variables. The expression can contain any of the following symbols:
      && || == != <= < > >=
      To distinguish between property names and values, values must be surrounded by literal
      quotation marks (“ ”).
Examples
Example
 This example gets the full list of pins from a chip and then retrieves the properties of one of the
 buses.
      #Set the pins iterator to include all pins of the myram chip.
      set pins [sng::get_pins sng::database -chip_name "myram"]
      #set filtered to equal only those pins that include the bus name adr<>
      set filtered [ sng::filter $pins -expression "$propName == \"adr<>\""]
Example
 This example demonstrates how to achieve the same result as the first example using a different
 method.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
Related Topics
 sng::unconnect
 sng::incr
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::get_begin
 Moves the specified iterator to the first element of the container.
Usage
 sng::get_begin iterator
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_buses, sng::get_chips, sng::get_nets, sng::get_placements, sng::get_ports,
      sng::get_property, sng::get_property_names.
Description
 Moves the specified iterator to the first element of the container. The iterator can be returned by
 any of the get_ commands. The iterator value changes each time you specify the incr command.
 The get_begin command allows you to move the iterator to the start of the container.
Examples
 In this example, the net iterator changes when you add connectivity to the project. In these
 cases, it is recommended to use the get_begin command as shown.
 The following excerpt from the complete example shows the correct usage of the $ when
 referencing an iterator:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
      set db [sng::new_db]
      #Start the iterator here to make sure it works properly with the nets
      #created later
      set inets [sng::get_nets db]
      #create chips
      foreach chipname {a b c } {
      sng::create_chip db -chip_name $chipname -cell_name top
      #define pins for the chips
      foreach pinnmbr { 0 1 2 3 4 5 6 7 8 9 } {
      sng::add_pin db -pin_name pin_$pinnmbr -chip_name $chipname -type INOUT
      }
      #place chips in the design
      foreach placenmbr { 0 1 2 3 } {
      sng::create_placement db -placement_name p_${chipname}_$placenmbr \
      -chip_name ${chipname}
      }
      }
      #create connections for each placement
      foreach placenmbr {0 1 2 3} {
         foreach netnmbr {0 1 2 3 4 5 6 7 8 9} {
         sng::connect db –net_name net_${placenmbr}_${netnmbr} \
         -ports [list \
         p_a_${placenmbr}::pin_${netnmbr} \
         p_b_${placenmbr}::pin_${netnmbr} \
         p_c_${placenmbr}::pin_${netnmbr} \
         ]
         }
      }
      #unconnect certain nets
      foreach netname {net_0_2 net_1_2 net_2_2 net_3_2} {
      sng::unconnect db -net_name $netname
      }
      set inets [sng::get_begin $inets]
      #get properties of nets
      while { $inets != "" } {
      set sformat "%-25s"
      set l [list " ${prefix}:"]
         foreach i [lsort [sng::get_properties $inets]] {
         lappend l "$i "
         append sformat "%-24s"
         }
      sng::incr inets 1
      puts [eval format $sformat $l]
      }
      }
Related Topics
 sng::incr
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::get_buses
 Returns an iterator for all buses defined in the specified chip.
Usage
 sng::get_buses db_instance -chip_name name
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name name
      Required keyword and name of a chip in the project.
Examples
 This example sets an iterator to the buses on the mem_die chip and retrieves all of the bus
 names.
Related Topics
 sng::incr
 sng::get_chips
 sng::get_nets
 sng::get_placements
 sng::get_ports
 sng::get_property
 sng::get_property_names
 sng::get_pins
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::get_chips
 Returns an iterator for all chips defined in the current project.
Usage
 sng::get_chips db_instance
Arguments
 •    db_instance
      Required argument that specifies the database instance.
Examples
 This example retrieves the names of all chips in the database.
Related Topics
 sng::incr
 sng::get_pins
 sng::get_nets
 sng::get_placements
 sng::get_ports
 sng::get_property
 sng::get_property_names
 sng::get_buses
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::get_nets
 Returns an iterator used to access any created nets in the current project.
Usage
 sng::get_nets db_instance
Arguments
 •    db_instance
      Required argument that specifies the database instance.
Examples
 This example retrieves the names of all nets in the database.
Related Topics
 sng::incr
 sng::get_chips
 sng::get_pins
 sng::get_placements
 sng::get_ports
 sng::get_property
 sng::get_property_names
 sng::get_buses
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::get_pins
 Returns an iterator for all pins on the specified chip.
Usage
 sng::get_pins db_instance -chip_name name [-bus_name bus_name]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name name
      Required keyword and name of a chip in the project.
 •    -bus_name bus_name
      Optional keyword and name of a bus in the project. If this option is used, the iterator refers
      to all pins that share the bus_name.
Examples
 This example sets the iterator to return the pins on the mem_die chip. The while loop retrieves
 and prints all of the pin names for that chip.
Related Topics
 sng::get_buses
 sng::get_chips
 sng::get_nets
 sng::get_placements
 sng::get_ports
 sng::get_property
 sng::get_property_names
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::get_placements
 Returns an iterator for all placements defined in the current project.
Usage
 sng::get_placements db_instance [-chip_name name ]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name name
      Optional keyword and name of a chip in the project. This returns all placements of the
      specified chip. If this argument set is not specified, the iterator returns all placements in the
      current project.
Examples
 This example demonstrates how to get all placements for the mem_die chip.
Related Topics
 sng::get_pins
 sng::get_chips
 sng::get_nets
 sng::get_property_names
 sng::get_ports
 sng::get_property
 sng::get_buses
 sng::create_placement
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::get_ports
 Returns an iterator for all ports defined for the specified placement.
Usage
 sng::get_ports db_instance -placement_name placement_name [-bus_name bus_name]
    [-net_name net_name] [-unconnected]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -placement_name placement_name
      Required keyword and name of a placement in the project.
 •    -bus_name bus_name
      Optional keyword and name of a bus in the project. If this option is used, the iterator refers
      to all ports that share the bus_name.
 •    -net_name net_name
      Optional keyword and name of a net in the project. If this option is used, the iterator refers to
      all ports that share the net_name.
 •    -unconnected
      Optional keyword that returns all floating ports of the specified placement.
Description
 Initializes an iterator that can be used to access the ports of specified placements. Use the
 -unconnected option to find all unconnected pins of the placement. The -net_name and
 -bus_name options can be used to narrow down the list of ports to a specified string.
Examples
Example 1
 This example demonstrates how to get the port names of the mem_die_placement.
Example 2
 This example demonstrates how to retrieve all unconnected ports of the
 memory_die::mem_die_placement placement that use the bus name “wda”.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
Related Topics
 sng::incr
 sng::get_chips
 sng::get_nets
 sng::get_placements
 sng::get_property_names
 sng::get_property
 sng::get_pins
 sng::get_buses
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::get_property
 Returns a list of property values for the specified iterator.
Usage
 sng::get_property iterator [-property property_name]
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_buses, sng::get_chips, sng::get_nets, sng::get_placements, sng::get_ports,
      sng::sort.
 •    -property property_name
      Optional keyword and name of a property. This can be any value returned by the
      sng::get_property_names command. If this is not specified, the command returns all
      property name and value pairs associated with the specified iterator.
Examples
      sng::get_property $portIterator –property "port_name"
Related Topics
 sng::incr
 sng::get_chips
 sng::get_nets
 sng::get_placements
 sng::get_ports
 sng::get_buses
 sng::get_property_names
 sng::get_pins
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::get_property_names
 Returns a list of property names.
Usage
 sng::get_property_names iterator
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_chips, sng::get_pins, sng::get_nets, sng::get_placements, sng::get_ports,
      sng::get_buses, sng::sort.
Description
 Returns a list of property names for the specified iterator. The properties returned for the
 iterator depend on the type of iterator. The following properties are returned for each issued
 command and iterator type:
                    Table 4-5. Property Values For Each Iterator Type
  Command             Iterator Type            Returned Property Values
  sng::get_chips      Chip iterator            “chip_name” “cell_name”
  sng::get_pins       Pin Iterator             “pin_name” “chip_name” “type” “bus_name”
                                               “bus_order”
  sng::get_buses Bus Iterator                  “bus_name” “ order_range”
  sng::get_place      Placement Iterator “placement_name” “chip_name”
  ments
  sng::get_ports      Port Iterator            “port_name” “placement_name” “type” “bus_name”
                                               “bus_order”
  sng::get_nets       Net Iterator             “net_name”
Examples
 Get a list of ports from the mem_die_placement placement.
Related Topics
 sng::incr
 sng::get_chips
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
 sng::get_nets
 sng::get_placements
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::incr
 Increments the specified iterator.
Usage
 sng::incr iterator [step]
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_buses, sng::get_chips, sng::get_nets, sng::get_placements, sng::get_ports,
      sng::get_property, sng::get_property_names.
 •    step
      Optional argument that specifies an offset for the iterator. When the incr command is
      executed, the iterator is incremented by this step value. Negative values decrement the
      iterator. The default is 1.
Description
 Changes an iterator by a specified step value. When the iterator reaches the end, it is reset to an
 empty string(“”).
 The $ symbol is not used when referencing the iterator in the sng::incr command, however, the
 $ symbol is used when passing a specific iterator element to other commands, as shown in the
 example.
Examples
 Set the iterator to the ports on the mem_die placement and print them by retrieving the property
 names with the sng::get_property command.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::set_property
 Changes the value of specified properties.
Usage
 sng::set_property iterator -property property_name -value property_value
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_nets, sng::get_buses, sng::get_placements, and sng::get_pins.
 •    -property property_name
      Required keyword and property name to change.
 •    -value property_value
      Required keyword and new value for the property_name value.
Description
 Sets the value of a specified property_name to a different property_value. This command can
 only be used for pins, nets, and placements.
Examples
 This example demonstrates how to change the placement names for the logic_die chip using the
 set_property command.
Related Topics
 sng::get_property_names
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::sort
 Sorts the elements of a list and returns a new sorted list to an iterator.
Usage
 sng::sort iterator -property property_name [-increasing | -decreasing]
    [-type { Dictionary | Integer | Real } ]
Arguments
 •    iterator
      Required argument that specifies an iterator returned by one of the following commands:
      sng::get_buses, sng::get_chips, sng::get_nets, sng::get_placements, sng::get_ports,
      sng::get_property, sng::get_property_names.
 •    -property property_name
      Required keyword and property name to sort.
 •    -increasing
      Optional keyword that sorts the list from least to greatest. This command option cannot be
      specified with -decreasing. This is the default.
 •    -decreasing
      Optional keyword that sorts the list from greatest to least. This command option cannot be
      specified with -increasing.
 •    -type { Dictionary | Integer | Real }
      Optional keywords that specify the type of sorting to apply. The default is Dictionary. The
      sorting keywords function as follows:
          o   Dictionary
              Sorts the iterator strings in lexicographic order.
          o   Integer
              Converts the iterator value list to integers and sorts the list in -increasing or
              -decreasing order.
          o   Real
              Converts the iterator value list to floating-point values and sorts the list using
              floating comparison.
Examples
 This example demonstrates how to generate nets with the names net0, net1, net2, and so on, and
 connect them to the ports of two placements. The sort command is used to connect one of the
 placements with an increasing net order and the other with a decreasing net order.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
Related Topics
 sng::get_property
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::add_pin
 Adds a pin to the specified chip.
Usage
 sng::add_pin db_instance -pin_name pin_name -chip_name chip_name
    -type { INPUT | OUTPUT | INOUT } [ -bus_name bus_name [-bus_order bus_order]]
Arguments
 •    db_instance
      Required argument that specifies the database instance to modify.
 •    -pin_name pin_name
      Required keyword and name of a new pin to create.
 •    -chip_name chip_name
      Required keyword and name of an existing chip to which the new pin is added.
 •    -type { INPUT | OUTPUT | INOUT }
      Required keyword set that specifies the direction of the new pin.
 •    -bus_name bus_name
      Optional keyword and bus name for the pin.
 •    -bus_order bus_order
      Optional keyword and order of the bus for the pin. This argument must only be specified
      with the -bus_name argument.
Examples
 Add a ground pin to a new chip and connect a bus of pins to a memory chip.
Related Topics
 sng::remove_pin
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::connect
 Creates a new connection.
Usage
 sng::connect db_instance [-net_name net_name]
    { -ports port_list {-add_ports_to_net | -create_new }
    [-delimiters ‘{’ delimiter_pair ‘}’]
    [-range range] [-starting_index index] | -buses bus_name_list }
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -net_name net_name
      Optional keyword and name of the net to create. If this command is not specified, the net
      name for the generated net is taken from the net name template. Net name templates are
      created using the sng::set_net_name_template command.
 •    -ports port_list
      Required keyword and list of ports that you want to connect to the specified net.
 •    -add_ports_to_net
      Keyword that adds all specified ports to an existing net. If the net does not exist, a new net is
      created. This keyword must only be used with the -ports argument.
 •    -create_new
      Required keyword that connects all specified ports to a new net. This keyword must only be
      used with the -ports argument.
 •    -delimiters ‘{’ delimiter_pair ‘}’
      Optional keyword and pair of delimiters that indicate the start and end character of a bus.
      This keyword must only be used with the -ports argument. The default delimiter_pair value
      is {\[ \]}.
 •    -range range
      Optional keyword and index range to which the bus is connected. This keyword must only
      be used with the -ports argument. All ports are connected by default.
 •    -starting_index index
      Optional keyword and integer index from which the bus starts counting. This keyword must
      only be used with the -ports argument.
 •    -buses bus_name_list
      Keyword and list of buses that you want to connect to a specified net.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
Description
 Specifies net connectivity for ports in the design. The -net_name option can be used if you have
 net name templates configured with the sng::set_net_name_template command.
Examples
Example 1
 This example connects the ports of two placements. If the number of ports do no match, an error
 is issued.
Example 2
 This example generates a net named DUMMY_CUPO[0], which connects the
 RELI3_placement::DUMMY_CUPI[0] pin to the RELI2_placement::DUMMY_CUPO[0] pin,
 the DUMMY_CUPO[1] pin to the RELI3_placement::DUMMY_CUPI[1] pin, and so on.
Related Topics
 sng::unconnect
 sng::incr
 sng::set_net_name_template
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::create_chip
 Creates a new chip.
Usage
 sng::create_chip db_instance -chip_name name [-cell_name cell_name]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name name
      Required keyword and name of the chip to create. The name must be unique.
 •    -cell_name cell_name
      Optional keyword and cell name for the chip. If this argument is not specified, the name of
      the cell is given by the name -chip_name argument.
Examples
      sng::create_chip –chip_name memory –cell_name mem_die
Related Topics
 sng::import_chip
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::create_placement
 Creates a new placement.
Usage
 sng::create_placement db_instance -chip_name chip_name
    -placement_name placement_name
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name chip_name
      Required keyword and name of an existing chip in the project.
 •    -placement_name placement_name
      Required keyword and name of the placement to create. The name must be unique.
Examples
      sng::create_placement my_db –placement_name "lg_placement1" \
         –chip_name "logic_die"
Related Topics
 sng::create_chip
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::import_chip
 Imports an existing chip definition.
        Note
      Set the MGC_SNG_SPICE_IMPORT_TEMP_DIR environment variable to the path of a
      temporary directory if you are importing large netlists.
Usage
 sng::import_chip db_instance -chip_name name -path file_path
    -type SPICE -cell_name cell_name
    { [-bus_detection {YES | NO}] [-bus_pattern reg_expression]
    [-bus_order_pattern reg_expression] }
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name name
      Required keyword and name of the chip in the file_path. The name of the chip must be
      identical to the name of the chip in the specified netlist file.
 •    -path file_path
      Required keyword and path to a netlist file that contains the chip you want to import.
 •    -type SPICE
      Required keywords that specify the format of the netlist file. The System Netlist Generator
      currently supports SPICE netlists.
 •    -cell_name cell_name
      Required keyword and name of the cell in the input netlist file.
 •    -bus_detection {YES | NO}
      Optional keywords that specify whether smart bus detection is enabled. Specify YES to
      enable smart bus detection. The default is YES.
 •    -bus_pattern reg_expression
      Optional keyword and expression used to generate the name of the buses. This command
      option must only be used with the -bus_detection YES option. Regular expression
      statements inside parentheses “()” are used in the bus name generation. If the corresponding
      pin is not matched with the corresponding regular expression, the pin is not associated with
      a bus. The default value for reg_expression is {(\D+)(\d*)(\D+)\d+(\D*)}.
      For example, if reg_expression is set to the following:
               -bus_pattern {(\D+)_.* }
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
      #use a bus_order_pattern
      sng::import_chip my_db –chip_name memory –type SPICE –path ./mem.spi \
      –cell_name mem_die –bus_detection YES \
      –bus_pattern {(\D+)_\d+_(.*)} –bus_order_pattern {\D+_(\d+)_.*}
      #use a bus_pattern
      sng::import_chip my_db –chip_name memory –type SPICE –path ./mem.spi \
      –cell_name mem_die –bus_detection YES –bus_pattern {(\D+)_(\d+)_(. *)}
      #do not use smart detection
      sng::import_chip my_db –chip_name memory –type SPICE –path ./mem.spi \
      –cell_name mem_die –bus_detection NO
Related Topics
 sng::create_chip
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::remove_chip
 Removes the selected chip definition.
Usage
 sng::remove_chip db_instance -chip_name chip_name
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -chip_name name
      Required keyword and name of a chip in the project that you want to remove.
Examples
      sng::remove_chip db -chip_name mem_die
Related Topics
 sng::remove_pin
 sng::remove_placement
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::remove_pin
 Deletes a pin from the specified chip.
Usage
 sng::remove_pin db_instance -pin_name pin_name -chip_name chip_name
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -pin_name pin_name
      Required keyword and name of the pin that you want to delete.
 •    -chip_name name
      Required keyword and name of an existing chip in the project.
Examples
 This example creates a new chip, adds a 10-bit bus to the chip with the prefix “test_”, and then
 removes one of the pins from the bus.
Related Topics
 sng::remove_chip
 sng::remove_placement
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::remove_placement
 Removes a placement from the project.
Usage
 sng::remove_placement db_instance -placement_name placement_name
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -placement_name placement_name
      Required keyword and name of a placement in the project that you want to delete.
Examples
      sng::remove_placement my_db –placement_name "lg_placement1"
Related Topics
 sng::remove_chip
 sng::remove_pin
 sng::unconnect
 sng::get_placements
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
System Netlist Generator Commands
sng::set_net_name_template
 Sets the net name template.
Usage
 sng::set_net_name_template db_instance prefix [-delimiters ‘{’ delimiter_pair ‘}’]
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    prefix
      Required string that is prefixed to all net names defined in a sng::connect command that do
      not have an assigned net name.
 •    -delimiters ‘{’ delimiter_pair ‘}’
      Optional keyword and pair of delimiters that indicate the start and end character of a bus.
      This keyword must only be used with the -ports argument. The default delimiter_pair value
      is {\[ \]}.
Description
 Applies a net name template to all nets. The prefix argument is a string that is prefixed to all net
 names that do not have a net name property. For example, if prefix is specified as {Net_}, all
 nets generated with the sng::connect command without the -net_name option are named as
 follows:
Examples
      sng::set_net_name_template my_db {Net_} -delimiters {\<\>}
Related Topics
 sng::connect
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Calibre 3DSTACK Utilities
                                                                        System Netlist Generator Commands
sng::unconnect
 Deletes specified connections or ports from a net.
Usage
 sng::unconnect db_instance {-net_name net_name | -ports port_list }
Arguments
 •    db_instance
      Required argument that specifies the database instance.
 •    -net_name net_name
      Required keyword and name of the net to disconnect from all ports.
 •    -ports port_list
      Required keyword and list of ports that you want to disconnect from any connected nets.
      Ports that do not have any defined connectivity are flagged as warnings.
Examples
 Remove Net1 connectivity.
Related Topics
 sng::connect
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
AIF Converter Reference
AIF Support
 The AIF converters are invoked on the Calibre command-line. Not all AIF sections are used by
 Calibre 3DSTACK.
AIF Format
 The AIF format is documented at the following location:
http://www.artwork.com/package/aif/aif_netlist.htm
      •     [DATABASE]
      •     [DIE]
      •     [MCM_DIE]
      •     [BGA]
      •     [PADS]
      •     [NETLIST]
      •     [RINGS]
      •     [BONDABLE_RING_AREA]
      •     [WIRE]
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                                   AIF Support
      •   [FIDUCIALS]
      •   [DIE_LOGO]
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
AIF Export File Format
Examples
 The following is an example an of AIF output file.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                        AIF Export File Format
      [DATABASE]
      TYPE=AIF
      VERSION=2.0
      UNITS=UM
      MCM=TRUE
      [DIE]
      NAME=TOPCELL_3DI
      [MCM_DIE]
      BGA=assembly1_tier1_BGA1
      C4_BUMP=assembly1_tier3_C4_BUMP1
      …
      [MCM_BGA_assembly1_tier1_BGA1]
      [MCM_C4_BUMP_assembly1_tier3_C4_BUMP1]
      …
      [PADS]
      BGA_pad_0=SQUARE 2
      C4_BUMP_pad_0=SQUARE 2
      …
      [NETLIST]
      ;NETNAME PAD# TYPE PAD_X PAD_Y BALL# TYPE BALL_X BALL_Y FIN# TYPE FIN_X
      FIN_Y ANGLE
      685 assembly1_tier1_BGA1.BS_SW1_GPIO_40 BGA_pad_0 3200.001 13600.010 - - -
      - - - - - -
      668 assembly1_tier1_BGA1.BS_SW1_GPIO_41 BGA_pad_0 5600.100 14400.000 - - -
      - - - - - -
      …
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::aif2gds
3dstack::aif2gds
 Reads an AIF file and exports a GDS layout file.
Usage
 3dstack::aif2gds -aif aif_file -gds gds_file
Arguments
 •    -aif aif_file
      Required argument and path to an AIF file. See “AIF Support” on page 276 for details on
      supported AIF statements.
 •    -gds gds_file
      Required argument and path to the GDS output file.
Examples
 Enter the following commands from the command-line:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                              3dstack::aif2oasis
3dstack::aif2oasis
 Reads an AIF file and exports an OASIS layout file.
Usage
 3dstack::aif2oasis -aif aif_file -oasis oas_file
Arguments
 •    -aif aif_file
      Required argument and path to an AIF file. See “AIF Support” on page 276 for details on
      supported AIF statements.
 •    -oasis oas_file
      Required argument and path to the OASIS output file.
Examples
 Enter the following commands from the command-line:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::aif2spice
3dstack::aif2spice
 Reads an AIF file and exports a SPICE netlist file.
Usage
 3dstack::aif2spice {-aif aif_file [-aif aif_file] …} -spice spice_file
Arguments
 •    -aif aif_file [-aif aif_file ] …
      Required argument and path to one or more AIF files. See “AIF Support” on page 276 for
      details on supported AIF statements.
 •    -spice spice_file
      Required argument and path to the SPICE output file.
Examples
 Enter the following commands from the command-line:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                          Calibre 3DSTACK Utilities
                                                                                                          Spreadsheet Converters
Spreadsheet Converters
 You can convert CSV-formatted spreadsheets into SPICE or GDS and OASIS for use in
 Calibre 3DSTACK assembly and verification flows.
 For information on creating and managing existing netlists, see the “System Netlist Generator”
 on page 216.
 3dstack::ss2gds. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   284
 3dstack::ss2oasis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    286
 3dstack::ss2spice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    288
 3dstack::xsi2gds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   290
 3dstack::xsi2oasis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    293
 3dstack::xsi2spice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    296
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::ss2gds
3dstack::ss2gds
 Creates GDS layouts that include pin and die boundary locations from a spreadsheet (CSV) file.
Usage
 3dstack::ss2gds -ss ss_file
    [-order column_list]
    [-die_info GDS ‘{’
        -layout_path layout_path
        [-die_name die_name]
        [-precision precision]
        [-vertices {x1 y1 ... xn yn}]
    ‘}’]...
    [-ignore [reg_exp_list]]
    [-package package_name]
    [-package_mapping ‘{’
        -die_name die_name
        -layer_number layer_number
        [-vertices {x1 y1 ... xn yn}]
    ‘}’]...
    [-text_only labels_file
        [-labels {NET_NAME | PIN_NUMBER | PIN_NAME}]
        [-attach_to {component layer …}]]
Arguments
 •    -ss ss_file
      Required path to the spreadsheet (CSV) input file.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, and NET_NAME.
 •    -die_info GDS ‘{’die_arguments ‘}’
      Optional set of statements that specify information about the output layout. The following
      die_arguments are available:
          -layout_path layout_path — Path to the output GDS layout. You can specify a directory
             or a full file path.
          -die_name die_name — Name of the output GDS layout file.
          -precision precision — Precision of the output GDS layout.
          -vertices {x1 y1 ... xn yn} — Polygon coordinates for generated markers in the GDS
             output. These coordinates are not multiplied by the precision during generation.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                               3dstack::ss2gds
 •    -ignore [reg_exp_list]
      Optional argument set that specifies a list of regular expressions to match pins to ignore. If
      you specify -ignore without the reg_exp_list value, the default expression is {^NC.*$}. The
      default expression searches for all pins that begin with the string “NC”.
 •    -package package_name
      Optional name for the generated package layout.
 •    -package_mapping ‘{’ package_arguments‘}’
      Optional set of statements that specify mapping information about a package design from
      the REFDES column of the spreadsheet file. The following package_arguments are
      available:
          -die_name die_name — Name of the die for which the mapping is given.
          -layer_number layer_number — Layer number of the mapped die. The layer_number
             must be greater than 2.
          -vertices {x1 y1 ... xn yn} — Polygon coordinates for the pin cells. These coordinates are
             not multiplied by the precision during generation.
 •    -text_only labels_file
      Optional argument set that generates a text label file at the specified labels_file path. When
      this argument set is applied, the only output from the 3dstack::ss2gds command is the text
      labels file. The text labels file uses the labels and locations defined in the xsi_file.
      The following options are exclusive to the -text_only argument set:
          -labels {NET_NAME | PIN_NUMBER | PIN_NAME}
             Optionally specifies the column in the xsi_file from which to retrieve text labels. The
             default is the NET_NAME column.
          -attach_to layer -component component_name
             Specifies the layer of the layout and the component name to which the labels are
             attached.
Examples
      calibre -ys -3dstack
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::ss2oasis
3dstack::ss2oasis
 Creates OASIS layouts that include pin and die boundary locations from a spreadsheet (CSV)
 file.
Usage
 3dstack::ss2oasis -ss ss_file
    [-order column_list]
    [-die_info OASIS ‘{’
        -layout_path layout_path
        [-die_name die_name]
        [-precision precision]
        [-vertices {x1 y1 ... xn yn}]
    ‘}’]...
    [-ignore [reg_exp_list]]
    [-package package_name]
    [-package_mapping ‘{’
        -die_name die_name
        -layer_number layer_number
        [-vertices {x1 y1 ... xn yn}]
    ‘}’]...
Arguments
 •    -ss ss_file
      Required path to the spreadsheet (CSV) input file.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, and NET_NAME.
 •    -die_info OASIS ‘{’die_arguments ‘}’
      Optional set of statements that specify information about the output layout. The following
      die_arguments are available:
          -layout_path layout_path — Path to the output OASIS layout. You can specify a
             directory or a full file path.
          -die_name die_name — Name of the output OASIS layout file.
          -precision precision — Precision of the output OASIS layout.
          -vertices {x1 y1 ... xn yn} — Polygon coordinates for generated markers in the OASIS
             output. These coordinates are not multiplied by the precision during generation.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                              3dstack::ss2oasis
 •    -ignore [reg_exp_list]
      Optional argument set that specifies a list of regular expressions to match pins to ignore. If
      you specify -ignore without the reg_exp_list value, the default expression is {^NC.*$}. The
      default expression searches for all pins that begin with the string “NC”.
 •    -package package_name
      Optional name for the generated package layout.
 •    -package_mapping ‘{’ package_arguments‘}’
      Optional set of statements that specify mapping information about a package design from
      the REFDES column of the spreadsheet file. The following package_arguments are
      available:
          -die_name die_name — Name of the die for which the mapping is given.
          -layer_number layer_number — Layer number of the mapped die. The layer_number
             must be greater than 2.
          -vertices {x1 y1 ... xn yn} — Polygon coordinates for the pin cells. These coordinates are
             not multiplied by the precision during generation.
Examples
      calibre -ys -3dstack
exit
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::ss2spice
3dstack::ss2spice
 Converts a CSV input file to a SPICE netlist.
Usage
 3dstack::ss2spice
    -ss ss_file
    -spice spice_file
    [-order column_list]
    [-ignore [reg_exp_list]]
    [-top_cell top_cell_name]
    [-hier]
    [-subckt_pins {NET_NAME | PIN_NUMBER | PIN_NAME}]
Arguments
 •    -ss ss_file
      Required path to the spreadsheet (CSV) input file.
 •    -spice spice_path
      Required path to the SPICE output file.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, and NET_NAME.
 •    -ignore [reg_exp_list]
      Optional argument set that specifies a list of regular expressions to match pins to ignore. If
      you specify -ignore without the reg_exp_list value, the default expression is {^NC.*$}. The
      default expression searches for all pins that begin with the string “NC”.
 •    -top_cell top_cell_name
      Optional name of the top cell. The default value is TOPCELL_3DI.
 •    -hier
      Optional argument that instructs the converter to generate a hierarchical SPICE netlist.
 •    -subckt_pins {NET_NAME | PIN_NUMBER | PIN_NAME}
      Optional argument set that specifies the type of information specified for the pin column of
      the CSV file. The default is NET_NAME.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                              3dstack::ss2spice
Examples
 Generate a SPICE netlist from a spreadsheet CSV file as follows:
exit
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::xsi2gds
3dstack::xsi2gds
 Creates GDS layouts that include pin and die boundary locations from a CSV file generated by
 the Mentor Graphics Xpedition® Substrate Integrator tool.
Usage
 3dstack::xsi2gds -xsi xsi_file
    [-order column_list]
    [-die_info GDS ‘{’
         -layout_path layout_path
         [-die_name die_name]
         [-precision precision]
         [-vertices {x1 y1 ... xn yn}]
    ‘}’ | -no_die_layout]...
    [-ignore [reg_exp_list]]
    [-package package_name]
    [-package_mapping ‘{’
         -die_name die_name
         -layer_number layer_number
         [-vertices {x1 y1 ... xn yn}]
    ‘}’]...
    [-layer_number layer_number]
    [-vertices {x1 y1 ... xn yn}]
    [-text_only labels_file
         [-labels {NET_NAME | PIN_NUMBER | PIN_NAME}]
         [-attach_to {component layer …}]]
Arguments
 •    -xsi xsi_file
      Required path to the Xpedition Substrate Integrator CSV input file.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, NET_NAME, COMPONENT_NAME, and IGNORE. The default order is as
      follows:
               NET_NAME IGNORE IGNORE COMPONENT_NAME PIN_NUMBER REF_DES
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                               3dstack::xsi2gds
          -vertices {x1 y1 ... xn yn} — Polygon coordinates for generated markers in the GDS
             output. These coordinates are not multiplied by the precision during generation.
          -die_name die_name — Name of the output GDS layout file. This option is mutually
             exclusive with the other die_arguments.
 •    -no_die_layout
      Optional argument that specifies not to generate a layout for the die.
 •    -ignore [reg_exp_list]
      Optional argument set that specifies a list of regular expressions to match pins to ignore. If
      you specify -ignore without the reg_exp_list value, the default expression is {^NC.*$}. The
      default expression searches for all pins that begin with the string “NC”.
 •    -package package_name
      Optional name for the generated package layout.
 •    -package_mapping ‘{’ package_arguments‘}’
      Optional set of statements that specify mapping information about a package design from
      the REFDES column of the spreadsheet file. The following package_arguments are
      available:
          -die_name die_name — Name of the die for which the mapping is given.
          -layer_number layer_number — Layer number of the mapped die. The layer_number
             must be greater than 2.
          -vertices {x1 y1 ... xn yn} — Polygon coordinates for the pin cells. These coordinates are
             not multiplied by the precision during generation.
 •    -text_only labels_file
      Optional argument set that generates a text label file at the specified labels_file path. When
      this argument set is applied, the only output from the 3dstack::xsi2gds command is the text
      labels file. The text labels file uses the labels and locations defined in the xsi_file.
      The following options are exclusive to the -text_only argument set:
          -labels {NET_NAME | PIN_NUMBER | PIN_NAME}
             Optionally specifies the column in the xsi_file from which to retrieve text labels. The
             default is the NET_NAME column.
          -attach_to layer -component component_name
             Specifies the layer of the layout and the component name to which the labels are
             attached.
Global Command Options
 The following options are applied to all dies in the input netlist. The -package_mapping options
 take precedence over these options.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::xsi2gds
 •    -layer_number layer_number
      Optional layer number used for all dies in the netlist. The layer_number must be greater
      than 2. If you specified -layer_number in the -package_mapping argument set, then this
      option is ignored for that specific die.
 •    -vertices {x1 y1 ... xn yn}
      Optional set of polygon coordinates for generated markers for all dies in the GDS output.
      These coordinates are not multiplied by the precision during generation.
Examples
      calibre -ys -3dstack
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                             3dstack::xsi2oasis
3dstack::xsi2oasis
 Creates OASIS layouts that include pin and die boundary locations from a CSV file generated
 by the Mentor Graphics Xpedition® Substrate Integrator tool.
Usage
 3dstack::xsi2oasis -xsi xsi_file
    [-order column_list]
    [-die_info OASIS ‘{’
         -layout_path layout_path
         [-die_name die_name]
         [-precision precision]
         [-vertices {x1 y1 ... xn yn}]
    ‘}’ | -no_die_layout]...
    [-ignore [reg_exp_list]]
    [-package package_name]
    [-package_mapping ‘{’
         -die_name die_name
         -layer_number layer_number
         [-vertices {x1 y1 ... xn yn}]
    ‘}’]...
    [-layer_number layer_number]
    [-vertices {x1 y1 ... xn yn}]
    [-text_only labels_file
         [-labels {NET_NAME | PIN_NUMBER | PIN_NAME}]
         [-attach_to {component layer …}]]
Arguments
 •    -xsi xsi_file
      Required path to the Xpedition Substrate Integrator CSV input file.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, COMPONENT_NAME, and NET_NAME. The default order is the
      following:
               NET_NAME IGNORE IGNORE COMPONENT_NAME PIN_NUMBER REF_DES
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::xsi2oasis
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                             3dstack::xsi2oasis
             Optionally specifies the column in the xsi_file from which to retrieve text labels. The
             default is the NET_NAME column.
          -attach_to layer -component component_name
             Specifies the layer of the layout and the component name to which the labels are
             attached.
Examples
      calibre -ys -3dstack
exit
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::xsi2spice
3dstack::xsi2spice
 Creates a SPICE netlist from a CSV file generated by the Mentor Graphics
 Xpedition® Substrate Integrator tool.
Usage
 3dstack::xsi2spice -xsi xsi_path -spice spice_path [-hier] [-ignore [reg_exp_list]]
    -order ‘{’NET_NAME IGNORE COMPONENT_NAME PIN_NUMBER
       REF_DES PIN_X PIN_Y}’
    [-subckt_pins {NET_NAME | PIN_NUMBER | PIN_NAME}] [-top_cell top_cell_name]
Arguments
 •    -xsi xsi_path
      Required path to the Xpedition Substrate Integrator CSV input file.
 •    -spice spice_path
      Required path to the SPICE output file.
 •    -hier
      Optional argument that instructs the converter to generate a hierarchical SPICE netlist.
 •    -ignore [reg_exp_list]
      Optional argument set that specifies a list of regular expressions to match pins to ignore. If
      you specify -ignore without the reg_exp_list value, the default expression is {^NC.*$}. The
      default expression searches for all pins that begin with the string “NC”.
 •    -order ‘{’NET_NAME IGNORE COMPONENT_NAME PIN_NUMBER REF_DES
      PIN_X PIN_Y}’
      Optional argument set that specifies the order of the columns in the input CSV file. If this
      argument set is not specified, the default order is the following:
               NET_NAME IGNORE IGNORE COMPONENT_NAME PIN_NUMBER REF_DES
                 Note
               You must specify -order with PIN_X and PIN_Y to read pin locations from the XSI
               netlist.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                       Calibre 3DSTACK Utilities
                                                                                             3dstack::xsi2spice
Examples
 Generate a SPICE netlist from an Xpedition CSV file as follows:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Calibre 3DSTACK Utilities
3dstack::xsi2spice
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                     Appendix A
                                                                                      Examples
 The Calibre 3DSTACK rule file contains assembly operations that build a model of your 3D-IC
 and a set of verification rules. This chapter contains rule file examples and a complete walk-
 through of the Calibre 3DSTACK flow.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Calibre 3DSTACK Flow Example
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                    Examples
                                                                             Preparing the Dies for Assembly
 clean. The interposer contains landing pads and pin text for the three chips and metal
 redistribution layers to connect the controller to the two ram chips and the controller to the IO
 pads of the interposer. Figure A-2 shows the input layouts before assembly and Figure A-3
 shows the final assembly of the stack.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Creating the Calibre 3DSTACK Rule File
      2. Run Calibre nmLVS and Calibre nmDRC on each die and perform corrections until they
         are completely LVS and DRC clean.
      3. Extract the layout netlists for the dies.
      4. Create a source netlist for your complete 3D-IC. The System Netlist Generator allows
         you to easily place chips, connect pins, and generate a full netlist for your 3D-IC. For a
         full example of the System Netlist Generator flow with executable data, see “System
         Netlist Generator Flow Example” on page 326.
         If you do not have a source netlist, you can still verify the connectivity of your layout
         using internal text tracing.
      5. Continue to “Creating the Calibre 3DSTACK Rule File” on page 302.
         This specifies that the rule file uses the extended Calibre 3DSTACK+ syntax.
      4. Add the following command:
              set_version -version 1.0
         This sets the syntax version of the Calibre 3DSTACK description language. There is
         currently only one version of the 3D-IC description language syntax.
      5. Save the file and continue to “Writing Assembly Operations in the Calibre 3DSTACK
         Rule File” on page 304.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                 Examples
                                                                     Creating the Calibre 3DSTACK Rule File
Examples
      #!3dstack+
      ######################################################################
      #
      #           CALIBRE 3DSTACK+ Rule File for a 2.5D Interposer
      #
      #                        v1.0 12/25/2017
      #
      ######################################################################
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
            Using a line continuation character improves the readability of the rule file.
      3. Apply the following options to the config command:
            a. Specify the top cell name for the assembly:
                       -layout_primary TOP_CELL \
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
                    Tip
                  Calibre 3DSTACK can check the syntax of your source netlist without
                  performing a full verification run. To do so, specify the following invocation
               arguments:
               calibre -3dstack -cs 3dstack_rules
      ###########################
      # Configure run
      ###########################
      config \
         -layout_primary TOP_CELL \
         -source_netlist {-file ./top_cell.spi -format SPICE } \
         -report {-file output/3dstack.report} \
         -export_connectivity {-file output/3dstack.v -format verilog }
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
Prerequisites
      •   DRC and LVS clean layout files.
      •   Completion of “Creating the Calibre 3DSTACK Rule File” on page 302.
Procedure
      1. Open your 3dstack.rules file.
      2. After the config command entry, apply the die command to define the interposer die and
         specify its layout file and properties:
              die -die_name interposer \
                 -interposer \
                 -layout { \
                     -path ./design/interposer.gds \
                     -type gdsii \
                     -primary interposer \
                     -depth all \
                 } \
          The name of the die must be unique. The -interposer option specifies that this die serves
          as an interposer for connectivity purposes. The -layout option specifies the path, layout
          type, and top cell name of the layout. The “-depth all” option instructs
          Calibre 3DSTACK to read in all layers of the layout.
                 Note
              If your die uses LEF/DEF data, then specify the -lefdef option instead of the -layout
              option.
      3. Create die definitions for all dies used in your assembly. In this example, there is one
         controller and two identical ram dies stacked on the interposer:
              die -die_name controller \
                 -layout { \
                     -path ./design/controller.gds \
                     -type gdsii \
                     -primary controller \
                 } \
          Although the ram die is instantiated twice in the assembly, you only need to create a
          single die definition.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
                 Note
               The component command enables you to define passive components, such as
               resistors and capacitors.
Results
 The dies and their respective layouts have been defined, but they are not yet finalized. The next
 step is to define the physical layers and text used within the dies that interact with the assembly.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
Examples
      #!3dstack+
      ######################################################################
      #
      #           CALIBRE 3DSTACK+ Rule File for a 2.5D Interposer
      #
      #                        v1.0 12/25/2017
      #
      ######################################################################
      ###########################
      # Configure run
      ###########################
      config \
         -layout_primary TOP_CELL \
         -source_netlist {-file ./top_cell.spi -format SPICE } \
         -report {-file output/3dstack.report} \
         -export_connectivity {-file output/3dstack.v -format verilog }
      ###########################
      # Define dies in stack
      ###########################
Defining Layers
 You must define all layers used in the assembly and verification of your 3D-IC. If your layout
 files include detailed placement and routing, at a minimum, you only need to define the
 interface layers used to connect the dies in the stack. This is referred to as a black-box
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
 verification flow. You can perform full white-box verification flow if you define all layers in
 your layout files.
        Note
      Instead of applying the -layer_info argument as described in this topic, you can apply the
      die -process option and specify a predefined set of layer definitions.
 In the example shown in Figure A-3, the controller and ram die have bump pad shapes and text
 on layer 255. These bump pads connect to the pads on the interposer that are also on layer 255.
Prerequisites
      •   Completion of “Setting Up Global Options” on page 304
Procedure
      1. Open your 3dstack.rules rule file.
      2. Find your first die definition for the interposer.
          This statement defines the die and its layout, but it currently contains no layers:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
      3. In your first die command for the interposer, using line continuation characters where
         necessary, apply the -layer_info option to add your first layer:
              die -die_name interposer \
                 -layout { \
                     -path ./design/interposer.gds \
                     -type gdsii \
                     -primary interposer \
                     -depth all \
                 } \
                 -layer_info { \
                     -type PAD \
                     -name INT_PAD \
                     -ext_connect \
                     -layer { \
                        255 \
                        -depth all \
                        } \
                     -text { 255 } \
                     -bottom \
                 } \
         The highlighted addition to the die statement defines a layer named interposer_pads of
         type pad. The type is any user-defined string, but it is important because verification
         checks are controlled by the specified layer types. If you apply the same type to different
         layers, then you can check interactions between those layer types. For example, layers of
         type pad on the interposer die and layers of type pad on the controller die.
         The pad layer and text in the interposer.gds belong to layer 255, so the -layer definition
         and -text definition both specify 255.
         The -ext_connect option indicates that the layer is used for connectivity outside of the
         die to other interacting external layers.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
          The interposer has landing pad shapes and text on layer 255, but also has additional
          metal interconnect and vias that distribute connections between the dies. These metal
          and via shapes are on layers 11 through 17.
               -layer_info { \
                      -type RDL_M \
                      -name RDL_M1 \
                      -ext_connect \
                      -layer { \
                         11 \
                         -depth all \
                         } \
                      -bottom \
                  } \
                  -layer_info { \
                      -type RDL_V \
                      -name RDL_V1 \
                      -layer { \
                         12 \
                         -depth all \
                         } \
                      -bottom \
                  }
               …
                 Tip
               You can also specify derived layers using the -svrf argument to the -layer_info
               command.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
         For the purpose of this example, the stacked dies are treated as black boxes, so only the
         interface layers (pads) that connect to the interposer are defined.
6. Save the file and continue to “Defining Layer Connectivity” on page 316.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
Results
 You have defined the pad layers from each of the chips in the stack. You have also defined the
 RDL layers of the interposer that are used to provide connectivity between the controller and
 ram dies.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
Examples
      #!3dstack+
      ######################################################################
      #
      #            CALIBRE 3DSTACK+ Rule File for a 2.5D Interposer
      #
      #                         v1.0 12/25/2017
      #
      ######################################################################
      set_version -version 1.0
      ###########################
      # Configure run
      ###########################
      config \
         -layout_primary TOP_CELL \
         -source_netlist {-file ./top_cell.spi -format SPICE } \
         -report {-file output/3dstack.report} \
         -export_connectivity {-file output/3dstack.v -format verilog }
      ###########################
      # Define dies in stack
      ###########################
      die -die_name interposer \
         -layout { \
             -path ./design/interposer.gds \
             -type gdsii \
             -primary interposer \
             -depth all \
         } \
         -layer_info { \
             -type PAD \
             -name INT_PADS \
             -ext_connect \
             -layer { \
                255 \
                -depth all \
                } \
             -text { 255 } \
             -bottom \
         } \
         -layer_info { \
             -type RDL_M \
             -name RDL_M1 \
             -ext_connect \
             -layer { \
                11 \
                -depth all \
                } \
             -bottom \
         } \
         -layer_info { \
             -type RDL_V \
             -name RDL_V1 \
             -layer { \
                12 \
                -depth all \
                } \
             -bottom \
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
          } \
          -layer_info { \
              -type RDL_M \
              -name RDL_M2 \
              -layer { \
                 13 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_V \
              -name RDL_V2 \
              -layer { \
                 14 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_M \
              -name RDL_M3 \
              -layer { \
                 15 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_V \
              -name RDL_V3 \
              -layer { \
                 16 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_M \
              -name RDL_M4 \
              -layer { \
                 17 \
                 -depth all \
                 } \
              -bottom \
          }
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
Prerequisites
      •   Completion of “Defining Layers” on page 308.
      •   Layer information (how layers and die placements are connected).
Procedure
      1. Open your 3dstack.rules rule file.
      2. Find your first die definition for the interposer.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
          This statement defines the die, its layout, and all layers relevant to the composition of
          the stack, but it currently contains no information on how those layers electrically
          interact with each other.
      3. In your first die command for the interposer, using line continuation characters where
         necessary, apply the -wb_connect option to define the connectivity between the pad and
         redistribution layer (RDL):
               die -die_name interposer \
                  -layout { … } \
                  -layer_info { … } \
                  …
                  -wb_connect PADBUMP RDL_M1
          This statement specifies that the pad and first metal layer of the RDL are electrically
          connected.
      4. Add statements that connect the rest of the RDL layers of the interposer:
               die -die_name interposer \
                  -layout { … } \
                  -layer_info { … } \
                  …
                  -wb_connect PADBUMP RDL_M1 \
                  -wb_connect RDL_M1 RDL_M2 BY RDL_V1 \
                  -wb_connect RDL_M2 RDL_M3 BY RDL_V2 \
                  -wb_connect RDL_M3 RDL_M4 BY RDL_V3 \
These statements connect the M1 to M4 metal layers through the appropriate via layers.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
Prerequisites
      •   Completion of “Defining Layer Connectivity” on page 316.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
Procedure
      1. Open your 3dstack.rules rule file.
      2. Add the stack command after the die definitions as follows:
               stack -stack_name assembly \
                  -die { \
                     -name interposer
                     -source interposer
                     -placement 0 0
                     -invert
                     } \
                  -tier {
                     -die {-name controller -placement 17 12 -source controller }
                     -die {-name ram -placement 80 12 -source ram_0 }
                     -die {-name ram -placement 80 45 -source ram_1 }
                  }
          A tier defines a set of dies that occupy the same horizontal plane. Since the interposer is
          at the bottom of the stack, it occupies a different vertical plane than the three chips
          stacked on top of it.
          The -source argument specifies the corresponding sub-circuit cell name in the source
          netlist if it is different than the die name.
      3. Save the rule file and close it.
      4. Invoke Calibre 3DSTACK and generate the overlay view of the 3D-IC by entering the
         following command:
               calibre -3dstack -create_assembly 3dstack.assembly 3dstack.rules
          The -create_assembly invocation argument only generates the physical view of the
          stacked ICs. It does not perform any verification checks. The physical overlay view is
          useful for checking the layout, layer, and placement definitions in your rule file without
          performing a full run.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Assembly Operations in the Calibre 3DSTACK Rule File
         This allows you to see the detailed layout within the placements.
      7. Close Calibre DESIGNrev and continue to “Defining Layer Connectivity” on page 316.
Results
 You physically placed the chips in the 3D-IC assembly. You can check for placement errors as
 described under “Writing Verification Checks in the Calibre 3DSTACK Rule File” on page 322
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                           Examples
                                         Writing Assembly Operations in the Calibre 3DSTACK Rule File
Examples
      …
      ###############################
      # Arrange chips in 3DSTACK
      ###############################
      stack -stack_name assembly \
         -die { \
            -name interposer
            -source pInterposer
            -placement 0 0
            -invert
            } \
         -tier {
            -die {-name controller -placement 17 12 -source pController }
            -die {-name ram -placement 80 12 -source pRam0 }
            -die {-name ram -placement 80 45 -source pRam1 }
         }
      …
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Verification Checks in the Calibre 3DSTACK Rule File
       Note
    In the case where multiple text labels overlap a pad in the layout, the tool generates a multi-
    text error and chooses to use one of the text labels attached to the pad for the connectivity
 analysis. Because the chosen label may not match your design intent, it is important to review
 and resolve all multi-text errors to ensure that the layout is correct. If you do not resolve the
 multi-text errors, your connectivity analysis may not be correct.
Prerequisites
      •   Completion of “Defining Layer Connectivity” on page 316.
Procedure
      1. Open your 3dstack.rules rule file.
      2. Add the connected statements after the assembly statements as follows:
               connected -check_name CONNECT_PADS_TO_BUMPS \
                  -layer_type1 pad \
                  -layer_type2 bump \
                  -black_box \
                  -net_mismatch ALL \
                  -comment "CONNECT::INTERPOSER TO DIES CONNECTIVITY"
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                             Examples
                                           Writing Verification Checks in the Calibre 3DSTACK Rule File
          The -layer_type1 and -layer_type2 commands specify the types of layers that should be
          connected. The types are specified in the individual die definitions.
          The -detailed option writes out additional information to the report file.
                 Note
               You can also check connectivity between two dies by specifying the die names with
               the connected … -die1 name and -die2 name options.
Prerequisites
      •   Completion of “Writing Assembly Operations in the Calibre 3DSTACK Rule File” on
          page 304.
Procedure
      1. Open your 3dstack.rules rule file.
      2. To check spacing between dies, add external statements after the connected statements
         as follows:
               external -check_name PAD_SPACE -layer_type1 pad \
                  -constraint "< 65 REGION" -comment "ERR:Placement within 65um!"
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Writing Verification Checks in the Calibre 3DSTACK Rule File
      3. To check spacing between other layers, such as the metal interconnect on the interposer,
         specify the following commands:
              external -check_name RDL_M1.1 -layer_type1 rdl \
                 -constraint "< 1 REGION" -comment "ERR: Spacing < 0.1um on rdl!"
              …
      4. Add enclosure, external, and internal commands for each layer as appropriate.
      5. Save the rule file.
      6. Continue to “Checking For Sufficient Pad Overlap (DRC)” on page 324.
          In this case, if the overlap between the controller and interposer pads is not greater than
          90%, then the rule check fails.
      3. To specify the pad overlap by the area of the overlap, use the -by_area command as
         follows:
              overlap -check_name "OVERLAP_PAD_TO_BUMP_AREA" \
                 -layer_type1 pad \
                 -layer_type2 bump \
                 -constraint " < 13" -intersection \
                 -comment "Pad overlap must be greater than 13 um^2!"
          In this case, if the overlap between the controller and interposer pads is not greater than
          13 um2, then the rule check fails.
      4. Save the rule file and close it.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                             Examples
                                           Writing Verification Checks in the Calibre 3DSTACK Rule File
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
System Netlist Generator Flow Example
 The SPICE netlists for the memory and controller are defined in Table A-3.
                 Table A-3. Netlists for Chips Used In This Example
 SPICE Filename                  Contents of SPICE Netlists
 myram_netlist.spi               .SUBCKT myram mode enable adr[0] adr[1] adr[2]
                                 w_data[0] w_data[1] w_data[2] w_data[3] w_data[4]
                                 w_data[5] w_data[6] w_data[7]
                                 r_data[0] r_data[1] r_data[2] r_data[3] r_data[4]
                                 r_data[5] r_data[6] r_data[7]
                                 .ENDS myram
 controller_netlist.spi          .SUBCKT controller
                                   reset mode
                                 $--Chip enable bus--
                                   ENABLE<0> ENABLE<1>
                                 $--Address bus--
                                   ADDR<0> ADDR<1> ADDR<2>
                                 $--Port A+B--
                                   GPIO_A<0> GPIO_A<1> GPIO_A<2>                 GPIO_A<3>         GPIO_A<4>
                                 GPIO_A<5> GPIO_A<6> GPIO_A<7>
                                   GPIO_B<0> GPIO_B<1> GPIO_B<2>                 GPIO_B<3>         GPIO_B<4>
                                 GPIO_B<5> GPIO_B<6> GPIO_B<7>
                                 $--Port C+D--
                                   GPIO_C<0> GPIO_C<1> GPIO_C<2>                 GPIO_C<3>         GPIO_C<4>
                                 GPIO_C<5> GPIO_C<6> GPIO_C<7>
                                   GPIO_D<0> GPIO_D<1> GPIO_D<2>                 GPIO_D<3>         GPIO_D<4>
                                 GPIO_D<5> GPIO_D<6> GPIO_D<7>
                                 .ENDS controller
The desired net connectivity of the chips on the interposer design is defined in Table A-4.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                                    Examples
                                                                                                       Creating a New Project
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Importing Chips into the Database
Prerequisites
       •   You have the necessary licenses and software as described under “Requirements” on
           page 16.
Procedure
       1. Enter the following command at the command line to invoke the System Netlist
          Generator:
              $CALIBRE_HOME/bin/sng -gui
         Note
       Set the MGC_SNG_SPICE_IMPORT_TEMP_DIR environment variable to the path of a
       temporary directory if you are importing large netlists.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                    Examples
                                                                           Importing Chips into the Database
Prerequisites
      •   You have netlists to import or you have saved the myram_netlist.spi and
          controller_netlist.spi netlists in Table A-3 to two separate files.
Procedure
      1. Choose File > Import Chips to load the SPICE netlists into the active database.
          The Import Chips pane opens in a tab in the Console area at the bottom of the main
          window.
      2. Click the Add Row button.
      3. Enter the Chip Name, Cell Name, Type, File Location, and Bus Characters of the netlist
         as shown:
          Note, the controller and ram chips use different characters to denote a bus. The Bus
          columns are described under “sng::import_chip” on page 269.
      4. Click the Import chips button.
          Any syntax errors in the source netlists are immediately reported in the console.
          If you make a mistake and want to import the source files again, choose Edit > Remove
          Chips and select the items that you want to delete from the project. After removing the
          chips, you can then follow steps 1 to 4 again.
      5. Save the database when you are done.
Results
 The imported chips are now displayed in the Chips tree as shown here:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Modifying and Adding Pins on Chips
Examples
 The following statements achieve the same steps using the Tcl console prompt:
Related Topics
 System Netlist Generator Flow Example
 Workflow
 sng::import_chip
 sng::remove_chip
      3. For the reset pin in this example, change the type to INPUT.
      4. Choose Edit > Add Pins to add a pin to the chip.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                   Examples
                                                                           Creating Placements for the Chips
                 Note
               Alternatively, you can right-click in the Pins View and choose Add Pins. The Add
               Pins pane opens as a tab at the bottom of the main window.
      5. Click Add Row, enter the pin name and chip name, and then click Add Pins to insert the
         new pin on the chip.
      6. Save the database when you are done.
Results
 You have added or modified a pin on a chip. This is allows you to modify the netlist of the
 source chips without manually modifying and importing the SPICE netlists.
Examples
 Console equivalent commands to list all of the pins on a chip.
Related Topics
 System Netlist Generator Flow Example
 Workflow
 sng::add_pin
 sng::remove_pin
 sng::set_property
 sng::get_property
Prerequisites
      •   You have imported at least one chip definition as described under “Importing Chips into
          the Database” on page 328.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Creating Placements for the Chips
Procedure
      1. Right-click on the controller in the Chips tree and choose Add Placements to instantiate
         the controller chip.
         The Add Placement dialog opens as a tab at the bottom of the main window.
      2. Click Add Row to start a new placement.
      3. Enter a placement name for the controller (each instantiation must have a unique name)
         and click Add Placements.
         The pController placement now appears under the Assembly tree as an instantiated chip.
         The pins on the chip are converted to ports on the placement.
      4. Create the placements for the two memory chips using the same method.
      5. If you make any errors, you can remove unwanted placements by selecting
         Edit > Remove Placements.
      6. Save the database.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                     Examples
                                                                                      Defining Net Connectivity
Results
 The three placements on the interposer are now defined in the project. You can view the
 placements and port properties by selecting the placements in the Assembly tree.
Examples
      sng::create_placement my_db -placement_name {pController} -chip_name
      {controller}
      sng::create_placement my_db -placement_name {pRam2} -chip_name {ram}
      sng::create_placement my_db -placement_name {pRam1} -chip_name {ram}
Related Topics
 System Netlist Generator Flow Example
 Workflow
 sng::create_placement
 sng::remove_placement
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Defining Net Connectivity
       5. Select the pController placement and note that the port in the properties table is now
          connected to the reset net in the net_name column:
          For placements with large pin counts, it is recommended to use the Tcl console interface
          to define the connectivity.
       6. Save the database and exit the tool.
       7. Enter the following Tcl commands in a shell script to connect the four general purpose
          8-bit data ports and address port of the controller to the 8-bit read, write, and address
          ports of the two ram placements:
              #set db_instance to current project
              set my_db [sng::open_db -path ./TOP_3D_sng]
      10. Invoke the System Netlist Generator and load the TOP_3D_sng database. The Assembly
          tree now displays all of the new connected nets and buses on the three chips.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                   Examples
                                                                               Exporting the Complete Design
    11. Complete the remaining connections manually using Table A-4 on page 327.
    12. Save the database.
Results
 The Assembly tree and placements are populated with all of the bus net connections. The mode
 and enable connections are unconnected and can be connected using the GUI or a batch script.
Related Topics
 System Netlist Generator Flow Example
 Workflow
 sng::get_ports
 sng::incr
 sng::connect
 sng::unconnect
          The Export Netlist dialog opens at the bottom of the main window.
      3. Enable all of the chips that you want to export and specify a path for the SPICE file:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Exporting the Complete Design
Results
 The source netlist for the 3D-IC, shown in Figure A-5 on page 326, was created using the
 System Netlist Generator. You can use this ideal electrical representation of your 3D-IC in a
 Calibre 3DSTACK run using the source_netlist command. This allows you to verify your
 design intent with the extracted layout.
Examples
 The batch command equivalent of this procedure is as follows:
The following SPICE netlist is the completed assembly netlist for this design:
      .SUBCKT TOP_CELL
      XpController reset mode enable_1 enable_2 address[0] address[1] address[2]
      + read_data1[0] read_data1[1] read_data1[2] read_data1[3] read_data1[4]
      + read_data1[5] read_data1[6] read_data1[7] write_data1[0] write_data1[1]
      + write_data1[2] write_data1[3] write_data1[4] write_data1[5]
      write_data1[6]
      + write_data1[7] read_data2[0] read_data2[1] read_data2[2] read_data2[3]
      + read_data2[4] read_data2[5] read_data2[6] read_data2[7] write_data2[0]
      + write_data2[1] write_data2[2] write_data2[3] write_data2[4]
      write_data2[5]
      + write_data2[6] write_data2[7] controller
      XpRam1 mode enable_1 address[0] address[1] address[2] write_data1[0]
      + write_data1[1] write_data1[2] write_data1[3] write_data1[4]
      write_data1[5]
      + write_data1[6] write_data1[7] read_data1[0] read_data1[1] read_data1[2]
      + read_data1[3] read_data1[4] read_data1[5] read_data1[6] read_data1[7]
      myram
      XpRam2 mode enable_2 address[0] address[1] address[2] write_data2[0]
      + write_data2[1] write_data2[2] write_data2[3] write_data2[4]
      write_data2[5]
      + write_data2[6] write_data2[7] read_data2[0] read_data2[1] read_data2[2]
      + read_data2[3] read_data2[4] read_data2[5] read_data2[6] read_data2[7]
      myram
      .ENDS TOP_CELL
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                   Examples
                                                                               Exporting the Complete Design
Related Topics
 System Netlist Generator Flow Example
 Workflow
 sng::export_netlist
 source_netlist
 Specifying a Source Netlist
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Rule File Examples
Opening Statements
 Extended syntax rules must begin with the following line:
#!3dstack+
 The next statement must be the set_version command to set the syntax version of the rule file.
 The only supported version is “1.0”
      #!3dstack+
      ######################################################################
      #
      #           CALIBRE 3DSTACK+ Rule File for 2.5D Interposer
      #
      ######################################################################
      ###########################
      # Configure run
      ###########################
      config \
         -layout_primary TOP_CELL \
         -netlist {-file ./design/top_cell.spi -format SPICE -case YES }\
         -report {-file output/3dstack.report} \
         -export_connectivity {-file output/3dstack.v -format verilog }
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                              Examples
                                                              Calibre 3DSTACK+ Extended Syntax Example
 Note, that this section only defines the dies used in the stack. How these dies are physically
 placed in the assembly is performed with the stack command.
      ###########################
      # Define dies in stack
      ###########################
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Calibre 3DSTACK+ Extended Syntax Example
         -layer_info { \
             -type RDL_M1 \
             -name RDL_M1 \
             -ext_connect \
             -layer { \
                11 \
                -depth all \
                } \
             -bottom \
         } \
         -layer_info { \
             -type RDL_V1 \
             -name RDL_V1 \
             -layer { \
                12 \
                -depth all \
                } \
             -bottom \
         } \
         -layer_info { \
             -type RDL_M2 \
             -name RDL_M2 \
             -layer { \
                13 \
                -depth all \
                } \
             -bottom \
         } \
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                              Examples
                                                              Calibre 3DSTACK+ Extended Syntax Example
          -layer_info { \
              -type RDL_V2 \
              -name RDL_V2 \
              -layer { \
                 14 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_M3 \
              -name RDL_M3 \
              -layer { \
                 15 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_V3 \
              -name RDL_V3 \
              -layer { \
                 16 \
                 -depth all \
                 } \
              -bottom \
          } \
          -layer_info { \
              -type RDL_M4 \
              -name RDL_M4 \
              -layer { \
                 17 \
                 -depth all \
                 } \
              -bottom \
          } \
          -interposer \
          -wb_connect RDL_M1 RDL_M2 BY RDL_V1 \
          -wb_connect RDL_M2 RDL_M3 BY RDL_V2 \
          -wb_connect RDL_M3 RDL_M4 BY RDL_V3 \
          -wb_connect interposer_pads RDL_M1
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Calibre 3DSTACK+ Extended Syntax Example
Assembly Operations
 Up to this point in the rule file, all dies and layers are defined. The next step is to define how
 these dies are placed (assembled) using the stack command. In this example, the bottom die is
 placed first using the -die argument. The -placement argument determines the horizontal x and y
 placement of the interposer. The controller and two ram dies are on the same vertical plane
 (their initial z-coordinates are the same). This is referred to as a tier. The tier is stacked on top of
 the interposer, where the initial z-coordinate of the tier is determined implicitly from the
 thickness and specified -z_origin of the interposer.
Figure A-6 and Figure A-7 show the assembly generated by the statements in this example.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                              Examples
                                                              Calibre 3DSTACK+ Extended Syntax Example
      ###############################
      # Arrange chips in 3DSTACK
      ###############################
Verification Rules
 The verification rules in the 3DSTACK+ extended syntax are layer-based and not specific to a
 particular design. This enables you to write rules that can be used for any assemblies that use the
 same design kit layer definitions.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Standard (Legacy) Syntax Example 1
 The examples in this section demonstrate just a few of the available verification checks. See
 “Rule Check Commands” on page 136 for a complete description of the verification commands
 for the extended syntax file.
      ###############################
      # LVS Checks
      ###############################
      ###############################
      # DRC Checks
      ###############################
      external -check_name PAD_SPACE -layer_type1 pad \
         -constraint "< 65 REGION" -comment "ERR:Placement within 65um!"
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                  Examples
                                                                        Standard (Legacy) Syntax Example 1
# declare layouts
# declare layers
      # Note that TVF code inside the tvf_block check is stand-alone and is
      # outside the scope of the chip stack rule file.
      tvf_block additional_layers {
         tvf::SETLAYER m11_m21 = c1p_m11 AND c1p_m21;
         tvf::SETLAYER m12_m22 = c2p_m12 AND c2p_m22;
      } -export_layers [list m11_m21 m12_m22]
      # export connectivity
      export_connectivity -file spice_output.spi -format SPICE
      # import connectivity
      source_netlist -file spice_input.spi -format SPICE
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Standard (Legacy) Syntax Example 2
# dimensional checks
# connectivity check
      # output report
      report -file report.txt
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                  Examples
                                                                        Standard (Legacy) Syntax Example 2
layout_primary TOPCELL_3DIC
# output report
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Report File Format
Report Header
 The report begins with a summary of the input, output, user, and design information.
                           ##################################################
                           ##         C A L I B R E    S Y S T E M         ##
                           ##         3 D S T A C K    R E P O R T         ##
                           ##################################################
                           ##         #     #                ~     ~       ##
                           ##           # #                  x     x       ##
                           ##            #                      @          ##
                           ##           # #                    ___         ##
                           ##         #     #                /     \       ##
                           ##################################################
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                            Examples
                                                 Summary of Drawn Layers, Placements, and Text Layers
      RENAMING RULES:
      LAYERS:
         Layer Name: INTERP_FRONT_if
            Chip: interposer
            Layer Number: 100
         Layer Name: bmet1
            Chip: interposer
            Layer Number: 51
         Layer Name: bmet2
            Chip: interposer
            Layer Number: 53
         Layer Name: tsv
            Chip: interposer
            Layer Number: 50
         Layer Name: INTERP_BACK_if
            Chip: interposer
            Layer Number: 200
         Layer Name: CONTROLLER_if
            Chip: controller
            Layer Number: 100
         Layer Name: via_rdl1
            Chip: interposer
            Layer Number: 20
         Layer Name: bvia1
            Chip: interposer
            Layer Number: 52
         Layer Name: metal_rdl1
            Chip: interposer
            Layer Number: 19
         Layer Name: RAM_if
            Chip: myram
            Layer Number: 100
         Layer Name: metal_rdl2
            Chip: interposer
            Layer Number: 21
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Summary of Drawn Layers, Placements, and Text Layers
      ANCHOR PLACEMENT(S):
      PLACEMENT(S):
         Chip Placement: pCont
            Layout: controller
            x-origin: 0.000
            y-origin: 0.000
            Magnification: 1.0
            Rotation: 0
            Flip Axis: y
         Chip Placement: pRAM_stack3
            Layout: myram
            x-origin: -780.000
            y-origin: 520.000
            Magnification: 1.0
            Rotation: 180
            Flip Axis: y
         Chip Placement: pRAM_stack4
            Layout: myram
            x-origin: -740.000
            y-origin: 80.000
            Magnification: 1.0
            Rotation: 270
            Flip Axis: y
         Chip Placement: pRAM_stack5
            Layout: myram
            x-origin: -740.000
            y-origin: 80.000
            Magnification: 1.0
            Rotation: 270
            Flip Axis: y
         Chip Placement: pRAM_stack1
            Layout: myram
            x-origin: 280.000
            y-origin: 65.000
            Magnification: 1.0
            Rotation: 0
            Flip Axis: y
         Chip Placement: pInterp
            Layout: interposer
            x-origin: 0.000
            y-origin: 0.000
            Magnification: 1.0
            Rotation: 0.0
            Flip Axis: NONE
         Chip Placement: pRAM_stack2
            Layout: myram
            x-origin: 230.000
            y-origin: 505.000
            Magnification: 1.0
            Rotation: 90
            Flip Axis: y
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                        Examples
                                                                                             Verification Results
      TEXT LAYER(S):
         Layer: pRAM_stack2_RAM_if (pRAM_stack2_RAM_if)
         Layer: pCont_CONTROLLER_if (pCont_CONTROLLER_if)
         Layer: pRAM_stack3_RAM_if (pRAM_stack3_RAM_if)
         Layer: pRAM_stack4_RAM_if (pRAM_stack4_RAM_if)
         Layer: pRAM_stack1_RAM_if (pRAM_stack1_RAM_if)
Net Mapping
 Net mapping operations from the net_map or config -net_map commands are summarized in
 this section:
      NET MAPPING:
          FROM:                      TO:
          ---------------------------------------
          PWR                        VDD
Verification Results
 Verification check results are reported under the RULECHECK SUMMARY section.
                         OVERALL VERIFICATION RESULTS
      *************************************************************************
                               RULECHECK SUMMARY
      *************************************************************************
      Status     Result Count                          Rule
      -------------------------------------------------------------------------
      COMPLETED        0        Floating_Text ( Selecting text labels from
      pCont_CONTROLLER_if not having overlap with any of the pads. Selecting
      text labels from pRAM_stack1_RAM_if not having overlap with any of the
      pads (the same as for pRAM_stack2_RAM_if, pRAM_stack3_RAM_if,
      pRAM_stack4_RAM_if). )
      COMPLETED        5        No_Text ( Selecting pads from pCont_CONTROLLER_if
      not having text-labels attached. Selecting pads from pRAM_stack1_RAM_if
      not having text-labels attached (the same as for pRAM_stack2_RAM_if,
      pRAM_stack3_RAM_if, pRAM_stack4_RAM_if). )
      COMPLETED        0        Multi_Text ( Shapes from placement
      pCont_CONTROLLER_if overlap multiple text labels from text placement
      pCont_CONTROLLER_if. Shapes from placement pRAM_stack1_RAM_if overlap
      multiple text labels from text placement pRAM_stack1_RAM_if (the same as
      for pRAM_stack2_RAM_if, pRAM_stack3_RAM_if, pRAM_stack4_RAM_if). )
      COMPLETED        0        ExtraPorts
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Verification Results
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                                        Examples
                                                                                             Verification Results
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Examples
Verification Results
Connectivity Results
      *************************************************************************
                            CONNECTIVITY RULECHECK RESULTS
      *************************************************************************
        RuleCheck: CONNECT_RAM2_to_CONTROLLER ( CONNECTION CHECK between
      LAYER:pRAM_stack2_RAM_if and LAYER:pCont_CONTROLLER_if )
      -------------------------------------------------------------------------
      1
            Port: pCont:adr<0>
            Net: 61
            SourceNet: ADR<0>
            LNC: pCont:adr<0>
            SNC: pCont:ADR<0> pRAM_stack2:ADR<0>
      2
            Port: pRAM_stack2:adr<0>
            Net: 105
            SourceNet: ADR<0>
            LNC: pRAM_stack2:adr<0>
            SNC: pCont:ADR<0> pRAM_stack2:ADR<0>
        RuleCheck: CONNECT_RAM3_to_CONTROLLER ( CONNECTION CHECK between
      LAYER:pRAM_stack3_RAM_if and LAYER:pCont_CONTROLLER_if )
      -------------------------------------------------------------------------
        RuleCheck: CONNECT_RAM4_to_CONTROLLER ( CONNECTION CHECK between
      LAYER:pRAM_stack4_RAM_if and LAYER:pCont_CONTROLLER_if )
      -------------------------------------------------------------------------
        RuleCheck: CONNECT_RAM1_to_CONTROLLER ( CONNECTION CHECK between
      LAYER:pRAM_stack1_RAM_if and LAYER:pCont_CONTROLLER_if )
      -------------------------------------------------------------------------
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                   Appendix B
                              Standard Calibre 3DSTACK Syntax
                                                   Commands
 The standard (or traditional) Calibre 3DSTACK rule file syntax supports a different set of
 assembly and system configuration commands than the extended 3DSTACK+ syntax.
 The extended 3DSTACK+ syntax (see “Command Reference” on page 63) is recommended.
 Rule check commands are shared between the two syntaxes, but the standard syntax is less
 flexible because the rules must map to placement names used in the assembly and configuration
 commands.
 The Calibre 3DSTACK tool standard syntax rule compiles a standard syntax rule file from your
 extended syntax rule input and writes it to your working directory during a run. This file can be
 used to debug your assembly and verification operations.
This section documents commands exclusive to the standard Calibre 3DSTACK syntax.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
System and Miscellaneous Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                 assembly_path_extension
assembly_path_extension
 Sets the severity of circular GDS path extension errors.
Usage
 assembly_path_extension value
Arguments
 •    value
      Required integer between 0 and 8. See PATH_CIRCULAR in the “Exceptions for Layout
      Input Exception Severity” table of the SVRF Manual.
Examples
      assembly_path_extension 8
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
export_connectivity
export_connectivity
 Exports the connectivity information into a netlist or annotated GDS file.
Usage
 export_connectivity -file file_name
    [-format {VERILOG | AIF | MGC | SPICE | XSI }]
    [{-property number} | -text]} [-flat]
    [-hier [-no_top]
    [-pkg package_name]]
    [-pex_map {calibrated_layers_list assembly_layers_list}]
Arguments
 •    -file file_name
      Required argument and value set that specifies the name of the output file.
 •    -format {VERILOG | AIF | MGC | SPICE | XSI | GDS}
      Optional argument set that specifies the format for the output connectivity file (the default is
      Verilog).
 •    -hier
      Optional argument that specifies to generate a hierarchical netlist for 2.5D ICs. This option
      only works with -format SPICE. You must also specify layout -interposer for one of the
      imported chips.
      When the -interposer argument is applied to a layout and the -hier option is used, the
      generated netlist instantiates all dies within the layout instance specified by -interposer. The
      top cell of the assembly only contains the instantiated interposer die. The net names are
      generated from the interposer pin names.
 •    -no_top
      Optional argument that specifies not to create a new top cell for the entire design. This
      option requires -hier to be specified.
 •    -pkg package_name
      Optional argument that specifies a package layout in the design. The layout must not be an
      interposer. The specified package_name must have at least one layer defined in the
      connectivity stack. This option requires -hier to be specified.
Description
 Exports connectivity to a file in the specified format (Verilog, AIF, SPICE, MGC, or XSI).
 The MGC format contains a list of add_connection directives that describe single connections in
 the 3D assembly:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                      export_connectivity
 Warnings are issued for single-port connections (nets connected to one port only) in the
 extracted netlist.
       Caution
    There should not be spaces in cell or pin names as this causes the exported netlist to be
    incorrect. For pins, the tool creates multiple pins in such a case. The export_connectivity
 command issues a warning for these cases.
AIF Format
 See “AIF Export File Format” on page 278 for details on the AIF netlist exported by
 Calibre 3DSTACK.
XSI Format
 Calibre 3DSTACK generates the XSI CSV file using the pins from all placements in the
 following columns:
685,685,TOPCELL_3DI,assembly1_tier1_BGA1,BS_SW1_GPIO_40,BGA
Examples
Example 1
 Consider the chip stack shown in Figure B-1. In this chip stack, two layouts (chip1 and chip2)
 are arranged such that they overlap. Polygons on each layout contain text objects labeled net1
 through net4.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
export_connectivity
The chip stack rule file for this example is shown as follows:
      #define layouts
      layout -chip_name c1 -primary TOPCELL -path ./chip1.gds -system GDS
      layout -chip_name c2 -primary TOPCELL -path ./chip2.gds -system GDS
      #define connectivity
      connect c1p_m1 c2p_m2
 The export_connectivity commands in this file generate three output files. These files, which
 are written in the SPICE, Verilog, and MGC formats, contain the connectivity information for
 the chip stack. The contents of these files are shown as follows:
      •   SPICE
              .SUBCKT TOPCELL_3DIC
              Xc1p 4 3 2 1 TOPCELL
              Xc2p 4 3 2 1 TOPCELL
              .ENDS TOPCELL_3DIC
• VERILOG
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                      export_connectivity
               module TOPCELL_3DIC (
                  ) ;
               wire 4 ;
               wire 1 ;
               wire 2 ;
               wire 3 ;
               TOPCELL c1p (
                  .net1 (4) ,
                  .net2 (3) ,
                  .net3 (2) ,
                  .net4 (1)) ;
               TOPCELL c2p (
                  .net1 (4) ,
                  .net2 (3) ,
                  .net3 (2) ,
                  .net4 (1)) ;
               endmodule
               module TOPCELL (
                  net1 ,
                  net2 ,
                  net3 ,
                  net4) ;
               inout net1 ;
               inout net2 ;
               inout net3 ;
               inout net4 ;
               endmodule
      •   MGC
               add_connection -connection1               {c1p TOPCELL net1 net1} -connection2\
               {c2p TOPCELL net1 net1}
               add_connection -connection1               {c1p TOPCELL net2 net2} -connection2\
               {c2p TOPCELL net2 net2}
               add_connection -connection1               {c1p TOPCELL net3 net3} -connection2\
               {c2p TOPCELL net3 net3}
               add_connection -connection1               {c1p TOPCELL net4 net4} -connection2\
               {c2p TOPCELL net4 net4}
Example 2
 This example demonstrates the export_connectivity -hier option. Assume you have the
 following chips in your assembly:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
export_connectivity
 Note that the -interposer option was applied to the interposer die. The top cell of the assembly is
 called TOP_CELL:
layout_primary TOP_CELL
After assembling your 2.5D IC, you export the two SPICE netlists; one with -hier option:
 Without -hier, all chips in the assembly are instantiated in the TOP_CELL. With -hier, the chips
 that are not interposers are instantiated within the interposer.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                          export_layout (Standard Syntax)
 •    -name placement_name
      Optional argument that specifies the name of the placement to export.
 •    -pex_map calibrated_layer_name
      Optional argument set that maps calibrated layer names to the physical layers in the
      assembly. This argument set only applies for -format GDS.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
export_layout (Standard Syntax)
      Calibre 3DSTACK uses this information to write an SVRF file when exporting an annotated
      GDS file. The SVRF file is named <gds_name>.map.svrf, where gds_name is the name you
      specified for the annotated GDS. The calibrated layer names and assembly layer pairings are
      written to the generated SVRF file with PEX Map statements.
 •    -rc_model
      Optional argument that writes TSV PEX statements to the extraction rule file. See
      “export_layout” on page 128 for details.
 •    -bottom_rc_interface
      Optional argument that indicates that the specified layer represents the interface layer on the
      bottom of the die. You can only apply this argument to a single layer in the argument set. If
      you apply this argument, you must also specify the -top_rc_interface argument for one of
      the other layers in the die. This option is used to identify the interface layers for a virtual die
      between dies or from dies to interposers for extraction rule generation.
 •    -top_rc_interface
      Optional argument that indicates that the specified layer represents the interface layer on the
      top of the die. You can only apply this argument to a single layer in the argument set. If you
      apply this argument, you must also specify the -bottom_rc_interface argument for one of the
      other layers in the die. This option is used to identify the interface layers for a virtual die
      between dies or from dies to interposers for extraction rule generation.
 •    -icrx file
      Optional argument set that specifies the path to a file that contains parasitic information in
      ICRX format. Use this option with the -enable_rc_deck option to automate RC extraction
      rule generation. This option is mutually exclusive with the -mipt option.
 •    -mipt file
      Optional argument set that specifies the path to a file that contains parasitic information in
      MIPT format. Use this option with the -enable_rc_deck option to automate RC extraction
      rule generation. This option is mutually exclusive with the -icrx option.
 •    -invert
      Optional argument that specifies that the layer is inverted.
 •    -rename_text “expression …”
      Optional argument set that renames text in the placement. The expression is a GNU regular
      expression. Multiple expressions are supported, but the entire set of expressions must be
      enclosed in quotes or braces. For example:
                -rename_text "/</\[/ />/\]/"
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                          export_layout (Standard Syntax)
      writes the information to the .map.svrf file. To use this option, you must specify the
      following arguments:
          o    -name layer_name — Specifies the name of the layer on which the second ground
               shape is generated.
          o    -vertices x1 y1 x2 y2 — Specifies a set of coordinates for the ground pin shape. This
               option is mutually exclusive with -extent.
          o    -extent — Specifies that the extent of the die should be used as the shape for the
               second ground. This option is mutually exclusive with -vertices.
          o    -text “ground_name” — Specifies the text label for the second ground.
          o    -pex_map layer_name — Specifies the calibrated layer name for the second ground.
 •    -cci [-ground_name] [-power_name]
      Optional argument that generates a set of standard files that can be used in third-party
      extraction flows. This option cannot be specified with the -text, -flat, -enable_rc_deck, or
      -netlist_format options.
          -ground_name name
              Specifies a ground name used for ground nets in the generated Layer Net Specs
              (LNS) file.
          -power_name name
              Specifies a power name used for power nets in the generated LNS file.
      When you specify the -cci argument set, the tool creates a Layer Net Specs file in your
      working directory. The LNS file is an SVRF file that contains the following sections:
          o    Layer definitions.
          o    Connectivity statements.
          o    Power and ground name statements, if specified using the -power_name and
               -ground_name options.
      The tool generates a flat spice netlist that contains a top subcircuit without any instances and
      with sorted net numbers as pins.
      If you set the CALIBRE_3DSTACK_ENABLE_HIER_CCI environment variable to a non-
      null value, the following items include placement information:
          o    lnn (Layout Netlist Names)
          o    ixf (Instance Xref File)
          o    nxf (Net Xref File)
          o    lnxf (Layout Net Xref File)
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
export_layout (Standard Syntax)
 •    -enable_rc_deck
      Optional argument that specifies to generate an extraction rule file for interface layers
      between two specified dies. You can specify the export_layout command with this option
      for each of the interacting dies. This option cannot be specified with -enable_rc_map.
 •    -enable_rc_map
      Optional argument that specifies to only generate the xcalibrate_map file. This argument
      only applies to -enable_rc_deck and cannot be specified with -layout_only. If the MIPT files
      were not specified, the tool creates placeholders in the map file with the following format:
              <DIE_NAME>_mipt
 •    -use_lvs_names
      Optional argument that specifies to use original layer names from the layer placement
      options in the generated LVS rules file. If this argument is not specified, the tool uses the
      layer names from the generated Calibre 3DSTACK assembly. This argument cannot be
      specified with -cci.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                         export_template
export_template
 Exports a specified chip or placement from the stack into a GDS or OASIS file.
Usage
 export_template {-chip chip_name } | {-placement placement_name
    {[-neighbor layer [-bump value]] … } [-clip distance] } -file output_file
    [-system {GDS | OASIS}]
Arguments
 •    -chip chip_name
      Argument and value set that specifies the chip name to export (chip names are defined using
      the layout command). You must specify either this argument or the -placement argument.
      The layer properties and layer map files are generated when export_template -chip is
      specified in your rule file.
 •    -placement placement_name
      Argument and value set that specifies an existing placement in the assembly to export. You
      must specify either this argument or the -chip argument. The layer properties and layer map
      files are generated when export_template -placement is specified in your rule file.
 •    -neighbor layer …
      Optional argument set that specifies a layer in the assembly to export with the specified
      placement. Multiple layers require a separate -neighbor layer argument pair for each layer.
      This option can only be used with the -placement argument.
 •    -bump value
      Optional argument set that increments the layer number of the layer by an integer value.
      This argument can be specified for each -neighbor layer pair.
 •    -clip distance
      Optional argument set that specifies a clipping distance in microns around the chip extent to
      exclude from the exported layout. The -clip argument accepts positive floating-point
      numbers and can only be specified once for each export_template command.
 •    -file output_file
      Required argument and value set that specifies the name of the output file. Each application
      of the export_template command requires a unique output_file name.
 •    -system {GDS | OASIS}
      Optional argument that specifies the layout system. The default is GDS.
Description
 Exports the specified chip or placement from the 3D assembly to a GDS or OASIS file. Layers
 are written (with their original layer numbers) only if they are declared in layer commands for
 the specified chip_name. The output file is written using the precision of the input files. Empty
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
export_template
 layers are supported. Layermap and layer properties files for Calibre DESIGNrev are exported
 automatically using the same naming convention.
Examples
Example
 Export a GDS for the controller chip in the assembly.
 The exported layout contains the layout of the controller chip as shown in the following figure.
 In this example, the original controller only contains pad shapes.
Example
 Export a GDS for the placement of the controller chip in the assembly. This example also
 specifies to include some of the surrounding interconnect layers on the interposer. The -bump
 argument for each included layer increments the layer number by the specified integer value.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                         export_template
Example
 Export an OASIS layout for the placement of the controller chip in the assembly. This is the
 same as the previous example, except that the included layers are clipped at 15 um from the
 edge of the controller placement.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
layer_props_file
layer_props_file
 Specifies a layer properties file for Calibre DESIGNrev that sets custom layer visibility options.
Usage
 layer_props_file props_file
Arguments
 •    props_file
      Required path to a layer properties file. See the “Description” section for details.
Description
 The specified props_file defines the properties of the layers used in Calibre DESIGNrev and
 follows this format:
where:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                         layer_props_file
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
report
report
 Generates a report file that contains information about the verification run. This is useful for
 debugging the design.
Usage
 report -file report_file [-max_results value] [-child_rdbs {NO | YES}]
    [-report_ignored_pins {NO | YES}]
Arguments
 •    -file report_file
      Required argument set that specifies the name of the output file.
 •    -max_results value
      Optional argument set that limits the number of reported results (per check) to the number
      specified with the value keyword. The max_results argument applies to each check in the
      rule file. The value keyword must be a positive integer, unless “all” is specified. If value is
      set to “all”, no limitation is applied to the report command. The default is 50.
                 Note
              If you do not specify the report command in your rule file, then there is no limit to
              the number of results written to the results database.
Description
 Generates a file containing a report of the run. The format of the report is similar to the reports
 for Calibre nmLVS and Calibre PERC runs. Refer to Report File Format for an example.
 The following sections are only generated when a source_netlist command is present in the chip
 stack rule file:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                  report
Examples
 Use the following command to generate a report file with no reported result limitations:
Use the following command to limit the results for each rule check to a maximum of 30:
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
run
run
 Used in standard and 3DSTACK+ rule files.
 Runs Calibre using the specified rule file and command-line options.
Usage
 run {-drc | -lvs | -perc | -xrc} -directory run_dir -rule_deck rules [-run_options options]
Arguments
 •    -drc | -lvs | -perc | -xrc
      Required argument set that specifies the type of Calibre run to perform.
 •    -directory run_dir
      Required argument and value set that specifies the path to the run directory. Output files
      from the run are written to this directory.
 •    -rule_deck rules
      Required argument and value set that specifies the path to a Calibre rule file, such as
      Calibre nmDRC, Calibre nmLVS or Calibre_PERC.
 •    -run_options options
      Optional argument and value set that specifies command-line options for the run. Multiple
      command-line options must be enclosed in quotes.
Description
 Runs Calibre nmDRC, Calibre nmLVS, Calibre PERC, or Calibre xRC using the specified rule
 file and command-line options. The specified Calibre run is done before the Calibre 3DSTACK
 run.
Examples
      run -drc -directory ./DRC \
         -rule_deck ./n45_m.rules -run_options “-turbo -hier”
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                    run
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
set_version
set_version
 Sets the syntax version of the Calibre 3DSTACK rule file.
Usage
 set_version -version version
Arguments
 •    -version version
      Required argument and value set that specifies the version of the rule file syntax. Currently,
      the only valid value for version is “1.0”.
Description
 Specifies the version of the rule file syntax. This command must appear once in your rule file.
Examples
      set_version -version 1.0
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                             source_filter
source_filter
 Applies filtering options to the imported source netlist file.
Usage
 source_filter -chip chip_name
    {-subckt subckt_name -short_pins ‘{’pins‘}’ } |
    { -short_device ‘{’device_type‘}’ [-short_pins ‘{’pins‘}’] [-constraint “expression”] }
Arguments
 •    -chip_name chip_name
      Required argument and value set that specifies a chip name that can be referenced in other
      commands. If this command is used multiple times, each chip_name must be unique.
 •    -subckt subckt_name
      Required argument and value set if -short_device is not specified. When -subckt is
      specified, all the instantiations of the specified subcircuit are filtered by shorting the nets
      connected to specified pins.
 •    -short_pins ‘{’pins‘}’
      Required when -subckt is specified, optional when -short_device is specified. When
      -short_device is specified, all the instantiations of the specified device matching with the
      constraint (if specified) are filtered by shorting the nets connected to the device pins.
      If a device or subckt does not have specified pins given by the -short_pins argument, then
      filtering is not applied.
 •    -short_device ‘{’ device_type ‘}’
      Required argument and value set if -subckt is not specified. Use this to specify that all
      instantiations in the device_type list that match the constraint (if specified with the -
      constraint expression) are filtered by shorting the nets connected to the device pins.
      Optionally, if -short_pins is specified with -short_device, then the nets connected to the
      specified pins of the device are also shorted.
      Model-based filtering for devices can be achieved by specifying the device name followed
      by the model name enclosed with ‘(’ and ‘)’.
 •    -constraint “expression”
      Optional argument and value set that specifies a constraint expression. A single constraint
      expression can only be applied to one chip and subckt pair, otherwise an error is issued.
      The filtering expression should adhere to the following format:
               -constraint “property_name condition value”
      When -constraint is specified, the properties used in the filtering expression should be
      defined in the source SPICE file, otherwise filtering is not applied.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
source_filter
Description
 Use this command to define filtering options for the source netlist data imported for a
 Calibre 3DSTACK verification run. When the source_filter command is applied, a new SPICE
 file containing the “filtered” data is generated and stored in the 3dstack DFM database
 directory. Calibre 3DSTACK run info data used by Calibre RVE is automatically updated with
 the path of the new SPICE file.
The report file contains a separate section describing the source filtering options.
       Note
    Filtering is applied for all specified subcircuits or devices regardless of the context (chip
    specified by -chip argument). The source_filter command only accepts netlist files
 formatted in SPICE. If a non-SPICE netlist is detected, a warning is issued.
 The source_filter command is not supported if the source_netlist command includes the -hier
 argument specifying a hierarchical source netlist and white box analysis.
Examples
Example 1
 Apply filtering by shorting pins, bottom and top, in the tsv subcircuit on the interposer chip.
Example 2
 Apply filtering by shorting device, R(SH), and pins, p and n, on the interposer chip that meet a
 constraint of resistance, R, equal to zero.
Example 3
 Different constraint expression examples. See the -constraint argument for a description of the
 required format.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                           source_netlist
source_netlist
 Imports a source netlist file used for connectivity comparison. It is highly recommended that
 you use a source netlist during the verification of your assembly.
Usage
 source_netlist -file file_name
    -format {SPICE | MGC | CSV | VERILOG [-version {2001 | 1995}] }
    [-hier [-wrap interposer_name]]
    [-case {NO | YES}]
    [-order {column_list}]
    [-subckt_pins {NET_NAME | PIN_NUMBER | PIN_NAME}]
    [-apply_bboxing cell_list]
Arguments
 •    -file file_name
      Required argument and value set that specifies the name of the source netlist file.
 •    -format {SPICE | MGC | CSV | VERILOG [-version {2001 | 1995}] }
      Required argument and value set that specifies the format of the input file.
      The MGC format contains a list of add_connection directives that describe single
      connections in the 3D assembly:
      add_connection -connection1 {placement1 cell1 net1 pin_instance_name1} \
      -connection2 {placement2 cell2 net2 pin_instance_name2}
      If you specify to read a Verilog netlist, apply the -version argument to specify the version of
      the input netlist. The default version is Verilog 2001.
      The CSV keyword supports comma-separated value input files in AIF, XSI, or spreadsheet
      format. Calibre 3DSTACK also writes a SPICE file with the extension .spi to your working
      directory for debugging purposes. See “AIF Converter Reference” on page 276 and
      “Spreadsheet Converters” on page 283 for details on these files.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file. The
      allowed values are the following: REF_DES, PIN_NUMBER, PIN_X, PIN_Y,
      PIN_NAME, and NET_NAME. This option can only be specified with the CSV keyword.
 •    -subckt_pins {NET_NAME | PIN_NUMBER | PIN_NAME}
      Optional argument set that specifies the type of information specified for the pin column of
      the CSV file. The default is NET_NAME. This option can only be specified with the CSV
      keyword.
 •    -hier
      Optional argument that specifies the source netlist is hierarchical.The source netlist format
      must be SPICE if -hier is specified.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
source_netlist
 •    -wrap interposer_name
      Optional argument that specifies to automatically wrap the specified interposer subcircuit
      with a top-level circuit for use in Calibre 3DSTACK. This option only applies to source
      netlists of format SPICE that use the -hier option. When you specify -wrap,
      Calibre 3DSTACK does the following at runtime:
          a. Creates a new source netlist file in your run directory named
             <source_netlist_file>.wrapped. The new file contains the following:
              •   An include statement for the specified source netlist file.
              •   A top subcircuit definition with the specified -wrap interposer_name.
              •   A placement inside the top subcircuit for the specified interposer and its nets.
          b. Automatically changes placement mapping as follows:
              •   Ignores the interposer placement mapping and issues a warning message.
              •   Adds the interposer placement name to mapped placements.
 •    -case {NO | YES}
      Optional argument and value set that controls whether the source netlist file is handled as
      case-sensitive or not. Note that this option only applies to the source netlist file. The default
      value is NO (the file is handled regardless of case).
 •    -apply_bboxing cell_list
      Optional argument set that automatically enables black boxes for specified cells in the
      source netlist. The tool internally generates LVS Box SVRF statements for specified cells
      for use in LVS checks and the SPICE netlist import.
Description
 Imports connectivity information from the specified file_name.
 If there are connected commands specified in the chip stack rule file, the imported connectivity
 information is checked against the netlist information extracted from the chip stack. If your
 source netlist file is case-sensitive, specify the -case YES option.
 Specify the -hier option if the source netlist is hierarchical. The source_filter command is not
 supported when the -hier argument is used. See the sng command for information on generating
 a hierarchical source netlist.
 You can create a source netlist using the System Netlist Generator. See “System Netlist
 Generator Flow Example” on page 326.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                           source_netlist
Examples
 Consider the chip stack shown in Figure B-2. In this chip stack, two layouts (chip1 and chip2)
 are arranged such that they overlap. Polygons on each layout contain text objects labeled net1
 through net4.
The chip stack rule file for this example is shown as follows:
 Assume that the spice.spi file contains the results of the export_connectivity command with the
 SPICE option specified:
      .SUBCKT TOPCELL_3DIC
      Xc1p 4 3 2 1 TOPCELL
      Xc2p 4 3 2 1 TOPCELL
      .ENDS TOPCELL_3DIC
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
source_netlist
 Since the connectivity information in this file matches the connectivity specified with the
 connect statement, this file does not produce errors. However, suppose that the .SUBCKT
 TOPCELL_3DIC definition is modified as follows:
      .SUBCKT TOPCELL_3DIC
      Xc1p 4 9 2 1 TOPCELL
      Xc2p 4 3 2 1 TOPCELL
      .ENDS TOPCELL_3DIC
 Now, since an incorrect node number has been introduced, the connected command produces
 two results that identify the offending polygons. Figure B-3 shows these results highlighted in
 Calibre DESIGNrev.
 Note that the properties attached to each polygon identify the 3D assembly node number, the
 port name, and the netlist node number.
Related Topics
 System and Miscellaneous Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                           source_netlist
 Assembly Commands
 Rule Check Commands
 System Netlist Generator Flow and Invocation
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
svrf_spec
svrf_spec
 Includes a file containing SVRF statements in the run.
Usage
 svrf_spec svrf_file
Arguments
 •    svrf_file
      Required path to a file containing SVRF specification statements.
Examples
      svrf_spec ./3dprocess.svrf
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                        warning_severity
warning_severity
 Option for the standard syntax.
 Specifies the severity level for warning messages.
Usage
 warning_severity -warning {message_id | *} -severity {0 | 1 | 2} [-count count]
Arguments
 •    -warning {message_id | *}
      Specifies the warning message by the ID. You can also specify * to include all warning
      messages.
 •    -severity {0 | 1 | 2}
      Sets the severity level of the message. The following keywords are supported:
          0 — Disables the warning message. The tool does not print this message.
          1 — Enables the warning message (the default).
          2 — Configures the warning message as an error. The tool immediately exits from arun
            after printing the contents of the message.
 •    -count count
      Sets an upper limit on the number of messages printed when the -severity is set to 1. This
      must be an integer greater than 0.
Examples
      warning_severity -warning 3DSTACK_WARNING_108 -severity 1 -count 20
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
Assembly Commands
Assembly Commands
 Assembly commands allow you to build a physical model of your stacked IC.
 For standard Calibre 3DSTACK syntax rule files, the following arguments enable the
 generation of the assembly cross-section view:
       •   Apply either the -z_origin or-level options in the place_chip and place_layer commands.
           These arguments are mutually exclusive. The -z_origin option specifies the height of the
           die from the bottom of the stack. The -level option indicates the order of the die in the
           stack.
       •   Apply the -thickness option in the layout command. This option defines the thickness of
           the die in microns. If this is not specified, you can use the
           CALIBRE_3DSTACK_DEFAULT_THICKNESS environment variable to set a global
           thickness for all dies. If neither the environment variable nor the -thickness option is
           specified, the thickness of the placement level is calculated based on the minimum width
           and height of the dies in the same level.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                     Assembly Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
anchor
anchor
 Defines an anchor name and location for a chip. This is helpful during the assembly of the stack.
Usage
 anchor -name anchor_name
    -chip chip_name -x_origin x_offset -y_origin y_offset
    -layer layer_name
    -text text
Arguments
 •    -name anchor_name
      Required argument and value set that specifies the name of the anchor.
 •    -chip chip_name
      Required argument and value set that specifies the name of the chip to which to assign the
      anchor. Cannot be specified with -text.
 •    -x_origin x_offset
      Required argument and value set that specifies the offset from the origin along the x-axis.
      The value of x_offset is in microns.
 •    -y_origin y_offset
      Required argument and value set that specifies the offset from the origin along the y-axis.
      The value of y_offset is in microns.
 •    -layer layer_name
      Required argument set that specifies the name of the layer on a chip.
 •    -text text
      Required argument that specifies the text label name in the layer_name layer to identify the
      anchor location. This argument is mutually exclusive with -x_origin and -y_origin. If there
      are multiple layers defined in the rule file with the same name, then you must specify the
      -chip option to identify the layer from which the text is retrieved.
Description
 Assigns an anchor name and location to a chip, which can be used in the place_chip or
 place_layer commands for simplified alignment of a chip stack.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                  anchor
 Assume that you want to place chips C1 and C2 in the configuration shown in the following
 figure:
 where anchor a1 is relative to the origin of chip C1, and anchor a2 is relative to the origin of
 chip C2.
Examples
      anchor -name interposer_mem -chip interposer -x_origin 30.0 \
         -y_origin 14.0
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
attach_text
attach_text
 Attaches text to a placed layer for connectivity extraction and checking.
Usage
 attach_text -placement placed_layer -text_placement placed_text_layer
     [-net_text] [-text_depth depth] [-no_update]
Arguments
 •    -placement placed_layer
      Required argument and value set that specifies the name of a placed layer.
 •    -text_placement placed_text_layer
      Required argument and value set that specifies the name of a text layer. This layer does not
      need to be unique, and can be the same layer specified for placed_layer.
 •    -net_text
      Optional argument that specifies that the text attached to the layer represents net names
      instead of pin names (the text labels of this layer are not interpreted as pins of the die or
      package). This option allows Calibre 3DSTACK to extract layout net names from the text
      labels of whitebox connectivity layers and check them against net names in source netlist.
      To perform checking on net layers, apply the -net_mismatch option of the connected
      command.
 •    -text_depth depth
      Optional argument that specifies the hierarchical depth of the text on the placed_text_layer.
      The depth value is specified as one or more positive integers (multiple values are specified
      using braces {}). Note that you cannot specify more than one attach_text command with
      the same placed_text_layer but different depth values.
 •    -no_update
      Optional argument that specifies the input layers are not included in the extracted layout
      netlist.
Description
 Associates a text layer with a placed layer to be used for connectivity data extraction from the
 3D assembly and for connectivity checking (using the connected command).
<placement_name>_<layer>
 If these values reference a placement defined using place_layer, the placement name is
 specified directly.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                              attach_text
 The -no_update argument should be used when associating text with a source placement layer
 for use with a locations check. This prevents the source layer from being included in the
 extracted layout netlist.
Examples
Example 1
      attach_text -placement m_mtsv -text_placement m_mtxt
      attach_text -placement l_ltsv -text_placement l_ltxt
Example 2
      attach_text -placement m_mtsv -text_placement m_mtxt -text_depth 1
      attach_text -placement l_ltsv -text_placement l_ltxt -text_depth {1 2}
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
connect (Standard Syntax)
 If either the layer1, layer2, or layerC values reference a placement that is defined using
 place_chip, the values must be specified in the following format:
<placement_name>_<layer>
 If these values reference a placement defined using place_layer, the placement name is
 specified directly.
 Refer to the Connect statement in the Standard Verification Rule Format (SVRF) User’s
 Manual for more information and examples on the usage of this command.
        Note
      The connect layer1, layer2, and BY layerC arguments do not accept derived layers.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                 connect (Standard Syntax)
Examples
      connect c1p_m1 c1p_m2 BY c1p_v1
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
derived_connect
derived_connect
 Specifies electrical connectivity for layers that you want to use with connectivity-based SVRF
 operations, such as Net Area Ratio. This is equivalent to the die -wb_connect -use_in_svrf
 extended syntax option.
Usage
Syntax 1:
 derived_connect layer1 [layerN …]
Syntax 2:
 derived_connect layer1 layer2 [layerN …] BY layerC
Arguments
 •    layer1
      A required value that specifies an original polygon layer.
 •    layer2
      A required value that specifies an original polygon layer. This value is required in Syntax 2,
      but is not used in Syntax 1.
 •    BY layerC
      A required value that specifies an original polygon layer, which is the contact layer. This
      value is required in Syntax 2, but is not used in Syntax 1.
Description
 The operation and syntax is the same as connect, but it enables the established connectivity
 layers to be used with connectivity-based SVRF operations in the tvf_block command.
 Refer to the Calibre 3DSTACK “connect (Standard Syntax)” on page 392 and the Connect
 statement in the Standard Verification Rule Format (SVRF) User’s Manual for more
 information and examples on the usage of this command.
Examples
      derived_connect c1p_m1 c1p_m2 BY c1p_v1
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                               ignore_pin
ignore_pin
 Excludes specified pins from a Calibre 3DSTACK run.
Usage
 ignore_pin -placement placement_name -pin ‘{’expression‘}’
Arguments
 •    -placement placement_name
      Required argument and value set that specifies a name for a placed chip.
 •    -pin ‘{’expression‘}’
      Required argument and value set that specifies an expression that matches one or more pin
      names. The expression can be any Tcl regular expression and is not case-sensitive. The
      opening ‘{’ and closing ‘{’ braces are required.
Description
 Excludes the specified pin(s) from a Calibre 3DSTACK analysis. The ignore_pin command
 only applies to layout pins. The source schematic is considered golden and not impacted.
        Note
      To list all successfully ignored pins in the report, include “-report_ignored_pins YES” in the
      report command.
Examples
       # ignore all pin instances of placement p1 that contain the substring
       # "VSS" in their names.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
ignore_trailing_chars
ignore_trailing_chars
 Removes specified characters from the end of text labels.
Usage
 ignore_trailing_chars {character...}
Arguments
 •    character...
      Required list of characters to remove from the end of all text labels.
Description
 Removes up to one character from the end of text labels during connectivity extraction. Trailing
 characters, such as “:”, are sometimes used on text labels to indicate implied connections
 between polygons that are not physically connected.
 In the 3DSTACK assembly, it is possible for placement labels to inherit trailing characters. For
 example, the VSS and CLK nets may also be VSS: and CLK:. These are interpreted as different
 nets, even though they are the same.
 Use this command to ignore trailing characters so that the nets are connected during
 connectivity comparison.
Examples
 The following text label pairs are used in a design:
                  Table B-4. Nets With Trailing Characters In Design
          Net            Standard Text Label             Label With Implied Connectivity
          VDD            VDD                             VDD:
          VSS            VSS                             VSS.
          CLK            CLK                             CLK::
          ADR            ADR                             ADR,
ignore_trailing_chars ":.,"
The following nets are extracted during connectivity analysis as a result of the command:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                     ignore_trailing_chars
 Note, that only the last character (“:”) was removed from the CLK net. Even though that
 character is specified, Calibre 3DSTACK only ignores the last character in the string, so the
 CLK and CLK: text labels are still considered different nets.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
import_net_map
import_net_map
 Imports a text file that contains a list of net mapping statements.
Usage
 import_net_map -file filename
Arguments
 •    -file filename
      Required argument that specifies the path to a file that contains a list of net mapping
      statements.
Description
 The file specified by the -file argument set contains one net mapping statement per line. Each
 line contains two space-separated entries as follows:
      original_net_name new_net_name
      …
 Where the original_net_name argument is an existing net name in the design and the
 new_net_name is the desired name.
        Note
      The same net cannot be renamed to different values.
Examples
 In this example, chip_1 and chip_2 have nets called “global_reset”. These nets are connected to
 a net named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can rename the nets by specifying a file that contains the correct
 mapping:
global_reset reset
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                         import_pin_map
import_pin_map
 Imports a text file that contains a list of pin mapping statements.
Usage
 import_pin_map -file filename
Arguments
 •    -file filename
      Required argument that specifies the path to a file that contains a list of pin mapping
      statements.
Description
 The file specified by the -file argument set contains one pin mapping statement per line. Each
 line contains two space-separated entries as follows:
      original_pin_name new_pin_name
      …
 Where the original_pin_name argument is an existing pin name in the design and the
 new_pin_name is the desired name.
        Note
      The same pin cannot be renamed to different values.
Examples
 In this example, chip_1 and chip_2 have pins called “global_reset”. These pins are connected to
 a pin named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can rename the pins by specifying a file that contains the correct
 mapping:
global_reset reset
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
import_text_labels
import_text_labels
 Imports text objects from a file and applies them to a specified chip.
Usage
 import_text_labels -chip chip_name -file file_name
    [-order column_list] [-xsi {NET_NAME | PIN_NUMBER | PIN_NAME}]
    [-top_level_coords]
Arguments
 •    -chip chip_name
      Required argument and value set that specifies the chip name being referenced (chip names
      are defined using the layout command).
 •    -file file_name
      Required argument and value set that specifies the path to a file. This file must contain only
      Layout Text statements (one per line). Each Layout Text statement is specified in the
      following form:
               LAYOUT TEXT text_name x y layer text_type cell_name
      where:
         o     text_name — required name of a text object.
         o     x y — required pair of floating-point coordinates in user units specifying the location
               of the text label. These coordinates are in the cell context of cell_name.
         o     layer — required original layer number specifying the text layer.
         o     text_type — required non-negative integer that indicates a text object’s text type.
         o     cell_name — required name of a cell in which the text object is placed.
      For example:
               LAYOUT   TEXT    BACKUP_1 -0.27 0.28 10215 1 MTR_TOP2_ip_flip
               LAYOUT   TEXT    BACKUP_1_GROUP -0.27 0.28 10131 0 MTR_TOP2_ip_flip
               LAYOUT   TEXT    tx1_n -0.85 1.26 10215 1 MTR_TOP2_ip_flip
               LAYOUT   TEXT    tx1_n_GROUP -0.85 1.26 10131 0 MTR_TOP2_ip_flip
                 Note
               You can also specify an XSI netlist as the file_name argument, which does not
               follow this format.
 •    -order column_list
      Optional argument set that specifies the order of the columns in the spreadsheet file, if the
      file_name is an XSI netlist. The allowed values are the following: REF_DES,
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                       import_text_labels
Examples
      import_text_labels -chip stack_die -file lvsText_dieWrapper.txt
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
layer
layer
 Defines an original or derived layer in the assembly.
Usage
 layer -layer layer_name -chip chip_name
     { {-layer_number layer_number['.'data_type]} … | -svrf ‘{’ layer_derivation‘}’ [-show]}
     [-level level_number] [-top | -bottom] [-top_only] [-texttype]
Arguments
 •    -layer layer_name
      Required argument and value set that specifies the name of the layer.
 •    -chip chip_name
      Required argument and value set that specifies the chip name being referenced (chip names
      are defined using the layout command).
 •    -layer_number layer_number['.'data_type]
      Required argument and value set that specifies the layer number and (optionally) the
      datatype. Optional additional -layer_number arguments are allowed for geometric and text
      data. This option must not be specified with the -svrf argument.
 •    -svrf ‘{’ layer_derivation ‘}’
      Required argument and value set that specifies a layer derivation using SVRF commands.
      The layer derivation must be enclosed in braces. This option must not be specified with the
      -layer_number argument.
      The layer_derivation body is similar to that of a rule check statement. It must have at least
      one standalone layer operation, which is the output layer. If two output layers are specified,
      they are merged. Local layer definitions may be used in the layer derivation.
      See the “Description” section for additional information.
 •    -show
      Optional argument that writes derived layers to the generated assembly view of your stack.
      If this option is not specified, no derived layers are included in the assembly layout view.
      This option must be specified with the -svrf argument set.
 •    -level level_number
      Optional argument and value set that specifies the level of the layer in the 3D stack. Positive
      and negative integer values are allowed. Use this argument to assist in drawing the system
      nets and 3D views of the 3D assembly. Layer level numbers are reported in the 3DSTACK
      rule file.
 •    -top
      Optional argument that indicates that the layer is physically placed on the top side of the die.
      This argument is used to determine the die bump layer placement in the cross-section view.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                   layer
 •    -bottom
      Optional argument that indicates that the layer is physically placed on the bottom side of the
      die. This argument is used to determine the die bump layer placement in the cross-section
      view.
 •    -top_only
      Optional keyword that specifies to only use the top-level geometry that belongs to the
      specified layer. When this option is specified, geometry that belongs to all cells other than
      the top cell on this layer is ignored. The -top_only option of the layout command takes
      precedence over this command option.
                 Note
               When multiple -layer_number arguments are specified in the argument list, the
               layers are merged (ORed) together at the design compilation stage.
 •    -texttype
      Optionally defines the derived layer as a TEXTYPE layer.
Description
 Defines the name of an original or derived layer. Definitions for empty layers are allowed. A
 warning is given for empty layers.
 If you create derived layers with the -svrf argument, Calibre 3DSTACK generates a layout file
 that includes the derived layers. The layout file is used in assembly generation and further
 processing. The generated layout file is named chip_name.gds or chip_name.oas and is saved
 in the working directory with a unique suffix. The generated layout file uses the default
 precision of 1000. The transcript includes the statement “Creating new layout file for
 chip_name”.
Examples
Example 1
      layer -layer base_bottom_interface_shapes -chip base -layer_number 52
Example 2
 This example demonstrates layer usage with multiple layer_number arguments.
Example 3
 This example uses the -svrf argument to supply a layer derivation.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
layer
 Local layer definitions may be used in the layer derivation. For example, the last layer
 derivation in the previous example can be written this way:
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                  layout
layout
 Imports a GDS or OASIS database that contains a chip used in the assembly.
         Note
      If physical precisions differ between layouts, the generated assembly file uses the least
      common denominator of the precisions of the input layouts.
 For example, if two input layouts have precisions of 1/2000 and 1/3000, the output file is
 generated with a precision of 1/6000.
Usage
 layout -chip_name chip_name -primary top_cell_name -path layout_path
    -system {GDS | OASIS} [-original_extent] [-top_only] [-exclude cells] [-interposer]
    [-thickness value] [-netlist spice_file]
Arguments
 •    -chip_name chip_name
      Required argument and value set that specifies a chip name that can be referenced in other
      commands. If this command is used multiple times, each chip_name must be unique.
 •    -primary top_cell_name
      Required argument and value set that specifies the name of the top cell in the design.
 •    -path layout_path
      Required argument and value set that specifies the path to the layout file. The layout_path
      can be relative or absolute. Calibre 3DSTACK treats any input file with the extension .gz or
      .Z as a compressed file. The gunzip application must be available in your environment.
 •    -system {GDS | OASIS}
      Required argument and value set that specifies the format of the layout file.
 •    -original_extent
      Optional argument that generates a new layer that represents the total extent of the original
      die. This is used for die spacing checks. The extent is based off of all the original layers in
      the specified layout file. The die extent is written to a new placement_name_EXTENT layer
      in the 3dstack_assembly.gds.gz file. When geometrical checks are specified for placements
      of a chip with -original_extent, the new layer is considered.
 •    -top_only
      Optional keyword that specifies to only import the top-level geometry of the die. When this
      option is specified, geometry that belongs to all cells other than the top cell is ignored. This
      option takes precedence over the -top_only option of the layer command.
 •    -exclude cells
      Optional argument and list of cells to exclude from the layout.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
layout
 •    -interposer
      Optional argument that specifies that the layout is an interposer. This is used for 2.5D ICs
      when you want to generate a hierarchical netlist using the export_connectivity command
      with the -hier option. You can apply this option more than once. If you specify more than
      one interposer, Calibre 3DSTACK ignores the export_connectivity -hier option and
      generates a flat assembly netlist.
 •    -thickness value
      Optional argument set that defines the thickness of the die in microns. Calibre 3DSTACK
      uses the thickness values to generate a cross-sectional assembly view of the stack. See
      “Assembly Views” on page 34 for details.
      If this option is not specified, you can use the
      CALIBRE_3DSTACK_DEFAULT_THICKNESS environment variable to set a global
      thickness for all dies. If neither the environment variable nor the -thickness option is
      specified, the thickness of the placement level is calculated based on the minimum width
      and height of the dies in the same level.
 •    -netlist spice_file
      Optional keyword and path to a SPICE netlist that contains the subcircuit definition for the
      specified layout. If you specify this option, Calibre 3DSTACK automatically calls the
      System Netlister tool to build a complete netlist during a verification run. If the
      top_cell_name and the subcircuit cell name are different, the layout and netlist cell
      correspondence is determined by the map_placement command.
Examples
Example
 Import three chips into the assembly.
Example
 Import the controller.gds layout into the assembly, but do not include the PLL and cap_array
 cells.
Example
 Declare a chip as an interposer and export a hierarchical SPICE netlist of the assembly.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                  layout
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
layout_case
layout_case
 Defines the case-sensitivity of the top-level assembly layout.
Usage
 layout_case {no | yes}
Arguments
 •    no | yes
      Optional value that controls the case-sensitivity handling of the assembly layout. If you
      specify yes, the layout net and pin names are handled in case-sensitive manner. The default
      is no.
Examples
      layout_case yes
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                          layout_primary
layout_primary
 Defines the name of the top-level cell for the 3D assembly.
Usage
 layout_primary name
Arguments
 •    name
      Required value that specifies the name of the top-level cell for the 3D assembly. The default
      name is “TOPCELL_3DI” if this command does not appear in the chip stack rule file.
Examples
      layout_primary TOPCELL_3DSTACK
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
map_placement
map_placement
 Associates layout placements in the assembly to placements specified in the source netlist file.
Usage
 map_placement -placement layout_placement_name -source source_placement_name
Arguments
 •    -placement layout_placement_name
      Required parameter and value set that specifies the layout placement of a cell.
 •    -source source_placement_name
      Required parameter and value set that specifies the source placement of a cell. Hierarchical
      names are supported if the source netlist is hierarchical; use the forward slash (/) as the
      hierarchy separator. For example:
         o    A source netlist has a top cell named 3DSTACK_TOP that contains one placement,
              named INTERPOSER, of the sub-circuit INTERPOSER_CHIP.
         o    The INTERPOSER_CHIP has two placements, named DIE1 and DIE2.
      In order to map to DIE1, you specify the hierarchical source_placement_name as
      INTERPOSER/DIE1.
Description
 This command maps the layout placement to the source netlist placement imported with the
 source_netlist command. The mapping information is used during connectivity checking (LVS)
 if the names used in your rule file and source netlist are different.
 This command is necessary when the source names in your netlist file cannot be changed, but
 must match the placement names in the assembly operations given by your Calibre 3DSTACK
 rule file. It also is necessary to use map_placement when forcing certain names to the
 assembly’s cells.
 Cell mapping from layout to source is implicit. That is, if a placement from the layout is mapped
 to the placement from the source, then the layout placement cell (the chip) is implicitly mapped
 to the source placement cell.
        Note
      The map_placement command is order dependent. It must be specified after the place_chip
      command in the 3DSTACK rule file.
Examples
 This example shows the commands for mapping the layouts shown in Figure B-5. In this
 example, blocks Memory_1 and Memory_2 are the same layout. Blocks Logic_1 and Logic_2
 are also the same layout. In the source schematic, the memory block is named memory_block_1
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                         map_placement
 and memory_block_2. In order to associate the layout placements named Memory_1 and
 Memory_2 with the source netlist names for LVS, the map_placement command is used. The
 same associations are made with the logic blocks.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
net_map
net_map
 Specifies nets that can use a different name during connectivity checking. This command is
 useful for waiving known connectivity errors by adjusting net names at runtime.
Usage
 net_map -nets list_of_nets -to net_name
Arguments
 •    -nets list_of_nets
      Required list of nets to rename.
 •    -to net_name
      Required name for the list of specified nets. All nets in the list_of_nets argument are
      renamed to the specified value.
Description
 The net mapping operation only occurs in memory during connectivity checking. Net mapping
 is written to the Calibre 3DSTACK report file.
 However, you cannot apply the net_map statement multiple times to the same net
 (one-to-many). For example, the following is not allowed:
Examples
 In this example, chip_1 and chip_2 have nets called “global_reset”. These nets are connected to
 a net named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
 errors. In this case, you can map the nets during connectivity checking by specifying the
 following command:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                pin_map
pin_map
 Specifies pins that can use a different name during connectivity checking. This command is
 useful for waiving known connectivity errors by adjusting pin names at runtime. This operation
 does not rename pins in the layout.
         Note
      If you want to change text labels in the design, see “rename_text” on page 422.
Usage
 pin_map -pins list_of_pins -to pin_name
Arguments
 •    -pins list_of_pins
      Required list of pins to rename.
 •    -to pin_name
      Required name for the list of specified pins. All pins in the list_of_pins argument are
      renamed to the specified value.
Description
 This command behaves similar to rename_text, except that the pin names in the layout and
 source are not physically altered. The pin mapping operation only occurs in memory during
 connectivity checking.
         Note
      If the specified pin name does not exist in the layout, then the mapping operation is ignored.
 However, you cannot apply the pin_map statement multiple times to the same pin
 (one-to-many). For example, the following is not allowed:
Examples
 In this example, chip_1 and chip_2 have pins called “global_reset”. These pins are connected to
 a pin named “reset” on chip_3. This is logically correct, but this could result in misleading LVS
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
pin_map
 errors. In this case, you can map the pins during connectivity checking by specifying the
 following command:
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                pin_swap
pin_swap
 Specifies that certain pins on a chip are interchangeable during connectivity checking.
Usage
 pin_swap -chip chip_name -pins list_of_pins
Arguments
 •    -chip chip_name
      Required name of a chip used in your assembly. The pin swapping operation applies to all
      placements of the specified chip.
 •    -pins list_of_pins
      Required list of pins to mark as interchangeable.
Description
 Use this command to mark certain pins on a chip as swappable (logically equivalent) during
 connectivity checking. Multiple pin_swap statements are allowed for the same chip, but the
 same pin cannot be specified in more than one pin_swap statement.
Examples
 Set the power pins on the ram chip as equivalent:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
place_chip
place_chip
 Defines the placement name, orientation, and scaling factor for a chip.
Usage
 place_chip -placement placement_name -chip chip_name
    {{-x_origin x_offset -y_origin y_offset} | {-anchor_placement anchor_placement_name
    -anchor_from from_name -anchor_to to_name}}
    [-rotate angle] [-magnify factor]
    [-flip {x | y}] [-level value | -z_origin value]
Arguments
 •    -placement placement_name
      Required argument and value set that specifies a unique placement name that can be
      referenced with other commands in the following format:
              <placement_name>_<layer>
 •    -chip chip_name
      Required argument and value set that specifies the chip name being referenced (chip names
      are defined using the layout command).
 •    -x_origin x_offset
      Argument and value set that specifies the offset from the origin along the x-axis. The value
      of x_offset is in microns.
 •    -y_origin y_offset
      Argument and value set that specifies the offset from the origin along the y-axis. The value
      of y_offset is in microns.
 •    -anchor_placement anchor_placement_name -anchor_from from_name -anchor_to
      to_name
      Argument and value set that aligns the locations of from_name and to_name (relative to the
      origins of their respective chip names) at the location of the specified
      anchor_placement_name. Mutually exclusive with x_origin and y_origin. See the
      description section under the anchor command for an example.
 •    -rotate angle
      Optional argument and value set that specifies a rotation angle in degrees, which must be
      either 0 or a multiple of 90 (positive or negative). The layer is rotated about the origin (after
      x_offset and y_offset values are applied) by the specified angle. Positive angle values yield
      a counter-clockwise rotation; negative angle values yield a clockwise rotation.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                               place_chip
 •    -magnify factor
      Optional argument and value set that specifies a magnification factor by which to expand or
      shrink the chip. Coordinate data on each layer is multiplied by the specified factor. The
      factor must be a positive number.
 •    -flip {x | y}
      Optional argument that flips the chip across the x-axis or y-axis.
 •    -level value
      Optional argument set that specifies the vertical level or tier number to which the placement
      belongs, where the value is an integer greater than 0. This option enables the generation of a
      cross-section assembly view and is mutually exclusive with -z_origin. See “Assembly
      Views” on page 34 for details.
      If there is more than one placement on the same level, then the thickness of the level is the
      maximum of all placements. For example, if you have an interposer with a stack of two ram
      dies on top and a single controller die also on top of the interposer, the following commands
      correctly specify the level value:
               place_chip -placement int_place -chip interposer -level 1
 •    -z_origin value
      Optional argument set that specifies the height of the die from the bottom of the stack,
      where the value is a distance in microns. This option enables the generation of a cross-
      section assembly view and is mutually exclusive with -z_origin. See “Assembly Views” on
      page 34 for details.
Description
 Defines the placement name, orientation, and scaling factor for a chip.
<placement_name>_<layer>
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
place_chip
Examples
      place_chip -placement place_base_bottom_interface_shapes -flip x \
         -chip chip1 -x_origin 0 -y_origin 0
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                              place_layer
place_layer
 Defines the placement name, orientation, and scaling factor for a layer.
Usage
 place_layer -placement placement_name
    {-layer layer_name {{-x_origin x_offset -y_origin y_offset}
      | {-anchor_placement anchor_placement_name -anchor_from from_name
         -anchor_to to_name}} | -svrf ‘{’svrf_operations‘}’ [-show] }
    [-rotate angle] [-magnify factor] [-flip {x | y}] [-level value | -z_origin value]
Arguments
 •    -placement placement_name
      Required argument and value set that specifies a unique placement name that can be
      referenced with other commands.
 •    -layer layer_name
      Argument and value set that specifies the name of a layer. You must specify this argument
      or -svrf.
 •    -svrf ‘{’svrf_operations‘}’
      Argument and value set that specifies a set of SVRF operations to derive an output layer.
      You must specify this argument or -layer. The operations define an output layer or a merge
      of output layers. Any placement layers defined by either place_chip or place_layer that use
      the -layer option can be used in the SVRF operations.
      The -svrf operation adds a new layout to your design that uses the name specified in the
      -placement option. The -svrf operation also adds a new layer to the design with the name
      placement-name_placement-name. For example, if the placement name is “derived1” then
      the generated layer name is “derived1_derived1”. Finally, a layer placement of the new
      derived layer is placed at the origin (0,0).
      See the “Examples” section for more details.
 •    -show
      Optional argument that writes derived layers to the generated assembly view of your stack.
      If this option is not specified, no derived layers are included in the assembly layout view.
      This option must be specified with the -svrf argument set.
 •    -x_origin x_offset
      Required argument and value set that specifies the offset from the origin along the x-axis.
      The value of x_offset is in microns. This argument set only applies to -layer.
 •    -y_origin y_offset
      Required argument and value set that specifies the offset from the origin along the y-axis.
      The value of y_offset is in microns.This argument set only applies to -layer.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
place_layer
<placement_name>_<layer>
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                              place_layer
Examples
Example
 Use the -layer argument to place the bottom interface layer at the origin and flip it over the x-
 axis.
Example
 Use the -svrf argument to derive a new layer by merging two existing layers and place it at the
 origin. The internal command uses the derived layer in a spacing rule check.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
rename_text
rename_text
 Edits existing layout text in the assembly.
Usage
 rename_text {-chip chip_name | -placement placed_layer} -rename “expression”
Arguments
 •    -chip chip_name
      Required argument and value set that specifies a chip name.
 •    -placement placed_layer
      Required argument and value set that specifies a placed layer.
 •    -rename “expression”
      Required argument and value set that specifies a GNU regular expression that defines a
      pattern to be matched and replaced.
Description
 Enables editing of layout port names. The format of the expression follows the syntax of Layout
 Rename Text described in the Standard Verification Rule Format (SVRF) Manual. Table B-5
 contains a list of regular expression examples.
                          Table B-5. Regular Expression Examples
  Regular Expression          Input                        Output                       Notes
  /A/B/                       AAA                          BAA                          Replaces the first
                                                                                        instance of A
  /A/B/2                      AAA                          ABA                          Replaces the second
                                                                                        instance of A
  /A/B/g                      AAA                          BBB                          Global replacement.
  /A.*B/R/                    ABAABBC                      RC                           Longest left-most
                                                                                        string is replaced.
  /^VDD.*/VCC/                VDD:1                        VCC                          ^ searches from
                                                                                        beginning of text.
 If the placed_layer value references a placement that is defined using place_chip, the value
 must be specified in the following format:
<chip_placement_name>_<layer>
 If the value references a placement defined using place_layer, the placement name is specified
 directly.
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                             rename_text
Examples
      rename_text -chip chip1 -rename "/^VDD$/PWR/"
 In this example, the first instance of the string “^VDD$” in each name in chip1 is renamed to
 “PWR”.
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
trace_text
trace_text
 Traces connectivity text from an originating layer to a destination layer.
Usage
 trace_text -from tracer_placement_name -to pad_placement_name
Arguments
 •    -from tracer_placement_name
      Required parameter and value set that specifies the originating text layer for tracing.
 •    -to pad_placement_name
      Required parameter and value set that specifies the destination text layer for tracing.
Description
 Traces connectivity text from an originating layer to a destination layer. The traced text may be
 on the same chip or on different chips that are physically connected. The text is used in the
 assembly verification process.
 Establish connectivity between layers with the connect (Standard Syntax) statement before
 using trace_text. Also, follow these constraints:
TRACE TEXT:
          FROM:             TO:
          ------------------------------------
          die1_M7           die1_RDL1
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                trace_text
 LVS verification in Calibre 3DSTACK requires text labeling on the layers. Figure B-6 shows an
 example of connectivity between two dies, each using a redistribution layer (RDL). Die 1 has a
 top-most metal routing RDL called RDL1. Die 2 has a back-side metal layer used as an RDL,
 called BM_RDL. This layer connects to the Die 2 M1 layer with a through silicon via (TSV).
 The I/O pads attach to the RDLs.
 For this example, to trace text labels in the same die, use the trace_text command to trace the
 text from layer M7 to RDL1 and then to PAD_TEXT1. To trace text labels between dies, from
 Die 1 to Die 2, use the trace_text command to trace text from layer M7, to RDL1, to
 PAD_TEXT1, and finally to NEW_TEXT1 on Die 2.
Examples
 For this example, refer to Figure B-6. For text tracing inside Die 1, the following rule statements
 are used:
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
Standard Rule Syntax
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                     Standard Rule Syntax
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
Standard Rule Syntax
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                     Standard Rule Syntax
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
Standard Rule Syntax
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                     Standard Rule Syntax
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
Standard Rule Syntax
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                     Standard Rule Syntax
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
set_auto_rve_show_layers
set_auto_rve_show_layers
 Specifies for all rule checks (except tvf_block) whether Calibre RVE layer highlights show only
 layers used to derive the rule check.
Usage
 set_auto_rve_show_layers {NO | YES }
Arguments
 •    NO
      Specifies not to apply -set_rve_show_layers AUTO to any checks that do not have an
      existing Calibre RVE layer specification. This is the default.
 •    YES
      Applies -set_rve_show_layers AUTO to all rule checks (except tvf_block) that do not have
      an existing Calibre RVE layer specification.
Description
 Use this optional rule file command to control the “-set_rve_show_layers {layer_list | AUTO}”
 option for all rule checks (except tvf_block). When this command is specified with YES in the
 Calibre 3DSTACK rule file, then -set_rve_show_layers AUTO is applied to all rule checks that
 do not already specify the -set_rve_show_layers option. The AUTO keyword instructs Calibre
 RVE to only show the input layers that were used to derive the rule checks.
       Note
    In order to use this functionality, you must enable the Calibre RVE option “Only show
    check-dependent layers while highlighting results (hides other layers)” on the
 Setup > Options > Highlighting pane in the DRC/DFM Highlighting area. See “RVE Show
 Layers” in the Calibre RVE User’s Manual for complete details.
Examples
      set_auto_rve_show_layers YES
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                         set_rve_cto_file
set_rve_cto_file
 Specifies the path to a check text override file that controls how results are highlighted in
 Calibre RVE.
Usage
 set_rve_cto_file -file cto_file
Arguments
 •    -file cto_file
      Required argument and value that specifies the path to a check text override file.
Description
 Use this optional rule file command to specify the path to a check text override (CTO) file. The
 cto_file contains DRC RVE check text comments that control how results are highlighted in
 Calibre RVE. Only one CTO file is allowed.
        Note
      The -set_rve_* arguments in your Calibre 3DSTACK rule file take precedence over Calibre
      RVE options in your CTO file specified for the same rules.
The following CTO file specifies two check text comments for a rule named pads_on_grid:
      # DRC RVE check text override file for a Calibre 3DSTACK rule file
      #
      pads_on_grid
      RVE Highlight color: red
      RVE Show Layers: backside_rdl
 For complete information on the CTO file and how to load it, see “DRC RVE Check Text
 Override File (CTO File)” in the Calibre RVE User’s Manual.
         Caution
     Calibre RVE searches your working directory and loads a CTO file named 3dstack.rdb.cto
     if it exists. Do not use set_rve_cto_file to specify this file if it exists in your working
 directory as it is automatically loaded. You may use 3dstack.rdb.cto as the CTO filename if it
 exists outside of your working directory.
Examples
      set_rve_cto_file -file ./custom_rve_settings.cto
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
set_rve_cto_file
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                               Standard Calibre 3DSTACK Syntax Commands
                                                                                                tvf_block
tvf_block
 Used only in the standard Calibre 3DSTACK syntax. See the custom_check command for the
    Extended 3DSTACK+ syntax.
 Defines custom checks for the Calibre 3DSTACK rule file.
Usage
Standard Calibre 3DSTACK Syntax
 tvf_block name ‘{’ body ‘}’ [-export_layers placement_list] [-attach_to_placement placement]
Arguments
 •    name
      Required argument that specifies the name of the TVF block.
 •    ‘{’ body ‘}’
      Required body of TVF code that defines statements for the creation of derived layers.
      Enclosing the TVF code in braces, { }, is required.
 •    -export_layers placement_list
      Optional argument and value set that defines the list of resulting placements that can be used
      in rule checks.
 •    -attach_to_placement placement
      Optional argument and value set that specifies the placement to which the resulting
      placements should be attached. If this option is specified and the derived layer is used in
      geometrical rule checks, then any resulting errors that are applied on this derived layer are
      reported for the specified placement.
Description
 Use this command to define custom checks in the Calibre 3DSTACK rule file. The tvf_block
 command provides the capability to define derived layers with the TVF language. The layers
 can then be used for centers, density, enclosure, external, internal, offgrid_centers, and overlap
 checks. Placements generated from the tvf_block command cannot be used as text placements
 in the attach_text command.
 The tvf_block statements appear in the middle of two encrypted sections of the SVRF file and
 are preceded with comments that include the originating line number of the statement in your
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Standard Calibre 3DSTACK Syntax Commands
tvf_block
 rule file. This allows you to correlate the runtime syntax error to statements in your rules. The
 following is an example excerpt from the 3dstack_deck.svrf.enc file:
      '_+^+>/Z6\\^C=A!=KZW%!!!"K_W$)SZE79#S^=Y<%P\!RQ!!"
      #ENDCRYPT
      #DECRYPT %;5~GPPB_R"BV8-))B?:CAD5^1QP.BHCG?-B>H\K$0B_CZ-
      !#0NK0EAD%I$#$DHNLV4FF]A!!"
Examples
      tvf_block creating_logic_to_memory_connects { \
              tvf::SETLAYER l_logic_ltsv_to_memory = l_ltsv NOT i_out_M1_tsv; \
          } -export_layers [list l_logic_ltsv_to_memory] -attach_to_placement l
Related Topics
 System and Miscellaneous Commands
 Assembly Commands
 Rule Check Commands
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                             Appendix C
                                             Error and Warning Messages
 Error and warning messages are generated by the Calibre 3DSTACK tool at run time.
 If you receive a general error, such as a command not found, but the command is documented,
 check to make sure the file is formatted for Unix. You can run dos2unix to convert a file from
 Windows format to Unix.
 This message originates from the rule file parser and can be caused by items such as the
 following:
      •    A hyphen “-” instead of an underscore “_” in layer names or types. In the following
           example, “die-bump” produces an error because hyphens are not allowed in SVRF layer
           names. The “bump_type” type is correct because underscores are permitted.
                die -name mem1 \
                   -layer_info {
                      -name die-bump
                      -type bump_type
                      …
                      } \
                   …
       Tip
     You can optionally create additional information about Tcl errors generated from your
     Calibre 3DSTACK rule files by setting the
 CALIBRE_ENABLE_3DSTACKPLUS_DECK_DUMP environment variable to a non-null
 value. This option will export a file named <rule_file>_exported.3dstack+ that contains
 enables you to debug the source of Tcl errors in your rules.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Error Messages
Error Messages
 Error messages must be corrected to continue a Calibre 3DSTACK run.
 Error messages take the following form:
3DSTACK_ERROR_number: error_message
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                               Error Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Error Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                               Error Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Error Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                               Error Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Error Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                               Error Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Error Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                             Warning Messages
Warning Messages
 Warning messages should be reviewed to determine if they indicate a real problem in your
 design. Calibre 3DSTACK writes all warning messages issued during a run to your working
 directory in a file named 3dstack.warnings.
 Warning messages take the following form:
3DSTACK_WARNING_number: warning_message
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Warning Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                             Warning Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Warning Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                             Warning Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Warning Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                    Error and Warning Messages
                                                                                             Warning Messages
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Error and Warning Messages
Warning Messages
  Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                                                                                  Index
For third-party information, refer to Third-Party Software for Calibre Products document. Additional open source
and third-party software information may be found in <your_Mentor_Graphics_documentation_directory>/legal.
   Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
Note - Viewing PDF files within a web browser causes some links not to function. Use HTML for full navigation.
                    End-User License Agreement
               with EDA Software Supplemental Terms
Use of software (including any updates) and/or hardware is subject to the End-User License Agreement together with the
Mentor Graphics EDA Software Supplement Terms. You can view and print a copy of this agreement at:
mentor.com/eula