Laker³ Tcl Reference Manual Version K-2015.06, June 2015 Copyright and Proprietary Information Notice © 2015 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by the license agreement. Destination Control Statement All technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to determine the applicable regulations and to comply with them. Disclaimer SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Trademarks Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at http://www.synopsys.com/Company/Pages/Trademarks.aspx. All other product or company names may be trademarks of their respective owners. Synopsys, Inc. 690 E. Middlefield Road Mountain View, CA 94043 www.synopsys.com ii Laker³ Tcl Reference Manual K-2015.06 Contents 1. Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Getting Started with Tcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Running Tcl Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Tcl Commands and Command Substitution. . . . . . . . . . . . . . . . . . . . . . . 2 Tcl Variables and Variable Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Tcl Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Basic Flow Control (if, while, for, foreach) . . . . . . . . . . . . . . . . . . . . . . . . if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . foreach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 5 5 Data Structures: Lists and Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Built-in Commands and Math Functions in Tcl. . . . . . . . . . . . . . . . . . . . . 7 Loading a Tcl Script File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Laker and Tcl/Tk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Tk Command Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Invoking Laker from Another Tk Application. . . . . . . . . . . . . . . . . . . Invoking Commands from Another Tk Application . . . . . . . . . . . . . . Sending Command to Laker. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getting System-assigned Tk Name . . . . . . . . . . . . . . . . . . . . . . . . . Adding Event Callbacks to the Tk Application . . . . . . . . . . . . . . . . . Replaying Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tk Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 13 13 13 15 15 16 18 18 Socket Command Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Environment Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Up Laker as a Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Up a Client Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tcl Commands for Socket Port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 19 20 20 21 iii Contents 2. 3. 4. iv Integration Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Application Programming Interface (API) References . . . . . . . . . . . . . . . . . . . 25 General Tcl Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 New Data Types and Shortcut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Bounding Box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Point List. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Basic User-definable Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 GUI Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Bottom-Up Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Global Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Form and Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Pre-processing Tcl Callback Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Database Extensions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Database Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Database Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Object Access Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Library Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Cell View Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Tcl PCells. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Shape Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 Shape Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Instances and Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Figure Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 Accessory Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Contents Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Logic Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 General Object Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 Parameterized Test Structure Devices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Schematic Object Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 DFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Technology File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Home Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 File Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Library Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Category Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 Cell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 Floorplan Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 Options Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Symbol Callback Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 Netlist Procedure Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 6. Library Mapping Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 7. Layout Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 Cell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 Create Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 Edit Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 SDL Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730 MCell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748 Options Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798 Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826 5. v Contents vi EIP Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880 Verification Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 886 Placer Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920 Router Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950 Window Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1013 Schematic Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018 UDD Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023 DFM Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 Selection Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1040 Highlight Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055 User Entry Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1069 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074 8. Custom Digital Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119 9. Automatic Place and Route (APR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195 10. Design Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1337 11. Matching Device Creator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1381 12. Stick Diagram Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1461 13. Schematic Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491 Cell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1491 View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1504 Create Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1513 Edit Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1535 Options Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1548 Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1550 Check Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1560 Contents Tools Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1574 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587 14. Symbol Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601 Cell Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1601 View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1605 Create Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1610 Edit Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1623 Query Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1634 Options Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1641 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644 15. Hierarchy Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 A. Symbol Callback Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657 Attaching Tcl Procedures to Symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657 Attaching Tcl File to Symbol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657 Attaching Tcl Procedure to Symbol’s Parameter . . . . . . . . . . . . . . . . . . . 1658 Callback Working Scheme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659 Callback Procedure Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1661 vii Contents viii About This Manual The Laker3 Tcl Reference Manual covers general Tcl commands for Tk and Cbased applications, and the definable Tcl commands to access the database and the Graphical User Interface (GUI) which applied within the Laker3. Audience The audience for this manual includes physical layout and circuit designers and CAD support groups with general proficiency in Tcl. These audiences use Laker Tcl commands for both layout design optimizing and design environment customizing. Related Publications For additional information about this product, see ■ Documentation installed with the software and available through the Help menu in any window ■ Release Notes, available on SolvNet (see Accessing SolvNet on page xi) ■ Documentation on the Web, which provides PDF documents and is available on SolvNet (see Accessing SolvNet on page xi) Conventions The following conventions are used in Synopsys documentation. Convention Description Courier Indicates command syntax. Laker³ Tcl Reference Manual K-2015.06 ix Customer Support Convention Description Italic Indicates a user-defined value, such as object_name. Purple ■ ■ Within an example, indicates information of special interest. Within a command-syntax section, indicates a default value, such as: include_enclosing = true | false Bold ■ ■ [] Within syntax and examples, indicates user input—text you type verbatim. Indicates a graphical user interface (GUI) element that has an action associated with it. Denotes optional parameters, such as: write_file [-f filename] ... Indicates that parameters can be repeated as many times as necessary: pin1 pin2 ... pinN | Indicates a choice among alternatives, such as low | medium | high \ Indicates a continuation of a command line. / Indicates levels of directory structure. Edit > Copy Indicates a path to a menu command, such as opening the Edit menu and choosing Copy. Ctrl+C Indicates a keyboard combination, such as holding down the Ctrl key and pressing the C key. Customer Support Customer support is available through the Synopsys SolvNet customer support website and by contacting the Synopsys support center. x Laker³ Tcl Reference Manual K-2015.06 Customer Support Accessing SolvNet The SolvNet support site includes an electronic knowledge base of technical articles and answers to frequently asked questions about Synopsys tools. The site also gives you access to a wide range of Synopsys online services, which include downloading software, viewing documentation, and entering a call to the Support Center. To access the SolvNet site: 1. Go to the web page at https://solvnet.synopsys.com. 2. If prompted, enter your user name and password. (If you do not have a Synopsys user name and password, follow the instructions to register.) If you need help using the site, click Help on the menu bar. Contacting Synopsys Support If you have problems, questions, or suggestions, you can contact Synopsys support in the following ways: ■ Go to the Synopsys Global Support site on synopsys.com. There you can find e-mail addresses and telephone numbers for Synopsys support centers throughout the world. ■ Go to either the Synopsys SolvNet site or the Synopsys Global Support site and open a case online (Synopsys user name and password required). Laker³ Tcl Reference Manual K-2015.06 xi Customer Support xii Laker³ Tcl Reference Manual K-2015.06 1 Introduction 1 This chapter introduces the essential elements of Tcl and explains how to invoke and replay the commands. Tcl stands for Tool Command Language. It is a simple, embeddable scripting language for controlling and extending applications. Like other scripting languages, Tcl provides programmability that allows you to build up compound scripts to complete a task. Laker’s Tcl programming functions with 6-digit floating number. For example, a floating number 0.0000015 is rounded off to 0.000002 during value evaluation. You can have a test in the message frame of the Home Page by typing the following example: set set puts puts a 0.0000015 => 0.0000015 b [expr 1.0*$a] =>1.5e-06 [format "%10.8f" $b] =>0.00000150 [format "%10.6f" $b] => 0.000002 This chapter contains the following sections: ■ Getting Started with Tcl ■ Laker and Tcl/Tk ■ Application Programming Interface (API) References Laker³ Tcl Reference Manual K-2015.06 1 Chapter 1: Introduction Getting Started with Tcl Getting Started with Tcl This section briefly introduces the essential elements of Tcl programs with the following sections: ■ Running Tcl Programs ■ Tcl Commands and Command Substitution ■ Tcl Variables and Variable Substitution ■ Tcl Procedures ■ Basic Flow Control (if, while, for, foreach) ■ Data Structures: Lists and Arrays ■ Built-in Commands and Math Functions in Tcl ■ Loading a Tcl Script File Running Tcl Programs Since Tcl is an interpreted language, to run a Tcl program, users can pass the script file to the Tcl interpreters, tclsh and wish. To leave the program, use the exit command. Tcl Commands and Command Substitution Tcl is a string-based, interpreted command language with a simple structure. Each line begins with a command and a number of arguments. Each command is implemented as a C function or is defined as a Tcl procedure. This function is responsible for handling all the arguments. The basic syntax for a Tcl command is as follows: command arg1 arg2 ... The command is either the name of a built-in command or a Tcl procedure name. White space is used to separate the command name and its arguments. arg1 and arg2 are the first two arguments of this command. Nested commands are allowed in a Tcl script. To write a nested command, the command must be placed in a pair of brackets. The Tcl interpreter replaces the 2 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Getting Started with Tcl outer command by substituting the nested command with its result. For example: format “\”%s\” size = %d” $fName [file size $fName] The Tcl interpreter replaces [file size $fName] with its result for the format command. Tcl Variables and Variable Substitution Variables in Tcl can be considered as boxes in which various types of data can be stored. These variables are given names, which are then used to access the values stored in them. Tcl variables need not be declared before they are used. These variables are simply created when they are first assigned values, using the set command, as illustrated below. set varName varValue Tcl variables can be deleted by using the unset command as follows: unset varName The value stored in a variable can be accessed by prefacing the variable name with a dollar sign (“$”). This is known as Variable Substitution, and is described as follows. set set set set set set set a 100 b 200 sum1 [expr sum2 [expr 1 100 sum3 [expr sum3 [expr $a+$b] $sum1+100] 1+2]; #return 3 $1+2]; #return 102 Tcl Procedures Procedures are Tcl built-in commands that can be defined at any time and users can pass arguments by value. By default, the return value from a procedure is the result of the last statement in its body. However, the return command may be used to return another value. If an argument is assigned to the return command, then the value of this argument becomes the result of the procedure. Laker³ Tcl Reference Manual K-2015.06 3 Chapter 1: Introduction Getting Started with Tcl The following example is a Tcl procedure computing the sum of the values of two arguments and returning the sum. proc sum {arg1 arg2} { set r [expr $arg1+$arg2] return $r } The procedure, starts with the proc command, is followed by argument(s) and a procedure body. These arguments are separated by white spaces, and the procedure body is a group of Tcl commands. After a procedure is declared, it is considered a Tcl command. For example: sum 1 2 The result 3 is then returned. Basic Flow Control (if, while, for, foreach) Tcl offers decision-making construct (if-statement) and looping constructs (while, for, and foreach statements), both of which can change the flow of execution in response to some conditions. These constructs are explained in the following sections: ■ if ■ while ■ for ■ foreach if This command executes scripts conditionally. The syntax of the if command is: if bool then body1 else body2 where bool is a Boolean expression; and body1 and body2 are the command body. The following is a simple example of the if command. 4 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Getting Started with Tcl set r [expr $b%10] set q [expr $b/10] if {$r >= 5} then { set b [expr ($q+1)*10] } else { set b [expr $q*10] } while This command executes script repeatedly as long as a condition is met. The syntax of the while command is: while bool body where bool is a Boolean expression, and body is the command body. The following is an example of the while command. ## calculate the sum of all even positive ## integers smaller than or equal to 1000 set a 0 set sum 0 while {$a <= 1000} { set sum [expr $sum+$a] set a [expr $a + 2] } for This is a looping command. The syntax of the for command is: for init bool step body where init is a command body to initialize the for loop; bool is a Boolean expression; step is a command body which is executed after body; and body is a loop body. The following is a simple example of the for command. ## calculate the sum of all even positive ## integers smaller than or equal to 1000 for {set a 0; set sum 0} {$a <= 1000} {set a [expr $a + 2]} { set sum [expr $sum + $a] } foreach This command iterates over all elements in a list. The syntax of the foreach command is: foreach var valueList body Laker³ Tcl Reference Manual K-2015.06 5 Chapter 1: Introduction Getting Started with Tcl where var is a variable used to hold each element in valueList for each loop, and body is executed once for each element in valueList. The following is a simple example of the foreach command. ## calculate the sum of all even positive ## integers smaller than or equal to 1000 set L [list] for {set a 0} {$a <= 1000} {incr a 2} { lappend L $a } set sum 0 foreach b $L { set sum [expr $sum + $b] } Data Structures: Lists and Arrays Tcl supports two primitive data structures: lists and arrays. Lists provide a simple means by which to group collections of elements, and deal with the collection as a single entity. In Tcl, lists are represented as strings with a specified format and interpretation. The elements of a list are also strings enclosed by left and right braces, and are separated by white space(s). For example, {1 2 a {3 {4 5} 6} “bcd ef” 7 {g h}} is a list with seven elements; they are 1, 2, a, {3 {4 5} 6}, “bcd ef”, 7, and {g h}. The forth element is a list with three elements, and the fifth element is a string “bcd ef”. Another way of grouping data in Tcl is to use arrays. Arrays are collections of elements in which each element is given a unique string index. The element of an array may be referred to by using the array name, followed immediately by the index of the element, enclosed in parentheses. For example: ArrName(stringIdx) Array elements are treated much like any other Tcl variables. They are created by means of the set command, and their values can be substituted using the dollar sign “$”. White spaces may not be used as part of the string index because they often cause confusion. The usage of a list and an array is presented in the example below. This example completes the task to store 100 integers (from 0 to 99) to a list (or an array) and computes the sum of the list (or array). 6 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Getting Started with Tcl ## example of list usage set List [list]; #make an empty list set num 0 while {$num < 100} { lappend List $num; #append num to List incr num } set sum 0 foreach element $List { set sum [expr $sum + $element] } puts “sum = $sum” ## example of array usage set idx 0 while {$idx < 100} { set Arr($idx) $idx; #save 0 to Arr(0), 1 to Arr(1), ... incr idx } set sum 0 set idx 0 while {$idx < 100} { set sum [expr $sum + $Arr($idx)] incr idx } puts “sum = $sum” Like strings, there are plenty of commands to manipulate lists and arrays. For more details on list and array manipulations, please refer to the reference books introducing Tcl programming. Built-in Commands and Math Functions in Tcl The following table lists the built-in commands in Tcl and their descriptions. Command Description after Set up commands to be run in the future. append Append values to some variable’s value without spaces. array Query the information about array variables. break Force to exit from a loop. catch Trap errors raised by a command. Laker³ Tcl Reference Manual K-2015.06 7 Chapter 1: Introduction Getting Started with Tcl 8 Command Description cd Change current working directory. clock Get time and make a date string according to some format string. close Close an I/O channel. concat Concatenate arguments with spaces separating them. continue Skip current loop and run next loop immediately. error Raise an error to halt the execution of the Tcl script. eof Determine end-of-file status of a channel. eval Run the Tcl command that is made by the arguments of this command. exec Run the UNIX program in Tcl. exit Terminate the process. expr Analyze and compute a Tcl math expression. fblocked Query whether the data is ready on some channel or not. fconfigure Query the status of a channel. fcopy Copy data from one channel to another. file Query file information. fileevent Register a procedure for an I/O channel event. flush Force data in the channel buffer outputted. for Construct loops. foreach Construct loops. format Make a string by a conversion format string and arguments. gets Get a line of input. Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Getting Started with Tcl Command Description global Declare global variables. if Execute the then-clause commands if the condition is true; otherwise, execute the else-clause commands. incr Increase the value of a variable with an integer amount. info Query the Tcl interpreter about the information of variables, procedures, commands, etc. join Concatenate elements of a list together into a string with a string separating them. lappend Append elements to a list. lindex Get an element from a list by its index. linsert Insert values into a list. list Create a list. llength Measure the length of a list. lrange Get a range of elements from a list. lreplace Replace a range of list elements with some value. lsearch Search an element in a list. lsort Sort elements of a list with some order. open Open an I/O channel. pid Get process identifier. proc Declare a user-define procedure. puts Output data to an I/O channel. pwd Get current working directory. read Read data from an I/O channel. Laker³ Tcl Reference Manual K-2015.06 9 Chapter 1: Introduction Getting Started with Tcl Command Description regexp Tell whether a string matches a pattern (regular expression). regsub Substitute a string if it matches a pattern. rename Change the Tcl command name. return Return from a procedure and set a value as the result of procedure execution. scan Parse a string and get value it. seek Set the seek position of an I/O channel. set Assign a value to a variable or get the value of a variable. socket Open a socket. source Execute a Tcl script file. split Split a string. string Manipulate strings. subst Do command and variable substitutions in a string. switch Establish multiple branches (command bodies). tell Inform the seek position of an I/O channel. time Inform the run time of a command. trace Monitor the assignments of a variable. unset Make a variable undeclared. uplevel Execute a command at an upper scope. upvar Get a variable value at an upper scope. while Construct loops. The built-in math functions in Tcl are: acos(x), asin(x), atan(x), atan2(x,y), ceil(x), cos(x), cosh(x), exp(x), floor(x), fmod(x,y), hypot(x,y), log(x), log10(x), pow(x,y), sin(x), 10 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk sinh(x), sqrt(x), tan(x), tanh(x), abs(x), double(x), int(x), round(x), rand(), and srand(x). A Tcl interpreter does not evaluate any math expressions, and thus the expr command may be issued to evaluate a math expression. Loading a Tcl Script File To load a Tcl script file, use the following command: source fileName For more details on Tcl, please refer to the reference books introducing Tcl programming. Laker and Tcl/Tk Laker supports a command language interface for Tk and C-based applications. An overview of Laker Command Language Architecture is shown in the diagram below. Tk Application C-based Application Tk Communication Protocol TCP/IP Communication Protocol Tcl Interpreter Laker Kernel Figure 1 Laker Tcl Command Language Architecture With Laker’s embedded Tcl interpreter, Laker can communicate with Tk and Cbased applications using Tk and TCP/IP communication protocol respectively. The communication methods for the Tk command client and socket command client are described in detail in the following section. The tutorials and references are also provided in the succeeding paragraphs. Laker³ Tcl Reference Manual K-2015.06 11 Chapter 1: Introduction Laker and Tcl/Tk The Laker and Tcl/Tk section contains the following sections: ■ Tk Command Client ■ Socket Command Client Tk Command Client Laker’s embedded Tcl interpreter is used when the Tcl Send command is called, enabling Laker to communicate with other Tcl applications. Communication is done by sending pre-defined commands to Laker. Laker provides the following capabilities with the Tk application: ■ Invoking Laker from Another Tk Application ■ Invoking Commands from Another Tk Application ■ Sending Command to Laker ■ Getting System-assigned Tk Name ■ Adding Event Callbacks to the Tk Application ■ Replaying Commands ■ Tk Commands ■ Debugging Two commands, sysTcpPortNumber and sysTkName, are registered to get the tkName and serverPort value. The following diagram depicts Laker’s Command Language Interface with Tk applications (Tk command clients). Laker Graphical User Interface Tk send command Laker Command Language Interface Return Value Tk Applications Event Restration Return Value Laker Kernel Playback Figure 2 12 Command File (Tcl Script) Laker Command Language Interface with Tk applications Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk Invoking Laker from Another Tk Application Commands cannot be sent as soon as Laker is invoked. The registration of commands and the Tk name must be completed before proceeding. The following polling mechanism is used to check the status of the registration process. For example: exec laker -tkName <tk name goes here> & while {1} { set s [winfo interps] if {-1 != [string first <tk name goes here> $s]} { break; } after 500 } send <tk name goes here> <user Tcl procedures> Invoking Commands from Another Tk Application To invoke Laker’s commands from another Tk application, a Tk name must be registered for Laker with the command line option -tkName. The syntax for registering Laker’s Tk name is as follows: > laker -tkName <Tk name> where <Tk name> indicates the Tk name that is automatically assigned when Laker is invoked. The default Tk name is Laker. Alternatively, you can choose any name for the Tk name. To avoid having the same Tk name on a machine, if another Tk application has the same name then a sequential numeric value (_<number>) is appended to the Tk name so that it is unique. For example, Laker_2 is assigned for the second Laker Tk name of Laker when there is already an existing Laker with the Tk name of Laker. Sending Command to Laker To send a command to Laker, use the Tcl send command. The syntax of the Tcl send command is shown below: send <Tk name> <Laker’s Command Reference> For example: Laker³ Tcl Reference Manual K-2015.06 13 Chapter 1: Introduction Laker and Tcl/Tk #!/bin/sh # the next line restarts using wish \ exec wish "$0" "$@" set tkAppList [winfo interp] set LAKER "Laker[pid]"; # used to get the PID number as the unique name if {[lsearch $tkAppList $LAKER] < 0} { exec laker -tkName $LAKER & } while {1} { set tkAppList [winfo interp] if {-1 != [string first $LAKER $tkAppList]} { break; } after 1000 } set topLib"cpu" set techFile"/dq3/qa/LEO/PACK/laker2.3v3/etc/default.tf" set topCell"test" send $LAKER "lakerNewLib -path . -lib $topLib -tech $techFile" send $LAKER "lakerNewCell -path . -lib $topLib -cell $topCell" The results of the above example are illustrated as follows: Figure 3 14 Laker Design Window is Displayed after Playing Command File Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk Getting System-assigned Tk Name To get the Tk name assigned while invoking Laker, the sysTkName command can be used to get the desired information. For example: # Invoke Laker by giving a Tk name Synopsys % laker -tkName Synopsys # Enter the following command in the Home page to get # the Tk name and assign to variable: tkName set tkName [sysTkName] Adding Event Callbacks to the Tk Application Laker can call back the invoking Tk application when specific events occur. This is done by sending a command to Laker which registers a callback function along with a reason used to determine when to call the callback function. A special command AddEventCallback is used to set up the callback information. Note: In earlier versions AddCommandCallback was used to add event callbacks. However, this command has been superceded by AddEventCallback. AddCommandCallback forces all events to be sent asynchronously which can cause problems for some events which must be sent synchronously. Note: Tk applications do not accept commands that use xhost-style security protection. For this reason, xauth must be used instead. Another alternative is to compile Tk with security turned off. The syntax of AddEventCallback is as follows: AddEventCallback TkAppName CallbackFunc Reason async where: ■ TkAppName: Indicates the Tk application name (which is usually the name that appears in the title). Laker uses this name to identify the Tcl interpreter to send commands to. If the Tk application is running under the control of a script file it is usually the name of the script file. The following Tk commands can be used to get the application name: winfo name . winfo interps selection get APPLICATION Laker³ Tcl Reference Manual K-2015.06 15 Chapter 1: Introduction Laker and Tcl/Tk ■ CallbackFunc: Indicates the Tk callback command/procedure. ■ Reason: Indicates the reason for callbacks. Laker invokes the callback when the specified reason occurs. The following table lists the possible reasons for callbacks. Reason Description Calldata guiInfoMessage Sent when an information message is displayed Message body guiWarnMessage Sent when a warning message is displayed Message body ■ async: Specifies whether event callbacks are always asynchronous. This parameter is required for backward compatibility but is ignored. The following is an example to use the callback. # Modify the Laker.menu file to add a user-defined menu Menu File { "Test" s f.tcl "Test" "EventTrigger UDR_MY_REASON clientdata" ... } Tk Application: (myTkApp) # Register Callbacks # send Laker {AddEventCallback myTkApp myEventCallbackProc UDR_MY_REASON 0} Replaying Commands Commands can be replayed by typing the following line when starting Laker: > Laker -play <filename> where <filename> corresponds to the name of the command file that has been programmed manually. Create a Command Replay File Generally, most executed commands are prompted in the message frame of the Home Page. It is very convenient for users to identify necessary commands by executing the procedures through Laker graphical user interface (GUI). 16 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk Figure 4 Executed Commands Listed in the Home Page’s Message Frame On the other hand, under the working directory, Laker creates a <lakerLog> directory to store generated log file(s). All operations that have been done through the graphical user interface (GUI) are recorded in a laker.cmd file. This file is updated each time Laker is started and a backup of the file is saved with the filename laker.cmd.bak. lakerOpenDesign -lib top -cell CPU -mode edit lakerSetActiveWnd Wnd1 lakerLayerTable -side left lakerPreSel -point (-111.243,284.019) -traversedist 18.133 lakerZoomAll lakerPreSel -point (161.197,316.928) -traversedist 15.602 lakerMaxViewLevel lakerPreSel -point (100.351,354.372) -traversedist 15.602 lakerZoomInByArea -point (100.351,234.239) (245.447,354.372) lakerPreSel -point (176.213,358.935) -traversedist 3.683 lakerSetActiveWnd Wnd1 lakerPreSel -point (153.013,329.842) -traversedist 3.683 lakerSingleSel -point (153.013,329.842) -traversedist 3.683 ... "laker.cmd" 14 lines, 559 characters This laker.cmd file stores more detailed information of the executed commands. By replaying the commands, users may redo the procedures previously done in the last Laker session. Play Command File The Tcl-based command file can be played by the -play option. Users may replay the commands or play the application written by Laker Tcl commands by typing the following command: > laker -play laker.cmd Since the laker.cmd file under <lakerLog> directory is updated each time Laker is started, to avoid overwriting the modified command file (laker.cmd), do not use the following command: > laker -play lakerLog/laker.cmd Laker³ Tcl Reference Manual K-2015.06 17 Chapter 1: Introduction Laker and Tcl/Tk Tk Commands A full set of Tk commands is available for tool customization and integration. Tk commands allow the creation of sophisticated graphical user interfaces by using the Tcl scripting language. The Tk commands are registered by default when Laker starts and can be used in scripts with -play and the Tcl source commands. Examples can be found under the <install_dir>/etc/tk_library/demos/*.tcl directory. The Tcl source command can be specified in the message frame of the Home Page or -play command line option to run the samples. Debugging Commands can be displayed to stdout as they are received by setting the following environment variable. To turn on the display of commands: > setenv CMD_TRACE 1 To turn off the display of commands: > setenv CMD_TRACE 0 The command and its arguments are both output. Socket Command Client Laker’s command language interface supports a communication interface using C++ for Laker and third-party client-side integration. Third party tools can use this interface to send commands to and receive event notifications from a command server (for example: laker). The name of the library to link to is libcmd.a. The header file cmdclt.h contains the function prototypes that are needed. The following diagram depicts the Laker’s Command Language Interface with C applications (Socket Command Clients). 18 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk Call Command Client Kernel Command TRUE/FALSE (Some C Apps) Client Return Value/Error Message Command Server Server Kernel - Laker Event Event Data Client Side Figure 5 Communication Protocol Server Side Laker Tcl Interface with C Applications In order to communicate with one another, the third-party tool can be launched from a command line in Laker or it runs stand-alone and the third-party tool must also support interface to connect Laker via its communications GUI or UNIX command prompt. This communication interface allows the third-party tool to execute all Laker provided Tcl commands or the built-in Tcl commands in an active design window of Laker. The section includes the following sections: ■ Environment Setup ■ Setting Up Laker as a Server ■ Setting Up a Client Process ■ Tcl Commands for Socket Port ■ Integration Flows Environment Setup You must set up the environment before setting up Laker as a server or setting up a client process. Follow the steps below: 1. Locate the packed .a files in the following path: <install_path>/share/libcmd/<platform> 2. After completing the C++ API application, the following two .a files are required to build the program: libnclt.a and libnsys.a. Laker³ Tcl Reference Manual K-2015.06 19 Chapter 1: Introduction Laker and Tcl/Tk Copy these files to the local working directory or assign the absolute path to each of them. Then, use one of the following methods to build the C++ API application (test is the execution file and main.cpp is the source code): g++ -o test main.cpp libnclt.a libnsys.a -lpthread -ldl or g++ -o test -g main.cpp <install_path>/share/libcmd/<platform>/libnclt.a <install_path>/share/libcmd/<platform>/libnsys.a -lpthread -ldl 3. If there is no other compiling error message, now run the program (test). Setting Up Laker as a Server To start the server so that it can accept commands, the command line argument -serverPort <port> must be passed for socket interface when invoking Laker. Many clients can connect to a server through the specified port. The port number can be specified in the range of 1024 and 65535. For example: > laker -serverPort 11060 Setting Up a Client Process Use the following steps to setup a client application so it can send commands to Laker: 1. Create (CmdCltCreate) 2. Connect (CmdCltConnect) 3. Call Command (CmdCltCallCommand) The following is an example for setting up a client application: CMDCLT cmdclt; char* result; cmdclt = CmdCltCreate(0); CmdCltConnect(cmdclt, 11060, “sps32”, -1); if (CmdCltCallCommand(cmdclt, “lakerVersion”, 0, &result)) printf(“Command successful. Result = %s\n”, result); else printf(“Command failed. Error = %s\n”, result); ... CmdCltDestroy(cmdclt); 20 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk To get the TCP/IP socket port number assigned when invoking Laker, use the command sysTcpPortNumber to get the desired information. For example: # Invoke Laker by giving a TCP/IP socket port number % laker -serverPort 8251 # Enter the following command in the Home page to get # the socket port number and assign to variable: tcpPortName set tcpPortName [sysTcpPortNumber] Tcl Commands for Socket Port Laker’s command language supports a socket interface, that is, a C application can send commands to Laker or any other product that uses the command language interface. The following two Tcl commands are used for communication: ■ sysServerPort ■ sysTcpPortNumber sysServerPort The command starts Laker listening for connections over the -serverPort interface. Clients must link with libnclt.a and libnsys.a and use the C API provided in cmdclt.h to send commands to Laker and retrieve the result. sysServerPort can only be called once successfully per Laker instance. Subsequent calls return the port Laker is currently listening on. The command starts Laker so it functions as a server. It can only do this on the local machine. The client program can be on another machine if needed but it is up to the user. The command syntax is as follows: sysServerPort [-port num] where -port num specifies a port number to use, and it must be free. If the port is not specified, a free port is used. The command returns a correct port number if successful; otherwise, it returns -1. Laker³ Tcl Reference Manual K-2015.06 21 Chapter 1: Introduction Laker and Tcl/Tk sysTcpPortNumber To get the TCP/IP socket port number assigned while invoking Laker, use the command sysTcpPortNumber to get the desired information. The command syntax is as follows: sysTcpPortNumber The command returns a correct port number if successful; otherwise, it returns -1. Integration Flows Laker provides the following two integration flows to communicate with the C++ interface: ■ ■ Laker stands a server and you can fire it up as a TCP/IP socket server through one of the following methods: • laker -serverPort 11060 when invoking Laker. • Execute the sysServerPort Tcl command in the Home Page. After/before Laker is running in stand-alone mode, you can do one of the following ways: • Create a C++ API application by using the Tcl command [exec myCppClient [sysServerPort] &] in the Home Page. • Execute the C++ API application on the UNIX/Linux platform. You may assign the desired socket port number manually to connect to Laker. myCppClient is the C++ API application execution file. Note: TCP/IP integration is only supported with Laker 2012.03b, LakerOA2012.04p1, or later versions. myCppClient links with the API provided in libnclt.a (cmdclt.h) and connects to Laker on the returned port which is passed as a parameter. It can connect between different machines. The related API prototype takes a serverName parameter which if 0 means the local host. The communication scheme between Laker and the C++ API application is based on the TCP/IP socket. The following sections are related to the TCP/IP integration: 22 ■ TCP/IP Sockets ■ Start and Connect Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Laker and Tcl/Tk TCP/IP Sockets Laker provides a client/server architecture based on TCP/IP sockets to build the communication with a third-party tool if both tools are already running individually. ■ The hostname (or, use the IP address) and the port number must be specified before starting Laker and the C++ API application. It is unnecessary to specify the hostname (or, use the IP address) if running and displaying on the same machine, but the port number (that is available to facilitate the connection) shall be specified. ■ It is preferable to set the Environment Variables in a UNIX setup file (the .cshrc file). Start and Connect When Laker is installed correctly and all of the files are setup for the C++ API application, start and verify the socket connection with the following scenario: ■ Invoking Laker by firing up a TCP/IP Server on the console or terminal: > laker -serverPort 9189 ■ Invoking Laker and firing up a TCP/IP Server later in the Home Page: > sysServerPort -port 9189 ■ Executing the C++ API application via another console/terminal. The test program connects to Laker with the specified port number. Once it connects to Laker, the test program requests Laker to execute the lakerVersion Tcl command and retrieves or displays the returned value from Laker via the socket port as below. ./test 9189 @@@connecting with socket port number 9189 .... Connecting to 172.26.3.76 on port 9189 ... SocketClient::connectToServer: Connected successfully @@@connected. CallCommand successful: Return Value: "Laker - Custom Layout Automation System, 2012.07 64-bit (Linux x86_64/64bit) 05/22/ 2012" See below for the sample code of the test program. Laker³ Tcl Reference Manual K-2015.06 23 Chapter 1: Introduction Laker and Tcl/Tk #include #include #include #include "cmdclt.h" <stdio.h> <unistd.h> <stdlib.h> void EventProc(char* event, char* clientData, char* callData) { if (!callData) callData = "no calldata"; printf("Event: \"%s\"\nCalldata: \"%s\"\n", event, callData); } int main(int argc, char** argv) { CMDCLT cmdclt; char buf[128], *myargv[10], *returnValue; int port; setbuf(stdout, NULL); setbuf(stderr, NULL); // Find free port, fork an instance of Laker and // start as a command server. // if (1 == argc) { fprintf(stderr, "Please specify a port number!\n"); return 0; } port = atoi(argv[1]); if (port == -1) { fprintf(stderr, "Could get free port!\n"); return 0; } // Initialize the client communication. cmdclt = CmdCltCreate(0); sleep(3); // Connect on local machine, wait until connected. fprintf(stderr, "@@@connecting with socket port number %d ...\n", port); CmdCltConnect(cmdclt, port, NULL, -1); fprintf(stderr, "@@@connected.\n"); // Query the current Laker release info and print the value returned. if (CmdCltCallCommand(cmdclt, "lakerVersion", 0, &returnValue)) 24 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Application Programming Interface (API) References printf("CallCommand successful: Return Value: \"%s\"\n", returnValue); else printf("CallCommand NOT successful: Return Value: \"%s\"\n", returnValue); // Close connection/release resources CmdCltDestroy(cmdclt); return 0; } Application Programming Interface (API) References This section contains the application programming interface (API) references and describes how to use the C interface. Use of this API hides the details of the communication protocol. This section includes the following basic and helper functions: ■ ■ Basic Functions: • CMDCLT CmdCltCreate(char silent) • void CmdCltDestroy(CMDCLT cmdclient) • void CmdCltConnect(CMDCLT cmdclient, int port, char* serverName, int timeout) • void CmdCltSetAbortProc(CMDCLT cmdclient, procVoid func, void* clientData) • char CmdCltCallCommand(CMDCLT cmdclient, char* command, char async, char** returnString) • char CmdCltAddEventCallback(CMDCLT cmdclient, char* reason, procVoid func, void* clientData); • void CmdCltCheckForEvents(CMDCLT cmdclient) Helper Functions: • char CmdCltCheckConnection(CMDCLT cmdclient, char** errorMsg) • char* CmdCltGetDotFormat(char* machineName); • char* CmdCltGetLocalMachineName() • int CmdCltGetFreePort() Laker³ Tcl Reference Manual K-2015.06 25 Chapter 1: Introduction Application Programming Interface (API) References • char CmdCltIsPortFree(int port) CMDCLT CmdCltCreate(char silent) Creates an instance of a Command Client object. CmdCltDestroy MUST be called to free the returned object. Syntax CMDCLT CmdCltCreate(char silent) Returns Pointer to a Command Client object. Arguments silent If TRUE, suppress the status information from being dumped to stdout. Examples CMDCLT cmdclt; cmdclt = CmdCltCreate(0); ... CmdCltDestroy(cmdclt); void CmdCltDestroy(CMDCLT cmdclient) Destroys a Command Client object. This function MUST be called to free the object returned by CmdCltCreate. Syntax void CmdCltDestroy(CMDCLT cmdclient) Arguments cmdclient : Indicates the pointer to the Command Client object. Examples CMDCLT cmdclt; cmdclt = CmdCltCreate(0); ... CmdCltDestroy(cmdclt); 26 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Application Programming Interface (API) References void CmdCltConnect(CMDCLT cmdclient, int port, char* serverName, int timeout) Connects to server. This function does not return until a connection has been established. The server side must be started with the command line option serverPort <port number> where <port number> is the same as port. It is unnecessary to start the server first. For example: > laker -serverPort 11060 Syntax void CmdCltConnect(CMDCLT cmdclient, int port, char* serverName, int timeout) Arguments cmdclient Indicates the pointer to the Command Client object. port Indicates the port on which to communicate with the server. The port number is in the range of 1024 and 65535. serverName Specifies the server name. This can be the machine name or an IP address. A value of NULL indicates the local machine. timeout Indicates the timeout period. If a connection cannot be made within timeout, CmdCltConnect returns. A value of -1 means the function does not return until a connection has been established. Examples CMDCLT cmdclt; cmdclt = CmdCltCreate(0); CmdCltConnect(cmdclt, 11060, “sps32”, -1); ... CmdCltDestroy(cmdclt); Laker³ Tcl Reference Manual K-2015.06 27 Chapter 1: Introduction Application Programming Interface (API) References void CmdCltSetAbortProc(CMDCLT cmdclient, procVoid func, void* clientData) Used to set a function that is called back when the connection with the server is broken. Whenever CmdCltCallCommand or CmdCltAddEventCallback is called, a check of the connection with the server is made. If the connection is broken, func is called. CmdCltCheckConnection can be called to manually check the connection. Syntax void CmdCltSetAbortProc(CMDCLT cmdclient, procVoid func, void* clientData) Arguments cmdclient Indicates the pointer to the Command Client object. cmdclient Indicates the callback function. clientData Indicates the application defined data that is passed to the callback. This value can be NULL. Examples void AbortProc(void* clientData) { char* myString = (char*)clientData; printf(“%s\n”, myString); } int main() { CMDCLT cmdclt; char myString[100]; cmdclt = CmdCltCreate(0); CmdCltConnect(cmdclt, 11060, “sps32”, -1); strcpy(myString, “Connection broken”); CmdCltSetAbortProc(cmdclt, AbortProc, myString); ... CmdCltDestroy(cmdclt); return 1; } 28 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Application Programming Interface (API) References char CmdCltCallCommand(CMDCLT cmdclient, char* command, char async, char** returnString) This function sends a command/Tcl expression to the server and retrieves the results. Sending the command asynchronously can greatly speed up the execution of the command. However, it is not possible to get returnString when using asynchronous commands. CmdCltCallCommand always returns TRUE in this situation. This function calls CmdCltCheckForEvents to check for any pending events before sending the command. Syntax char CmdCltCallCommand(CMDCLT cmdclient, char* command, char async, char** returnString) Returns 0 on error. Arguments cmdclient Indicates the pointer to the Command Client object. command Indicates the command to call. This can be any valid Tcl command. async If 0, this command is executed synchronously, otherwise it is executed asynchronously. returnString Indicates the point to the result of the call. If the return value is 0, an error message appears; otherwise the return value points to the return result. Examples CMDCLT cmdclt; char* result; cmdclt = CmdCltCreate(0); CmdCltConnect(cmdclt, 11060, “sps32”, -1); if (CmdCltCallCommand(cmdclt, “Test A B C”, 0, &result)) printf(“Command successful. Result = %s\n”, result); else printf(“Command failed. Error = %s\n”, result); ... CmdCltDestroy(cmdclt); Laker³ Tcl Reference Manual K-2015.06 29 Chapter 1: Introduction Application Programming Interface (API) References char CmdCltAddEventCallback(CMDCLT cmdclient, char* reason, procVoid func, void* clientData); Registers a function to be called when a particular event (reason) in the server occurs. To check for events CmdCltCheckForEvents MUST be called. If an event is registered for with this function, CmdCltCheckForEvents must be called at some regular intervals. Refer to CmdCltCheckForEvents for details. Syntax char CmdCltAddEventCallback(CMDCLT cmdclient, char* reason, procVoid func, void* clientData); Returns 0 on error. Arguments cmdclient Indicates the pointer to the Command Client object. reason Indicates the event notification callback reason (see below). func Indicates the callback function, which must be of the form: void myEventCB(char* eventname, void* clientData, char* callData). The value pointed to by callData is always a string, the value of which depends on reason. 30 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Application Programming Interface (API) References Examples void CursorTimeChangeCB(void* clientData, void* callData) { char* cursorTime = (char*)callData; printf(“Received CursorTimeChange Event. Value = %s\n”, cursorTime); } int main() { CMDCLT cmdclt; cmdclt = CmdCltCreate(0); CmdCltConnect(cmdclt, 11060, “sps32”, -1); CmdCltAddEventCallback(cmdclient, “CursorTimeChange”, CursorTimeChangeCB, NULL); ... CmdCltDestroy(cmdclt); return 1; } void CmdCltCheckForEvents(CMDCLT cmdclient) Flushes all pending events. Call this function to check for any pending events and call registered event handlers. This function must be called at regular intervals. Every 100~500 milliseconds is a reasonable interval. For GUI-based applications a timer can be used. If the events have been registered for with CmdCltAddEventCallback then this function MUST be called; otherwise, this function does nothing and does not need to be called. Syntax void CmdCltCheckForEvents(CMDCLT cmdclient) Arguments cmdclient Indicates the pointer to the Command Client object. Laker³ Tcl Reference Manual K-2015.06 31 Chapter 1: Introduction Application Programming Interface (API) References char CmdCltCheckConnection(CMDCLT cmdclient, char** errorMsg) This function tests whether the listening socket is still alive. It returns TRUE if successful, and FALSE if unsuccessful. errorMsg can only be set if there is an error. This function calls the function registered with CmdCltSetAbortProc if the connection is broken. CmdCltCallCommand and CmdCltAddEventCallback both call this function. Syntax char CmdCltCheckConnection(CMDCLT cmdclient, char** errorMsg) Arguments cmdclient Indicates the pointer to the Command Client object. char* CmdCltGetDotFormat(char* machineName); This function returns the dot notation (IP Address) given the machine name. Syntax char* CmdCltGetDotFormat(char* machineName); char* CmdCltGetLocalMachineName() This function gets the local machine name. Syntax char* CmdCltGetLocalMachineName() int CmdCltGetFreePort() This function gets a free port on the local machine. Returns -1 on error. After 1000 failed attempts, it returns -1. 32 Laker³ Tcl Reference Manual K-2015.06 Chapter 1: Introduction Application Programming Interface (API) References Syntax int CmdCltGetFreePort() char CmdCltIsPortFree(int port) This function tests if the given port is free or not (local machine). The return value is TRUE if the port is free, and FALSE if the port is not free or an error has occurred. Syntax char CmdCltIsPortFree(int port) Laker³ Tcl Reference Manual K-2015.06 33 Chapter 1: Introduction Application Programming Interface (API) References 34 Laker³ Tcl Reference Manual K-2015.06 2 General Tcl Extensions 2 This chapter introduces the Tcl commands applied for general usage. Laker3 applies the Tcl interpreter and supports a command language interface for Tk and C-based applications. To meet the design requirements, Tcls are extended by augmenting the Tcl commands and data types. A shortcut of these data types is provided for users’ convenience. Laker3 supports plenty of commands for users to manipulate their designs. The syntax of Laker3’s Tcl commands is similar to the built-in Tcl commands and C shell commands. Laker3 adopts name-mapping as the strategy to pass arguments to a command. This makes users not have to care the arguments’ order and makes them comfortable to write their script files. As for other tools, they usually adopt a so-called position-mapping strategy, which makes program-writing a longwinded work. Besides strings, lists, and arrays, Laker3 supports several new data types, such as point, bounding box, and point list. Furthermore, Laker3 also supports several fundamental commands for users to write their own script files. This chapter contains the following sections: ■ New Data Types and Shortcut ■ Basic User-definable Commands Laker³ Tcl Reference Manual K-2015.06 35 Chapter 2: General Tcl Extensions New Data Types and Shortcut New Data Types and Shortcut Laker supports three new data types in Tcl extensions: point, bounding box, and point list. Each data type can be represented by three approaches. In each format, a useful shortcut is provided to input a mathematical expression to express an xaxis or y-axis coordinate. The data types and shortcut are described in the following sections: ■ Point ■ Bounding Box ■ Point List Point A point that represents a planar coordinate is a pair of floating numbers. A point can be specified by using the following formats (where x and y are mathematical expressions): ■ (x,y): The two expressions are enclosed by a pair of left and right parentheses and are separated by a comma character (,). ■ x y: The two expressions are separated by a white space. ■ {x y}: A list with two elements stands for a point. This shortcut must be used carefully because white spaces in a command are always recognized as the separator of these two expressions. If the expression contains spaces, the command mis-interprets the input. Besides, the {x y} format disables variable substitution. Any of the following examples can be used to represent a point. (1.234, -3.456) (1.234+$a, [expr 2.345*$b]+(15*$c)*2.71828) 1.234 -3.456 1.234+$a 2.345*$b {1.234 -3.456} {1.234+3 -3.456/2.5} Note: The following examples are illegal point representations: ((1 -3)*4,5) (1 -3)*4 5 36 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions New Data Types and Shortcut {(1 -3)*4 5} Bounding Box A bounding box is represented by two planar points. A bounding box can be specified with the following three formats: (x1,y1) (x2,y2) x1 y1 x2 y2 {{x1 y1} {x2 y2}} where x1, x2, y1, and y2 are the mathematical expressions. In the x1 y1 x2 y2 format, the x1 and y1 expressions represent a point, and x2 and y2 expressions represent another point. Refer to the Point description for more details on the shortcut and restriction of the bounding box. Any of the following examples can be used to specify a bounding box. (-1,-3) (1,3) (-1+$deltaX, -3+$deltaY) (1+$deltaX, 3+$deltaY) -1 -3 1 3 -1+$deltaX -3+$deltaY 1+$deltaX 3+$deltaY {{-1 -3}{1 3}} Point List A point list contains two or more planar points. It can be represented by the following three formats: (x1,y1) (x2,y2) ... (xn,yn) x1 y1 x2 y2 ... xn yn {{x1 y1} {x2 y2} ...{xn yn}} where x1, x2, ... xn, y1, y2, ..., and yn are the mathematical expressions. In the x1 y1 x2 y2 ... xn yn format, the x1 and y1 expressions represent a point, x2 and y2 expressions represent another point, and so on. Give heed to the expressions since the second format is sensitive to white spaces. Refer to the Point description for more details on the shortcut and restriction of the point list. Any of the following examples can be used to specify a point list. Laker³ Tcl Reference Manual K-2015.06 37 Chapter 2: General Tcl Extensions Basic User-definable Commands (0,0) (2,0) (2,2) (0,2) 0 0 2 0 2 2 0 2 {{0 0} {2 0} {2 2} {0 2}} ($a+$b,0)($b-2,8)($x,$y) {{1 2}{3 4}} Basic User-definable Commands This section describes basic user-definable commands. These commands include: 38 ■ atof ■ atoi ■ beautyFileName ■ car ■ caar ■ cadr ■ cdar ■ cddr ■ cdr ■ cxyzr ■ cwxyzr ■ cdrN ■ charToInt ■ concatInstallDir ■ comment ■ cons ■ currentTime ■ decr ■ echo ■ elemN ■ encrypt Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands ■ firstIdxStr ■ getenv ■ getInstallDir ■ incr ■ intToChar ■ isEmptyList ■ isEqual ■ isEven ■ isFileEncrypted ■ isFloat ■ isInteger ■ isNegative ■ isNEqual ■ isNumber ■ isOdd ■ isOne ■ isPositive ■ isSymbolicLink ■ isZero ■ lastElem ■ lastIdxStr ■ max ■ member ■ min ■ mod ■ pdecr ■ pincr ■ putenv ■ random Laker³ Tcl Reference Manual K-2015.06 39 Chapter 2: General Tcl Extensions Basic User-definable Commands ■ reverseList ■ source_enc ■ srandom ■ stop ■ strcat ■ stringLess ■ strncat ■ strncmp ■ subStr ■ timeCmp ■ timeStrToTime ■ timeToTimeStr ■ tmpFileName ■ tmpName atof The atof command returns a floating point number if the string can be converted to a floating point number. This command is similar to the C function atof. Syntax atof aString Returns A floating point number if successful; otherwise, returns nothing. Arguments Argument Description aString A string. Examples atof “-3.14159e2” 40 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands atoi The atoi command returns an integer number if the string can be converted to an integer number. This command is similar to the C function atoi. Syntax atoi aString Returns An integer number if successful; otherwise, returns nothing. Arguments Argument Description aString A string. Examples atoi “2” beautyFileName The beautyFileName command returns an absolute file name if the file name can be made with an absolute path. Syntax beautyFileName aFileName Returns An absolute file name if successful; otherwise, returns nothing. Arguments Argument Description aFileName A file name. Examples beautyFileName ~mozart/concert beautyFileName gauss/theory1 beautyFileName /usr/usr1/ Laker³ Tcl Reference Manual K-2015.06 41 Chapter 2: General Tcl Extensions Basic User-definable Commands car The car command returns a list if the first element in the list can be obtained. Syntax car aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples car [list 1 2 3] car [list [list 1 2 3] [list 4 5 6] x y z] caar This command is equivalent to car [car aList]. Syntax caar aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples caar [list [list 1 2 3] [list 4 5 6] x y z] See Also car 42 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands cadr This command is equivalent to car [cdr aList]. Syntax cadr aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples cadr [list [list 1 2 3] [list 4 5 6] x y z] See Also car cdr cdar This command is equivalent to cdr [car aList]. Syntax cdar aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples cdar [list [list 1 2 3] [list 4 5 6] x y z] Laker³ Tcl Reference Manual K-2015.06 43 Chapter 2: General Tcl Extensions Basic User-definable Commands See Also car cdr cddr This command is equivalent to cdr [cdr aList]. Syntax cddr aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples cddr [list [list 1 2 3] [list 4 5 6] x y z] See Also cdr cdr The cdr command returns a list if the tail list, which is the original list with the first list element removed, of a specific list can be obtained. Syntax cdr aList Returns A list if successful; otherwise, returns nothing. Arguments 44 Argument Description aList A list. Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples cdr [list 1 2 3] cdr [list [list 1 2 3] [list 4 5 6] x y z] cxyzr This command is equivalent to cxr [cyr [czr aList]]; where x, y, z is one of a or d; this means it is a set of 8 commands. Syntax cxyzr aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples cdadr [list [list 1 2 3] [list 4 5 6] x y z] caddr [list [list 1 2 3] [list 4 5 6] x y z] cwxyzr This command is equivalent to cwr [cxr [cyr [czr aList]]]; where w, x, y, z is one of a or d; this means it is a set of 16 commands. Syntax cwxyzr aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Laker³ Tcl Reference Manual K-2015.06 45 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples cddddr [list [list 1 2 3] [list 4 5 6] x y z] cdrN The cdrN command returns a list if the cdr operation can be applied on a list with n times. Syntax cdrN aList n Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. n An integer. Examples cdrN [list 1 2 3 4 5 6 7 8] 5 ;# {6 7 8} is returned See Also cdr charToInt The charToInt command returns an integer if the first character in the specified string can be converted to an integer which encodes this character in the machine. Syntax charToInt aString Returns An integer if successful; otherwise, returns nothing. 46 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description aString A string. Examples charToInt a charToInt “abc” charToInt abc concatInstallDir The concatInstallDir command returns a string if the install directory of this string can be concated with a string. Syntax concatInstallDir aString Returns A string if successful; otherwise, returns nothing. Arguments Argument Description aString A string. Examples concatInstallDir “file1” comment The comment command returns an empty string if the block comment in Tcl can be simulated. We simulate a block-comment in Tcl by this command to consume its arguments but does nothing. This command returns a value (““), unlike a line comment skiped by Tcl interpreter. Syntax comment { commands } Returns An empty string (for example: ““) if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 47 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments None Examples comment { set a 100 set b 200 set c [expr $a+$b] } cons This cons command returns a list if the element can be inserted to the head of a list. Syntax cons aElem aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aElem Any data. aList A list. Examples cons 9 {10 11 12} cons a [list x y z] currentTime The currentTime command returns a time string if the current time in the machine can be obtained. Syntax currentTime Returns A time string if successful; otherwise, returns nothing. 48 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments None Examples set curTime [currentTime] decr The decr command returns a number if the variable, whose content is a number, with some amount can be decreased. Syntax decr varName [amount] Returns A number if successful; otherwise, returns nothing. Arguments Argument Description varName A variable name. amount A number (default=1). Examples set var1 5.7 set var2 100 decr var1 9 decr var2 4.5 echo The echo command returns the input content if the user input can be echoed. Syntax echo anyInput Returns The input content if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 49 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description anyInput Any content that user inputs. Examples echo abcd set abcd [random 1024] echo $abcd echo {$abcd} elemN The elemN command returns a list if the nth element in a list can be obtained. This command treats the first element in the list as rank 1 but not 0. Syntax elemN aList n Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. n An integer. Examples elemN [list 10 9 8 7 6 5 4 3 2 1] 3 ;# 8 is returned encrypt The encrypt command returns 1 if the device ASCII file can be encrypted to an unreadable format. Syntax encrypt plainFile cypherFile 50 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Returns 1 if successful; otherwise, returns 0. Arguments Argument Description plainFile Any input device file. cypherFile An output file name. Examples encrypt leoArc.tcl leoArc.cp firstIdxStr The firstIdxStr command returns a string if the substring of str2 can be obtained from the first occurrence of str1 to the end. Syntax firstIdxStr str1 str2 Returns A string if successful; otherwise, returns nothing. Arguments Argument Description str1, str2 Strings. Examples firstIdxStr a xyzabcdef firstIdxStr abc xyzababab ;# abcdef is returned ;# ““ is returned getenv The getenv command returns the content of the environment variable if the content of some environment variables can be obtained under UNIX shell. Syntax getenv envVar Laker³ Tcl Reference Manual K-2015.06 51 Chapter 2: General Tcl Extensions Basic User-definable Commands Returns The content of the environment variable if successful; otherwise, returns nothing. Arguments Argument Description envVar The environment variable. Examples getenv DISPLAY getenv PATH getenv abc getInstallDir The getInstallDir command returns the install directory of the product if the install directory of the product can be obtained. Syntax getInstallDir Returns The install directory of the product if successful; otherwise, returns nothing. Arguments None Examples set installDir [getInstallDir] incr The incr command returns a number if the variable, whose content is a number, with some amount can be increased. Syntax incr varName [amount] Returns A number if successful; otherwise, returns nothing. 52 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description varName A variable name. amount A number (default=1). Examples set var1 5.7 set var2 100 incr var1 9 incr var2 4.5 intToChar The intToChar command returns a character if the integer can be converted to a character where the integer encodes the character in the machine. Syntax intToChar aInt Returns A character if successful; otherwise, returns nothing. Arguments Argument Description aInt An integer. Examples intToChar 97 intToChar [charToInt a] isEmptyList The isEmptyList command returns 1 if the given list is empty. Syntax isEmptyList aList Returns 1 if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 53 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description aList A list. Examples set listL [myProc1 “abc.def”] if {[isEmptyList $listL]} { stop “something wrong while processing \”abc.def\”” } isEqual The isEqual command returns 1 if two objects are equal. Syntax isEqual obj1 obj2 Returns 1 if successful; otherwise, returns 0. Arguments Argument Description obj1, obj2 Data objects. Examples set listL [myProc1 “abc.def”] if {[isEqual $listL [list]]} { stop “something wrong while processing \”abc.def\”” } isEven The isEven command returns 1 if the number is even. Syntax isEven aInt Returns 1 if successful; otherwise, returns 0. 54 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description aInt An integer. Examples isEven [random] isFileEncrypted The isFileEncrypted command returns 1 if the input file is encrypted. Syntax isFileEncrypted aFileName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description aFileName An input encrypted file. Examples isFileEncrypted leoArc.cp isFloat The isFloat command returns 1 if the input is a decimal floating point number. Syntax isFloat anyInput Returns 1 if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 55 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description anyInput Any input. Examples isFloat [expr sin(3.14/2)] isFloat 2.0 isInteger The isInteger command returns 1 if the decimal input is an integer. Syntax isInteger anyInput Returns 1 if successful; otherwise, returns 0. Arguments Argument Description anyInput Any input. Examples isInteger [expr sin(3.14/2)] isInteger 2 isNegative The isNegative command returns 1 if the decimal number is negative. Syntax isNegative aNum Returns 1 if successful; otherwise, returns 0. 56 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description aNum A number. Examples isNegative -2.71828 isNEqual The isNEqual command returns 1 if two objects are “not equal”. Syntax isNEqual obj1 obj2 Returns 1 if successful; otherwise, returns 0. Arguments Argument Description obj1, obj2 Data objects. Examples isNEqual ““ [list] isNEqual [list 1 2 3] [list a b c] isNEqual 97 [charToInt a] isNumber The isNumber command returns 1 if the input is a decimal number. Syntax isNumber anyInput Returns 1 if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 57 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description anyInput Any input. Examples isNumber [expr sin(3.14/2)] isNumber 2 isOdd The isOdd command returns 1if the integer is odd. Syntax isOdd aInt Returns 1 if successful; otherwise, returns 0. Arguments Argument Description aInt An integer. Examples isOdd [random] isOdd -45 isOne The isOne command returns 1 if the number is equal to 1. Syntax isOne aNum Returns 1 if successful; otherwise, returns 0. 58 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description aNum A number. Examples isOne [random 2] isOne 1.00000 isPositive The isPositive command returns 1 if the number is positive. Syntax isPositive aNum Returns 1 if successful; otherwise, returns 0. Arguments Argument Description aNum A number. Examples isPositive [expr sin([random])] isSymbolicLink The isSymbolicLink command returns 1 if the file is symbolic link. Syntax isSymbolicLink fileName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description fileName A file name. Laker³ Tcl Reference Manual K-2015.06 59 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples isSymbolicLink abc isZero The isZero command returns 1 if the number is equal to 0. Syntax isZero aNum Returns 1 if successful; otherwise, returns 0. Arguments Argument Description aNum A number. Examples isZero [random 2] lastElem The lastElem command returns a data object if the last element in a list can be obtained. Syntax lastElem aList Returns A data object if successful, otherwise, returns nothing. Arguments Argument Description aList A list. Examples lastElem {a b c 1 2 3} lastElem [list a b c [list 1 2 3]] 60 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands lastIdxStr The lastIdxStr command returns a string if the substring of str2 can be obtained from the last occurrence of str1 to the end. Syntax lastIdxStr str1 str2 Returns A string if successful; otherwise, returns nothing. Arguments Argument Description str1, str2 Strings. Examples lastIdxStr abc 1abcdabcdefabcx ;# abcx is returned max The max command returns a number if the maximum can be obtained among several numbers. Syntax max num1 [num2 [num3 ...]] Returns A number if successful, otherwise, returns nothing. Arguments Argument Description num1, num2, num3 Numbers. Examples max 1 2 3 4 4.05 -8 3 Laker³ Tcl Reference Manual K-2015.06 61 Chapter 2: General Tcl Extensions Basic User-definable Commands member The member command returns a list if the maximum sublist of aList can be obtained from the first occurrence of aElem in aList to the end. Syntax member aElem aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aElem Any data objects. aList A list. Examples member a [list 1 2 3 a b c 1 2 3] ;# {a b c 1 2 3} is returned member [list 1 2] [list 1 2 3 [list 1 2] a b] ;# {{1 2} a b} is returned min The min command returns a number if the minimum can be obtained among several numbers. Syntax min num1 [num2 [num3 ...]] Returns A number if successful; otherwise, returns nothing. Arguments Argument Description num1, num2, num3 Numbers. Examples min $a $b $c 62 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands mod The mod command returns an integer if the remainder, that the divisor (int2) divides the dividend (int1), can be obtained. This remainder has the same sign as the dividend. Syntax mod int1 int2 Returns An integer if successful; otherwise, returns nothing. Arguments Argument Description int1,int2 Integers. Examples mod 5 3 mod -5 3 ;# 2 is returned ;# -2 is returned pdecr The pdecr command returns the original value that stored in the variable if the variable, whose content is a number, with some amount can be decreased. Syntax pdecr varName [amount] Returns The original value that stored in the variable if successful; otherwise, returns nothing. Arguments Argument Description varName A variable name. amount A number (default=1). Laker³ Tcl Reference Manual K-2015.06 63 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples set var1 200 pdecr var1 set var1 pdecr var1 3.5 set var1 ;# 200 is returned ;# 199 is returned ;# 199 is returned ;# 195.5 is returned pincr The pincr command returns the original value that stored in the variable if the variable, whose content is a number, with some amount can be increased. Syntax pincr varName [amount] Returns The original value that stored in the variable if successful; otherwise, returns nothing. Arguments Argument Description varName A variable name. amount A number (default=1). Examples set var1 200 pincr var1 set var1 pincr var1 3.5 set var1 ;# ;# ;# ;# 200 is returned 201 is returned 201 is returned 204.5 is returned putenv The putenv command returns 1 if the shell (UNIX shell) environment variable is set up. The input string should be in “xxx=yyy” format. The substring before ‘=’ is the environment variable and the substring after ‘=’ is the content of the variable. 64 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands If ‘=’ doesn’t exist within the string, a shell environment variable is set without any content. Syntax putenv aString Returns 1 if successful; otherwise, returns 0. Arguments Argument Description aString A string. Examples putenv putenv getenv getenv abc def=1 abc def random The random command returns a random number if the random number can be obtained. The argument, aInt, is optional. If it is specified, the random number is modulo aInt; otherwise, no modulation is done. For example, the following two statements are equivalent. set rNum [random 1024] ;# statement 1 set rNum [random] ; set rNum [mod $rNum 1024] ;# statement 2 XX Syntax random [aInt] Returns A random number if successful; otherwise, returns nothing. Arguments Argument Description aInt An integer. Laker³ Tcl Reference Manual K-2015.06 65 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples set rNum [random 2] if {$rNum == 0} { puts “even” } else { puts “odd” } reverseList The reverseList command returns a list if the order of elements in a list can be reversed. Syntax reverseList aList Returns A list if successful; otherwise, returns nothing. Arguments Argument Description aList A list. Examples reverseList [list a c [list 1 2 3] 1 2 3 b c [list 1 2 3] 1 2 3] source_enc The source_enc command returns 1 if the encrypted device file can be sourced. This command is similar to the Tcl function source. Syntax source_enc encryptedFile Returns 1 if successful; otherwise, returns 0. Arguments 66 Argument Description encryptedFile An input encrypted file. Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples source_enc leoArc.cp srandom The srandom command returns 1 if the random seed is set. Syntax srandom aInt Returns 1 if successful; otherwise, returns 0. Arguments Argument Description aInt An integer. Examples srandom [random [random [random]]] stop The stop command halts the execution of the Tcl script file. If the argument aString is not specified, no warning messages are shown. Syntax stop [aString] Returns None Arguments Argument Description aString A string. Laker³ Tcl Reference Manual K-2015.06 67 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples set status [myProc1 $fName] if {$status == “unknown”} { set warnMsg [format “fail to process file %s” $fName] stop $warnMsg } strcat The strcat command returns a string if several strings can be concatenated to a new one. Syntax strcat str1 [str2 [ ...]] Returns A string if successful; otherwise, returns nothing. Arguments Argument Description str1, str2 ... Strings. Examples strcat 123 abc stringLess The stringLess command returns 1 if str1 is less than str2 in alphabetical order. Syntax stringLess str1 str2 Returns 1 if successful, otherwise, returns 0. Arguments 68 Argument Description str1, str2 ... Strings. Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Examples stringLess “abcdef” “defghi” strncat The strncat command returns a string if two strings can be concatenated to a new one, where the second string is concatenated to the first one with at most n characters. Syntax strncat str1 str2 n Returns A string if successful; otherwise, returns nothing. Arguments Argument Description n An integer. str1, str2 Strings. Examples strncat abcdef ghi 2 strncmp The strncmp command compares two strings by n characters. Syntax strncmp str1 str2 n Returns 0 if the two strings are equal by n characters. 1 if str1 is greater than str2 in alphabetical order. -1 if str1 is less than str2 in alphabetical order. Laker³ Tcl Reference Manual K-2015.06 69 Chapter 2: General Tcl Extensions Basic User-definable Commands Arguments Argument Description n An integer. str1, str2 Strings. Examples strncmp abcdef abcxyz 5 subStr The subStr command returns a string if the substring of aString can be obtained from index (idx) to the end with length n. If idx is negative, the index counts from the right to the left. Syntax subStr aString idx [n] Returns A string if successful; otherwise, returns nothing. Arguments Argument Description aString A string. idx, n Integers. Examples subStr subStr subStr subStr abcdefghi abcdefghi abcdefghi abcdefghi 3 3 4 -8 -8 4 ;# cdefghi is returned ;# cdef is returned ;# bcdefghi is returned ;# bcde is returned timeCmp The timeCmp command compares two time strings and returns their difference in seconds. 70 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Syntax timeCmp timeStr1 timeStr2 Returns An integer if successful; otherwise, returns nothing. Arguments Argument Description timeStr1, timeStr2 Time strings. Examples timeCmp [currentTime] [timeToTimeStr [file mtime addring.tcl]] set secThisYear [timeCmp “Jan 1 0:0:0 2001” “Jan 1 0:0:0 2000”] timeStrToTime The timeStrToTime command returns an absolute time clock in seconds if the time string can be converted to the absolute time clock in seconds, which is a decimal integer. Syntax timeStrToTime aString Returns An absolute time clock in seconds if successful; otherwise, returns nothing. Arguments Argument Description aString A string. Examples timeStrToTime “Nov 11 9:9:9 2000” timeToTimeStr The timeToTimeStr command returns a time string if the absolute time clock can be converted to a time string. Laker³ Tcl Reference Manual K-2015.06 71 Chapter 2: General Tcl Extensions Basic User-definable Commands Syntax timeToTimeStr aInt Returns A time string if successful; otherwise, returns nothing. Arguments Argument Description aInt An integer. Examples timeToTimeStr [file mtime ioPrep.tcl] tmpFileName The tmpFileName command returns a file name if the unique temporary file name can be made. Syntax tmpFileName [aString] Returns A file name if successful; otherwise, returns nothing. Arguments Argument Description aString A string. Examples ## make a temp file and write something on it set fName [tmpFileName] set fHandle [open $fName w] set str [format “How are you?\n %s %d” abc 123] puts $fHandle $str close $fHandle tmpName The tmpName command returns a symbol if the unique temporary symbol can be made. 72 Laker³ Tcl Reference Manual K-2015.06 Chapter 2: General Tcl Extensions Basic User-definable Commands Syntax tmpName [aString] Returns A symbol if successful; otherwise, returns nothing. Arguments Argument Description aString A string. Examples tmpName “abc” tmpName Laker³ Tcl Reference Manual K-2015.06 73 Chapter 2: General Tcl Extensions Basic User-definable Commands 74 Laker³ Tcl Reference Manual K-2015.06 3 3 GUI Extensions This chapter describes the definable Tcl commands for the Graphical User Interface (GUI) which applied within the Laker3 system. This chapter contains the following sections: ■ Bottom-Up Construction ■ Global Symbols ■ Menu ■ Dialog Box ■ Form and Field ■ Pre-processing Tcl Callback Functions ■ Miscellaneous Laker³ Tcl Reference Manual K-2015.06 75 Chapter 3: GUI Extensions Bottom-Up Construction Bottom-Up Construction All composite user-interface objects should be created in a bottom-up method. In other words, each sub-object must be created before the composite objects. Global Symbols All commands must specify a unique symbol name to identify the objects, and all creating commands return a system-generated handle to the user. If the create commands of two different objects are specified with the same symbol name, the former created objects are overwritten by the latter. The handle or symbol can be used to identify the objects. For example: set cyclicHandle [gtCreateCyclicField \ -name cyclicSymbol \ -prompt “choose Animal: “ \ -value “dog” \ -defValue “cat” \ -choices [list “elephant” “mouse” “cat” “dog” “whale” “dophine” “tiger” “snake” “shark”]] set formHandle [gtCreateAppForm \ -name formSymbol \ -title “demo” \ -buttonLayout OKCancelDefApply \ -fields $cyclicHandle \ -callback {puts “you press OK or apply”}] To get the value of a sub-object after the composite object is created, the command formSymbol(cyclicSymbol:value) must be used to get the value in cyclicSymbol. The symbol of each created object must be different, otherwise it gets confused when trying to get the information via a symbol name. Refer to the Form and Field section for more details. 76 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Menu Menu Three types of menus are supported in GUI extensions: Popup menu, Pulldown menu, and Fixed menu (not supported currently). Each menu item must be created before building a popup menu or a pulldown menu. After creating the menu items, assign them to Menu, PullDown Menu, PopupMenu, Cascade Menu, etc. The Menu Create commands are described as follows: ■ gtAppendBannerMenu ■ gtCreateMenu ■ gtCreateMenuItem ■ gtCreatePulldownMenu ■ gtCreateSliderMenuItem ■ gtHideBannerMenu ■ gtShowBannerMenu gtAppendBannerMenu The gtAppendBannerMenu command appends a pull-down menu to the menu bar of the Home Page or Design/Layout window pane. Syntax gtAppendBannerMenu [ -window windowId | -windowType windowType] -file user_defined_menu_file Returns None Laker³ Tcl Reference Manual K-2015.06 77 Chapter 3: GUI Extensions Menu Arguments Argument Description -file user_defined_menu_file Specify the user-defined menu file. The menu file is as follows:Menu your_pulldown_menu_name { # Label Mnemonic Type Dummy Your_Tcl_Command "myTcl1" 1 f.tcl dummy "puts my tcl command 1" "SubMenu2" 2 f.menu "mySubMenu2" " } Menu mySubMenu2 { #_Label Mnemonic Type Dummy Your_Tcl_Command "myTcl3" 3 f.tcl dummy "puts my tcl command 3" } -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. -windowType windowType Specify the window type. This argument is case insensitive. Valid values for Laker: lakerDsgWnd (Design/Layout window pane) and lakerMasterWnd (Home Page). Valid values for ADP: LEOMASTERWND (Home Page) AMSFM_TOP_DSGWND (Schematic Editor SIM_MAINMGR_WND), (Simulation Console), nAnalyzer (LakerWave window), and SYMFM_TOP_DSGWND (Symbol Editor). 78 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Menu Examples gtAppendBannerMenu -windowType lakerDsgWnd -file ~/Tcl/laker3/ lakerAppend1.menu #lakerAppend1.menu Menu myTclCmd2 { # Label Mnemonic Type Dummy "your Tcl command" "myTcl2" _2 f.tcl dummy "puts {***************myTcl2*************}" "myTcl3" _3 f.tcl dummy "puts {***************myTcl3*************}" "myTcl4" _4 f.tcl dummy "puts {***************myTcl4*************}" "myTcl5" _5 f.tcl dummy "puts {***************myTcl5*************}" "myTclMenu6" _6 f.menu "myTclMenu6" } Menu myTclMenu6 { "myTcl61" _1 f.tcl dummy "puts {***************myTcl61*************}" "myTcl62" _2 f.tcl dummy "puts {***************myTcl62*************}" "myTcl63" _3 f.tcl dummy "puts {***************myTcl63*************}" "myTcl64" _4 f.tcl dummy "puts {***************myTcl64*************}" } gtCreateMenu The gtCreateMenu command returns an object handle if the popup menu (with menu items created in the gtCreateMenuItem call) can be created. Syntax gtCreateMenu -name menuSymbol -prompt “menu title” -fields $field1 $field2 ... Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -fields $field1 $field2 Specify the menu items created in gtCreateMenuItem and gtCreateSliderMenuItem. Laker³ Tcl Reference Manual K-2015.06 79 Chapter 3: GUI Extensions Menu Argument Description -name menuSymbol Specify the menu symbol. -prompt “menu title” Specify the menu title. Examples set menu1 [gtCreateMenu -name menu1 -fields $item1 $item2] gtCreateMenuItem The gtCreateMenuItem command returns an object handle if the menu item can be created. Syntax gtCreateMenuItem -name menuSymbol -itemText {text} -callback {commands} -disable 0|1 Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {commands} Specify the Tcl procedures to be executed when the MenuItem is selected. -disable 0|1 If set to 1, the item is grayed (not selectable). Valid values: Boolean values, 0 and 1. -itemText {text} Specify the text shown on the button. -name menuSymbol Specify the symbol of the menu item. Examples set item1 [gtCreateMenuItem -name item1 -itemText "item1" \ -callback [list sum 1 $var1] ] set item2 [gtCreateMenuItem -name item2 -itemText "exit" \ -callback {exit} ] 80 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Menu gtCreatePulldownMenu The gtCreatePulldownMenu command returns an object handle if the pulldown menu on the window menu bar can be created. This kind of menus cannot be existed on a form. Syntax gtCreatePulldownMenu -name menuSymbol -prompt “Menu Text” fields $menufield1 $menufield2 ... Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -fields $menufield1 $menufield2 Specify the menu items created in gtCreateMenuItem and gtCreateSliderMenuItem. -name menuSymbol Specify the menu symbol. -prompt “Menu Text” Specify the menu title. Examples set puldwn1 [gtCreatePulldownMenu -name menu1 \ -prompt "pulldown1" -fields [list $item1 $item2]] gtCreateSliderMenuItem The gtCreateSliderMenuItem command returns an object handle if the cascade menu item can be created. gtCreateMenu must be used to create a menu before assigning it to a Slider Menu. Syntax gtCreateSliderMenuItem -name menuSymbol -subMenu $menu1 itemText “SliderMenu Text” -disable 0|1 Returns An object handle if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 81 Chapter 3: GUI Extensions Menu Arguments Argument Description -disable 0|1 If set to 1, the item is grayed (no selectable). Valid values: Boolean values, 0 and 1. -itemText “SliderMenu Text” Specify the prompt string shown on the slider menu item. -name menuSymbol Specify the slider menu symbol. -subMenu $menu1 Specify the menu handle created in gtCreateMenu, not the menu symbol. Examples set menu1 [gtCreateMenu -name menu1 -fields $item1 $item2] set sld1 [gtCreateSliderMenuItem -name slider1 \ -itemText "slider menu1" -subMenu $meun1] See Also The following shows an example of a popup menu. Figure 1 Example of Menu The Tcl example is listed as follows: proc sum {arg1 arg2 arg3} { set result [expr $arg1 + $arg2 + $arg3] puts “$arg1+$arg2+$arg3 = $result” } set var1 10 set itm1 [gtCreateMenuItem -name item1 -itemText “item1” \ -callback {sum 1 1 $var1}] set itm2 [gtCreateMenuItem -name exit -itemText “exit” \ -callback {exit}] set itm3 [gtCreateMenuItem -name item3 -itemText “item3” \ -callback {sum 3 3 3}] set itm4 [gtCreateMenuItem -name item4 -itemText “item4” \ 82 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Menu -callback {sum 4 4 4}] set itm5 [gtCreateMenuItem -name item5 -itemText “item5” \ -callback {sum 5 5 5}] set men1 [gtCreateMenu -name menu1 \ -fields [list $itm1 $itm2]] set sld1 [gtCreateSliderMenuItem -name slider1 \ -itemText “slider menu1” -subMenu $men1] set men2 [gtCreateMenu -name menu2 \ -fields [list $itm3 $itm4 $sld1]] set sld2 [gtCreateSliderMenuItem -name slider2 \ -itemText “slider menu2” -subMenu $men2] gtCreateMenu -name popupmenu1 -prompt “a cascade menu” \ -fields [list $itm4 $itm5 $sld2] gtDisplay -name popupmenu1 gtHideBannerMenu The gtHideBannerMenu command hides a pull-down menu or a command item on the window menu bar. Syntax gtHideBannerMenu [-window windowId | -windowType windowType] [-itemName name | -menuname name] Returns None Arguments Argument Description -itemName name Specify the command item in the menu file. -menuname name Specify the menu to be hidden. -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. Laker³ Tcl Reference Manual K-2015.06 83 Chapter 3: GUI Extensions Menu Argument Description -windowType windowType Specify the window type. This argument is case insensitive. Valid values for Laker: lakerDsgWnd (Design/Layout window pane) and lakerMasterWnd (Home Page). Valid values for ADP: LEOMASTERWND (Home Page), AMSFM_TOP_DSGWND (Schematic Editor), SIM_MAINMGR_WND (Simulation Console), nAnalyzer (LakerWave window), and SYMFM_TOP_DSGWND (Symbol Editor). Examples # Example 1 # Hide the "Cell>Open" command in the Design window # Before executing the Tcl, check the menu file, leoDsgWnd.menu, # to find the item name: # Menu Cell # { # "Open..." _O f.exec "LEODSGOpen" # ... # } gtHideBannerMenu -windowType lakerDsgWnd -itemName LEODSGOpen # Example 2 # Hide the Window pull-down menu and “Cell>Open” in the Home Page gtHideBannerMenu -windowType lakerMasterWnd -menuName Window gtHideBannerMenu -windowType lakerMasterWnd -itemName LEOMasterOpen # Example 3 # Hide the Window menu and “Cell > Open” in the Layout window gtHideBannerMenu -window [lakerGetActiveWnd] -menuName Window gtHideBannerMenu -window [lakerGetActiveWnd] -itemName LEOMasterOpen gtHideBannerMenu -windowType lakerDsgWnd -menuName Window gtHideBannerMenu -windowType lakerDsgWnd -itemName LEODSGOpen See Also gtShowBannerMenu gtShowBannerMenu The gtShowBannerMenu command shows a pull-down menu or a command item on the window menu bar. 84 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Menu Syntax gtShowBannerMenu [-window windowId | -windowType windowType] [-itemName name | -menuname name] Returns None Arguments Argument Description -itemName name Specify the command item in the menu file. -menuname name Specify the menu to be shown. -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. -windowType windowType Specify the window type. This argument is case insensitive. Valid values for Laker: lakerDsgWnd (Design/Layout window pane) and lakerMasterWnd (Home Page). Valid values for ADP: LEOMASTERWND (Home Page), AMSFM_TOP_DSGWND (Schematic Editor), SIM_MAINMGR_WND (Simulation Console), nAnalyzer (LakerWave window), and SYMFM_TOP_DSGWND (Symbol Editor). Examples # Example 1 # Show the "Cell>Open" command in the Design window # Before executing the Tcl, check the menu file, leoDsgWnd.menu, # to find the item name: # Menu Cell # { # "Open..." _O f.exec "LEODSGOpen" # ... # } gtShowBannerMenu -windowType lakerDsgWnd -itemName LEODSGOpen # Example 2 # Show the Window pull-down menu and “Cell>Open” in the Home page gtShowBannerMenu -windowType lakerMasterWnd -menuName Window gtShowBannerMenu -windowType lakerMasterWnd -itemName LEOMasterOpen Laker³ Tcl Reference Manual K-2015.06 85 Chapter 3: GUI Extensions Dialog Box # Example 3 # Show the Window menu and “Cell>Open” in the Layout window gtShowBannerMenu -window [lakerGetActiveWnd] -menuName Window gtShowBannerMenu -window [lakerGetActiveWnd] -itemName LEOMasterOpen gtShowBannerMenu -windowType lakerDsgWnd -menuName Window gtShowBannerMenu -windowType lakerDsgWnd -itemName LEODSGOpen See Also gtHideBannerMenu Dialog Box Dialog boxes are popup windows containing messages displayed to the user. Currently, Laker3’s GUI extensions support the following basic dialogs: Error, Information, Warning, Working, and Question. Each dialog box has at least three buttons: OK, Cancel, and Help. Only the OK and Cancel buttons can dismiss the current dialog box. The dialog styles are summarized as follows. Style Sub-style Affect Modal Application Modal Block all applications in GUI Modal System Modal Block all System Process Modeless - Non-block In the Application Modal, all applications in GUI extensions or other applications, such as Laker3, are blocked when the OK or Cancel button is clicked. In the System Modal, all processes in the environment are blocked when the OK or Cancel button is clicked. The programs for Modeless style can be run at the same time. 86 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Dialog Box All the dialogs have the same options. The Dialog Create Command is described as follows. ■ gtDisplayAppDBox gtDisplayAppDBox The gtDisplayAppDBox command returns an object handle if the dialog box can be created. Syntax gtDisplayAppDBox -name dialogSymbol -dboxBanner “Title” dboxText “message shown in the dialog” -dialogType “Type” -buttonLayout “ButtonType” -defaultButton (1|2|3|4) callback {commands 1} {commands2} ... -location {X Y} Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -buttonLayout “ButtonType” Specify the type of buttons in a dialog. Valid values: OKCancel, YesNo, YesNoCancel, and Close. -callback {commands 1} {commands2} ... Run user-specified actions when the OK, Yes, and Apply buttons are clicked. -dboxBanner “Title” Specify the dialog title. -dboxText “message shown in the dialog” Specify the message shown in the Dialog. -defaultButton (1|2|3|4) Specify the initial focus button when the dialog first appears. The valid range is 1-4 (depends on the buttons created), the maximum is 4. Exceeded number is replaced by 1 as the initial focus button. -dialogStyle Specify the dialog style. Valid values: Modeless, Modal, and systemModal. Laker³ Tcl Reference Manual K-2015.06 87 Chapter 3: GUI Extensions Dialog Box Argument Description -dialogType “Type” Specify the dialog type. Valid values: WarningDialog, ErrorDialog, InformationDialog, MessageDialog, QuestionDialog, and WorkingDialog. -location {X Y} Specify the X/Y position related to the entire Screen. The origin is upperleft. The valid format is {X Y}, where X and Y are integers that are greater than or equal to 0, for example: {123 234}. If an invalid position (for example: {-1 123.456}) is specified, the system uses {0 0} as the default position. -name dialogSymbol Specify the symbol name that is specified by the user. Examples The following shows an example of a warning dialog. Figure 2 88 Dialogs for Error, Information, Message, Question, Warning and Working Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field The Tcl example is demonstrated as follows: set dlg [gtDisplayAppDBox -name Dialog2 \ -dialogType “WarningDialog” -defaultButton 2 \ -dboxBanner “a dialog” -buttonLayout “YesNoCancel” \ -dboxText “Warning DIALOG “ -location {200200} \ -callback {puts “you press YES”} {sum 3 3 3}] Form and Field A standard form is used to solicit data from the user under normal operation. A form is like a container, which contains fields receiving user input. The creation order is from bottom up. That means you must create fields before using them, then create a form to include those fields. Each standard form contains a banner showing the title of the current form and four selectable buttons. These buttons perform the following actions: ■ The OK button applies all changes indicated in the form, executes any userdefined Tcl commands, and hides the form from the screen. ■ The Cancel button cancels any changes made to the form, and hides the form from the screen. ■ The Defaults button sets all values in the form to their default values. ■ The Apply button applies the changes indicated in the form and leaves the form displayed for further changes. Note: All fields must be ready before creating a form. gtDisplay must be called to display the form on screen since it does not appear immediately after gtCreateAppForm is called. Laker³ Tcl Reference Manual K-2015.06 89 Chapter 3: GUI Extensions Form and Field The meaning of symbols and argument comments are explained as follows: ■ formSymbol, fieldSymbol: User-defined symbols for forms and fields. ■ formHandle, fieldHandle: System-created pointer address (hexadecimal value). ■ Point Argument: The currently supported argument is [list X Y] or (X,Y). In the argument [list X Y], spaces are used to differentiate two coordinates, for example, [list $x1+$x2 $y1+$y2] is legal. However, [list $x1 +$x2 $y1 +$y2] is illegal since in Tcl, it expands [list $x1+$x2 $y1+$y2] as {20 30}, supposed that x1=5, y1=10, x2=15, y2=20; and [list $x1 +$x2 $y1 +$y2] is expanded to {5 +15 15 +20}, it is ambiguous to explain “+”15 that stands for “add” or “sign”. In addition, it is ambiguous that how we group the expression ? 5, +15 15 +20 or 5 +15 15 , +20. In the argument (X,Y), spaces are not allowed between two coordinates, for example, ($x1+$x2,$y1+$y2) is legal, but ($x1 +$x2,$y1 +$y2) is illegal. Note: Do not leave spaces for unnecessary places. When all fields are created and displayed under a form, GUI extensions create a specific set of variables, which can be used directly to control the form. After all fields are instantiated in a form, for example, you can type the command set myform(stringfield:value) under the command window to get the value, or you can type set myform(stringfield:value) = {Hello Laker!} to set the field value. The following paragraphs explain the definition of those variables. The table below lists six reserved attributes in the Form and Field structures, respectively. Form Reserved Attributes Field Reserved Attributes GtFormSym Value FieldList DefValue _formType 90 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Form Reserved Attributes Field Reserved Attributes DoneAction FieldType dialogStyle Choices Font The Form data structure is illustrated in the following table: Array Name Key MyForm gtFormSym Attribute Value fieldList _formType doneAction dialogStyle Font MyField1 value lastValue fieldType choices MyField2 ... MyField3 ... MyField4 value defValue fieldType choices ... Laker³ Tcl Reference Manual K-2015.06 ... 91 Chapter 3: GUI Extensions Form and Field In the C-based argument, formSymbol>fieldSymbol>value is used to retrieve the attribute value in a form while in Tcl formSymbol(fieldSymbol:value) is used. The difference is shown in the following table. Argument Description formSymbol>gtFormSym (read only) formSymbol >fieldList (read only) formSymbol>_formType (read only) formSymbol>doneAction (read only) formSymbol>font (read only) formSymbol>dialogStyle (read only) formSymbol(gtFormSym) formSymbol(fieldList) formSymbol(_formType) formSymbol(doneAction) formSymbol(font) formSymbol(dialogStyle) formSymbol>fieldSymbol>value formSymbol>fieldSymbol>defValue formSymbol>fieldSymbol>fieldType formSymbol>fieldSymbol>choices formSymbol(fieldSymbol:value) formSymbol(fieldSymbol:defValue) formSymbol(fieldSymbol:fieldType) formSymbol(fieldSymbol:choices) A Tcl array is indeed a hash table; its argument is summarized in the following table. ■ Each entry in the hash table is indexed by a key. ■ ArrayName(IndexKey): No space is allowed between “(” and “)” - left and right parentheses. If the user types ArrayName(Index1)(Index2) in Tcl, it does not mean 2D array key index instead, it means ArrayName(“Index1)(Index2”). Thus, typing formSymbol(fieldSymbol:value) means formSymbol>fieldSymbol>value. 92 Array Name Key Attribute Value MyForm hiFormSym MyForm MyForm fieldList MyField1 MyField2 ... MyForm _formType nonoption MyForm DoneAction Callback Commands MyForm DialogStyle Modeless, Modal,... Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Array Name Key Attribute Value MyForm Font MyForm MyField1:value ... MyForm MyField1:defValue ... MyForm MyField1:FieldType ... MyForm MyField1:choices ... MyForm MyField2:value ... MyForm MyField2:defValue ... MyForm MyField2:FieldType ... MyForm MyField2:choices ... ... ... ... The Form and Field commands are described as follows. ■ gtCreateAppForm ■ gtCreateBooleanButton ■ gtCreateButton ■ gtCreateButtonBoxField ■ gtCreateCyclicField ■ gtCreateFileOpenField ■ gtCreateFloatField ■ gtCreateForm ■ gtCreateIntField ■ gtCreateLabel ■ gtCreateListBoxField ■ gtCreateListField ■ gtCreatePointField ■ gtCreatePointListField Laker³ Tcl Reference Manual K-2015.06 93 Chapter 3: GUI Extensions Form and Field ■ gtCreateRadioField ■ gtCreateSeparatorField ■ gtCreateStringField ■ gtCreateToggleField ■ gtDeleteForm ■ gtDisableField ■ gtDisplay ■ gtEnableField ■ gtFormApply ■ gtFormCancel ■ gtFormDone gtCreateAppForm The gtCreateAppForm command returns an object handle if the form can be created. Syntax gtCreateAppForm -name formSymbol -fields [list $field1 $field2 ...] [-title “Form Title”] [-dialogStyle (Modeless | modal | systemModal)] [-initialSize {width height}] [-buttonLayout “ButtonType”] [-callback {command1} {command2} ...] Returns An object handle if successful; otherwise, returns 0. Arguments 94 Argument Description -buttonLayout “ButtonType” Specify the type of buttons in a dialog. Valid values: OKCancel, OKCancelDef, OKCancelApply, ApplyCancel, ApplyCancelDef, and OKCancelDefApply (default=OKCancelDefApply). Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Argument Description -callback {commands 1} {commands2} ... Specify the Tcl Callback command list to be executed when the OK or Apply button is clicked. -dialogStyle (Modeless | modal | systemModal) Specify the dialog style. Valid values: modeless, modal, and systemModal (default=modeless). -fields [list $field1 $field2 ...] Specify the list of field handles returned from gtCreateXXXFields. To specify more than one field, use [list $field1 $field2 ...] to enclose the fields. -formType Specify the form type. Valid values: Options and NonOptions (default=NonOptions). -initialSize {width height} Specify an initial form size by giving a value for width and height. -name formSymbol Specify the form symbol (for example: demo). -title "Form Title" Specify the form title (for example: "This is a form"). Examples set form1 [gtCreateAppForm -name demo -title “This is a form” \ -buttonLayout OKCancelDefApply \ -fields [list $btn2 $btn1 $cyc2 $int1 $bol1 $list1 $bbox1 $rad1] \ -callback {puts “you press OK or apply”} -initialSize {800 600}] gtCreateBooleanButton The gtCreateBooleanButton command returns an object handle if the state of the Boolean button, 1 (pressed) or 0 (unpressed), can be defined. Syntax gtCreateBooleanButton -name fieldSymbol -buttonText “Boolean Text” [-value 0|1] [-defValue 0|1] [-callback {command1} {command2} ...] Returns An object handle if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 95 Chapter 3: GUI Extensions Form and Field Arguments Argument Description -buttonText “Boolean Text” Specify the string shown beside the Boolean button. -callback {command1} {command2} ... Specify the Tcl callback command list to be executed. -defValue 0|1 Specify the default value. Valid values: Boolean values, 0 and 1. -name fieldSymbol Specify the field symbol. -value 0|1 Valid values: Boolean values, 0 and 1. Examples set bol1 [gtCreateBooleanButton -name bool1 -prompt “Boolean” \ -value 1 -defValue 0] # Output Result, see figure below gtCreateButton The gtCreateButton command returns an object handle if the push button can be created. Syntax gtCreateButton -name fieldSymbol -buttonText “ButtonText” [-callback {command1} {command2} ...] Returns An object handle if successful; otherwise, returns 0. 96 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Arguments Argument Description -buttonText “ButtonText” Specify the string shown on the button. -callback {command1} {command2} ... Specify the Tcl callback command list to be executed. -name fieldSymbol Specify the field symbol. Examples set btnA [gtCreateButton -name buttonA \ -buttonText “buttonA” -callback {myformB}] # Output Result, see figure below gtCreateButtonBoxField The gtCreateButtonBoxField command returns an object handle if the group of buttons in a field can be created. Syntax gtCreateButtonBoxField -name fieldSymbol -choices {choice1 choice2 ... choicen} [-callback {command1} {command2} ... {commandn}] Returns An object handle if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 97 Chapter 3: GUI Extensions Form and Field Arguments Argument Description -callback {command1} {command2} ... {commandn} Specify the Tcl callback command list to be executed. The number of callback commands must be the same with the one in the choice list. -choices {choice1 choice2 ... choicen} Specify a list of button choices. -name fieldSymbol Specify the field symbol. Examples set bbox1 [gtCreateButtonBoxField -name car \ -choices “BMW” “BENZ” “Toyota” “Honda” \ “VolksWagon” “Land Rover” -callback {sum 1 1} {puts “BENZ”} {pubs “Toyota”} \ {puts “Honda”} {puts “VolksWagon”} {puts “Land Rover”} \ -prompt “choose CAR:” ] # The output result is shown in the following figure: gtCreateCyclicField The gtCreateCyclicField command returns an object handle if the cyclic field for option-select can be created. Syntax gtCreateCyclicField -name fieldSymbol -choices {choice1 choice2 ... choicen} [-value “the value in choice list”] [-defValue “the default value chosen from the choices”] [-callback {command1} {command2} ... {commandn}] [-prompt “Prompt Text”] Returns An object handle if successful; otherwise, returns 0. 98 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Arguments Argument Description -callback {command1} {command2} ... {commandn} Specify the Tcl callback commands to be executed when the user changes the field items. -choices {choice1 choice2 ... choicen} Specify a string list of choices (for example: “puma” or “leopard”). -defValue “the default value chosen from the choices” Specify the default value, which must be one of the choices. -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text. -value “the value in choice list” Specify the first appeared value when creating the form, which must be one of the choices. Examples set cyc2 [gtCreateCyclicField -name animal \ -prompt “choose Animal:” \ -value “dog” -defValue “cat” \ -choices [list “elephant” “mouse” “cat” “dog” \ “whale” “dophine” “tiger” “snake” “shark”] \ -callback {cmd1} {cmd2} {cmd3} {cmd4}] # The output result is shown in the following figure: Laker³ Tcl Reference Manual K-2015.06 99 Chapter 3: GUI Extensions Form and Field gtCreateFileOpenField The gtCreateFileOpenField command creates a field which can browse files. Syntax gtCreateFileOpenField -name fieldSymbol [-prompt “prompt text”] [-initPath “initial dir, if working dir not specified”] [-filter “for example, *.tcl”] [-callback “Tcl to be executed”] Returns None Arguments Argument Description -callback “Tcl to be executed” Specify the Tcl command to be executed when the file name is specified and the Return key is pressed. -filter “for example, *.tcl” Specify the file filter, for example: *.cpp or *.tcl. -initPath “initial dir, if working dir not specified” Specify the user-specified path to find files. -name fieldSymbol Specify the field symbol. -prompt “prompt text” Specify the prompt text. Examples # Example 1 set file1 [gtCreateFileOpenField -name filefield \ -prompt “Filename:”-initPath “tcl/” -filter “*.tcl” \ -callback {puts “filefield(value): $filefield(value)”} \ {source $filefield(value)}] # The output result is shown in the following figure: 100 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field # Example 2 set rad1 [gtCreateFileOpenField -name radiofield \ -prompt "radio field:" \ -initPath "./" -filter "*.cpp *.h" \ -callback {puts hello1} {puts hello2}] set formradio [gtCreateAppForm -name radioform -title "radio" \ -buttonLayout OKCancelDefApply -fields $rad1 \ -callback {puts "you press OK or apply"}] gtDisplay -name radioform gtCreateFloatField The gtCreateFloatField command returns an object handle if the field for user-input floating numbers can be created. The range of the input limitation can also be specified. Syntax gtCreateFloatField -name fieldSymbol [-value {integer} ] [defValue {integer}] [-range {min max}] [-prompt “Prompt Text”] [-editable 0|1] [-callback {command1} {command2}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} Specify the Tcl callback commands list to be executed. -defValue {integer} Specify the default value. Valid value: an integer. -editable 0|1 Specify whether the field is editable. Valid values: Boolean values, 0 and 1. -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text. -range {min max} Specify the range for the input value. When {min max} is specified, it checks whether the input value is valid. -value {integer} Specify the first appeared value when creating the form. Laker³ Tcl Reference Manual K-2015.06 101 Chapter 3: GUI Extensions Form and Field Examples set float1 [gtCreateFloatField -name floatfield \ -prompt “fish weight (1.00 : 3.99):” \ -value 1.02 -defValue 2.00 -range {1.00 3.99}] # The output result is shown in the following figure: gtCreateForm The gtCreateForm command returns an object handle if the form can be created. This is a simplified command derived from gtCreateAppForm. Syntax gtCreateForm -name formSymbol -title formTitle -fields [list $field1 $field2 ... $fieldn] -callback {callback1} {callback2} ... {callbackn} Returns An object handle if successful; otherwise, returns 0. Arguments 102 Argument Description -callback {callback1} {callback2} ... {callbackn} Specify the Tcl callback command list to be executed when the OK or Apply button is clicked. -fields [list $field1 $field2 ... $fieldn] Specify the fields which are created from the CreateField commands. -name formSymbol Specify the form symbol. -title formTitle Specify the form title. Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Examples set stringhandle1 [gtCreateStringField -name stringSym \ -value “First appear string” -defValue “this is a default string”\ -prompt “Input your name:” -editable 1 -callback {puts “Hello!”}] set formHandle [gtCreateForm -name demo2 \ -fields [list $stringhandle1] \ -callback "You press OK/Apply button!" gtCreateIntField The gtCreateIntField command returns an object handle if the field for user-input integers can be created. The range of the input limitation can also be specified. Syntax gtCreateIntField -name fieldSymbol [-value {integer} ] [-defValue {integer}] [-range {min max}] [-prompt “Prompt Text”] [-editable 0|1] [-callback {command1} {command2}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} Specify the Tcl callback command list to be executed. -defValue {integer} Specify the default value. Valid value: an integer. -editable 0|1 Specify whether the field is editable. Valid values: Boolean values, 0 and 1. -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the text string. -range {min max} Specify the range for the input value. When {min max} is specified, it checks whether the input value is valid. For example: {-100 100} means the invalid value range is between -100 and 100. Laker³ Tcl Reference Manual K-2015.06 103 Chapter 3: GUI Extensions Form and Field Argument Description -value {integer} Specify the first appeared value when the form is created. Valid value: an integer. Examples set inthandle [gtCreateIntField -name intSym -value “30” \ -defValue “35” -range {1 99} -prompt “Your Age: “ \ -editable 1 -callback {sum 1 3}] # The output result is shown in the following figure: gtCreateLabel The gtCreateLabel command returns an object handle if the label can be created. Syntax gtCreateLabel -name fieldSymbol -labelText “text” -justification “Justification” Returns An object handle if successful; otherwise, returns 0. Arguments 104 Argument Description -justification “Justification” Specify the justification of the label. Valid values: left, center, and right. -labelText “text” Specify the text string. -name fieldSymbol Specify the field symbol. Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Examples set lab1 [gtCreateLabel -name label1 \ -labelText “labelfield: this is a label”] # The output result is shown in the following figure: gtCreateListBoxField The gtCreateListBoxField command returns an object handle if the list box field entry for a form can be created. Syntax gtCreateListBoxField -name fieldSymbol [-prompt “prompt text”] -choices {choice1 choice2 ... choicen} [-value {“the value in choice list”}] [-defValue {“the value in choice list”}] [-multipleSelect 0|1] [-numRows numRows ] [-changeCB {Tcl command when changed}] [-doubleClickCB {Tcl command as double-click}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -changeCB Specify the Tcl command to be executed when the {Tcl command when changed} selected item changed. -choices {choice1 choice2 ... choicen} Specify the string list choices. -defValue {“the value in choice list”} Specify the default selected item in the list box. -doublieClickCB {Tcl command as doubleclick} Specify the Tcl command to be executed when double-click on one item. Laker³ Tcl Reference Manual K-2015.06 105 Chapter 3: GUI Extensions Form and Field Argument Description -multipleSelect 0|1 Valid values: Boolean values, 0 and 1. 0 : Disallow multiple select items at a time. 1 : Allow multiple select items at a time. -name fieldSymbol Specify the field Symbol. -numRows numRows Specify the number of rows to be appeared one time. -prompt “prompt text” Specify the prompt text. -value {“the value in choice list”} Specify the first appeared value when the item is selected in the list box. Examples # Example 1 set list1 [gtCreateListBoxField -name listbox \ -prompt “ListBox Field” -value “choice4” \ -defValue “choice9” -numRows 5 \ -choices [list “choice1” “choice2” “choice3” “choice4” \ “choice5” “choice6” “choice7” “choice8” “choice9” “choice10”] \ -changeCB {puts “changeCB: $listbox(value)”} \ -multipleSelect 0 -doubleClickCB {doubleclick}] # The output result is shown in the following figure: 106 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field # Example 2 # get the index of the selected item set list1 [gtCreateListBoxField -name listbox \ -prompt "ListBox Field" -value "choice4" \ -defValue "choice9" -numRows 5 \ -choices [list "choice1" "choice2" "choice3" "choice4" \ "choice5" "choice1" "choice6" "choice7" "choice8" "choice9" \ "choice10"]\ -changeCB {puts "changeCB: $listbox(value)"} \ -doubleClickCB {doubleclick}] set formlistbox [gtCreateAppForm -name listboxform \ -title "demo ListBox" -buttonLayout "OKCancelDefApply" \ -fields $list1 -callback {puts "you press OK or apply"}] gtDisplay -name listboxform # select identical item "choice1" and try: set stringObj [gtGet -obj $list1 -attr listbox] set result [gtGet -obj $stringObj -attr index] puts "the StringField's value is : $result" # Instead of returning value, this command may return index # of the selected item in single select mode. gtCreateListField The gtCreateListField command returns an object handle if the list field can be created. Syntax gtCreateListField -name fieldSymbol [-value {choice}] [defValue {choice}] [-prompt “Prompt Text”] [-editable 0|1] [-callback {command1} {command2}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} Specify the Tcl callback command list to be executed. -defValue {choice} Specify the default value list. Laker³ Tcl Reference Manual K-2015.06 107 Chapter 3: GUI Extensions Form and Field Argument Description -editable 0|1 Specify whether the field is editable. Valid values: Boolean values, 0 and 1. -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text. -value {choice} Specify the value list, for example: “ab” “cd” 1234 $a. Examples set list1 [gtCreateListField -name listfield \ -prompt "list Field" -value [list "a" "b" "c" 123] \ -defValue {"A" "B" "C" 456} -callback {sum 3 9} ] # The output result is shown in the following figure: gtCreatePointField The gtCreatePointField command returns an object handle if the point field for a form can be created. A point field accepts only a point as input, the point can be floating point numbers or integers. Mixed types of point values are acceptable, for example: (123,3.345e3). No spaces are allowed between the point values, for example, (123 ,345) is illegal. Syntax gtCreatePointField -name fieldSymbol [-value {X Y}] [defValue {X Y}] [-prompt “Prompt Text”] [-callback {command1} {command2} ... {commandn}] [editable 0|1] 108 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} ... {commandn} Specify one or more Tcl commands to be executed when current field value changed. -defValue {X Y} Specify the default point value. -editable 0|1 Specify whether the field is editable. Valid values: Boolean values, 0 and 1 (default=1). -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text. -value {X Y} Specify the point value with the following format: (x,y) or {x y}. No spaces are allowed in (x,y) format, but in {x y} format, spaces can be used to separate two values. Examples set pnt1 [gtCreatePointField -name point1 \ -prompt “Point: “ -value (123,345) -defValue (111,222)] # The output result is shown in the following figure: gtCreatePointListField The gtCreatePointListField command returns an object handle if the point list field entry for a form can be created. A point list field accepts only a point list as input. A valid point list is represented by one or more points separated by spaces. Laker³ Tcl Reference Manual K-2015.06 109 Chapter 3: GUI Extensions Form and Field Syntax gtCreatePointListField -name fieldSymbol [-prompt “Prompt Text” ] [-value {choice}] [-defValue {choice}][-editable 0|1] [-callback {command1} {command2} ... {commandn}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} ... {commandn} Specify one or more Tcl commands to be executed when the current field value changed. -defValue {choice} Specify the default point list value. -editable 0|1 Specify whether the field is editable. Valid values: Boolean values, 0 and 1. -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text, for example: “Point List Field:”. -value {choice} Specify the point list enclosed by [list (x1,y1) (x2,y2) (x3,y3) ...]. The point format is similar to gtCreatPointField. Spaces are used to separate different point pairs. Examples set pntlst1 [gtCreatePointListField -name pointlist1 \ -prompt “Point List:” -value [list (123,345) (3,4) (333,321)] \ -defValue (111,222)] # The output result is shown in the following figure: 110 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field gtCreateRadioField The gtCreateRadioField command returns an object handle if the radio field for a form can be created. This option is similar to gtCreateToggleField, except that in the radio field, the user can only select one radio button at a time. Syntax gtCreateRadioField -name fieldSymbol -choices {choice1 choice2 ... choicen} [-value {choice}][-defValue {choice}] [-direction direction] [-callback {command1} {command2} ... {commandn}] [-prompt “Prompt Text”] [itemsPerRow {integer}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} ... {commandn} Specify the Tcl callback commands to be executed. -choices {choice1 choice2 ... choicen} Specify the list of choices. -defValue {choice} Specify the default value that must be one of the values in the list of choices. -direction direction Specify the direction to arrange the radio field. Valid values: horizontal and vertical (default=horizontal). -itemsPerRow {integer} Specify the number of radio buttons per row. -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text. -value {choice} Specify the valid value that must be one of the values in the list of choices. Laker³ Tcl Reference Manual K-2015.06 111 Chapter 3: GUI Extensions Form and Field Examples set rad1 [gtCreateRadioField -name color -prompt “Color:” \ -choices [list “white” “golden” “yellow” “red” “green”] \ -value “red” -defValue “green” -callback {sum 9 9}] # The output result is shown in the following figure: gtCreateSeparatorField The gtCreateSeparatorField command returns an object handle if the separator field for a form can be created. Syntax gtCreateSeparatorField -name fieldSymbol Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -name fieldSymbol Specify the field symbol. Examples set sep1 [gtCreateSeparatorField -name aseparator] gtCreateStringField The gtCreateStringField command returns an object handle if the field for user-input string can be created. 112 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Syntax gtCreateStringField -name fieldSymbol [-value “Initial shown on the form” ] [-defValue “default value”] [-prompt “Prompt Text”] [-editable 0|1] [-callback {command1} {command2} ... {commandn}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback Specify the Tcl callback command list to be executed. {command1} {command2} ... {commandn} -defValue “default value” Specify the default value. -editable 0|1 Specify whether the field is editable. Valid values: Boolean values, 0 and 1. -name fieldSymbol Specify the field symbol, for example: stringSym. -prompt “Prompt Text” Specify the text string. -value “Initial shown on the form” Specify the first appeared value when creating the form. Examples set stringhandle1 [gtCreateStringField -name stringSym \ -prompt "string field:" -value {SSoft, Inc.} \ -defValue {this is default value} ] set theForm [gtCreateAppForm -name formName -title "string" \ -buttonLayout "OKCancelDefApply" \ -fields [list $stringhandle1] -callback {puts "Hello!"} ] gtDisplay -handle $theForm # The output result is shown in the following figure: Laker³ Tcl Reference Manual K-2015.06 113 Chapter 3: GUI Extensions Form and Field gtCreateToggleField The gtCreateToggleField command returns an object handle if the state of toggle button for a form can be defined. This command returns 1 when pressed (toggled), and 0 when unpressed (untoggled). Syntax gtCreateToggleField -name fieldSymbol [-prompt “Prompt Text”] -choices {choice1 choice2 ... choicen} [-value {choice}] [-defValue {choice}] [-callback {command1} {command2} ... {commandn}] Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -callback {command1} {command2} ... {commandn} Specify the Tcl callback commands to be executed. -choices {choice1 choice2 ... choicen} Specify the toggle list. -defValue {choice} Specify the default value, for example: [list 0 0 1 1]. The count of true/false values must be matched with the count of choices. 114 -name fieldSymbol Specify the field symbol. -prompt “Prompt Text” Specify the prompt text. Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Argument Description -value {choice} Specify a list of true/false values, for example: [list 1 1 0 0]. The count of true/false values must be matched with the count of choices. Examples set tgl1 [gtCreateToggleField -name foods -prompt “Foods:” \ -choices [list “fish” “chicken” “pork” “beef”] \ -value [list 1 1 0 0] -defValue [list 0 1 0 1] \ -callback {sum 1 1} {sum 2 2}] # The output result is shown in the following figure: gtDeleteForm The gtDeleteForm command deletes a form and returns the object handle if the form can be deleted. Syntax gtDeleteForm (-name formSymbol | -handle $formhandle) Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -handle $formhandle Specify the form handle. -name formSymbol Specify the form symbol. Laker³ Tcl Reference Manual K-2015.06 115 Chapter 3: GUI Extensions Form and Field Examples # Example 1 set form1 [gtCreateAppForm -name demo ...] gtDisplay -name demo # Example 2 set form1 [gtCreateAppForm -name demo ...] gtDeleteForm -handle $form1 gtDisableField The gtDisableField command disables a field. Syntax gtDisableField -form formName -field fieldName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -field fieldName Specify the field name. -form formName Specify the form which contains the field. Examples # disable the "wRouteMode" field of "wRouteNetForm" form gtDisableField -form wRouteNetForm -field wRouteMode gtDisplay The gtDisplay command displays a form, a popup menu or a window. Syntax gtDisplay [-block] (-name formSymbol | -handle $formHandle) Returns None 116 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Arguments Argument Description -block Block the execution of gtDisplay. All Tcl commands executed after gtDisplay is blocked until an action is taken on the frame which is displayed by gtDisplay. -handle $formHandle Specify the system-generated handle. -name formSymbol Specify the user-specified symbol name. Examples # Example 1 set form1 [gtCreateAppForm -name demo ...] gtDisplay -name demo # Example 2 set form1 [gtCreateAppForm -name demo ...] gtDisplay -handle $form1 # Example 3 # Show $your_form without "Hello" printed out. # The string "Hello" is printed out until an action is taken # on $your_form, like a button is clicked. gtDisplay -block -handle $your_form puts "Hello" gtEnableField The gtEnableField command enables a field. Syntax gtEnableField -form formName -field fieldName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -field fieldName Specify the field name. -form formName Specify the form which contains the field. Laker³ Tcl Reference Manual K-2015.06 117 Chapter 3: GUI Extensions Form and Field Examples # enable the "wRouteMode" field of "wRouteNetForm" form gtEnableField -form wRouteNetForm -field wRouteMode gtFormApply The gtFormApply command executes the operation of clicking the Apply button in a form. This command can also be executed with user-defined Tcl commands. Syntax gtFormApply (-name formSymbol | -handle $formhandle) Returns None Arguments Argument Description -handle $formhandle Specify the form handle. -name formSymbol Specify the form symbol. Examples # Example 1 set form1 [gtCreateAppForm -name demo ...] gtFormApply -name demo # Example 2 set form1 [gtCreateAppForm -name demo ...] gtFormApply -handle $form1 gtFormCancel The gtFormCancel command returns an object handle if the operation of clicking the Cancel button in a form can be executed. This command can also be executed with user-defined Tcl commands. Syntax gtFormCancel (-name formSymbol | -handle $formhandle) 118 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Form and Field Returns An object handle if successful; otherwise, returns 0. Arguments Argument Description -handle $formhandle Specify the form handle. -name formSymbol Specify the form symbol. Examples # Example 1 set form1 [gtCreateAppForm -name demo ...] gtFormCancel -name demo # Example 2 set form1 [gtCreateAppForm -name demo ...] gtFormCancel -handle $form1 gtFormDone The gtFormDone command executes the operation of clicking the OK button in a form. This command can also be executed with user-defined Tcl commands. Syntax gtFormDone (-name formSymbol | -handle $formhandle) Returns None Arguments Argument Description -handle $formhandle Specify the form handle. -name formSymbol Specify the form symbol. Laker³ Tcl Reference Manual K-2015.06 119 Chapter 3: GUI Extensions Form and Field Examples # Example 1 set form1 [gtCreateAppForm -name demo ...] gtFormDone -name demo # Example 2 set form1 [gtCreateAppForm -name demo ...] gtFormDone -handle $form1 The following is an example of forms and fields. Figure 3 Example of Form and Field The Tcl example is demonstrated as follows: proc sum {arg1 arg2} { set result [expr $arg1 + $arg2] puts “$arg1+$arg2 = $result” } set list1 [gtCreateListField -name listfield \ -prompt “list Field” -value [list “a” “b” “c” 123] \ -defValue {“A” “B” “C” 456} -callback {sum 3 9} ] set bbox1 [gtCreateButtonBoxField -name car \ -choices “BMW” “BENZ” “Toyota” “Honda” “VolksWagon” “Land Rover” -callback {sum 1 1} {puts “BENZ”} {pubs “Toyota”} \ 120 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Pre-processing Tcl Callback Functions {puts “Honda”} {puts “VolksWagon”} {puts “Land Rover”} \ -prompt “choose CAR:” ] set cyc2 [gtCreateCyclicField -name animal \ -prompt “choose Animal: “ -value “dog” -defValue “cat” \ -choices [list “elephant” “mouse” “cat” “dog” \ “whale” “dophine” “tiger” “snake” “shark”]] set str1 [gtCreateStringField -name string1 \ -editable 1 -prompt “input name:” -value “SS inc.” \ -defValue “Made In Taiwan!”] set btn1 [gtCreateButton -name button1 \ -buttonText “call Tcl func” -callback {myformA}] set btn2 [gtCreateButton -name button2 \ -buttonText “call popup menu” \ -callback {gtDisplay -name popupmenu}] set int1 [gtCreateIntField -name intfield” \ -prompt “input your age (1-60):” \ -range {1 60} -value 25 -defValue 30] set tgl1 [gtCreateToggleField -name foods -prompt “Foods: “ \ -choices [list “fish” “chicken” “pork” “beef”] \ -value [list 1 1 0 0] -defValue [list 0 1 0 1] \ -callback {sum 1 1} {sum 2 2}] set tgl2 [gtCreateToggleField -name flower -prompt “Flower :” \ -choices [list “rose” “lily” “lotus” “carnation”] \ -value [list 1 1 0 1] -defValue [list 0 1 0 0] \ -callback {sum 1 1} {sum 2 2}] set rad1 [gtCreateRadioField -name color -prompt “Color:” \ -choices [list “white” “golden” “yellow” “red” “green”]\ -value “red” -defValue “green” -callback {sum 9 9}] set bol1 [gtCreateBooleanButton -name bool1 -prompt “Boolean” \ -value 1 -defValue 0] set lab2 [gtCreateLabel -name label1 \ -labelText “label: A demo case”] set form11 [gtCreateAppForm -name demo -title “demo” \ -buttonLayout OKCancelDefApply \ -fields [list $lab2 $tgl1 $str1 $tgl2 $btn2 $btn1 \ $cyc2 $int1 $bol1 $list1 $bbox1 $rad1] \ -callback {puts “you press OK or apply”}] gtDisplay -name demo Pre-processing Tcl Callback Functions This section describes the pre-processing Tcl callback functions for drag-anddrop actions. You can source the following Tcl functions in Laker3, and then hold the Shift key and perform the drag-and-drop action. Laker³ Tcl Reference Manual K-2015.06 121 Chapter 3: GUI Extensions Pre-processing Tcl Callback Functions proc gtProcessDragData {type args} { puts "gtProcessDragData: type=$type, value=$args" switch $type { COMPOUND_TEXT {return "123"} default {} } return }proc gtProcessDropData {type args} { puts "gtProcessDropData: type=$type, value=$args" switch $type { COMPOUND_TEXT {return "ABC"} default {} } return } proc gtProcessDropType {args} { puts "gtProcessDragType: type=$args" switch $args { SPS_SOURCE_NAME {return "MY_DND_TYPE"} default {} } return } proc gtProcessDragType {args} { puts "gtProcessDragType: type=$args" switch $args { MY_DND_TYPE {return "SPS_SOURCE_NAME"} default {} } return } 122 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Pre-processing Tcl Callback Functions The function replaces the COMPOUND_TEXT type data for both drag and drop actions. If the drag-and-drop type name for drag is SPS_SOURCE_NAME then it is replaced with a user-defined name when dragging from Laker3. Likewise the user-defined type (assuming it was dragged from another application) is mapped to SPS_SOURCE_NAME. The Tcl callback functions are described in the following sections: ■ gtProcessDragData ■ gtProcessDragType ■ gtProcessDropData ■ gtProcessDropType gtProcessDragData The gtProcessDragData command changes the drag data from Laker3 for compatibility with other applications. The command interface for gtProcessDragData and gtProcessDropData is the same. Both take the following two arguments: ■ A type string. This is the drag-and-drop drag type. Some types are listed as follows: SPS_SIGNAL, SPS_INST, SPS_INST_PIN, and COMPOUND_TEXT. Type can be dumped from the callback function to obtain the type names relevant for a particular drag-and-drop action. ■ The drag data. This data may be encoded differently for each drag-and-drop type. To modify drag-and-drop data: • The callback function can use the Tcl return command to pass back to Laker the modified drag or drop string. • If the return command is called with no arguments or an empty string then the data for that type is not modified. Syntax gtProcessDragData Returns None Arguments None Laker³ Tcl Reference Manual K-2015.06 123 Chapter 3: GUI Extensions Pre-processing Tcl Callback Functions Examples proc gtProcessDragData {type args} { puts "gtProcessDragData: type=$type, value=$args" switch $type { COMPOUND_TEXT {return "123"} default {} } return } gtProcessDragType The gtProcessDragType command maps the type name Laker3 uses to a name that another application uses as a drop target. The command interface for gtProcessDragType and gtProcessDropType is the same. Both take the following single argument: ■ The drag-and-drop type name. To map the drag-and-drop type name: • The callback function can use the Tcl return command to pass back to Laker the mapped type name. The mapped type name is used in place of the original name in all further processing. • If the return command is called with no arguments or an empty string then the type name is not mapped. Syntax gtProcessDragType Returns None Arguments None 124 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Pre-processing Tcl Callback Functions Examples proc gtProcessDropType {args} { puts "gtProcessDragType: type=$args" switch $args { SPS_SOURCE_NAME {return "MY_DND_TYPE"} default {} } return } gtProcessDropData The gtProcessDropData command changes the drop data from other application for compatibility with Laker3. The command interface for gtProcessDragData and gtProcessDropData is the same. Syntax gtProcessDropData Returns None Arguments None Examples proc gtProcessDropData {type args} { puts "gtProcessDropData: type=$type, value=$args" switch $type { COMPOUND_TEXT {return "ABC"} default {} } return } gtProcessDropType The gtProcessDropType command maps the type name another application uses to a type name that Laker3 uses as a drop target. Laker³ Tcl Reference Manual K-2015.06 125 Chapter 3: GUI Extensions Miscellaneous The command interface for gtProcessDragType and gtProcessDropType is the same. Syntax gtProcessDropType Returns None Arguments None Examples proc gtProcessDragType {args} { puts "gtProcessDragType: type=$args" switch $args { MY_DND_TYPE {return "SPS_SOURCE_NAME"} default {} } return } Miscellaneous This section describes the other Tcl commands applied to GUI extensions. These commands include: 126 ■ gtAddFields ■ gtCancelNumberKeyPad ■ gtDeleteFields ■ gtDeleteField ■ gtDestroyAllObjs ■ gtGet ■ gtGetBBox ■ gtGetOrigin ■ gtIsGTObj ■ gtMaxWnd Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous ■ gtMoveIntoScreen ■ gtSet ■ gtSetBBox ■ gtSetBindKey ■ gtSetOrigin ■ gtSetWndBgColor gtAddFields The gtAddFields command adds new fields after the form is created. The origin point and bounding box may be specified if the specified form is in 2D form style. Syntax gtAddFields (-name formSymbol | -handle $handle) -fields [list $field1 $field2 ... $fieldn] Returns None Arguments Argument Description -fields [list $field1 $field2 ... $fieldn] Specify the fields created with gtCreateXXXField. -handle $handle Specify the name or handle of the form. -name formSymbol Specify the form symbol. Examples # Example 1 # 1D form style gtAddFields -handle demo -fields [list $field1 $field2] # Example 2 # 2D form style gtAddFields -handle demo \ -fields [list [list $field1 {0 0} {100 100}] \ [list $fields {101 101} {200 200}] Laker³ Tcl Reference Manual K-2015.06 127 Chapter 3: GUI Extensions Miscellaneous gtCancelNumberKeyPad The gtCancelNumberKeyPad command maps keys on the key pad of Linux X server to the following: ■ 0> <Key>Insert ■ 1> <Key>End ■ 2> <Key>Down ■ 3> <Key>Next ■ 4> <Key>Left ■ 5> <Key>Begin ■ 6> <Key>Right ■ 7> <Key>Home ■ 8> <Key>Up ■ 9> <Key> Prior Syntax gtCancelNumberKeyPad Returns None Examples gtCancelNumberKeyPad gtDeleteFields The gtDeleteFields command deletes fields from the form. Syntax gtDeleteFields -handle $handle \ -fields [list $field1 $field2 ... $fieldn] Returns None 128 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Arguments Argument Description -fields [list $field1 $field2 ... $fieldn] Specify the fields created with gtCreateXXXField. -handle $handle Specify the name or handle of the form. Examples gtDeleteFields -handle form -fields [list docfile1 docfile2] See Also gtDeleteField gtDeleteField The gtDeleteField command deletes one field after the form is created. Syntax gtDeleteField -form $form -handle $handle -field $field1 Returns None Arguments Argument Description -field $field1 Specify the fields created with gtCreateXXXField. -form $form Specify the name or handle of the form. -handle $handle Specify the name or handle of the field. Examples set Fieldid [gtGet -obj $Formid -attr MY_Field] gtDeleteField -form $Formid -handle $Fieldid -field $MY_Fieldid See Also gtDeleteFields gtAddFields Laker³ Tcl Reference Manual K-2015.06 129 Chapter 3: GUI Extensions Miscellaneous gtDestroyAllObjs The gtDestroyAllObjs command calls the objects created via GUI commands, and free the memory. This is useful after creating many forms, windows, and other GUI extensions. Syntax gtDestroyAllObjs Returns None Examples gtDestroyAllObjs gtGet The gtGet command returns the value of form or field if the attribute of a form or field can be obtained. Syntax gtGet -obj $handle -handle $handle -attr attribute Returns The value of form or field if successful; otherwise, returns nothing. Arguments 130 Argument Description -attr attribute Specify the attribute, similar to Form dialogStyle, FieldList, Fields value, or gtCreateStringField value. The fields of a form is also an attribute of the form. -handle $handle Specify the form or field handle. -obj $handle Specify the form or field handle. Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Examples # Example 1 # Get the StringField value. set stringhandle1 [gtCreateStringField -name stringSym \ -value "First appear string" -defValue "this is a default string"\ -prompt "Input your name: " -editable 1 -callback {puts "Hello!"}] set formObj [gtCreateAppForm -name demo2 \ -fields [list $stringhandle1]] # Example 2 # Get form's attribute set demo2FieldList [gtGet -obj $formObj -attr FieldList] set demo2DialogStyle [gtGet -obj $formObj -attr dialogStyle] # Example 3 # Get form's field's value set stringObj [gtGet -obj $formObj -attr stringSym] set result [gtGet -obj $stringObj -attr value] puts "the StringField's value is : $result" gtGetBBox The gtGetBBox command returns a point that contains the bounding box of the window/form if the size of window/form can be obtained. Syntax gtGetBBox (-name formSymbol | -handle $handle) Returns Point that contains the bounding box of the window/form (the format is {width height}) if successful; otherwise, returns nothing. Arguments Argument Description -handle $handle Specify the name or handle of the window/form. -name formSymbol Specify the form symbol. Examples set bbox [gtGetBBox -name demo] then bbox may look like {100 200} Laker³ Tcl Reference Manual K-2015.06 131 Chapter 3: GUI Extensions Miscellaneous gtGetOrigin The gtGetOrigin command returns the point of the origin if the origin of the form can be obtained. Syntax gtGetOrigin -name formSymbol -handle $handle -obj $handle Returns The point of the origin, where the origin coordinate is at the upper left screen, if successful; otherwise, returns nothing. Arguments Argument Description -handle $handle Specify the form handle created from gtCreateAppForm. -name formSymbol Specify the form symbol. -obj $handle Specify the form handle created from gtCreateAppForm. Examples set point [ gtGetOrigin -name demo] echo $point 100 200 gtIsGTObj The gtIsGTObj command returns 1 if the object is created from Tcl commands. Syntax gtIsGTObj -obj $handle Returns 1 if successful; otherwise, returns 0. Arguments 132 Argument Description -obj $handle Specify the form or field handle. Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Examples set stringhandle1 [gtCreateStringField -name stringSym \ -value "First appear string" -defValue "this is a default string"\ -prompt "Input your name: " -editable 1 -callback {puts "Hello!"}] set ret [gtIsGTObj -obj $formObj] puts "ret= $ret" # ret = 1 gtMaxWnd The gtMaxWnd command gets the correct window identifier and maximizes the window to fit the screen. Syntax gtMaxWnd [-window windowId | -windowType windowType] Returns None Arguments Argument Description -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. -windowType windowType Specify the window type. This argument is case insensitive. Valid values for Laker: lakerDsgWnd (Design/Layout window pane) and lakerMasterWnd (Home Page). Valid values for ADP: LEOMASTERWND (Home Page), AMSFM_TOP_DSGWND (Schematic Editor), SIM_MAINMGR_WIND (Simulation Console), nAnalyzer (LakerWave window), and SYMFM_TOP_DSGWND (Symbol Editor). Examples gtMaxWnd -windowType lakerMasterWnd Laker³ Tcl Reference Manual K-2015.06 133 Chapter 3: GUI Extensions Miscellaneous gtMoveIntoScreen The gtMoveIntoScreen command gets the correct window identifier or resets the position of all windows on the screen. Syntax gtMoveIntoScreen [-window windowId | -windowType windowType] Returns None Arguments Argument Description -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. -windowType windowType Specify the window type. This argument is case insensitive. Valid values for Laker: lakerDsgWnd (Design/Layout window pane) and lakerMasterWnd (Home Page). Valid values for ADP: LEOMASTERWND (Home Page), AMSFM_TOP_DSGWND (Schematic Editor), SIM_MAINMGR_WND (Simulation Console), nAnalyzer (LakerWave window), and SYMFM_TOP_DSGWND (Symbol Editor). Examples gtMoveIntoScreen -windowType lakerMasterWnd gtSet The gtSet command sets the attribute of the form or field. Syntax gtSet -obj $handle -handle $handle -attr attribute -value attrValue Returns None 134 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Arguments Argument Description -attr attribute Specify the attribute, similar to Form dialogStyle, FieldList, Fields value, or gtCreateStringField value. The fields of a form is also an attribute of the form. -handle $handle Same as -obj. -obj $handle Specify the form or field handle. -value attrValue Specify the attribute value. Examples # Modify StringField value set stringhandle1 [gtCreateStringField -name stringSym \ -value "First appear string" -defValue "this is a default string"\ -prompt "Input your name: " -editable 1 -callback {puts "Hello!"}] set formObj [gtCreateAppForm -name demo2 -fields [list $stringhandle1]] set stringObj [gtGet -obj $formObj -attr stringSym] gtSet -obj $stringObj -attr value -value "A new string!" gtSetBBox The gtSetBBox command changes the size of the window/form after creation. Syntax gtSetBBox (-name formSymbol | -handle $handle) -bBox {width height} Returns None Arguments Argument Description -bBox {width height} Specify the bounding box with the following format: {width height} -handle $handle Specify the name or handle of the window/form. -name formSymbol Specify the form symbol. Laker³ Tcl Reference Manual K-2015.06 135 Chapter 3: GUI Extensions Miscellaneous Examples gtSetBBox -name demo -bBox {300 400} gtSetBindKey The gtSetBindKey command sets user-defined hotkeys with a specified definition file and dynamically updates the customized hotkeys onto pull-down menu. A bind key definition file may contain the following lines: Keys myBindKey { #bindkey AppliedArea Type Ctrl<Key>b DRAWINGAREAWND f.tcl Alt<Key>b DRAWINGAREAWND f.tcl <Key>Z DRAWINGAREAWND f.tcl } dummy Tcl_Commands dummy “lakerZoomIn” dummy “lakerZoomOut” dummy “puts {you press Z}” gtSetBindKey does not support the bind key that is set as Shift<Key>* (where * represents all characters having ASCII code), because this may cause confusion, such as Shift<Key>a = <Key>A. To avoid this situation, <Key>* must be used instead of Shift<Key>*; Shift<Key>Tab, however, is an exception. To define bindkey in the definition file, use Ctrl/Alt + <Key>a~z or <Key>A~Z. For example: <Key>a <Key>A Ctrl<Key>a Alt<Key>a Ctrl<Key>A Alt<Key>A Note: : : : : : : a Shift + a Ctrl + a Alt + a Ctrl + Shift + a Alt + Shift + a Pressing Shift+A and Shift+a may have the same result under X-Window in all Unix platforms because the <Caps Lock> key takes no effect upon such invocation. To define the AppliedArea: ■ Use asterisk (*) to apply the user-defined bind key in the active window. ■ Use DRAWINGAREAWND to apply the bind key in the drawing area only. For detailed information about key definition, use the hotkey application to test all bind keys. 136 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Syntax gtSetBindKey [-window windowId | -windowType windowType] file user_defined_bind_key_file Returns None Arguments Argument Description -file user_defined_bind_key_file Specify the definition file for customized bind key. -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. -windowType windowType Specify the window type. This argument is case insensitive. Valid values for Laker: lakerDsgWnd (Design/Layout window pane) and lakerMasterWnd (Home Page). Valid values for ADP: LEOMASTERWND (Home Page), AMSFM_TOP_DSGWND (Schematic Editor), SIM_MAINMGR_WND (Simulation Console), nAnalyzer (LakerWave window), and SYMFM_TOP_DSGWND (Symbol Editor). Laker³ Tcl Reference Manual K-2015.06 137 Chapter 3: GUI Extensions Miscellaneous Examples gtSetBindKey -windowType lakerDsgWnd -file demo.key # # # # # # # # # # # # # # # # # # # # # # # contents of demo.key: Keys myBindKey { <Key>e * f.exec LEOMasterPreferences <Key>a * f.exec LEODSGAlign <Key>A * f.exec LEODSGSmashOne <Key>F8 DRAWINGAREAWND f.exec LEODSGCreateRect <Key>F9 DRAWINGAREAWND f.exec LEODSGCreatePoly <Key>F10 DRAWINGAREAWND f.exec LEODSGCreatePath <Key>F11 DRAWINGAREAWND f.exec LEODSGCreateText } These customized hotkeys are dynamically updated onto pull-down menu in the same Laker session after executing the command. Pressing <Key>e invokes LEOMasterPreferences. When <Caps Lock> is off, pressing <Key>a invokes LEODSGAlign. When <Caps Lock> is on, pressing <Key>a invokes LEODSGAlign. Pressing <Shift> + <Key>A invokes LEODSGSmashOne. Pressing F8 invokes the Create Rectangle command. Pressing F9 invokes the Create Polygon command. Pressing F10 invokes the Create Path command. Pressing F11 invokes the Create Text command. gtSetOrigin The gtSetOrigin command sets the origin of the form. Syntax gtSetOrigin -name formSymbol -handle $handle -obj $handle orig {X Y} Returns None Arguments 138 Argument Description -handle $handle Specify the form handle created from gtCreateAppForm. -name formSymbol Specify the form symbol. -obj $handle Specify the form handle which is the same as -handle. Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Argument Description -orig {X Y} Specify the X/Y position with {X Y} format. The origin is at the upperleft screen. Examples gtSetOrigin -name demo -orig {100 200} gtSetWndBgColor The gtSetWndBgColor command changes the background color of the active Layout, Schematic Editor, or Symbol Editor windows. Syntax gtSetWndBgColor [-window windowId][-color color] Returns None Laker³ Tcl Reference Manual K-2015.06 139 Chapter 3: GUI Extensions Miscellaneous Arguments Argument Description -color color Specify the background color for windows. The color is changed after lakerRedraw is executed. Valid values: black, Gray1, Gray2, Gray3, Gray4, Gray5, Gray6, white, red1, red2, red3, red4, red5, red6, red7, red8, orange1, orange2, orange3, orange4, orange5, orange6, orange7, orange8, yellow1, yellow2, yellow3, yellow4, yellow5, yellow6, yellow7, yellow8, green1, green2, green3, green4, green5, green6, green7, green8, cyan1, cyan2, cyan3, cyan4, cyan5, cyan6, cyan7, cyan8, blue1, blue2, blue3, blue4, blue5, blue6, blue7, blue8, purple1, purple2, purple3, purple4, purple5, purple6, purple7, purple8, lavender, LightYellow2, MistyRose, gray, SlateGray, red, OrangeRed, tomato, red3, orange, DarkOrange, yellow, OliveDrab1, DarkOliveGreen2, gold, LightGoldenrod, YellowGreen, green, MediumSpringGreen, SpringGreen2, SeaGreen3, LimeGreen, ForestGreen, blue, CornflowerBlue, MediumSlateBlue, DeepSkyBlue, LightSkyBlue, CadetBlue2, cyan, PaleTurquoise, DarkTurquoise, MediumAquamarine, aquamarine, purple, DarkKhaki, sienna, peru, burlywood, SandyBrown, chocolate, brown, salmon, HotPink, DeepPink, LightPink, wheat2, magenta, violet, aquamarine1, chartreuse2, pink2, gray80, SpringGreen, OliveDrab, DarkSeaGreen, DarkSeaGreen2, SeaGreen, MediumSeaGreen, LightSeaGreen, PaleGreen, pink, wheat (default=black). 140 Laker³ Tcl Reference Manual K-2015.06 Chapter 3: GUI Extensions Miscellaneous Argument Description The color is changed after adpDsgRedraw or symDsgRedraw is executed. Valid values: black, Gray1, Gray2, Gray3, Gray4, Gray5, Gray6, white, red1, red2, red3, red4, red5, red6, red7, red8, orange1, orange2, orange3, orange4, orange5, orange6, orange7, orange8, yellow1, yellow2, yellow3, yellow4, yellow5, yellow6, yellow7, yellow8, green1, green2, green3, green4, green5, green6, green7, green8, cyan1, cyan2, cyan3, cyan4, cyan5, cyan6, cyan7, cyan8, blue1, blue2, blue3, blue4, blue5, blue6, blue7, blue8, purple1, purple2, purple3, purple4, purple5, purple6, purple7, purple8, white, lavender, LightYellow2, MistyRose, gray, SlateGray, red, OrangeRed, tomato, red3, orange, DarkOrange, yellow, OliveDrab1, DarkOliveGreen2, gold, LightGoldenrod, YellowGreen, green, MediumSpringGreen, SpringGreen2, SeaGreen3, LimeGreen, ForestGreen, blue, CornflowerBlue, MediumSlateBlue, DeepSkyBlue, LightSkyBlue, CadetBlue2, cyan, PaleTurquoise, DarkTurquoise, MediumAquamarine, aquamarine, purple, DarkKhaki, sienna, peru, burlywood, SandyBrown, chocolate, brown, salmon, HotPink, DeepPink, LightPink, wheat2, magenta, violet, aquamarine1, chartreuse2, pink2, gray80, SpringGreen, OliveDrab, DarkSeaGreen, DarkSeaGreen2, SeaGreen, MediumSeaGreen, LightSeaGreen, PaleGreen, pink, wheat (default=black). -window windowId Specify the destination window. The window identifier can be obtained by calling lakerGetwtWndId, which only affects the active window. If it is not specified, the background color of all Layout windows is changed. The window identifier can be obtained by calling adpGetwtWndId, which only affects the active window. If it is not specified, the background color of all Schematic Editor or Symbol Editor windows is changed. Examples # Example 1 gtSetWndBgColor -color white # Example 2 gtSetWndBgColor -window [lakerGetwtWndId -type layout] \ -color white gtSetWndBgColor -window [adpGetwtWndId] -color white Laker³ Tcl Reference Manual K-2015.06 141 Chapter 3: GUI Extensions Miscellaneous 142 Laker³ Tcl Reference Manual K-2015.06 4 4 Database Extensions This chapter introduces the database model and describes the Tcl commands to access the database. The records in the database can be accessed through the object identifiers. The Tcl commands are explained in the following sections. Tcl commands and arguments are sorted alphabetically. ■ Database Overview ■ Library Management ■ Cell View Management ■ Tcl PCells ■ Shape Creation ■ Shape Conversion ■ Instances and Arrays ■ Figure Manipulation ■ Accessory Objects ■ Property ■ Group ■ Logic Objects ■ Parameters ■ General Object Manipulation ■ Parameterized Test Structure Devices ■ Schematic Object Manipulation Laker³ Tcl Reference Manual K-2015.06 143 Chapter 4: Database Extensions Database Overview ■ DFM ■ Technology File Database Overview This section briefly introduces the database model and the object access fields. This section contains the following parts: ■ Database Model ■ Object Access Fields Database Model The relationship among objects is illustrated in the following figure. Figure 1 Database Model In this figure, each rectangle or ellipse has an identifier. For example, a label has a label identifier; a cell view has a cell view identifier; a net has a net identifier, and so on. 144 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Database Overview A dash-arrow line means inherence, for example: a path object is a shape and a figure, an array is a figure but not a shape. A solid-single-arrow line means a single derivation and a solid-double-arrow line represents multiple derivations. For example, port identifiers can be derived by a cell view identifier; a cell view identifier can be derived by a port identifiers; a net identifier can be used to derive multiple instance port identifiers, and so on. Object Access Fields The following table shows the defined fields in each object. Identifier Access Fields CellView Props, Type, Arrays, BBox, CellName, CellViewType, DBUPerUU, FileName, GroupMembers, Groups, InstCount, InstHeaders, Insts, IsModified, Lib, LibName, Masters, Mode, NetCount, Nets, PortCount, Ports, Shapes, UserUnit, ViewName, LPs LP CV, Type, Layer, LayerNum, Purpose, PurposeNum, ShapeCount, Shapes Instance CV, Props, BBox, Net, Parent, IsVisible, Pin, Type, CellName, InstHeader, InstPins, InstPorts, LibName, Mag, Master, Name, Num, Orient, Point, ViewName InstHeader (Instance Header) CV, Props, Type, CellName, Insts, LibName, Master, ViewName Array CV, Props, BBox, Net, Parent, IsVisible, Pin, Type, CellName, ColSpace, Cols, LibName, Mag, Master, Name, Orient, Point, RowSpace, Rows, ViewName Rectangle CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type Polygon CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, PointNum, Points Line CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, PointNum, Points Laker³ Tcl Reference Manual K-2015.06 145 Chapter 4: Database Extensions Database Overview Identifier Access Fields Path CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, BeginExt, EndExt, PointNum, Points, Style, Width Label CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, Font, Height, IsDrafted, IsOverbar, Justify, Orient, Point, Text Arc CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, EllipseBBox, StartAngle, StopAngle Ellipse CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type Doughnut CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, Inner, Outer, Point Dot CV, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, Height, Point, Width Property Type, Name, Obj, Value, ValueType Group Type, DeleteWhen, GroupType, IsOrdered, IsUniqueName, Members, Name, Objects Group Member Type, Group, Object Net CV, Props, Type, InstPins, InstPortCount, InstPorts, Figs, Name, NumBits, Pins, Port, Priority Port CV, Props, Type, Dir, Name, Net, NumBits, PinCount, Pins Pin CV, Props, Type, Dir, Fig, Name, Net, Port Instance Port CV, Props, Type, Inst, InstPins, Name, Net, Port Instance Pin CV, Props, Type, BBox, InstPort, Name, Net, Pin Before issuing a command to get the identifiers, make sure that the dbOpenLib command has been issued to open the library with the proper open mode. The concept is shown as the following diagram. Open Library > Access Library Information > Close Library 146 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management For example, the library may be opened before opening a cell view: dbOpenLib -lib cpu dbOpenCV -lib cpu -cell cpu -view layout Library Management This section describes the Tcl commands that are related to the library database management. These commands include: ■ dbCloseLib ■ dbCreateLib ■ dbFindOrphanCell ■ dbGetAllCellRefNumber ■ dbGetAllLibs ■ dbGetLayerIdByLayerPurposeName ■ dbGetLayerIdByLayerPurposeNum ■ dbGetLayerIdsByLib ■ dbGetLayerNameByLayerId ■ dbGetLayerNumByLayerId ■ dbGetLDMFile ■ dbGetLibNameByLibId ■ dbGetLibIdByLibName ■ dbGetLibPath ■ dbGetMasterLibName ■ dbGetTechParam ■ dbGetPurposeNameByLayerId ■ dbGetPurposeNumByLayerId ■ dbGetOpenLib ■ dbLibExist ■ dbOpenLib Laker³ Tcl Reference Manual K-2015.06 147 Chapter 4: Database Extensions Library Management ■ dbSaveLib ■ dbSaveAllLib dbCloseLib The dbCloseLib command returns 1 if the specified library can be closed. Syntax dbCloseLib -lib libName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the logical library name or library identifier. Examples set libId1 set libId2 ... dbCloseLib dbCloseLib [dbOpenLib -lib cpu] [dbOpenLib -lib cpu64] -lib $libId1 -lib cpu64 dbCreateLib The dbCreateLib command returns a library identifier if a new library can be created. Syntax dbCreateLib -lib libName [-path libPath] Returns A library identifier if successful; otherwise, returns 0. Arguments 148 Argument Description -lib libName Specify the library name. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management Argument Description -path libPath Specify the working directory (default=current directory). Examples dbCreateLib -lib RAM dbCreateLib -lib RAM -path “../” See Also lakerNewLib Home Page: Library > New dbFindOrphanCell If the orphan cell views are opened, the dbFindOrphanCell command finds or removes orphan MCell sub-masters. Once the orphan cell views are opened, they cannot be deleted. The dbFindOrphanCell command is only valid for the cell views with the mdevice view name. When -exec Delete is specified, the log file is generated with the following format: Performed by User at Date Time Delete un-used sub-masters from lib(libName) cell(cellName) view(viewName) cell(cellName) view(viewName) cell(cellName) view(viewName) ... Total ### sub-masters deleted When -exec Find is specified, the log file is generated with the following format: Performed by User at Date Time Used sub-masters of lib(libName) cell(cellName) view(viewName) cell(cellName) view(viewName) cell(cellName) view(viewName) ... Total ### sub-masters are used Un-used sub-msaters of lib(libName) cell(cellName) view(viewName) cell(cellName) view(viewName) Laker³ Tcl Reference Manual K-2015.06 149 Chapter 4: Database Extensions Library Management cell(cellName) view(viewName) ... Total ### sub-masters are not used in other cells Syntax dbFindOrphanCell -lib libName -exec command [-rcmap 0|1] [-cellType cellType] -log logFile Returns None Arguments Argument Description -cellType cellType Specify the cell type. Valid values: mcell and pcell (default=mcell). -exec command Specify the command for orphan MCell sub-masters. Valid values: Delete and Find. Delete : Delete orphan MCell sub-masters. Find : Find and list the active and orphan MCell sub-masters separately. -lib libName Specify the library name or a list of libraries. Use brackets when specifying a list of libraries, for example: -lib {A B C}. -log logFile Specify the file name of the log file. -rcmap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Map all libraries from the laker.rc resource file. 0 : Do not map all libraries from the laker.rc resource file. Examples # Example 1 dbFindOrphanCell -lib qa -exec Find -cellType pcell -log findlog # Example 2 dbFindOrphanCell -lib qa -exec Delete -cellType pcell -log dellog 150 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management dbGetAllCellRefNumber The dbGetAllCellRefNumber command returns a list of all referenced cell views in the specified library, and the time they have been referenced by other cell views. The dbGetAllCellRefNumber command shows the referenced cell views only when they have been referenced more than the specified threshold value. If the threshold value is not specified, the default threshold time -1 is used. Syntax dbGetAllCellRefNumber -lib libName [-threshold threshold] Returns A list of all referenced cell views in the specified library, and the time they have been referenced by other cell views if successful; otherwise, returns nothing. Arguments Argument Description -lib libName Specify the library name or library identifier. -threshold threshold Define a threshold value. Valid value: an integer number (default=-1). Examples # Example 1 set libId [dbOpenLib -lib mLibtar] set cvId [dbOpenCV -lib mLibtar -cell c1 -mode edit] dbGetAllCellRefNumber -lib $libId dbGetAllCellRefNumber -lib mLibtar dbSaveCV -cv $cvId dbCloseCV -cv $cvId dbSaveLib -lib $libId dbCloseLib -lib mLibtar Laker³ Tcl Reference Manual K-2015.06 151 Chapter 4: Database Extensions Library Management # # # # # # # The results are: {c1 layout 0} {tt layout 0} {MCELL_XTR_4209531 mdevice 0} {t1 layout 0} {MCELL_XTR_4209004 mdevice 0} {MCELL_PCO_339137 mdevice 0} {MCELL_PCO_639488 mdevice 0} {MCELL_XTR_1151794 mdevice 0} {rr layout 0} {MCELL_XTR_4210058 mdevice 0} {r1 layout 0} {MCELL_XTR_1150740 mdevice 0} # Example 2 # In library TEST, there are 4 cells test1, test2, test3, test4. # test1 is the top cell, test2 and test4 are referenced by other cells # once, and test3 is referenced by other cells twice. # Execute the Tcl if the threshold value is not specified. dbGetAllCellRefNumber -lib TEST # The results are: {test1 layout 0} {test2 layout 1} # {test3 layout 2} {test4 layout 1} # Execute the Tcl if the threshold value is 1. dbGetAllCellRefNumber -lib TEST -threshold 1 # The results are: # {test2 layout 1} {test3 layout 2} {test4 layout 1} dbGetAllLibs The dbGetAllLibs command returns a list of library identifiers if all logical library names that are defined in the laker.rc file can be obtained and they exist within the disk. Syntax dbGetAllLibs Returns A list of library identifiers if successful; otherwise, returns nothing. Arguments None Examples set libList [dbGetAllLibs] foreach x $libList { puts “[dbGetAllCells -lib $x]” } 152 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management dbGetLayerIdByLayerPurposeName The dbGetLayerIdByLayerPurposeName command returns a layer identifier if the layer identifier can be obtained by giving the library ID, layer number and purpose number. Syntax dbGetLayerIdByLayerPurposeName -lib libId -layer layerNum -purpose purposeNum Returns A layer identifier if successful; otherwise, returns nothing. Arguments Argument Description -lib libId Specify the library identifier. -layer layerNum Specify the layer number. -purpose purposeNum Specify the purpose number. Examples # Get the layer identifier of the layer whose layer name is MT1 and # whose purpose name is drawing in the library Test. set libId [dbOpenLib -lib Test -mode readOnly] set layerId [dbGetLayerIdByLayerPurposeName \ -lib $libId -layer MT1 -purpose drawing] See Also dbGetLayerIdByLayerPurposeNum dbGetLayerIdByLayerPurposeNum The dbGetLayerIdByLayerPurposeNum command returns a layer identifier if the layer identifier can be obtained by giving the library ID, layer number and purpose number. Syntax dbGetLayerIdByLayerPurposeNum -lib libId -layer layerNum -purpose purposeNum Laker³ Tcl Reference Manual K-2015.06 153 Chapter 4: Database Extensions Library Management Returns A layer identifier if successful; otherwise, returns nothing. Arguments Argument Description -lib libId Specify the library identifier. -layer layerNum Specify the layer number (0-255). -purpose purposeNum Specify the purpose number (0-255). Examples dbGetLayerIdByLayerPurposeNum -lib $libId -layer 255 -purpose 255 See Also dbGetLayerIdByLayerPurposeName dbGetLayerIdsByLib The dbGetLayerIdsByLib command returns a list of layer identifiers if the layer identifiers can be obtained by giving a library name. Syntax dbGetLayerIdsByLib -lib libName Returns A list of layer identifiers if successful; otherwise, returns nothing. Arguments Argument Description -lib libName Specify the logical library name or library identfier. Examples set layerIdList [dbGetLayerIdsByLib -lib cpu] dbGetLayerNameByLayerId The dbGetLayerNameByLayerId command returns a layer name if the layer name can be obtained by giving a layer identifier. 154 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management Syntax dbGetLayerNameByLayerId -layer $layerId Returns A layer name if successful; otherwise, returns 0. Arguments Argument Description -layer $layerId Specify the layer identifier. Examples set layerIdList [dbGetLayerIdsByLib -lib cpu] foreach layerId $layerIdList { set layerName [dbGetLayerNameByLayerId -layer $layerId] puts "$layerName" } dbGetLayerNumByLayerId The dbGetLayerNumByLayerId command returns a layer number if the layer number can be obtained by giving a layer identifier. Syntax dbGetLayerNumByLayerId -layer $layerId Returns A layer number if successful; otherwise, returns nothing. Arguments Argument Description -layer $layerId Specify the layer identifier. Examples dbOpenLib -lib cpu set layerIds [dbGetLayerIdsByLib -lib cpu] foreach x $layerIds { puts “[dbGetLayerNumByLayerId -layer $x]” } Laker³ Tcl Reference Manual K-2015.06 155 Chapter 4: Database Extensions Library Management dbGetLDMFile The dbGetLDMFile command returns the full file path of the library definition mapping file (*.defs) if it can be obtained by giving a library name or identifier. The library definition mapping file includes the given library name. Syntax dbGetLDMFile -lib libName Returns The full file path of the library definition mapping file (*.defs) if successful; otherwise, returns nothing. Arguments Argument Description -lib libName Specify the library name or identifier. Examples # local lib.defs INCLUDE /home/tools/project2/lib.defs DEFINE analogLib /home/tools/xxx/analogLib .... # /home/tools/project2/lib.defs DEFINE tech2Lib /home/iWork/tech2Lib puts "[dbGetLDMFile -lib tech2Lib]" # Returned value: /home/tools/project2/lib.defs puts "[dbGetLDMFile -lib analogLib]" # Returned value: /home/test/lib.defs dbGetLibNameByLibId The dbGetLibNameByLibId command returns a logical library name if the logical library name can be obtained by giving a library identifier. Syntax dbGetLibNameByLibId -lib libId Returns A logical library name if successful; otherwise, returns 0. 156 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management Arguments Argument Description -lib libId Specify the library identifier. Examples dbGetLibNameByLibId -lib [dbOpenLib -lib cpu] dbGetLibIdByLibName The dbGetLibIdByLibName command returns a library identifier if the library identifier can be obtained by giving a library name. Syntax dbGetLibIdByLibName -lib libName Returns A library identifier if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the library name. Examples set libId [dbGetLibIdByLibName -lib cpu] dbGetLibPath The dbGetLibPath command returns an absolute path if the directory, where the library is located, can be obtained. Syntax dbGetLibPath -lib libName Returns An absolute path to indicate where the library is. Laker³ Tcl Reference Manual K-2015.06 157 Chapter 4: Database Extensions Library Management Arguments Argument Description -lib libName Specify the library name. Examples dbGetLibPath -lib cpu dbGetLibPath -lib [dbOpenLib -lib cpu] dbGetMasterLibName The dbGetMasterLibName command gets the master library name by giving a slave library name. If the slave library has no master, the master library returns itself. Syntax dbGetMasterLibName -lib libName Returns A logical library name if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the logical libray name or libray identifier. Examples # Example 1 dbGetMaserLibName -lib SLAVE # Example 2 set slaveId [dbOpenLib -lib SLAVE] dbGetMaserLibName -lib $slaveId dbGetTechParam The dbGetTechParam command retrieves the parameter defined in the tfTechParameter section of the technology file by giving a library name. Syntax dbGetTechParam -lib libName -param paramName 158 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management Returns Parameter value that defined in the associated technology file section. Arguments Argument Description -lib libName Specify the logical libray name or libray identifier. -param paramName Specify the parameter name. Examples dbGetTechParam -lib CPU -param minMT1Width See Also Layout Window: Create > Device dbGetPurposeNameByLayerId The dbGetPurposeNameByLayerId command returns a purpose name if the purpose name can be obtained by giving a layer identifier. Syntax dbGetPurposeNameByLayerId -layer $layerId Returns A purpose name if successful; otherwise, returns 0. Arguments Argument Description -layer $layerId Specify the layer identifier. Examples set layerIdList [dbGetLayerIdsByLib -lib cpu] foreach layerId $layerIdList { set purposeName [dbGetPurposeNameByLayerId -layer $layerId] puts “$purposeName” } Laker³ Tcl Reference Manual K-2015.06 159 Chapter 4: Database Extensions Library Management dbGetPurposeNumByLayerId The dbGetPurposeNumByLayerId command returns a purpose number if the purpose number can be obtained by giving a layer identifier. Syntax dbGetPurposeNumByLayerId -layer $layerId Returns A purpose number (0-255) if successful; otherwise, returns nothing. Arguments Argument Description -layer $layerId Specify the layer identifier. Examples set layers [dbGetLayerIdsByLib -lib [dbOpenLib -lib cpu]] foreach x $layers { puts “[dbGetPurposeNumByLayerId -layer $x]” } dbGetOpenLib The dbGetOpenLib command returns a list of all opened library identifiers if these library identifiers can be obtained. Syntax dbGetOpenLib Returns A list of all opened library identifiers if successful; otherwise, returns nothing. Arguments None Examples dbGetOpenLib dbLibExist The dbLibExist command returns 1 if the specified library exists. 160 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Library Management Syntax dbLibExist -lib libName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the logical library name or library identfier. Examples dbLibExist -lib cpu dbOpenLib The dbOpenLib command returns a library identifier if the specified library can be opened. Syntax dbOpenLib -lib libName [-mode openMode] Returns A library identifier if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the library name. -mode openMode Specify the open mode of a library. Valid values: edit and readOnly (default=edit). Examples dbOpenLib -lib cpu dbOpenLib -lib cpu -mode edit dbOpenLib -lib cpu -mode readOnly dbSaveLib The dbSaveLib command returns 1 if the specified library can be saved. Laker³ Tcl Reference Manual K-2015.06 161 Chapter 4: Database Extensions Library Management Syntax dbSaveLib -lib libName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the logical library name or library identifier. Examples set libId [dbOpenLib -lib cpu] set cvId [dbOpenCV -lib $libId -cell test -view test -mode edit] dbSet -obj $cvId -attr CellViewType -value maskLayout dbSaveCV -cv $cvId dbCloseCV -cv $cvId dbSaveLib -lib $libId dbCloseLib -lib cpu dbSaveAllLib The dbSaveAllLib command returns 1 if all logical libraries can be saved. Syntax dbSaveAllLib Returns 1 if successful; otherwise, returns 0. Arguments None 162 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Examples dbCreateLib -lib AA dbCreateLib -lib BB set libId [dbOpenLib -lib AA] set masterId [dbOpenLib -lib BB] set cvId [dbOpenCV -lib $libId -cell Top -view layout -mode create] set cvId2 [dbOpenCV -lib $masterId -cell cell -view layout -mode create] dbCreateRect -cv $cvId -layer 8 -purpose 252 -bbox (-100,-100)(100,100) dbCreatePolygon -cv $cvId2 -layer 8 -point (-500,-500)(-300,-500)\ (-100,-300)(-300,-100)(-500,-100) -purpose 252 dbSaveCV -cv $cvId dbSaveCV -cv $cvId2 dbCloseCV -cv $cvId dbCloseCV -cv $cvId2 dbSaveAllLib dbCloseLib -lib $libId dbCloseLib -lib $masterId Cell View Management This section describes the Tcl commands that are related to the cell view management. These commands include: ■ dbChangeCVMode ■ dbCheckBBox ■ dbCheckCV ■ dbCheckRecursion ■ dbCloseCV ■ dbCopyCV ■ dbCVExist ■ dbDelCV ■ dbDumpTCL ■ dbFindCV ■ dbGetAllCells Laker³ Tcl Reference Manual K-2015.06 163 Chapter 4: Database Extensions Cell View Management ■ dbGetAllViews ■ dbGetCbInstId ■ dbGetCVFullPath ■ dbGetDummyMOS ■ dbGetInstByLogicName ■ dbGetInstSwitchMaster ■ dbGetOpenCV ■ dbGetOpenCVNum ■ dbOpenCV ■ dbOpenHier ■ dbOpenRecoveryCV ■ dbPurgeCV ■ dbRegisterCVPurge ■ dbSaveCV ■ dbUnregisterCVPurge dbChangeCVMode The dbChangeCVMode command returns 1 if the opening mode of the specified cell view can be changed. Syntax dbChangeCVMode -cv cellviewId -mode openMode Returns 1 if successful; otherwise, returns 0. Arguments 164 Argument Description -cv cellviewId Specify the cell view identifier. -mode openMode Specify the opening mode of a cell view. Valid values: edit and readOnly (default=edit). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Examples set cvId [dbOpenCV -lib cpu -cell an2d1 -mode readOnly] dbChangeCVMode -cv $cvId -mode edit See Also lakerChgmodeDesign Layout Window: Cell > Change To Edit/ReadOnly Mode dbCheckBBox The dbCheckBBox command returns 1 if the bounding box of the library (or cell view) has been modified. Syntax dbCheckBBox -lib libName [-cell cellName] Returns 1 if the bounding box of the library (or cell view) has been modified; otherwise, returns 0 if the bounding of the library (or cell view) are correct. If the specified library or cell view is incorrect, warning messages are shown in the message pane. Arguments Argument Description -cell cellName Specify the cell name. This is an optional argument. If the cell name is not specified, all cells in the specified library are checked. -lib libName Specify the library that is located in the working directory, or specify a library with its full path. Examples # Example 1 # Check and fix the bounding box of all cells in the Local library dbCheckBBox -lib Local # Example 2 # Check and fix the bounding of the new1 cell in the Local library dbCheckBBox -lib Local2 -cell new1 See Also Utility: dbCheckBBox Laker³ Tcl Reference Manual K-2015.06 165 Chapter 4: Database Extensions Cell View Management dbCheckCV The dbCheckCV command returns 1 if a legal cell view Id can be obtained; otherwise returns 0 if the cell view Id is illegal. Syntax dbCheckCV [-cv cellviewId] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples dbCreateLib -lib BB set libId [dbOpenLib -lib BB] set cvId [dbOpenCV -lib $libId -cell Top -view layout -mode create] set cvId2 [dbOpenCV -lib $libId -cell Top2 -view layout -mode create] ... dbCheckCV dbCheckCV -cv $cvId dbCheckCV -cv $cvId2 ... dbSaveCV -cv $cvId dbSaveCV -cv $cvId2 dbSaveLib -lib $libId dbCloseCV -cv $cvId dbCloseCV -cv $cvId2 dbCloseLib -lib $libId dbCheckRecursion The dbCheckRecursion command returns 0 if the hierarchical relation of the cell view masters is recursive. If the reference count of the specified cell view is 166 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management 1, the cell view is purged. If the reference count is greater than 1, the reference count is decreased by 1. Syntax dbCheckRecursion -cv cellviewId Returns 1 if non-recursive; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples set cvId [dbOpenCV -lib cpu -cell cpu] dbCheckRecursion -cv $cvId dbCloseCV The dbCloseCV command returns 1 if the specified cell view can be closed. If all the views of the cell are closed, the cell name on the Cell pane of the Open Cell form is reset to black color. Syntax dbCloseCV -cv cellviewId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples set cv1 [dbOpenCV -lib cpu -cell cpu] ... set cv2 [dbOpenCV -lib cpu -cell cpu] dbCloseCV -cv $cv2 ... dbCloseCV -cv $cv1 Laker³ Tcl Reference Manual K-2015.06 167 Chapter 4: Database Extensions Cell View Management See Also lakerCloseDesign Layout Window: Cell > Close adpDsgCloseWnd Schematic Editor: Cell> Close dbCopyCV The dbCopyCV command returns 1 if the specified cell view can be created in the target library. The -overWrite option forces to overwrite the existing cell views by the new cell views. Syntax dbCopyCV -cell cellName -cv cellviewId -lib libName [-view viewName] [-overWrite 0|1] Returns 1 if successful; otherwise, returns 0. Arguments 168 Argument Description -cell cellName Specify the cell name of the specified cell view. -cv cellviewId Specify the cell view identifier. -lib libName Specify the library name or library identifier. -overWrite 0|1 Specify the switch mode. Valid values: Boolean values, 0 and 1 (default=0). -view viewName Specify the view type of the target cell view. Valid values: layout, abs, and schematic (default=layout). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Examples # Copy and overwrite the layout view of the cell an2d1 from # library cpu to library temp1. set cv [dbOpenCV -lib cpu -cell an2d1 -mode create] set newLib [dbCreateLib -lib temp1] dbCopyCV -cell an2d1 -cv $cv -lib $newLib -overWrite 1 # Output Result 1 See Also lakerCopyCell Home Page: Cell > Copy dbCVExist The dbCVExist command returns 1 if the specified cell view exists within the library. Syntax dbCVExist -lib libName -cell cellName [-view viewName] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name of the specified cell view. -lib libName Specify the library name or library identifier. -view viewName Specify the view type of the target cell view. Valid values: layout, abs, and schematic (default=layout). Examples if {[dbCVExist -lib cpu -cell cpu]} { set cvId [dbOpenCV -lib cpu -cell cpu] } else { set cvId [dbOpenCV -lib cpu -cell cpu -mode create] } Laker³ Tcl Reference Manual K-2015.06 169 Chapter 4: Database Extensions Cell View Management See Also lakerOpenDesign lakerNewCell Layout Window: Cell > Open adpLibMgrOpenDesign Schematic Editor: Cell> Open dbDelCV The dbDelCV command returns 1 if the specific cell view can be removed from the specified library. Syntax dbDelCV -lib libName -cell cellName [-view viewName] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name of the specified cell view. -lib libName Specify the library name or library identifier. -view viewName Specify the view type of the target cell view. Valid values: layout, abs, and schematic (default=layout). Examples dbDelCV -lib cpu -cell cpu -view layout dbDelCV -lib cpu -cell cpu32 See Also lakerDelCell Home Page: Cell > Delete 170 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management dbDumpTCL The dbDumpTCL command returns 1 if the specified cell view content can be dumped, hierarchically or non-hierarchically, to a Tcl script file that can reconstruct this cell view. If -mode append is specified, the cell view content is appended to the specified file. If -mode write is specified and the specified file exists, the existing file is updated by the cell view content. If -hier 0 is specified, only the specified cell view is dumped. If -hier 1 is specified, the cell view is dumped hierarchically. Syntax dbDumpTCL -cv cellviewId -file fileName [-mode fileOpenMode] [-hier 0|1] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -file fileName Specify the output file. -hier 0|1 Specify the switch mode. Valid values: Boolean values, 0 and 1 (default=0). -mode fileOpenMode Specify the opening mode of the file. Valid values: write and append (default=write). Examples set cvId1 set cvId2 dbDumpTCL dbDumpTCL dbDumpTCL [dbOpenCV -lib cpu -cell cpu -mode readOnly] [dbOpenCV -lib cpu -cell an2d1 -mode readOnly] -cv $cvId1 -file outfile1 -cv $cvId1 -file outfile2 -hier 1 -cv $cvId2 -file outfile1 -mode append Laker³ Tcl Reference Manual K-2015.06 171 Chapter 4: Database Extensions Cell View Management dbFindCV The dbFindCV command returns a cell view identifier if an opened cell view can be found. Syntax dbFindCV -lib libName -cell cellName [-view viewName] Returns A cell view identifier if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. -lib libName Specify the library name or library identifier. -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Examples dbOpenCV -lib cpu -cell an2d1 ... set cvId [dbFindCV -lib cpu -cell an2d1] See Also Layout Window: Query > Find Schematic Editor: Query > Find dbGetAllCells The dbGetAllCells command returns a list of cell names if all cell names in the specified library can be obtained. This command returns all cell names, which include cell names from Tcl PCells or the cells created by Import LEF, Import Stream, New Cell, Rename Cell or Save As commands. 172 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Syntax dbGetAllCells -lib libName|libId [-psubmaster 1] [-view viewname] Returns A list of cell names of the specified library if successful; otherwise, returns nothing. Arguments Argument Description -lib libName|libId Specify the logical library name or library identifier. -psubmaster 1 Valid value: Boolean value, 1. 1 : Get the sub-master of Tcl PCells. -view viewname Specify the view name. Valid values: layout, symbolic, pcc, spc, abs, mdevice_superMaster, mdevice, logic, netlist, graphic, schematic, and symbol.layout: Layout view.symbolic: The super-master or sub-master of Tcl PCells.pcc: The super-master of UDDs.spc: The submaster of UDDs.abs: Abstract view.mdevice_superMaster: The MCell super-master for MCell version control.mdevice: The sub-master of MCells.logic: Logic view.netlist: Netlist view.graphic: Graphic view.schematic: Schematic view.symbol: Symbol view. Examples # Example 1 set libId1 [dbCreateLib -lib newLib1] set libId2 [dbCreateLib -lib newLib2] dbOpenCV -lib $libId1 -cell c1 -mode create ... dbGetAllCells -lib $libId1 dbGetAllCells -lib newLib2 # Example 2 dbGetAllCells -lib qa -psubmaster 1 See Also dbGetAllViews lakerOpenDesign Layout Window: Cell > Open Laker³ Tcl Reference Manual K-2015.06 173 Chapter 4: Database Extensions Cell View Management adpLibMgrOpenDesign Schematic Editor: Cell> Open Home Page: File > Open dbGetAllViews The dbGetAllViews command returns a list of view names if all view names of the specified cell and library can be obtained. Syntax dbGetAllViews -lib libName|libId -cell cellName Returns A list of view names of the specified cell and library if successful; otherwise, returns nothing. Arguments Argument Description -cell cellName Specify the cell name. -lib libName|libLib Specify the logical library name or library identifier. Examples dbGetAllViews -lib cpu -cell and2d1 See Also dbGetAllCells lakerOpenDesign Layout Window: Cell > Open adpLibMgrOpenDesign Schematic Editor: Cell> Open Home Page: File > Open dbGetCbInstId The dbGetCbInstId command returns the current instance identifier after the parameter change callbacks or attribute evaluations. This command can only be called from within the parameter attribute scripts. 174 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Syntax dbGetCbInstId Returns The instance identifier if successful; otherwise, returns 0. Arguments None Examples proc getCurrentRef { } { puts [dbGetCbInstId] return [dbGetCbInstId] } dbGetCVFullPath The dbGetCVFullPath command returns the full path of the specified cell view if the full path of a cell view can be obtained. Each cell view is a file under the directory <libName>.lib++/<cellName>. Syntax dbGetCVFullPath -cv cellviewId Returns The full path of the specified cell view if successful; otherwise, returns nothing. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples dbGetCVFullPath -cv [dbOpenCV -lib cpu -cell an2d1] dbGetDummyMOS The dbGetDummyMOS command returns a string which contains all information of dummy gates if such information can be obtained in the specified cell view. Syntax dbGetDummyMOS -cv cellviewId Laker³ Tcl Reference Manual K-2015.06 175 Chapter 4: Database Extensions Cell View Management Returns A string contains all information of dummy gates if successful; otherwise, returns an empty string. The syntax of the returned value is explained as follows: {{GateName Net_Drain Net_Gate Net_Source Net_Bulk ModelName Width Length AD AS PD PS} ... } where: GateName refers to the gate name of dummy gates. Net_Drain, Net_Gate, Net_Source, and Net_Bulk refer to the net names that connect to drains, gates, sources, and bulk nets. ModelName refers to the MCell super-master name. Width and Length refer to the gate width and length of dummy gates. AD AS PD and PS refer to the area and perimeter for drains and sources. If the net/gate name is nil, the empty net/gate name is filled by {}. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples set cvId [dbOpenCV -lib cpu -cell an2d1 -mode readOnly] set dummyInfo [dbGetDummyMOS -cv $cvId] dbGetInstByLogicName The dbGetInstByLogicName command returns a list of instance identifiers associated with the specified logic instance if the corresponding layout instances can be obtained by instance name in the logic cell view. Syntax dbGetInstByLogicName -cv cellviewId -logicName logicInstName Returns A list of instance identifiers associated with the specified logic instance if successful; otherwise, returns nothing. 176 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management For MCell instances, each element in the returned list is for each gate of the instances, so the list includes pairs of the instance identifier and the gate glue number. For other types of instances, each element in the returned list is for each instance identifier. Arguments Argument Description -cv cellviewId Specify the layout cell view identifier. -logicName logicInstName Specify the logic instance name. Examples # Example 1 # Logic instance M1 is realized as some PyCell instances # Value returned: A list of Ids (for example: oa::001 oa::002) dbGetInstByLogicName -cv $cvId -logicName M1 # Example 2 # Logic instance M2 is realized as some gates in some MCell instances # Value returned: A list of pairs of Ids and gate glue number # (for example: {oa:003 2} {oa:003 3} {oa:004 1} {oa:004 2}) dbGetInstByLogicName -cv $cvId -logicName M2 dbGetInstSwitchMaster The dbGetInstSwitchMaster command returns an instance identifier if the instance master can be replaced with the specified cell view. Syntax dbGetInstSwitchMaster -inst instId [-view viewName] Returns An instance identifier if successful; otherwise, returns 0. Arguments Argument Description -inst instId Specify the instance identifier. Laker³ Tcl Reference Manual K-2015.06 177 Chapter 4: Database Extensions Cell View Management Argument Description -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Examples set tcvId [dbOpenCV -lib cpu -cell cpu -mode edit] set mcvId [dbOpenCV -lib cpu -cell or_2 -view layout -mode create] ... set instId [dbCreateInst -cv $tcvId -master $mcvId -point (0, 1.2)] ... dbGetInstSwitchMaster -inst $instId -view schematic dbGetOpenCV The dbGetOpenCV command returns a list of all opened cell view identifiers in the specified library if these cell view identifiers can be obtained. Syntax dbGetOpenCV -lib libName Returns A list of all opened cell view identifiers in the specified library if successful; otherwise, returns nothing. Arguments Argument Description -lib libName Specify the logical library name of library identifier. Examples dbGetOpenCV -lib testLib dbGetOpenCVNum The dbGetOpenCVNum command returns the number of opened cell views if these cell views can be counted. Syntax dbGetOpenCVNum 178 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Returns The number of opened cell views if successful; otherwise, returns nothing. Arguments None Examples dbCreateLib -lib AA set libId [dbOpenLib -lib AA ] set cvId [dbOpenCV -lib $libId -cell c1 -view layout -mode create] set cvId2 [dbOpenCV -lib $libId -cell r1 -view layout -mode create] set cvId3 [dbOpenCV -lib $libId -cell master -view layout -mode create] dbGetOpenCVNum dbSaveLib -lib $libId dbCloseCV -cv $cvId dbCloseCV -cv $cvId2 dbCloseCV -cv $cvId3 dbCloseLib -lib $libId dbOpenCV The dbOpenCV command returns a cell view identifier if the specified cell view can be opened. Syntax dbOpenCV -lib libName -cell cellName [-view viewName] [-mode openMode] Returns A cell view identifier if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. -lib libName Specify the library name or library identifier. -mode openMode Specify the opening mode of the cell view. Valid values: create, readOnly, and edit (default=edit). Laker³ Tcl Reference Manual K-2015.06 179 Chapter 4: Database Extensions Cell View Management Argument Description -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Examples set libId1 [dbCreateLib -lib temp] dbOpenCV -lib $libId1 -cell c1 -mode create dbOpenCV -lib $libId1 -cell c2 -view schematic -mode create set cpuId [dbOpenCV -lib cpu -cell cpu -mode edit] See Also lakerOpenDesign lakerNewCell Layout Window: Cell > Open adpLibMgrOpenDesign Schematic Editor: Cell> Open Home Page: File > Open dbOpenHier The dbOpenHier command returns a list of opened cell view identifiers if the specified cell view masters can be opened hierarchically. Syntax dbOpenHier -cv cellviewId [-level openLevel] Returns A list of opened cell view identifiers if successful; otherwise, returns 0. Arguments 180 Argument Description -cv cellviewId Specify the cell view identifier. -level openLevel Specify the hierarchical view level. Valid value: a positive integer (default=49). The range of the maximum hierarchical view level is from 0 to 49. The maximum positive integer value is 49. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Examples dbOpenHier -cv [dbOpenCV -lib cpu -cell cpu] -level 10 See Also dbOpenCV lakerViewLevel lakerEditInPlace Layout Window: View > View Level Layout Window: EIP > Descend Mode Layout Window: EIP > Edit In Place dbOpenRecoveryCV The dbOpenRecoveryCV command returns a cell view identifier if the recovery copy of the specified cell view can be opened. Syntax dbOpenRecoveryCV -lib libName -cell cellName [-view viewName] [-mode openMode] Returns A cell view identifier if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. -lib libName Specify the library name. -mode openMode Specify the opening mode of the cell view. Valid values: readOnly and edit (default=edit). -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Examples dbOpenRecoveryCV -lib cpu -cell cpu -mode readOnly See Also lakerOpenDesign Laker³ Tcl Reference Manual K-2015.06 181 Chapter 4: Database Extensions Cell View Management Layout Window: Cell > Open adpLibMgrOpenDesign Schematic Editor: Cell> Open Home Page: File > Open dbPurgeCV The dbPurgeCV command returns 1 if the content of the specified cell view can be purged from memory. The specified cell view is always purged, regardless of the reference count. Syntax dbPurgeCV -cv cellviewId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples dbPurgeCV -cv 2028c0 dbRegisterCVPurge The dbRegisterCVPurge command returns 1 if an invoking Tcl procedure can be registered when a cell view is purged. The Tcl procedure that a user registers for the purging event should always have one and only one argument. When a purging event occurs on the specified cell view, the callback is invoked and the cell view identifier is passed to the callback. When the specified cell view is purged, the procedure with the higher priority is executed first. If there are more than two procedures having the same priority, the latest registered procedure is executed in a higher priority. Syntax dbRegisterCVPurge -fun procedure [-priority priorityNo] 182 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Cell View Management Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -fun procedure Specify the name of the Tcl procedure. -priority priorityNo Specify the priority number. Valid value: a positive integer with 0 being the highest priority (default=0). Examples proc cvPurge1 {cvId} { puts "cvPurg1 is called" puts "$cvId is purged from memory" return 1 } proc cvPurge2 {cvId} { puts "cvPurge2 is called" return 0 } dbRegisterCVPurge -fun cvPurge1 -priority 30 dbRegisterCVPurge -fun cvPurge2 dbSaveCV The dbSaveCV command returns 1 if the specified cell view can be saved to the disk. Syntax dbSaveCV -cv cellviewId [-dst dstCVId] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier to be saved. -dst dstCVId Specify the identifier of the destination cell view. If this argument is not specified, the content of cellviewId is saved to itself. Laker³ Tcl Reference Manual K-2015.06 183 Chapter 4: Database Extensions Cell View Management Examples set cv1 [dbOpenCV -lib cpu -cell cpu -mode edit] dbCreateRect -cv $cv1 -layer THIN -bbox (0,0)(5.5,10) ... dbSaveCV -cv $cv1 dbSaveCV -cv $cv1 -dst [dbOpenCV -lib cpu2 -cell cpu -mode create] See Also lakerSaveDesign lakerSaveAsDesign Layout Window: Cell > Save Layout Window: Cell > Save As adpDsgSave adpDsgSaveAs Schematic Editor: Cell> Save Schematic Editor: Cell> Save As dbUnregisterCVPurge The dbUnregisterCVPurge command returns 1 if the Tcl procedure, which was registered as a purging callback, cannot be invoked when a cell view is purged. Syntax dbUnregisterCVPurge -fun procedure Returns 1 if successful; otherwise, returns 0. Arguments 184 Argument Description -fun procedure Specify the name of the Tcl procedure. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Tcl PCells Examples proc cvPurge1 {cvId} { puts "cvPurg1 is called" puts "$cvId is purged from memory" return 1 } proc cvPurge2 {cvId} { puts "cvPurge2 is called" return 0 } dbRegisterCVPurge -fun cvPurge1 -priority 30 dbRegisterCVPurge -fun cvPurge2 ... dbUnregisterCVPurge -fun cvPurge1 dbUnregisterCVPurge -fun cvPurge2 Tcl PCells This section describes the Tcl commands that are related to Tcl PCells. These commands include: ■ dbDefineParameterizedCell ■ dbCreateParameterizedInst ■ dbSetPCellParam ■ dbGetInstParam ■ dbGetPcellDefValue dbDefineParameterizedCell The dbDefineParameterizedCell command returns the results to evalulate the script of Tcl PCells if any symbolic parameterized cells in the specified library can be defined. The view name of a parameterized cell is symbolic. For example, assume that the master is B, if a Tcl PCell is created within another parameterized cell (for example: A) and the same variable is used in these two scripts of the Tcl PCells, this variable should be delared as the local variable in both scripts; otherwise, errors may be occured. It is recommended to declare all variables that appear in the script of Tcl PCells as the local variables. Laker³ Tcl Reference Manual K-2015.06 185 Chapter 4: Database Extensions Tcl PCells Syntax dbDefineParameterizedCell -lib libName -cell cellName params parameters [-vars localVariables] [-refresh 0|1] [-encrypt encryptionKey] [-pcellVersion num] -exec Tcl_commands Returns The results to evalulate the script of Tcl PCells if successful; otherwise, returns nothing. Arguments Argument Description -cell cellName Specify the cell name of the Tcl PCell. The cell name must not end with _number (for example: cellName_1, cellName_18, or cellName_33) because this naming pattern is treated as a sub-master in certain situations. If any Tcl PCell cell names match with the above pattern, the Tcl PCells are not created after copying the Tcl PCells to another library. -encrypt encryptionKey Specify the encryption key to encrypt the ASCII script of Tcl PCells. If it is not specified, the plain text (ASCII) of Tcl PCells is saved. -exec Tcl_commands Specify the Tcl script that creates Tcl PCells. The variables dbParameterizedCell, dbSuperMasterId, and dbSuperMasterLibId can be used in the script. dbParameterizedCell can access the evaluating submaster. dbSuperMasterId can access the cell view identifier of the super-master. dbSuperMasterLibId can access the library identifier of the super-master. The variables that are defined in the parameter list of Tcl PCells can also be accessed. -lib libName 186 Specify the library name in which Tcl PCells are defined. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Tcl PCells Argument Description -params parameters Specify the parameter list. A parameter is a list of two or three items. If the parameter consists of two items, the two items in the list represent the parameter name and the default value of the parameter, respectively. For the parameter with two items, the default data type of the parameter is String. If the parameter consists of three items, the three items in the list indicate the parameter name, the default value, and the data type of the parameter. The valid values of the data type for each parameter can be String, Integer, Float, or Boolean. -pcellVersion num Specify the version tag. If the Tcl PCell supermaster is changed, the -pcellVersion value should also be increased. Valid value: an integer. -refresh 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : All Tcl PCells in DB are re-evaluted with new definition. 0 : All Tcl PCells are not re-evaluated. -vars localVariables Specify the list of variable names which are treated as local variables in the script of Tcl PCells. Laker³ Tcl Reference Manual K-2015.06 187 Chapter 4: Database Extensions Tcl PCells Examples # create a spiral inductor dbDefineParameterizedCell -lib parameterizedCellLib \ -cell Spiral_v2 -params [list [list spiralNo 10 Integer] \ [list radius 10.0 Float] [list gap 3.0 Float] \ [list width 2.0 Float] [list space 0.8 Float]] \ -vars {Layer PI2 sin45 sec hgap cvId nCnt os is om im} \ -exec { # create a spiral inductor set cvId $dbParameterizedCell set Layer MET1 set PI2 [expr acos(0)] set sin45 [expr sin($PI2/2)] set sec [expr 1.0/cos($PI2/4)] set hgap [expr $gap*0.5] for {set nCnt 0} {$nCnt < $spiralNo} {incr nCnt} { set os [expr $radius*$sec] set is [expr double($radius-$width)*$sec] set om [expr $os*$sin45] set im [expr $is*$sin45] dbCreatePolygon -cv $cvId -layer $Layer \ -point ($os,$hgap) ($om,[expr $om+$hgap])\ (0,[expr $os+$hgap]) (0,[expr $is+$hgap])\ ($im,[expr $im+$hgap]) ($is,$hgap) dbCreatePolygon -cv $cvId -layer $Layer \ -point ([expr -$os],$hgap)\ ([expr -$om],[expr $om+$hgap]) (0,[expr $os+$hgap])\ (0,[expr $is+$hgap]) ([expr -$im],[expr $im+$hgap]) \ ([expr -$is],$hgap) dbCreatePolygon -cv $cvId -layer $Layer \ -point ($os,[expr -$hgap]) ($om,[expr -$om-$hgap])\ (0,[expr -$os-$hgap]) (0,[expr -$is-$hgap])\ ($im,[expr -$im-$hgap]) ($is,[expr -$hgap]) dbCreatePolygon -cv $cvId -layer $Layer \ -point ([expr -$os],[expr -$hgap])\ ([expr -$om],[expr -$om-$hgap]) \ (0,[expr -$os-$hgap]) (0,[expr -$is-$hgap]) \ ([expr -$im],[expr -$im-$hgap])\ ([expr -$is],[expr -$hgap]) set radius [expr double($radius+$width+$space)] } # return 1 expr 1 } 188 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Tcl PCells # create one rectangle in current evaluating master set libName "device" dbDefineParameterizedCell -lib $libName -cell ViaChain \ -params [list ... -exec { dbCreateRect -cv $ dbParameterizedCell -layer MET1 \ -bbox ((0,0) (100,100)) # create ViaChain device instance for hierarchical Tcl PCell set libName "device" dbDefineParameterizedCell -lib $libName \ -cell ViaChainCellTypeSubBlock -params [list ... -exec { ... set curCvId $ dbParameterizedCell set mCvId [dbOpenCV -lib $ dbSuperMasterLibId -cell ViaChain \ -view symbolic] set devId [dbCreateParameterizedInst -cv $curCvId \ -master $mCvId -point (0,0) \ -params [list [list Layer VIA1 String] \ [list Via_size $Via_size Float] ] ] # create device name label of super master ... -exec { ... set curCvId $ dbParameterizedCell dbCreateLabel -cv $curCvId -text [dbGet -obj $ dbSuperMasterId \ -attr CellName] ... # re-evaluate all Tcl PCells in db dbDefineParameterizedCell -lib test -cell pDev1 \ -params [list \ [list a 1.0 ] \ [list b 5 ] \ [list c 5 ] \ [list d 1.122 ] \ ] \ -vars {cvId _instCV_ _devCV_ \ -refresh FALSE \ } \ -exec { Laker³ Tcl Reference Manual K-2015.06 189 Chapter 4: Database Extensions Tcl PCells set cvId $dbParameterizedCell dbCreateRect -cv $cvId -layer MET1 \ -bbox ($a,$a) ([expr $a+$b],[expr $a+$b]) \ dbCreateRect -cv $cvId -layer MET2 \ -bbox ($c,$c) ([expr $c+$d],[expr $c+$d])\ } dbCreateParameterizedInst The dbCreateParameterizedInst command returns an instance identifier if the Tcl PCell, whose master is a symbolic parameterized cell, can be created. Syntax dbCreateParameterizedInst -cv tcvId -master parameterizedCellId [-name parameterizedInstName] -point origin -orient orientation [-params parameters] Returns An instance identifier if successful; otherwise, returns 0. Arguments Argument Description -cv tcvId Specify the cell view identifier on which the parameterized instance is created. -master parameterizedCellId Specify the master cell view identifier of the parameterized instance. -name Specify the parameterized instance. parameterizedInstName -orient orientation 190 Specify the orientation of this parameterized instance. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Tcl PCells Argument Description -params parameters Specify the parameter list. A parameter is a list of two or three items. If the parameter is of two items, the two items in the list represent the parameter name and the default value of the parameter, respectively. If the parameter is of three items, the three items in the list indicate the parameter name, the default value, and the data type of the parameter. Valid value of the data type for each parameter is either String, Integer, Float, or Boolean. If the parameter is of two items, the default data type of the parameter is String. -point origin Specify the origin point of this parameterized instance. Examples # define Tcl PCell C0 dbDefineParameterizedCell -encrypt xxxxxxxx \ -lib parameterizedCellLib -cell C0 \ -params [list [list p1 0 Integer] [list p2 0 Integer] ] \ -vars [list textString] -exec { set textString "p1 on C0 = $p1" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 0 0 set textString "p2 on C0 = $p2" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 30 30 expr 1 } #define Tcl PCell C1 dbDefineParameterizedCell -lib parameterizedCellLib \ -cell C1 -params [list [list p1 0 Integer] [list p2 0 Integer]]\ -vars {textString1 textString mcvId bbox_mcv xlen_mcv ylen_mcv}\ -exec { dbOpenLib -lib parameterizedCellLib set mcvId [dbOpenCV -lib parameterizedCellLib -cell C0 \ -view symbolic] set bbox_mcv [dbGet -obj $mcvId -attr BBox] set xlen_mcv [expr [getBBoxRight -bbox $bbox_mcv] Laker³ Tcl Reference Manual K-2015.06 191 Chapter 4: Database Extensions Tcl PCells - [getBBoxLeft -bbox $bbox_mcv]] set ylen_mcv [expr [getBBoxTop -bbox $bbox_mcv] - [getBBoxBottom -bbox $bbox_mcv]] dbCreateParameterizedInst -cv $dbParameterizedCell \ -master $mcvId -point 0 0 \ -params [list [list p1 [expr 2*$p1] Integer] [list p2 [expr 2*p2] Integer]] dbCloseCV -cv $mcvId dbCloseLib -lib parameterizedCellLib expr 1 } # define Tcl PCell C2 dbDefineParameterizedCell -lib parameterizedCellLib \ -cell C2 -params [list [list p1 0 Integer] [list p2 0 Integer]]\ -vars [list textString] -exec { set textString "p1 on C2= $p1" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 0 0 set textString "p2 on C2= $p2" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 30 30 expr 1 } # define Tcl PCell C3 dbDefineParameterizedCell -encrypt abcdefxyz123 -lib parameterizedCellLib -cell C3 -params [list [list p1 0 Integer] [list p2 0 Integer] ] -vars [list textString] -exec { set textString "p1 on C3= $p1" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 0 0 set textString "p2 on C3= $p2" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 30 30 \ \ \ expr 1 } 192 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Tcl PCells # define Tcl PCell C4 dbDefineParameterizedCell -lib parameterizedCellLib \ -cell C4 -params [list [list p1 0 Integer] [list p2 0 Integer]]\ -vars [list textString] -exec { set textString "p1 on C4= $p1" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 0 0 set textString "p2 on C4= $p2" dbCreateLabel -cv $dbParameterizedCell -layer MT1 \ -text $textString -height 2 -point 30 30 expr 1 } #define Tcl PCell C5 dbDefineParameterizedCell -lib parameterizedCellLib \ -cell C5 -params [list [list p1 0 Integer] [list p2 0 Integer]]\ -vars {textString1 textString mcvId1 mcvId2 bbox_mcv \ xlen_mcv ylen_mcv} \ -exec { dbOpenLib -lib parameterizedCellLib set mcvId1 [dbOpenCV -lib parameterizedCellLib \ -cell C1 -view symbolic] set mcvId2 [dbOpenCV -lib parameterizedCellLib \ -cell C2 -view symbolic] dbCreateParameterizedInst -cv $dbParameterizedCell \ -master $mcvId1 -point 0 0 \ -params [list [list p1 [expr 2*$p1] Integer] \ [list p2 [expr 2*p2] Integer]] set set set - bbox_mcv [dbGet -obj $mcvId1 -attr BBox] xlen_mcv [expr [getBBoxRight -bbox $bbox_mcv] [getBBoxLeft -bbox $bbox_mcv]] ylen_mcv [expr [getBBoxTop -bbox $bbox_mcv] [getBBoxBottom -bbox $bbox_mcv]] dbCreateParameterizedInst -cv $dbParameterizedCell \ -master $mcvId2 -point [list $xlen_mcv $ylen_mcv] \ -params [list [list p1 [expr 2*$p1+1] Integer] [list p2 [expr 2*p2+1] Integer]] dbCloseCV -cv $mcvId1 dbCloseCV -cv $mcvId2 Laker³ Tcl Reference Manual K-2015.06 193 Chapter 4: Database Extensions Tcl PCells dbCloseLib -lib parameterizedCellLib expr 1 } #define Tcl PCell C6 dbDefineParameterizedCell -lib parameterizedCellLib \ -cell C6 -params [list [list p1 0 Integer] [list p2 0 Integer]]\ -vars {textString1 textString mcvId1 mcvId2 bbox_mcv \ xlen_mcv ylen_mcv} \ -exec { dbOpenLib -lib parameterizedCellLib set mcvId1 [dbOpenCV -lib parameterizedCellLib \ -cell C3 -view symbolic] set mcvId2 [dbOpenCV -lib parameterizedCellLib \ -cell C4 -view symbolic] dbCreateParameterizedInst -cv $dbParameterizedCell -master $mcvId1 -point 0 0 \ -params [list [list p1 [expr 2*$p1] Integer] \ [list p2 [expr 2*p2] Integer]] set bbox_mcv [dbGet -obj $mcvId1 -attr BBox] set xlen_mcv [expr [getBBoxRight -bbox $bbox_mcv] - [getBBoxLeft -bbox $bbox_mcv]] set ylen_mcv [expr [getBBoxTop -bbox $bbox_mcv] - [getBBoxBottom -bbox $bbox_mcv]] \ dbCreateParameterizedInst -cv $dbParameterizedCell \ -master $mcvId2 -point [list $xlen_mcv $ylen_mcv] \ -params [list [list p1 [expr 2*$p1+1] Integer] [list p2 [expr 2*p2+1] Integer]] dbCloseCV -cv $mcvId1 dbCloseCV -cv $mcvId2 dbCloseLib -lib parameterizedCellLib expr 1 } #define Tcl PCell C7 dbDefineParameterizedCell -encrypt "pwd = abc" \ -lib parameterizedCellLib -cell C7 \ -params [list [list p1 1 Integer] [list p2 1 Integer]]\ -vars {textString1 textString mcvId1 mcvId2 bbox_mcv \ xlen_mcv ylen_mcv} \ -exec { dbOpenLib -lib parameterizedCellLib set mcvId1 [dbOpenCV -lib parameterizedCellLib \ -cell C5 -view symbolic] 194 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Tcl PCells set mcvId2 [dbOpenCV -lib parameterizedCellLib \ -cell C6 -view symbolic] dbCreateParameterizedInst -cv $dbParameterizedCell \ -master $mcvId1 -point 0 0 \ -params [list [list p1 [expr 2*$p1] Integer] \ [list p2 [expr 2*p2] Integer]] set set set - bbox_mcv [dbGet -obj $mcvId1 -attr BBox] xlen_mcv [expr [getBBoxRight -bbox $bbox_mcv] [getBBoxLeft -bbox $bbox_mcv]] ylen_mcv [expr [getBBoxTop -bbox $bbox_mcv] [getBBoxBottom -bbox $bbox_mcv]] dbCreateParameterizedInst -cv $dbParameterizedCell \ -master $mcvId2 -point [list $xlen_mcv $ylen_mcv] -params [list [list p1 [expr 2*$p1+1] Integer] [list p2 [expr 2*p2+1] Integer]] \ dbCloseCV -cv $mcvId1 dbCloseCV -cv $mcvId2 dbCloseLib -lib parameterizedCellLib expr 1 } dbSetPCellParam The dbSetPCellParam command changes the value of an existing parameter in the PCell superMaster. It only works for an existing parameter. Syntax dbSetPCellParam -cv cellviewId -name paramName -value paramValue Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier of the PCell superMaster. -name paramName Specify an existing parameter name. -value paramValue Specify a new value for the parameter. Laker³ Tcl Reference Manual K-2015.06 195 Chapter 4: Database Extensions Tcl PCells Examples set logfile [open ./super.log w ] set libId [dbOpenLib -lib pcellLib] set cvId [dbOpenCV -lib $libId -cell superMaster -view layout] set ANS [dbSetPCellParam -cv $cvId -name pin1Side -value 5] if { 1 == $ANS } { puts $logfile "SUCCESS" } else { puts $logfile "FAIL" } dbSaveCV -cv $cvId dbSaveLib -lib $libId dbCloseCV -cv $cvId dbCloseLib -lib $libId close $logfile dbGetInstParam The dbGetInstParam command is used to query the valid spacing or spacing interval (in the x or y direction) between two instances. Syntax dbGetInstParam -inst instId [ -paramName paramName [-attr attrName] ] Returns The value returned may vary depending on the following conditions: ■ { {paramName type value} ... } if only -inst is specified. ■ { type value } if only -inst and -paramName are specified. ■ { type } or { value } if -inst, -paramName, and -attr are specified. Arguments 196 Argument Description -attr attrName Specify the attribute name. Valid values: Type and Value. -inst instId Specify the instance identifier (instId). -paramName paramName Specify the parameter name. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Examples # Example 1 dbGetInstParam -inst $instA -paramName leftDPoly -attr Value # Example 2 dbGetInstParam -inst $instB -paramName leftDPoly -attr Value dbGetPcellDefValue The dbGetPcellDefValue command gets the value of the corresponding name for Tcl PCell data. Syntax dbGetPcellDefValue -cv superCVId -name name Returns The value of the corresponding name if successful. Arguments Argument Description -cv superCVId Specify the identifier of the super master cell view. -name name Specify the name of the addData. Examples # Example 1 # If the addData name is ScriptEngineName, and the value is oaTclEngine dbGetPcellDefValue -cv $superCVId -name ScriptEngineName # Returned value: oaTclEngine Shape Creation This section describes the Tcl commands that are related to the shape creation. These commands include: ■ dbCreateArc ■ dbCreateDoughnut ■ dbCreateDot Laker³ Tcl Reference Manual K-2015.06 197 Chapter 4: Database Extensions Shape Creation ■ dbCreateEllipse ■ dbCreateFinRegion ■ dbCreateLabel ■ dbCreateLine ■ dbCreatePath ■ dbCreatePathRouter ■ dbCreatePolygon ■ dbCreateRect ■ dbCreateTextToPoly ■ dbPtToPtRouter ■ dbCreateRoute dbCreateArc The dbCreateArc command returns an arc identifier if the arc shape can be created. Syntax dbCreateArc -cv cellviewId -layer layer [-purpose purpose] -bbox eBBox -startAngle angle1 -stopAngle angle2 Returns An arc identifier if successful; otherwise, returns 0. Arguments 198 Argument Description -bbox eBBox Specify the ellipse bounding box of the arc. -cv cellviewId Specify the cell view identifier. -layer layer Specify the layer number (0-255) or layer name. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -startAngle angle1 Specify the starting angle in radian. Valid value: a floating number. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Argument Description -stopAngle angle2 Specify the ending angle in radian. Valid value: a floating number. Examples dbCreateArc -cv $cvId -layer 1 -bbox (0,0)(3,3) -startAngle 0 \ -stopAngle 3.1415926/2 dbCreateArc -cv $cvId -layer PWELL -bbox (1,1) (9,9) \ -startAngle 0 -stopAngle 3.1415926/2 dbCreateDoughnut The dbCreateDoughnut command returns a doughnut identifier if the doughnut shape can be created. Syntax dbCreateDoughnut -cv cellviewId -layer layer [-purpose purpose] -point center -inner r1 -outer r2 Returns A doughnut identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -inner r1 Specify the inner radius of a doughnut shape. Valid value: a positive floating number. -layer layer Specify the layer number (0-255) or layer name. -outer r2 Specify the outer radius of a doughnut shape. Valid value: a positive floating number. -point center Specify the central point of a doughnut shape in one of the following formats: (a, b), a b, or {a b}. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). Laker³ Tcl Reference Manual K-2015.06 199 Chapter 4: Database Extensions Shape Creation Examples dbCreateDoughnut -cv $cvId -layer 8 -point (2.25,-5.25) \ -inner 0 -outer 3.2 dbCreateDoughnut -cv $cvId -layer MT1 -point (-1.35,-1.35) \ -inner 0.35 -outer 1.35 See Also lakerCreateDoughnut Layout Window: Create > Conics > Doughnut dbCreateDot The dbCreateDot command returns a dot identifier if the dot shape can be created. Syntax dbCreateDot -cv cellviewId -layer layer [-purpose purpose] -point point Returns A dot identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -layer layer Specify the layer number (0-255) or layer name. -point point Specify the place of a dot shape in one of the following formats: (a, b), a b, or {a b}. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). Examples dbCreateDot -cv $cvId -layer 1 -point (-2.25,5.20) dbCreateDot -cv $cvId -layer MT1 -point (-1.0,-1.0) 200 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation dbCreateEllipse The dbCreateEllipse command returns an ellipse identifier if the ellipse shape can be created. Syntax dbCreateEllipse -cv cellviewId -layer layer [-purpose purpose] -bbox eBBox Returns An ellipse identifier if successful; otherwise, returns 0. Arguments Argument Description -bbox eBBox Specify the bounding box of the ellipse in one of the following formats: (a, b) (c d), a b c d, or {{a b} {c d}}. -cv cellviewId Specify the cell view identifier. -layer layer Specify the layer number (0-255) or layer name. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). Examples dbCreateEllipse -cv $cvId -layer 1 -bbox (0,0)(10,5) dbCreateEllipse -cv $cvId -layer MT1 -bbox (-1,1) (1,2) See Also lakerCreateEllipse Layout Window: Create > Conics > Ellipse symDsgCreateEllipse Symbol Editor: Create> Ellipse dbCreateFinRegion The dbCreateFinRegion command creates fin regions by honoring the tfWideAlignments definition in the technology file section lakerLayerRule. Laker³ Tcl Reference Manual K-2015.06 201 Chapter 4: Database Extensions Shape Creation Syntax dbCreateFinRegion -cv cellviewId -layerName layerName purpose purpose -point (x1,y1) (x2,y2) (x3,y3) (x4,y4) Returns None Arguments Argument Description -cv cellviewId Specify the cell view identifier. -layerName layerName Specify the name of the fin boundary layer. -point (x1,y1) (x2,y2) (x3,y3) (x4,y4) (x1,y1) specifies the lower left corner of the boundary, (x2,y2) specifies the upper left corner, (x3,y3) specifies the upper right corner, and (x4,y4) specifies the lower right corner. -purpose purpose Specify the purpose of the fin boundary layer. Examples dbCreateFinRegion -layer FINFET -purpose FB1 \ -point (0.286,0.76) (0.286,1.202) (0.8225,1.202) (0.8225,0.76) See Also lakerCreateFinRegion Layout Window: Create > Fin Region dbCreateLabel The dbCreateLabel command returns a label identifier if the label can be created. Syntax dbCreateLabel -cv cellviewId -layer layer [-purpose purpose] -point origin -text textString -height height [-spacing dSpacing] [-orient orientation] [-justify justification] [-font textFont] Returns A label identifier if successful; otherwise, returns 0. 202 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Arguments Argument Description -cv cellviewId Specify the cell view identifier. -font textFont Specify the text font. Valid values: Modern, Script, Roman and Contemplate1 (default=Modern). -height height Specify the label height. Valid value: a positive floating number. -justify justification Specify the justification for labels. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=LowerLeft). -layer layer Specify the layer number (0-255) or layer name. -orient orientation Specify the orientation for labels. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -point origin Specify the origin point of labels in one of the following formats: (a, b), b, or {a b}. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -spacing dSpacing Specify the spacing between Contemplate1 font text labels (default=1.0). -text textString Specify the content of the label. Examples dbCreateLabel -height 1.2 dbCreateLabel -height 1.2 dbCreateLabel -text {This -cv $cvId -layer 1 -point (100,100) -text cpu \ -font Script -cv $cvId -layer 2 -point (200,200) -orient R90 \ -text { i_ALUB/i_alu/sub_38_1/B_not[3]} -cv $cvId -layer 3 -point (50,50) -height 1.2 \ is a label!} See Also dbCreateTextToPoly Laker³ Tcl Reference Manual K-2015.06 203 Chapter 4: Database Extensions Shape Creation lakerCreateText Layout Window: Create > Text symDsgCreateText Symbol Editor: Create> Text dbCreateLine The dbCreateLine command returns a line identifier if the line can be created. Syntax dbCreateLine -cv cellviewId -layer layer [-purpose purpose] -point pointList Returns A line identifier if successful; otherwise, returns 0. Arguments 204 Argument Description -cv cellviewId Specify the cell view identifier. -layer layer Specify the layer number (0-255) or layer name. -point pointList Specify a point list through which the line goes. The point list can be specified in one of the following formats: (a, b) (c, d) ... (y, z), a b c d ... y z, or {{a b} {c d} ... {y z}}. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Examples set 2Pi [expr 2*3.1415926] set count 0 set pointList [list] ; #make an empty list while {$count < 1000} { set x [expr $count*$2Pi/1000] set y [expr sin($x)] lappend pointList [list $x $y] incr count } set cvId [dbOpenCV -lib cpu -cell test -mode create] dbCreateLine -cv $cvId -layer 1 -point $pointList dbCreateLine -cv $cvId -layer 1 \ -point 0 0 20 0 20 20 0 20 0 0 10 0 10 20 0 20 0 10 20 10 dbCreatePath The dbCreatePath command returns a path identifier if the path shape can be created. Syntax dbCreatePath -cv cellviewId -layer layer [-purpose purpose] -point pointList -width pathWidth [-style pathStyle] [beginExt pathBegExt -endExt pathEndExt] Returns A path identifier if successful; otherwise, returns 0. Arguments Argument Description -beginExt pathBegExt Specify the start point of the path extension. It is used in combination with -endExt and it is only valid when style Variable is specified. Valid value : a positive floating number. -cv cellviewId Specify the cell view identifier. -endExt pathEndExt Specify the end point of the path extension. It is used in combination with -endExt and it is only valid when style Variable is specified. Valid value : a positive floating number. -layer layer Specify the layer number (0-255) or layer name. Laker³ Tcl Reference Manual K-2015.06 205 Chapter 4: Database Extensions Shape Creation Argument Description -point pointList Specify a point list through which the path goes. The point list can be specified in one of the following formats:(a, b) (c, d) ... (y, z), a b c d ... y z, or {{a b} {c d} ... {y z}}. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -style pathStyle Specify the path style at two ends. Valid values: Truncate, Extend, Round, and Variable (default=Truncate). -width pathWidth Specify the path width. Valid value: a positive floating number. Examples dbCreatePath -cv $cvId -layer 1 -width 0.5 \ -point (0,0)(10,0)(10,10)(0,10)(0,20)(10,20) See Also lakerCreatePath Layout Window: Create > Path dbCreatePathRouter The dbCreatePathRouter command returns a routing path identifier if two points can be connected by the available routing layers. Syntax dbCreatePathRouter -cv cellviewId -point (x1,y1)(x2,y2) (-lp | -layer layer [-purpose purpose]) -width pathWidth [-style pathStyle] [-snapMode snapMode] Returns A routing path identifier if successful; otherwise, returns 0. Arguments 206 Argument Description -cv cellviewId Specify the cell view identifier. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Argument Description -layer layer Specify the layer name or layer number (0-255). -point (x1,y1)(x2,y2) Specify two points that are to be connected. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -snapMode snapMode Specify the snap mode for routing. Valid values: AnyAngle, Orthogonal, YFirst, XFirst (default=AnyAngle). -style pathStyle Specify the path style at two ends. Valid values: Truncate, Extend, Round, and Variable (default=Truncate). -width pathWidth Specify the path segment width. Valid value: a positive floating number. Examples dbCreatePathRouter -cv $cvId -point (-11.5,4.6) (2.5,5.0) \ -layer MET1 -width 0.35 dbCreatePathRouter -cv $cvId -point (15 54) (25 54) -layer POLY \ -width 0.18 -snapMode XFirst See Also lakerCreatePath dbCreatePath lakerPtToPtRouter dbPtToPtRouter Layout Window: Create > Path Layout Window: Router > Point To Point Router dbCreatePolygon The dbCreatePolygon command returns a polygon identifier if the polygon shape can be created. Syntax dbCreatePolygon -cv cellviewId -layer layer [-purpose purpose] -point pointList Laker³ Tcl Reference Manual K-2015.06 207 Chapter 4: Database Extensions Shape Creation Returns A polygon identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -layer layer Specify the layer number (0-255) or layer name. -point pointList Specify a point list of coordinates to the polygon vertices. The point list can be specified in one of the following formats: (a, b) (c, d) ... (y, z), a b c d ... y z, or {{a b} {c d} ... {y z}}. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). Examples dbCreatePolygon -cv $cvId -layer 1 -point (0,0)(1,1)(0,1) See Also lakerCreatePoly Layout Window: Create > Polygon symDsgCreatePolygon Symbol Editor: Create> Polygon dbCreateRect The dbCreateRect command returns a rectangle identifier if the rectangle can be created. Syntax dbCreateRect -cv cellviewId -layer layer [-purpose purpose] -bbox bBox Returns A rectangle identifier if successful; otherwise, returns 0. 208 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Arguments Argument Description -bbox bBox Specify the bounding box of the rectangle in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. -cv cellviewId Specify the cell view identifier. -layer layer Specify the layer number (0-255) or layer name. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). Examples dbCreateRect -cv $cvId -layer THIN -bbox (0,0)(1,2) See Also lakerCreateRect Layout Window: Create > Rectangle symDsgCreateRect Symbol Editor: Create> Rectangle dbCreateTextToPoly The dbCreateTextToPoly command returns a polygon identifier if the polygon shape, that are determined by a text string, can be created. Syntax dbCreateTextToPoly -cv cellviewID -layer layer [-purpose purpose] -point origin -text textString -height height [-width width] [-orient orientation] [-justify justification] [-font textFont] [-spacing spacing] [non45free 0|1] Returns A polygon identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Laker³ Tcl Reference Manual K-2015.06 209 Chapter 4: Database Extensions Shape Creation 210 Argument Description -font textFont Specify the font type of the input text string. Valid values: Simple, Merit and Contemplate (default=Merit). -height height Specify the height of polygons. Valid value: a positive number. -justify justification Specify the justification. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=LowerLeft). -layer layer Specify the layer name or layer number (0-255). -non45free 0|1 Valid values: Boolean values, 0 and 1. (default=0). 1: Do not allow non45 polygon texts. 0: Allow non45 polygon texts. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MYR0, MYR90, MXR0, and MXR90 (default=R0). -point origin Specify the origin point. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -spacing spacing Specify the spacing between polygonal texts. Valid value: a floating number (default=0). -text textString Specify the text string that determines the polygon shape. -width width Specify the stick width of the polygonal label in Contemplate font type. The height must be greater than 5 times of the specified stick width; and the stick width must be the even multiple resolutions. Valid value: a positive number. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation Examples dbOpenLib -lib CPU set cvId [dbOpenCV -lib CPU -cell test -mode create] dbCreateTextToPoly -cv $cvId -layer MT1 -point 1000 1000 -height 10 -font Simple -text GND -non45free 1 See Also dbCreateLabel lakerCreateText Layout Window: Create > Text symDsgCreateText Symbol Editor: Create> Text dbPtToPtRouter The dbPtToPtRouter command connects two selected objects by the available routing layers. Syntax dbPtToPtRouter -cv cellviewId -point (x1,y1)(x2,y2) [routingLayer routingLayer] [-minContacts n] dbPtToPtRouter -cv cellviewId -point {(x1,y1) [LayerName]} {(x2,y2) [LayerName]} [-routingLayer routingLayer] [minContacts n] Returns None Arguments Argument Description -cv cellviewId Specify the cell view identifier. -minContacts n Specify the minimum number of contacts to be used. -point (x1y1)(x2,y2) Specify two points to select the objects to be connected. Laker³ Tcl Reference Manual K-2015.06 211 Chapter 4: Database Extensions Shape Creation Argument Description -routingLayer routingLayer Specify the list of available routing layer(s). If it is not specified, all routing layers defined in the technology file are used. The list can be specified by one of these two formats: ■ ■ Use {MET1 MET2 MET3} to indicate that the available layer list can be used without rule specification. Use {MET1 2 2 0.5 0.5} {MET2 2 2 0.5 0.5} to indicate that the available layer list shall be used with rule specification, in the order of {LayerName Hcost Vcost Width Space}. Examples # Example 1 dbPtToPtRouter -cv cellviewId -point (-11.576,4.691) \ (2.528,5.019) -routingLayer {MET1 MET2 POLY MET3} # Example 2 dbPtToPtRouter -cv cellviewId -point {(2.400,0.500) POLY} \ {(8.000,8.000) MET1} -routingLayer {POLY 2 3 0.5 0.5} \ {MET1 2 3 0.5 0.5} -minContacts 2 See Also lakerCreatePath dbCreatePath lakerPtToPtRouter Layout Window: Create > Path Layout Window: Router > Point-To-Point Router dbCreateRoute The dbCreateRoute command returns a route identifier if the route can be created. Syntax dbCreateRoute -cv cellviewId [-purpose purpose] [-net netId] -route {{ PATHSEG -layer layer -beginPt beginPoint -endPt endpoint [-width width -beginStyle beginStyle -endStyle endStyle -beginExt beginExt -endExt endExt beginLeftDiagExt beginLeftDiagExt -beginRightDiagExt beginRightDiagExt -beginRightHalfWidth beginRightHalfWidth -endLeftDiagExt endLeftDiagExt 212 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Creation endRightHalfWidth endRightHalfWidth]} {CUSTOMVIA -def defName [-orient orient]} {STDVIA -def defName [-orient orient]} ...} Returns A route identifier if successful; otherwise returns 0. Arguments Argument Description -beginExt beginExt -endExt endExt -beginLeftDiagExt beginLeftDiagExt Specify the segment extension beyond the begin or end points. Valid value: a positive floating number. -beginRightDiagExt beginRightDiagExt -beginRightHalfWidth beginRightHalfWidth -endLeftDiagExt endLeftDiagExt -endRightHalfWidth endRightHalfWidth -beginPt beginPoint -endPt endpoint Specify a point list through which the line goes. The point list can be specified in one of the following formats: (a, b) (c, d) ... (y, z), a b c d ... y z, or {{a b} {c d} ... {y z}}. -beginStyle beginStyle -endStyle endStyle Specify the style type of path segments. Valid values: Truncate, Extend, Variable, Chamfer, and Custom (default=Extend). -cv cellviewId Specify the cell view identifier. -def defName Specify the standard vias and custom vias. This is the default rule setting in the LEF/DEF data. -layer layer Specify the layer number (0-255) or layer name. -net netId Specify the net identifier. Laker³ Tcl Reference Manual K-2015.06 213 Chapter 4: Database Extensions Shape Conversion Argument Description -orient orientation Specify the orientation of via objects. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -width pathWidth Specify the path segment width. Valid value: a positive floating number. Examples # Example 1 dbCreateRoute -cv $masterId -route {{PATHSEG -layer METAL1 \ -beginPt {-100,-100} -endPt {100,100} -width 20 -beginExt 20 \ -endExt 20 -beginLeftDiagExt 15 -beginRightDiagExt 15 \ -beginRightHalfWidth 20 -endLeftDiagExt 15 \ -endRightHalfWidth 20 }} # Example 2 dbCreateRoute -cv $masterId -route {{PATHSEG -layer VIA23 \ -beginPt {-25,-25} -endPt {25, 25} -width 10} {CUSTOMVIA \ -def Via23} {PATHSEG -layer VIA23 -beginPt {-100, -100} \ -endPt {100,100} -width 10}} # Example 3 dbCreateRoute -cv $masterId -route {{PATHSEG -layer VIA23 \ -beginPt {-25,-25} -endPt {25, 25} -width 10} {STDVIA -def Via23 \ -orient MXR180 } {PATHSEG -layer VIA23 -beginPt {-100, -100} \ -endPt {100,100} -width 10}} Shape Conversion This section describes the Tcl commands that are related to shape conversion. These commands include: 214 ■ dbArcToLine ■ dbDoughnutToPolygon ■ dbEllipseToPolygon ■ dbLineToPath ■ dbPathToPolygon Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Conversion ■ dbPathSideToPolygonSide ■ dbPolygonToTrap dbArcToLine The dbArcToLine command returns a line identifier if the target arc can be converted to a line. Syntax dbArcToLine -arc arcId -side sideNo Returns A line identifier if successful; otherwise, returns 0. Arguments Argument Description -arc arcId Specify the arc identifier. -side sideNo Specify the number of sides. Valid value: a positive integer. Examples set arcId [dbCreateArc -cv $cvId -layer 1 -bbox (0,0)(20,10) \ -startAngle 0 -stopAngle 3.14] set lineId [dbArcToLine -arc $arcId -side 10] dbDoughnutToPolygon The dbDoughnutToPolygon command returns a polygon identifier if the target doughnut shape can be converted to a polygon shape. Syntax dbDoughnutToPolygon -doughnut doughnutId -side sideNo Returns A polygon identifier if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 215 Chapter 4: Database Extensions Shape Conversion Arguments Argument Description -doughnut doughnutId Specify the doughnut identifier. -side sideNo Specify the number of sides. Valid value: a positive integer. Examples set doughnutId [dbCreateDoughnut -cv $cvId -layer 1 \ -point (0,0) -inner 5 -outer 10] set polygonId [dbDoughnutToPolygon -doughnut $doughnutId -side 8] dbEllipseToPolygon The dbEllipseToPolygon command returns a polygon identifier if the target ellipse shape can be converted to a polygon shape. Syntax dbEllipseToPolygon -ellipse ellipseId -side sideNo Returns A polygon identifier if successful; otherwise, returns 0. Arguments Argument Description -ellipse ellipseId Specify the ellipse identifier. -side sideNo Specify the number of sides. Valid value: a positive integer. Examples set ellipseId [dbCreateEllipse -cv $cvId -layer 1 \ -bbox (0,0)(10,20)] set polygonId [dbEllipseToPolygon -ellipse $ellipseId -side 4] 216 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Shape Conversion dbLineToPath The dbLineToPath command returns a path identifier if the target line shape can be converted to a path shape. Syntax dbLineToPath -line lineId -width pathWidth [-style pathStyle] Returns A path identifier if successful; otherwise, returns 0. Arguments Argument Description -line lineId Specify the line identifier. -style pathStyle Specify the path style at two ends. Valid values: Truncate, Extend, Round, and Variable (default=Truncate). -width pathWidth Specify the path segment width. Valid value: a positive floating number. Examples set lineId [dbCreateLine -cv $cvId -layer 1 -point (0,0)(10,0)] dbLineToPath -line $lineId -width 0.5 dbPathToPolygon The dbPathToPolygon command returns a polygon identifier if the target path shape can be converted to a polygon shape. Syntax dbPathToPolygon -path pathId Returns A polygon identifier if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 217 Chapter 4: Database Extensions Shape Conversion Arguments Argument Description -path pathId Specify the path identifier. Examples set pathId [dbCreatePath -cv $cvId -layer 1 \ -point (0,0)(10,0) -width 0.5 ] dbPathToPolygon -path $pathId See Also lakerConvertToPoly Layout Window: Edit > Others > Convert To Polygon dbPathSideToPolygonSide The dbPathSideToPolygonSide command returns a list of point coordinates to one side of the path boundary if the specified side of the path boundary can be obtained. Syntax dbPathSideToPolygonSide -point pointList -width extendWidth Returns A list of point coordinates to one side of the path boundary if successful; otherwise, returns 0. Arguments Argument Description -point pointList Specify a list of point coordinates to the center path. -width extendWidth Specify the extend width. Valid value: a floating number. Examples dbPathSideToPolygonSide -point (0,0) (0,5) (5,5) -width -3 # The output is {3.0 0.0} {3.0 2.0} {5.0 2.0} See Also None 218 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Instances and Arrays dbPolygonToTrap The dbPolygonToTrap command returns a list of trapezoid figIds if the target shape can be partitioned to trapezoids. Syntax dbPolygonToTrap -fig figId [-deloldobj 0|1] Returns A list of trapezoid figIds if successful; otherwise, returns 0. Arguments Argument Description -fig figId Specify the shape identifier. -deloldobj 0|1 Specify the switch mode for object deletion. Valid values: Boolean values, 0 and 1 (default=0). 1 : Delete original figures. 0 : Do not delete original figures. Examples set polyId [lakerCreatePoly -layerName MET2 \ -point (9.05,5.725) (9.05,2.1) (13.925,2.1) \ (13.925,-2.65) (8.25,-2.65) (8.25,-5.625) \ (3.775,-5.625) (3.775,-1.35) (6.275,-1.35) \ (6.275,2.15) (3.775,2.15) (3.775,3.275) \ (1.85,3.275) (1.85,5.725)] dbPolygonToTrap -fig $polyId -deloldobj 1 Instances and Arrays This section describes the Tcl commands that are related to instances and arrays. These commands include: ■ dbCreateArray ■ dbCreateInst ■ dbFindInst Laker³ Tcl Reference Manual K-2015.06 219 Chapter 4: Database Extensions Instances and Arrays ■ dbIsSameMaster ■ dbSetInstHeaderMasterName dbCreateArray The dbCreateArray command returns an array identifier if the array can be created. There are two approaches to create an array: (1) specify the master by its identifier if this master is opened; (2) specify the master by its cell name, view name, and library name (or library identifier) where the cell view exists. Syntax dbCreateArray -cv tcvId (-master mcvId | -lib libName -cell cellName [-view viewName]) [-name arrayName] -point origin [-orient orientation] -rows rowNo -cols colNo rowSpace rowSpace -colSpace colSpace Returns An array identifier if successful; otherwise, returns 0. Arguments 220 Argument Description -cell cellName Specify the cell name. -cols colNo Specify the number of columns of the array. Valid value: a positive integer. -colSpace colSpace Specify the spacing between two columns. Valid value: a floating number. -cv tcvId Specify the identifier of the top cell view. -lib libName Specify the library name or library identifier. -master mcvId Specify the identifier of the master cell view. -name arrayName Specify the created array. This name is generated by the database. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Instances and Arrays Argument Description -orient orientation Specify the orientation of arrays. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -point origin Specify the original point of the array in one of the following formats: (a, b), a b, or {a b}. -rows rowNo Specify the number of rows of the array. Valid value: a positive integer. -rowSpace rowSpace Specify the spacing between two rows. Valid value: a floating number. -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Examples set tcvId [dbOpenCV -lib libraryA -cell cell2] set mcvId [dbOpenCV -lib libraryA -cell cell3] dbCreateArray -cv $tcvId -master $mcvId -name A1 \ -point (0,0) -rows 2 -cols 10 -rowSpace 1.0 -colSpace 0 dbCreateArray -cv $tcvId -lib libraryA -cell cell32 -name A2 -point (0,0) -rows 3 -cols 1 -rowSpace 1.0 -colSpace 0 dbCreateInst The dbCreateInst command returns an instance identifier if the instance can be created. There are two approaches to create an instance: (1) create an instance by specifying the master with its identifier; (2) specify the master by its cell name, view name, and library name (or library identifier) where the cell view exists. Laker³ Tcl Reference Manual K-2015.06 221 Chapter 4: Database Extensions Instances and Arrays Syntax dbCreateInst -cv tcvId (-master mcvId | -lib libName -cell cellName [-view viewName]) [-name instName] -point origin [-orient orientation] [-justification justification] [returnOrigin 0|1] Returns An instance identifier if successful; otherwise, returns 0. Arguments 222 Argument Description -cell cellName Specify the cell name. -cv tcvId Specify the identifier of the top cell view. -justification justification Specify the justification of the instance. Valid values: UL, CL, LL, UC, CC, LC, UR, CR, LR, and Origin. -lib libName Specify the library name or library identifier. -master mcvId Specify the identifier of the master cell view. -name instName Specify the created instance. This name is generated by the database. -orient orientation Specify the orientation of instances. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -point origin Specify the original point of the instance in one of the following formats: (a, b), a b, or {a b}. -returnOrigin 0|1 Valid values: Boolean values, 0 and 1. 1 : Return the origin of the instance. 0 : Do not return the origin of the instance. -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Instances and Arrays Examples set tcvId [dbOpenCV -lib libraryA -cell cell2] set mcvId [dbOpenCV -lib libraryA -cell cell3] dbCreateInst -cv $tcvId -master -mcvId -point (0,0) -name I1 dbCreateInst -cv $tcvId -lib libraryA -cell cell33 -name I2 \ -point (10,10) dbCreateInst -cv $tcvId -lib libraryB -cell cell33 -name I3 \ -point (-10,-10) See Also lakerCreateInstance Layout Window: Create > Instance dbFindInst The dbFindInst command returns an instance identifier if the target instance can be found by its name. Syntax dbFindInst -cv tcvId -name instName Returns An instance identifier if successful; otherwise, returns 0. Arguments Argument Description -cv tcvId Specify the identifier of the top cell view. -name instName Specify the instance name. Examples dbFindInst -cv 202810 -name I0 See Also lakerFindObj Layout Window: Query > Find Laker³ Tcl Reference Manual K-2015.06 223 Chapter 4: Database Extensions Instances and Arrays dbIsSameMaster The dbIsSameMaster command returns 1 if two instances have the same master. Syntax dbIsSameMaster -inst1 instId1 -inst2 instId2 Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -inst1 instId1 Specify the first instance identifier. -inst2 instId2 Specify the second instance identifier. Examples dbIsSameMaster -inst1 $instId1 -inst2 $instId1 dbIsSameMaster -inst1 $instId2 -inst2 $instId1 dbSetInstHeaderMasterName The dbSetInstHeaderMasterName command returns 1 if the master cell view of an instance can be replaced with another cell view. Syntax dbSetInstHeaderMasterName -instHeader instHId [-lib libName] -cell cellName [-view viewName] Returns 1 if successful; otherwise, returns 0. Arguments 224 Argument Description -cell cellName Specify the cell name. -instHeader instHId Specify the identifier of the instance header. -lib libName Specify the library name or library identifier. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -view viewName Specify the view name. Valid values: layout, abs, schematic, and device (default=layout). Examples set instId [dbCreateInst -cv $tcvId -lib libraryA -cell c1 \ -point (0,0)] set instHId [dbGet -obj $instId -attr InstHeader] dbSetInstHeaderMasterName -instHeader $instHId -cell c2 dbSetInstHeaderMasterName -instHeader $instHId \ -lib libraryB -cell c3 Figure Manipulation This section describes the Tcl commands that are related to figure manipulation. These commands include: ■ dbBreakTraverse ■ dbConcatTransform ■ dbCopyFig ■ dbCorrectPolygon ■ dbGetTrueOverlaps ■ dbLayerGen ■ dbMoveFig ■ dbRepairCellViewRouteObj ■ dbSeparateRouteObj ■ dbShiftOrigin ■ dbSizing ■ dbSmashInst ■ dbSnapToGrid ■ dbTransformBBox Laker³ Tcl Reference Manual K-2015.06 225 Chapter 4: Database Extensions Figure Manipulation ■ dbTransformPoint ■ dbTraverse ■ getBBoxBottom ■ getBBoxCenter ■ getBBoxLeft ■ getBBoxLeftBottom ■ getBBoxRight ■ getBBoxRightTop ■ getBBoxTop dbBreakTraverse The dbBreakTraverse command breaks the command file used in dbTraverse and dbGetTrueOverlaps. Syntax dbBreakTraverse Returns None Arguments None Examples proc cbFun {id} { if {xxx} { dbBreakTraverse } } dbTraverse -cv $cvId -shapeOnly on -cbFun cbFun dbGetTrueOverlaps -cv $masterId -bbox (-500,-500) (800, 700) \ -shapeOnly 0 -cbFun cbFun -condition EO See Also dbTraverse dbGetTrueOverlaps 226 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation dbConcatTransform The dbConcatTransform command returns a list of result transform if two transformations can be concated to a new one. Syntax dbConcatTransform [-orient1 orientation1] -offsetPoint1 offset1 [-mag1 magnification1] [-orient2 orientation2] -offsetPoint2 offset2 [-mag2 magnification2] Returns A list of the result transform if successful; otherwise, returns nothing. Arguments Argument Description -mag1 magnification1, -mag2 magnification2 Specify the magnification of the transformation. Valid value: a floating number (default=1.0). -offsetPoint1 offset1, -offsetPoint2 offset2 Specify the offset point of the transformation in one of the following formats: (a, b), a b, or {a b}. -orient1 orientation1, -oritne2 orientation2 Specify the orientation of the transformation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). Examples dbConcatTransform -orient1 R90 -offsetPoint1 (10,10) \ -offsetPoint2 (-4,5) -mag2 3.5 dbCopyFig The dbCopyFig command returns a figure identifier if the figure, transformed by a transformation, can be copied to a destination cell view. If the destination cell view is not specified, the figure is copied to the cell view in which this figure exists. Syntax dbCopyFig -fig figId [-dst dstCVId] [-orient orientation] -offsetPoint offset [-mag magnification] Laker³ Tcl Reference Manual K-2015.06 227 Chapter 4: Database Extensions Figure Manipulation Returns A figure identifier if successful; otherwise, returns 0. Arguments Argument Description -dst dstCVId Specify the identifier of the destination cell view. -fig figId Specify the figure identifier. -mag magnification Specify the magnification of the transformation. Valid value: a floating number (default=1.0). -offsetPoint offset Specify the offset point of the transformation in one of the following formats: (a, b), a b, or {a b}. -orient orientation Specify the orientation of the transformation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). Examples set rectId [dbCreateRect -cv $cvId1 -layer 8 -bbox (0,0)(10,20)] dbCopyFig -fig $rectId -offsetPoint (0,0) -dst $cvId3 set arrayId [dbCreateArray -cv $cvId1 -master $cvId2 \ -point (0,0) -rows 2 -cols 3 -rowSpace 0.5 -colSpace 0.5] set instId [dbCreateInst -cv $cvId1 -master $cvId2 \ -point (-20,-20)] dbCopyFig -fig $arrayId -offsetPoint (30,30) dbCopyFig -fig $instId -offsetPoint (-30,-30) See Also lakerCopyObj adpDsgCopy dbCorrectPolygon The dbCorrectPolygon command returns 1 if reentrant and self-intersecting polygons can be fixed. 228 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Self-intersecting polygons, which may be created by third-party tools, can be reported in the gdsIn.err and gdsOut.err files by setting the following keyword in the laker.rc file. The default is FALSE. [LeoPreference] IoReportSelfIntersectingPolygons=TRUE Syntax dbCorrectPolygon -cv cellviewID [-type polygonType] [snapGrid 0|1] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewID Specify the cell view identifier to be corrected. -snapGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Snap new objects onto the grid resolution. 0 : Do not snap any new objects onto the grid resolution. -type polygonType Specify the polygon type to be corrected. Valid values: Reentrant, Self-Intersecting, or All (default=All). Examples #To fix reentrant and self-intersecting polygons in cell 'cpu' set cvId [dbOpenCV -lib cpu -cell cpu] dbCorrectPolygon -cv $cvId -type All # Example results: Laker³ Tcl Reference Manual K-2015.06 229 Chapter 4: Database Extensions Figure Manipulation dbGetTrueOverlaps The dbGetTrueOverlaps command returns a list of all objects in a cell view; these objects overlap the area specified by the specified bounding box. The intersecting condition of the bounding box (BBox) with objects can be specified by -condition. The condition can be any combination of E (enclosed), O (overlapping), B (butting) and S (singular). For example, when -condition {E} is specified, only the objects that are enclosed by the bounding box are returned. When -condition {EO} is specified, the objects that are enclosed by and overlaps with the bounding box are returned. When -attachBBox and -attachPoint are specified at the same time, -attachBBox has the higher priority. Syntax dbGetTrueOverlaps -cv cellviewId [-bbox bBox] [-layer layer] [-purpose purpose] [-startLevel level1] [-stopLevel level2] [-cbFun callBackFunc] ([-shapeOnly 0|1]|[instOnly 0|1]) [-attachBBox 0|1] [-attachPoint 0|1] [condition [{O|E|B|S}]] Returns One of the following is returned: ■ A list of identifiers. Neither -attachBBox nor -attachPoint is turned on. ■ A list of lists, each of which is composed of an identifier and a bounding box. The -attachBBox option is turned on. ■ A list of lists, each of which is composed of an identifier and a list of points. The -attachPoint option is turned on. Arguments 230 Argument Description -attachBBox 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Compute and attach the bounding box of the figure related to top cell views. 0 : Return the figure Ids only. -attachPoint 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Compute and attach the point of each shape related to top cell views. 0 : Return the figure Ids only. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. The default is cell view BBox. -cv cellviewId Specify the cell view identifier. -cbFun callBackFunc Specify a user-defined Tcl procedure for the callback results. The procedure syntax is as follows: proc callBackFunc {p_pCallData } { ... }, where p_pCallData is the return value. -condition [{O|E|B|S}] Specify one of the following conditions:O: Overlapping (includes enclosed[E]). E: Enclosed. B: Butting. S: Singular. -instOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Traverse instances, instance arrays, MCells, and Tcl PCells only. This argument cannot be used with -layer. 0 : No restrictions on the above traversing. -layer layer Specify the layer number or layer name (default=all layers). -purpose purpose Specify the purpose number or purpose name (default=all purposes). -shapeOnly 0|1 Restrict the traversing for shapes only. Valid values: Boolean values, 0 and 1 (default=0). -startLevel level1 Specify the starting level. Valid value: a positive integer (default=0). -stopLevel level2 Specify the stopping level. Valid value: a positive integer (default=0). Laker³ Tcl Reference Manual K-2015.06 231 Chapter 4: Database Extensions Figure Manipulation Examples # Example 1 dbGetTrueOverlaps -cv $masterId -bbox (-500,-500) (800, 700) \ -shapeOnly 0 -attachBBox 1 -attachPoint 0 -condition EO # Value returned as follows: # {2a962b7400 {{678.000 650.000} {800.000 700.000}}} # {2a962b5c00 {{500.000 100.000} {1000.000 800.000}}} # Example 2 dbGetTrueOverlaps -cv $masterId -bbox (-500,-500) (800, 700) \ -shapeOnly 0 -attachBBox 1 -attachPoint 0 -condition O # Value returned as follows: # {2a962b7400 {{678.000 650.000} {800.000 700.000}}} {2a962b5c00 {{500.000 100.000} {1000.000 800.000}}} # Example 3 dbGetTrueOverlaps -cv $masterId -bbox (-500,-500) (800, 700) \ -shapeOnly 0 -attachBBox 1 -attachPoint 0 -condition E # Value returned as follows: # {2a962b7400 {{678.000 650.000} {800.000 700.000}}} See Also dbTraverse dbLayerGen The dbLayerGen command returns a list of figure identifiers if the shapes of two specific layers or figures can be changed by using the Boolean operations. Syntax dbLayerGen -op booleanOperation -dst dstCVID (-lp layerName [purposeName] | -layer layerName [-purpose purposeName]) (-figs1 figures | -lp1 layerName [purposeName] | -layer1 layerName [-purpose1 purposeName]) (-figs2 figures | lp2 layerName [purposeName] | -layer2 layerName [purpose2 purposeName]) Returns A list of figure identifiers if successful; otherwise, returns 0. Arguments 232 Argument Description -op booleanOperation Set the Boolean operation. Valid values: OR, AND, NOT, and XOR. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -dst dstCVID Specify the identifier of the destination cell view. -lp layerName purposeName Specify the layer name and purpose name of resulting shapes. -layer layerName Specify the one of resulting shapes with layer name. -purpose purposeName Specify the one of resulting shapes with purpose name (default=drawing). -figs1 figures Specify the list of figure identifiers of main shapes. -lp1 layerName purposeName Specify the layer name and purpose name of main shapes. -layer1 layerName Specify the layer of main shapes with layer name. -purpose1 purposeName Specify the layer of main shapes with purpose name (default=drawing). -figs2 figures Specify the list of figure identifiers of operating shapes. -lp2 layerName purposeName Specify the layer of operating shapes with layer name and purpose name. -layer2 layerName Specify the layer of operating shapes with layerName. -purpose2 purposeName Specify the layer of main operating with purpose name (default=drawing). Examples # example1. or PWELL layers and put the results to layer POLY set cvId [dbOpenCV -lib cpu -cell cpu] set figList [dbTraverse -cv $cvId -layer PWELL -shapeOnly 1] dbLayerGen -op OR -dst $cvId -layer POLY -figs1 $figList # example2. put the results to layer POLY set cvId [dbOpenCV -lib cpu -cell cpu] set figList1 [dbTraverse -cv $cvId -layer PWELL -shapeOnly 1] set figList2 [dbTraverse -cv $cvId -layer CONT -shapeOnly 1] dbSizing -op NOT -dst $cvId -layer POLY -figs1 $figList1 \ -figs2 $figList2 Laker³ Tcl Reference Manual K-2015.06 233 Chapter 4: Database Extensions Figure Manipulation # example3. xor both PWELL and POLY layers and # put the results to layer THIN set cvId [dbOpenCV -lib cpu -cell cpu] set figList [dbTraverse -cv $cvId -layer PWELL -shapeOnly 1] dbLayerGen -op XOR -dst $cvId -layer THIN -figs1 $figList \ -layer2 POLY # example4. and both PWELL and POLY layers and # put the results to layer THIN set cvId [dbOpenCV -lib cpu -cell cpu] dbLayerGen -op AND -dst $cvId -layer THIN \ -layer1 PWELL -layer2 POLY See Also dbSizing lakerBoolean lakerLayerGen Layout Window: Edit > Boolean Layout Window: Edit > Others > Layer Gen... dbMoveFig The dbMoveFig command returns a figure identifier if the figure, transformed by a transformation, can be moved to the target cell view. Syntax dbMoveFig -fig figId -dst dstCVId [-orient orientation] offsetPoint offset [-mag magnification] Returns A figure identifier if successful; otherwise, returns 0. Arguments 234 Argument Description -dst dstCVId Specify the identifier of the target cell view. -fig figId Specify the figure identifier. -mag magnification Specify the magnification of the transformation. Valid value: a floating number (default=1.0). -offsetPoint offset Specify the offset point of the transformation in one of the following formats: (a, b), a b, or {a b}. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -orient orientation Specify the orientation of the transformation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). Examples set pathId [dbCreatePath -cv $tcvId -layer 1 \ -point (0,0) (1,1) -width 0.2] set instId1 [dbCreateInst -cv $tcvId -master $mcvId -point (0,0)] set arrayId1 [dbCreateArray -cv $tcvId -master $mcvId \ -point (10,10) -rows 2 -cols 5 -rowSpace 0 -colSpace 0] set pathId2 [dbMoveFig -fig $pathId -dst $tcvId \ -offsetPoint (-10,-10)] dbMoveFig -fig $pathId2 -dst $cvId3 -offsetPoint (0,0) -mag 1.5 set instId2 [dbMoveFig -fig $instid1 -dst $tcvId \ -offsetPoint (-10,-10)] dbMoveFig -fig $instId2 -dst $cvId3 -offsetPoint (0,0) -mag 1.5 set arrayId2 [dbMoveFig -fig $arrayId1 -dst $tcvId \ -offsetPoint (-10,-10)] dbMoveFig -fig $arrayId2 -dst $cvId3 -offsetPoint (0,0) -mag 1.5 See Also lakerMoveObj adpDsgMove dbRepairCellViewRouteObj The dbRepairCellViewRouteObj command returns a list of fixed route object identifiers if all invalid route objects can be found and fixed in the current working cell view. Syntax dbRepairCellViewRouteObj (-lib libName -cell cellName [-view viewName] | -cv cellviewId) Returns A list of fixed route object identifiers if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 235 Chapter 4: Database Extensions Figure Manipulation Arguments Argument Description -cell cellName Specify the cell name. -cv cellviewId Specify the cell view identifier. -lib libName Specify the library name. -view viewName Specify the view name. The default is layout. Examples # Example 1 dbRepaireCellViewRouteObj -lib DEF -cell mc_top dbSeparateRouteObj The dbSeparateRouteObj command returns a list of route object identifiers if a route (dbRoute) object can be separated into multiple route objects, pathSeg and via objects, or path and rectangle objects. Syntax dbSeparateRouteObj -figs figIds [-separateAll 0|1 -checkRule 0|1] [-transShape 0|1] Returns A list of route object identifiers if successful; otherwise, returns 0. Arguments 236 Argument Description -checkRule 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Re-evaluate the rule of new route objects. 0 : Set the rule of original route object to new route objects. -figs figIds Specify a list of route object identifiers. -separateAll 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Separate a route object into path segment (pathSeg) and via objects. 0 : Separate a route object into multiple route objects composed of one pathSeg and one via. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -transShape 0|1 Valid values: Boolean values, 0 and 1. 1 : Separate a route object into a path and flatten the via on the path as a rectangle. 0 : Separate a route object into multiple route objects composed of one pathSeg and one via. Examples # Example 1 dbSeparateRouteObj -figs [lakerGetSelSet] # Example 2 dbSeparateRouteObj -figs [lakerGetSelSet] -separateAll 1 \ -checkRule 1 # Example 3 # Separate a route object to a path and flatten the via # into a rectangle dbSeparateRouteObj -figs [lakerGetSelSet] -transShape 1 dbShiftOrigin The dbShiftOrigin command shifts the original point of the target cell view to new origin. Syntax dbShiftOrigin -cv dstCVId -point (x0,y0) Returns None Arguments Argument Description -cv dstCVId Specify the identifier of the target cell view. -point (x0,y0) x0 specifies a position value for x coordinate point while y0 specifies the one for y coordinate point. Examples set cvId [dbOpenCV -lib cpu -cell cpu] dbShiftOrigin -cv $cvId -point (100,50) Laker³ Tcl Reference Manual K-2015.06 237 Chapter 4: Database Extensions Figure Manipulation See Also lakerShiftOrigin Layout Window: Edit > Others > Shift Origin symDsgEditOrigin Symbol Editor: Edit> Origin dbSizing The dbSizing command returns a list of figure identifiers if each side of the specified objects can be expanded or shrunk. Syntax dbSizing -size sizeValue -figs figures [-layer layer] [-purpose purpose] [-deloldobj 0|1] [-truncate floatValue] [-convert 0|1] [-keepOrthogonal 0|1] [absolute 0|1] Returns A list of figure identifiers if successful; otherwise, returns 0. Arguments 238 Argument Description -absolute 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Multiply the truncate value by sizing value. 0 : Do not multiply any truncate value. -convert 0|1 Valid values: Boolean values, 0 and 1. 1 : Convert the round path to polygon before sizing. This is valid for round path only.0 : Do not convert the round path to polygon before sizing. -deloldobj 0|1 Specify the switch mode for object deletion. Valid values: Boolean values, 0 and 1 (default=0). 1 : Delete original figures. 0 : Do not delete original figures. -figs figures Specify the list of figure identifiers. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -keepOrthogonal 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Keep orthogonal edges. 0 : Cutting acute angle by its bisection regardless of the vertical or horizontal edges. -layer layer Specify the layer number (0-255) or layer name (default=the layer where the figure exists.) If -layer is specified, the results are placed on it after the sizing operation. If -layer is not specified, the results of these objects are placed to their original layers. -purpose purpose Specify the purpose number (0-255) or purpose name (default=drawing). -size sizeValue Specify the size of the expanding or shrinking sides. Valid value: a floating number. -truncate floatValue Specify a value to cut out the sharp angle. Valid value: a floating number, larger than 0. Examples # Example 1 # Delete the original figures set cvId [dbOpenCV -lib cpu -cell cpu] set figList [dbTraverse -cv $cvId -layer PWELL -shapeOnly 1] dbSizing -size 1.0 -figs $figList # Example 2 # Keep the original figures set cvId [dbOpenCV -lib cpu -cell cpu] set figList [dbTraverse -cv $cvId -layer PWELL -shapeOnly 1] dbSizing -size -1.25 -figs $figList -deloldobj 0 # Example 3 # Put the results to layer THIN and keep the original figures set cvId [dbOpenCV -lib cpu -cell cpu] set figList [dbTraverse -cv $cvId -layer PWELL -shapeOnly 1] dbSizing -size 1.0 -figs $figList -layer THIN \ -purpose drawing -deloldobj 0 Laker³ Tcl Reference Manual K-2015.06 239 Chapter 4: Database Extensions Figure Manipulation # Example 4 set cvId [dbOpenCV -lib cpu -cell cpu] set figList [dbTraverse -cv $cvId -layer MET1 -shapeOnly 1] dbSizing -size 2.0 -figs $figList -layer MET2 -deloldobj 0 \ -truncate 1.0 -convert 1 # Example 5 dbSizing -size 0.5 -figs [lakerGetSelSet] -layer MET2 \ -deloldobj 0 -truncate 1 -keepOrthogonal 1 -absolute 1 -convert 1 See Also dbLayerGen lakerBoolean lakerLayerGen Layout Window: Edit > Boolean Layout Window: Edit > Others > Layer Gen dbSmashInst The dbSmashInst command flattens the number of levels of instances, including Tcl PCells, MCells, arrays and leaf cells as a polygon data, based on the specified level. Syntax dbSmashInst -inst instId [-level level][-smashArrayInst 0|1] Returns A list of object identifiers if successful; otherwise, returns 0. Arguments 240 Argument Description -inst instId Specify the instance identifier. -level level Specify the number of design hierarchy levels to be smashed. Valid value: a positive integer, 1-50 (default=1). -smashArrayInst 0|1 Specify whether to smash an instance, array, or MCell. Valid value: Boolean values, 0 and 1 (default=0). 1 : Smash instances, arrays, or MCells. All array instances are smashed when this is specified. 0 : Do not smash instances, arrays, or MCells. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Examples set pMyCVId [dbOpenCV -lib libraryA -cell cell1] set pInst [dbCreateInst -cv $pMyCVId -lib libraryA \ -cell cell2 -point (0,0)] set pShapes [dbSmashInst -inst $pInst -level 49] puts "shape list: $pShapes" See Also lakerSmashObj Layout Window: Edit > Smash dbSnapToGrid The dbSnapToGrid command returns an on-grid coordinate if a coordinate can be snapped to an on-grid coordinate. Syntax dbSnapToGrid -cv cellviewId -coord coordinate Returns An on-grid coordinate if successful; otherwise, returns nothing. Arguments Argument Description -coord coordinate Specify the coordinate. Valid value: a floating number. -cv cellviewId Specify the cell view identifier. Examples dbSnapToGrid -cv [set cvId [dbOpenCV -lib cpu -cell cpu]] \ -coord 1.234678 dbSnapToGrid -cv $cvId -coord [expr 10*cos(3.1415926/4)] dbTransformBBox The dbTransformBBox command returns a bounding box if the transformation can be applied on a bounding box. Laker³ Tcl Reference Manual K-2015.06 241 Chapter 4: Database Extensions Figure Manipulation Syntax dbTransformBBox -bbox bBox [-orient orientation] offsetPoint offset [-mag magnification] Returns A bounding box if successful; otherwise, returns 0. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. -mag magnification Specify the magnification of the transformation. Valid value: a floating number (default=1.0). -offsetPoint offset Specify the offset point of the transformation in one of the following formats: (a, b), a b, or {a b}. -orient orientation Specify the orientation of the transformation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). Examples dbTransformBBox -bbox (0,0) (5,10) -offsetPoint (5,5) dbTransformBBox -bbox 0 0 5 10 -offsetPoint (5,5) -orient R90 dbTransformBBox -bbox [dbGet -obj $cvId -attr BBox] \ -offset 0 0 -orient R180 dbTransformPoint The dbTransformPoint command returns a point if the transformation can be applied on a point. Syntax dbTransformPoint -point point [-orient orientation] offsetPoint offset [-mag magnification] Returns A point if successful; otherwise, returns 0. 242 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Arguments Argument Description -mag magnification Specify the magnification of the transformation. Valid value: a floating number (default=1.0). -offsetPoint offset Specify the offset point of the transformation in one of the following formats: (a, b), a b, or {a b}. -orient orientation Specify the orientation of the transformation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -point point Specify the desired point in one of the following formats: (a, b), a b, or {a b}. Examples dbTransformPoint -point (5,10) -offsetPoint (5,5) dbTransformPoint -point 5 10 -offsetPoint (5,5) -orient R90 dbTraverse The dbTraverse command returns a list of identifiers or a list of lists if it can get the objects, whose bounding boxes overlap the specified bounding box, and can get the extra information associated with these objects with the top cell view. When the -instOnly and -attachPoint arguments are both specified, the same array instance identifier and the origin point of different array instances are returned. For example, when traversing the cell view with a 1x2 array: dbTraverse -cv $cvId -instOnly 1 -attachPoint 1 # Value returned: # 0x123456 {0,0} 0x123488 {0,0} # 0x123488 {100,0} # arrayId arrOrigin arrInst[0,0] origin # arrInst[0,1] origin When the -instOnly and -attachBBox arguments are both specified, the same array instance identifier and the bounding box of different array instances are returned. For example, when traversing the cell view with a 1x2 array: dbTraverse -cv $cvId -instOnly 1 -attachBBox 1 # Value returned: Laker³ Tcl Reference Manual K-2015.06 243 Chapter 4: Database Extensions Figure Manipulation # 0x123456 {{0,0}{200,100}} 0x123488 {{0,0}{100,100}} # 0x123488 {{100,0}{200,100}} # arrayId arrBBox arrInst[0,0] bbox arrInst[0,1] bbox When the -attachOutlinePoint and -instOnly arguments are both specified, the same array instance identifier and the origin point of different array instances are returned. For example, when traversing the cell view with a 1x2 array: dbTraverse -cv $cvId -instOnly 1 -attachOutlinePoint 1 # Value returned: # 2a971d9100 {{0.000 0.000} {0.000 10.000} # {20.000 10.000} {20.000 0.000}} 2a971d9d28 # {{0.000 0.000} {0.000 10.000} {10.000 10.000} # {10.000 0.000}} 2a971d9d28 {{10.000 0.000} # {10.000 10.000} {20.000 10.000} {20.000 0.000}} # arrayId_outline_points_of_bbox arrInst[0,0]_outline_points_of_bbox # arrInst[0,1]_outline_points_of_bbox The attach preference is as follows: toAttachBBox > toAttachPoint > toAttachOutlinePoint For example, when -toAttachBBox 1 and -toAttachOutlinePoint 1 are specified at the same time, -toAttachBBox is set as 1, but toAttachOutlinePoint is set as 0. Syntax dbTraverse -cv cellviewId [-cbFun callBackFunc] [-bbox bBox] [-layer layer] [-purpose purpose] [-startLevel level1] [-stopLevel level2] [-trueOverlap 0|1] ([-shapeOnly 0|1] | [-instOnly 0|1]) [-attachBBox 0|1] [-attachPoint 0|1] [-disableArrayInst 0|1] [-attachOutlinePoint 0|1 [-side sideNum]] Returns One of the following values is returned: 244 ■ A list of identifiers. Neither -attachBBox nor -attachPoint is specified. ■ A list of lists (each of which is composed of an identifier and a bounding box) when the -attachBBox option is specified. ■ A list of lists (each of which is composed of an identifier and a list of points) when the -attachPoint option is specified. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Arguments Argument Description -attachBBox 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Compute and attach the bounding box of the figure related to the top coordinate of the cell view. 0 : Return the figure identifier only. -attachOutlinePoint 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Compute and attach the outline coordinates. The attachment depends on the following figure types: ■ When the figure is an instance or an array, the list of outline points is the object’s bounding box. ■ When the figure is a polygon, rectangle, ellipse, path, doughnut, or arc, the outline points of the figure are attached. ■ When the figure is a line, the points where it passes are attached. ■ If the figure is a label, the original point of the label is attached. ■ If the figure is dot, its center point is attached. 0 : Return the figure identifier only. -attachPoint 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Compute and attach the list of points related to the top coordinate of the cell view. The attachment depends on the following figure types: ■ When the figure is an instance, array, rectangle, ellipse, or arc, the list of points is the object’s bounding box. ■ When the figure is a polygon, the points of the polygon vertices are attached. ■ When the figure is a line or path, the points where it passes are attached. ■ When the figure is a label, the original point of the label is attached. ■ When the figure is a dot or doughnut, its center point is attached. 0 : Return the figure identifier only. Laker³ Tcl Reference Manual K-2015.06 245 Chapter 4: Database Extensions Figure Manipulation 246 Argument Description -bbox bBox Specify the bounding box (BBox) in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. The default is cell view BBox. -cv cellviewId Specify the cell view identifier. -cbFun callBackFunc Specify a user-defined Tcl procedure for callback results. The procedure syntax is: proc callBackFunc {p_pCallData } { ... }, where p_pCallData is the return value. -disableArrayInst 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Disable the dbArrayInst report in the result. 0 : Enable the dbArrayInst report in the result. -instOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Return instances only. The -shapeOnly and -instOnly arguments cannot be specified simultaneously. The same array instance identifier can be returned multiple times. For example, to traverse the cell view with a 1x2 array:dbTraverse -cv $cvId -instOnly 1 0x123456 0x123488 0x123488 (arrayId) arrInst[0,0] arrInst[0,1]0 : No restriction on the above traversing. -layer layer Specify the layer number or layer name (default=all layers). -purpose purpose Specify the purpose number or purpose name (default=all purposes). -shapeOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Return shapes only. The -shapeOnly and -instOnly arguments cannot be specified simultaneously. 0 : No restriction on the above traversing. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Argument Description -side sideNum Specify the number of sides for a shape/object, or the number of points for an arc, ellipse, or doughnut shapes. Valid value: a positive integer (default=32). -startLevel level1 Specify the starting level. Valid value: a positive integer (default=0). -stopLevel level2 Specify the stopping level. Valid value: a positive integer (default=0). -trueOverlap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Return the objects that are totally covered by the specified bounding box only. 0 : No restriction on the above traversing. This argument is invalid when the -instOnly or -shapeOnly argument is specified. Examples #Example 1 #Define callback procedure proc traverseCB { p_pCallData } { if {"Instance" == [dbGet -obj $p_pCallData -attr type]} { if {"contact" == [dbGet -obj $p_pCallData -attr cellName]} { #..... puts $p_pCallData } } } #Open processing CV set cvId [dbOpenCV -lib CPU -cell CPU] #Call dbTraverse with callback style dbTraverse -cv $cvId -cbFun traverseCB -instOnly 1 #Example 2 dbTraverse -cv $cvId1 dbTraverse -cv $cvId1 -layer MET1 -shapeOnly 1 \ -bbox (-100,-100) (100,100) dbTraverse -cv $cvId2 -instOnly 1 Laker³ Tcl Reference Manual K-2015.06 247 Chapter 4: Database Extensions Figure Manipulation ### an example and its result ### program begin set cv1 [dbOpenCV -lib cpu -cell k1 -mode create] set cv2 [dbOpenCV -lib cpu -cell k2 -mode create] set cv3 [dbOpenCV -lib cpu -cell k3 -mode create] set cv4 [dbOpenCV -lib cpu -cell k4 -mode create] puts "rect: [dbCreateRect -cv $cv1 -bbox 0 0 1 1 -layer 1] on cv1" puts "rect: [dbCreateRect -cv $cv2 -bbox 0 0 1 1 -layer 1] on cv2" puts "rect: [dbCreateRect -cv $cv3 -bbox 0 0 1 1 -layer 1] on cv3" puts "rect: [dbCreateRect -cv $cv4 -bbox 0 0 1 1 -layer 1] on cv4" puts "inst: [dbCreateInst -cv $cv1 -master $cv2 -point 1 1]" puts "inst: [dbCreateInst -cv $cv2 -master $cv3 -point 1 1]" puts "inst: [dbCreateInst -cv $cv3 -master $cv4 -point 1 1]" puts "\n\nResult:\n" puts "[dbTraverse -cv $cv4 -attachBBox 1 -stopLevel 0 \ -shapeOnly 1] \n" puts "[dbTraverse -cv $cv3 -attachBBox 1 -stopLevel 1 \ -shapeOnly 1] \n" puts "[dbTraverse -cv $cv2 -attachBBox 1 -stopLevel 2 \ -shapeOnly 1] \n" puts "[dbTraverse -cv $cv1 -attachBBox 1 -stopLevel 3 \ -shapeOnly 1] \n" ### program end ### result rect: 30a850 on cv1 rect: 30a450 on cv2 rect: 30a050 on cv3 rect: 309c50 on cv4 inst: 30a890 inst: 30a490 inst: 30a090 Result: {309c50 {{0 0} {1 1}}} {30a050 {{0 0} {1 1}}} {309c50 {{1 1} {2 2}}} {30a450 {{0 0} {1 1}}} {30a050 {{1 1} {2 2}}} {309c50 {{2 2} {3 3}}} {30a850 {{0 0} {1 1}}} {30a450 {{1 1} {2 2}}} {30a050 {{2 2} {3 3}}} {309c50 {{3 3} {4 4}}} # Example 3 # Assume that 1 array(1*2), 1 instance, 1 ellipse, and 1 dot are # in library BB dbOpenLib -lib BB set cvId [dbOpenCV -lib BB -cell Top -view layout -mode create] set objlist [dbTraverse -cv $cvId -attachOutlinePoint 1 -side 50] foreach obj $objlist { set id [lindex $obj 0] set tp [dbGet -obj $id -attr Type] puts "Type= $tp" puts "\tobj= $obj\n" } dbCloseCV -cv $cvId dbCloseLib -lib BB 248 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation # The traversed results are: # Type= Array # obj= 2a971d9100 {{0.000 0.000} {20.000 10.000}} # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Type= ArrayInst obj= 2a971d9d28 {{10.000 0.000} {10.000 10.000} {20.000 10.000} {20.000 0.000}} Type= ArrayInst obj= 2a971d9d28 {{10.000 0.000} {10.000 10.000} {20.000 10.000} {20.000 0.000}} Type= Instance obj= 2a971d9d00 {{-790.000 -490.000} {-790.000 710.000} {810.000 710.000} {810.000 -490.000}} Type= Ellipse obj= 2a971d9e00 {{-600.000 650.000} {-601.000 656.000} {-603.000 662.000} {-607.000 668.000} {-612.000 674.000} {-619.000 679.000} {-627.000 684.000} {-636.000 689.000} {-646.000 692.000} {-657.000 695.000} {-669.000 698.000} {-681.000 699.000} {-694.000 700.000} {-706.000 700.000} {-719.000 699.000} {-731.000 698.000} {-743.000 695.000} {-754.000 692.000} {-764.000 689.000} {-773.000 684.000} {-781.000 679.000} {-788.000 674.000} {-793.000 668.000} {-797.000 662.000} {-799.000 656.000} {-800.000 650.000} {-799.000 644.000} {-797.000 638.000} {-793.000 632.000} {-788.000 626.000} {-781.000 621.000} {-773.000 616.000} {-764.000 611.000} {-754.000 608.000} {-743.000 605.000} {-731.000 602.000} {-719.000 601.000} {-706.000 600.000} {-694.000 600.000} {-681.000 601.000} {-669.000 602.000} {-657.000 605.000} {-646.000 608.000} {-636.000 611.000} {-627.000 616.000} {-619.000 621.000} {-612.000 626.000} {-607.000 632.000} {-603.000 638.000} {-601.000 644.000}} Type= Dot obj= 2a971da000 {50.000 -50.000} getBBoxBottom The getBBoxBottom command returns a coordinate if the y-axis coordinate of the lower left point of a bounding box can be obtained. Syntax getBBoxBottom -bbox bBox Laker³ Tcl Reference Manual K-2015.06 249 Chapter 4: Database Extensions Figure Manipulation Returns A coordinate if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples getBBoxBottom -bbox [dbGet -obj $cvId -attr BBox] getBBoxBottom -bbox (0,0)(1,3) getBBoxCenter The getBBoxCenter command returns a planar pointer if the center point of a bounding box can be obtained. Syntax getBBoxCenter -bbox bBox Returns A planar pointer if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples getBBoxCenter -bbox [list [list 0 0] [100 100]] getBBoxCenter -bbox [dbGet -obj $cvId -attr BBox] getBBoxLeft The getBBoxLeft command returns a coordinate if the x-coordinate of the lower left point of a bounding box can be obtained. Syntax getBBoxLeft -bbox bBox 250 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Figure Manipulation Returns A coordinate if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples getBBoxLeft -bbox [dbGet -obj $cvId -attr BBox] getBBoxLeft -bbox (1,0)(5,3) getBBoxLeftBottom The getBBoxLefBottom command returns a planar pointer if the bottom left corner point of a bounding box can be obtained. Syntax getBBoxLeftBottom -bbox bBox Returns A planar pointer if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples set cvId [dbOpenCV -lib [dbOpenLib -lib CPU -cell CPU] getBBoxLeftBottom -bbox [dbGet -obj $cvId -attr BBox] getBBoxRight The getBBoxRight command returns a coordinate if the x-coordinate of the upper right point of a bounding box can be obtained. Syntax getBBoxRight -bbox bBox Laker³ Tcl Reference Manual K-2015.06 251 Chapter 4: Database Extensions Figure Manipulation Returns A coordinate if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples getBBoxRight -bbox [dbGet -obj $cvId -attr BBox] getBBoxRight -bbox (0,0)(5,3) getBBoxRightTop The getBBoxRightTop command returns a planar pointer if the top right corner point of a bounding box can be obtained. Syntax getBBoxRightTop -bbox bBox Returns A planar pointer if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples getBBoxRightTop -bbox [dbGet -obj $cvId -attr BBox] getBBoxTop The getBBoxTop command returns a coordinate if the y-coordinate of the upper right point of a bounding box can be obtained. Syntax getBBoxTop -bbox bBox 252 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Accessory Objects Returns A coordinate if successful; otherwise, returns nothing. Arguments Argument Description -bbox bBox Specify the bounding box in one of the following formats: (a, b) (c, d), a b c d, or {{a b} {c d}}. Examples getBBoxTop -bbox [dbGet -obj $cvId -attr BBox] getBBoxTop -bbox (-1,0)(5,3) Accessory Objects The accessory objects include Property and Group, which are explained later in the following sections. Property is used to keep additional information of the attached dbObject. For example, you can create a property with specified property name, data type and value on a dbObject, and then query the property from this dbObject. Group is a container that groups a set of dbObjects. Groups can be created and dbObjects can be created to one or many groups. Group can be used to build a relationship for some dbObjects which should have the same attributes. Group members can be queried from one group, and the groups that the dbObject belongs to can also be queried. The relationship of accessory objects is illustrated in the following figure. Laker³ Tcl Reference Manual K-2015.06 253 Chapter 4: Database Extensions Property Figure 2 Accessory Objects Property This section describes the Tcl commands that are related to properties. These commands include: ■ dbCellPro ■ dbCopyProp ■ dbCreateProp ■ dbDeletePropByName ■ dbFindProp dbCellPro The dbCellPro command assigns a string (cell property) to a cell view of the specified library so that the LefOut process can refer to the string and dump the information to the CLASS token. 254 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Property Syntax dbCellPro -lib libName -cell cellName -view {abs | layout | abs layout} -property {None -attr None | COVER -attr {None|BUMP} RING -attr None| BLOCK -attr {None | BLACKBOX} PAD -attr {None | INPUT | OUTPUT | INOUT | POWER | SPACER | AREAIO} CORE -attr {None | FEEDTHRU | TIEHIGH | TIELOW | SPACER | ANTENNACELL} ENDCAP -attr {PRE | POST | TOPLEFT | TOPRIGHT | BOTTOMLEFT | BOTTOMRIGHT} SITE -attr {coresite | User-defined Site} SYMMETRY -attr {X | Y | X Y | Any}} -site {coresite | User-defined Site} Returns None Arguments Argument Description -attr propertyType Specify the attribute of the property type. -cell cellName Specify the cell name of the specified cell view. -lib libName Specify the library name or library identifier. -property propertyName Specify the name of the property type. -site {coresite|User-defined Site} Specify the site name. Valid values: coresite, and any user-defined site (default=coresite). -view {abs | layout | abs layout} Specify the cell view to be updated with the cell property. Valid values: abs, layout, and abs layout (default=abs). Examples dbCellPro -lib demo -cell cell1 -property RING -attr None See Also lakerCellPro Layout Window: Cell > Cell Type Laker³ Tcl Reference Manual K-2015.06 255 Chapter 4: Database Extensions Property dbCopyProp The dbCopyProp command returns 1 if all properties can be copied from one object to another. Syntax dbCopyProp -obj1 objId1 -obj2 objId2 Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -obj1 objId1 Specify the identifier of the source object. -obj2 objId2 Specify the identifier of the destination object. Examples set rectId [dbCreateRect -cv $cvId -layer 1 -bbox 1 1 3 5] set pathId [dbCreatePath -cv $cvId -layer 1 -path (0,0)(1,1)(2,1)(3,0) -width 0.1] dbCreateProp -obj $rectId -name p1 -type Integer -value 1 dbCreateProp -obj $rectId -name p2 -type Float -value 1.2 dbCopyProp -obj1 $rectId -obj2 $pathId dbCopyProp -obj1 $rectId -obj2 $cvId dbCreateProp The dbCreateProp command returns a property identifier if the property can be created on an object. When -replace 1 is specified, the existing property is replaced by the new property if their names are similar. When -type HierProp is specified, no value should be specified to the -value argument. Syntax dbCreateProp -obj objId -name propName -type propType -value propValue [-displayed 0|1] [-replace 0|1] [-appType typeName] Returns Property Identifier if successful; otherwise, returns 0. 256 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Property Arguments Argument Description -appType typeName Specify the application type for -type AppProp. Any name can be entered. -displayed 0|1 Specify the switch mode for display. Valid values: Boolean values, 0 and 1 (default=0). -name propName Specify the property name. -obj objId Specify the object identifier. -replace 0|1 Specify the switch mode for replacement. Valid values: Boolean values, 0 and 1 (default=0). -type propType Specify the property type. Valid values: String, Int, Float, DBId, Boolean, Time, LpPair, AppProp, and UserPair. -value propValue Specify the property value. This value depends on the -type argument. Examples dbCreateProp -obj $cvId -name p1 -type Int -value 1 dbCreateProp -obj $cvId -name p2 -type Boolean -value 0 dbCreateProp -obj $cvId -name p1 -type String -value string1 -replace 1 # Open any existing design with a mode set cv [dbOpenCV -lib l1 -cell cell1 -view layout -mode a] # The return value is oa:0x2a9685f39a # Create oaAppProp set p [dbCreateProp -obj $cv -name testAppProp -type AppProp -appType testApp -value appvalue] # The return value is oa:0x2a9685f01a # Use dbGet dbGet dbGet dbGet to get atributes -obj $p -attr Name testAppProp -obj $p -attr Value appvalue -obj $p -attr AppType testApp Laker³ Tcl Reference Manual K-2015.06 257 Chapter 4: Database Extensions Property dbDeletePropByName The dbDeletePropByName command returns 1 if the property can be deleted by giving a property name. Syntax dbDeletePropByName -obj objId -name propName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -name propName Specify the property name. -obj objId Specify the object identifier. Examples dbDeletePropByName -obj $cvId -name IntProp1 dbDeletePropByName -obj $instId -name FProp2 dbFindProp The dbFindProp command returns a property identifier if the property can be found by giving a property name. Syntax dbFindProp -obj objId -name propName Returns Property identifier if successful; otherwise, returns 0. Arguments 258 Argument Description -name propName Specify the property name. -obj objId Specify the object identifier. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Property Examples # Example 1 dbFindProp -obj $instId -name FProp2 dbFindProp -obj $cvId -name IntProp1 # Example 2 # please use the technology file under demo directory and # make sure the file name is changed to “laker.tf” lakerNewLib -lib PROP -tech laker.tf # create a library “PROP” with tech file “laker.tf” # value returned: null set libId [dbOpenLib -lib PROP ] # open the library created. # value returned: an id , ex “264780c” set cvId [dbOpenCV -lib $libId -cell cell -mode create -view layout] # create a cell in library “PROP” with layout view # value returned: an id , ex “264680c” set rect1 [dbCreateRect -cv $cvId -layer 16 -bbox (1,1) (5,5) ] set rect2 [dbCreateRect -cv $cvId -layer 16 -bbox (6,1) (11,5) ] set rect3 [dbCreateRect -cv $cvId -layer 16 -bbox (16,1) (21,5) ] # create a rectagle # value returned: an id , ex “2646847” set pathId01 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,0) (10,0) ] set pathId02 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,10) (10,10) ] set pathId03 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,20) (10,20) ] # create a path # value returned: an id , ex “2646875” dbCreateProp -obj $rect1 -name P1 -type Integer -value 1 dbCreateProp -obj $rect2 -name P2 -type Boolean -value 0 dbCreateProp -obj $rect2 -name P3 -type String -value text -replace 1 # create a property # value returned: an id , ex “2646875” set hpId1 [dbCreateProp -obj $pathId01 -name HP1 -type HierProp ] set hpId2 [dbCreateProp -obj $pathId02 -name HP2 -type HierProp ] # create a hier property Laker³ Tcl Reference Manual K-2015.06 259 Chapter 4: Database Extensions Group # value returned: an id , ex “2646875” dbCreateProp -obj $hpId1 -type Integer -value 1 dbCreateProp -obj $hpId2 -type String -value h_text dbFindProp -obj $hpId1 -name HP1 # save cell # value returned: 1 dbSaveCV -cv $cvId # close cell # value returned: 1 dbCloseCV -cv $cvId # close library # value returned: 1 dbCloseLib -lib $libId # # # # # Example 3 To distinguish the pin created by Soft Pin Realizer and Create Pin attach a property "SP_Realized" to the extra pin shapes created by Soft Pin Realizer, and adopt the following script to judge if the shape is created by that feature. proc IsSoftPinRealized { FigId } { set Property [dbFindProp -obj $FigId -name SP_Realized] if { $Property == 0 } { return 0; } else { set Value [dbGet -obj $Property -attr Value] set Type [dbGet -obj $Property -attr ValueType] if { $Value == 1 && $Type == "Boolean" } { return 1; } else { return 0; } } } Group This section describes the Tcl commands that are related to groups. These commands include: 260 ■ dbAddObjectToGroup ■ dbCreateGroup Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Group ■ dbDeleteGroupByName ■ dbDeleteObjectFromGroup ■ dbFindGroup ■ dbMoveMember dbAddObjectToGroup The dbAddObjectToGroup command returns a member identifier if the object can be added to a group. Syntax dbAddObjectToGroup -obj objId -group groupId Returns A member identifier if successful; otherwise, returns 0. Arguments Argument Description -group groupId Specify the group identifier. -obj objId Specify the object identifier. Examples dbAddObjectToGroup -obj $pathId -group $groupId dbAddObjectToGroup -obj $rectId -group $groupId dbCreateGroup The dbCreateGroup command returns a group identifier if the group can be created. When -ordered 1 and -type Set are specified, the order of group members may be changed. When the -uniqueName 1 is specified, this allows the group to share the same group name with other groups. Syntax dbCreateGroup -cv cellviewId -name groupName -type groupType [-ordered 0|1] [-uniqueName 0|1] Laker³ Tcl Reference Manual K-2015.06 261 Chapter 4: Database Extensions Group Returns A group identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -name groupName Specify the group name. -ordered 0|1 Specify the switch mode for the order of group members. Valid values: Boolean values, 0 and 1 (default=0). -type groupType Specify the group type. Valid values: Collect and Set (default=Set). -uniqueName 0|1 Specify the switch mode for unique names. Valid values: Boolean values, 0 and 1 (default=0). Examples dbCreateGroup -cv $cvId -name G1 -type Set dbCreateGroup -cv $cvId -name G2 -type Collect dbCreateGroup -cv $cvId -name G3 -type Set -ordered 1 -uniqueName 1 dbDeleteGroupByName The dbDeleteGroupByName command returns 1 if the group can be deleted by giving a group name. Syntax dbDeleteGroupByName -cv cellviewId -name groupName Returns 1 if successful; otherwise, returns 0. Arguments 262 Argument Description -cv cellviewId Specify the cell view identifier. -name groupName Specify the group name. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Group Examples dbDeleteGroupByName -cv $cvId -name G1 dbDeleteObjectFromGroup The dbDeleteObjectFromGroup command returns 1 if the object can be deleted from its group. Syntax dbDeleteObjectFromGroup -obj objId -group groupId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -group groupId Specify the group identifier. -obj objId Specify the object identifier which belongs to the group. Examples dbAddObjectToGroup -obj $pathId -group $groupId dbAddObjectToGroup -obj $rectId -group $groupId ... dbDeleteObjectFromGroup -obj $pathId -group $groupId dbFindGroup The dbFindGroup command returns group identifier if the object can be found from its group. Syntax dbFindGroup -cv cvId -name groupName Returns Group identifier if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 263 Chapter 4: Database Extensions Group Arguments Argument Description -cv cvId Specify the cell view identifier. -name groupName Specify the group name. Examples set groupId [dbFindGroup -cv $cvId -name "Group1"] dbMoveMember The dbMoveMember command returns 1 if the order of a member can be changed in a group. Syntax dbMoveMember -member1 memId1 [-member2 memId2] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -member1 memId1 Specify the moving member. -member2 memId2 Specify the member before which memId1 is placed (default=the first member in the group). Examples # Use the technology file under "demo" directory and # make sure the file name is changed to "laker.tf" lakerNewLib -lib GROUP -tech laker.tf # create a library "GROUP" with tech file "laker.tf" # value returned: null set libId [dbOpenLib -lib GROUP ] # open the library created. # value returned: an id , ex "264780c" set cvId [dbOpenCV -lib $libId -cell cell -mode create -view layout] # create a cell in library "GROUP" with layout view # value returned: an id , ex "264680c" 264 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Group set rect1 [dbCreateRect -cv $cvId -layer 16 -bbox (1,1) (5,5) ] # create a rectagle # value returned: an id , ex "2646844" set rect2 [dbCreateRect -cv $cvId -layer 16 -bbox (6,1) (11,5) ] # create a rectagle # value returned: an id , ex "2646847" set pathId01 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,0) (10,0) ] # create a path # value returned: an id , ex "264684c" set pathId02 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,10) (10,10) ] # create a path # value returned: an id , ex "264684a" set pathId03 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,20) (10,20) ] # create a path # value returned: an id , ex "2646875" set gId1 [dbCreateGroup -cv $cvId -name G1 -type Set] # create a group # value returned: an id , ex "2646875" set gId2 [dbCreateGroup -cv $cvId -name G2 -type Collect -ordered 1] # create a group # value returned: an id , ex "2646875" dbAddObjectToGroup -obj $rect1 -group $gId1 # add object to a group # value returned: an id , ex "2646875" dbAddObjectToGroup -obj $rect2 -group $gId1 # add object to a group # value returned: an id , ex "2646875" set memId1 [dbAddObjectToGroup -obj $pathId01 -group $gId2] # add object to a group # value returned: an id , ex "2646875" set memId2 [dbAddObjectToGroup -obj $pathId02 -group $gId2] # add object to a group # value returned: an id , ex "2646875" set memId3 [dbAddObjectToGroup -obj $pathId03 -group $gId2] # add object to a group # value returned: an id , ex "2646875" dbGet -obj $gId2 # value returned: ex# Type: Group DeleteWhen: Never GroupType: Collect \ # IsOrdered: 1 IsUniqueName: 0 \ # Members: 267493c 2674954 267496c \ # Name: G2 Objects: 267488c 26748a4 26748bc Laker³ Tcl Reference Manual K-2015.06 265 Chapter 4: Database Extensions Logic Objects dbMoveMember -member1 $memId3 # change sequence in an ordered group # value returned: 1 dbMoveMember -member1 $memId2 -member2 $memId3 # change sequence in an ordered group # value returned: 1 dbDeleteObjectFromGroup -obj $pathId01 -group $gId2 # remove object from group # value returned: 1 dbDeleteGroupByName -cv $cvId -name G1 # remove a group name # value returned: 1 dbSaveCV -cv $cvId # save cell # value returned: 1 dbCloseCV -cv $cvId # close cell # value returned: 1 dbCloseLib -lib $libId # close library # value returned: 1 Logic Objects This section describes the Tcl commands that are related to logic objects. These commands include: 266 ■ dbCreateBusNet ■ dbCreateInstPin ■ dbCreateInstPort ■ dbCreateNet ■ dbCreatePin ■ dbCreatePort ■ dbCreateSingleNet ■ dbDeleteAllNet ■ dbDeviceSetParameter ■ dbFindNet ■ dbFindPort ■ dbGenPin Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects ■ dbGetGlobalNet ■ dbMakeBusNet ■ dbCreateSingleNet dbCreateBusNet The dbCreateBusNet command returns a net identifier if the bus net in the specified cell view can be created. Syntax dbCreateBusNet -cv cellViewId -name netName -leftIdx n1 rightIdx n2 [-step n3] Returns A net identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -leftIdx n1 Specify the left index of bus nets. n1 is an integer. -name netName Specify the net name. -rightIdx n2 Specify the right index of bus nets. n2 is an integer. -step n3 Specify the interval size of bus nets. n3 is an integer (default=1). This argument is valid only if the -leftIdx and -rightIdx arguments exist. Examples # Example 1 dbCreateBusNet -cv $cvId -name G -leftIdx 0 -rightIdx 5 # Example 2 dbCreateBusNet -cv $cvId -name D -leftIdx 0 -rightIdx 6 -step 2 Laker³ Tcl Reference Manual K-2015.06 267 Chapter 4: Database Extensions Logic Objects dbCreateInstPin The dbCreateInstPin command returns an instance pin identifier if the specified instance pin can be created. The pin can be specified by its identifier or by its name. Syntax dbCreateInstPin -instPort instPortId (-pin pinId | -name pinName) [-net netId] Returns An instPin (instance pin) identifier if successful; otherwise, returns 0. Arguments Argument Description -instPort instPortId Specify the identifier of the instance port. -name pinName Specify the pin name. -net netId Specify the net identifier to which the created instance pin connects (default=no net). -pin pinId Specify the pin identifier. Examples ## open two cellviews set mcvId [dbOpenCV -lib cpu -cell c1 -mode edit] set tcvId [dbOpenCV -lib cpu -cell c2 -mode edit] ## create a net in the master cell view set netId [dbCreateNet -cv $mcvId -name N] ## create a port and a pin in the master cell view set portId [dbCreatePort -net $netId -dir Input] set rectId [dbCreateRect -cv $mcvId -layer 1 -bbox (0,0)(1,1)] set pinId [dbCreatePin -net $netId -fig $rectId] ##create an instance set instId [dbCreateInst -cv $tcvId -master $mcvId -point (0,0)] ##create an instance port set instPortId [dbCreateInstPort -inst $instId -port $portId] ##create a instance pin dbCreateInstPin -instPort $instPortId -pin $pinId 268 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects dbCreateInstPort The dbCreateInstPort command returns an instance port identifier if the specified instance port can be created. The port can be specified by its identifier or by its name. Syntax dbCreateInstPort -inst instId (-port portId | -name portName) [-net netId] Returns An instPort (instance port) identifier if successful; otherwise, returns 0. Arguments Argument Description -inst instId Specify the instance identifier. -name portName Specify the port name on the master cell view. -net netId Specify the net identifier to which the created instance port connects (default=no net). -port portId Specify the port identifier. Examples set portId1 [dbCreatePort -cv $mcvId -net $netId1 -dir Input] set portId2 [dbCreatePort -cv $mcvId -net $netId2 \ -name outPort -dir Output] set instId1 [dbCreateInst -cv $tcvId -master $mcvId \ -point ($x,$y)] set instId2 [dbCreateInst -cv $tcvId -master $mcvId \ -point ($x+3,$y-3)] dbCreateInstPort -inst instId1 -port portId1 dbCreateInstPort -inst instId2 -name outPort dbCreateNet The dbCreateNet command returns a net identifier if the net can be created. Laker³ Tcl Reference Manual K-2015.06 269 Chapter 4: Database Extensions Logic Objects ■ If -get 1 is specified and a net with netName already exists, then the id of the existing net is returned. If a net with netName does not exist, a new net is created and the id of the new net is returned. ■ If -get 0 is specified and a net with netName already exists, then 0 is returned. If a net with netName does not exist, a new net is created and the id of the new net is returned. ■ If -declaration 1 is specified, a declaration net is created. ■ If -declaration 0 is specified and a declaration net with netName already exists, then a new operation net is created. If a declaration net with netName does not exist, a new declaration net is created before creating a new operation net. Syntax dbCreateNet -cv cellviewId -name netName -get 0|1 [-declaration 0|1] [-leftIdx n1 -rightIdx n2 [-step n3]] Returns A net identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -declaration 0|1] Valid values: Boolean values, 0 and 1 (default=1). 1 : Create a declaration net. See details in Description. 0 : Create a declaration net first and then an operation net. -get 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Get the net identifier. See details in Description. 0 : Do not get the net identifier. -leftIdx n1 Specify the left index of bus nets. n1 is an integer. -name netName Specify the net name. -rightIdx n2 Specify the right index of bus nets. n2 is an integer. -step n3 Specify the interval size of bus nets. n3 is an integer (default=1). This argument is valid only if the -leftIdx and -rightIdx arguments exist. 270 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects Examples dbCreateNet -cv $cvId -name N ... dbCreateNet -cv $cvId -name N -get 1 set netId [dbCreateNet -cv $cvId -name tin] set netId [dbCreateNet -cv $cvId -name tin -declaration 0] set GNetId [dbCreateNet -cv $cvId -name G -leftIdx 1 \ -rightIdx 6 -step 2] ... See Also dbCreatePin lakerCreatePin lakerAttribute Layout Window: Create > Pin Layout Window: Query > Attribute symDsgCreatePin symDsgQueryAttribute Symbol Editor: Create > Pin Symbol Editor: Query > Attribute dbCreatePin The dbCreatePin command returns a pin identifier if the pin can be created. Syntax dbCreatePin -net $netId -fig $figId [-name pinName] [-portDir PortDir] [-dir accessDirection] [-jointType JointType] Returns A pin identifier if successful; otherwise, returns 0. Arguments Argument Description -dir accessDirection Specify the pin direction. Valid values: the combination of {Top}, {Bottom}, {Left}, and {Right} (default=all directions, that is, {Top}{Bottom}{Left}{Right}). -fig figId Specify the figure identifier. Laker³ Tcl Reference Manual K-2015.06 271 Chapter 4: Database Extensions Logic Objects Argument Description -jointType JointType Specify the joint type for the specified pin. Valid values: Disjointed, Strong, and Weak. -name pinName Specify the pin name (default=one sequence number for all pins on the port). -net netId Specify the net identifier. -portDir PortDir Specify the port pin type. Valid values: Input, Output, InputOutput, Jumper, and Feedthrough (default=Input). Examples set rectId [dbCreateRect -cv $cvId -layer 1 -bbox (1,1)(2,2)] dbCreatePin -net $netId1 -fig $rectId See Also dbCreatePort lakerCreatePin lakerAttribute Layout Window: Create > Pin Layout Window: Query > Attribute symDsgCreatePin symDsgQueryAttribute Symbol Editor: Create > Pin Symbol Editor: Query > Attribute dbCreatePort The dbCreatePort command returns a port identifier if the port can be created. Syntax dbCreatePort -net $netId -dir direction [-name portName] Returns A port identifier if successful; otherwise, returns 0. 272 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects Arguments Argument Description -dir direction Specify the direction of the port. Valid values: Input, Output, InputOutput, and Jumper. -name portName Specify the port name (default=name of netId). -net netId Specify the net identifier. Examples dbCreatePort -net $netId1 -dir Input dbCreatePort -net $netId2 -dir Output -name O See Also dbCreatePin dbCreateNet lakerCreatePin lakerAttribute Layout Window: Create > Pin Layout Window: Query > Attribute symDsgCreatePin symDsgQueryAttribute Symbol Editor: Create > Pin Symbol Editor: Query > Attribute dbCreateSingleNet The dbCreateSingleNet command returns a net identifier if the single net in the specified cell view can be created. Syntax dbCreateSingleNet -cv cellViewId -name netName Returns A net identifier if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 273 Chapter 4: Database Extensions Logic Objects Arguments Argument Description -cv cellviewId Specify the cell view identifier. -name netName Specify the net name. Examples # Example 1 dbCreateSingleNet -cv $cvId -name N1 dbDeleteAllNet The dbDeleteAllNet command returns 1 if all nets in the specified cell view can be deleted. Syntax dbDeleteAllNet -cv cellviewId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. Examples dbDeleteAllNet -cv $cvId dbDeviceSetParameter The dbDeviceSetParameter command sets the value to the specified parameter and triggers the callback of this paramter. Syntax dbDeviceSetParameter -cv cellviewId -inst instName -param parameterName -value value Returns None 274 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects Arguments Argument Description -cv cellViewId Specify the cell view identifier. -inst instName Specify the instance name. -param parameterName Specify the parameter name. -value value Specify the parameter value. Examples dbDeviceSetParameter -cv oa:0x2a978cef1a -inst X1 -param ln \ -value 1 dbFindNet The dbFindNet command returns a net identifier if the net in the specified cell view can be found. Syntax dbFindNet -cv cellviewId -name netName [-leftIdx num -rightIdx num [-step num]] Returns A net identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -leftIdx num Specify the left index of bus nets. Valid value: an integer. -name netName Specify the net name. -rightIdx num Specify the right index of bus nets. Valid value: an integer. Laker³ Tcl Reference Manual K-2015.06 275 Chapter 4: Database Extensions Logic Objects Argument Description -step num Specify the interval size of bus nets. Valid value: an integer (default=1). This argument is used only when the -leftIdx and rightIdx exist. Examples # Example 1 dbFindNet -cv $cvId -name N1 # Example 2 dbCreateNet -cv $cv -name A dbCreateNet -cv $cv -name A -declaration 0 -leftIdx 0 -rightIdx 4 dbCreateNet -cv $cv -name B dbCreateNet -cv $cv -name B -declaration 0 -leftIdx 0 -rightIdx 4 -step 2 dbCreateNet -cv $cv -name C dbCreateNet -cv $cv -name C -declaration 0 dbFindNet -cv $cv -name A -leftIdx 0 -rightIdx 4 dbFindNet -cv $cv -name C dbFindNet -cv $cv -name B -leftIdx 0 -rightIdx 4 -step 2 See Also lakerConnBrowser lakerFindObj Layout Window: Query > Find adpDsgQueryFind Schematic Editor: Query> Find dbFindPort The dbFindPort command returns a port identifier if the port in the specified cell view can be found. Syntax dbFindPort -cv cellviewId -name portName Returns A port identifier if successful; otherwise, returns 0. 276 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects Arguments Argument Description -cv cellviewId Specify the cell view identifier. -name portName Specify the port name. Examples dbFindPort -cv $cvId -name P1 See Also lakerFindObj Layout Window: Query > Find adpDsgQueryFind Schematic Editor: Query> Find dbGenPin The dbGenPin command creates real pin shapes from the traversed shapes with net and port properties and removes the soft pins after realization. Syntax dbGenPin -cv cellviewId -genPinBy label|net|mix -topLevelOnly 0|1 -extLevel levelNo -useColonVirtual 0|1 -pinSize 0|1 -width width Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the working cell view. -genPinBy label|net|mix Specify the method for pin creation. Valid values: label, net, mix (default=label). Laker³ Tcl Reference Manual K-2015.06 277 Chapter 4: Database Extensions Logic Objects Argument Description -topLevelOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Create pin shapes from the traversed shapes with net and port properties at top level, and the soft pin is removed. 0: Not only create pin shapes from top level, but also from instance. -useColonVirtual 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use colon as the virtual connection. 0 : Do not use colon as the virtual connection. This option decides whether the joint type of a generated pin shape is weak or disjointed. If the label is followed by a colon (:), it is weak. -extLevel levelNo Specify the extraction level. Valid value: an integer, from 0 to 49 (default=0). -pinSize 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Limit the size of pin shapes. 0 : Do not limit the size of pin shapes. This option controls the size of generated pin shapes. -width width Specify the width of a rectangle to limit the size of generated pin shape. Valid value: a floating number. Examples set lib1 [dbOpenLib -lib cpu] if { $lib1 != 0 } { set cv1 [dbOpenCV -lib lib -cell na2c -view layout] if { $cv1 != 0 } { dbGenPin -cv $cv1 -genPinBy mix -topLevelOnly 0 -extLevel 1 \ -useColonVirtual 1 -pinSize 1 -width 100 dbSaveCV -cv $cv1 dbCloseCV -cv $cv1 } dbCloseLib -lib $lib1 } See Also lakerGenPin Layout Window: SDL > Gen Pin 278 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Logic Objects dbGetGlobalNet The dbGetGlobalNet command returns a name list of power nets, ground nets and global nets of the specified cell view. Syntax dbGetGlobalNet -cv cellviewId Returns {net name list of power} {net name list of ground} {net name list of global net} if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier of the specified cell view. Examples set globalNet [dbGetGlobalNet -cv [lakerGetWndCellViewId]] # The returned globalNet can be {VDD VDD1} {VSS} {signet} dbMakeBusNet The dbMakeBusNet command returns a net identifier if the bus net in the specified cell view can be made. Syntax dbMakeBusNet -cv cellViewId -name netName -leftIdx n1 -rightIdx n2 [-step n3] Returns A net identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -leftIdx n1 Specify the left index of bus nets. n1 is an integer. -name netName Specify the net name. Laker³ Tcl Reference Manual K-2015.06 279 Chapter 4: Database Extensions Logic Objects Argument Description -rightIdx n2 Specify the right index of bus nets. n2 is an integer. -step n3 Specify the interval size of bus nets. This argument is valid only if the -leftIdx and -rightIdx arguments exist. n3 is an integer (default=1). Examples # Example 1 dbMakeBusNet -cv $cvId -name G -leftIdx 0 -rightIdx 5 # Example 2 dbMakeBusNet -cv $cvId -name D -leftIdx 0 -rightIdx 6 -step 2 dbCreateSingleNet The dbMakeSingleNet command returns a net identifier if the single net in the specified cell view can be made. Syntax dbMakeSingleNet -cv cellViewId -name netName Returns A net identifier if successful; otherwise, returns 0. Arguments Argument Description -cv cellviewId Specify the cell view identifier. -name netName Specify the net name. Examples # Example 1 dbMakeSingleNet -cv $cvId -name N1 280 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameters Parameters This section describes the Tcl commands that are related to parameters. These commands include: ■ dbCellFind ■ dbCopyParam ■ dbCreateParam ■ dbDeleteParamByName ■ dbFindParam ■ dbLoadCellCDF ■ dbLoadLibCDF ■ dbSaveCellCDF ■ dbSaveLibCDF dbCellFind The dbCellFind command locates the cell view identifier (ID) by specifying a library ID and cell name. Syntax dbCellFind -lib $libId -cell cellName Returns None Arguments Argument Description -cell cellName Specify the cell name. -lib $libId Specify the library identifier. Examples dbCellFind -lib $libId -cell cellA Laker³ Tcl Reference Manual K-2015.06 281 Chapter 4: Database Extensions Parameters dbCopyParam The dbCopyParam command returns 1 if all parameters can be copied from one object to another. Syntax dbCopyParam -obj1 objId1 -obj2 objId2 Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -obj1 objId1 Specify the identifier of the source object. -obj2 objId2 Specify the identifier of the destination object. Examples dbCopyParam -obj1 $MasterId1 -obj2 $MasterId2 dbCreateParam The dbCreateParam command returns 1 if all parameters can be copied from one object to another. Syntax dbCreateParam -obj objId -name paramName [-promptName promptName] -type paramType [-value paramValue] [displayed 0|1] [-visible 0|1] [-editable 0|1] [-asTCL 0|1] [-asVarExpr 0|1] [-replace 0|1] [-hasdefault 0|1] Returns 1 if successful; otherwise, returns 0. Arguments 282 Argument Description -asTCL 0|1 Specify the switch mode of asTCL. Valid values: Boolean values, 0 and 1 (default=0). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameters Argument Description -asVarExpr 0|1 Specify the switch mode of asVarExpr. Valid values: Boolean values, 0 and 1 (default=0). -displayed 0|1 Specify the switch mode of the display setting. Valid values: Boolean values, 0 and 1 (default=0). -editable 0|1 Specify the switch mode of the editable setting. Valid values: Boolean values, 0 and 1 (default=0). -hasdefault 0|1 Specify the switch mode of the default setting. Valid values: Boolean values, 0 and 1 (default=0). -name paramName Specify the parameter name. -obj objId Specify the object identifier. -promptName promptName Specify the prompt name. -replace 0|1 Specify the switch mode of the replacement setting. Valid values: Boolean values, 0 and 1 (default=0). -type paramType Specify the parameter type. Valid values for Laker: Int, Float, String, and Boolean. Valid values for ADP: Int, Float, String, Radio, Cyclic, Boolean, Checkbox, , PccInt, PccFloat, PccString, PccBoolean, PccLpPair , Hidden, and PccUserPair. -value paramValue Specify the parameter value. This value depends on the -type option. -visible 0|1 Specify the switch mode of the visibility setting. Valid values: Boolean values, 0 and 1 (default=0). Examples # Example 1 dbCreateParam -obj $inst1 -name qaqa -promptName qaqa_prompt \ -type String -value aaaaaa -displayed 0 -visible 1 \ -editable 1 -asTCL 0 -asVarExpr 0 # Example 2 Laker³ Tcl Reference Manual K-2015.06 283 Chapter 4: Database Extensions Parameters dbCreateParam -obj $inst1 -name xxxx -promptName xxxx_prompt \ -type String -value xxxxxx -displayed 1 -visible 0 \ -editable 1 -asTCL 0 -asVarExpr 0 # Example 3 dbCreateParam -obj $rectId -name rect_A \ -promptName rect_prompt -type Hidden -value D -displayed 0 \ -visible 1 -editable 1 -asTCL 0 -asVarExpr 0 # Example 4 dbCreateParam -obj $instId -name inst_A \ -promptName inst_prompt -type Hidden \ -value aaa -displayed 0 -visible 1 -editable 1 \ -asTCL 0 -asVarExpr 0 dbDeleteParamByName The dbDeleteParamByName command returns 1 if the parameter can be deleted by giving a parameter name. Syntax dbDeleteParamByName -obj objId -name paramName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -name paramName Specify the parameter name. -obj objId Specify the object identifier. Valid values: Figure identifier, net identifier, port identifier, pin identifier, instance port identifier, and instance pin identifier. Examples dbDeleteParamByName -obj $inst2 -name aaa dbFindParam The dbFindParam command returns a parameter identifier if the parameter can be found by giving a parameter name. 284 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameters Syntax dbFindParam -obj cellId -name paramName Returns Parameter identifier if successful; otherwise, returns 0. Arguments Argument Description -name paramName Specify the parameter name. -obj cellId Specify the object identifier. Use dbGet -obj $cellId to get all parameter identifiers. Use dbGet -obj anyParamId to get the name of any parameters. Examples # Example 1 # Check find parameter by name puts $file "\n#####Check Find Parameter by Name#####" puts $file "#inst1's parameter:#" set tmp [dbFindParam -obj $inst1 -name xxxx] set P_Name [dbGet -obj $tmp -attr Name ] set P_Type [dbGet -obj $tmp -attr Type ] set P_ProName [dbGet -obj $tmp -attr PromptName ] set P_ParamType [dbGet -obj $tmp -attr ParamType ] set P_Value [dbGet -obj $tmp -attr Value ] set P_Visible [dbGet -obj $tmp -attr Visible ] set P_Editable [dbGet -obj $tmp -attr Editable ] set P_AsTCL [dbGet -obj $tmp -attr AsTCL ] set P_AsVarExpr [dbGet -obj $tmp -attr AsVarExpr ] set P_Displayed [dbGet -obj $tmp -attr Displayed ] set P_HasDefault [dbGet -obj $tmp -attr HasDefault ] puts $file "$P_Name $P_Type $P_ProName $P_ParamType $P_Value $P_Visible $P_Editable $P_AsTCL $P_AsVarExpr $P_Displayed $P_HasDefault" close $file # Example 2 set libId [dbOpenLib -lib analogADP -mode readOnly] set cellId [dbCellFind -lib analogADP -cell nmos] dbLoadCellCDF -cellId $cellId dbFindParam -obj $cellId -name trise dbFindParam -obj $cellId -name ls dbFindParam -obj $cellId -name ld dbFindParam -obj $cellId -name geo Laker³ Tcl Reference Manual K-2015.06 285 Chapter 4: Database Extensions Parameters dbLoadCellCDF The dbLoadCellCDF command loads the CDF data from a file (for example: data.dm) to memory. Syntax dbLoadCellCDF -cellId $cellId Returns None Arguments Argument Description -cellId $cellId Specify the cell view identifier. Examples dbLoadCellCDF -cellId $cellId See Also dbLoadLibCDF dbSaveCellCDF dbSaveLibCDF dbLoadLibCDF The dbLoadLibCDF command loads the CDF data from a library to memory. Syntax dbLoadLibCDF -lib $libId Returns None Arguments Argument Description -lib $libId Specify the library identifier. Examples dbLoadLibCDF -lib $libId 286 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameters See Also dbLoadCellCDF dbSaveCellCDF dbSaveLibCDF dbSaveCellCDF The dbSaveCellCDF command saves the CDF data from memory to a file (for example: data.dm). Syntax dbSaveCellCDF -cellId $cellId Returns None Arguments Argument Description -cellId $cellId Specify the cell view identifier. Examples dbSaveCellCDF -cellId $cellId See Also dbLoadCellCDF dbLoadLibCDF dbSaveLibCDF dbSaveLibCDF The dbSaveLibCDF command saves the CDF data from memory to a library. Syntax dbSaveLibCDF -lib $libId Returns None Laker³ Tcl Reference Manual K-2015.06 287 Chapter 4: Database Extensions General Object Manipulation Arguments Argument Description -lib $libId Specify the library identifier. Examples dbSaveLibCDF -lib $libId See Also dbLoadCellCDF dbLoadLibCDF dbSaveCellCDF General Object Manipulation This section describes the Tcl commands that are related to the manipulation on general objects. These commands include: 288 ■ dbAddChildToParent ■ dbArea ■ dbColorBackAnno ■ dbColorPropagation ■ dbDelete ■ dbGet ■ dbGetChild ■ dbGetLastModifyTime ■ dbGetParent ■ dbGetShapeDimension ■ dbIterateDB ■ dbIsDbObj ■ dbIterateLib ■ dbSelObjsByType ■ dbSet Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation dbAddChildToParent The dbAddChildToParent command returns 1 if there is a parent/child relationship between two objects. Syntax dbAddChildToParent -child objId1 -parent objId2 Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -child objId1 Specify the child object identifier. -parent objId2 Specify the parent object identifier. Examples set obj1 [dbCreateRect -cv $cvId -layer 1 -bbox (1.0,2.0)(3.5,4.2)] set obj2 [dbCreateRect -cv $cvId -layer 2 -bbox (3.3,4.4)(5.5,6.6)] dbAddChildToParent -child $obj2 -parent $obj1 dbArea The dbArea command estimates the area of pointed shapes. Syntax dbArea -cv cellviewId [-layer {layerName purposeName} {...}] [-fromlevel Level] [-tolevel Level] [-file fileName] dbArea -figs dbFig [-file fileName] Returns None Arguments Argument Description -cv cellviewId Specify the cell view identifier. Laker³ Tcl Reference Manual K-2015.06 289 Chapter 4: Database Extensions General Object Manipulation Argument Description -figs dbFig Specify the list of figures. -file fileName Save the measurement results to a specified file (*.log). The file path is printed in the message pane of the Home page. -fromlevel Level Specify the start level (default=current start level). Valid value: an integer (default=0). -layer {{layerName purposeName} {...} Specify the layer of the displayed shapes (default=layer of all displayed shapes). -tolevel Level Specify the view level (default=current view level). Valid value: an integer (default=0). Examples None See Also lakerArea dbColorBackAnno The dbColorBackAnno command returns 1 if all uncolored and unlocked shapes in the top cell can be scanned and their color attribute can be updated according to the attribute on the corresponding shapes in the color cell. Syntax Syntax 1: dbColorBackAnno {{-topLib libName -topCell cellName [topView viewName]} | -topCv cellViewId} Syntax 2: dbColorBackAnno {{-colorLib libName -colorCell cellName [colorView viewName]} | -colorCv cellViewId} Returns 1 if successful; otherwise, returns 0. 290 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Arguments Argument Description -colorCell cellName Specify the cell name of the color cell. -colorCv cellViewId Specify the cell view identifier of the color cell. -colorLib libName Specify the library name of the color cell. -colorView viewName Specify the view type of the color cell. The default is layout. -topCell cellName Specify the top cell name. -topCv cellViewId Specify the cell view identifier of the top cell. -topLib libName Specify the library name of the top cell. -topView viewName Specify a view type. The default is layout. Examples dbColorBackAnno -topCv CvId -colorLib libName -colorCell cellName dbColorPropagation The dbColorPropagation command returns 1 if locked shapes can be created on 0x for the unlocked shapes that are connected to the locked shapes but not fully covered by them. Syntax dbColorPropagation {{{-lib libName -cell cellName [-view viewName]} | -cv cellViewId} [-clearOnly] [mapToFullLock] } Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. Laker³ Tcl Reference Manual K-2015.06 291 Chapter 4: Database Extensions General Object Manipulation Argument Description -clearOnly When specified, only delete shapes created by dbColorPropagation. When not specified, delete shapes created by dbColorPropagation and regenerate the shapes according to the current design. This argument is off by default. -cv cellViewId Specify the cell view identifier. -lib libName Specify the library name. -mapToFullLock When specified, propagate the color by colored shapes. When not specified, propagate the color by locked shapes. This argument is off by default. -view viewName Specify a view type. The default is layout. Examples dbColorPropagation -cv [lakerGetWndCellViewId] dbDelete The dbDelete command returns 1 if the specified object can be deleted. Syntax dbDelete -obj objId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -obj objId Specify the object identifier. Valid values: Figure identifier, net identifier, port identifier, pin identifier, instance port identifier, and instance pin identifier. Examples set rectId [dbCreateRect -cv $cvId -layer 1 -bbox (0,0)(1,2)] dbDelete -obj $rectId 292 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation dbGet The dbGet command returns an attribute value if the attribute value of a certain object attribute can be obtained. The object attributes and their valid values are described in the following tables. Objects Attribute Names AppType appTypeName Arc All, AllNames, CV, Params, Props, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type Array All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Type, CellName, ColSpace, Cols, LibName, Mag, Master, Name, Orient, Point, RowSpace, Rows, ViewName, ParamContent CellView All, AllNames, CV, Props, Params, Type, Arrays, BBox, CellName, CellViewType, DBUPerUU, FileName, GroupMembers, Groups, InstCount, InstHeaders, Insts, IsModified, Lib, LibName, Masters, Mode, NetCount, Nets, Parameters, PortCount, Ports, Shapes, UserUnit, ViewName, LPs, UsedIn, RepType, UnneedAPR, opNets, ParamContent, SimInfos, OtherInfos CustomViaHeader All, AllNames, Params, Props, Type, Arrays, BBox, CellName, CellViewType, DBUPerUU, FileName, GroupMembers, Groups, InstCount, InstHeaders, Insts, IsModified, Lib, LibName, Masters, Mode, NetCount, Nets, PortCount, Ports, RepType, Shapes, UserUnit, ViewName, LPs, UsedIn Dot All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, Height, Point, Width, ParamContent Doughnut All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, Inner, Outer, Point, ParamContent, Color, Lock Laker³ Tcl Reference Manual K-2015.06 293 Chapter 4: Database Extensions General Object Manipulation 294 Objects Attribute Names Ellipse All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, ParamContent, Color, Lock Group Type, GroupType, Members, Name, Objects, ParamContent Group Member All, AllNames, CV, Params, Props, Type, Dir, Name, Net, NumBits, PinCount, Pins, JointType HET All, AllNames, CV, Props, Params, Type, InstPins, InstPortCount, InstPorts, Figs, Name, NameWithRange, NumBits, Pins, Port, Priority, DefShieldNetName, DefNetNondefRuleName, DefNetSource, DefOriginalNetName, DefNetUsage, DefNetProperty, Range, Step, ZeroBus, NetType, UserDefName, ParamContent Instance All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Type, CellName, InstHeader, InstPins, InstPorts, LibName, Mag, Master, Name, Num, Orient, Point, ViewName, DefCompSource, DefCompPlaceStatus, DefCompProperty, IsDefSpecialNetObj, DefShieldNetName, DefWireShape, ParamContent InstPin All, AllNames, CV, Props, Params, Type, BBox, InstPort, Name, Net, Pin, ParamContent InstPort All, AllNames, CV, Props, Params, Type, Inst, InstPins, Name, Net, NumBits, Port, IsWidthOK, IsDefSpecialNetObj, ParamContent InstHeader All, AllNames, CV, Props, Params, Type, CellName, Insts, Arrays, LibName, Master, ViewName, ParamContent Label All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, Font, Height, IsDrafted, IsOverbar, Justify, Orient, Point, Text, Spacing, LabelType, ParamContent Layer Name, Lib, LayerNum, PurposeNum, Stipple, OutlineColor, FillColor, LineStyle, Packet, Params, ParamContent LD Type, Layer, Purpose, ShapeNum, BBox Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Objects Attribute Names Lib Mode, Name, Scale, Resolution, Params, ParamContent Line All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, PointNum, Points, ParamContent LP All, AllNames, CV, Params, Props, BBox, Net, Parent, IsVisible, Pin, Type, CellName, InstHeader, InstPins, InstPorts, LibName, Mag, Master, Name, Num, Orient, Point, ViewName, DefCompSource, DefCompPlaceStatus, DefCompProperty, IsDefSpecialNetObj, DefShieldNetName, DefWireShape Net All, AllNames, CV, Params, Props, Type, Dir, Fig, Name, Net, Port, UserDefName, Range, IsBus, IsSingle, IsBundle Netlist All, AllNames, Name, namePrefix, termOrder Path All, AllNames, CV, Props, BBox, IsVisible, Net, Parent, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, BeginExt, EndExt, PointNum, Points, Style, Width, IsDefSpecialPin, DefPinPlaceStatus, DefPinPosition, DefPinOrient, IsDefSpecialNetObj, DefShieldNetName, DefWireShape, ParamContent, OutlinePoints, Status, Color, Lock Pin All, AllNames, CV, Props, Params, Type, Dir, JointType, Fig, Name, Net, Port, PortDir, Origin, ParamContent Polygon All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, PointNum, Points, IsDefSpecialPin, DefPinPlaceStatus, DefPinPosition, DefPinOrient, IsDefSpecialNetObj, DefShieldNetName, DefWireShape, ParamContent, Color, Lock Port All, AllNames, CV, Props, Params, Type, Dir, Name, Net, NumBits, PinCount, Pins, PortType, ParamContent Property All, AllNames, Type, Group, Object Laker³ Tcl Reference Manual K-2015.06 295 Chapter 4: Database Extensions General Object Manipulation Objects Attribute Names Rectangle All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Layer, LayerNum, Purpose, PurposeNum, Type, IsDefSpecialPin, DefPinPlaceStatus, DefPinPosition, DefPinOrient, IsDefSpecialNetObj, DefShieldNetName, DefWireShape, ParamContent, Color, Lock Route All, AllNames, CV, Props, Params, BBox, Net, Parent, IsVisible, Pin, Purpose, PurposeNum, Type, IsSpecial, Status, Topology, Spec, Color, Lock RowArea Type, BBox, Points siteDef All, AllNames, Type, Name, SiteDefType, Width, Height, IsSymmX, IsSymmY, IsSymmRot, IsVirtual StdViaHeader Mode, Name, Scale, Resolution If -attr All is specified, all attribute values of the specified object are returned. If -attr AllNames is specified, all attribute names that belong to the specified object are returned. The following table represents the valid values of each attribute. 296 Attribute Name Valid Values appTypeName Any name strings. Arrays A list of identifiers of arrays. BBox abcd (a, b)(c, d) {{a b}{c d}} BeginExt A positive floating number. beginPoint, endPoint A point. beginStyle, endStyle {Truncate}, {Extend}, {Variable Ext}, {Chamfer}, {Custom Ext LefDiagExt RightDiagExt RightHalfWidth} CellName A cell name which is a string. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values CellViewType maskLayout, schematicSymbol, schematic, netlist, state, stranger, vhEntityHier, vhEntityData, vhArchHier, vhArchData, vhConfHier, vhConfData, vhPackHier, vhPackBodyData, vhPackData. Color String. Color value, 0-7 Cols A positive integer. ColSpace A floating number. CustomVia {CustomVia DefName {Origin} Orient ViaHeader Master} Example: {CustomVia Via23 {-445.900 240.125} R0 3aa6758 36e800c} cutColumns, cutRows A postive integer. cutPattern {1 0 1 ... } where the number of 0/1 sequence is cutColums*cutRows. cutPattern is optional if all specified values are 1. cutWidth, cutHeight A floating number. CV A cell view identifier. DBUPerUU A floating number. DefCompPlaceStatus Place status of the input component: FIXED, COVER, PLACED, UNPLACED. DefCompProperty DEF property string of the input component. DefCompSource Source type of the input component: NETLIST, DIST, USER, TIMING. DefName Name of via definition. DefNetNondefRuleName The non-default rule used by the input net. Laker³ Tcl Reference Manual K-2015.06 297 Chapter 4: Database Extensions General Object Manipulation 298 Attribute Name Valid Values DefNetProperty DEF property string of the input net. DefNetSource Source type of the input net: NETLIST, DIST, USER, TIMING, TEST. DefNetUsage Usage of the input net: ANALOG, CLOCK, GROUND, POWER, RESET, SCAN, SIGNAL, TIEOFF. DefOriginalNetName The original net of the input net. DefPinOrient Orientation: R0, R90, R180, R270, MXR0, MXR90, MYR0, MYR90. DefPinPlaceStatus Place status of the input pin: FIXED, COVER, PLACED, UNPLACED. DefPinPosition (a,b), a b, {a b} DefShieldNetName For “Net” object type, this specifies the net shielding the input net. For other object types, this specifies the net shielded by the input object. DefWireShape Wire shape type of the input object: RING, PADRING, BLOCKRING, STRIPE, FOLLOWPIN, IOWIRE, OREWIRE, BLOCKWIRE, BLOCKAGEWIRE, FILLWIRE, DRCFILL. DeleteWhen Never, First, Last. Dir (access direction of a pin) Single value: Left, Right, Top, Bottom. Multiple values: Value string with braces, like {Left Top} or {Left Bottom Right}. Dir (port direction) Input, Output, InputOutput, Jumper, Feedthrough. ElementId A list of identifiers of route objects. EllipseBBox An ellipse bounding box (the same as BBox). EndExt A positive floating number. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values Ext LefDiagExt RightDiagExt RightHalfWidth A floating number. Figs A list of identifiers of figures. FileName A file name. FillColor Fill color. Font Modern, Fixed, Raster, Modern1, Script, Roman, TTAGth, TTARoman, TTASlab. Group A group identifier. GroupMembers A list of identifiers of group members. Groups A list of identifiers of groups. GroupType Set, Collect. Height A positive floating number. Inner A positive floating number. InstCount A positive integer. InstHeader Identifier of an instance header. InstHeaders A list of identifiers of instance headers. InstPins A list of identifiers of instance pins. InstPort Identifier of an instance port. InstPortCount A positive integer. InstPorts A list of identifiers of instance ports. Insts A list of identifiers of instances. IsBundle 0, 1 Laker³ Tcl Reference Manual K-2015.06 299 Chapter 4: Database Extensions General Object Manipulation 300 Attribute Name Valid Values IsBus 0, 1 IsDefSpecialNetObj 0, 1 IsDefSpecialPin 0, 1 IsDrafted 0, 1 IsModified 0, 1 IsOrdered 0, 1 IsOverbar 0, 1 IsSingle 0, 1 IsSpecial 0, 1 IsSymmRot 0, 1 IsSymmX 0, 1 IsSymmY 0, 1 IsUniqueName 0, 1 IsVirtual 0, 1 IsVisible 0, 1 JointType Disjointed, Strong, Weak. Justify UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, LowerRight. LabelType Normal, Annotate, Comment. Layer 0~255 or a layer name. Layer1, Layer2, cutLayer The same as Layer. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values layer1Enclosure, A pair of floating numbers. layer2Enclosure, implant1Enc, implant2Enc, layer1Offset, layer2Offset, originOffset, cutSpacing Layer1Num, Layer2Num, The same as LayerNum. cutLayerNum LayerNum 0~255 Lib A library identifier. LibName Logical name of a library. LineStyle Line style. List of Params {layer1Enclosure}{layer2Enclosure}{implant1Enc} {implant2Enc}{layer1Offset}{layer2Offset} {originOffset}{cutSpacing} cutLayer cutLayerNum cutPurpose cutPurposeNum cutWidth cutHeight cutColumns cutRows {cutPatterns} Example: {{0.600 0.600} {0.600 0.600} {0.000 0.000} {0.000 0.000} {0.000 0.000} {0.000 0.000} {0.000 0.000} {0.450 0.450} VIA12 17 drawing 252 0.5 0.5 15 15} Lock String. Mag A floating number. Master Identifier of a master cell view. Masters A list of identifiers of master cellviews. Members A list of identifiers of members. Mode create, edit, readOnly Name Object name. Laker³ Tcl Reference Manual K-2015.06 301 Chapter 4: Database Extensions General Object Manipulation 302 Attribute Name Valid Values NameWithRange Object name with range (only useful for nets). Net A net identifier or 0. NetCount A positive integer. Nets A list of identifiers of declaration nets. NumBits An integer. opNets A list of identifiers of operation nets. Obj An object identifier. Object An object identifier. Objects A list of identifiers of objects. Orient Orientation: R0, R90, R180, R270, MXR0, MXR90, MYR0, MYR90. Origin A point value, for example: (x,y). OtherInfos All other information. Outer A positive floating number. OutlineColor Outline color. OutlinePoints Coordinate points of the path outline, path segment outline, or via. Packet Display group. Params Type, Name, PromptName, ParamType, Value, Visible, Editable, AsTCL, AsVarExpr, Displayed, HasDefault, CellView, Instance, InstHeader, Array, Rectangle, Polygon, Line, Path, Label, Arc, Ellipse, Doughnut, Dot, Net, Port, Pin, Instance Port, Instance Pin, Route, CustomViaHeader, StdViaHeader Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values PathSeg {PathSeg LayerNum {beginPoint} {endPoint} width {beginStyle} {endStyle}} Example: {PathSeg 28 {-192.500 296.025} {-192.500 297.325} 0.6 {Extend} {Extend}} Pin A pin identifier or 0. PinCount A positive integer. Pins A list of identifiers of pins. Point A point. PointNum A positive integer. Points A list of points. PortCount A positive integer. Ports A list of identifiers of ports. PortType Unknown, Data, Clock, SyncSet, SyncReset, AsyncSet, AsyncReset, Control, TriEnable, ComboOutput, TriOutput, Latched, Registered, InferLatch, FSMControl, FSMOutput, OffPageConn, Hidden. If the PortType is not defined, the return value is "UnknownPort {}". Priority 0~127 Props A list of identifiers of properties. Purpose 0~255 or a purpose name. Purpose1, Purpose2, cutPurpose The same as Purpose. Purpose1Num, Purpose2Num, cutPurposeNum The same as PurposeNum. Laker³ Tcl Reference Manual K-2015.06 303 Chapter 4: Database Extensions General Object Manipulation 304 Attribute Name Valid Values PurposeNum 0~255 Range <bus range>, for example: <0:5> RepType UnknownCell, NotCell, OrCell, AndCell, NorCell, NandCell, BufCell, XorCell, XNorCell, AOICell, OAICell, ComboCell, MacroCell, TriBufCell, InBufCell, OutBufCell, TriCell, FlipFlopCell, LatchCell, DelayCell, MosCell, InputPadCell, OutputPadCell, InoutPadCell, GroundPadCell, PowerPadCell, IOCell, PullUpCell, PullDownCell, BusRepeaterCell, FpgaRamCell, FpgaRomCell, InternalRamCell, InternalRomCell, InternalAsycCell, ExternalRamCell, ExternalRomCell, MuxCell, CpmCell, DecoderCell, AdderCell, MulCell, DivCell, SubCell, AssignCell, OpCell, ConnectorCell, FSMCell, InitCell, EQCell, GenerateCell, UserCell, InfLatchCell, GlobalSignalCell, TranCell, FlipFlopGroupCell, ConcatCell, BusKeeperCell, BiDirectionCell, FlipFlopResetGroupCell, LatchGroupCell, LatchResetGroupCell, GateClkCell, RipperCell, BusSplitterCell, MacroGroupCell, BufGroupCell, NotGroupCell, LogoCell, Bd2scrCell, Bt2crpCell, SchmitcdqCell, Bd2crdqpCell, Bd2hzicaruqpCell, BdstardqpCell, SheetCell, TerminatorCell, NMosCell, PMosCell, DiodeCell, NPNCell, PNPCell, NJFCell, PJFCell, ResCell, CapCell, IndCell, SubcktCell, VoltageSource, CurrentSource, VCVSource, VCCSource, VCResistor, VCCapacitor, CCVSource, CCCSource, OpAmpCell, TransformerCell, BVSource, BCSource, MutualIndCell Resolution The resolution of the cell view in the library. Rows A positive integer. RowSpace A floating number. Scale dbScale. ShapeCount A positive integer. ShapeNum A positive integer. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values Shapes A list of identifiers of shapes. SimInfos All netlist information. SiteDefType Core, Pad Spec The Spec name of routes. When SpecValue is NULL, the Spec value in $routeId is cleared. StartAngle A floating number. Status Normal, Cover, Fixed, Routed, Shield, NoShield StdVia {StdVia DefName {Origin} Orient ViaHeader Master} Stipple Stipple pattern. StopAngle A floating number. Style Truncate, Extend, Round, Variable Text A string. Topology None, Ring, PadRing, BlockRing, Stripe, FollowPin, IOWire, CoreWire, BlockWire, BlockageWire, FillWire, DrcFill Type Array, Arc, ArrayInst, Cell view, Instance, InstanceHeader, Dot, Doughnut, Ellipse, Label, Line, Path, Polygon, Rectangle, InstPort, Port, InstPin, Pin, Net, Property, Group, RowArea, dbSiteDef, GroupMember, LP, Route, CustomViaHeader, StdViaHeader, 0|1 (if return value=0, then UnneedAPR=FALSE; if return value=1, then UnneedAPR=TRUE). Type (for NetType) SIGNAL, GROUND, SUPPLY, GLOBAL. UsedIn A list of cell view identifiers. Laker³ Tcl Reference Manual K-2015.06 305 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values UserDefName 0, 1 Returns 1 when the net is a user-defined net. Returns 0 when the net is not a user-defined net. UserUnit micro, millimeter, centimeter, meter, mil, inch. Value A property value which may be 0, 1, a string, an integer, a floating number, or an identifier. ValueType Integer, Float, String, Boolean, HierProp. ViaHeader Identifier of a via header. ViewName A view name. Width A positive floating number. Syntax dbGet -obj objId [-attr attrName] [-attType attType] Returns An attribute value if successful; otherwise, returns nothing. Arguments 306 Argument Description -attr attrName Specify the attribute name (default=All). -attType attType Specify the attribute type. Valid values: original, and user. -obj objId Specify the object identifier. Valid values: cell view identifier, instance identifier, instance header identifier, array identifier, rectangle identifier, polygon identifier, line identifier, path identifier, label identifier, arc identifier, ellipse identifier, doughnut identifier, dot identifier, parameter identifier, property identifier, group identifier, group member identifier, net identifier, netlist identifier, pin identifier, port identifier, instance port identifier, instance pin identifier, route identifier, library identifier, layer identifier, and via header identifier. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Examples # Example 1 dbGet -obj $cvId dbGet -obj $cvId -attr BBox dbGet -obj $rectId -attr AllNames dbGet -obj $rectId -attr All dbGet -obj $instId -attr DefCompSource dbGet -obj $rectId -attr DefPinPlaceStatus dbGet -obj $polyId -attr DefPinPosition dbGet -obj $pathId -attr DefPinOrient dbGet -obj $netId -attr DefNetUsage dbGet -obj $instPortId -attr IsDefSpecialNetObj # Example 2 # Return value: 0.0001 dbGet -obj $libId -attr Scale # Example 3 # Return value: 0.005 dbGet -obj $libId -attr Resolution # Example 4 set workLib [dbOpenLib -lib def] set layers [dbGetLayerIdsByLib -lib $workLib] foreach layer $layers { lakerMessage [dbGet -obj $layer] } # Example 5 dbGet -obj $PropId -attr Value #(a) When this Prop's value Type are LpPair, UserPair return # {layerNum purposeNum} #(b) When this Prop's value Type is Time return # {Mar 31 12:50:30 2005} #(c) When this Prop's value Type is Boolean return # 0 or 1 #(d) Other supported types: String, Int, Float, DBId. #(e) Not supported types: HierProp, BString. # Example 6 # For JointType dbGet -obj $pinId -attr JointType # The return value is one of {Disjointed, Strong, Weak} Laker³ Tcl Reference Manual K-2015.06 307 Chapter 4: Database Extensions General Object Manipulation # Example 7 # For AccessDirection dbGet -obj $pinId -attr Dir -value Value # (1) When Value is a single value, # then the Value is one of the following four strings # Top, Buttom, Left, Right # For example: # dbGet -obj $pinId -attr Dir > Top # (2) When Value is a multiple value, # then the Value is composed string with braces of the following # four strings Top, Buttom, Left, and Right # For example: # dbGet -obj $pinId -attr Dir > {Top Bottom} # Example 8 # For pinType(PortDirType) dbGet -obj $pinId -attr PortDir # The return value is one of # {Input, Output, InputOutput, Jumper, Feedthrough} # Example 9 # When SpecValue=="NULL", it clears the Spec Value in $routeId. dbSet -obj $routeId -attr Spec -value SpecValue # Example 10 # this returns 0|1 dbGet -obj $pathSegId -attr IsSpecial # Example 11 foreach rowarealist [dbGet -obj $cvId -attr RowArea] { dbGet -obj $rowarealist -attr Type > return Type(RowArea) dbGet -obj $rowarealist -attr BBox dbGet -obj $rowarealist -attr Points } # the results are: # Row (Type) : RowArea # Row (BBox) : {{0.195 0.170} {70.150 54.365}} # Row (Points): {0.195 0.170} {70.150 0.170} {70.150 54.365} # {0.195 54.365} # # # # 308 Example 12 If -attr = " " or "All" or no -attr option, all of the RowArea related information is returned. But if -attr = ALL, no results are returned. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation set Ans [dbGet -obj $rowarealist] puts $file "Row (no -attr) : $Ans " set Ans [dbGet -obj $rowarealist -attr ] puts $file "Row ( ) : $Ans " set Ans [dbGet -obj $rowarealist -attr All] puts $file "Row (All) : $Ans " set Ans [dbGet -obj $rowarealist -attr ALL] puts $file "Row (ALL) : $Ans " # # # # # # # # # # # # # # # # # the results are: Row (no -attr): Type: RowArea BBox: {{0.195 0.170} {70.150 54.365}} Points: {{0.195 0.170} {70.150 0.170} {70.150 54.365} {0.195 54.365}} ParamContent: Row ( ) : Type: RowArea BBox: {{0.195 0.170} {70.150 54.365}} Points: {{0.195 0.170} {70.150 0.170} {70.150 54.365} {0.195 54.365}} ParamContent: Row (All) : Type: RowArea BBox: {{0.195 0.170} {70.150 54.365}} Points: {{0.195 0.170} {70.150 0.170} {70.150 54.365} {0.195 54.365}} ParamContent: Row (ALL) : # Example 13 # get AppType dbSet -obj $id -attr AppType -value appTypeName # # # # # # # # # # # # # # # # Example 14 1. Get drawing pattern (stipple, outline color, fill color, line style, display group) by layerID: dbGet -obj layerId -attr Stipple dbGet -obj layerId -attr LineStyle dbGet -obj layerId -attr FillColor dbGet -obj layerId -attr OutlineColor dbGet -obj layerId -attr Packet 2. If drawing pattern of one layer is a display group, use the command dbGetDispGroupInfo -disp $dispGroup to get the attribute string/list of the group. Attribute string: { fillColor stipple outColor lineStyle } 3. The stipple settings to Tcl interpreter by their names defined in display file. 4. The color settings to Tcl interpreter as a Tcl variable array. The indices are the color names defined in display file. Laker³ Tcl Reference Manual K-2015.06 309 Chapter 4: Database Extensions General Object Manipulation # Ex. LayerColor(winColor0) # 5. The line style settings to Tcl interpreter as a Tcl variable # array. # The indices are the line style names defined in display file. # Ex. LayerLine(dots) # 6. The line width can be got by the following command # dbGetLineStyleWidth -lineStyle $lineStyle # 7. "Solid" line style is a special case. # When LayerLine($lineStyle) is empty, that means the line # is solid type. # 8. "bigX" stipple is a special case. Remember to draw "X" # by lines. # 9. In Tk, if the line width > 1, the drawing results of lines # may look different from Laker layer table. # That is because the line expands and the spaces between # segments are shrunk. 92109.gif is for reference. # # Sample Tcl script: # #!/usr/bin/wish # Creation d'un nouveau canvas wm deiconify . canvas .can -width 610 -height 610 -background "#C0C0C0" pack .can set set set set set set set cvId [lakerGetWndCellViewId] libName [dbGet -obj $cvId -attr LibName] layerList [dbGetLayerIdsByLib -lib $libName] x1 10 x2 40 y1 10 y2 40 foreach layer $layerList { set dispGroup [dbGet -obj $layer -attr Packet] if { 0 == [string length $dispGroup] } { set stipple [dbGet -obj $layer -attr Stipple] set lineStyle [dbGet -obj $layer -attr LineStyle] set fillColor [dbGet -obj $layer -attr FillColor] set outColor [dbGet -obj $layer -attr OutlineColor] } else { set grpPattern [dbGetDispGroupInfo -disp $dispGroup] set stipple [lindex $grpPattern 1] set lineStyle [lindex $grpPattern 3] set fillColor [lindex $grpPattern 0] set outColor [lindex $grpPattern 2] } set lineWidth [dbGetLineStyleWidth -lineStyle $lineStyle] set box "$x1 $y1 $x2 $y2" # LineStyle: solid type if { 0 == [string length $LayerLine($lineStyle)] } { 310 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation .can create rectangle $box -stipple $stipple \ -fill $LayerColor($fillColor) \ -outline $LayerColor($outColor) \ -width $lineWidth # Stipple: bigX type if { 0 == [string compare $stipple "bigX"] } { .can create line $x1 $y1 $x2 $y2 -fill \ $LayerColor($fillColor) -width $lineWidth .can create line $x1 $y2 $x2 $y1 -fill \ $LayerColor($fillColor) -width $lineWidth } } else { .can create rectangle $box -stipple $stipple \ -fill $LayerColor($fillColor) \ -outline $LayerColor($outColor) \ -dash $LayerLine($lineStyle) -width $lineWidth # Stipple: bigX type if { 0 == [string compare $stipple "bigX"] } { .can create line $x1 $y1 $x2 $y2 -fill \ $LayerColor($fillColor) -dash \ $LayerLine($lineStyle) -width $lineWidth .can create line $x1 $y2 $x2 $y1 -fill \ $LayerColor($fillColor) -dash \ $LayerLine($lineStyle) -width $lineWidth } } set x1 [expr $x1+40] set x2 [expr $x1+30] if { $x2 > 610 } { set y1 [expr $y1+40] set y2 [expr $y1+30] if { $y2 > 610 } break set x1 10 set x2 40 } } # output of the above Tcl script: Laker³ Tcl Reference Manual K-2015.06 311 Chapter 4: Database Extensions General Object Manipulation # Example 15 set a [dbIterLib -lib $libId -attr siteDef] foreach objId $a { set g2 [dbGet -obj $objId -attr Type] set g4 [dbGet -obj $objId -attr SiteDefType] } # the results are: # g2 = SiteDef # g4 = Core # Example 16 set lib "path" dbCreateLib -lib $lib set cvid [dbOpenCV -lib $lib -cell top -mode create] set ph [dbCreatePath -cv $cvId -layer 8 -purpose 252 \ -point (0,10) (30,10) -width 2 -style Variable -begExt 1 -endExt 1] .... puts "Type:[dbGet -obj $path -attr Type]" puts "Status:[dbGet -obj $path -attr Status]" dbSaveCV -cv $cvId dbCloseCV -cv $cvId dbCloseLib -lib $lib # The results are: # Type:Path # Status:Shield # Example 17 set list [dbIterateDB -cv $cv -attr LD] foreach ob $list { set L [dbGet -obj $ob -attr Layer] set P [dbGet -obj $ob -attr Purpose] 312 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation set S [dbGet -obj $ob -attr ShapeNum] set B [dbGet -obj $ob -attr BBox] puts "LP($L $P) ShapeNum($S) BBox:$B" } # # # # The results are: LP(8 252) ShapeNum(2) BBox:{{-200.000 -200.000} {100.000 100.000}} LP(9 253) ShapeNum(1) BBox:{{100.000 100.000} {200.000 200.000}} # Example 18 # The return value is origin (-500,500) dbSet -obj $PinId -attr Origin -value (-500,500) set gorigin [dbGet -obj $PinId -attr Origin] # Example 19 # The return value is one of {Normal, Annotate, Comment} dbGet -obj $labelId -attr LabelType # Example 20 # The return value is one of {SIGNAL, GROUND, SUPPLY, GLOBAL, ""} # If the return value = "", it means NetType = Unknown dbGet -obj $netId -attr Type # Example 21 # The return value is one of dbRepType {NotCell, OrCell..} dbGet -obj $cvId -attr RepType # Example 22 dbGet -obj $cvId -attr Type # If the return value=0, it means UnneedAPR = FALSE. # If the return value=1, it means UnneedAPR = TRUE. # Example 23 dbSet -obj $SNetId -attr UserDefName -value 1 ##return :1 dbGet -obj $SNetId -attr UserDefName ##return :1 dbSet -obj $VNetId -attr UserDefName -value 0 ##return :1 dbGet -obj $VNetId -attr UserDefName ##return :0 # Example 24 # Return the PortType of $portId dbSet -obj $DPortId -attr PortType -value AsyncReset #return: 1 dbGet -obj $DPortId -attr PortType #return:AsyncReset dbSet -obj $GPortId -attr PortType -value Clock dbGet -obj $GPortId -attr PortType #return: 1 #return: Clock # If the PortType of this PortId is not defined, return: UnknownPort {} dbGet -obj $NPortId -attr PortType Laker³ Tcl Reference Manual K-2015.06 313 Chapter 4: Database Extensions General Object Manipulation # Example 25 # Get the declaration netId (DeclaNetId) that can only be used # to find the reference of the netId dbGet -obj $CellId -attr Nets # Get the operation netId (OpNetId) that can be used in the following # application (DeclaNetId vs. OpNetId). For example, there are two # opNetIds A[0:1]:0x1234 and A[2:3]:0x2468; # but they have the common DeclaNetId A[0:3]:0x5678; # the DeclaNetId can get the two opNetIds. dbGet -obj $CellId -attr opNets # Example 26 # To get the path outline coordinate with given pathId # result: OutlinePoints:{{-1.000 9.000} {31.000 11.000}} set lib "path" dbCreateLib -lib $lib set cvid [dbOpenCV -lib $lib -cell top -mode create] set ph [dbCreatePath -cv $cvid -layer 8 -purpose 252 \ -point (0,10) (30,10) -width 2 -style Variable -begExt 1 -endExt 1] set ans [dbGet -obj $ph -attr OutlinePoints] puts "OutlinePoints:$ans" dbSaveCV -cv $cvid dbCloseCV -cv $cvid dbCloseLib -lib $lib # Example 27 # Use the "ElementId" attribute to get Ids of route objects, and then # use the "OutlinePoints" attribute to get the outline points for PathSegId or # ViaId (the boundary points of via’s bbox for ViaId) puts "[dbGet -obj routeId -attr Type]" > Route set id [dbGet -obj routeId -attr ElementId] foreach ob $id { puts "type :[dbGet -obj $ob -attr Type]" puts "op :[ dbGet -obj $ob -attr OutlinePoints]" } >type :PathSeg >op :{197.530 389.900} {197.530 662.900} \ > {197.810 662.900} {197.810 389.900} >type :CustomVia >op :{{197.450 662.620} {197.450 662.900} \ > {197.890 662.900} {197.890 662.620}} 314 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation # Example 28 # Get all attributes/values for a paramId dbGet -obj $paramId [-attType original] # Example 29 # Get one attribute/value for a paramId dbGet -obj $paramId -attr attName [-attType user] # Example 30 # Show all netList information dbGet -obj $cellId -attr SimInfos # Example 31 # show all other information dbGet -obj $cellId -attr OtherInfos # Example 32 # Return a value for the netlistId dbGet -obj $netlistId -attr namePrefix [-attType original] # Example 33 # Output the netlist name dbGet -obj $netlistId -attr Name # Example 34 set shape [lakerGetSelSet] dbGet -obj $shape -attr Color # Example 35 set shape [lakerGetSelSet] dbGet -obj $shape -attr Lock dbGetChild The dbGetChild command is used to get all child objects that belong to the specified parent object. Syntax dbGetChild -obj objId Returns The list of child objects that belongs to the specific parent object if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 315 Chapter 4: Database Extensions General Object Manipulation Arguments Argument Description -obj objId Specify the parent object. Examples dbGetChild -obj $parentId See Also dbAddChildToParent dbGetParent dbGetLastModifyTime The dbGetLastModifyTime command returns the time information if the last modified time of the specified library or cellview can be obtained. Syntax dbGetLastModifyTime -lib libName|libId [-cell cellName [-view viewName]] Returns The time information (for example: "Mon Dec 15 11:11:11 2008") if successful; otherwise, returns nothing. Arguments 316 Argument Description -cell cellName Specify the cell name. -lib libName|libId Specify the library name or library identifier. -view viewName Specify the view name (default=layout). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Examples # Library ZZ is created and saved at 15 Dec, 2008 11:11:01 # Cell KK in library ZZ is created and saved at 15 Dec, 2008 11:11:11 # Example 1 # If the library ZZ or cell KK is not opened, return the time # information from disk # return the last modified time of library ZZ: # “Mon Dec 15 11:11:01 2008” dbGetLastModifyTime -lib ZZ # return the last modified time of cell KK: # “Mon Dec 15 11:11:11 2008” dbGetLastModifyTime -lib ZZ -cell KK # Example 2 # If the library ZZ or cell KK is opened but not modified, # return the time information from the opening design # If library ZZ is opened with readOnly mode and it is not modified, # return the last modified time of library ZZ: # “Mon Dec 15 11:11:01 2008” dbGetLastModifyTime -lib ZZ # If cell KK in library ZZ is opened with readOnly mode and # it is not modified, return the last modified time of cell KK: # “Mon Dec 15 11:11:11 2008” dbGetLastModifyTime -lib ZZ -cell KK # Example 3 # If library ZZ is opened with edit mode and it is not modified, # return the current system time of library ZZ: # “Tue Dec 16 15:48:02 2008” dbGetLastModifyTime -lib ZZ # If cell KK in library ZZ is opened with edit mode and # it is not modified, return the last modified time of cell KK: # “Mon Dec 15 11:11:11 2008” dbGetLastModifyTime -lib ZZ -cell KK # Example 4 # If library ZZ is opened with edit mode and it is modified, # return the current system time of library ZZ: # “Tue Dec 16 15:48:02 2008” dbGetLastModifyTime -lib ZZ # If cell KK in library ZZ is opened with edit mode and # it is modified, return the current system time of cell KK: # “Tue Dec 16 15:48:02 2008” dbGetLastModifyTime -lib ZZ -cell KK Laker³ Tcl Reference Manual K-2015.06 317 Chapter 4: Database Extensions General Object Manipulation dbGetParent The dbGetParent command is used to get the parent object for the specified child object. Syntax dbGetParent -obj objId Returns The parent object idenfiers if successful; otherwise, returns nothing. Arguments Argument Description -obj objId Specify the child object. Examples dbGetParent -obj $childId See Also dbAddChildToParent dbGetChild dbGetShapeDimension The dbGetShapeDimension command returns the area or perimeter of the shape if Area or Perimeter is specified. This command returns 0 if the shape is not a legal shape. Syntax dbGetShapeDimension -obj objId -attr attrName Returns If successful, the Area option returns the area of the shape. The Perimeter option returns the perimeter of the shape. Otherwise, 0 is returned if the shape is not a legal shape. 318 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Arguments Argument Description -attr attrName Specify the attribute name. Valid values: Area and Perimeter. -obj objId Specify a general identifier. Examples dbGetShapeDimension -obj $PolygonId -attr Area See Also Layout Window: Query > Measure > Area Layout Window: Query > Measure > Perimeter dbIterateDB The dbIterateDB command works as dbGen which generates the data of the design library. Syntax dbIterateDB [-cv cellviewId] -attr attrName Returns If -cv is not specified but -attr cellview is specified, all DB cell views that were opened in memory are returned. If -attr is not specified or -attr " " is specified, all of the dbIterateDB related information is returned. Arguments Argument Description -attr attrName Specify the attribute of the dbIterateDB related information. Valid values: Type, cellview, Row, and LD. -cv cellviewId Specify the cell view identifier. Examples # Example 1 # Return all DB cell views opened in the memory Laker³ Tcl Reference Manual K-2015.06 319 Chapter 4: Database Extensions General Object Manipulation # Example 2 # Return all row Ids in the specified DB cell view dbIterateDB -cv $cvId -attr Row # Example 3 #set b0 [dbIterateDB] # TCLError #set b2 [dbIterateDB -attr Type] # TCLError #set b3 [dbIterateDB -attr Row] # TCLError set b1 [dbIterateDB -attr cellview] set b4 [dbIterateDB -cv $cvId -attr Type] set b5 [dbIterateDB -cv $cvId -attr Row] foreach rowlist $b5 { set h3 [dbGet -obj $rowlist -attr AllNames] set h4 [dbGet -obj $rowlist -attr Type] set h5 [dbGet -obj $rowlist -attr RowName] set h6 [dbGet -obj $rowlist -attr SiteOrigin] set h7 [dbGet -obj $rowlist -attr RowOrient] set h8 [dbGet -obj $rowlist -attr NumSites] set h9 [dbGet -obj $rowlist -attr SiteSpacing] set h10 [dbGet -obj $rowlist -attr RowArea] } # The results are: # a1 = a243c18 # a4 = dbIterateDB # a5 = a247d20 a247d00 a247ce0 a247cc0 a247ca0 ... # h3 = Type RowName SiteDefName SiteOrigin RowOrient NumSites # SiteSpacing RowArea ParamContent # h4 = Row # h5 = Row_:8 # h6 = 7 # h7 = {0.195 35.450} # h8 = 105 # h9 = 0 # h10= a245800 # h3 = Type RowName SiteDefName... # Example 4 # Return the layer and purpose pair of the specified cell view dbIterateDB -cv $cvId -attr LD 320 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation # Example 5 set list [dbIterateDB -cv $cv -attr LD] foreach ob $list { set L [dbGet -obj $ob -attr Layer] set P [dbGet -obj $ob -attr Purpose] set S [dbGet -obj $ob -attr ShapeNum] set B [dbGet -obj $ob -attr BBox] puts "LP($L $P) ShapeNum($S) BBox:$B" } # The results are: # LP(8 252) ShapeNum(2) BBox:{{-200.000 -200.000} {100.000 100.000}} # LP(9 253) ShapeNum(1) BBox:{{100.000 100.000} {200.000 200.000}} dbIsDbObj The dbIsDbObj command returns 1 if the general identifier is a dbObject. Syntax dbIsDbObj -obj objId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -obj objId Specify a general identifier. Examples dbIsDbObj -obj [dbOpenCV -lib cpu -cell cpu] dbIsDbObj -obj 123456 dbIterateLib The dbIterateLib command works as dbGen which generates the data of the design library. Syntax dbIterateLib -lib libName [-attr attrName] Laker³ Tcl Reference Manual K-2015.06 321 Chapter 4: Database Extensions General Object Manipulation Returns If -attr is not specified or -attr " " is specified, all of the dbIterateLib related information is returned. Arguments Argument Description -attr attrName Specify the attribute of the dbIterateLib related information. Valid values: Type, siteDef, cell, view, and cellview. -lib libName Specify the library name or library identifier. Examples # Example 1 set a0 [dbIterateLib -lib $libId -attr Type] set a1 [dbIterateLib -lib $libId -attr Type] set a2 [dbIterateLib -lib $libId -attr siteDef] set a3 [llength [dbIterateLib -lib $libId -attr cell]] set a4 [llength [dbIterateLib -lib $libId -attr view]] set a5 [llength [dbIterateLib -lib $libId -attr cellview]] # # # # # # # # # # the results are: a0 = Type: dbIterateLib siteDef: a074000 cell: a06e010 9f56c60 9f56c00 a146a00 a06d890 9f56c30 ... view: 9f56a40 9f56950 9f56a10 ... cellview: a0b0700 a00eb00 a008940 9f57080 ... a1 = dbIterLib a2 = 9f60800 a3 = a071810 9f69460 9f69400 a14a200 a071090 ... a4 = 9f69240 9f69150 9f69210 9f69030 9f69270 ... a5 = a0b3f00 a012300 a00c140 9f69880 9fdda80 ... dbSelObjsByType The dbSelObjsByType command returns a list of object identifiers if the objects from a list of specified object identifiers can be selected by giving an object type. Syntax dbSelObjsByType -objs objIds -type objType Returns A list of object identifiers if successful; otherwise, returns nothing. 322 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Arguments Argument Description -objs objIds Specify a list of object identifiers. -type objType Specify the desired object type. Valid values: CellView, Instance, InstHeader, Array, Rectangle, Polygon, Line, Path, Label, Arc, Ellipse, Dot, Property, Group, GroupMember, Net, Port, Pin, InstPort, and InstPin. Examples # please use the technology file under "demo" directory and # make sure the file name is changed to "laker.tf" lakerNewLib -lib GEN_OBJ -tech laker.tf # create a library "GEN_OBJ" with tech file "laker.tf" # value returned: null set libId [dbOpenLib -lib GEN_OBJ ] # open the library created. # value returned: an id , ex "264780c" set cvId [dbOpenCV -lib $libId -cell cell -mode create -view layout] # create a cell in library "GEN_OBJ" with layout view # value returned: an id , ex "264680c" set rect1 [dbCreateRect -cv $cvId -layer 16 -bbox (1,1) (5,5) ] # create a rectagle # value returned: an id , ex "2646844" set rect2 [dbCreateRect -cv $cvId -layer 16 -bbox (6,1) (11,5) ] # create a rectagle # value returned: an id , ex "2646847" set pathId01 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,0) (10,0) ] # create a path # value returned: an id , ex "264684c" set pathId02 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,10) (10,10) ] # create a path # value returned: an id , ex "264684a" set pathId03 [dbCreatePath -cv $cvId -layer 16 -width 1 -point (0,20) (10,20) ] # create a path # value returned: an id , ex "2646875" dbAddChildToParent -child $rect2 -parent $rect1 Laker³ Tcl Reference Manual K-2015.06 323 Chapter 4: Database Extensions General Object Manipulation # make rectange 2 a child object to rect1 # value returned: 1 dbDelete -obj $pathId03 # delete a path # value returned: 1 dbIsDbObj -obj $cvId # check an id is an db object or not # value returned: 1 set allIds [dbTraverse -cv $cvId -shapeOnly on] # generate a list of ids # value returned: list of ids. # ex: 26468a4 264688c 2646874 2646844 dbSelObjsByType -objs $allIds -type Path # select objects # value returned: list of ids. ex: 2646874 2646844 dbSaveCV -cv $cvId # save cell # value returned: 1 dbCloseCV -cv $cvId # close cell # value returned: 1 dbCloseLib -lib $libId # close library # value returned: 1 dbSet The dbSet command returns 1 if the attribute value of a certain object attribute can be set. The object attributes, which set up the contents and their valid values, are described in the following tables. 324 Objects Attribute Names Arc Net, Parent, Purpose, Layer, EllipseBBox, StartAngle, StopAngle Array Net, Parent, Purpose, ColSpace, Cols, Mag, Master, Name, Orient, Point, RowSpace, Rows CellView CellViewType, DBUPerUU, UserUnit, Flag, RepType, Type Dot Net, Parent, Purpose, Layer, BBox, Height, Point, Width Doughnut Net, Parent, Purpose, Layer, Inner, Outer, Point, Color, Lock Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Objects Attribute Names Ellipse Net, Parent, Purpose, Layer, BBox, Color, Lock Group DeleteWhen, GroupType, IsOrdered, IsUniqueName, Name Instance Net, Parent, Purpose, Mag, Master, Name, Orient, Point, DefCompSource, DefCompPlaceStatus, DefCompProperty, DefSpecialNetObj, DefShieldNetName, DefWireShape Instance Pin Net Instance Port All, AllNames, CV, Props, Type, Inst, InstPins, Name, Net, Port, DefSpecialNetObj Label Net, Parent, Purpose, Layer, Font, Height, IsDrafted, IsOverbar, IsVisible, Justify, Orient, Point, Text, LabelType Line Net, Parent, Purpose, Layer, Points Net All, AllNames, CV, Props, Type, InstPins, InstPortCount, InstPorts, Figs, Name, NumBits, Pins, Port, Priority, DefShieldNetName, DefNetNondefRuleName, DefNetSource, DefOriginalNetName, DefNetUsage, DefNetProperty, Net, Parent, Type, UserDefName Netlist All, AllNames, namePrefix, termOrder Path Net, Parent, Purpose, Layer, BeginExt, EndExt, Points, Style, Width, DefSpecialPin, DefPinPlaceStatus, DefPinPosition, DefPinOrient, DefSpecialNetObj, DefShieldNetName, DefWireShape, Color, Lock Pin Dir, PortDir, Name, JointType, Origin Polygon Net, Parent, Purpose, Layer, Points, DefSpecialPin, DefPinPlaceStatus, DefPinPosition, DefPinOrient, DefSpecialNetObj, DefShieldNetName, DefWireShape, Color, Lock Port Dir, Name, PortType Property AllNames, Value Laker³ Tcl Reference Manual K-2015.06 325 Chapter 4: Database Extensions General Object Manipulation Objects Attribute Names Rectangle Net, Parent, Purpose, Layer, BBox, DefSpecialPin, DefPinPlaceStatus, DefPinPosition, DefPinOrient, DefSpecialNetObj, DefShieldNetName, DefWireShape, Color, Lock Route AllNames, Net, Parent, Purpose, IsVisible, IsSpecial, Status, Topology, Spec, Color, Lock viaCellViewId ViaCell The following table shows the valid values for each attribute. 326 Attribute Name Valid Values BBox (a, b) (c,d) a b c d {{a b}{c d}} BeginExt A positive floating number. CellViewType Graphic, maskLayout, schematic, symbolic, netlist, state, stranger, vhEntityHier, vhEntityData, vhArchHier, vhArchData, vhConfHier, vhConfData, vhPackHier, vhPackBodyData, vhPackData. Color String of the new color value. Cols A positive integer. ColSpace A floating number. DBUPerUU A floating number. DefCompPlaceStatus Place status of the input component: FIXED, COVER, PLACED, UNPLACED. Case is ignored. DefCompProperty DEF property string of the input component. DefCompSource Source type of the input component: NETLIST, DIST, USER, TIMING. Case is ignored. DefNetNondefRuleName The non-default rule used by the input net. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values DefNetProperty DEF property string of the input net. DefNetSource Source type of the input net: NETLIST, DIST, USER, TIMING, TEST. Case is ignored. DefNetUsage Usage of the input net: ANALOG, CLOCK, GROUND, POWER, RESET, SCAN, SIGNAL, TIEOFF. Case is ignored. DefOriginalNetName The original net of the input net. DefPinOrient Orientation: R0, R90, R180, R270, MXR0, MXR90, MYR0, MYR90. DefPinPlaceStatus Place status of the input pin: FIXED, COVER, PLACED, UNPLACED. Case is ignored. DefPinPosition (a,b) ab {a b} DefShieldNetName For “Net” object type, this specifies the net shielding the input net. For other object types, this specifies the net shielded by the input object. DefSpecialNetObj 0, 1 DefSpecialPin 0, 1 DefWireShape Wire shape type of the input object: RING, PADRING, BLOCKRING, STRIPE, FOLLOWPIN, IOWIRE, OREWIRE, BLOCKWIRE, BLOCKAGEWIRE, FILLWIRE, DRCFILL. Case is ignored. DeleteWhen Never, First, Last. Dir (access direction of a pin) Single value: Left, Right, Top, Bottom. Multiple values: value string with braces, like {Left Top} or {Left Bottom Right}. Dir (port direction) Input, Output, InputOutput, Jumper, Feedthrough. EllipseBBox An ellipse bounding box (the same as BBox). Laker³ Tcl Reference Manual K-2015.06 327 Chapter 4: Database Extensions General Object Manipulation 328 Attribute Name Valid Values EndExt A positive floating number. Flag An integer. Font Modern, Fixed, Raster, Modern1, Script, Roman, TTAGth, TTARoman, TTASlab. GroupType Set, Collect. Height A positive floating number. Inner A positive floating number. IsDrafted 0, 1 IsOrdered 0, 1 IsOverbar 0, 1 IsSpecial 0, 1 IsUniqueName 0, 1 IsVisible 0, 1 JointType Disjointed, Strong, Weak. Justify UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, LowerRight. LabelType Normal, Annotate, Comment. Layer 0~255 or a layer name. Lock 0, 1 Mag A floating number. Master A cell view identifier. Name A string. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values Net A net identifier. Orient Orientation: R0, R90, R180, R270, MXR0, MXR90, MYR0, MYR90. Origin A point value, for example: (x,y). Outer A positive floating number. Parent A db object identifier. Point (a,b) a b {a b} Points (a,b) (c,d) ...(y,z) a b c d ... y z {{a b}{c d} ... {y z}} PortType Unknown, Data, Clock, SyncSet, SyncReset, AsyncSet, AsyncReset, Control, TriEnable, ComboOutput, TriOutput, Latched, Registered, InferLatch, FSMControl, FSMOutput, OffPageConn, Hidden If return=1, then set PortType successfully. If return=0, then fail to set PortType. Priority 0~127 Purpose 0~255 or a purpose name. RepType Refer to RepType in dbGet. Rows A positive integer. RowSpace A floating number. Spec The Spec name of routes. When SpecValue is NULL, it clears the Spec value in $routeId. StartAngle A floating number. Laker³ Tcl Reference Manual K-2015.06 329 Chapter 4: Database Extensions General Object Manipulation Attribute Name Valid Values Status Normal, Cover, Fixed, Routed, Shield, NoShield StopAngle A floating number. Style Truncate, Extend, Round, Variable. Text A string. Topology None, Ring, PadRing, BlockRing, Stripe, FollowPin, IOWire, CoreWire, BlockWire, BlockageWire, FillWire, DrcFill Type (cellviewType) 0, 1 If value=1, then set UnneedAPR=TRUE. If value=0, then set UnneedAPR=FALSE. The return value=1 if successful; otherwise, returns 0. Type (NetType) SIGNAL, GROUND, SUPPLY, GLOBAL. UserDefName 0, 1 If value=1, return=1, then set "the net is user-defined". If value=1, return=0, then do not set "the net is userdefined". If value=0, return=1, then unset "the net is user-defined". If value=0, return=0, then do not unset "the net is userdefined". UserUnit Micro, millimeter, centimeter, meter, mil, inch. ViaCell 1 If value=1, then add the via cell property. Width A positive floating number. Syntax dbSet -obj objId -attr attrName -value attrValue [-attType attType] Returns 1 if successful; otherwise, returns 0. 330 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation Arguments Argument Description -attr attrName Specify the attribute name. -attType attType Specify the attribute type. Valid values: original and user. -obj objId Specify the object identifier. Valid values: cell view identifier, instance identifier, array identifier, rectangle identifier, polygon identifier, line identifier, path identifier, label identifier, arc identifier, ellipse identifier, doughnut identifier, dot identifier, net identifier, netlist identifier, pin identifier, port identifier, instance port identifier, instance pin identifier, property identifier, group identifier, and cell view identifier of a via. -value attrValue Specify the attribute value. This value depends on the attr option. Examples # Example 1 dbSet -obj $pathId -attr Points -value (0,0)(1,1)(2,1)(3,1) dbSet -obj $rectId -attr BBox -value (0,0)(3,5) dbSet -obj $instId -attr Master -value [dbOpenCV -lib lib2 -cell C2] dbSet -obj $instId -attr DefCompSource -value netlist dbSet -obj $rectId -attr DefPinPlaceStatus -value COVER dbSet -obj $polyId -attr DefPinPosition -value (1.23,-1.23) dbSet -obj $pathId -attr DefPinOrient -value MXR90 dbSet -obj $netId -attr DefNetUsage -value signal dbSet -obj $instPortId -attr IsDefSpecialNetObj -value 1 # Example 2 # set via cell property set viaCvId [dbOpenCV -lib cpu -cell via12 -view abs -mode edit] dbSet -obj $viaCvId -attr ViaCell -value 1 # Example 3 set a [lakerGetSelSet] set cvId [lakerGetWndCellViewId] set netId [dbCreateNet -cv $cvId -name N -get 1] dbSet -obj $a -attr Net -value $netId # Example 4 dbSet -obj $PropId -attr Value -Value XXX Laker³ Tcl Reference Manual K-2015.06 331 Chapter 4: Database Extensions General Object Manipulation #(a) When this Prop's value Type is LpPair, UserPair, then # dbSet -obj $PropId -attr Value -Value "{layerNum purposeNum}" # or # dbSet -obj $PropId -attr Value -Value "(layerNum purposeNum)" # or # dbSet -obj $PropId -attr Value -Value "layerNum purposeNum" #(b) When this Prop's value Type is Time, then # dbSet -obj $PropId -attr Value -Value "Mar 31 12:50:30 2005" #(c) When this Prop's value Type is Boolean return # dbSet -obj $PropId -attr Value -Value 1 > for true # dbSet -obj $PropId -attr Value -Value 0 > for false #(d) Other supported types: String, Int, Float, DBId. #(e) Not supported types: HierProp, BString. # Example 5 # For JointType dbSet -obj $pinId -attr JointType -value XXX # XXX can be one of {Disjointed, Strong, Weak} # Example 6 # For AccessDirection dbSet -obj $pinId -attr Dir -value Value # (1) When Value is a single value, # then the Value is one of the following four strings # Top, Bottom, Left, Right # For example: # dbSet -obj $pinId -attr Dir -value {Top}; # (2) When Value is a multiple value, # then the Value is composed string with braces of following # four strings Top, Bottom, Left, Right # For example: # dbSet -obj $pinId -attr Dir -value {Top Bottom}; # Example 7 # For pinType(PortDirType) # XXX can be one of {Input, Output, InputOutput, # Jumper, Feedthrough} dbSet -obj $pinId -attr PortDir -value XXX # Example 8 dbSet -obj $pathSegId -attr IsSpecial -value 0|1 # Example 9 # The return value is origin (-500,500) dbSet -obj $PinId -attr Origin -value (-500,500) set gorigin [dbGet -obj $PinId -attr Origin] # Example 10 dbSet -obj $labelId -attr LabelType -value XXX # XXX can be one of {Normal, Annotate, Comment} # LabelType # "Unknown", // dbcNormalLabel >tclErrMsg 332 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions General Object Manipulation # "Normal", # "Annotate", # "Comment", // dbcNormalLabel // dbcAnnotateLabel // dbcCommentLabel # Example 11 dbSet -obj $netId -attr Type -value XXX # # # # # # XXX can be one of {SIGNAL, GROUND, SUPPLY, GLOBAL} "", // dbcUnknownNetType "SIGNAL", // dbcSignalNet "GROUND", // dbcGroundNet "SUPPLY", // dbcSupplyNet "GLOBAL", // dbcGlobalNet # Example 12 dbSet -obj $cvId -attr RepType -value XXX # XXX can be one of dbRepType {NotCell, OrCell..} # Example 13 dbSet -obj $cvId -attr Type -value 1|0 # if value=1, then set UnneedAPR=TRUE, the return value=1 if successful. # if value=0, then do not call setUnneedAPR(), the return value=0. # Example 14 dbSet -obj $SNetId -attr UserDefName -value 1 ##return :1 dbGet -obj $SNetId -attr UserDefName ##return :1 dbSet -obj $VNetId -attr UserDefName -value 0 ##return :1 dbGet -obj $VNetId -attr UserDefName ##return :0 # Example 15 dbSet -obj $portId -attr PortType -value XXX # XXX can be one of # { # "Unknown", "Data", "Clock", "SyncSet", "SyncReset", # "AsyncSet", "AsyncReset", "Control", # "TriEnable", "ComboOutput", "TriOutput", "Latched", # "Registered","InferLatch", # "FSMControl", # "FSMOutput", "OffPageConn","Hidden" # } # If the value is the other type, a Tcl error is shown. # Example 16 # Set one attribute/value for a paramId dbSet -obj $paramId -attr attrName -value v [-attType original] # Example 17 # Set a value to the property for a netlistId dbSet -obj $netlistId -attr namePrefix -value xxx [-attType user] Laker³ Tcl Reference Manual K-2015.06 333 Chapter 4: Database Extensions Parameterized Test Structure Devices # Example 18 dbSet -obj $shape -attr Color -value colorA # Example 19 dbSet -obj $shape -attr Lock -value 1 Parameterized Test Structure Devices This section describes the Tcl commands that are related to the manipulation on parameterized test structure devices. These commands include: ■ dbUDDBool ■ dbUDDCopy ■ dbUDDDelete ■ dbUDDFill ■ dbUDDGetParameter ■ dbUDDSetParameter dbUDDBool The dbUDDBool command returns a list of figures after the Boolean operation. Syntax Apply Boolean operation on two sets of figures: dbUDDBool -action [AND | OR | NOT | SIZE | GROW | SHRINK | SIZE4DIR] -outputLayer layerPurpose -opnd1 figList1 opnd2 figList2 Apply Boolean operation on specific layers: dbUDDBool -action [AND | OR | NOT | SIZE | GROW | SHRINK | SIZE4DIR] -outputLayer layerPurpose -opnd1Layer layerPurpose -opnd2Layer layerPurpose -sizeValue sizeValue -cv cellviewId Returns List of figures after the Boolean operation if successful; otherwise returns nothing. 334 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameterized Test Structure Devices Arguments Apply the Boolean operation on two sets of figures: Argument Description -action [AND|OR|NOT|SIZE| GROW|SHRINK| SIZE4DIR] Specify the Boolean operation. Valid values: AND, OR, NOT, SIZE, GROW, SHRINK, and SIZE4DIR. GROW, SHRINK, and SIZE4DIR have to be used with -left, -right, -top, or -bottom. -opnd1 figList1 Specify the first input list of figures. -opnd2 figList2 Specify the second input list of figures. -outputLayer layerPurpose Specify the output layer for the results from the Boolean operation. Apply the Boolean operation on specific layers: Argument Description -action [AND|OR|NOT|SIZE| GROW|SHRINK| SIZE4DIR] Specify the Boolean operation. Valid values: AND, OR, NOT, SIZE, GROW, SHRINK, and SIZE4DIR. GROW, SHRINK, and SIZE4DIR have to be used with -left, -right, -top, or -bottom. -cv cellviewId Specify the cell view that the Boolean operation applies to. It is only needed when using layer-base operation. -opnd1Layer layerPurpose Specify the input layer1. -opnd2Layer layerPurpose Specify the input layer2. -outputLayer layerPurpose Specify the output layer for the results from the Boolean operation. -sizeValue sizeValue Laker³ Tcl Reference Manual K-2015.06 Specify the value for the SIZE operation (only valid for SIZE). 335 Chapter 4: Database Extensions Parameterized Test Structure Devices Examples dbUDDBool -action [AND|OR|NOT|SIZE] -outputLayer layerPurpose \ -opnd1Layer {OD drawing } -opnd2Layer POLY -sizeValue 0.5 \ -cv $CVId dbUDDCopy The dbUDDCopy command returns a list of figures resulting from copy procedure if the procedure can be defined. Syntax dbUDDCopy -figs figList -cols colNo -rows rosNo -colSpace colSpace -rowSpace rowSpace Returns List of figures resulting from the copy procedure if successful, otherwise returns nothing. Arguments Argument Description -cols colNo Specify an integer number for the repeated columns of the copied figures. -colSpace colSpace Specify the spacing between two columns. -figs figList Specify the list of figures. -rows rosNo Specify an integer number for the repeated rows of the copied figures. -rowSpace rowSpace Specify the spacing between two rows. Examples set Pitch 3.4 set Figx0 [expr -1.04] set Figx2 [expr $Figx0+0.4] set Figy1 [expr -1.04] set Figy3 [expr [max [expr 0.875] [expr $Figx2+1.515]]] set __colSpace__ [expr $Pitch] set __rowSpace__ [expr $Pitch] set _Fig0 [dbCreateRect -cv $cvId -layer CellBdry \ -purpose boundary -bbox ($Figx0, $Figy3) ($Figx2, $Figy1)] 336 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameterized Test Structure Devices set _Fig1 [dbCreateRect -cv $cvId -layer CellBdry \ -purpose boundary -bbox ($Figy1, $Figx0) ($Figy3, $Figx2)] set copiedFigs [dbUDDCopy -figs [list $_Fig0 $_Fig1] -cols 2 \ -rows 2 -colSpace $__colSpace__ -rowSpace $__rowSpace__] dbUDDDelete The dbUDDDelete command deletes a list of figures. Syntax dbUDDDelete -figs figList Returns None Arguments Argument Description -figs figList Specify the list of figures to be deleted. Examples dbUDDDelete -figs [list $_Fig0 $_Fig1] set ActRegion [dbUDDBool -action NOT -outputLayer MET1 \ -opnd1Layer { OD drawing } -opan2Layer {POLY drawing} ] set FillResult [ dbFill -figs $ActRegion -lib Test \ -cell cont08 -XPitch 1.0 -YPitch 1.0 -LEncl 0.5 \ -REncl 0.5 -TEncl 0.5 -BEncl 0.5] dbUDDDelete -figs $ActRegion set METObj1 [dbUDDBool -action SIZE -outputLayer MET1 \ -opnd1 $FillResult -value 0.3] set METObj2 [dbUDDBool -action SIZE -outputLayer MET1 \ -opnd1 $METObj1 -value -0.2] dbUDDDelete -figs $METObj1 #// the METObj2 is the objecet that user want in MET1 layer #// overlapped Active Region set ALL [dbUDDBool -action OR -outputLayer PWELL \ -opnd1Layer { OD drawing } -opan2Layer {POLY drawing} ] #// create well object dbUDDFill The dbUDDFill command returns a list of instances or arrays if the fill procedure can be defined. Laker³ Tcl Reference Manual K-2015.06 337 Chapter 4: Database Extensions Parameterized Test Structure Devices Syntax dbUDDFill -figs figList [-lib libraryName -cell cellName [view viewName] | -fillInObj figId|figIdList] -colSpace colSpace -rowSpace rowSpace [-leftEnc leftEnc] [-rightEnc rightEnc] [-topEnc topEnc] [-bottomEnc bottomEnc] [method contact|guardring] [-justify jusification] [magni manification] [-orient orientation] Returns A list of instances or arrays if successful; otherwise, returns nothing. Arguments 338 Argument Description -bottomEnc bottomEnc Specify the bottom enclosure space to the filled figure. Valid value: positive floating number (default=0.0). -cell cellName Specify the cell name of the filling cell. -colSpace colSpace Specify the spacing between two columns. -figs figList Specify the list of figures to be filled. -fillInObj figId|figIdList Define the filled object by a figure or a list of figures. -justify jusification Specify the justification of the filling cell. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, LowerRight (default=CenterCenter). -leftEnc leftEnc Specify the left enclosure spacing to the filled figure. Valid value: positive floating number (default=0.0). -lib libraryName Specify the library name of the filling cell view. -magni manification Specify the magnification of the filling cell. Valid value: positive floating number (default=1.0). -method contact|guardring Specify the method to be used to fill the figures. Valid value: contact, and guardring (default=contact). Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameterized Test Structure Devices Argument Description -orient orientation Specify the orientation of the filling cell. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, MYR90 (default=R0). -rightEnc rightEnc Specify the right enclosure spacing to the filled figure. Valid value: positive floating number (default=0.0). -rowSpace rowSpace Specify the spacing between two rows. -topEnc topEnc Specify the top enclosure spacing to the filled figure. Valid value: positive floating number (default=0.0). -view viewName Specify the view name of the filling cell (default=layout). Examples set Pitch 3.4 set Figx0 [expr -1.04] set Figx2 [expr $Figx0+0.4] set Figy1 [expr -1.04] set Figy3 [expr [max [expr 0.875] [expr $Figx2+1.515]]] set __colSpace__ [expr $Pitch] set __rowSpace__ [expr $Pitch] set _Fig0 [dbCreateRect -cv $cvId -layer CellBdry \ -purpose boundary -bbox ($Figx0, $Figy3) ($Figx2, $Figy1)] set _Fig1 [dbCreateRect -cv $cvId -layer CellBdry \ -purpose boundary -bbox ($Figy1, $Figx0) ($Figy3, $Figx2)] set instList [dbUDDFill -figs [list $_Fig0 $_Fig1] \ -lib qa -cell cont1 -colSpace $__colSpace__ \ -rowSpace $__rowSpace__ -method guardring ] # The following example is to fill with parameterized # test structures # Variable Cont_2pair keeps the instance id for sub master cell set Cont_2pairMasterId [dbGet -obj $Cont_2pair -attr Master] set libName [dbGet -obj $Cont_2pairMasterId -attr LibName] set cellName [dbGet -obj $Cont_2pairMasterId -attr CellName] set viewName [dbGet -obj $Cont_2pairMasterId -attr ViewName] set Cont_2pair_BBox [dbGet -obj $Cont_2pair -attr BBox] Laker³ Tcl Reference Manual K-2015.06 339 Chapter 4: Database Extensions Parameterized Test Structure Devices set set set set set set colSpace [expr $CT_s + $CT_w] rowSpace [expr $CT_s + $CT_w] LeftEnc $M1_CT_E RightEnc $GateOd1_CT_S TopEnc $M1_CT_E BottomEnc $M1_CT_E set FillResult [dbUDDFill -figs $LeftSide -lib $libName \ -cell $cellName -view $viewName -colSpace $colSpace \ -rowSpace $rowSpace -leftEnc $LeftEnc -rightEnc $RightEnc \ -topEnc $TopEnc -bottomEnc $BottomEnc -method guardring \ -justify CenterCenter] dbUDDGetParameter The dbUDDGetParameter command returns all UDD parameter definitions. Syntax dbUDDGetParameter -cv cellviewId [-availOnly [0|1]] Returns The parameter definition { {paramName type value} ... } is returned if successful; where: ■ paramNam corresponds to the parameter name. ■ type corresponds to the parameter type. ■ value corresponds to the parameter value. The valid parameter types and values are as follows: 340 ■ String: {parName string $x+1 } ■ Integer: {parName int 3} ■ Float: {parName float 3.3} ■ Boolean: {parName Boolean ■ Layer: {parName layer 16 252} ■ PathStyle: {parName pathStyle [Truncate|Extend|Round|Variable]} [0|1]} Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Parameterized Test Structure Devices ■ Rotate: {parName Rotate [R0|R90|R180|R270|MXR0|MXR90|MYR0|MYR90] ■ Justify: {parName Justify [UpperLeft|UpperCenter|UpperRight| CenterLeft|CenterCenter|CenterRight| LowerLeft|LowerCenter|LowerRight]} Arguments Argument Description -availOnly 0|1 Valid values: Boolean values, 0, and 1 (default=1). 1 : Return the available parameters only. 0 : Return all parameters. -cv cellviewId Specify the cell view identifier. Examples # Example 1 # Return the available parameter(s) only dbUDDGetParameter -cv $cvId # Example 2 # Return all parameters dbUDDGetParameter -cv $cvId -availOnly 0 See Also dbUDDSetParameter dbUDDSetParameter The dbUDDSetParameter command modifies the existing parameter definitions when both the -type and -value arguments must be specified. Alternatively, it deletes the existing parameter when the -delete argument is specified. Syntax dbUDDSetParameter -cv cellviewId -name parName -value parValue [-delete] -type [string | int | float | Boolean | layer | pathStyle | Rotate | Justify] Returns None Laker³ Tcl Reference Manual K-2015.06 341 Chapter 4: Database Extensions Parameterized Test Structure Devices Arguments Argument Description -cv cellviewId Specify the cell view identifier. -delete Delete the specified parameter. -name parName Specify the parameter to be modified or deleted. -type Specify the parameter type. Refer to the parameter types and values description in dbUDDGetParameter for details. Valid values: string, int, float, Boolean, layer, pathStyle, Rotate, and Justify. -value parValue Specify the parameter value. Refer to the parameter types and values description in dbUDDGetParameter for details. Examples # Example 1 # Modify the Param1 definition (paramType: int, value: 12) dbUDDSetParameter -cv $cvId -name Param1 -type int -value 12 # Example 2 # Modify the Param1 definition (paramType: string, # value: {$a1*4+1}) dbUDDSetParameter -cv $cvId -name Param1 -type string \ -value {$a1*4+1} # Example 3 # Modify the Param1 definition (paramType: layer, value: "1 252") dbUDDSetParameter -cv $cvId -name Param1 -type layer "1 252" # Example 4 # Modify the Param1 definition (paramType: Justify, value: CenterCenter) dbUDDSetParameter -cv $cvId -name Param1 -type Justify \ -value CenterCenter # Example 5 # Modify the Param1 definition (paramType: float, # value: 30.123456) dbUDDSetParameter -cv $cvId -name Param1 -type float \ -value 30.123456 342 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Schematic Object Manipulation # Example 6 # Modify the Param1 definition (paramType: Boolean, value: 1) dbUDDSetParameter -cv $cvId -name Param1 -type Boolean -value 1 # Example 7 # Modify the Param1 definition (paramType: pathStyle, # value: Truncate) dbUDDSetParameter -cv $cvId -name Param1 -type pathStyle \ -value Truncate # Example 8 # Modify the Param1 definition (paramType: Rotate, value: R0) dbUDDSetParameter -cv $cvId -name Param1 -type Rotate -value R0 # Example 9 # Delete the Param1 parameter dbUDDSetParameter -cv $cvId -name Param1 -delete See Also dbUDDGetParameter Schematic Object Manipulation This section describes the Tcl commands that are related to the manipulation on the schematic. These commands include: ■ dbSchCloneMaster ■ dbSchExpandMFactor ■ dbSchFlatten ■ dbSchGroup ■ dbSchInstanceMap ■ dbSchMakeNode ■ dbSchUngroup dbSchCloneMaster The dbSchCloneMaster command copies the master cell of the specified instance to another cell. Laker³ Tcl Reference Manual K-2015.06 343 Chapter 4: Database Extensions Schematic Object Manipulation Syntax dbSchCloneMaster -cv cellviewId -inst inst_list -newCell cell_name Returns None Arguments Argument Description -cv cellviewId Specify the working cell view. -inst inst_list Specify the instances. -newCell cell_name Specify the new cell for hard blocks. Examples # clone master set lib [dbOpenLib !Vlib demo] set cvId [dbOpenCV -lib $lib -cell and] dbSchCloneMaster -cv $cvId -inst x1 -newCell CloneCell dbSchExpandMFactor The dbSchExpandMFactor command expands M-Factor of the specified instances. Syntax dbSchExpandMFactor -cv cellviewId -inst inst_list Returns None Arguments Argument Description -cv cellviewId Specify the working cell view. -inst inst_list Specify the instances. Examples dbSchExpandMFactor -cv $cvId -inst x0 x1 344 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Schematic Object Manipulation dbSchFlatten The dbSchFlatten command flattens the specified schematic objects. Syntax dbSchFlatten -cv cellviewId -inst inst_list [-level flatten_level] Returns None Arguments Argument Description -cv cellviewId Specify the working cell view. -inst inst_list Specify the instances. -level flatten_level Specify the flatten level. Valid value: Integer from 1 to 50 (default=1). Examples # flatten instances set lib [dbOpenLib -lib demo] set cvId [dbOpenCV -lib $lib -cell and] dbSchFlatten -cv $cvId -inst x0 x1 -level 2 See Also lakerSchFlattenAll lakerSchFlattenLvl lakerSchFlattenOne lakerSmashObj dbSchGroup The dbSchGroup command is used for the ECO extraction when the Expand Schematic command is executed. This command rebuilds the user-defined group and stacking MOS group in the target library. Syntax dbSchGroup -cv cellviewId -inst instList [-name groupName] -type groupType Laker³ Tcl Reference Manual K-2015.06 345 Chapter 4: Database Extensions Schematic Object Manipulation Returns None Arguments Argument Description -cv cellviewId Specify the logic cell view. -inst instList Specify the instances. Multiple instances must be separated by spaces, for example: -inst x1 x2. -name groupName Specify the group name. If it is not specified, the system generates a unique name automatically. -type groupType Specify the group type. Valid values: user and stacking (default=user). Examples # Example 1 set lib [dbOpenLib -lib demo] set cvId [dbOpenCV -lib $lib -cell and] dbSchGroup -cv $cvId -inst x1 x2 x3 -name G1 -type user # Example 2 set lib [dbOpenLib -lib demo] set cvId [dbOpenCV -lib $lib -cell and] dbSchGroup -cv $cvId -inst x11 x12 x13 -name StackMOS_1 \ -type stacking dbSchInstanceMap The dbSchInstanceMap command changes the instance mapping information. Syntax dbSchInstanceMap -cv cellviewId -inst instName -mapLib refLib -mapCell refCell -mapView refView [-parameterMap {parameterMapping}] [-portMap {portMappingList}] [hierInstMap hierInstMap][-hierNetMap hierNetMap] Returns None 346 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Schematic Object Manipulation Arguments Argument Description -cv cellviewId Specify the working cell view. -hierInstMap hierInstMap Specify the hierarchical instance mapping. -hierNetMap hierNetMap Specify the hierarchical net mapping. -inst instName Specify the modified instance. -mapCell refCell Specify the layout mapping cell. -mapLib refLib Specify the layout mapping library (default=current library). -mapView refView Specify the layout mapping view. -parameterMap parameterMapping Specify the parameter mapping list. Refer to the definition of the MODEL_MAP section in the model map file for more details on the formats of ParameterMap. -portMap mappingPort Specify the layout mapping port in format: { port1:Mapped_port1 ... portn:Mapped_portn} Examples # Example 1 set lib [dbOpenLib -lib demo] set cvId [dbOpenCV -lib $lib -cell and] # change mapping of instance(x1) to cell(devCell) in the # library(demo) dbSchInstanceMap -cv $cv -inst x1 -mapLib demo \ -mapCell devCell -mapView symbolic dbSchMakeNode The dbSchMakeNode command groups the specified instances to a schematic hierarchy hard block. Laker³ Tcl Reference Manual K-2015.06 347 Chapter 4: Database Extensions Schematic Object Manipulation Syntax dbSchMakeNode -cv cellviewId -inst instList -newCell cellName [-newInst instName] Returns None Arguments Argument Description -cv cellviewId Specify the working cell view. -inst instList Specify the instances. -newCell cellName Specify the new cell name for hard block. -newInst instName Specify the new instance name. If it is not specified, a unique system-generated name is used. Examples # make node instances set lib [dbOpenLib -lib demo] set cvId [dbOpenCV -lib $lib -cell and] dbSchMakeNode -cv $cvId -inst x0 x1 -newCell MkCell -newInst xMk1 See Also lakerSchMakeNode lakerMakeCell dbSchUngroup The dbSchUngroup command is used for the ECO extraction when the Expand Schematic command is executed. This command ungroups the autocreated stacking MOS group in the target library. Syntax dbSchGroup -cv cellviewId -inst instList -type groupType Returns None 348 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions DFM Arguments Argument Description -cv cellviewId Specify the logic cell view. -inst instList Specify the instances. Multiple instances must be separated by spaces, for example: -inst x1 x2. -type groupType Specify the group type. Valid value: stacking. Examples set lib [dbOpenLib -lib demo] set cvId [dbOpenCV -lib $lib -cell and] dbSchUngroup -cv $cvId -inst x11 x12 x13 -type stacking DFM This section describes the Tcl commands that are related to the manipulation on the DFM process. These commands include: ■ dbGetAllMCellDeviceNames ■ dbGetAllMCellRuleValues dbGetAllMCellDeviceNames The dbGetAllMCellDeviceNames command gets all device names of the specified MCell type defined in the technology file of the specified library. Syntax dbGetAllMCellDeviceNames -lib library_name -type MCell_type_name Returns None Arguments Argument Description -lib library_name Specify the library name. Laker³ Tcl Reference Manual K-2015.06 349 Chapter 4: Database Extensions DFM Argument Description -type MCell_type_name Specify the MCell type name. Valid values: transistor, resistor, capacitor, guardRing, and contactDevice. Examples # Example 1 dbGetAllMCellDeviceNames -lib "cpu" -type "transistor" # Return: "pmos nmos pmos1 nmos1" See Also Layout Window: DFM > DFM dbGetAllMCellRuleValues lakerUpdateMCell dbGetAllMCellRuleValues The dbGetAllMCellRuleValues command gets all MCell rule values of the specified device by giving a device name, library name and MCell type. Syntax dbGetAllMCellRuleValues -lib library_name -type MCell_type_name -dev device_name Returns None Arguments Argument Description -dev device_name Specify the device name. -lib library_name Specify the library name. -type MCell_type_name Specify the MCell type. Valid values: transistor, resistor, capacitor, guardRing, and contactDevice. Examples # Example 1 dbGetAllMCellRuleValues -lib "cpu" -type "transistor" -dev "pmos" # Return: "minPoly2GateExtension 0.1 minOd2GateExtension 0.3 ..." 350 Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File See Also Layout Window: DFM > DFM dbGetAllMCellDeviceNames lakerUpdateMCell Technology File This section describes the Tcl command that is related to the manipulation on the technology file. ■ tfGet tfGet The tfGet command returns an attribute value if the attribute value of the specified section rule can be obtained. The tfGet command is available in the execPlugIn section for MCell Plugins when the tfLayoutMagicCell or tfLayoutMagicCellCallBack sections have been encrypted. Rules in technology file sections and their valid attribute names and values can be manipulated through the tfGet Tcl command. These sections includes: ■ ■ tfTechParameter: Parameter names defined in this section are returned in the condition of: • If -attr <Parameter_Name> is specified, returns the value of the specified parameter. • If -attr All is specified, returns a list of the defined parameter names and their values. For example: {<Parameter_Name> <Value>} {<Parameter_Name> <Value>}... • If -attr AllNames is specified, returns a list of the defined parameter names. For example: <Parameter_Name> <Parameter_Name> ... tfLayoutSystemUnit: Settings defined in this section are returned in the condition of: Laker³ Tcl Reference Manual K-2015.06 351 Chapter 4: Database Extensions Technology File ■ 352 • If -attr UserUnit is specified, returns the value defined with userUnit. Valid values: micro, millimeter, centimeter, meter, mil, and inch. • If -attr Scale is specified, returns the value defined with dbScale. Valid value: a floating number. • If -attr Resolution is specified, returns the value defined with dbResolution. Valid value: a floating number. • If -attr XGridSpacing is specified, returns the value defined with xGridSpacing. Valid value: a floating number. • If -attr YGridSpacing is specified, returns the value defined with yGridSpacing. Valid value: a floating number. • If -attr GridSpacing is specified, returns a pair of values defined with xGridSpacing and yGridSpacing. The format is <X_Grid_Spacing> <Y_Grid_Spacing>. • If -attr MajorGridRatio is specified, returns the value defined with majorGridRatio. Valid value: a positive integer. • If -attr GridType is specified, returns the value defined with gridType. Valid values: None, Dot, and Line. • If -attr ContactCenterGrid is specified, returns the value defined with contactCenterGrid. Valid value: a floating number. • If -attr All is specified, returns a list of attribute-value pairs. For example: {UserUnit <Value>} {Scale <Value>} ... • If -attr AllNames is specified, returns a list of the attribute names. For example: UserUnit Scale ... tfSystemPurpose: User-defined and built-in purpose names (substrate, blockage, control, softBdry, warning, tool, label, flight, error, annotate, boundary, pin, drawing, net, cell) in the tfSystemPurpose section are returned in the condition of: • If -attr <Purpose_Name> is specified, returns the purpose number of the specified purpose. Valid value: 0-255. • If -attr PurposeNum<Purpose_Number> is specified, returns the corresponding purpose name. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File ■ • If -attr All is specified, returns a list of user-defined purpose namenumber pairs. For example: {<Purpose_Name> <Purpose_Num>} {<Purpose_Name> <Purpose_Num>}... • If -attr AllNames is specified, returns a list of user-defined purpose names. For example: <Purpose_Name> <Purpose_Name> ... • If -attr AllBuiltIn is specified, returns a list of built-in purpose name-number pairs. For example: {<Purpose_Name> <Purpose_Num>} {<Purpose_Name> <Purpose_Num>}... • If -attr AllNamesBuiltIn is specified, returns a list of built-in purpose names. For example: <Purpose_Name> <Purpose_Name> ... tfLayoutLayerTable: Attributes for a specified layer identifier defined in this section are returned in the condition of: • If -attr LayerName is specified, returns the layer name of the layer. • If -attr LayerNum is specified, returns the layer number of the layer. Valid value: 0-255. • If -attr PurposeName is specified, returns the purpose name of the layer. • If -attr PurposeNum is specified, returns the purpose number of the layer. Valid value: 0-255. • If -attr FillColor is specified, returns the fill color name of the layer. • If -attr Stipple is specified, returns the stipple name of the layer. • If -attr LineColor is specified, returns the line color name of the layer. • If -attr LineStyle is specified, returns the line style name of the layer. • If -attr Packet is specified, returns the packet name of the layer. • If -attr Visible is specified, returns 1 if the shapes in the layer is visible; otherwise, returns 0. • If -attr Selectable is specified, returns 1 if the shapes in the layer is selectable; otherwise, returns 0. • If -attr Appear is specified, returns 1 if the layer appears in the layer table pane; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 353 Chapter 4: Database Extensions Technology File • If -attr All is specified, returns a list of attribute-value pairs for the specified layer. If FillColor, Stipple, LineColor, and LineStyle are defined but Packet is not, the packet is not listed. For example: {LayerName <Layer_Name>} {LayerNum <Layer_Num>} ... • If -attr AllNames is specified, returns a list of the above attribute names. If FillColor, Stipple, LineColor, and LineStyle are defined but Packet is not, the packet is not listed. For example: LayerName LayerNum ... Other attributes without any specified layer identifier are also returned. These attributes include all user-defined and built-in layers ({PinBorder substrate}, {PlaceBlockage blockage}, {PassThrough control}, {SoftBdry softBdry}, {RouteBlockage warning}, {Mark tool}, {PinBlockage label}, {TLRDevBdry flight}, {TLRPadBdry annotate}, {CellBdry boundary}, {SoftPin pin}, {ShortErr drawing}, {R_Extent net}, and {CoreBdry cell}) defined in the tfLayoutLayerTable section. ■ • If -attr All is specified, returns a list of layer identifiers. • If -attr AllNames is specified, returns a list of the above attribute names. For example: LayerName LayerNum ... • If -attr AllBuiltIn is specified, returns a list of the above built-in layer identifiers. tfStreamIoTable: Attributes for a specified layer identifier defined in this section are returned in the condition of: • If -attr StreamNum is specified, returns the mapped stream number of the layer. Valid value: 0-65535. • If -attr DataType is specified, returns the mapped data type number of the layer. Valid value: 0-65535. • If -attr Available is specified, returns 1 if the layer mapping is available; otherwise, returns 0. • If -attr All is specified, returns a list of the above attribute names and their values for the layer. For example: {StreamNum <Stream_Num>} {DataType <Date_Type_Num>} ... Other attributes without any specified layer identifier are also returned in the condition of: • 354 If -attr All is specified, returns a list of the layer identifiers. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File • ■ If -attr AllNames is specified, returns a list of the above attribute names. For example: StreamNum DataType ... tfLayoutMagicCell: Attributes defined in this section are returned in the condition of: • If -attr DeviceName is specified, returns the device name. • If -attr DeviceType is specified, returns the device type. Only the transistor device type is supported currently. Before getting the Version or AllVersions attributes, the MCellVersionControl flag must be set under the [LeoPreference] section of the laker.rc resource file: MCellVersionControl = TRUE • If -attr AllVersions is specified, returns a list of versions for the device identifier. • If -attr Version is specified, returns the version of the device identifier. The value 0 corresponds to the latest version. If the attributes for layerDef are specified, returns the following attributes: • If -attr LayerDef<Mapped_Layer_Name>Name is specified, returns the mapped layer name defined in the device. • If -attr LayerDef<Mapped_Layer_Name>Layer is specified, returns a layer identifier for the mapped layer defined in the device. • If -attr LayerDef<Mapped_Layer_Name>Generate is specified, returns the value defined with generate for the mapped layer in the device. Valid values: on, off, user, and <constraint>. • If -attr LayerDef<Mapped_Layer_Name>Stretchable is specified, returns the value defined with stretchable for the mapped layer in the device. • If -attr LayerDef<Mapped_Layer_Name>Extend is specified, returns the value defined with extend for the mapped layer in the device. Valid values: on, fillNotch, and rectangle. • If -attr LayerDef<Mapped_Layer_Name>BoolOper is specified, returns the Boolean operations defined for the mapped layer in the device. • If -attr LayerDef<Mapped_Layer_Name>IsUser is specified, returns 1 if the mapped layer is user-defined; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 355 Chapter 4: Database Extensions Technology File 356 • If -attr LayerDef<Mapped_Layer_Name>, LayerDef<Mapped_Layer_Name>All is specified, returns a list of attribute-value pairs for the mapped layer defined in the device. For example: {LayerDef<Mapped_Layer_Name>Name <Mapped_Layer_Name>} {LayerDef<Mapped_Layer_Name>Layer <Layer_Identifier>} ... • If -attr LayerDef<Mapped_Layer_Name>AllNames is specified, returns a list of attribute names for the mapped layer defined in the device. For example: LayerDef<Mapped_Layer_Name>Name LayerDef<Mapped_Layer_Name>Layer ... • If -attr LayerDef<Mapped_Layer_Name>String is specified, the rule string for the mapped layer defined in the device is returned. • If -attr LayerDef or -attr LayerDefAll is specified, returns a list of attribute-value pairs for all mapped layers defined in the device. For example: {LayerDef<Mapped_Layer1_Name>Name <Mapped_Layer1_Name>} {LayerDef<Mapped_Layer1_Name>Layer <Layer_Identifier>} ... {LayerDef<Mapped_Layer2_Name>Name <Mapped_Layer2_Name>} {LayerDef<Mapped_Layer2_Name>Layer <Layer_Identifier>} ... • If -attr LayerDefAllNames is specified, returns a list of the mapped layer names defined in the device. For example: LayerDef<Mapped_Layer1_Name> LayerDef<Mapped_Layer2_Name> ... • If -attr LayerDefReservedNames is specified, returns a list of the reserved mapped layer names defined in the device. For example: LayerDef<Mapped_Layer1_Name> LayerDef<Mapped_Layer2_Name> ... • If -attr LayerDefUserNames is specified, returns a list of LayerDef<Mapped_Layer_Name> where the user-defined mapped layer names defined in the device. For example: LayerDef<Mapped_Layer1_Name> LayerDef<Mapped_Layer2_Name> ... • If -attr LayerDefString is specified, returns the rule string for the layerDef rule defined in the device. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File If the attributes for traitDef are specified, returns the following attributes: • If -attr TraitDef<Trait_Name>Name is specified, returns the trait name defined in the device. • If -attr TraitDef<Trait_Name>RepPattern is specified, returns the repeat pattern for the trait defined in the device. • If -attr TraitDef<Trait_Name>OptLayer is specified, returns a list of option layer names for the trait defined in the device. • If -attr TraitDef<Trait_Name> or -attr TraitDef<Trait_Name>All is specified, returns a list of attributevalue pairs for the trait defined in the device. For example: {TraitDef<Trait_Name>Name <Trait_Name>} {TraitDef<Trait_Name>RepPattern <0, 1>} ... • If -attr TraitDef<Trait_Name>AllNames is specified, returns a list of attribute names for the trait defined in the device. For example: TraitDef<Trait_Name>Name TraitDef<Trait_Name>RepPattern ... • If -attr TraitDef<Trait_Name>String is specified, returns the rule string for the trait defined in the device. • If -attr TraitDef or -attr TraitDefAll is specified, returns a list of attribute-value pairs for all traits defined in the device. For example: {TraitDef<Trait1_Name>Name <Trait1_Name>} {TraitDef<Trait1_Name>RepPattern <0, 1>} ... {TraitDef<Trait2_Name>Name <Trait2_Name>} {TraitDef<Trait2_Name>RepPattern <0, 1>} ... • If -attr TraitDefAllNames is specified, returns a list of the trait names defined in the device. For example: TraitDef<Trait1_Name>Name TraitDef<Trait2_Name>Name ... • If -attr TraitDefString is specified, returns the rule string for the traitDef rule defined in the device. If the attributes for ruleDef, stackVia, Esd, and polyContact with/ without ruleSwitch are specified, returns the following attributes. Laker³ Tcl Reference Manual K-2015.06 357 Chapter 4: Database Extensions Technology File When specifying the attributes, <Rule_Type> can be RuleDef, StackVia, ESD, or PolyContact; and <Command_Name> must be capitalized. 358 • If -attr [RuleSwitch<Switch_Name>]<Rule_Type><Command_Name>De fault is specified, returns the default value defined with the command in the rule type (within the rule switch) for the device. Valid value: a floating point or pairs of floating points. • If -attr [RuleSwitch<Switch_Name>]<Rule_Type><Command_Name>Co ndition is specified, returns a list of conditional rules with its value defined with the command in the rule type (within the rule switch) for the device. • If -attr [RuleSwitch<Switch_Name>]<Rule_Type><Command_Name> or -attr [RuleSwitch<Switch_Name>]<Rule_Type><Command_Name>Al l is specified, returns a list of attribute-value pairs for the command defined in the rule type (within the rule switch) of the device. For example: {[RuleSwitch<Switch_Name>]RuleDef<Command_Name>Defau lt <Default_Value>} {[RuleSwitch<Switch_Name>] RuleDef<Command_Name>Condition <Conditional_Rules>} • If -attr [RuleSwitch<Switch_Name>]<Rule_Type><Command_Name>Al lNames is specified, returns a list of attribute names where this command name is defined in the rule type (within the rule switch) for the device. For example: [RuleSwitch<Switch_Name>] RuleDef<Command_Name>Default [RuleSwitch<Switch_Name>] RuleDef<Command_Name>Condition • If -attr [RuleSwitch<Switch_Name>]<Rule_Type> or -attr [RuleSwitch<Switch_Name>]<Rule_Type>All is specified, returns a list of attribute-value pairs for the rule type defined (within the rule switch) in the device. For example: {[RuleSwitch<Switch_Name>]RuleDef<Command1_Name>Defa ult <Default_Value>} ... {[RuleSwitch<Switch_Name>]RuleDef<Command2_Name>Defa ult <Default_Value>} ... Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File • If -attr [RuleSwitch<Switch_Name>]<Rule_Type>AllNames is specified, returns a list of [RuleSwitch<Switch_Name>]<Rule_Type><Command_Name> where the command names defined in the rule type (within the rule switch) for the device. For example: [RuleSwitch<Switch_Name>] RuleDef<Command1_Name> [RuleSwitch<Switch_Name>] RuleDef<Command2_Name> ... • If -attr RuleSwitchDefault or -attr RuleSwitchDefaultAll is specified, returns a list of attribute-value pairs for all rule types without any rule switch definition in the device. For example: {RuleDef<Command_Name>Default <Default_Value>} ... {StackVia<Command_Name>Default <Default_Value>} ... • If -attr RuleSwitchDefaultAllNames is specified, returns a list of <Rule_Type> where the rule types without any rule switch definition in the device. For example: RuleDef StackVia ... • If -attr RuleSwitchDefaultString is specified, returns the rule string for the rule type without any rule switch definition in the device. • If -attr RuleSwitch<Switch_Name> or -attr RuleSwitch<Switch_Name>All is specified, returns a list of attribute-value pairs for all rule types defined within the rule switch in the device. For example: {RuleSwitch<Switch_Name>RuleDef<Command_Name>Default <Default_Value>} ... {RuleSwitch<Switch_Name>StackVia<Cmd_Name>Default <Default_Value>} ... • If -attr RuleSwitch<Switch_Name>AllNames is specified, returns a list of RuleSwitch<Switch_Name><Rule_Type> where the rule types defined within the rule switch in the device. For example: RuleSwitch<Switch_Name>RuleDef RuleSwitch<Switch_Name>StackVia ... • If -attr RuleSwitch<Switch_Name>String is specified, returns the rule string for the rule type defined (within the rule switch) in the device. • If -attr RuleSwitchAllNames is specified, returns a list of rule switch names defined in the device. If the attributes for CallBack are specified, returns the following attributes: • If -attr CallBackParams<Parameter_Name>Name is specified, returns the variable name defined in the device. Laker³ Tcl Reference Manual K-2015.06 359 Chapter 4: Database Extensions Technology File 360 • If -attr CallBackParams<Parameter_Name>Default is specified, returns the default value defined for the variable name in the device. • If -attr CallBackParams<Parameter_Name>Type is specified, returns the value type of the variable name defined in the device. Valid values: string, integer, float, and Boolean. • If -attr CallBackParams<Parameter_Name>Editable is specified, returns the editable status of the variable name defined in the device. Valid values: editable and strict. • If -attr CallBackParams<Parameter_Name> or -attr CallBackParams<Parameter_Name>All is specified, returns a list of attribute-value pairs for the variable name defined in the device. For example: {CallBackParams<Parameter_Name>Name <Parameter_Name>} {CallBackParams<Parameter_Name>Default <Default_Value>} ... • If -attr CallBackParams<Parameter_Name>AllNames is specified, returns a list of attribute names where the variable is defined in the device. For example: CallBackParams<Parameter_Name>Name CallBackParams<Parameter_Name>Default ... • If -attr CallBackParams<Parameter_Name>String is specified, returns the rule string for the params rule defined in the device. • If -attr CallBackParams or -attr CallBackParamsAll is specified, returns a list of attribute-value pairs for all variable names defined with the params rule in the device. {CallBackParams<Parameter1_Name>Name <Parameter1_Name>} {CallBackParams<Parameter1_Name>Default <Default_Value>} ... {CallBackParams<Parameter2_Name>Name <Parameter2_Name>} {CallBackParams<Parameter2_Name>Default <Default_Value>} ... • If -attr CallBackParamsAllNames is specified, returns a list of variable names defined with the params rule in the device. For example: CallBackParams<Parameter1_Name> CallBackParams<Parameter2_Name> ... Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File • If -attr CallBackMcellInstId is specified, returns the variable name defined with the mcellInstId rule in this device. • If -attr CallBackExec is specified, returns the rule strings of Tcl command sets defined with the exec rule in the device. • If -attr CallBack or -attr CallBackAll is specified, returns a list of attribute-value pairs for all attributes defined in the device. For example: {CallBackParams<Parameter_Name>Name <Parameter_Name>} ... {CallBackMcellInstId <Variable_Name>} ... • If -attr CallBackAllNames is specified, returns a list of attribute names where the rules are defined in the device. For example: CallBackParams<Parameter1_Name> CallBackParams<Parameter2_Name> ... CallBackMcellInstId CallBackExec • If -attr CallBackString is specified, returns the rule string for the callBack rule defined in the device. If -attr All or -attr AllNames is specified, returns the following attributes: ■ • If -attr All is specified, returns a list of attribute-value pairs of all above attribute names defined in the device. For example: {DeviceName <Device_Name>} {AllVersions <Version_Num_List>} {Version <Version_Num>} ... {LayerDef<Mapped_Layer_Name>Name <Mapped_Layer_Name>} ... {TraitDef<Trait_Name>Name <Trait_Name>} ... {RuleSwitch<Switch_Name>RuleDef<Command_Name>Default <Default_Value>} ... {CallBackParams<Parameter_Name>Name <Parameter_Name>} ... • If -attr AllNames is specified, returns a list of the above attribute names defined in the device. For example: DeviceName DeviceType AllVersions Version LayerDef TraitDef RuleSwitch CallBack. tfLayoutConnection: Attributes for a specified layer identifier are returned in the condition of: • If -attr IsWireLayer is specified, returns 1 if the layer is defined as a wiring layer in the general connection rule; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 361 Chapter 4: Database Extensions Technology File 362 • If -attr IsViaLayer is specified, returns 1 if the layer is defined as a via layer; otherwise, returns 0. • If -attr IsStopLayer is specified, returns 1 if the layer is defined as a stop layer; otherwise, returns 0. • If -attr IsMultiPolyLayer is specified, returns 1 if the layer is defined as a poly layer in the multi-poly connection rule; otherwise, returns 0. • If -attr WireLayers is specified, returns a list of wiring layer identifiers defined in the same general connection rules with the layer. • If -attr ViaLayers is specified, returns a list of via layer identifiers defined in the same rules with the layer. • If -attr StopLayers is specified, returns a list of stop layer identifiers defined in the same rules with the layer. • If -attr MultiPolyLayers is specified, returns a list of poly layer identifiers defined in the same multi-poly rules with the layer. • If -attr ConnectLayers is specified, returns a list of layer identifiers in the same rules where the layer is defined. For example: {<Layer1_Identifier> <Layer2_Identifier> {<Via_Layer_Identifier_List>} [<Stop_Layer_Identifier>]} ... {{<Poly_Layer_Identifier_List>} {<Via_Layer_Identifier_List>} [<Stop_Layer_Identifier>]} ... • If -attr IsMetalLayer is specified, returns 1 if the layer is defined in defMetalLayer; otherwise, returns 0. • If -attr IsPolyLayer is specified, returns 1 if the layer is defined in defPolyLayer; otherwise, returns 0. • If -attr IsOdLayer is specified, returns 1 if the layer is defined in defOdLayer; otherwise, returns 0. • If -attr All is specified, returns a list of the above attribute names and their values for the layer. For example: {IsWireLayer <0, 1>} {IsViaLayer <0, 1>} ... • If -attr AllNames is specified, returns a list of the above attribute names. For example: IsWireLayer IsViaLayer ... Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File Other attributes without any specified layer identifier are also returned in the condition of: ■ • If -attr WireLayers is specified, returns a list of wiring layer identifiers defined in all general connection rules. • If -attr ViaLayers is specified, returns a list of via layer identifiers defined in all rules. • If -attr StopLayers is specified, returns a list of stop layer identifiers defined in all rules. • If -attr MultiPolyLayers is specified, returns a list of poly layer identifiers defined in all rules. • If -attr MetalLayers is specified, returns a list of layer identifiers defined in defMetalLayer. • If -attr PolyLayers is specified, returns a list of layer identifiers defined in defPolyLayer. • If -attr OdLayers is specified, returns a list of layer identifiers defined in defOdLayer. • If -attr All is specified, returns a list of the above attribute names and their values. For example: {WireLayers <Wire_Layer_Identifier_List>} {ViaLayers <Via_Layer_Identifier_List>} ... • If -attr AllNames is specified, returns a list of the above attribute names. For example: WireLayers ViaLayers ... tfNetRouteRule: Attributes for a specified layer identifier are returned in the condition of: • If -attr IsPolyLayer is specified, returns 1 if the layer is defined in defPolyLayer; otherwise, returns 0. • If -attr IsMetalLayer is specified, returns 1 if the layer is defined in defMetalLayer; otherwise, returns 0. • If -attr IsRouteLayer is specified, returns 1 if the layer is defined in defPolyLayer or defMetalLayer; otherwise, returns 0. • If -attr HRouteCost is specified, returns the horizontal routing cost of the layer. Valid value: a positive integer. • If -attr VRouteCost is specified, returns the vertical routing cost of the layer. Valid value: a positive integer. Laker³ Tcl Reference Manual K-2015.06 363 Chapter 4: Database Extensions Technology File 364 • If -attr RouteCost is specified, returns a pair of values for the horizontal and vertical routing costs of the layer. For example: <Horizontal_Route_Cost> <Vertical_Route_Cost> • If -attr MinWidth is specified, returns the minimum width of the layer. Valid value: a floating point. • If -attr PreferWidth is specified, returns the preferred width of the layer. Valid value: a floating point. • If -attr MinSpacing is specified, returns the minimum spacing of the layer. Valid value: a floating point. • If -attr Direction is specified, returns the routing direction of the layer. Valid values: H, V, HV, and VH. • If -attr MaxWireLen is specified, returns the maximum wiring length of the layer. This is only valid for the layer defined in defPolyLayer. Valid value: a floating point. • If -attr TrackPitch is specified, returns the pitch of the routing track along the x-axis and y-axis for the layer. For example: <X_Track_Pitch> <Y_Track_Pitch> (two floating points). • If -attr TrackOffset is specified, returns the offset of the routing track along the x-axis and y-axis for the layer. For example: <X_Track_Offset> <Y_Track_Offset> (two floating points). • If -attr Display is specified, returns 1 if displaying the routing track for the layer; otherwise, returns 0. • If -attr Available is specified, returns 1 if the routing track for the layer is available; otherwise, returns 0. • If -attr Spacing is specified, returns a list of other layer identifiers and the spacing values in the same rules where the layer is defined. For example: {<Other_Layer_Identifier> <Spacing_Value>} ... • If -attr ContactCost is specified, returns a list of contact device names and their costs in the same rules where the layer is defined. For example: {<Contact_Device_Name> <Cost>} ... • If -attr FatSpacing is specified, returns a list of value sets in the same rule where the layer is defined. Valid value: a list of floating points. • If -attr All is specified, returns a list of the above attribute names and their values for the layer. For example: {IsPolyLayer <0, 1>} {IsMetalLayer <0, 1>} ... Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File • If -attr AllNames is specified, returns a list of above attribute names. For example: IsPolyLayer IsMetalLayer ... Other attributes without any specified layer identifier are also returned in the condition of: ■ • If -attr PolyLayers is specified, returns a list of layer identifiers defined in defPolyLayer. • If -attr MetalLayers is specified, returns a list of layer identifiers defined in defMetalLayer. • If -attr RouteLayers is specified, returns a list of layer identifiers defined in defPolyLayer or defMetalLayer. • If -attr SpacingLayers is specified, returns a list of layer identifiers defined in the spacingRule rules. • If -attr ContactCost is specified, returns a list of all contact device names and their costs defined in the defContDevice rules. For example: {<Contact_Device_Name> <Cost>} ... • If -attr FatSpacingLayers is specified, returns a list of layer identifiers defined in the fatSpaceRule rules. • If -attr All is specified, returns a list of attribute-value pairs of all above attributes. For example: {PolyLayers <Poly_Layer_Identifier_List>} {MetalLayers <Poly_Layer_Identifier_List>} ... • If -attr AllNames is specified, returns a list of the above attribute names. For example: PolyLayers MetalLayers ... tfMaskResolution: Attributes for a specified layer identifier are returned in the condition of: • If -attr XGridSpacing is specified, returns a pair of the spacing distances of the minor grid along the x-axis for the layer. Valid value: a floating point. • If -attr YGridSpacing is specified, returns a pair of the spacing distances of the minor grid along the y-axis for the layer. Valid value: a floating point. • If -attr GridSpacing is specified, returns a pair of the spacing distances of the minor grid along the x-axis and y-axis for the layer. For example: <X_Grid_Spacing> <Y_Grid_Spacing>. Laker³ Tcl Reference Manual K-2015.06 365 Chapter 4: Database Extensions Technology File • If -attr Available is specified, returns 1 if the minor grid for the layer is available; otherwise, returns 0. • If -attr All is specified, returns a list of the above attribute names and their values for the layer. For example: {XGridSpacing <X_Grid_Spacing>} {YGridSpacing <Y_Grid_Spacing>} {Available <0, 1>} ... • If -attr AllNames is specified, returns a list of the above attribute names. For example: XGridSpacing YGridSpacing GridSpacing Available Other attributes without any specified layer identifier are also returned in the condition of: ■ • If -attr All is specified, returns a list of the layer identifiers defined in the tfMaskResolution section. • If -attr AllNames is specified, returns a list of the above attribute names. For example: XGridSpacing YGridSpacing GridSpacing Available tfStandardDefinition: Attributes are returned in the condition of: • If -attr DeviceName is specified, returns the device name. • If -attr IsStandardVia is specified, returns 1 if the device is a standard via; otherwise, returns 0. • If -attr IsCustomVia is specified, returns 1 if the device is a custom via; otherwise, returns 0. If the attributes for the stdViaDef rules are specified, returns the layerDef attributes in the conditon of: 366 • If -attr LayerDef<Mapped_Layer_Name>Name is specified, returns the mapped layer name defined in the device. • If -attr LayerDef<Mapped_Layer_Name>Layer is specified, returns a layer identifier for the mapped layer defined in the device. • If -attr LayerDef<Mapped_Layer_Name> or -attr LayerDef<Mapped_Layer_Name>All is specified, returns a list of all attribute names and their values for the mapped layer defined in the device. For example: {LayerDef<Mapped_Layer_Name>Name <Mapped_Layer_Name>} {LayerDef<Mapped_Layer_Name>Layer <Layer_Identifier>}. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File • If -attr LayerDef<Mapped_Layer_Name>AllNames is specified, returns a list of the attribute names for the mapped layer defined in the device. For example: LayerDef<Mapped_Layer_Name>Name LayerDef<Mapped_Layer_Name>Layer. • If -attr LayerDef<Mapped_Layer_Name>String is specified, returns the rule string for the mapped layer defined in the device. • If -attr LayerDef or -attr LayerDefAll is specified, returns a list of attribute-value pairs for all mapped layer defined in the device. For example: {LayerDef<Mapped_Layer1_Name>Name <Mapped_Layer1_Name>} {LayerDef<Mapped_Layer1_Name>Layer <Layer_Identifier>} {LayerDef<Mapped_Layer2_Name>Name <Mapped_Layer2_Name>} {LayerDef<Mapped_Layer2_Name>Layer <Layer_Identifier>} ... • If -attr LayerDefAllNames is specified, returns a list of LayerDef<Mapped_Layer_Name> where the mapped layer names defined in the device. For example: LayerDef<Mapped_Layer1_Name> LayerDef<Mapped_Layer2_Name> ... • If -attr LayerDefString is specified, returns the rule string for the layerDef rule defined in the device. If the attributes for the stdViaDef rules are specified, returns the ruleDef attributes as follows. When specifying the attributes, <Command_Name> must be capitalized. • If -attr RuleDef<Command_Name>Default is specified, returns a list of the default values defined with the command name in the device. Valid value: a list of floating points or pairs of floating points. • If -attr RuleDef<Command_Name> or -attr RuleDef<Command_Name>All is specified, returns a list of attributevalue pairs for the command name defined in the device. For example: RuleDef<Command_Name>Default <Default_Value> • If -attr RuleDef<Command_Name>AllNames is specified, returns a list of the attribute names where the command name is defined in the device. For example: RuleDef<Command_Name>Default Laker³ Tcl Reference Manual K-2015.06 367 Chapter 4: Database Extensions Technology File • If -attr RuleDef or -attr RuleDefAll is specified, returns a list of the attribute names and their values for all rules defined in the device. For example: {RuleDef<Command1_Name>Default <Default_Value>} {RuleDef<Command2_Name>Default <Default_Value>} ... • If -attr RuleDefAllNames is specified, returns a list of RuleDef<Command_Name> where the command names defined in the device. For example: RuleDef<Command1_Name> RuleDef<Command2_Name> ... • If -attr RuleDefString is specified, returns the rule string for the ruleDef rule defined in the device. If the attributes for the customViaDef rules are specified, returns the layerDef attributes. The layerDef attributes of the customViaDef rules are similar to the layerDef attributes of the stdViaDef rules. If the attributes for the customViaDef rules are specified, returns the masterDef attributes in the condition of: 368 • If -attr MasterDefLibName is specified, returns the library name of the master cell view for the device. • If -attr MasterDefCellName is specified, returns the cell name of the master cell view for the device. • If -attr MasterDefViewName is specified, returns the view name of the master cell view for the device. • If -attr MasterDef or -attr MasterDefAll is specified, returns a list of attribute-value pairs of all attributes defined in the device. For example: {MasterDefLibName <Library_Name>} {MasterDefCellName <Cell_Name>} {MasterDefViewName <View_Name>} • If -attr MasterDefAllNames is specified, returns a list of all attribute names defined in the device. For example: MasterDefLibName MasterDefCellName MasterDefViewName. • If -attr MasterDefString is specified, returns the rule string of the masterDef rule defined in the device. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File If -attr All or -attr AllNames is specified, returns the following attribues: • If -attr All is specified, returns a list of attribute-value pairs of all above attributes defined in the device. For example: {DeviceName <Device_Name>} {IsStandardVia <0, 1>} {IsCustomVia <0, 1>} ... {LayerDef<Mapped_Layer_Name>Name <Mapped_Layer_Name>} ... {RuleDef<Command_Name>Default <Default_Value>}... {DeviceName <Device_Name>} {IsStandardVia <0, 1>} {IsCustomVia <0, 1>} ... {LayerDef<Mapped_Layer_Name>Name <Mapped_Layer_Name>} ... {MasterDefLibName <Library_Name>}... • If -attr AllNames is specified, returns a list of the above attribute names defined in the device. For example: DeviceName IsStandardVia IsCustomVia LayerDef RuleDef MasterDefLibName MasterDefCellName MasterDefViewName. Syntax Method 1: tfGet -lib libId -sect sectName [-deviceName deviceName [deviceType deviceType] [-ver version]] Method 2: tfGet -obj objId [-layer layerId] [-attr attrName] Method 3: tfGet -lib libId -sect sectName [-deviceName deviceName [deviceType deviceType] [-ver version]] [-layer layerId] -attr attrName Method 4: tfGet -lib libName -param parameters Returns For Method 1, a section or device identifier is returned if successful; otherwise, returns nothing. For Method 2, 3 and 4, the value of the specified attribute is returned if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 369 Chapter 4: Database Extensions Technology File Arguments 370 Argument Description -attr attrName Specify the attribute name. Valid values: All and AllNames (default=All). All : Retuen a list of all attribute names and their values. AllNames : Return a list of all attribute names. -deviceName deviceName Specify the device name. This argument is valid for the tfLayoutMagicCell and tfStandardDefinition sections. For the tfLayoutMagicCell section, only the transistor device names are supported. -deviceType deviceType Specify the device type. This argument is valid for the transistor device type defined in the tfLayoutMagicCell section. -layer layerId Specify the layer identifier. -lib libId/libName Specify the library identifier only for Method 1, 2, and 3. Specify the logical library name or library identifier for Method 4. -obj objId Specify the section or device identifier. -param parameters Specify the parameters. Valid values: fileName and lastModifiedDate. fileName : Get the full path of the specified technology file. lastModifiedDate : Get the last modified date of the specified technology library. This date is updated when creating a library or replacing a technology file. -sect sectName Specify the section name to query rules. Valid values: tfTechParameter, tfLayoutSystemUnit, tfSystemPurpose, tfLayoutLayerTable, tfStreamIoTable, tfLayoutMagicCell, tfLayoutConnection, tfNetRouteRule, tfMaskResolution, and tfStandardDefinition. Laker³ Tcl Reference Manual K-2015.06 Chapter 4: Database Extensions Technology File Argument Description -ver version Specify the version number. This argument is valid for the tfLayoutMagicCell section. Valid value: a positive integer, less than or equal to the latest version number (default=0, which corresponds to the latest version number). For example, assuming that the latest version number is 5, and the version number of the working MCell sub-master is 3, when -ver 0 is specified, the rule value of the latest version is returned. When -ver 1 is specified, the rule value of version number 1 is returned. When -ver is not specified, the rule value of the working sub-master version is returned. Examples # Example 1 # return the purpose number (240) of substrate tfGet -lib sample -sect tfSystemPurpose -attr substrate # Example 2 # return the purpose name (substrate) of the purpose number (240) tfGet -lib sample -sect tfSystemPurpose -attr PurposeNum240 # Example 3 # Return the full path of the technology file tfGet -lib sample -param fileName # Output Results: # /home/sample/mytf/sample.tf # Example 4 # Return the last modified time of the technology library set libId [dbOpenLib -lib sample -mode readOnly] tfGet -lib $libId -param lastModifiedTime # Output Results: # Thu May 6 20:31:44 CST 2010 Laker³ Tcl Reference Manual K-2015.06 371 Chapter 4: Database Extensions Technology File 372 Laker³ Tcl Reference Manual K-2015.06 5 5 Home Page This chapter describes the definable Tcl commands to access the Graphical User Interface (GUI) which applied within the Home Page. The Tcl commands are explained in the following sections. Tcl commands and arguments are sorted alphabetically. ■ File Commands ■ Library Commands ■ Category Commands ■ Cell Commands ■ Floorplan Commands ■ Options Commands ■ Symbol Callback Commands ■ Netlist Procedure Commands ■ Miscellaneous File Commands This section describes the Tcl commands applied to the File commands of the Home Page. These commands include: ■ adpLibMgrExportSpice ■ adpLibMgrExportVeri ■ adpLibMgrImportTextView ■ adpLibMgrOpenDesign Laker³ Tcl Reference Manual K-2015.06 373 Chapter 5: Home Page File Commands ■ adpOpenWaveAna ■ lakerCDLIn ■ lakerCDLOut ■ lakerCheckSchTimeStamp ■ lakerCheckUnsavedDesign ■ lakerChmod ■ lakerEDIFIn ■ lakerExit ■ lakerExpandSchParameter ■ lakerExportConstraint ■ lakerExportDEF ■ lakerExportLEF ■ lakerExportOASIS ■ lakerExportStream ■ lakerImportConstraint ■ lakerImportDEF ■ lakerImportLEF ■ lakerImportOASIS ■ lakerImportStream ■ lakerImportTLUPlus ■ lakerImportVerilog ■ lakerOpenDesign ■ lakerSession adpLibMgrExportSpice The adpLibMgrExportSpice command exports the Laker ADP database to a Spice format database. 374 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Syntax adpLibMgrExportSpice -lib libName -cell cellName [-view viewName] [-file fileName] [-case case] [-sim netType] [-include 0|1] [-flatten 0|1 [-delimiter delimiter]] [level 0|1] [-forkChild 0|1] [-end 0|1] [-genPseu 0|1] [genIncVa 0|1] [-addu 0|1] [-spiceStop 0|1] [-outputBorder 0|1] [-dummySuffix 0|1] [-busParentheses style] [linespace lineSpace] [-popupInfoDlg 0|1] [-extScript 0|1 [-command command] [-argv arguments]] [-pinInfo 0|1] [removeDevice 0|1] Returns None Arguments Argument Description -addu 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Apply the ‘u’ scale to the width and length. 0 : Do not apply the ‘u’ scale to the width and length. -argv arguments Specify the arguments for the script command when -extScript is specified. -busParentheses style Specify the bus translation style. Valid values: Angle, Square, Underscore, and None (default=Angle). -case case Specify the case sensitivity setting for the design. Valid values: preserve, upper, and lower (default=preserve). -cell cellName Specify the cell name of the output design. -command command Specify the script command file when -extScript is specified. -delimiter delimiter Specify the hierarchical delimiter for objects when -flatten is specified. -dummySuffix 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Append Port Name for Dummy Nodes option. 0 : Disable the Append Port Name for Dummy Nodes option. Laker³ Tcl Reference Manual K-2015.06 375 Chapter 5: Home Page File Commands 376 Argument Description -end 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Add the .end statement. 0 : Do not add the .end statement. -extScript 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Invoke Script option. 0 : Disable the Invoke Script option. -file fileName Specify the file name of the output file. -flatten 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Output the design to a flattened netlist. 0 : Output the design to a hierarchical netlist. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Invoke batch mode. 0: Do not invoke batch mode. -genIncVa 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Generate the IncVA file (Include Verilog-A Modules in Eldo/ Spice netlist). 0 : Do not generate the IncVA file. -genPseu 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Display the pseudo device statement. 0 : Do not display the pseudo device statement. -include 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export the header for each subcircuit. 0 : Do not export the header for each subcircuit. -level 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Declare all levels in the output file as subckt. 0 : Do not declare all levels in the output file as subckt. -lib libName Specify the library name. -linespace lineSpace Specify the number of maximum characters per line. Valid value: an integer, from 32 to 4096 (default=128). -outputBorder 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export the border information of the top schematic. 0 : Do not export the border information of the top schematic. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -pinInfo 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Append the pin direction information after the subckt statement in the netlist. 0 : Do not append the pin direction information after the subckt statement in the netlist. -popupInfoDlg 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show the Export Results Report form after exporting. 0 : Do not show the above form after exporting. -removeDevice 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Remove the instance with the RemoveDevice parameter. 0 : Do not remove the instance with the RemoveDevice parameter. -sim netType Specify the netlist type for the simulation. Valid values: Hspice, CDL, Eldo, SmartSpice, and Spectre (default=Hspice). -spiceStop 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Ignore the spiceStop statement. 0 : Do not ignore the spiceStop statement. -view viewName Specify the view name for the output file. Valid values: schematic and config. Examples # Example 1 adpLibMgrExportSpice -lib mixMode -cell inst -view schematic \ -file inst.sp -case preserve -sim Hspice -include 0 -level 0 \ -forkChild 0 -end 0 -genPseu 0 -genIncVa 0 -addu 0 \ -spiceStop 1 -outputBorder 0 -dummySuffix 0 \ -busParentheses Angle -linespace 72 -extScript 0 # Example 2 adpLibMgrExportSpice -lib mixMode -cell test1 -view config \ -file test1.sp -case preserve -sim Hspice -include 0 -level 0 \ -forkChild 0 -end 0 -genPseu 0 -genIncVa 0 -addu 0 \ -spiceStop 1 -outputBorder 0 -busParentheses Angle \ -linespace 72 -extScript 0 -popupInfoDlg 1 See Also Home Page: File > Export > Spice Laker³ Tcl Reference Manual K-2015.06 377 Chapter 5: Home Page File Commands adpLibMgrExportVeri The adpLibMgrExportVeri command exports the design database to the Verilog format database. Syntax adpLibMgrExportVeri -lib libName -cell cellName -view viewName -file fileName [-by callStyle] [-expand 0|1] [splitBundle 0|1] [-veriStop 0|1] [-hiddenPort port] [popupInfoDlg 0|1] [-linespace num] [-outTextView 0|1][cellHeader 0|1][-pwr netNames][-gnd netNames] [splitInstArray 0|1] [-insteadToken insteadValue] Returns None Arguments 378 Argument Description -by callStyle Specify the calling style for the port instance statement. Valid values: name and reference (default=name). -cell cellName Specify the cell name. -cellHeader 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Dump the cell information before the module body. 0 : Do not dump the cell information before the module body. -expand 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Execute the bus expansion. 0 : Do not execute the bus expansion. -file fileName Specify the output file name. -gnd netNames Specify the ground net name to be supply0 in the netlist. -hiddenPort port Specify the direction of hidden ports when exporting the Verilog netlist. Valid values: input and inout (default=inout). -insteadToken insteadValue Specify the parentheses style for the instance array. Valid values: line, square, and arc (default=line). -lib libName Specify the library name. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -linespace num Specify the number of maximum characters per line. Valid value: an integer, from 32 to 4096 (default=128). -outTextView 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Merge the plain text files into one netlist file when exporting Verilog netlist. 0 : Do not merge the plain text files into one netlist file when exporting Verilog netlist. -popupInfoDlg 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show the Export Results Report form after exporting. 0 : Do not show the above form after exporting. -pwr netNames Specify the power net name to be supply1 in the netlist. -splitBundle 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Expand bundle ports. 0 : Do not expand bundle ports. -splitInstArray 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Expand instance array. 0 : Do not expand instance array. -veriStop 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Ignore the verilogStop statement. 0 : Do not ignore the verilogStop statement. -view viewName Specify the view name. Examples # Example 1 adpLibMgrExportVeri -lib aa -cell BIT4_SW_CP_CELL \ -file BIT4_SW_CP_CELL.v -by name -expand 0 -veriStop 0 # Example 2 adpLibMgrExportVeri -lib IO -cell BBC4F -view schematic \ -file BBC4F.v -by name -expand 0 -splitBundle 0 \ -veriStop 0 -hiddenPort inout -linespace 128 -popupInfoDlg 1 See Also Home Page: File > Export > Verilog Laker³ Tcl Reference Manual K-2015.06 379 Chapter 5: Home Page File Commands adpLibMgrImportTextView The adpLibMgrImportTextView command imports a text file into the Laker ADP database. Syntax adpLibMgrImportTextView [-file|-list] listFilename -path runPath -lib libName -refLib refLib -tech techLibName [append] -textType textType Returns None Arguments Argument Description -append Specify that the technology file is from a library. -file listFilename Specify the name of the file. -lib libName Specify the library name of the imported results. -list listFilename Specify the name of the list file for the Verilog family. -path runPath Specify the location of the imported results. -textType textType Specify the language of text. Valid Values: verilog, veriloga, verilogams, spice, and spectre (default=verilog). Examples adpLibMgrImportTextView -textType verilog \ -file /home2/REG/FA.v -path /REG -lib wk2 See Also Home Page: File > Import > Text adpLibMgrOpenDesign The adpLibMgrOpenDesign command returns 1 if the design data, with the specified path and open mode, can be opened in a new Schematic Editor window. 380 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Syntax adpLibMgrOpenDesign -lib libName -cell cellName [-mode mode] [-viewType cellviewType] [-view viewName] [-showDsgWnd restoreNum] [-topCell topCell] [-viewList {viewList}] [stopList {stopList}] [-openConfig] [-openTopCell] [dmCVCkout 0|1] [-dmCVCkin 0|1][-restorenum 0|1] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell to be opened. -dmCVCkin 0|1 Valid values: Boolean values, 0 and 1. 1 : Check in cell view files, that are checked out automatically. The default value depends on the setting in the laker.rc resource file. 0 : Do not check in cell view files. -dmCVCkout 0|1 Valid values: Boolean values, 0 and 1. 1 : Check out cell view files. The default value depends on the setting in the laker.rc resource file. 0 : Do not check out cell view files. -lib libName Specify the library database. -mode mode Specify an open mode. Valid values: edit and readOnly (default=edit). -openConfig When specified, open the config view of the selected cell in the Hierarchy Editor window. -openTopCell When specified, open the top cell of the selected config view in the Schematic Editor window. -restorenum 0|1 Valid values: Boolean values, 0 and 1. 1 : Open the backup version cell view file. 0 : Do not open the backup version cell view file. -showDsgWnd restoreNum Restore the backup database (default=-1). Laker³ Tcl Reference Manual K-2015.06 381 Chapter 5: Home Page File Commands Argument Description -stopList {stopList} Specify a stop list at the global level with the following format: {view1 view2 ... viewn}. For example: {schematic symbol}. Valid values: schematic, symbol, simulation, config, veriloga, verilog, spice, and any user-defined view name. -topCell topCell Specify the top cell of the config view with the following format: {libName cellName viewName}. -view viewName Specify the view name of the cell to be opened. Valid values: schematic, symbol, simulation, config, veriloga, verilog, spice, and any user-defined view name (default=schematic). -viewList {viewList} Specify an inherited view list at the cell level with the following format: {view1 view2 ... viewn}. For example: {schematic symbol}. Valid values: schematic, symbol, simulation, config, veriloga, verilog, spice, and any user-defined view name. -viewType cellviewType Specify the cell view type of the cell to be opened. Valid values: schematic, schematicSymbol, simulation, config, veriloga, verilog, and spice (default=schematic). Examples # Example 1 # Create a new schematic view of library "a1", cell "ss" adpLibMgrOpenDesign -lib a1 -cell ss -view schematic \ -mode edit -showDsgWnd 1 # Example 2 # Create a new symbol view of library "a1", cell "ss" adpLibMgrOpenDesign -lib a1 -cell ss -view symbol \ -mode edit -showDsgWnd 1 # Example 3 # Create cell aaa with sym01 view, its cell view type is schematic adpLibMgrOpenDesign -lib test -cell aaa -mode edit \ -viewType schematic -view sym01 -showDsgWnd 1 # Example 4 382 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands # Create cell aaa with schematic view, its cell view type is # schematic adpLibMgrOpenDesign -lib test -cell aaa -mode edit \ -view schematic -showDsgWnd 1 # Example 5 # Open cell aaa with sym01 view adpLibMgrOpenDesign -lib test -cell aaa -mode edit \ -view sym01 -showDsgWnd 1 # Example 6 # Create a new config view adpLibMgrOpenDesign -lib FA4 -cell HA -mode edit -view config \ -showDsgWnd 1 -topCell {FA4 HA schematic} -viewList schematic # Example 7 # Open an existing config view adpLibMgrOpenDesign -lib FA4 -cell XOR2 -mode edit -view config \ -showDsgWnd 1 -openConfig -openTopCell See Also adpDiscardDesign Home Page: File> Open Home Page: Cell > New Schematic Editor: Cell> Open adpOpenWaveAna The adpOpenWaveAna command returns 1 if the LakerWave window is opened. Syntax adpOpenWaveAna -topWnd winId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -topWnd winId Specify the top window identifier. Examples adpOpenWaveAna -topWnd _adp1 Laker³ Tcl Reference Manual K-2015.06 383 Chapter 5: Home Page File Commands See Also Home Page: File > Waveform Analyzer lakerCDLIn The lakerCDLIn command imports a CDL format design to the Laker database. Syntax lakerCDLIn -file fileName [-topCell topCells] [-excludedCell excludedCells] -lib libName [-path path] ([-tech techFile]| [-attachToLib masterLib]) [-forkChild 0|1] [ps 0|1] [-scale scale_LW] [-case case] [-cellCase case] [-instCase case] [-netCase case] [-paraCase case] [modelMap modelMap] [-expandLog logFile] [-refLib refLibName] [-execECO 0|1] [-extractConstraint 0|1] [priority priority] [-suffix suffix] [-ecoFile ecoFileName] [-dumpMap modelMapFile] [-genAllSchematic 0|1] [-preProc 0|1] [-preProcBckp 0|1] [preProcBckpSuffix suffix] [-preProcCmd filename] [preProcArgs args] [-postProc 0|1] [-postProcCmd filename] Returns None Arguments 384 Argument Description -attachToLib masterLib Specify the master library. This creates a library with the technology file settings of the specified master library. -case case Globally set the case sensitivity in cell names, instance names, pin/port/net names and parameter names. Valid values: upper, lower, and preserve (default=preserve). -cellCase case Set the case sensitivity in cell names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. -dumpMap modelMapFile Specify the model map file to be dumped from the reference library. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -ecoFile ecoFileName Specify the extracting command file. -excludedCell excludedCells Specify the cells to be excluded. Multiple names must be separated by spaces. -execECO 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Execute the ECO command file automatically. 0: Do not execute the ECO command file. -expandLog logFile Specify the log file to describe the relationship between the parameter and logic view name of expanded cells. -extractConstraint 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract design-driven layout (DDL) constraints. 0: Do not extract DDL constraints. -file fileName Specify the input CDL netlist file name. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Invoke batch mode. 0: Do not invoke batch mode. -genAllSchematic 0|1 Valid value: Boolean values, 0 and 1 (default=1). 1: Generate schematics with placement and routing. 0: Generate schematics without placement and routing. -instCase case Set the case sensitivity in instance names only. If not specified, the global setting specified by -case isused. Valid values: upper, lower, and preserve. -lib libName Specify the library database. -modelMap modelMap Specify the model map file. -netCase case Set the case sensitivity in pin/port/net names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. -paraCase case Set the case sensitivity in parameter names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. Laker³ Tcl Reference Manual K-2015.06 385 Chapter 5: Home Page File Commands 386 Argument Description -path path Specify the working directory (default=current directory). -postProc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Post-process option. 0 : Disable the Post-process option. -postProcCmd filename Specify the Tcl script file. This argument is valid only if postProc 1 is specified. -preProc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Pre-process option. 0 : Disable the Pre-process option. -preProcArgs args Specify the arguments for the Tcl script. This argument is valid only if -preProc 1 is specified. -preProcBckp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Backup Input File with Suffix option. 0 : Disable the Backup Input File with Suffix option. -preProcBckpSuffix suffix Specify the suffix string for the backup input file. Valid value: a string (default=_bak). -preProcCmd filename Specify the Tcl script file. This argument is valid only if preProc 1 is specified. -priority priority Specify a priority to handle conflicted constraints. Valid values: schematic and layout (default=schematic). -ps 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract the swapping information of equivalent ports from the imported netlist data. 0: Do not extract any swapping information. -refLib refLibName Specify the referenced library for extracting the object tree information. -scale scale_LW Set a scale factor to evaluate the final width and length of transistors in the schematic. The unit is micron (u), and the default value is 1. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -suffix suffix Specify the suffix for renaming conflicted constraints (default=_LK). -tech techFile Specify the technology file. -topCell topCells Specify the top cells of the design to be translated. Multiple names must be enclosed by brackets { } and separated by spaces, commas, or semicolons. Examples # Example 1 lakerCDLIn -file demo.cir -tech demo.tf -lib test -modelMap demo.map # Example 2 lakerCDLIn -file AutoPortMap.cir -tech leo306.tf -lib testDB \ -forkChild 0 -ps 1 -case preserve -modelMap AutoPortMap.map # Example 3 lakerCDLIn -refLib q1 -ecoFile ./q1_ECO.cmd -file retree.cir \ -tech demo.tf -lib q2 -forkChild 0 -ps 1 -case preserve # Example 4 lakerCDLIn -refLib q1 -retreeView schematic -backup 0 \ -ecoFile ./q1_ECO.cmd -dumpMap ./q1.map -file retree.cir \ -tech sample.tf -lib q2 -forkChild 0 -ps 1 -case preserve \ -modelMap test2.map # Example 5 lakerCDLIn -file demo.cir -tech demo.tf -lib test \ -modelMap demo.map -expandLog ./demo_expand.log # Example 6 lakerCDLIn -file laker.cir -lib top -tech ./a.tf -ps 1 \ -modelMap ./a.map -case upper -cellCase preserve -netCase lower # Example 7 # Specify OPG & Sum as top cells; specify inv as the excluded cell lakerCDLIn -file rcMfactor.cir -lib PCell -topCell {OPG Sum} \ -excludedCell {inv} -modelMap rcMfactor.map # Specify script tab lakerCDLIn -file rcMfactor.cir -lib PCell \ -modelMap rcMfactor.map -preProc 1 -preProcBckp 0 \ -preProcBckpSuffix _bak -preProcCmd preProc.tcl \ -preProcArgs {$FileName} -postProc 1 -postProcCmd postProc.tcl Laker³ Tcl Reference Manual K-2015.06 387 Chapter 5: Home Page File Commands See Also Home Page: File > Import > CDL In lakerCDLOut The lakerCDLOut command exports the Laker design database to a CDL format database. Syntax lakerCDLOut -file fileName -lib libName [-topCell topCellName] [-prefix 0|1] [-modelMap mapFile] [forkChild 0|1] Returns None Arguments Argument Description -file fileName Specify the output CDL netlist file name. -forChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -lib libName Specify the library database. -modelMap mapFile Specify the model map file if adding prefix to the element name. -prefix 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Add prefix to the element name. 0 : Do not add prefix to the element name. -topCell topCellName Specify the top cell name. Examples # Example 1 lakerCDLOut -file CkSpiceout.cir -lib qqq -forkChild 1 # Example 2 lakerCDLOut -file test.sp -lib test -topCell “TEST” \ 388 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands -prefix 1 -modelMap new.map See Also Home Page: File > Export > CDL Out lakerCheckSchTimeStamp The lakerCheckSchTimeStamp command checks whether the corresponding schematics are modified since the last expansion by verifying the schematic time stamp for all logic cell views in the specified libraries. Syntax lakerCheckSchTimeStamp -autoCheck | -lib libraryNameList [showResultForm 0|1] | -closeResultForm | -checkOpenResult Returns When -autocheck or -lib is specified: ■ If successful, a list of designs is returned when any of the designs are not synchronized. This is a compound list, and the format is {library_name_1 {cell_name_11 cell_name12 ...}} {library_name_2 {cell_name_21 cell_name_22 ...}} ... ■ Or, nothing is returned if all designs are synchronized. When -checkOpenResult is specified: ■ A pair of library/cell names is returned if successful when some working designs are not synchronized. Arguments Argument Description -autoCheck Automatically check the schematic time stamp of working designs. -checkOpenResult Get the checked results from the working design. -closeResultForm Close the Checked Results form. -lib libraryNameList Specify a set of libraries to be checked. Laker³ Tcl Reference Manual K-2015.06 389 Chapter 5: Home Page File Commands Argument Description -showResultForm 0|1 Valid value: Boolean values, 0 and 1 (default=0). 1 : Show the Checked Results form. 0 : Hide the Checked Results form. Examples # Auto check on working designs lakerCheckSchTimeStamp -autoCheck # Check the "LibA", "LibB" and "LibC" libraries, # and show the Checked Results form lakerCheckSchTimeStamp -lib LibA LibB LibC -showResultForm 1 # and found that the following designs are not synchronized # CellA2, CellA10, and CellA23 in LibA; CellC3 in LibC # {LibA {CellA2 CellA10 CellA23}} {LibC {CellC3}} # Close the checked results form lakerCheckSchTimeStamp -closeResultForm # Get the checking results from the working design lakerOpenDesign -lib LibA -cell CellA2 lakerCheckSchTimeStamp -checkOpenResult # and found that the working design is not synchronized # LibA CellA2 See Also Home Page: File > Check Schematic Time Stamp lakerCheckUnsavedDesign The lakerCheckUnsavedDesign command checks whether all layout designs are saved in memory. 390 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands A Save Confirmation form appears if there are any unsaved designs. You can click Check All to check all designs in the Save field, or click Check None to uncheck all designs in the Save field. Figure 1 Save Confirmation Form Syntax lakerCheckUnsavedDesign Returns 1 if OK is clicked in the Save Confirmation form; otherwise returns 0 if Cancel is clicked in the form. Arguments None Examples lakerCheckUnsavedDesign lakerChmod The lakerChmod command configures the access permission of the specified library or cell. Syntax lakerChmod -lib libName [-cell cellName [-view viewName]] [-ownerW 0|1] [-groupR 0|1] [-groupW 0|1] [-otherR 0|1] [-otherW 0|1] Returns None Laker³ Tcl Reference Manual K-2015.06 391 Chapter 5: Home Page File Commands Arguments Argument Description -cell cellName Specify the cell to be configured. -lib libName Specify the library database. -groupR 0|1 Valid values: Boolean values, 0 and 1. 1 : Restrict the read permission to group members. 0 : Disallow the read permission to group members. -groupW 0|1 Valid values: Boolean values, 0 and 1. 1 : Restrict the write permission to group members. 0 : Disallow the write permission to group members. -otherR 0|1 Valid values: Boolean values, 0 and 1. 1 : Restrict the read permission to others who are not in the same group. 0 : Disallow the read permission to others who are not in the same group. -otherW 0|1 Valid values: Boolean values, 0 and 1. 1 : Restrict the write permission to others who are not in the same group. 0 : Disallow the write permission to others who are not in the same group. -ownerW 0|1 Valid value: Boolean values, 0 and 1. 1 : Restrict the write permission to the owner. 0 : Disallow the write permission to the owner. -view viewName Specify the view name of the cell to be configured. Examples # Example 1 # configure the access permission of demoCell in demoLib library lakerChmod -lib demoLib -cell demoCell -groupR 1 -groupW 1 \ -otherR 1 -otherW 0 # Example 2 # Disallow the write permission of layout view of demoCell cell # in demoLib library to the owner lakerChmod -lib demoLib -cell demoCell -view layout -ownerW 0 392 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands See Also Home Page: File > Access Permission lakerEDIFIn The lakerEDIFIn command imports an EDIF format design to the Laker database. Syntax lakerEDIFIn -file fileName [-topCell topCellName] -lib libName [-from fromSource] ([-tech techFile] | [attachToLib masterLib]) [-path path] [-cvMode cellviewMode] [-forkChild 0|1] [-ps 0|1] [-case case] [cellCase case] [-instCase case] [-netCase case] [paraCase case][-scale scale_LW] [-refLib refLibName] [execECO 0|1] [-overwriteCell 0|1] [-modelMap modelMdap] [-expandLog logFile] [-extractConstraint 0|1] [-priority schematic|layout] [-cdf cdfPath] [-suffix suffix] [ecoFile ecoFileName] [-dumpMap modelMapFile] [ignoreNameList {IgnoreList}] [-shortNameList {ShortList}] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -attachToLib masterLib Specify the master library. This creates a library with the technology file settings of the specified master library. -case case Globally set the case sensitivity in cell names, instance names, pin/port/net names and parameter names. Valid values: upper, lower, and preserve (default=preserve if it imports from Composer; default=upper if it imports from ViewDraw). -cdf cdfPath Specify the iCDF directory. -cellCase case Set the case sensitivity in cell names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. Laker³ Tcl Reference Manual K-2015.06 393 Chapter 5: Home Page File Commands 394 Argument Description -cvMode cellviewMode Get the EDIF information. Valid values: netlist and schematic (default=schematic). netlist: Cell views with logic information only. schematic: Cell views with logic and physical information. -dumpMap modelMapFile Specify the model map file that is to be dumped from the reference library. -ecoFile ecoFileName Specify the extracting command file. -execECO 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Execute the ECO command file automatically. 0: Do not execute the ECO command file. -expandLog logFile Specify the log file to describe the relationship between the parameter and logic view name of expanded cells. -extractConstraint 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract design-driven layout (DDL) constraints. 0: Do not extract DDL constraints. -file fileName Specify the input EDIF schematic file name. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Invoke batch mode. 0: Do not invoke batch mode. -from fromSource Indicate the file source of EDIF data. Valid values: Composer and ViewDraw. (default=Composer). -ignoreNameList {IgnoreList} Specify the property used to ignore devices or symbols. -instCase case Set the case sensitivity in instance names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. -lib libName Specify the library database. -modelMap modelMap Specify the model map file. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -netCase case Set the case sensitivity in pin/port/net names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. -overwriteCell 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Overwrite existing cell views. 0: Do not overwrite any existing cell views. -paraCase case Set the case sensitivity in parameter names only. If not specified, the global setting specified by -case is used. Valid values: upper, lower, and preserve. -path path Specify the working directory (default=current directory). -priority schematic|layout Specify a priority to handle conflicted constraints. Valid values: schematic and layout (default=schematic). -ps 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract the swapping information of equivalent ports from the imported schematic. 0: Do not extract any swapping information. -refLib refLibName Specify the referenced library for extracting the object tree information. -scale scale_LW Set a scale factor to evaluate the final width and length of transistors in the schematic. The unit is micron (u), and the default value is 1. -shortNameList {ShortList} Specify the property used to ignore devices and short pins. -suffix suffix Specify the suffix for renaming conflicted constraints (default=_LK). -tech techFile Specify the technology file. -topCell topCellName Specify the top cell name of the design to be translated. Examples # Example 1 lakerEDIFIn -file ./16adder.edif -tech ./16adder.tf -path . \ Laker³ Tcl Reference Manual K-2015.06 395 Chapter 5: Home Page File Commands -forkChild 0 -ps 1 -case preserve -modelMap ./16adder.map # Example 2 lakerEDIFIn -file ./16adder.edif -tech ./16adder.tf -path . \ -forkChild 0 -ps 1 -case preserve -modelMap ./16adder.map # Example 3 lakerEDIFIn -file ./16adder.edif -tech ./16adder.tf -path . \ -forkChild 0 -ps 1 -case preserve -modelMap ./16adder.map \ -expandLog ./16adder_expand.log # Example 4 lakerEDIFIn -file ./adder.edif -tech ./adder.tf -path . \ -ps 1 -modelMap ./adder.map -case upper -cellCase preserve \ -netCase lower See Also Home Page: File > Import > EDIF200 From Composer Home Page: File > Import > EDIF200 From ViewDraw lakerExit The lakerExit command closes and leaves the program. This command is usually written on the last line of the command file (*.cmd) to exit the program. Syntax lakerExit [-confirm 0|1][-dmCkinDesign design_name [design_name ...]] [-dmCkcancelDesign design_name [design_name ...]] Returns None Arguments 396 Argument Description -confirm 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Prompt a confirmation form when exiting the program. 0 : Do not prompt a confirmation form when exiting the program. -dmCkinDesign design_name [design_name ...] Specify a design name or a set of design names, which are checked out automatically, to be checked in. Valid value: {library_name cell_name view_name}. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -dmCkcancelDesign design_name [design_name ...] Specify a design name or a set of design names, which are checked out automatically, to cancel the check out. Valid value: {library_name cell_name view_name}. Examples # Example 1 # Exit the program lakerExit # Example 2 # Check in or cancel checkouts automatically as exiting process lakerExit -dmCkcancelDesign \ {CPU AN2D1 layout} {CPU AN3D1 schematic} \ -dmCkinDesign {CPU INV0 symbol} {CPU INV1 abs} # Example 3 lakerExit -saveToDisk 1 See Also Home Page: File > Exit lakerExpandSchParameter The lakerExpandSchParameter command expands the schematic data to the Laker database. This command is only available for the Laker_L3 and Laker_Viewer license features. Syntax lakerExpandSchParameter -lib libName [-topCell topCellName] [-toLib toLib] [-path path] [-tech techFile | -attachToLib masterLib] [-refLib refLibName] [-execECO 0|1] [extractConstraint 0|1] [-suffix suffix] [-ps 0|1] [-copy 0|1 -copyRefLib copyRefLib] [-overwriteCell 0|1] [priority priority] [-scale scale] [-ecoFile ecoFileName] [-dumpMap modelMapFile] [-modelMap modelMapFile] [showOnly [-cbFunc cbProcName]] [-expandLog logFile] [switchViews viewList] [-ignoreNameList {IgnoreList}] [shortNameList {ShortList}] [-expandVectorInst 0|1] [skipSaveModelMap 0|1] [-expandLevel level] Laker³ Tcl Reference Manual K-2015.06 397 Chapter 5: Home Page File Commands Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -attachToLib masterLib Specify the master library. This creates a library with the technology file settings of the specified master library. -cbFunc cbProcName Specify the callback procedure name when the user action is completed. The callback procedure has a parameter with string, which can be written in the following format: {srcLibName srcTopCellName srcTopViewName} {destLibName destTopCellName destTopViewName}. When the user action failed or is cancelled, the parameter of the callback procedure is empty. The callback procedure is discarded when the command is aborted. 398 -copy 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Copy expanded source cell views to the target cell views. 0: Do not copy any expanded source cell views. -copyRefLib copyRefLib Copy referenced libraries. This argument works with copy. Valid values: all, noRef, and ignoreRef. all : Copy expanded source cell views with all referenced libraries. noRef : Copy expanded source cell views without any referenced libraries. ignoreRef : Copy expanded source cell views with all referenced libraries except those specified. ignoreRef is not supported as copying a category. -dumpMap modelMapFile Specify the model map file that is to be dumped from the reference library. -ecoFile ecoFileName Specify the extracting command file. -execECO 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Execute the ECO command file automatically. 0: Do not execute the ECO command file. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -expandLevel level Specify the hierarchy level to be expanded to. Valid value: an integer from 0 to 49. -expandLog logFile Specify the log file to describe the relationship between the parameter and logic view name of expanded cells. -expandVectorInst 0|1 Valid values: Boolean values, 0 and 1. 1: Expand array objects (vector instances) to scalar instances in the logic view. 0: Retain array objects (vector instances) in the logic view. -extractConstraint 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract design-driven layout (DDL) constraints from layout and schematic databases. 0: Extract DDL constraints from schematic database. -ignoreNameList {IgnoreList} Specify the property used to ignore devices or symbols. -lib libName Specify the library database to be expanded. -modelMap modelMap Specify the model map file. -overwriteCell 0|1 This argument comes along with -copy. Valid values: Boolean values, 0 and 1 (default=0). 1: Overwrite existing cell views when copying the source cell view. 0: Do not overwrite any existing cell views. -path path Specify the working directory (default=current directory). -priority priority Specify a priority to handle conflicted constraints. Valid values: schematic and layout (default=schematic). -ps 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract the swapping information of equivalent ports. 0: Do not extract any swapping information. -refLib refLibName Specify the reference library for extracting the object tree information. Laker³ Tcl Reference Manual K-2015.06 399 Chapter 5: Home Page File Commands Argument Description -scale scale Set a scale factor to evaluate the final width and length of transistors in the schematic. The unit is micron (u). -showOnly If specified, show the Expand Schematic Parameter form with settings passed from this Tcl lakerExpandSchParameter. -shortNameList {ShortList} Specify the property used to ignore devices and short pins. -skipSaveModelMap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Do not save the specified model map file to the target library. 0: Save the specified model map file to the target library. -suffix suffix Specify the suffix for renaming conflicted constraints (default=_LK). -switchViews viewList Specify one or more view names. -tech techFile Specify the defined ASCII technology file. -toLib toLib Specify the destination library of the expanded results. -topCell topCellName Specify the top cell name of the expanded design. Examples # Example 1 lakerExpandSchParameter -lib demo1 -toLib demo2 -refLib demo1 \ -extractConstraint 1 -priority layout -suffix _LK -execECO 1 # Example 2 lakerExpandSchParameter -showOnly -lib demo1 -toLib demo2 \ -refLib demo1 -extractConstraint 1 -priority layout \ -suffix _LK -execECO 1 -topCell test -cbFunc myProc # Example 3 # Copy schematic with all referenced libraries except the # specified libraries libA", libB, and libC lakerExpandSchParameter -copy 1 \ -copyRefLib ignoreRef libA libB libC 400 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands See Also Home Page: File > Expand Schematic lakerExportConstraint The lakerExportConstraint command exports library level constraints from specified cells and views. Syntax lakerExportConstraint -lib libName -file fileName [-cell cellNameList] [-view viewNameList] [-logFile logErrName] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellNameList Specify a list of cell names separated by spaces. If the cell list is not specified, constraints within each cell in the selected library are exported. If it is specified, constraints within the specified cell list are exported. -file fileName Specify the output file name that is determined by the specified library, cell and view names. The default is <libName>_<cellName>_<viewName>.cons. -lib libName Specify the target library for constraints to be exported. -logFile logErrName Specify the file name for the log and error files (default=constExport). -view viewNameList Specify a list of view names separated by spaces. If the view list is not specified, constraints of all views in the selected cell are exported. If the view list is specified, constraints of the view list are exported. Examples # Example 1 # Extract constraints from the logic view of cell 'TEST_01' # from library 'TEST_LIB' Laker³ Tcl Reference Manual K-2015.06 401 Chapter 5: Home Page File Commands lakerExportConstraint -lib TEST_LIB -file TEST_LIB_logic.cons \ -cell TEST_01 -view logic See Also Home Page: File > Export > Constraint lakerExportDEF The lakerExportDEF command exports the Laker3 database to a DEF format database. Syntax lakerExportDEF -file fileName -lib libName [-topCell topCellName] [-view viewName] [-logFile logErrName] [forkChild 0|1] [-rectDrcFill 0|1] [-keepSoftPinShapes 0|1] Returns None Arguments 402 Argument Description -file fileName Specify the output DEF file. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -keepSoftPinShapes 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Keep shapes in soft pins. 0 : Filter shapes in soft pins. -lib libName Specify the library name. -logFile logErrName Specify the file name for the log and error files (default=DefOut). -rectDrcFill 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Write DRC fillers as rectangles in the output file. 0 : Do not write DRC fillers as rectangles in the output file. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -topCell topCellName Specify the top cell name of the output design. -view viewName Specify the output view name of the specified cell. Examples lakerExportDEF -file demo.def -lib demoLib -topCell design See Also Home Page: File > Export > DEF lakerExportLEF The lakerExportLEF command exports the Laker database to an LEF format database. Syntax lakerExportLEF -file fileName -lib libName [-topCell topCellList] [-cellList cellName] [-view viewName] [forkChild 0|1] [-logFile logErrName] [-version [5.3|5.4|5.5|5.6|5.7]] Returns None Arguments Argument Description -cellList cellName Specify a cell name. -file fileName Specify the file name of the output LEF file. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -lib libName Specify the library name. -logFile logErrName Specify the file name for the log and error files (default=LefOut). Laker³ Tcl Reference Manual K-2015.06 403 Chapter 5: Home Page File Commands Argument Description -topCell topCellList Specify the top cell name(s) of the output design. Multiple names must be enclosed by brackets { } and separated by spaces, commas, or semicolons. -version [5.3|5.4|5.5|5.6|5.7] Specify the supported LEF version. Valid values: 5.3, 5.4, 5.4, 5.6, and 5.7 (default=5.6). -view viewName Specify the output the view name of the specified cell. Examples # Example 1 lakerExportLEF -file demo.lef -lib demoLib See Also Home Page: File > Export > LEF lakerExportOASIS The lakerExportOASIS command exports the Laker database to an OASIS database. Syntax lakerExportOASIS -file expFileName -lib expLibName [-topCell topCellList] [-case case] [-renameMode mode] [layerMapMode mode] [-layerMap layerMapFile] [-cellMap cellMapFile] [-fontMap fontMapFile] [-forkChild 0|1] [label label] [-mergeRefLib 0|1] [-smashMCell mode}] [con3Layer 0|1] [-smashPCell 0|1] [-snapGrid 0|1] [-filter 0|1] [-filterDummyCellInst 0|1] [-scale dbScale] [expLevel levelRange] [-logicProp 0|1] [-MCellProp 0|1] [-cvtRoundPath mode] [-path2Rect 0|1] [-cmpLevel level] [-logInfo 0|1] [-dumpTree 0|1] [-logUndefInst 0|1] [logFile logErrName] [-showOnly 0|1] [-rotateArIdv 0|1] Returns None 404 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Arguments Argument Description -case case Set the case sensitivity in cell names. Valid values: Preserve, Upper, and Lower (default=Preserve). -cellMap cellMapFile Specify the cell map file. -cmpLevel level Specify the compression level. Valid value: an integer, from 0 to 1 (default=0). -con3Layer 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export MCells’ contact top/bottom layers. 0 : Do not export MCells’ contact top/bottom layers. -cvtRoundPath mode Specify the path conversion mode. Valid values: Polygon, Truncate, and Extend (default=Polygon). Polygon: Convert Round type paths to polygons. Truncate: Change the path type to Truncate.Extend: Change the path type to Extend. -dumpTree 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Dump the design tree to a log file. 0 : Do not dump the design tree to a log file. -expLevel levelRange Specify the export level range from Level X to Level Y, where X and Y are integers with value ranges from >=0 to <=49. -file expFileName Specify the exported OASIS file. -filter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter illegal polygons or paths. 0 : Do not filter any illegal polygons or paths. -filterDummyCellInst 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter the empty cell and the reference but undefined instance. 0 : Do not filter the empty cell and the reference but undefined instance. -fontMap fontMapFile Specify the font map file. Laker³ Tcl Reference Manual K-2015.06 405 Chapter 5: Home Page File Commands 406 Argument Description -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -layerMapMode mode Specify the layer mapping mode. Valid values: Map, Filter, and Off (default=Map). Map: Use the layer map file, which has higher priority, or the tfStreamIoTable section for layer mapping. Filter: Filter the undefined layers and only convert the layers that are defined in the layer map file or the tfStreamIoTable section. Off: Disable the option. -label label Set the case sensitivity in text labels. Valid values: Preserve, Upper, and Lower (default=Preserve). -layerMap layerMapFile Specify the layer map file. -lib expLibName Specify the exported library database. -logFile logErrName Specify the file name for the log and error files (default=oasisOut). -logicProp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export the logic information to the property. 0 : Do not export any logic information to the property. -logInfo 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Save information messages to the log file. 0 : Do not save any information messages to the log file. -logUndefInst 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Report undefined instances with their coordinate location to the error file. 0 : Do not report any undefined instances with their coordinate location to the error file. -mergeRefLib 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Merge the referenced library. 0 : Do not merge any referenced libraries. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -MCellProp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export the MCell information to the property. 0 : Do not export the MCell information to the property. -path2Rect 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Convert 2-point paths to rectangles. 0 : Do not convert 2-point paths to rectangles. -renameMode mode Specify the renaming mode for duplicate cells. Valid values: AppendLibName, AppendOrdinalNo, and Off (default=AppendLibName). AppendLibName: Append the library name to duplicated cell names. AppendOrdinalNo: Append a random number to duplicated cell names. Off: Do not rename any duplicated cells. -rotateArrIdv 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Convert the array rotation rule to rotate individual elements of the array by 90 degrees. 0: Convert the array rotation rule to convert the whole array by 90 degrees. -scale dbScale Specify the output design with a new dbScale. dbScale=double. -showOnly 0|1 Valid values: Boolean values, 0 and 1. 1: Show the Export OASIS form. 0: Do not show the form. -smashMCell mode Smash MCells to cell instances. Valid values: ExpCont, Off, and All (default=ExpCont). ExpCont: Smash MCells except contacts. Off: Disable the option. All: Smash all MCells. -smashPCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Smash Tcl PCells to cell instances. 0: Do not smash any Tcl PCells. Laker³ Tcl Reference Manual K-2015.06 407 Chapter 5: Home Page File Commands Argument Description -snapGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Snap vertices to the minimum grid resolution. 0 : Do not snap vertices to the minimum grid resolution. -topCell topCellList Specify the top cell name(s) of the output design. Multiple names must be enclosed by brackets { } and separated by spaces, commas, or semicolons. Examples lakerExportOASIS -file demo.oas -lib demo -topCell {top} \ -case Preserve -label Preserve -mergeRefLib 1 \ -smashMCell ExpCont -layerMapMode Map \ -cvtRoundPath Polygon See Also Home Page: File > Export > OASIS lakerExportStream The lakerExportStream command exports the Laker3 database to a GDSII format database. Syntax lakerExportStream [-showOnly 0|1] -file fileName -lib libName [-viewName viewName] [-topCell topCellList] [snapGrid 0|1] [-case case] [-forkChild 0|1] [-scale scale] [-duplicatedCell ordinal] [-instProp instProp] [-netProp netProp] [-mcellProp MCellProp] [-logicProp logicProp] [-finShapeProp finShapeProp] [-fullColoringProp fullColoringProp] [-maxVerti maxVerti] [-mergeRefLib 0|1] [-logInfo 0|1] [-skip200 0|1] [-SmashMCell mode] [filter 0|1] [-cellNameLen maxNameLen] [-layerMap layerMap] [-exportLevel levelRange] [-logFile logErrName] [-cellMap cellMap] [-purposeMap 0|1] [fontMap fontMap] [-label mode] [-IoLayerMapMode mode [IoLayerMapFullLock 0|1]] [-filterDummyCell 0|1] [filterDummyInst 0|1] [-filterText 0|1] [-OutAbsCell {Off|ViaOnly|All}] [-dumpTree 0|1] [-con3Layer 0|1] [LogInstLoc 0|1] [-renPCell 0|1] [-rptZeroNegPitch 0|1] [-propMap propMapFile] [-filterSysPin 0|1] [filterSoftPin 0|1] [-reduceDevice 0|1] [408 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands colorPropagation 0|1] [-convertPolyText 0|1] [convertTextBrackets 0|1] [-keepPCell 0|1] [-SmashPCell 0|1] [-designIntention 0|1 [-diLayerMapFile mapFileName [-diIncludeOriginLayers 0|1]] Returns None Arguments Argument Description -case case Set the case sensitivity in cell names. Valid values: Preserve, Upper, and Lower (default=Preserve). -cellMap cellMap Specify the cell map file. -cellNameLen maxNameLen Specify the maximum length of cell names (default=32). -colorPropagation 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Automatically propagate coloring shapes. 0 : Do not propagate coloring shapes. -con3Layer 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export MCells’ top/bottom contact layers. 0 : Do not export MCells’ top/bottom contact layers. -convertPolyText 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Convert text labels using the Contemplate1 font type to polygons. 0 : Do not export convert text labels using the Contemplate1 font to polygons. -convertTextBrackets 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Convert the angle brackets of text labels to square brackets. 0 : Do not convert the angle brackets of text labels to square brackets. -designIntention 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export net-based shapes with mapped layers. 0 : Do not export net-based shapes with mapped layers. Laker³ Tcl Reference Manual K-2015.06 409 Chapter 5: Home Page File Commands 410 Argument Description -diIncludeOriginLayers 0|1 This argument is valid only if -designIntention is specified. Valid values: Boolean values, 0 and 1 (default=1). 1 : Export net-based shapes with mapped and original layers. 0 : Export net-based shapes with mapped layers only. -diLayerMapFile mapFileName Specify the layer map file for design intention. This argument is valid only if -designIntention is specified. -dumpTree 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Dump the design tree to a log file. 0 : Do not the dump design tree to a log file. -duplicatedCell ordinal Append a random number to duplicated cell names. The library name is appended by default. -exportLevel levelRange Specify the export level range from Level X to Level Y, where X and Y are integers with value ranges from >=0 to <=49. -file fileName Specify the output GDSII file in *.db, *.gds, *.gz, or *.Z formats. -filter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter illegal polygons or paths. 0 : Do not filter any illegal polygons or paths. -filterDummyCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter empty cells. 0 : Do not filter any empty cells. -filterDummyInst 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter undefined instances. 0 : Do not filter any undefined instances. -filterSoftPin 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter soft pin shapes. 0 : Do not filter any soft pin shapes. -filterSysPin 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Filter system pins. 0 : Do not filter any system pins. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -filterText 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter text data. 0 : Do not filter any text data. -finShapeProp finShapeProp Export the real fin shape information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=105). -fontMap fontMap Specify the font map file. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -fullColoringProp fullColoringProp Export the color propagation of coloring shapes with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=106). -instProp instProp Export the instance name information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=102). -IoLayerMapFullLock 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Map to Full Locked option. 0 : Disable the Map to Full Locked option. -IoLayerMapMode mode Specify the layer mapping mode. Valid values: Off, Map, and Filter (default=Off). ■ ■ ■ Laker³ Tcl Reference Manual K-2015.06 Off: Disable the option. Map: Use the layer map file, which has higher priority, or the tfStreamIoTable section in the technology section lakerLayerRule for layer mapping. Filter: Filter the undefined layers and only convert the layers that are defined in the layer map file or the tfStreamIoTable section. 411 Chapter 5: Home Page File Commands Argument Description -keepPCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Keep the Tcl PCell and UDD information. 0 : Do not keep the Tcl PCell and UDD information. -label mode Set the case sensitivity in text labels. Valid values: Preserve, Upper, and Lower (default=Preserve). -layerMap layerMap Specify the layer map file for basic layer mapping. -lib libName Specify the library database. -logFile logErrName Specify the file name for the log and error files (default=streamOut). -logicProp logicProp Export the logic information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=103). -logInfo 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Save information messages to the log file. 0 : Do not save any information messages to the log file. -LogInstLoc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Report undefined instances with their coordinate location to the error file. 0 : Do not report any undefined instances with their coordinate location to the error file. -maxVerti maxVerti Load maximum vertices in paths and polygons (maximum=4096). -mergeRefLib 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Merge the referenced library. 0 : Do not merge any referenced libraries. -mcellProp MCellProp Export the MCell information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=104). 412 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -netProp netProp Export the net name information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=102). -OutAbsCell mode Export the abstract cell view. Valid values: Off, ViaOnly, and All (default=Off). ■ ■ ■ Off: Do not export any abstract cell views. ViaOnly: Export the abstract view of referenceVIA cells, but do not export the abstract view of other cells. All: Export the abstract view of all reference cells. -propMap propMapFile Specify the property map file. -purposeMap 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Reference Purpose Map File option. 0 : Disable the Reference Purpose Map File option. -reduceDevice 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Reduce the duplicates of MCells, Tcl PCells or UDDs to one MCell, Tcl PCell or UDD and then export to the GDSII file. 0: Export all duplicates of MCells, Tcl PCells or UDDs to the GDSII file. -renameMode 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Enable the renaming mode for duplicated cells. 0: Disable the renaming mode for duplicated cells. -renPCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Rename modified Tcl PCells, naming in string$$number, with new format stringSCnumber. 0: Do not rename any modified Tcl PCells. -rptZeroNegPitch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Report zero or negative array pitch values. 0: Do not report any zero or negative array pitch values. -scale scale Set the db scale. Laker³ Tcl Reference Manual K-2015.06 413 Chapter 5: Home Page File Commands Argument Description -showOnly 0|1 Valid values: Boolean values, 0 and 1. 1: Show the Export Stream form. 0: Do not show the form. -skip200 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Skip warning messages for over-200-vertex polygons. 0: Do not skip any warning messages. -SmashMCell mode Smash MCells to cell instances. Valid values: Off, ExpCont, and All (default=ExpCont). ■ ■ ■ Off: Disable the option. ExpCont: Smash MCells except contacts. All: Smash all MCells. -SmashPCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Smash Tcl PCells to cell instances. 0: Do not smash any Tcl PCells. -snapGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Snap vertices to the minimum grid resolution. 0 : Do not snap vertices to the minimum grid resolution. -topCell topCellList Specify the top cell name(s) of the output design. Multiple names must be enclosed by brackets { } and separated by spaces, commas, or semicolons. -viewName viewName Specify the view name for the specified cell (default=layout). Examples # Example 1 lakerExportStream -file demo.db -Lib demoLib # Example 2 lakerExportStream -file demo.db -lib demoLib -topCell "TOP" \ -case Preserve -maxVerti 1024 -mergeRefLib 1 -SmashMCell ExpCont # Example 3 # Show the Export Stream form and specify the top cell and GDS file lakerExportStream -showOnly 1 -file $sFileName \ -lib $sLibName -topCell $sCellName # Example 4 414 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands lakerExportStream -file out01.db -lib lib01 -topCell {cell01} \ -case Preserve -label Preserve -maxVerti 1024 -mergeRefLib 1 \ -SmashMCell ExpCont -SmashPCell 1 -IoLayerMapMode Map See Also Home Page: File > Export > Stream lakerImportConstraint The lakerImportConstraint command imports library level constraints to the Laker database. Syntax lakerImportConstraint -lib libName -file fileName [-mode importMode] [-suffix suffix] [-cell cellNameList] [-view viewNameList] [-logFile logErrName] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellNameList Specify a list of cell names separated by spaces. If the cell list is not specified, constraints within each cell in the selected library are exported. If it is specified, constraints within the specified cell list are exported. -file fileName Specify the input file that contains the information of constraints to be imported. -lib libName Specify the target library for constraints to be imported. -logFile logErrName Specify the file name for the log and error files (default=constImport). -mode importMode Specify the import mode. Valid values: Rebuild, Overwrite, and Preserve (default=Rebuild). -suffix suffix Specify the suffix for renaming conflicted constraints (default=_LK). Laker³ Tcl Reference Manual K-2015.06 415 Chapter 5: Home Page File Commands Argument Description -view viewNameList Specify a list of view names separated by spaces. If the view list is not specified, constraints of all views in the selected library are imported. If the view list is specified, constraints of the view list are imported. Examples # Example 1 # Check constraints in the logic view of each cell from file # 'TEST_LIB_all.cons' and import related constraints to the target # library 'TEST_LIB01'. lakerImportConstraint -lib TEST_LIB01 -view logic -file TEST_LIB_all.cons See Also Home Page: File > Import > Constraint lakerImportDEF The lakerImportDEF command imports an DEF format design to the Laker database. Syntax lakerImportDEF -file fileName -lib libName [-path libPath] [-tech techFile | -attachToLib masterLib] [-forkChild 0|1] [-logFile logErrName] Returns None Arguments 416 Argument Description -attachToLib masterLib Specify the master library. This imports a library with the technology file settings of the specified master library. -file fileName Specify the input file. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -lib libName Specify the imported library. -logFile logErrName Specify the file name for the log and error files (default=DefIn). -path libPath Specify the working directory (default=current directory). -tech techFile Specify the technology file. Examples lakerImportDEF -file demo.def -lib demoLib See Also Home Page: File > Import > DEF lakerImportLEF The lakerImportLEF command imports an LEF format design to the Laker database. Syntax lakerImportLEF -file fileName -lib libName [-path libPath] [-forkChild 0|1] [-tech techFile | -attachToLib masterLib] [-logFile logErrName] Returns None Arguments Argument Description -attachToLib masterLib Specify the master library. This imports a library with the technology file settings of the specified master library. -file fileName Specify the input LEF file. Laker³ Tcl Reference Manual K-2015.06 417 Chapter 5: Home Page File Commands Argument Description -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -lib libName Specify the imported library. -logFile logErrName Specify the file name for the log and error files (default=LefIn). -path libPath Specify the working directory (default=current directory). -tech techFile Specify the technology file. Examples lakerImportLEF -file demo.lef -lib demoLib See Also Home Page: File > Import > LEF lakerImportOASIS The lakerImportOASIS command imports an OASIS format design to the Laker database. Syntax lakerImportOASIS -file impOasisFile -lib impLibName [-tech techFile | -attachToLib masterLib] [-path libPath] [topCell topCellList] [-case case] [-showOnly 0|1] [-label {Preserve|Upper|Lower}] [-renameMode {Overwrite|Rename|Query|Skip}] [-layerMapMode {Map|Filter|Off}] [-layerMap layerMapFile] [-cellMap cellMapFile] [-fontMap fontMapFile] [-forkChild 0|1] [refOtherFirst 0|1] [-refLib [ libList]] [-snapGrid 0|1] [-filter 0|1] [-filterBadChar 0|1] [-resize resizeFactor] [-dumpTree 0|1] [-logicProp 0|1] [-MCellProp 0|1] [impLayerOnly 0|1] [-correctNon90Inst 0|1] [-useLAYERNAME 0|1] [-logInfo 0|1] [-logUndefInst 0|1] [-logFile logErrName] [-rotateArIdv 0|1] Returns None 418 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Arguments Argument Description -attachToLib masterLib Specify the master library. This imports a library with the technology file settings of the specified master library. -case case Set the case sensitivity in cell names. Valid values: Preserve, Upper, and Lower (default=Preserve). -cellMap cellMapFile Specify the cell map file. -correctNon90Inst 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Correct angle for non-90 degree based instance by smashing its master and rotating it to a desired angle. 0 : Do not smash and rotate the master cell of non-90 degree based instance. -dumpTree 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Dump the design tree to a log file. 0 : Do not dump the design tree to a log file. -file impOasisFile Specify the imported OASIS file. -filter 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Filter the illegal polygon or path. 0 : Do not filter the illegal polygon or path. -filterBadChar 0|1 This argument is used only when the imported OASIS file has illegal characters in the string sections. Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter illegal characters in the string sections without reporting any FATAL messages in the oasisIn.err file. 0 : The oasisIn process fails and a FATAL message is reported in the oasisIn.err file. -fontMap fontMapFile Specify the font map file. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. Laker³ Tcl Reference Manual K-2015.06 419 Chapter 5: Home Page File Commands Argument Description -impLayerOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Populate the layer table with layers in OASIS file only. 0 : Do not populate the layer table. -layerMapMode {Map|Filter|Off} Specify the layer mapping mode. Valid values: Map, Filter, and Off (default=Map). Map: Use the layer map file, which has higher priority, or the tfStreamIoTable section for layer mapping; Filter: Filter the undefined layers and only convert the layers that are defined in the layer map file or the tfStreamIoTable section. Off: Disable the option. -label Set the case sensitivity in text labels. {Preserve|Upper|Lower} Valid values: Preserve, Upper, and Lower (default=Preserve). 420 -layerMap layerMapFile Specify the layer map file. -lib impLibName Specify the imported library. -logFile logErrName Specify the file name for the log and error files (default=oasisIn). -logicProp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Restore the logic information from the property. 0 : Do not restore any logic information from the property. -logInfo 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Save the information message into log file. 0 : Do not save any information messages into log file. -logUndefInst 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Report undefined instances with the coordinate location to the error file. 0 : Do not report any undefined instances with the coordinate location to the error file. -MCellProp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Restore the MCell information from the property. 0 : Do not restore the MCell information from the property. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -path libPath Specify the working directory (default=working directory). -refLib [libList] Specify the reference libraries by using one of these options: ■ ■ ■ Default: Do not specify -refLib to reference any libraries defined in the RC file. -refLib: Do not reference other libraries. -refLib libList: Reference other libraries with the sequence in libList, which is {Lib1 Lib2 Lib3}. -refOtherFirst 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Reference instances from other existing libraries first. 0 : Reference instances from the imported library first. -renameMode {Overwrite|Rename| Query|Skip} Specify the renaming mode for duplicate cells. Valid values: Overwrite, Rename, Query, and Skip (default=Overwrite). ■ ■ ■ ■ Overwrite: Overwrite existing cells. Rename: Rename imported cells. Query: Ask the user for next action. Skip: Skip imported cells. -resize resizeFactor Specify a resize factor to resize the design. resizeFactor: double >=0. -rotateArrIdv 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Convert the array rotation rule to rotate individual elements of the array by 90 degrees. 0: Convert the array rotation rule to convert the whole array by 90 degrees. -showOnly 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the Import OASIS form. 0 : Do not show the form. -snapGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Snap vertices to the minimum grid resolution. 0 : Do not snap vertices to the minimum grid resolution. -tech techFile Specify the technology file. Laker³ Tcl Reference Manual K-2015.06 421 Chapter 5: Home Page File Commands Argument Description -topCell topCellList Specify the top cell name(s) of input design. Multiple names must be enclosed by brackets { } and separated by spaces, commas, or semicolons. -useLAYERNAME 0|1 Valid values: Boolean values, 0 and 1. 1 : Use LAYERNAME records in the imported file as layer mapping. 0 : Do not use LAYERNAME records in the imported file. Examples lakerImportOASIS -file demo.oas -tech demo.tf -path . \ -lib demo -case Preserve -label Preserve \ -correctNon90Inst 1 -layerMapMode Map See Also Home Page: File > Import > OASIS lakerImportStream The lakerImportStream command imports a GDSII format design to the Laker database. Syntax lakerImportStream -file fileName -lib libName [-showOnly 0|1] [-tech techFile | -attachToLib masterLibName] [-path libPath] [-topCell topCellList] [-snapGrid 0|1] [-logInfo 0|1] [-keepPCell 0|1] [-skip200 0|1] [-refOther 0|1] [filter 0|1] [-forkChild 0|1] [-maxVerti maxVerti] [instProp instProp] [-netProp netProp] [-MCellProp MCellProp] [-logicProp logicProp] [-finShapeProp finShapeProp] [-fullColoringProp fullColoringProp] [case case] [-layerMap layerMap] [-cellMap cellMap] [fontMap fontMap] [-logFile logErrName] [-resize resizeFactor] [-CorrectNon90Inst 0|1] [-label mode] [IoLayerMapMode mode] [-refLib {libList}] [strmInLayerOnly 0|1] [-dumpTree 0|1] [-renameMode mode] [-LogInstLoc 0|1] [-rptZeroNegPitch 0|1] [-propMap propMapFile] [-sumExtraLayer 0|1] [-replaceTF mode] [updateMCell mode] [-updateMCellLib libList] [- 422 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands updateSlaveMCell 0|1] [-ignoreConflictMCell 0|1] [ignoreDupMap 0|1] [-convertTextBrackets 0|1] [convertTextAngBrackets 0|1] [-detectVias 0|1] Returns None Arguments Argument Description -attachToLib masterLibName Specify the master library name. This imports a library with the technology file settings of the specified master library. -case case Specify the case sensitivity in cell names. Valid values: Preserve, Upper, and Lower (default=Preserve). -cellMap cellMap Specify the cell map file. -convertTextBrackets 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Convert the angle brackets of text labels to square brackets. 0 : Do not convert the angle brackets of text labels to square brackets. -convertTextAngBrackets 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Convert the square brackets of text labels to angle brackets. 0 : Do not convert the square brackets of text labels to angle brackets. -CorrectNon90Inst 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Correct angle for non-90 degree based instances by smashing the master cell and rotating them to a desired angle. 0 : Do not smash and rotate the master cell of non-90 degree based instances. -detectVias 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Detect via definitions and create vias. 0 : Convert vias as instances. Laker³ Tcl Reference Manual K-2015.06 423 Chapter 5: Home Page File Commands Argument Description -dumpTree 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Dump the design tree to a log file. 0 : Do not dump the design tree to a log file. -file fileName Specify the input GDSII file in *.db, *.gds, *.gz, or *.Z formats. -filter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter illegal polygons or paths. 0 : Do not filter illegal polygons or paths. -finShapeProp finShapeProp Restore the fin shape information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=105). -fontMap fontMap Specify the font map file. -forkChild 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke batch mode. 0 : Do not invoke batch mode. -fullColoringProp fullColoringProp Restore the color propagation of coloring shapes with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=106). 424 -ignoreConflictMCell 0|1 This argument is used with -MCellProp only. Valid values: Boolean values, 0 and 1 (default=0). 1 : If the input GDSII file has the same MCell name as the technology file, and the MCell rules of these files are different, the MCell rules of the input GDSII file are ignored. Only the sub-master cells are imported in this situation. 0 : If the above situation occurs, the MCell rules of the input GDSII file are renamed and appended to the corresponding technology file. -ignoreDupMap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Ignore Duplicated Mappings options. 0 : Disable the Ignore Duplicated Mappings options. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -instProp instProp Restore the instance name information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=102). -IoLayerMapMode mode Specify the layer mapping mode. Valid values: Off, Map, and Filter (default=Map). ■ ■ ■ Off: Disable the option. Map: Use the layer map file, which has higher priority, or the tfStreamIoTable section for layer mapping. Filter: Filter undefined layers and only convert the layers that are defined in the layer map file or the tfStreamIoTable section. -keepPCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Restore the Tcl PCell and UDD information. 0 : Do not restore any Tcl PCell and UDD information. -label mode Set the case sensitivity in text labels. Valid values: Preserve, Upper, and Lower (default=Preserve). -layerMap layerMap Specify the layer map file. -lib libName Specify the library name. -logFile logErrName Specify the file name for the log and error files (default=streamIn). -logicProp logicProp Restore the logic information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=103). -logInfo 0|1 Laker³ Tcl Reference Manual K-2015.06 Valid values: Boolean values, 0 and 1 (default=0). 1 : Save the information message to the log file. 0 : Do not save any information messages to the log file. 425 Chapter 5: Home Page File Commands Argument Description -LogInstLoc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Report undefined instances with the coordinate location to the error file. 0 : Do not report any undefined instances with the coordinate location to the error file. -maxVerti maxVerti Specify the maximum number of vertices to split a polygon or path. The paths or polygons with 16384 vertices can be loaded into the Laker database, but such paths or polygons are sliced by the maximum vertices of 4096. -MCellProp MCellProp Restore the MCell information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=104). -netProp netProp Restore the net name information with the specified property number. Valid value: an integer with value ranges from 1 to 127 (default=102). -path libPath Specify the working directory (default=working directory). -propMap propMapFile Specify the property map file. -refLib {libList} Specify the reference libraries by these options: ■ ■ ■ -refOther 0|1 426 Default: Do not specify -refLib to reference all libraries defined in RC file. -refLib: Do not reference other libraries. -refLib libList: Reference other libraries with the sequence in libList, which is {Lib1 Lib2 Lib3}. Valid values: Boolean values, 0 and 1 (default=0). 1 : Reference instances from other existing libraries first. 0 : Do not reference instances from other existing libraries. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Argument Description -renameMode mode Specify the renaming mode for duplicate cells. Valid values: overwrite, rename, query, and skip (default=overwrite). ■ ■ ■ ■ -replaceTF mode overwrite: Overwrite existing cells. rename: Rename imported cells. query: Ask the user for the next action. skip: Skip imported cells. Replace the existing technology file or attach it to another library. Valid values: All, Partial, and Off (default=Off). ■ ■ ■ All: Replace all existing technology file sections. Partial: Replace partial technology file sections. It only works when -tech techFile is specified. Off: Do not replace the technology file. -resize resizeFactor Specify a resize factor to resize the design. resizeFactor: double >=0. -rptZeroNegPitch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Report zero or negative array pitch values. 0: Do not report zero or negative array pitch values. -showOnly 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the Import Stream form. 0 : Do not show the form. -skip200 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Skip the warning message for over-200-vertex polygons. 0 : Do not skip the warning message. -snapGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Snap vertices to the minimum grid resolution. 0 : Do not snap vertices to the minimum grid resolution. -strmInLayerOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Populate the layer table with layers in GDSII file only. 0 : Do not populate the layer table. Laker³ Tcl Reference Manual K-2015.06 427 Chapter 5: Home Page File Commands Argument Description -sumExtraLayer 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Check extra layers in the imported GDS database. 0 : Do not check extra layers in the imported GDS database. -tech techFile Specify the technology file. -topCell topCellList Specify the top cell name(s) of input design. Multiple names must be enclosed by brackets { } and separated by spaces, commas, or semicolons. -updateMCell mode Decide whether to update MCells. It does not work when -replaceTF Off is specified. Valid values: All, Off, and MCellList (default=Off). ■ ■ ■ All: Update all MCells. MCellList: Specify the MCell devices to be updated in format { dev1 dev2 ... devn }. MCell names in the MCellList must be separated by spaces. Off: Do not update any MCell definitions. -updateMCellLib libList Specify the libraries to be updated in format { Lib1 Lib2 ... Libn}. Library names in the libList must be separated by spaces. -updateSlaveMCell 0|1 Update MCell definitions for slave libraries. It does not work when -updateMCell Off is specified. Valid values: Boolean values, 0 and 1 (default=0). 1 : Update MCell definitions for slave libraries. 0 : Do not update MCell definitions for slave libraries. Examples # Example 1 lakerImportStream -file demo.db -lib demoLib # Example 2 lakerImportStream -file demo.db -lib demoLib -attachToLib demo2 # Example 3 # Show the Import Stream form and specify the top cell and GDS file lakerImportStream -showOnly 1 -file demo.db -lib demoLib \ -topCell cell_a 428 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands # Example 4 lakerImportStream -file out05.db -tech laker_demo301v3.tf \ -path . -lib imp01 -CorrectNon90Inst 1 -IoLayerMapMode Off \ -case Preserve -label Preserve -maxVerti 1024 # Example 5 # Update all MCell devices dev1 and dev2 in Lib1 and Lib2 # All these devices have a master library ImLib lakerImportStream -lib ImLib ... -updateMCell {dev1 dev2} \ -updateMCellLib {Lib1 Lib2} See Also Home Page: File > Import > Stream lakerImportTLUPlus The lakerImportTLUPlus command extracts the sheet resistance information from a Table Look Up Plus (TLU+) file and saves the extracted information with a sheetResistance constraint in the specified database. Syntax lakerImportTLUPlus inputFile -to output [-layerMap layerMap] [-defaultThickness mode] [-layerThicknessFile file] Returns None Arguments Argument Description -defaultThickness mode Specify the default thickness for all layers. Valid values: minimum, nominal, and maximum (default=nominal). -layerMap layerMap Specify the layer map file. -layerThicknessFile file Specify the layer thickness file containing the userspecified thickness for each layer. Laker³ Tcl Reference Manual K-2015.06 429 Chapter 5: Home Page File Commands Argument Description -to output Specify the output in one of the following formats: libName or {libName cellName viewName}, where libName represents the technology library file, and {libName cellName viewName} represents the target library, cell, and view names. inputFile Specify the TLU Plus file with its full path. Examples lakerImportTLUPlus path ./tech/icc/reference40_10lm.tluplus \ -to {chip_top cpu_routed layout} -layerMap \ ./tech/ref4_1_tluplus.map -defaultThickness nominal # Example 2 lakerImportTLUPlus path ./tech/ref4_1.tluplus \ -to chip_top -layerMap ./tech/ref4_1_tluplus.map \ -defaultThickness nominal See Also Home Page: File > Import > TLU+ lakerImportVerilog The lakerImportVerilog command imports a Verilog format design to the Laker database. Syntax lakerImportVerilog [-file | -list] verilogListFilename [path runPath] -lib libName [-topCell topCellName] [showOnly] [-impRefLib refereLib] [-tech techFile | attachToLib masterLib] [-power powerName] [-gnd gndName] [-rmEsc 0|1] [-ps 0|1] [-modelMap modelMap] [-expandLog logFile] [-refLib refLibName [-ecoFile ecoFileName] [extractConstraint 0|1] [-priority priority] [-suffix suffix] [-dumpMap modelMapFile] [-execECO 0|1]] [genAllSchematic 0|1] Returns None 430 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Arguments Argument Description -attachToLib masterLib Specify the master library. This creates a library with the technology file settings of the specified master library. -dumpMap modelMapFile Specify the model map file to be dumped from the reference library. -ecoFile ecoFileName Specify the extracting command file. -execECO 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Execute the ECO command file automatically. 0: Do not execute the ECO command file. -expandLog logFile Specify the log file to describe the relationship between the parameter and logic view name of expanded cells. -extractConstraint 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract design-driven layout (DDL) constraints. 0: Do not extract DDL constraints. -file verilogListFilename Specify the name of the Verilog file. -genAllSchematic 0|1 Valid value: Boolean values, 0, and 1 (default=1). 1: Generate schematics with placement and routing. 0: Generate schematics without placement and routing. -gnd gndName Specify the ground net name. -impRefLib refLib Specify the cell reference libraries. -lib libName Specify the library name of the imported results. -list verilogListFilename Specify the name of the list file. -modelMap modelMap Specify the model map file. -path runPath Specify the location of the imported results. The default is “.” -power powerName Specify the power net name. Laker³ Tcl Reference Manual K-2015.06 431 Chapter 5: Home Page File Commands Argument Description -priority priority Specify a priority to handle conflicted constraints. Valid values: schematic and layout (default=schematic). -ps 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Extract the swapping information of equivalent ports from the imported netlist data. 0: Do not extract any swapping information. -refLib refLibName Specify the reference library for extracting the object tree information. -rmEsc 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Remove the first backslash of all escaped identifiers. 0: Do not remove the first backslash of all escaped identifiers. -showOnly When specified, the Import Verilog form is shown with settings passed from lakerImportVerilog. -suffix suffix Specify the suffix for renaming conflicted constraints (default=_LK). -tech techFile Specify the technology file. -topCell topCellName Specify the top cell name of the design to be translated. Only one top cell name can be specified. Examples lakerImportVerilog -file inv.v -path . -lib inv \ -tech default.tf -append -power VSS -gnd VDD See Also Home Page: File > Import > Verilog lakerOpenDesign The lakerOpenDesign command returns 1 if the design data, with the specified path and open mode, can be opened in a new layout window. 432 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page File Commands Syntax lakerOpenDesign -lib libName -cell cellName [-mode mode] [viewType cellviewType] [-view viewName] [-restorenum restoreNum] [-autosave] [-dmCVCkout 0|1] [-dmCVCkin 0|1] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -autosave Open the autosave file if it exists. -cell cellName Specify the cell to be opened. -dmCVCkin 0|1 Valid values: Boolean values, 0 and 1. 1 : Check in cell view files, that are checked out automatically. The default value depends on the setting in the laker.rc resource file. 0 : Do not check in cell view files. -dmCVCkout 0|1 Valid values: Boolean values, 0 and 1. 1 : Check out cell view files. The default value depends on the setting in the laker.rc resource file. 0 : Do not check out cell view files. -lib libName Specify the library database. -mode mode Specify the opening mode. Valid values: edit or readOnly (default=edit). -restorenum restoreNum Restore the backup database (default=-1). -view viewName Specify the view name of the cell to be opened. Valid values: layout, logic, schematic, and any userdefined view name (default=layout). -viewType cellviewType Specify the cell view type of the cell to be opened. The only available type is maskLayout. Laker³ Tcl Reference Manual K-2015.06 433 Chapter 5: Home Page File Commands Examples # Example 1 # Open the layout view of the cell (ram) in the library (ram) lakerOpenDesign -lib ram -cell ram -mode edit # Example 2 # Open the previous version of the layout view of the cell (ram) # in the library (ram) lakerOpenDesign -lib ram -cell ram -mode edit -restorenum 1 # Example 3 # Library CPU and its full path: /tmp/CPU.lib++ # All design files and library level files are read-only # Open a design in edit mode and check out its file automatically lakerOpenDesign -lib CPU -cell AN2D1 -mode edit -dmCVCkout 1 dmCVCkin 0 See Also dbGetAllCells dbGetAllViews Home Page: File > Open Layout Window: Cell > Open lakerSession The lakerSession command saves the current working environment to a session file, or restores the previous session from a session file. Syntax lakerSession [-save filename] [-restore filename] Returns None Arguments 434 Argument Description -restore filename Specify the file name of the session file to be restored. -save file Specify a file name for the session file to be saved as. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Examples # Example 1 # Save a session file lakerSession -save a.ses # Example 2 # Restore a session file lakerSession -restore a.ses See Also Home Page: File > Save Session Home Page: File > Restore Session Library Commands This section describes the Tcl commands applied to the Library commands in the Home Page. These commands include: ■ adpNetlistMapping ■ lakerAbstractCell ■ lakerAddICCLib ■ lakerChangeRefLib ■ lakerCopyLib ■ lakerDelLib ■ lakerDefGlobalNet ■ lakerDiscrepancyHier ■ lakerDumpModelMap ■ lakerEncryptLib ■ lakerLibCellDumpParam ■ lakerLibCellParam ■ lakerMCellTechPorting ■ lakerNewLib ■ lakerPurgeBackup ■ lakerRefLib Laker³ Tcl Reference Manual K-2015.06 435 Chapter 5: Home Page Library Commands ■ lakerRefreshMCell ■ lakerRefreshUDD ■ lakerRenLib ■ lakerRepModelMap ■ lakerSwapPort ■ lakerTechDump ■ lakerTechReplace ■ lakerTechSave ■ lakerText2Prop ■ lakerUpdateCellProp adpNetlistMapping The adpNetlistMapping command sets the netlist mapping before exporting the design. Syntax adpNetlistMapping -netlistMap netlistMap -defNetlist netlistType Returns None Arguments 436 Argument Description -defNetlist netlistType Specify the default netlist type. Valid values: hspiceD, auCdl, smartspice, eldoD, spectre, and verilog. -netlistMap netlistMap Specify the netlist mapping table can be specified with format: {“netlistType disp exportSpiceFormat” ...} Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Examples # Example 1 # The default netlist type is hspiceD; and the hspiceD, auCdl # and verilog netlist types are shown in the Netlist Table # selection field adpNetlistMapping -netlistMap \ {"hspiceD 1 SPICE" "auCdl 1 CDL" "smartspice 0 SPICE" \ "eldoD 0 SPICE" "spectre 0 Spectre" "verilog 1 SPICE"} \ -defNetlist hspiceD See Also Home Page: Library > Global Netlist Mapping lakerAbstractCell The lakerAbstractCell command extracts the cell information of a cell view or a library, including pin extraction, blockage generation, and boundary generation. Syntax lakerAbstractCell [-showOnly 0|1] -lib libname -cell cellname [-view viewName] -extDepth depth -onlyLevel0 0|1 -useColonVirtual 0|1 [-genPolyPin 0|1] [boundaryFromLayer layerName purpname] [-extractThrPin 0|1] Returns None Arguments Argument Description -boundaryFromLayer layerName purpName Specify a layer to transfer into cell boundary. When it is not specified, the rule defined in the technology file is used to generate a boundary. -cell cellName Specify the cell to be extracted. If this argument is not specified, all cells in the library are extracted. -extDepth depth Specify the extraction depth. Valid value: an integer from 0 to 49 (default=49). Laker³ Tcl Reference Manual K-2015.06 437 Chapter 5: Home Page Library Commands Argument Description -extractThrPin 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Extract pins through via/contact. 0 : Do not extract pins through via/contact. -genPolyPin 0|1 Valid values: Boolean values, 0 and 1. 1 : Extract the on-grid POLY pin shapes on MET1 routing track. 0 : Do not extract the on-grid POLY pin shapes on MET1 routing track. -lib libName Specify the library database. -onlyLevel0 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Only process labels (text) at level 0. 0 : Do not process labels (text) at level 0. -showOnly 0|1 Valid values: Boolean values, 0 and 1. 1: Show the Abstract Cell form. 0: Hide the Abstract Cell form. -useColonVirtual Valid values: Boolean values, 0 and 1 (default=0). 1 : Use a colon as the virtual connection. 0 : Do not use a colon as the virtual connection. -view viewName Specify the view name of the cell to be extracted. Valid values: layout, logic, schematic, and any userdefined view name (default=layout). Examples # Example 1 # Extract the layout view of cell "chk" and cell "adder" lakerAbstractCell -lib Demotest2 -cell chk adder # Example 2 # Extract the layout000 view of cell "test1" and cell "test2" lakerAbstractCell -lib Demotest2 -cell test1 test2 -view layout000 See Also Home Page: Library > Abstract Cell Layout Window: Cell > Abstract Cell 438 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands lakerAddICCLib The lakerAddICCLib command adds an ICC library with the specified library name. Syntax lakerAddICCLib -lib libName -path path [-addICCRefLibs 0|1] [-useOATech attachToLib [-layerMap layerMapLib] [-viaMap viaMapLib]] Returns None Arguments Argument Description -lib libName Specify the added ICC library name. -path path Specify the added ICC library’s directory. -addICCRefLibs Valid values: Boolean values, 0 and 1 (default=1). 1 : Add the ICC reference libraries. 0 : Do not add the ICC reference libraries. -useOATech Valid values: Boolean values, 0 and 1 (default=0). 1 : Attach an OA technology file. 0 : Do not attach an OA technology file. -layerMap layerMapLib Specify the layer mapping file when a separate OA technology file is attached. -viaMap viaMapLib Specify the via mapping file when a separate OA technology file is attached. Examples # Example 1 # Add an ICC library chip_mstop_icc and its all reference libraries lakerAddICCLibNewLib -lib chip_mstop_icc -path . -addICCRefLibs 1 # Example 2 # Add an ICC library chip_mstop_icc and using OA tech: # Attach library (qa), layerMap library (demoLib), viaMap (viaLib) lakerAddICCLibNewLib -lib chip_mstop_icc -path . \ -useOAtech qa -layerMap demoLib -viaMap viaLib Laker³ Tcl Reference Manual K-2015.06 439 Chapter 5: Home Page Library Commands See Also Home Page: Library > Add ICC Libraries lakerChangeRefLib The lakerChangeRefLib command changes the original referenced library to another. With the optional arguments, -refView and -toView, this command may also change the original reference view of the original referenced library to another view with another library. Syntax lakerChangeRefLib -lib libName -refLib refLib [-refView viewName] -toLib toLib [-toView viewName] Returns None Arguments 440 Argument Description -lib libName Specify the library database. -refLib refLib Specify the original referenced library. -refView viewName Specify the view name of the original reference library. Valid values: layout and abs. -refView and -toView must be specified or not specified at the same time. -toLib toLib Specify the new target of the referenced library. -toView viewName Specify the view name for the new target of the referenced library. Valid values: layout and abs. -refView and -toView must be specified or not specified at the same time. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Examples # Example 1 # Change the reference library (oriLib) of library (demoLib) to # the new reference library (newRefLib) lakerChangeRefLib -lib demoLib -refLib oriLib -toLib newRefLib # Example2 lakerChangeRefLib -lib CPU -refLib CPU_REF -refView layout \ -toLib CPU_REF -toView abs # Example 3 lakerChangeRefLib -lib CPU -refLib CPU -refView abs -toLib CPU_REF -toView abs See Also Home Page: Library > Change Reference lakerCopyLib The lakerCopyLib command duplicates another copy of the specified cell view(s) from source library to target library. Syntax lakerCopyLib -lib libName -toLib toLib [-toPath toPath] view viewNameList -overwrite 0|1 Returns None Arguments Argument Description -lib libName Specify the library database. -overwrite 0|1 Valid values: Boolean values, 0 and 1. 1 : Overwrite the cell view if it is existed in the target library. 0 : Do not overwrite the cell view if it is existed in the target library. -toLib toLib Specify the new target library database. -toPath toPath Specify the working directory (default=current directory). Laker³ Tcl Reference Manual K-2015.06 441 Chapter 5: Home Page Library Commands Argument Description -view viewNameList Specify a list of cell views to be copied. Examples # Example 1 # Duplicate another copy of library (demoLib) # with different name (demo2Lib) lakerCopyLib -lib demoLib -toLib demo2Lib # Example 2 # Copy specific view name of cell view from source library to # target library lakerCopyLib -lib demoLib -toLib demo2Lib -view layout abs \ -overwrite 1 See Also Home Page: Library > Copy lakerDelLib The lakerDelLib command deletes the entire database in the library and removes the directory of the library. Syntax lakerDelLib -lib libName Returns None Arguments Argument Description -lib libName Specify the library database. Examples # Delete the library (demoLib) lakerDelLib -lib demoLib See Also Home Page: Library > Delete 442 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands lakerDefGlobalNet The lakerDefGlobalNet command defines global net of the specified library. Syntax Append Mode: lakerDefGlobalNet -lib libName -power powNetNameList -ground gndNetNameList Remove Mode: lakerDefGlobalNet -lib libName -power powNetNameList -ground gndNetNameList -global globalNetNameList -remove Returns A list of global net names if it is defined in the library; otherwise, returns nothing. Arguments Argument Description -lib libName Specify the library database. -power powNetNameList Specify the list of operation power nets. -ground gndNetNameList Specify the list of operation ground nets. -global globalNetNameList Specify the list of operation global nets. -remove Remove the specified global nets. Examples # Example 1 lakerDefGlobalNet -lib demo -power VDD -ground VSS GND # Example 2 set AllGlobalNet [lakerDefGlobalNet -lib demo] # Example 3 lakerDefGlobalNet -lib -global $AllGlobalNet -remove Laker³ Tcl Reference Manual K-2015.06 443 Chapter 5: Home Page Library Commands lakerDiscrepancyHier The lakerDiscrepancyHier command makes a discrepancy report for the specified library with data comparison between the schematic and layout. Syntax lakerDiscrepancyHier -lib libName [-lib2 libName] [-view1 viewName] [-view2 viewName] [-topCkt topCktList] [ignoreBulk 0|1] [-cmpHierarchy 0|1] [-dumpMapInfo 0|1] [-reportDiscOnly 0|1] [-groupsDis 0|1] [-groupInst 0|1] [-file filename] Returns None Arguments 444 Argument Description -dumpMapInfo 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Dump Mapping Information option. 0 : Disable the Dump Mapping Information option. -file filename Specify the file to save the discrepancy results. -groupDis 0|1 Valid values: Boolean values, 0 and 1. 1 : Dump the discrepancy information and group the results by mismatched type. 0 : Do not dump the discrepancy information and group the results by mismatched type. -groupInst 0|1 Valid values: Boolean values, 0 and 1. 1 : Dump the discrepancy information and group the results by instance name. 0 : Do not dump the discrepancy information and group the results by instance name. -ignoreBulk 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Ignore Bulk Checking option. 0 : Disable the Ignore Bulk Checking option. -lib libName Specify the library to make the discrepancy report. -lib2 libName Specify the second library that is to be compared with the library specified by -lib. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Argument Description -reportDiscOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Report Discrepancy Only option. 0 : Disable the Report Discrepancy Only option. -topCkt topCktList Specify a list of top cells to get the hierarchical discrepancy report. -view1 viewName Specify the first view name for the comparison. Valid values: layout, logic, and netlist (default=logic). -view2 viewName Specify the second view name for the comparison. Valid values: layout, logic, and netlist (default=layout). Examples # Example 1 # save the discrepancy results to the file (diff.rpt) lakerDiscrepancyHier -lib demoLib -topCkt topCell1 topCell2 \ -file diff.rpt # Example 2 lakerDiscrepancyHier -lib lib2 -view1 netlist -ignoreBulk 1 \ -dumpMapInfo 1 -groupDis 1 -groupInst 1 -file ./ lakerDiscHier.log.1 See Also Home Page: Library > Discrepancy Report lakerDumpModelMap The lakerDumpModelMap command dumps the model map file of a specified library. Syntax lakerDumpModelMap -lib libName -file fileName Returns None Laker³ Tcl Reference Manual K-2015.06 445 Chapter 5: Home Page Library Commands Arguments Argument Description -lib libName Specify the library that is related to the model map file to be dumped. -file fileName Specify the file to save the dumped model map file with its full path. Examples lakerDumpModelMap -lib Demo -file ./test.map See Also Home Page: Library > Model Map File > Dump lakerEncryptLib The lakerEncryptLib command encrypts user-defined devices (UDDs) to prevent from modifying the UDDs. Syntax lakerEncryptLib -lib libName -toPath pathName -toLib newLibName Returns None Arguments Argument Description -lib libName Specify the source library. -toLib newLibName Specify the destination library. -toPath pathName Specify the path of the destination library. Examples lakerEncryptLib -lib Demo -toPath . -toLib EDemo See Also Home Page: Library > Encrypt UDD 446 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands lakerLibCellDumpParam The lakerLibCellDumpParam command dumps the parameter setting for the symbol library. Syntax lakerLibCellDumpParam -lib libName [-file cdfFile] [allCell] [-dir icdfDir] Returns None Arguments Argument Description -allCell When specified, parameters from all cells in the specified library are dumped. -dir icdfDir Specify the iCDF directory to save the dumped parameters. -file cdfFile Specify the cdf file. -lib libName Specify the library name. Examples # Example 1 lakerLibCellDumpParam -lib q -file q.cdf # Example 2 lakerLibCellDumpParam -allCell -lib q2 -dir ./iCDF See Also Home Page: Library > Dump Parameter lakerLibCellParam The lakerLibCellParam command adds the parameters into the Parameter Dialog form for the symbol library. Laker³ Tcl Reference Manual K-2015.06 447 Chapter 5: Home Page Library Commands Syntax lakerLibCellParam -topWnd winId -lib libName -cell cellName [-add] [-delete] -paname paramName [-paramAttr {{paramAttr}...} -value {{value}...}] [-nlsimtype netlistType -netlistAttr {{nlAttr}...} -value {{value}...}] [-dispAttr {{dispAttr} ...} -value {{value}...}] Argument Description -add Add a parameter. -cell cellName Specify the cell name. -delete Delete a parameter. -dispAttr {{dispAttr} Specify the display attribute with format: {{opDisp} {paramDisp}} -lib libName Specify the library name. -netlistAttr {{nlAttr} Specify the netlist attribute with format: {{namePrefix} {netlistProc} {pinOrder} {otherParams} {compName} {modelName} {instParams} {subParams} {propMap}} -nlsimtype netlistType Specify the netlist type. Valid values: hspiceD, auCdl, smartspice, eldoD, spectre, and verilog. -paname paramName Specify the parameter name. -paramAttr {{paramAttr}...} Specify the parameter attribute with format: {{name} {type} {value} {dispPrio} {promptName} {type} {value} {callback} {parseAsNum} {parseAsPEL} {editable} {visible}} 448 -topWnd winId Specify the top window identifier. -value {{value}...} The attribute values vary depending on the assigned -dispAttr, -paramAttr, or -netlistAttr. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Examples # Example 1 # Modify the Parameter information #Add parameters lakerLibCellParam -topWnd _adp1 -lib q -cell inv -add -paname new_0 \ -paramAttr {{dispPrio}} -value {{6}} lakerLibCellParam -topWnd _adp1 -lib q -cell inv -add -paname new_0 \ -paramAttr {{type} {value} {dispPrio}} -value {{button} {} {6}} # Delete parameters lakerLibCellParam -topWnd _adp1 -lib q -cell inv -delete -paname ln # Modify the parameter name lakerLibCellParam -topWnd _adp1 -lib q -cell inv -paname old \ -paramAttr {{name} {value} {dispPrio}} -value {{new} {11} {0}} # Modify other fields in the parameter table lakerLibCellParam -topWnd _adp1 -lib q -cell inv -paname mp \ -paramAttr {{promptName} {type} {value} {callback} {parseAsNum} \ {parseAsPEL} {editable} {visible}} \ -value {{PMOS Multiplierq} {Boolean} {t} {q} {q} {q} {f} {f}} # Modify the parameter type lakerLibCellParam -topWnd _adp1 -lib q -cell inv -paname ln \ -paramAttr {{type}} -value {{button}} # Example 2 # Modify the Netlist information lakerLibCellParam -topWnd _adp1 -lib q -cell inv -nlsimtype hspiceD \ -netlistAttr {{namePrefix} {netlistProc} {pinOrder} {otherParams} \ {compName} {modelName} {instParams} {subParams} \ {propMap}} \ -value {{X} {} {a b c} {} {} {} {} {} {}} # Example 3 # Modify the Display information lakerLibCellParam -topWnd _adp1 -lib q -cell inv \ -dispAttr {{opDisp} {paramDisp}} -value {{test1} {test2}} See Also Home Page: Library > Parameter Laker³ Tcl Reference Manual K-2015.06 449 Chapter 5: Home Page Library Commands lakerMCellTechPorting The lakerMCellTechPorting command changes the related tfLayoutMagicCell section of the existing design library and then reevaluates MCells based on the new rule. Syntax lakerMCellTechPorting -lib libName -topCell topCellName toLib targetLibName [-toPath toPath] [-overwrite 0|1] [shiftOrigin 0|1 | transistor|contact] [-updateMCell mode] [-tech techFile | -attachToLib masterLibName] [keepEditValue 0|1] [-keepTxLenWidth 0|1] Returns None Arguments 450 Argument Description -attachToLib masterLib Specify the master library. This causes the technology file settings of the target library identical with that of the specified master library. -keepEditValue 0|1 Valid values: Boolean values, 0 and 1 (default=0). It is used only when -updateMCell optimize is specified. 1 : Maintain edited values. 0 : Reset edited values, except for transistor length/width, to new minimum values. -keepTxLenWidth 0|1 Valid values: Boolean values, 0 and 1 (default=0). It is used only when -updateMCell optimize is specified. 1 : Do not update previous minimum gate length/width to new minimum rule, unless it violates the new one. 0 : Reset minimum gate length/width to new minimum rule. -lib libName The library database. -overwrite 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Overwrite the existing cell view in the target library. 0 : Do not overwrite the existing cell view in the target library. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Argument Description -shiftOrigin Valid values: Boolean values (0 and 1), transistor, and 0 | 1 | transistor | contact contact (default=0). 1 : Shift the origin of MCells (transistors and contact devices). 0 : Do not shift the origin of MCells (transistors and contact devices). transistor : Shift the origin of transistors only.contact : Shift the origin of contact devices only. -tech techFile Specify the technology file. -toLib targetLibName Specify the new target library database. -toPath toPath Specify the working directory (default=current directory). -topCell topCellName Specify the top cell name of the design to be translated. -updateMCell mode Valid values: optimize, keepConn and off (default=off). optimize : Optimization mode. keepConn : Keep the connection. off : Do not update MCells. Examples lakerMCellTechPorting -lib sourceLib -topCell cell \ -toLib destLib -updateMCell optimize -keepEditValue 1 \ -keepTxLenWidth 1 -shiftOrigin transistor -attachToLib libB See Also Home Page: Library > Technology File > Porting lakerNewLib The lakerNewLib command creates a new library with the specified library name. Syntax lakerNewLib -lib libName [-path path] [-tech techFile | attachToLib masterLib | -refTechLib refTechLibs] Laker³ Tcl Reference Manual K-2015.06 451 Chapter 5: Home Page Library Commands Returns None Arguments Argument Description -attachToLib masterLib Specify the master library. This creates a library with the technology file settings of the specified master library. -lib libName Specify the library name. -path path Specify the working directory (default=current directory). -refTechLib refTechLibs Set the reference for technology libraries. -tech techFile Specify the ASCII technology file (default=default.tf). Examples # Example 1 # Create a new library demoLib lakerNewLib -lib demoLib # Example 2 # Create a new library test and attach it to library demoLib lakerNewLib -lib test -path . -attachToLib demoLib # Example 3 # Create a new library newLib, and set the reference technology # libraries refLib1, refLib2, and refLib3 lakerNewLib -lib newLib -refTechLib refLib1 refLib2 refLib3 See Also dbCreateLib Home Page: Library > New lakerPurgeBackup The lakerPurgeBackup command purges the backup data. Syntax lakerPurgeBackup -lib Liblist -backupnum nKeepBackupNum 452 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Returns None Arguments Argument Description -backupnum nKeepBackupNum Reserve the number of backup database. Valid value: positive integer number. -lib Liblist Specify the database (DB) list. Examples # Example 1 # If the backup version is older than 3 in library (Lib1, Lib2), # remove the backup data lakerPurgeBackup -backupnum 3 -lib Lib1 Lib2 # Example 2 # Remove all the backup data in library (Lib1, Lib2) lakerPurgeBackup -backupnum 0 -lib Lib1 Lib2 See Also Home Page: Library > Purge Backup lakerRefLib The lakerRefLib command checks and fixes the unmatched cell view and library structure. Syntax lakerRefLib -lib libName [-updateCellBBox 0|1] Returns None Arguments Argument Description -lib libName Specify the library database to be refreshed. Laker³ Tcl Reference Manual K-2015.06 453 Chapter 5: Home Page Library Commands Argument Description -updateCellBBox 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Check the DB bounding box when updating the specified library. The checking results are shown on the console. 0 : Do not check the DB bounding box. Examples # refresh demoLib and check db bounding box lakerRefLib -lib demoLib -updateCellBox 1 See Also Home Page: Library > Refresh lakerRefreshMCell The lakerRefreshMCell command refreshes the MCell definition in the technology file. Syntax lakerRefreshMCell -lib libName [-update 0|1] Returns None Arguments Argument Description -lib libName Specify the library database. -update 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Refresh the MCell definition. 0 : Do not refresh the MCell definition. Examples lakerRefreshMCell -lib demoLib -update 1 454 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands lakerRefreshUDD The lakerRefreshUDD command refreshes parameterized test structure devices to synchronize the Tcl scripts if the scripts can be found in the user environment. Syntax lakerRefreshUDD -lib libName [-updateProcScript 0|1] Returns None Arguments Argument Description -lib libName Specify the library to be refreshed. -updateProcScript 0|1 This argument is only used with -lib. Valid values: Boolean values, 0 and 1 (default=1). 1 : Update the procedure scripts of the specified library and UDD supermasters. 0 : Do not update the procedure scripts of the specified library and UDD supermasters. Examples # Example 1 # Library-based Refresh Device: All UDD/Tcl PCell submasters in # the library are deleted and re-generated lakerRefreshUDD -lib LibA -updateProcScript 1 See Also Home Page: Library > Refresh Device lakerRenLib The lakerRenLib command changes the name of the specified library. Syntax lakerRenLib -lib libName -rename rename [-update 0|1] Returns None Laker³ Tcl Reference Manual K-2015.06 455 Chapter 5: Home Page Library Commands Arguments Argument Description -lib libName Specify the library database. -rename rename Specify a new name for the library. -update 0|1 Valid values: Boolean values, 0 and 1. 1 : Update all instances that use the specified library. 0 : Do not update all instances that use the specified library. Examples # change the library name (demoLib) to (renameLib) and # update all instances that use this library lakerRenLib -lib demoLib -rename renameLib -update 1 See Also Home Page: Library > Rename lakerRepModelMap The lakerRepModelMap command returns 1 if the model map file of the specified library can be replaced. Syntax lakerRepModelMap -lib libName -modelMap modelMapFile Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the library database. -modelMap modelMapFile Specify a new model map file for the library. Examples lakerRepModelMap -lib demo -modelMap demo.map 456 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands See Also Home Page: Library > Model Map File > Replace lakerSwapPort The lakerSwapPort command edits the port swapping information in the specified library. The perm_string syntax is as follows: perm_string: {p|f|c perm_string} | {p|f|c port_list} | perm_string perm_string port_list: port_name port_name port_name: any ASCII string where: ■ perm_string: Consists of an ordered sequence of expressions beginning f, p, c. ■ f (fixed): Indicates that the group elements cannot be swapped (nonpermutable). ■ p (permutable): Indicates that any of the group elements can be swapped (independently swappable). ■ c (cyclic): Indicates that the set of group elements may be rotated (cyclically permutable). For example, {c A B C} indicates that the permissible permutations are A B C, B C A and C B A. Notice that: ■ The port name is not in brackets twice. For example, {p{f A A}{f C D}}. ■ If one group is assigned f, the port number of the next group needs to be the same with the former. For example, {p{f A B C}{c C D E}}. ■ p is the default. ■ Different swapping types (p, f, c) are not allowed in the same swapping level, or a discrepancy could result. For example, {p {f NODE_0 NODE_1} {f NODE_2 NODE_3}} and {p {c NODE_0 NODE_1} {c NODE_2 NODE_3}} are legal; but {p {f NODE_0 NODE_1} {p NODE_2 NODE_3}} is illegal because f and p are different types. The swap port function is disabled if different Laker³ Tcl Reference Manual K-2015.06 457 Chapter 5: Home Page Library Commands swapping types are found and an error message is prompted as follows: swap type inconsistent in {p {f NODE_0 NODE_1} {p NODE_2 NODE_3}} Syntax lakerSwapPort [-purge 0|1] -lib libName -swapInfo {{cell1 perm_string} {cell2 perm_string}...} lakerSwapPort -lib libName -save filename lakerSwapPort -lib libName -load filename Returns None Arguments 458 Argument Description -lib libName Specify the library database. -load filename Load the previously saved port swapping information by specifying the file name. -purge 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Clean previous port swapping information in the specified library and show new information. This option is arbitrary. 0: Do not clean previous information but append the new information. -save filename Specify the file to save the port swapping information. The file format is as follows: [PORT_SWAP] cell_name1 {p{f A B C}{f D E F}} cell_name2 {p{p1 p2 p3}{p4 p5 p6}} cell_name3 {p{c A B}{f C D}{f E F}} -swapInfo {{cell1 perm_string} {cell2 perm_string}...} Specify the port swapping information of the cell. perm_string consists of an ordered sequence of expressions beginning f, p, or c. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands Examples # Example 1 lakerSwapPort -lib lib3 -save PnSwInfo.swa # # # # contents of PnSwInfo.swa [PORT_SWAP] c3_1 {p{f r1 r2}{f o1 o2}{f g1 g2}} c3_2 {p{c r g}{c j y}} # Example 2 lakerSwapPort -purge 0 -lib lib3 -swapInfo {{cell3{p{f 1 2 3}{f 3 4 5}}} } See Also Home Page: Library > Swap Port... lakerSwapInstPort lakerTechDump The lakerTechDump command obtains a writable ASCII technology file. Syntax lakerTechDump -lib libName -tech techFile [-local 0|1] [unique 0|1] [-section sectionName] [-editor 0|1] [getMasterLibName 0|1] [-returnContent 0|1] Returns None Arguments Argument Description -editor 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Invoke the editor after dumping the technology file. 0 : Do not invoke the editor after dumping the technology file. -getMasterLibName 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : When specified, only -lib is valid, other arguments are skipped. 0 : When specified, all arguments are valid. -lib libName Specify the library database. Laker³ Tcl Reference Manual K-2015.06 459 Chapter 5: Home Page Library Commands Argument Description -local 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Local option. 0 : Disable the Local option. -returnContent 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : When specified, -getMasterLibName is invalid. No matter the library is master or slave, the content of the desired section is placed to the returning of that Tcl command. 0 : When specified, returns nothing. -section sectionName Specify the sections to be dumped. Value values: tfLayoutSystemUnit, tfSystemPurpose, tfLayoutLayerTable, tfStreamIoTable, tfLayoutLayerRule, tfLayoutVerifyRule, tfLayoutDevice, tfLayoutMagicCell, tfLayoutConnection, tfDeviceRule, tfNetlistDrivenRule, tfSubstrateExtraction, tfAreaEstimation, tfAbstractCell, tfLVSRule, tfLayoutMetalSlot, and tfLayoutCompaction. All sections are dumped if this option is not specified. -tech techFile Specify the technology file. -unique 0|1 This argument is valid only when -local 0 is specified. Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Unique option. 0 : Disable the Unique option. Examples # Example 1 # Dump all technology file sections lakerTechDump -lib demoLib -tech demo.tf # Example 2 # Dump “tfSystemPurpose” and “tfLayoutLayerTable” sections lakerTechDump -lib demoLib -tech demo1.tf \ -section tfSystemPurpose tfLayoutLayerTable See Also Home Page: Library > Technology File > Dump 460 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands lakerTechReplace The lakerTechReplace command compiles and permanently replaces the ASCII technology file to library database after it is updated. This command also attaches the technology file to the specified master library. Syntax lakerTechReplace -lib libName [-partial 0|1] (-tech techFile | -attachToLib masterLib) [[-updateMCell 0|1] [updateMCellList MCellList] [-updateSlaveMCell 0|1]] Returns None Arguments Argument Description -attachToLib masterLib Specify the master library. This imports a library with the technology file settings of the specified master library. -lib libName The library database. -partial 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Replace partial technology file sections. It only works when -tech is specified. 0 : Do not replace partial technology file sections. -tech techFile The defined ASCII technology file. -updateMCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Update the related MCell definitions. 0 : Do not update the related MCell definitions. -updateMCellList MCellList Specify the MCells to be updated. This argument only works when -updateMCell 1 is specified. Valid values: {All}, {None}, and {device1 device2 ...} (default={All}). -updateSlaveMCell 0|1 This argument only works when -updateMCell is turned on. Valid values: Boolean values, 0 and 1 (default=0). 1 : Update MCell definitions for slave libraries. 0 : Do not update MCell definitions for slave libraries. Laker³ Tcl Reference Manual K-2015.06 461 Chapter 5: Home Page Library Commands Examples # Example 1 lakerTechReplace -tech demo.tf -lib demoLib # Example 2 lakerTechReplace -lib test -attachToLib demoLib -updateMCell 1 # Example 3 lakerTechReplace -lib test -updateMCell 1 -updateMCellList {pmos nmos} See Also Home Page: Library > Technology File > Replace lakerTechSave The lakerTechSave command permanerntly saves the changes of the technology file to the library after the layer pattern or layer category is changed. Syntax lakerTechSave -lib libName [-sect sectionName] Returns None Arguments Argument Description -lib libName Specify the library database. -sect sectionName Specify the section to be saved. Valid values: tfLayoutLayerTable, tfLayoutLayerCategory, and tfStreamIoTable. Examples lakerTechSave -lib demoLib See Also Technology File Editor: File > Save 462 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands lakerText2Prop The lakerText2Prop command assigns the text property with net/port names to polygons in the current cell view or all cell views in the specified library. Syntax lakerText2Prop -lib libName [-cell cellName] [-view viewName] [-mode mode] [-pinSize 0|1 -width width [excludePoly 0|1] [-topMetalLayer number] [-thruVia 0|1]] [-extDepth depth] [-extLabelDepth labelDepth] [useColonVirtual 0|1] [-createPinFromInstance 0|1] [checkLogicNet 0|1] Returns None Arguments Argument Description -cell cellName Specify the cell to be extracted. When it is not specified, all cells in the library are extracted. -checkLogicNet 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Check if Nets Exist in Schematic option. 0 : Disable the Check if Nets Exist in Schematic option. -createPinFromInstance 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Create additional pin shapes, which overlap with labels, at level 0 and assign nets or ports for them. 0 : Do not create any additional pin shapes at level 0. -excludePoly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Do not generate system pins with poly shapes. 0 : Generate system pins with poly shapes. -extDepth depth Specify the shape extraction depth. Valid value: an integer, from 0 to 49 (default=0). -extLabelDepth labelDepth Specify the label extraction depth. Valid value: an integer, from 0 to 49 (default=0). This argument is only valid for -mode assignShape. -lib libName Specify the library database. Laker³ Tcl Reference Manual K-2015.06 463 Chapter 5: Home Page Library Commands Argument Description -mode mode Specify the method to assign nets or ports. Valid values: genSystemPin, genPinPurpose, and assignShape (default=genSystemPin). -pinSize 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Pin Size option. 0 : Disable the Pin Size option. -thruVia 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Propagate system pins through vias/contacts. 0 : Do not propagate system pins through vias/contacts. -topMetalLayer number Valid value: an integer, greater than or equal to 1 (default=1). When it is specified, the number of top metal layers is used to generate system pins. When it is not specified, the top metal layers are not used to generate system pins. -useColonVirtual 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use a colon as the virtual connection. 0 : Do not use a colon as the virtual connection. -view viewName Specify the view name of the cell to be extracted (default= layout). -width width Specify the width of a rectangle to limit the size of generated pin shapes. This argument is only valid for -pinSize 1. Valid value: a floating number. Examples # Example 1 # Poly-layer shape is extracted by the Generate System Pin method # Extract labels from level 0~3 and shapes from 0~10 lakerText2Prop -lib Demotest2 -cell test2 -mode genSystemPin \ -extDepth 10 -extLabelDepth 3 -excludePoly 0 # Example 2 # Pin shapes on first 2 top layers are created by # the Generate System Pin method lakerText2Prop -lib Demotest2 -cell test2 -mode genSystemPin \ -topMetalLayer 2 464 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Library Commands # Example 3 lakerText2Prop -lib all -cell OPA -mode genSystemPin \ -excludePoly 0 -thruVia 0 -pinSize 0 -checkLogicNet 1 \ -extDepth 0 -extLabelDepth 0 -useColonVirtual 1 # Example 4 # Extract the view "layout.routed" of cell "top" lakerText2Prop -lib TestLib -cell top -view layout.routed \ -extDepth 0 -createPinFromInstance 0 -useColonVirtual 1 See Also Home Page: Library > Assign Net/Port Layout Window: Cell > Assign Net/Port lakerUpdateCellProp The lakerUpdateCellProp command updates the cell type and pin direction after pin extraction (abstract cell) according to the specified cell property file. Syntax lakerUpdateCellProp -lib libName -cellPropFile filename view {viewName} Returns None Arguments Argument Description -cellPropFile filename Specify the cell property file (*.cpf) with its full path. -lib libName Specify the library database. -view {viewName} Specify the cell view to be updated with cell property. Multiple view names must be separated by spaces. The wildcard characters * and ? are supported. Valid values: all view names (default=abs layout). Laker³ Tcl Reference Manual K-2015.06 465 Chapter 5: Home Page Category Commands Examples # Example 1 # Update the abstract, layout and layout1 views of cell "test" lakerUpdateCellProp -lib qa -cellPropFile demo.cpf \ -view abstract layout layout1 # Example 2 # Update the view leading with "abs" lakerUpdateCellProp -lib qa -cellPropFile demo.cpf -view abs* # Example 3 # Update the abstract view lakerUpdateCellProp -lib test -cellPropFile demo.cpf See Also Home Page: Library > Update Cell Property Category Commands This section describes the Tcl commands applied to the Category commands in the Home Page. ■ lakerDelCategory ■ lakerModifyCategory ■ lakerNewCategory ■ lakerRenCategory lakerDelCategory The lakerDelCategory command deletes the specified category. However, this does not delete the cells that are included in this category. Syntax lakerDelCategory -lib libName -category catgPath Returns None 466 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Category Commands Arguments Argument Description -category catgPathName Specify the category to be deleted in full path. -lib libName Specify the library database. Examples # Example 1 # Delete catg1_1 sub-category under catg1 category in # demoLib library lakerDelCategory -lib demoLib -category /catg1/catg1_1 See Also Home Page: Category > Delete lakerModifyCategory The lakerModifyCategory command assigns cells and sub-categories into a specified category, or removes cells and sub-categories from a specified category. Syntax lakerModifyCategory -lib libName -cell cellList -category catgList (-toCategory catgPathName | -remove) Returns None Arguments Argument Description -category catgList Specify the operating category list. -cell cellList Specify the operating cell list. -lib libName Specify the library database. -remove Specify the Remove operation. -toCategory catgPathName Specify the target category (Assignment) in full path. Laker³ Tcl Reference Manual K-2015.06 467 Chapter 5: Home Page Category Commands Examples # Example 1 # Assign demoCell1, demoCell2 and catg1_1 to /catg1 in # demoLib library lakerModifyCategory -lib demoLib -cell demoCell1 demoCell2 \ -category catg1_1 -toCategory /catg1 # Example 2 # Remove demoCell1 from category in demoLib library lakerModifyCategory -lib demoLib -cell demoCell1 -remove See Also Home Page: Category > Modify lakerNewCategory The lakerNewCategory command creates a new category, that can group cells and categories, by the existing library name and fabrication category name. Syntax lakerNewCategory -lib libName -category catgPathName Returns None Arguments Argument Description -category catgPathName Specify the new category in full path. -lib libName Specify the library database. Examples # Example 1 # Create catg1 category to group the cells in demoLib library lakerNewCategory -lib demoLib -category /catg1 # Example 2 # Create catg1_1 sub-category under catg1 category # to group the cells in demoLib library lakerNewCategory -lib demoLib -category /catg1/catg1_1 468 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Category Commands See Also Home Page: Category > New lakerRenCategory The lakerRenCategory command renames a category of the specified library. Syntax lakerRenCategory -lib libName -category catgPathName newName newCatgPathName Returns None Arguments Argument Description -category catgPathName Specify the category to be renamed in full path. -lib libName Specify the library database. -newName newCatgPathName Specify the new name and path of the category after renaming. Examples # Example 1 # rename “catg1_1” sub-category under catg1 category as # “subCatg1” in demoLib library lakerRenCategory -lib demoLib -category /catg1/catg1_1 \ -newName /catg1/subCatg1 See Also Home Page: Category > Rename Laker³ Tcl Reference Manual K-2015.06 469 Chapter 5: Home Page Cell Commands Cell Commands This section describes the Tcl commands applied to the Cell commands in the Home Page. ■ lakerCopyCell ■ lakerDelCell ■ lakerExportUDDGC ■ lakerImportUDDGC ■ lakerNewCell ■ lakerRenCell ■ lakerReuseCell lakerCopyCell The lakerCopyCell command copies a cell view, a cell, or a category of the specified library to its own or to another library. Syntax lakerCopyCell -lib libName -cell cellName [-view viewName] [-toLib toLib] -toCell toCatgPathCellName [-hierarchy hierarchy] [-copyView viewList] [-updateInst updateInst] [-opt options] lakerCopyCell -lib libName -category catgName -toLib toLib -toCategory toCatgPathName [-hierarchy hierarchy] [-opt options] Returns None Arguments 470 Argument Description -category catgName Specify the source category. -cell cellName Specify the source cell to be copied. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Cell Commands Argument Description -copyView viewList Specify a list of views to be copied. If none, all views are copied. This option is not supported when copying a category. -hierarchy hierarchy Copy design hierarchies. Valid values: all, noRef, and ignoreRef. all: Copy cells hierarchically, including those cells in reference libraries. noRef: Copy cells hierarchically, excluding those in reference libraries.ignoreRef: Copy cells hierarchically, excluding those in specified reference libraries. ignoreRef is not supported as copying category. -lib libName Specify the source library. -opt options Specify the options to copy cell. Valid values: overwrite, ignorecopy, updateinst, and rename -nameFormat %C_%L (default=overwrite). overwrite: Replace an existing cell in target library with the cell, including design hierarchy, copied from source library. ignorecopy: Copy selected cell to target library but keep the reference of instances to source library. updateinst: Copy selected cell to target library and update the reference of instances to target library. rename -nameFormat %C_%L: Copy selected cell to target library and assign a new name to the copied cell and its instances with rename format. -toCategory toCatgPathName Specify the destination category with its full path. -toCell Specify the destination cell with its category path. toCatgPathCellName -toLib toLib Specify the destination library. -updateInst updateInst Update instance references. This option is not supported when copying a category. Valid values: all and newCopied. Laker³ Tcl Reference Manual K-2015.06 471 Chapter 5: Home Page Cell Commands Argument Description -view viewName Specify the view name of the cell. The available views vary depend on the license invoked. Valid values: layout, pcc, symbolic, schematic, symbol, simulation, config, veriloga, verilog, spice, verilogAMS, vhdlAMS, vhdl, systemVerilog, hspice, cdl, spectre, and any user-defined view name. Examples # Example 1 # Copy demoCell in demoLib library to demoCell2 lakerCopyCell -lib demoLib -cell demoCell -toCell demoCell2 # Example 2 # Copy catg1 category from demoLib library to # catg1 category in demoLib2 lakerCopyCell -lib demoLib -category catg1 -toLib demoLib2 \ -toCategory catg1 # Example 3 # Copy CellA (with hierarchy) from Lib1 to Lib2 # and rename it as CellA_Lib2 lakerCopyCell -lib Lib1 -cell CellA -toLib Lib2 -toCell CellA \ -hierarchy all -opt rename -nameFormat %C_%L # Example 4 # Copy CellA (with hierarchy) from Lib1 to Lib2 # and reference cell under CellA's hierarchy to same cell in Lib2 lakerCopyCell -lib Lib1 -cell CellA -toLib Lib2 -toCell CellA \ -hierarchy all -opt updateinst -nameFormat %C_%L # Example 5 # Copy CellA (without all reference libraries) from Lib1 to Lib2 # and only copy abs and layout views lakerCopyCell -lib Lib1 -cell CellA -toLib Lib2 -toCell CellA \ -hierarchy noRef -copyView abs layout # Example 6 # Copy CellA (with hierarchy) from Lib1 to Lib2 and update all # references of all instances in Lib2 lakerCopyCell -lib Lib1 -cell CellA -toLib Lib2 -toCell CellA \ -hierarchy all -updateInst all # Example 7 # Copy CellA (ignore reference library RefLib1 and RefLib2) # from Lib1 to Lib2 lakerCopyCell -lib Lib1 -cell CellA -toLib Lib2 -toCell CellA \ -hierarchy ignoreRef RefLib1 RefLib2 472 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Cell Commands See Also Home Page: Cell > Copy lakerDelCell The lakerDelCell command deletes a cell with the specified view name, or a category of the specified library. Syntax lakerDelCell -lib libName -cell cellName [-view viewName] [-category catgName] [-filterCell filterContent] [filterView filterContent] [-dmCVCkdelete 0|1] Returns None Arguments Argument Description -category catgName Specify the category name. -cell cellName Specify the cell to be deleted. The wildcard character * is supported. -dmCVCkdelete 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Remove cell view files. 0 : Do not remove any cell view files. -filterCell filterContent Specify the cells to be filtered. The wildcard character * is supported. -filterView filterContent Specify the views to be filtered. The wildcard character * is supported. -lib libName Specify the library name. -view viewName Specify the view name of the cell to be deleted. The wildcard character * is supported. Valid values: schematic, symbol, simulation, config, veriloga, verilog, spice, and any user-defined view name (default=schematic). Laker³ Tcl Reference Manual K-2015.06 473 Chapter 5: Home Page Cell Commands Examples # Example 1 # Delete cells nand2, nand 3, and nand 4 from library demolib lakerDelCell -lib demolib -cell nand2 nand3 nand 4 # Example 2 # Delete cells nand2, nand 3, and nand 4 from library demolib,and locate # the specified view name "layout01" lakerDelCell -lib demolib -cell nand2 nand3 nand 4 -view layout01 # Example 3 # Delete cells nand2, nand 3, and nand 4 from library demolib, and # locate the specified view name matching "layout*" lakerDelCell -lib demolib -cell nand2 nand3 nand 4 -view layout* # Example 4 # Delete all cells and views of library demolib lakerDelCell -lib demolib -cell * -view * # Example 5 # Delete cell views of category axv in library demolib, and locate # the cell names matching "all*", and the view names matching "pcc*" # The cell filter is "a*", and the view filter is "p*" lakerDelCell -lib demolib -cell all* -view pcc* \ -withCategory ./axv -filterCell a* -filterView p* # Example 6 # Delete a design and remove it from DM system automatically lakerDelCell -lib CPU -cell AND21 -view layout -dmCVCkdelete 1 See Also Home Page: Cell > Delete lakerExportUDDGC The lakerExportUDDGC command exports global constant to a text file (*.gc). Syntax lakerExportUDDGC -lib libName -file fileName Returns None 474 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Cell Commands Arguments Argument Description -file fileName Specify the gc file to be exported. -lib libName Specify the library database. Examples lakerExportUDDGC -lib TEST -file testB.gc See Also Home Page: Cell > UDD > Export Global Constant lakerImportUDDGC The lakerImportUDDGC command imports global constant from a text file (*.gc). Syntax lakerImportUDDGC -lib libName -file fileName Returns None Arguments Argument Description -file fileName Specify the gc file to be imported. -lib libName Specify library database. Examples lakerImportUDDGC -lib TEST -file testA.gc See Also Home Page: Cell > UDD > Import Global Constant Laker³ Tcl Reference Manual K-2015.06 475 Chapter 5: Home Page Cell Commands lakerNewCell The lakerNewCell command creates a new cell, library subset, by the existing library name and fabrication cell name with the specified category path. Syntax lakerNewCell -lib libName -cell cellName [-withCategory catgPathName] [-view viewName] [-viewType cellviewType] Returns None Arguments Argument Description -cell cellName Specify the new cell. -lib libName Specify the library database. -view viewName Specify a view name for the new cell. -viewType cellviewType Specify the view type for the new cell. The available view types vary depend on the license invoked. Valid values: maskLayout, schematic, symbol, simulation, config, veriloga, verilog, spice, verilogAMS, vhdlAMS, vhdl, systemVerilog, hspice, cdl, spectre, and any user-defined view name. -withCategory catgPathName Specify the category for the new cell in full path (default=/). Examples # Example 1 # create new cell "aa" of library "aaa" in Laker OA lakerNewCell -lib aaa -cell aa # Example 2 # create new maskLayout view of library "aaa", cell "aa" in Laker OA lakerNewCell -lib aaa -cell aa -view layout2 lakerNewCell -lib aaa -cell aa -view layout2 -viewType maskLayout 476 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Cell Commands See Also dbOpenCV Home Page: Cell > New lakerRenCell The lakerRenCell command renames a cell of the specified library. Syntax lakerRenCell -lib libName -cell cellName [-view viewName] toCell newCellName [-toView newViewName] -update 0|1 Returns None Arguments Argument Description -cell cellName Specify the cell to be renamed. -lib libName Specify the library database. -toCell newCellName Specify a new file name for the cell. -toView newViewName Specify a new file name for the view. -update 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Update all instances which use the specified cell and view. 0 : Do not update all instances which use the specified cell and view. -view viewName Specify the view name of the cell to be renamed. Valid values for Laker: layout, logic, schematic and any user-defined view name (default=layout). Valid values for ADP: schematic, symbol, simulation, config, veriloga, verilog, spice, and any user-defined view name (default=schematic). Laker³ Tcl Reference Manual K-2015.06 477 Chapter 5: Home Page Cell Commands Examples # Example 1 # Rename cellview (the same cell) # Rename cell aa view layout in library aaa to cell aa view layout1 # and do not update all instances lakerRenCell -lib aaa -cell aa -view layout -toCell aa \ -toView layout1 -update 0 # Example 2 # Rename cellview (different cell) # Rename cell aa view sch1 in library aaa to cell bb view sch2 # and update all instances lakerRenCell -lib aaa -cell aa -view sch1 -toCell bb \ -toView sch2 -update 1 # Example 3 # Rename cellview (the same cell) # Rename cell aa view layout in library aaa to cell aa view # schematic and do not update all instances lakerRenCell -lib aaa -cell aa -view schematic -toCell aa \ -toView schematic -update 0 See Also Home Page: Cell > Rename lakerReuseCell The lakerReuseCell command reuses the cells that are created with Expand Schematic or ECO by mapping the copied layout view with the logic view. Syntax lakerReuseCell -lib libName -cell cellName -toLib toLib [hierarchy hierarchy] Returns None Arguments 478 Argument Description -cell cellName Specify the source cell to be copied. -hierarchy hierarchy Copy design hierarchies. Valid values: all and noRef. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Floorplan Commands Argument Description -lib libName Specify the source library. -toLib toLib Specify the destination library. Examples # Example 1 # Copy CellA from demoLib to demoLib2 with all design hierarchies lakerReuseCell -lib demoLib -cell CellA -toLib demoLib2 \ -hierarchy all # Example 2 # Copy CellA from demoLib to demoLib2 without copying # design hierarchies lakerReuseCell -lib demoLib -cell CellA -toLib demoLib2 See Also Home Page: Cell > Reuse Floorplan Commands This section describes the Tcl commands applied to the Floorplan commands in the Home Page. These commands include: ■ lakerCreateSite ■ lakerDeleteSite ■ lakerModifySite lakerCreateSite The lakerCreateSite command creates the site information for the specified library. Syntax lakerCreateSite -lib libName -site siteName -width width height height -class className [-symmetry symmetry] Returns None Laker³ Tcl Reference Manual K-2015.06 479 Chapter 5: Home Page Floorplan Commands Arguments Argument Description -class className Valid values: CORE, and PAD (default=CORE). -height height Specify the site height. Valid value: a floating number. -lib libName Specify the library database. -site siteName Specify the site name to be defined. -symmetry symmetry Valid values: X, Y, R90, X Y, Y R90, X R90, and X Y R90. -width width Specify the site width. Valid value: a floating number. Examples lakerCreateSite -lib testLib -site io_site -width 1.0 \ -height 211.75 -class PAD -symmetry X Y R90 See Also Home Page: Floorplan > Site > Create lakerDeleteSite The lakerDeleteSite command removes the site information from the specified library. Syntax lakerDeleteSite -lib libName -site siteName Returns None Arguments 480 Argument Description -lib libName Specify the library database. -site siteName Specify the site to be removed. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Floorplan Commands Examples lakerDeleteSite -lib testLib -site io_site See Also Home Page: Floorplan > Site > Delete lakerModifySite The lakerModifySite command modifies the site information for the specified library. Syntax lakerModifySite -lib libName -site siteName -width width height height -class className [-symmetry symmetry] Returns None Arguments Argument Description -class className Valid values: CORE, and PAD (default=CORE). -height height Specify the site height. Valid value: a floating number. -lib libName Specify the library database. -site siteName Specify the site name. -symmetry symmetry Valid values: X, Y, R90, X Y, Y R90, X R90, and X Y R90. -width width Specify the site width. Valid value: a floating number. Examples lakerModifySite -lib testLib -site io_site -width 1.5 \ -height 211.5 -class PAD -symmetry X Y R90 See Also Home Page: Floorplan > Site > Modify Laker³ Tcl Reference Manual K-2015.06 481 Chapter 5: Home Page Options Commands Options Commands This section describes the Tcl commands applied to the Options commands in the Home Page. These commands include: ■ adpLakerWavePreference ■ adpDumpDsgTree ■ adpDsgPref ■ adpSimConPreference ■ lakerChangeLicense ■ lakerGetLicenseName ■ lakerLoadDispFile ■ lakerPreference ■ lakerRefreshLockedLayerFile ■ lakerSchBroPreference ■ lakerSetUserStrokeFile adpLakerWavePreference The adpLakerWavePreference command returns 1 if one or more preferences have been set in the LakerWave Preferences form. Syntax adpLakerWavePreference [-numDispMode digDisplayed] [widthSelWave num] [-fullName 0|1] [-datapoints 0|1] [anchorMeter 0|1] [-stickResults 0|1] [-grid gridSetting [-minDis num]] [-ToFSDB 0|1] [-snap mode] [-shape shape] [-gravity 0|1 [-type type] [-range num]] Returns 1 if successful; otherwise, returns 0. 482 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Arguments Argument Description -anchorMeter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Show Anchor Measurement option. 0 : Disable the Show Anchor Measurement option. -datapoints 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Show Data Points option. 0 : Disable the Show Data Points option. -fullName 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Hierarchical Signal Name option. 0 : Disable the Hierarchical Signal Name option. -gravity 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Gravity option. 0 : Disable the Gravity option. -grid gridSetting Specify whether to show horizontal or vertical grids. Valid values: vLine and hLine. -minDis num Specify the minimum grid distance. Valid value: an integer (default=60). -numDispMode digDisplayed Specify the number of digits to be displayed and the display mode. Valid values: an integer (for the number of digits to be displayed), engineer and scientific (for the display mode). -range num Specify a gravity range. Valid value: an integer (default=50). -shape shape Specify the property shape for the preselector. Valid values: square, squareCross, cross, and vLine (default=square). -snap mode Specify the property mode for the preselector. Valid values: x, y, and xy. -stickResults 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Show Stick Measurement Results option. 0 : Disable the Show Stick Measurement Results option. Laker³ Tcl Reference Manual K-2015.06 483 Chapter 5: Home Page Options Commands Argument Description -ToFSDB 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Convert to FSDB File option. 0 : Disable the Convert to FSDB File option. -type type Specify the desired gravity types. Valid values: max, min, and avg. -widthSelWave num Specify the width for the selected waveform. Valid value: an integer (default=5). Examples # Example 1 adpLakerWavePreference -minDis 60 -numDispMode 2 engineer \ -widthSelWave 5 -fullName 1 -datapoints 1 -anchorMeter 1 \ -stickResults 1 -grid vLine hLine -ToFSDB 1 -gravity 1 \ -type min -range 50 -snap x -shape square See Also Home Page: Options > LakerWave Preferences adpDumpDsgTree The adpDumpDsgTree command returns 1 if the tree node information can be dumped successfully. Syntax adpDumpDsgTree -topWnd winId [-all] [-np 0|1] [-fullpath 0|1] Returns 1 if successful; otherwise, returns 0. Arguments 484 Argument Description -all Dump all nodes in the design tree. -fullpath 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Dump instances with their full path. 0 : Do not dump instances with their full path. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -np 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Ignore primative devices. 0 : Do not ignore primative devices. -topWnd winId Specify the top window identifier. Examples # Example 1 adpDumpDsgTree -topWnd _adp2 -np 0 -fullpath 0 See Also Home Page: Options > Schematic Preferences > View Options > Design Window > Display Cell Name in Tree Node adpDsgPref The adpDsgPref command defines the display of extra information on the window. Syntax adpDsgPref [-portName 0|1] [-instName 0|1] [-libName 0|1] [-netName 0|1] [-pinName 0|1 [-topPort 0|1]] [localNetName 0|1] [-netLabel 0|1] [-treeNodeCellName 0|1] [-showComment 0|1] [-vtop design] [-PseudoRC 0|1] [dimMode 0|1] [-changescope 0|1] [-defaultPinSize value] [-zoomToSelectSet 0|1] [-zoomToHighlightObject 0|1] [zoomRatio value] [-correctIOPortForSpice 0|1] [makeFGateHier 0|1] [-undoSize value] [-withoutWiring 0|1] [-showNamedNet 0|1] [-allPortNet 0|1] [-pinLabelSize pinLabelSize] [-ignorePinOrderforPrimitive 0|1] [defaultSysNetNamePrefix prefix] [-highlightFloatPoint 0|1] [-multipleOfFontOfPitchValue value] [caseSensInNetName case] [-defaultBorder 0|1 [defaultBorderCell cell -defaultBorderLib lib]] [showMessageForAutoCheck 0|1] [-showMessageForAutoFixing 0|1] [-instParamDisp 0|1] [-emptyValueParam 0|1] [precision value] [-dispmode dispMode] [-texteditor texteditor] [-panRatioValue value] [-parmsym 0|1 [parmSymSkipDefaultValue 0|1]] [-instSelectable 0|1] [netLabelSelectable 0|1] [-wireLabelSelectable 0|1] [- Laker³ Tcl Reference Manual K-2015.06 485 Chapter 5: Home Page Options Commands crossCursor 0|1] [-portSelectable 0|1] [-pinSelectable 0|1] [-textSelectable 0|1] [-shapeSelectable 0|1] [annoTextSelectable 0|1] [-borderSelectable 0|1] [directManipulation 0|1] [-snapCreate snapCreate] [snapEdit snapEdit] [-keepNonEditParamValue 0|1] [gravity 0|1 [-gravityRadius value]] [-honorMOSMfactor 0|1] [-autoCreateWideWire 0|1 -autoWireWidth num] [dmAutoCheckOutCV option] [-dmAutoCheckInCV option] [dmAutoCheckOutInFile option] [-dmAutoExcludeViewName viewNameList] [-dummyNMOSGateNet 0|1] [dummyNMOSGateNetName netname] [-dummyPMOSGateNet 0|1] [dummyPMOSGateNetName netname] [-dummyNMOSSDNet 0|1] [dummyNMOSSDNetName netname] [-dummyPMOSSDNet 0|1] [dummyPMOSSDNetName netname] [-highlightWithXSymbol 0|1 PixelSensitiveRadius value] [-autoSave 0|1 autoSaveInterval value][-autoBackup value] [allSegWireLbl 0|1] [-keepNetNameWhileDeleting 0|1] [parmList 0|1] [-keepNetNameWhenDelLabel 0|1] [keepNetNameWhileDeletingPort 0|1] [-chkERC 0|1 checkERCMode checkMode] [-powerFtr value] [-NetExprDisp value] [-evaluateParamValue 0|1] [-resistanceFtr value] [-conductanceFtr value] [-capacitanceFtr value] [inductanceFtr value] [-lengthMetricFtr value] [-timeFtr value] [-frequencyFtr value] [-voltageFtr value] [currentFtr value] [-viewListDefaultBinding format] [avoidDiffUserNets 0|1] [-enableAreaSelFilter 0|1][instAreaSelFilter 0|1][-wireAreaSelFilter 0|1] [netLabelAreaSelFilter 0|1][-portAreaSelFilter 0|1][pinAreaSelFilter 0|1] [-textAreaSelFilter 0|1][shapeAreaSelFilter 0|1][-annTextAreaSelFilter 0|1] [borderAreaSelFilter 0|1] Returns None Arguments 486 Argument Description -allPortNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Change all net names when renaming a port. 0 : Do not change the net name when renaming a port. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -allSegWireLbl 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Add Net Label to All Wire Segments option. 0 : Disable the Add Net Label to All Wire Segments option. -annoTextSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the selectability of annotation text labels. 0 : Disable the selectability of annotation text labels. -annTextAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of annotation text labels. 0 : Disable the area selectability of annotation text labels. -autoBackup value Specify the number of backup copies. Valid value: an integer (default=1) -autoCreateWideWire 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Auto Create Wide Wire option. 0 : Disable the Auto Create Wide Wire option. -autoSave 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Auto Save Interval option. 0 : Disable the Auto Save Interval option. -autoSaveInterval value Specify the auto saving time interval. This argument is valid only when -autoSave 1 is specified. Valid value: an integer (default=0). -autoWireWidth num Specify the width for the wide wires that are created automatically. This argument is valid only if -autoCreateWideWire 1 is specified. Valid value: an integer (default=10). Laker³ Tcl Reference Manual K-2015.06 487 Chapter 5: Home Page Options Commands Argument Description -avoidDiffUserNets 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Avoid Connecting Different User-defined Nets option. 0 : Disable the Avoid Connecting Different User-defined Nets option. -borderAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of border instances. 0 : Disable the area selectability of border instances. -borderSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the selectability of border instances. 0 : Disable the selectability of border instances. -capacitanceFtr value Specify the unit for the capacitance. Valid values: auto, none, fF, pF, nF, uF, mF, and F (default=auto). -caseSensInNetName case Case sensitivity in net names. Valid values: Preserve, Upper, and Lower (default=Preserve). -cellNameInTitle 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show the following format in the title banner: libraryName:cellName 0 : Show the following format in the title banner: libraryName:cellName.instanceName.....instance Name(cellname) -changescope 0|1 488 Valid values: Boolean values, 0 and 1 (default=1). 1 : Change the design scope of the schematic view by double-clicking on the instance. 0 : Change the design scope by selecting the View > Pop View Up command when double-clicking on a port, or by selecting the View > Push View In command when double-clicking on a pin. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -checkERCMode checkMode Specify the ERC check level. Valid values: Whole Hierarchy and Top Only. -chkERC 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Always execute the ERC checking before Spice exporting. 0 : Execute the ERC checking based on the Stop Export setting in the Logic tab of the Setup Schematic Check Rules form, invoked by Check > Setup ERC Rules in the Schematic Editor window. -conductanceFtr value Specify the unit for the conductance. Valid values: auto, none, uMhos, and mMhos (default=auto). -correctIOPortForSpice 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Correct I/O ports for the spice netlist. 0 : Do not correct I/O ports for the spice netlist. -crossCursor 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Cross Cursor option. 0 : Disable the Cross Cursor option. -currentFtr value Specify the unit for the current. Valid values: auto, none, pA, nA, uA, mA, and A (default=auto). -defaultBorder 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Add the default border to newly created cells. 0 : Do not add the default border to newly created cells. -defaultBorderCell cell Specify the name of the cell which is set as the sheet symbol cell. This argument is valid only if -defaultBorder 1 is specified. -defaultBorderLib lib Specify the name of the library where the default border is located. This argument is valid only if -defaultBorder 1 is specified. Laker³ Tcl Reference Manual K-2015.06 489 Chapter 5: Home Page Options Commands 490 Argument Description -defaultPinSize value Set the default size for the pin's dot and connection dot. Valid value: an integer (default=8). -defaultSysNetNamePrefix prefix Specify the prefix for default system net names. Valid value: a text string (default=N_). -directManipulation 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Direct Manipulation option. 0 : Disable the Direct Manipulation option. -dispmode dispMode Specify the display mode of parameters. Valid values: Normal, Engineering, and Scientific (default=Engineering). -dmAutoCheckInCV option Specify the automatic way to check in cell view files. Valid values: Always, Prompt, and Never. Always : Always check in cell view files automatically. Prompt : Show a prompt notification prior to the check in of cell view files, which are automatically checked out. Never : Never automatically check in cell view files, which are automatically checked out. -dmAutoCheckOutCV option Specify the automatic way to check out cell view files. Valid values: Always, Prompt, and Never. Always : Always check out cell view files automatically. Prompt : Show a prompt notification prior to the check out of cell view files. Never : Never check out cell view files automatically. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -dmAutoCheckOutInFile option Specify the automatic way to check in/out other files. Valid values: Always, Prompt, and Never. Always : Always check in/out other files automatically. Prompt : Show a prompt notification prior to checking in/out other files. Never : Never check in/out other files automatically. -dmAutoExcludeViewName viewNameList Specify a list of excluded view names for auto check-in and check-out of Data Management with format: {viewName1 viewName2 viewName3 ... viewNamen}. This argument is only valid for dbGetAllCells dm0|1 and dbGetAllViews -dm0|1. -dummyNMOSGateNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Gate Net Name for Dummy NMOS option. 0 : Disable the Gate Net Name for Dummy NMOS option. -dummyNMOSGateNetName netname Assign a single net name for all dummy NMOS devices. -dummyNMOSSDNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the S/D Net Name for Dummy NMOS option. 0 : Disable the S/D Net Name for Dummy NMOS option. -dummyNMOSSDNetName netname Assign a single source/drain net name for all dummy NMOS devices. -dummyPMOSGateNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Gate Net Name for Dummy PMOS option. 0 : Disable the Gate Net Name for Dummy PMOS option. Laker³ Tcl Reference Manual K-2015.06 491 Chapter 5: Home Page Options Commands 492 Argument Description -dummyPMOSGateNetName netname Assign a single net name for all dummy PMOS devices. -dummyPMOSSDNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the S/D Net Name for Dummy PMOS option. 0 : Disable the S/D Net Name for Dummy PMOS option. -dummyPMOSSDNetName netname Assign a single source/drain net name for all dummy NMOS devices. -emptyValueParam 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show parameters with the empty value. 0 : Hide parameters with the empty value. -enableAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Enable Area Selectable Filter option. 0 : Do not enable the Enable Area Selectable Filter option. -evaluateParamValue 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show the evaluated parameter value. 0 : Do not show the evaluated parameter value. -frequencyFtr value Specify the unit for the frequency. Valid values: auto, none, Hz, kHz, MHz, and GHz (default=auto). -gravity 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Gravity function for Create Wire. 0 : Disable the Gravity function for Create Wire. -gravityRadius value Specify the radius value for -gravity. Valid value: an integer (default=20). -highlightAllSeg 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Highlight All Wire Segments when Pre-selecting Nets option. 0 : Disable the Highlight All Wire Segments when Pre-selecting Nets option. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -highlightFloatPoint 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Highlight Floating Point for Wires option. 0 : Disable the Highlight Floating Point for Wires option. -highlightWithXSymbol 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Highlight wires with X. 0 : Do not highlight wires. -honorMOSMfactor 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Honor MOS M-factor option. 0 : Disable the Honor MOS M-factor option. -ignorePinOrderforPrimitive 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Ignore checking the inconsistent pin order for primitive symbols. 0 : Check the inconsistent pin order for primitive symbols. -inductanceFtr value Specify the unit for the inductance. Valid values: auto, none, pH, nH, uH, mH, and H (default=auto). -instAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the area selectability of instances. 0 : Disable the area selectability of instances. -instName 0|1 Valid values: Boolean values, 0 and 1. 1 : Show instance names. 0 : Hide instance names. -instParamDisp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Display option in the Parameter tab of the Attribute form (invoked by Query > Attribute) when a new instance is created in the schematic. 0 : Do not enable the above Display option automatically. -instSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the selectability of instances. 0 : Disable the selectability of instances. Laker³ Tcl Reference Manual K-2015.06 493 Chapter 5: Home Page Options Commands Argument Description -keepNetNameWhenDelLabel 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Keep the original net name after net labels are deleted. 0 : Replace the net name with a system-assigned net name when net labels are deleted. -keepNetNameWhileDeleting 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Keep the original net name after wire connections are deleted. 0 : Replace the net name with a system-assigned net name when wire connections are deleted. -keepNetNameWhileDeletingPort Valid values: Boolean values, 0 and 1 (default=1). 0|1 1 : Keep the original net name after ports are deleted. 0 : Replace the net name with a system-assigned net name when ports are deleted. Refer to the Keep Net Name when Deleting Ports description for these specific ports. 494 -keepNonEditParamValue 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Keep Non-editable Parameter Value of New Master option. 0 : Disable the Keep Non-editable Parameter Value of New Master option. -lengthMetricFtr value Specify the unit for the length (metric). Valid values: auto, none, uM, mM, cM, and M (default=auto). -libName 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show the library name. 0 : Hide the library name. -localNetName 0|1 Valid values: Boolean values, 0 and 1. 1 : Show local net names. 0 : Hide local net names. -makeFGateHier 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the form-gate block to make a new hierarchical design. 0 : Disable the form-gate block. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -multipleOfFontOfPitchValue value Set the display font size based on the pitch value. Valid value: an integer with value ranges from 1 to 1024 (default=1). -NetExprDisp Specify the net expression display format. Valid values: valueOnly, valueDefault, valueProperty, valueExpr, and ExprOnly (default=valueProperty). -netLabel 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show physical net labels. 0 : Hide physical net labels. -netLabelAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of net labels. 0 : Disable the area selectability of net labels. -netLabelSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the selectability of net labels. 0 : Disable the selectability of net labels. -netName 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show dynamic net names. 0 : Hide dynamic net names. -panRatioValue value Set the pan ratio increment for the panning distance. Valid value: a floating number with value ranges from 0.1 to 1.0 (default=0.333). -parmList 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show the parameter list. 0 : Hide the parameter list. -parmsym 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show symbol parameters. 0 : Hide symbol parameters. Laker³ Tcl Reference Manual K-2015.06 495 Chapter 5: Home Page Options Commands Argument Description -parmSymSkipDefaultValue 0|1 This argument is valid only if -parmSym is specified. Valid values: Boolean values, 0 and 1 (default=0). 1 : Hide symbol parameters (for example: the default W and L values) if they are not realized onto the instance. 0 : Show the symbol parameters. -pinAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of pins. 0 : Disable the area selectability of pins. -pinLabelSize pinLabelSize Set the default font size of the pin name when generating a symbol from the schematic. Valid value: an integer (default=10). -pinName 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show I/O port names. 0 : Hide I/O port names. -pinSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the selectability of pins. 0 : Disable the selectability of pins. -PixelSensitiveRadius value Specify the pixel size. Only available when the -highlightWithSymbol option is specified. Valid value: an integer with value ranges 10 to 30 (default=10). 496 -portAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the area selectability of ports. 0 : Disable the area selectability of ports. -portName 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show instance port names. 0 : Hide instance port names. -portSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the selectability of ports. 0 : Disable the selectability of ports. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -powerFtr value Specify the unit for the power. Valid values: auto, none, uW, mW, and W (default=auto). -precision value Specify the number of digits of the hierarchical signals displayed in the Schematic Editor window. Valid value: an integer, from 0 to 8 (default=2). -PseudoRC 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Display pseudo RC devices for backannotation. 0 : Do not display pseudo RC devices for backannotation. -resistanceFtr value Specify the unit for the resistance. Valid values: auto, none, Ohms, kOhms, and MOhms (default=auto). -shapeAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of shapes. 0 : Disable the area selectability of shapes. -shapeSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the selectability of shapes. 0 : Disable the selectability of shapes. -showComment 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show comments. 0 : Hide comments. -showMessageForAutoCheck 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show messages for auto checking. 0 : Do not show messages for auto checking. -showMessageForAutoFixing 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show messages for auto fixing. 0 : Do not show messages for auto fixing. Laker³ Tcl Reference Manual K-2015.06 497 Chapter 5: Home Page Options Commands 498 Argument Description -showNamedNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show a warning message when two userdefined nets are shorted together. 0 : Do not show the warning message when two user-defined nets are shorted together. -snapCreate snapCreate Snap mode for creation. Valid values: anyAngle, diagonal, orthogonal, xFirst, and yFirst (default=orthogonal). -snapEdit snapEdit Snap mode for editing. Valid values: anyAngle, diagonal, and orthogonal (default=orthogonal). -textAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of text labels. 0 : Disable the area selectability of text labels. -texteditor texteditor Set the preferred text editor. Valid values: default, textedit, gvim, joe, and vi (default=default). -textSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the selectability of text labels. 0 : Disable the selectability of text labels. -timeFtr value Specify the unit for the time. Valid values: auto, none, pS, nS, uS, mS, and S (default=auto). -topPort 0|1 This argument is valid only if -pinName 1 is specified. Valid values: Boolean values, 0 and 1 (default=0). 1 : Show top level port names. 0 : Hide top level port names. -treeNodeCellName 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show the master cell name on tree nodes. 0 : Hide the master cell name on tree nodes. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -undoSize value Specify the number of times undo is allowed. Valid value: an integer from 1 to 256 (default=5). -viewListDefaultBinding format Specify the netlist type, switch views, and stop views for exporting the netlist with the following format: {"{hspiceD}{viewNames}{viewName}" "{auCdl}{viewNames}{viewName}" "{smartspice}{viewNames}{viewName}" "{eldoD}{viewNames}{viewName}" "{spectre}{viewNames}{viewName}" "{verilog}{viewNames}{viewName}"} -voltageFtr value Specify the unit for the voltage. Valid values: auto, none, uV, mV, V, and kV (default=auto). -vtop design Specify a virtual top design. -wireAreaSelFilter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the area selectability of net labels. 0 : Disable the area selectability of net labels. -wireLabelSelectable 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the selectability of net labels. 0 : Disable the selectability of net labels. -withoutWiring 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Place the netlist data without physical direct wires (not routed). 0 : Place the netlist data with physical direct wires (routed). -zoomRatio value Set the ratio to zoom in to the highlighted objects. This argument is valid only if zoomToHighlighObject 1 is specified. Valid value: an integer, greater than or equal to 0 (default=1). -zoomToHighlightObject 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Zoom to the highlighted objects. 0 : Do not zoom to the highlighted objects. Laker³ Tcl Reference Manual K-2015.06 499 Chapter 5: Home Page Options Commands Argument Description -zoomToSelectSet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Zoom to the select set. 0 : Do not zoom to the select set. Examples # Example 1 adpDsgPref -treeNodeCellName 1 -portName 1 -pinName 0 \ -instName 0 -netName 1 -localNetName 1 -parmList 0 \ -zoomToSelectSet 0 -zoomToHighlighSet 0 -labelSelectable 1 \ -pinSelectable 1 -dimMode 0 -correctIOPortForSpice 1 \ -showMessageForAutoCheck 1 -showMessageForAutoFixing 0 \ -ignorePinOrderforPrimitive 1 # Example 2 # Exclude view names with "schematic" in DM environment adpDsgPref -dmAutoExcludeViewName {schematic} # Example 3 # No views are excluded in DM environment adpDsgPref -dmAutoExcludeViewName {} # or the curly brackets can be omitted adpDsgPref -dmAutoExcludeViewName # Example 4 # Set the following automation for DM: # - Always check out cell view files automatically; # - Never check in cell view files automatically; # - Show a prompt notification prior to the check in/out of other files adpDsgPref -dmAutoCheckOutCV Always -dmAutoCheckInCV Never \ -dmAutoCheckOutInFile Prompt # Example 5 # Specify net expression display adpDsgPref -NetExprDisp valueProperty See Also Home Page: Options > Schematic Preferences adpSimConPreference The adpSimConPreference command returns 1 if one or more preferences have been set. 500 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Syntax adpSimConPreference [-simCtrlSeg 0|1] [-bgmode 0|1] [openLog 0|1] [-addu 0|1] [-busParentheses style] [simBackupDir] [-include 0|1] [-spiceStop 0|1] [-end 0|1] [-genIncVa 0|1] [-genPseu 0|1] [-linespace lineSpace] [dummySuffix 0|1] [-regenControlDecks 0|1] [IgnoredParamNames {param1 ... paramn}] [-pinInfo 0|1] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -addu 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Apply the ‘u’ scale to the width and length. 0 : Do not apply the ‘u’ scale to the width and length. -bgmode 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Run the simulation in batch mode. 0 : Do not run the simulation in batch mode. -busParentheses style Specify the bus translation style. Valid values: Angle, Square, Underscore, and None (default=Angle). -dummySuffix 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Append Port Name for Dummy Nodes option. 0 : Disable the Append Port Name for Dummy Nodes option. -end 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Add the .end statement. 0 : Do not add the .end statement. -genIncVa 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Generate the IncVA file (Include Verilog-A Modules in Eldo/Spice netlist). 0 : Do not generate the IncVA file. -genPseu 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Display the pseudo device statement. 0 : Do not display the pseudo device statement. Laker³ Tcl Reference Manual K-2015.06 501 Chapter 5: Home Page Options Commands Argument Description -IgnoredParamNames {param1 ... paramn} Specify the parameters to be ignored when extracting design variables. -include 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Export the header for each subcircuit. 0 : Do not export the header for each subcircuit. -linespace lineSpace Specify the number of maximum characters per line. Valid value: an integer, from 32 to 4096 (default=128). -openLog 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Open the log file after the simulation is finished. 0 : Do not open the log file after the simulation is finished. -pinInfo 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Output Pin Information option. 0 : Disable the Output Pin Information option. -regenControlDecks 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Re-generate the *_tb and *_t.sp files. 0 : Do not re-generate the *_tb, *_t.sp, and *_sch files. -simBackupDir Specify the name of the netlist backup directory. -simCtrlSeg 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Place the include file in ahead of the design netlist. 0 : Do not place the include file in ahead of the design netlist. -spiceStop 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Ignore the spiceStop statement. 0 : Do not ignore the spiceStop statement. Examples adpSimConPreference -simCtrlSeg 1 -bgmode 0 -openLog 0 \ -genPseu 0 -applyUToWL 0 -busParentheses Angle \ -simBackupDir -include 0 -spiceStop 0 -end 0 -genIncVa 0 \ -addu 0 -linespace 80 See Also Home Page: Options > SimCon Preferences 502 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands lakerChangeLicense The lakerChangeLicense command returns 1 if the desired license level can be changed successfully after closing all opened layout windows. Syntax lakerChangeLicense -Level licenseLevel Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -Level licenseLevel Specify the license level. Valid values: LViewer, L0, L1, L2, L3, L4, SE, and ADP. Examples # Example 1 # Change to L2 lakerChangeLicense -Level L2 See Also lakerGetLicenseName lakerGetLicenseName The lakerGetLicenseName command returns the current check-out license name (such as LViewer, L0, L1, L2, L3, L4, SE, or ADP) or version if the license name or version can be obtained successfully. Syntax lakerGetLicenseName [-version] Returns A license name or a license name and version if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 503 Chapter 5: Home Page Options Commands Arguments Argument Description -version Return the license version for L0, L1, L2, L3, L4, SE, or ADP. Examples # Example 1 # Get the license name in L2, it returns "L2" lakerGetLicenseName # Example 2 # Get the license name and version in L3, it returns "L3 2011.02" lakerGetLicenseName -version See Also lakerChangeLicense lakerLoadDispFile The lakerLoadDispFile command modifies the current display definition by loading a dsp or drf display file. Replace all definitions with appendOverwrite or append only the current definitions with appendIgnore. Syntax lakerLoadDispFile -fileName dispFileName [-format fileFormat] [-method method] [-dumpFile fileName] Returns None Arguments 504 Argument Description -dumpFile fileName Dump a drf file to a dsp file and save the result under the laker3Log directory. -fileName dispFileName Load the specified display file name. -format fileFormat Specify the file format. Valid values: dsp and drf (default=dsp). Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -method method Specify the method to load the file. Valid values: default, appendOverwrite, and appendIgnore (default=default). Examples # Example 1 # The file is in dsp format and the loading method is default lakerLoadDispFile -fileName /temp/Laker/default.dsp # Example 2 # The file is in drf format and the loading method is # appendOverwrite lakerLoadDispFile -fileName /temp/Laker/default.drf \ -format drf -method appendOverwrite # Example 3 # The file is in drf format and dump the result to tmp.dsp lakerLoadDispFile -fileName /temp/Laker/default.drf \ -format drf -dumpFile tmp.dsp See Also Home Page: Options > Load Display File lakerPreference The lakerPreference command defines the preference settings. Syntax lakerPreference [-shortDetector 0|1] [-flightLine 0|1] [SkipWarnNo number] [-overrideSwap 0|1] [-hlObjPathWidth number] [-offGridRouter 0|1] [-shapeToLine 0|1] [DimColorLevel level] [-drawing level] [-drawingMethod method] [-relativeLibPath 0|1] [-drawingMaxFilter filter] [-createDummyGate 0|1] [-EIPDimNeighbor 0|1] [ShowNetNameTip 0|1] [-dummyGateNumbers numberSingle numberMulti numberInner] [-dummyGateInnerTolerance toleranceValue] [-dummyGateLengthType LengthType] [maxPropagation number] [-updateMCell 0|1] [resistorSegNum number] [-discreteGatePitch 0|1] [keepUpdatedCreateValue 0|1] [-showWarnMsgWnd 0|1] [dispCellName style] [-snapRowRadius dRadius] [- Laker³ Tcl Reference Manual K-2015.06 505 Chapter 5: Home Page Options Commands autoCreateSoftPin 0|1] [-instRubberBandBorderOnly 0|1] [-setGrAlignCenterLine 0|1] [-delConnVia 0|1] [showLayerAlias 0|1] [-showStreamNumber 0|1] [autoMergeSplitTx 0|1] [-getDelimiter] [-confirmEIPSave 0|1] [-ioDefaultDirectory filePath] [-DRCOperMode mode] [-enableDevObjMode 0|1] [-alignSpacingValue AlignSpacing] [-fixEnc 0|1] [-dmAutoCheckOutCV option] [-dmAutoCheckOutInFile option] [-dmAutoExcludeViewName viewNameList] [-dmAutoCheckInCV option] [-abutDevice 0|1 -abutmentMode mode -abutPCellPath path] [-stretchDevice 0|1] [-bindFlightLine 0|1] [-showFlightLineBySel 0|1] [flightLineMode mode] [-maxFlightLineByNet number] [maxFlightLine number] [-MsgLineNumber number] [draglineDisplayStyle style] [-flightLineDisplay style] [-setDimensionMarkUnit unit] [-sheetResFile fileName] [ToolTipMaxChars value] [-ShowRulerWithMinResolution 0|1] [-useAbutProcedure 0|1] [-ProcedureToOpenSchematic name] [-mouseWheel 0|1] [-instanceLoopChecking 0|1] [rightClickCommandMenu 0|1] [-maxFinHierLevel number] [SnapToFinSeparately 0|1] [-constraintAwareLevel level] [-checkValidRoutingLayer 0|1] [-propagateColor 0|1] [propagateLock 0|1] [-viewPathLabel 0|1] [-viewInstPin 0|1] [-viewPinLabel Off|Port|Net] [-createColor 0|1|2] [-createColorMode cMode] [-drdColorMode cMode] [pastePickedParameterMethod method] [-enableSelectUndo 0|1] [-undoCnt value] [-selectUndoCnt value] [selectUndoMaxObj value] Returns None Arguments 506 Argument Description -abutDevice 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Device Abutment option. 0 : Disable the Device Abutment option. -abutmentMode mode Specify the abutment mode. Valid values: Auto, 2Connections, and 3Connections (default=Auto). -abutPCellPath path Specify the path for abutment PCells. This argument is valid only if -abutDevice is specified. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -alignSpacingValue AlignSpacing The spacing values for alignment. Valid value: a floating number, or a list of floating numbers. Multiple values must be separated by spaces. -autoMergeSplitTx 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable Auto Merge/Split when moving or stretching transistors. 0 : Disable Auto Merge/Split when moving or stretching transistors. -bindFlightLine 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Merge Instance's Flight Lines into Single Line option. 0 : Disable the Merge Instance's Flight Lines into Single Line option. -checkValidRoutingLayer 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Check Valid Routing Layer option. 0 : Disable the Check Valid Routing Layer option. -confirmEIPSave 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Always Confirm EIP Save option. 0 : Disable the Always Confirm EIP Save option. -constraintAwareLevel level Specify the constraint aware level. Valid values: all, foundry, and off (default=off). -createColor 0|1|2 Specify the color index for the coloring behavior of creation features. Valid values: 0, 1, and 2 (default=0). ■ ■ ■ -createColorMode cMode 0: No color. 1: Color 1. 2: Color 2. Specify the color behavior of creation features. Valid values: keep and locked (default=locked). -createDummyGate 0|1 Laker³ Tcl Reference Manual K-2015.06 Valid values: Boolean values, 0 and 1 (default=0). 1 : Create dummy gates. 0 : Do not create dummy gates. 507 Chapter 5: Home Page Options Commands 508 Argument Description -delConnVia 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Delete path segments with connected vias. 0 : Keep path segments with connected vias. -DimColorLevel level Specify the dim/bright level. Valid value: an integer, from 0 to 4 (default=2). -discreteGatePitch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Discrete Gate Pitch option. 0 : Disable the Discrete Gate Pitch option. -dispCellName style Specify the display style of cell names on the layout. Valid values: master and instance. -dmAutoCheckInCV option Specify the automatic way to check in cell view files. Valid values: Always, Prompt, and Never. Always : Always check in cell view files automatically. Prompt : Show a prompt notification prior to the check in of cell view files, which are automatically checked out. Never : Never automatically check in cell view files, which are automatically checked out. -dmAutoCheckOutCV option Specify the automatic way to check out cell view files. Valid values: Always, Prompt, and Never. Always : Always check out cell view files automatically. Prompt : Show a prompt notification prior to the check out of cell view files. Never : Never check out cell view files automatically. -dmAutoCheckOutInFile option Specify the automatic way to check in/out other files. Valid values: Always, Prompt, and Never. Always : Always check in/out other files automatically. Prompt : Show a prompt notification prior to checking in/out other files. Never : Never check in/out other files automatically. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -dmAutoExcludeViewName viewNameList Specify a list of excluded view names for auto checkin and check-out of Data Management with format: {viewName1 viewName2 viewName3 ... viewNamen}. This argument is valid for dbGetAllCells -dm0|1 and dbGetAllViews -dm0|1. -draglineDisplayStyle style Specify the dragline display style. Valid values: none, all, and nearest (default=nearest). -drawing level Specify the drawing level. The higher the level the better the performance. Valid value: an integer, from 0 to 5 (default=2). -drawingMaxFilter filter Specify the filter threshold in drawing level 5. The unit is in screen pixel. Valid value: an integer. -drawingMethod method Specify the drawing method. Valid values: fast and normal. -DRCOperMode mode Specify the operate mode for design rule checking. Valid values: LiveDRC and RuleDriven. -drdColorMode cMode Specify the coloring behavior for DRD checking. Valid values: visual, keep, and locked (default=visual). -dummyGateInnerTolerance toleranceValue Specify a threshold value (micro) for dummy gates. If the difference of gate width (between two adjacent gates) exceeds this value, dummy gates are added within the adjacent gates. Valid value: a floating number, greater than or equal to 0.0 (default=0.0). -dummyGateLengthType LengthType Specify the length type for dummy gate length. Valid values: AdjacentNarrower, AdjacentWider, and MinChannelLength (default=AdjacentNarrower). Only valid when -createDummyGate is specified. Laker³ Tcl Reference Manual K-2015.06 509 Chapter 5: Home Page Options Commands 510 Argument Description -dummyGateNumbers numberSingle numberMulti numberInner Specify the number of dummy gates with these values: numberSingle: (default=2) for a transistor with one normal gate. numberMulti: (default=1) for a transistor with multiple normal gates. numberInner: (default=1) for a transistor with gate width difference (between two adjacent gates) exceeding the toleranceValue. Valid value: integer, greater than or equal to 0. -EIPDimNeighbor 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the EIP Dim Neighbor option. 0 : Disable the EIP Dim Neighbor option. -enableDevObjMode 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Device Object Mode option. 0 : Disable the Device Object Mode option. -enableSelectUndo 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Enable Select Undo/Redo option. 0 : Disable the Enable Select Undo/Redo option. -fixEnc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Fix StdVia Enclosure Value option. 0 : Disable the Fix StdVia Enclosure Value option. -flightLine 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show flight lines. 0 : Do not show flight lines. -flightLineDisplayStyle style Specify the flight line display style. Valid values: cc, vv, and ve (default=vv). -flightLineMode mode Specify the flight line mode. Valid values: wireplan and floorplan (default=wireplan). Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -getDelimiter The argument is mutually exclusive with the other arguments, and has the highest priority. It is used for Laker/Composer integration. lakerPreference returns the delimiter string used in Laker for this argument only. For other arguments, it returns nothing. -hlObjPathWidth number Specify the status of Path Width of Highlighted Object which controls the path width of those objects for highlighting lines and pairs. Valid value: an integer, greater than or equal to 1. -instanceLoopChecking 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Check Loops for Instances option. 0 : Disable the Check Loops for Instances option. -instRubberBandBorderOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show the rubber band of the instance border as creating or editing objects. 0 : Do not show the rubber band of the instance border. -ioDefaultDirectory filePath Specify the default directory for the output GDSII file. If it is not specified, the output file is saved under the working directory. -keepUpdatedCreateValue 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Reserve the value of Contact to Gate, X-spacing, and Y-spacing in the Create Transistor form. 0 : Reset to the default value. -maxFinHierLevel number Specify the maximum number of hierarchy levels to be traversed when snapping fin regions or OD shapes. Valid value: an integer (default=1). -maxFlightLine number Specify the maximum number of flight lines to be displayed for all nets. Valid value: an integer (maximum=20000). Laker³ Tcl Reference Manual K-2015.06 511 Chapter 5: Home Page Options Commands Argument Description -maxFlightLineByNet number Specify the maximum number of flight lines to be displayed for a specified net. Valid value: an integer (maximum=20000). -maxPropagation number Specify the maximum number of propagation objects. Valid value: an integer. -mouseWheel 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Enable Mouse Wheel option. 0 : Disable the Enable Mouse Wheel option. -MsgLineNumber number Valid values: 0, 1, and 2 (default=1). 0 : Enable the On the Same Row option. 1 : Enable the One Message Line option. 2 : Enable the Two Message Lines option. -offGridRouter 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : The point-to-point router supports routing on offgrid shapes. 0 : The point-to-point does not support off-grid routing. -overrideSwap 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Serial gates are not swappable in the Layout window and Stick Diagram Compiler. 0 : Serial gates are swappable. -pastePickedParameterMethod Specify the method to paste the parameters. method Valid values: updateAll, updateAllWithSameType, and updateModifiedParameterWithCB (default=updateAllWithSameType). 512 -ProcedureToOpenSchematic procName Specify the procedure to open the schematic data. -propagateColor 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Enable the Propagate Color Information option. 0: Disable the Propagate Color Information option. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -propagateLock 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Enable the Propagate Locked Information option. 0: Disable the Propagate Locked Information option. -propagation 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Enable the Propagate Net Information option. 0: Disable the Propagate Net Information option. -relativeLibPath 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Translate all mapping paths into a relative path. 0 : Translate all mapping paths into an absolute path. -resistorSegNum number Specify the number of resistor segments. Valid value: an integer (default=5). -rightClickCommandMenu 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the right-click command menu in the layout. 0 : Disable the right-click command menu in the layout. -selectUndoCnt value Specify the number of times undo is allowed for select operations. Valid value: an integer from 1 to 128 (default=10). -selectUndoMaxObj value Specify the maximum number of selected objects to be reserved for Select Undo actions. Valid value: an integer from 1 to 1000 (default=1000). -setDimensionMarkUnit unit Specify the unit of the dimension value to be displayed on screen. Valid values: none, auto, micrometer, and millimeter. -setGrAlignCenterLine 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: The reference point of the guard ring alignment can be its centerline only. 0: The reference point of the guard ring alignment can be its centerline, vertices, and edges of contacts. Laker³ Tcl Reference Manual K-2015.06 513 Chapter 5: Home Page Options Commands Argument Description -shapeToLine 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Shapes can be stretched to a line. 0: Shapes cannot be stretched to a line. -sheetResFile fileName Specify the sheet resistance file with its file path, for example: ./sheet.res. -shortDetector 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Enable the Activate Short Detector option. 0: Disable the Activate Short Detector option. -showFlightLineBySel 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Show flight lines by selection. 0: Do not show flight lines by selection. -showLayerAlias 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Enable the Show Layer Alias Name option. 0: Disable the Show Layer Alias Name option. -ShowNetNameTip 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Show Net Name when Pre-selecting Objects option. 0 : Disable the Show Net Name when Preselecting Objects option. -ShowRulerWithMinResolution Valid values: Boolean values, 0 and 1 (default=0). 0|1 1: Enable the Show Ruler with Min Resolution option. 0: Disable the Show Ruler with Min Resolution option. 514 -showStreamNumber 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Enable the Show Stream Number option. 0: Disable the Show Stream Number option. -showWarnMsgWnd 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1: Show warning or error messages in a separate window. 0: Show warning or error messages in the message frame of the Home Page. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -SkipWarnNo number Specify the number of warning messages to be ignored. Valid value: an integer (default=100, maximum). -snapRowRadius dRadius Specify the snapping distance for tile cells. Valid value: a positive floating number (default=0.3). -SnapToFinSeparately 0|1 Valid values: Boolean values, 0 and 1. 1: Enable the Snap to Fin Grid Individually option. 0: Disable the Snap to Fin Grid Individually option. -stretchDevice 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Device Stretch option. 0 : Disable the Device Stretch option. -ToolTipMaxChars value Specify the maximum characters per line to be displayed in the yellow tip window. Valid value: an integer (default=32). This argument corresponds to the value saved in the [LeoPreference] section of the laker.rc resource file designated by the keyword ToolTipMaxChars. -undoCnt value Specify the number of times undo is allowed for creating and editing operations. Valid value: an integer from 1 to 256 (default=5). -updateMCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Update MCell definitions. 0: Do not update MCell definitions. -useAbutProcedure 0|1 Valid values: Boolean values, 0 and 1. 1: Use AbutProcedure to perform the abutment. 0: Use AbutControlPcell to perform the abutment. -viewInstPin 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Enable the View Instance Pin option. 0: Disable the View Instance Pin option. -viewPathLabel 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Enable the View Path Label option. 0: Disable the View Path Label option. Laker³ Tcl Reference Manual K-2015.06 515 Chapter 5: Home Page Options Commands Argument Description -viewPinLabel Off|Port|Net Specify the display mode of pin labels. Valid values: Off, Port, and Net (default=Off). Examples # Example 1 # Turn on "Activate Short Detector" lakerPreference -shortDetector 1 # Example 2 # Turn on "Show Flight Line" lakerPreference -flightLine 1 # Example 3 # Turn off "Show Global Flight Line" lakerPreference -globalFlightLine 0 # Example 4 # Specify the number of warning messages to be ignored lakerPreference -SkipWarnNo 100 # Example 5 # Turn on "Shape Can't Stretch to Line" lakerPreference -shapeToLine 0 # Example 6 # Translate all mapping paths into absolute path lakerPreference -relativeLibPath 0 # Example 7 # Translate all mapping paths into relative path lakerPreference -relativeLibPath 1 # Example 8 # Turn off Create Dummy Gate lakerPreference -createDummyGate 0 # Example 9 # Turn on Create Dummy Gate and specify the number of gates and # tolerance and dummy gate length type lakerPreference -createDummyGate 1 -dummyGateNumbers 2 1 1 \ -dummyGateInnerTolerance 0.2 -dummyGateLengthType \ MinChannelLength # Example 10 # Specify the Spacing values for alignment lakerPreference -alignSpacingValue {1.0 2.5 3.0} 516 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands # Example 11 # Enable the checking when opening a logic cell view. lakerPreference -checkSchTimeStampWhenOpen 1 # Example 12 # Enable the checking periodically and the interval is 30 minutes. lakerPreference -autoCheckSchTimeStamp 1 \ -autoCheckSchTimeStampInterval 30 # Example 13 # Exclude view names with "logic" and "schematic" in DM environment lakerPreference -dmAutoExcludeViewName {logic schematic} # Example 14 # No views are excluded in DM environment lakerPreference -dmAutoExcludeViewName {} # or the curly brackets can be omitted lakerPreference -dmAutoExcludeViewName # Example 15 # Set the following automation for DM: # - Always check out cell view files automatically; # - Never check in cell view files automatically; # - Show a prompt notification prior to the check in/out # of other files lakerPreference -dmAutoCheckOutCV Always -dmAutoCheckInCV Never \ -dmAutoCheckOutInFile Prompt lakerRefreshLockedLayerFile The lakerRefreshLockedLayerFile command refreshes the locked layer definition if the locked layer file exists. Syntax lakerRefreshLockedLayerFile Returns None Arguments None Examples lakerRefreshLockedLayerFile See Also Home Page: Options > Refresh Locked Layer File Laker³ Tcl Reference Manual K-2015.06 517 Chapter 5: Home Page Options Commands lakerSchBroPreference The lakerSchBroPreference command configures the settings of the Design Browser pane and the tolerance sensitivity of mismatched values between the netlist and layout. Syntax lakerSchBroPreference [-mosDim 0|1] [-mosExtraDevArg 0|1] [-mosPort 0|1] [-mosLayoutPort 0|1] [-mosSchPort 0|1] [resDim 0|1] [-resExtraDevArg 0|1] [-resPort 0|1] [resLayoutPort 0|1] [-resSchPort 0|1] [-capDim 0|1] [capExtraDevArg 0|1] [-capPort 0|1] [-capLayoutPort 0|1] [-capSchPort 0|1] [-instDim 0|1] [-instExtraDevArg 0|1] [-instPort 0|1] [-instLayoutPort 0|1] BrowserShowGateType 0|1 | -BrowserShowGroup 0|1 | BrowserShowStack 0|1 [-BrowserShowStackDetail 0|1] | BrowserShowConstraint 0|1 | -BrowserCmpDetail 0|1 | BrowserCmpFormgate 0|1 | -BrowserAutoExpandGrp 0|1 | BrowserAutoFlatnGrp 0|1 | -BrowserTipLayPara 0|1 | BrowserTipSchPara 0|1] [[-BrowserAutoGenText 0|1] [BrowserGenTextFor {deviceType}] [-BrowserGenTextHeight textHeight] [-BrowserGenTextFont textFont] [BrowserGenTextCase textCase] [BrowserUnsetGenTextLayer] [-BrowserGenTextLayer layerName [purposeName]] [-BrowserGenTextJustify textJustify] [-BrowserGenTextOrient textMirror]] [BrowserDimTolerance num | -BrowserMosLenTolerance num | -BrowserMosWidthTolerance num | BrowserResValueTolerance num | -BrowserResLenTolerance num | -BrowserResWidthTolerance num | BrowserCapValueTolerance num] [-BrowserIgnoreBulk 0|1] [-dummyNMOSGateNet 0|1] [-dummyNMOSGateNetName netname] [-dummyPMOSGateNet 0|1] [-dummyPMOSGateNetName netname] [-dummyNMOSSDNet 0|1] [-dummyNMOSSDNetName netname] [dummyPMOSSDNet 0|1] [-dummyPMOSSDNetName netname][instSchPort 0|1] [-honorMOSMfactor 0|1] [BrowserSyncStatusWithADP 0|1] [-BrowserSyncScopewithADP 0|1] [-useStickPostProc 0|1] [-stickPostProc procName] [-stickPostProcScript file] [-useMatchPostProc 0|1] [matchPostProc procName] [-matchPostProcScript file] [[useSpacingProc 0|1] [-spacingProc procName]] [displayStickAtLeastObj value] [-autoCheckSchTimeStamp 0|1] [-autoCheckSchTimeStampInterval interval] [- 518 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands autoCreateSoftPin 0|1] [-checkSchTimeStampWhenOpen 0|1] [-schTopology 0|1] [-autochain 0|1] [-multiInstDelimiter delimiter] [-selectObjectWhenCrossProbe 0|1] Returns None Arguments Argument Description -autoChain 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Auto Transistor Chaining and Placement option. 0 : Disable the Auto Transistor Chaining and Placement option. -autoCheckSchTimeStamp 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Automatically check the schematic time stamp when the specified interval is passed. The auto checking is enabled only when the interval is greater than 0. 0 : Do not check the schematic time stamp automatically. -autoCheckSchTimeStampInterval Set the period of time to automatically check the interval schematic time stamp. The time unit is minutes. Valid values: integer, greater than or equal to 0 (default=0). The auto checking is enabled only when -autoCheckSchTimeStamp 1 is specified and the interval is greater than 0. -autoCreateSoftPin 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Auto Create Soft Pin option. 0 : Disable the Auto Create Soft Pin option. -BrowserAutoExpandGrp 0|1 Valid values: Boolean values, 0 and 1. 1 : Grouping after expanding instances. 0 : No grouping after expanding instances. -BrowserAutoFlatnGrp 0|1 Valid values: Boolean values, 0 and 1. 1 : Grouping after flattening instances. 0 : No grouping after flattening instances. Laker³ Tcl Reference Manual K-2015.06 519 Chapter 5: Home Page Options Commands 520 Argument Description -BrowserAutoGenText 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Generate text labels for specified object types. 0 : Do not generate text labels for specified object types. -BrowserCapValueTolerance num Specify the tolerance percentage for the capacitor value. Valid value: a positive floating number. -BrowserCmpDetail 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the detailed report in a tip window. 0 : Hide the detailed report in a tip window. -BrowserCmpFormgate 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the discrepancy report by the form gate information. 0 : Hide the discrepancy report by the form gate information. -BrowserDimTolerance 0|1 Valid values: Boolean values, 0 and 1. 1 : Allow tolerance to dimension. 0 : Do not allow tolerance to dimension. The dimension must be matched. -BrowserGenTextFor {deviceType} Set the object type of the target for text generation. Multiple types can be specified. Valid values: Transistor, Resistor, Capacitor, Instance, and Device (default={}). -BrowserGenTextHeight textHeight Specify the text height for generated text labels. Valid values: a positive floating number (default=1.0). -BrowserGenTextFont textFont Specify the font type for generated text labels. Valid values: Modern, Script, and Roman (default=Roman). -BrowserGenTextCase textCase Specify the case sensitivity setting for generated text labels. Valid values: Original, Upper, and Lower (default=Original). Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -BrowserGenTextLayer layerName purposeName Specify the layer for generated text labels. If the purpose is not specified, the default is drawing. If the specified layer is not found in the library, the layer setting in the SDL Preferences form keeps the original value and a warning message is shown in the message pane of the Home page. -BrowserGenTextJustify textJustify Specify the justification for generated text labels. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=CenterCenter). -BrowserGenTextOrient textMirror Specify the mirror and rotation status for generated text labels. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -BrowserIgnoreBulk 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Ignore Bulk Checking option. 0 : Disable the Ignore Bulk Checking option. -BrowserMosLenTolerance num Specify the tolerance percentage of the length of MOS devices. Valid value: a positive floating number. -BrowserMosWidthTolerance num Specify the tolerance percentage of the width of MOS devices. Valid value: a positive floating number. -BrowserResLenTolerance num Specify the tolerance percentage of the length of resistor devices. Valid value: a positive floating number. -BrowserResValueTolerance num Specify the tolerance percentage of the resistor value. Valid value: a positive floating number. -BrowserResWidthTolerance num Specify the tolerance percentage of the width of resistor devices. Valid value: a positive floating number. Laker³ Tcl Reference Manual K-2015.06 521 Chapter 5: Home Page Options Commands 522 Argument Description -BrowserShowConstraint 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the information of Device Matching and Chain constraints on the Design Browser pane. 0 : Hide the information of Device Matching and Chain constraints on the Design Browser pane. -BrowserShowGateType 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the form gate type. 0 : Hide the form gate type. -BrowserShowGroup 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the user-defined group information on the Design Browser pane. 0 : Hide the user-defined group information on the Design Browser pane. -BrowserShowStack 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the stacking MOS group information on the Design Browser pane. 0 : Hide the stacking MOS information on the Design Browser pane. -BrowserShowStackDetail 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Show the detailed stacking MOS group information on the Design Browser pane. 0 : Hide the detailed stacking MOS information on the Design Browser pane. -BrowserSyncStatusWithADP 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Synchronize Realization Status option. 0 : Disable the Synchronize Realization Status option. -BrowserSyncScopewithADP 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Synchronize Scope Changes option. 0 : Disable the Synchronize Scope Changes option. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -BrowserTipLayPara 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the layout device parameter information in a tip window. 0 : Hide the layout device parameter information. -BrowserTipSchPara 0|1 Valid values: Boolean values, 0 and 1. 1 : Show the schematic parameter information in a tip window. 0 : Hide the schematic parameter information. -BrowserUnsetGenTextLayer If specified, the layer setting in the SDL Preferences form is cleared. -capDim 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of dimensions for capacitors. 0 : Disable the comparison. -capExtraDevArg 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra arguments in the layout for capacitors. 0 : Disable the comparison. -capLayoutPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the layout for capacitors. 0 : Disable the comparison. -capPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of port connections for capacitors. 0 : Disable the comparison. -capSchPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the schematic for capacitors. 0 : Disable the comparison. Laker³ Tcl Reference Manual K-2015.06 523 Chapter 5: Home Page Options Commands 524 Argument Description -checkSchTimeStampWhenOpen 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Check the schematic time stamp when opening a logic cell view. 0 : Do not check the schematic time stamp when opening a logic cell view. -displayStickAtLeastObj value Specify the minimum number of the selected MOS device in the Design Browser pane or the Schematic window. Valid value: an integer. -dummyNMOSGateNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Gate Net Name for Dummy NMOS option. 0 : Disable the Gate Net Name for Dummy NMOS option. -dummyNMOSGateNetName netname Assign a single net name for all dummy NMOS devices. -dummyNMOSSDNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the S/D Net Name for Dummy NMOS option. 0 : Disable the S/D Net Name for Dummy NMOS option. -dummyNMOSSDNetName netname Assign a single source/drain net name for all dummy NMOS devices. -dummyPMOSGateNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Gate Net Name for Dummy PMOS option. 0 : Disable the Gate Net Name for Dummy PMOS option. -dummyPMOSGateNetName netname Assign a single net name for all dummy PMOS devices. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -dummyPMOSSDNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the S/D Net Name for Dummy PMOS option. 0 : Disable the S/D Net Name for Dummy PMOS option. -dummyPMOSSDNetName netname Assign a single source/drain net name for all dummy NMOS devices. -honorMOSMfactor 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Honor MOS M-factor option. 0 : Disable the Honor MOS M-factor option. -instDim 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of dimensions for instances. 0 : Disable the comparison. -instExtraDevArg 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra arguments in the layout for instances. 0 : Disable the comparison. -instLayoutPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the layout for instances. 0 : Disable the comparison. -instPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of port connections for instances. 0 : Disable the comparison. -instSchPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the schematic for instances. 0 : Disable the comparison. -matchPostProc procName Specify the name of the post-process procedure used in the Matching Device Creator window. Laker³ Tcl Reference Manual K-2015.06 525 Chapter 5: Home Page Options Commands 526 Argument Description -matchPostProcScript file Specify the script file with the post-process procedure used in the Matching Device Creator window. -mosDim 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of dimensions for MOS devices. 0 : Disable the comparison. -mosExtraDevArg 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra arguments in the layout for MOS devices. 0 : Disable the comparison. -mosLayoutPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the layout for MOS devices. 0 : Disable the comparison. -mosPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of port connections for MOS devices. 0 : Disable the comparison. -mosSchPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the schematic for MOS devices. 0 : Disable the comparison. -multiInstDelimiter delimiter Specify the delimiter for multiple instances. If the string is empty, the default delimiter is "::". -resDim 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of dimensions for resistors. 0 : Disable the comparison. -resExtraDevArg 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra arguments in the layout for resistors. 0 : Disable the comparison. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands Argument Description -resLayoutPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the layout for resistors. 0 : Disable the comparison. -resPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of port connections for resistors. 0 : Disable the comparison. -resSchPort 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the comparison of extra ports in the schematic for resistors. 0 : Disable the comparison. -schTopology 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Schematic Topology Cloned Placement option. 0 : Disable the Schematic Topology Cloned Placement option. -selectObjectWhenCrossProbe 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Cross Select option. 0 : Disable the Cross Select option. -spacingProc procName Specify the spacing procedure name when -useSpacingProc 1 is specified. -stickPostProc procName Specify the name of the post-process procedure used in the Stick Diagram Compiler window. -stickPostProcScript file Specify the script file with the post-process procedure used in the Stick Diagram Compiler window. -useMatchPostProc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Procedure for Matching Device Creator option. 0 : Disable the Procedure for Matching Device Creator option. Laker³ Tcl Reference Manual K-2015.06 527 Chapter 5: Home Page Options Commands Argument Description -useSpacingProc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Device Spacing Procedure option. 0 : Disable the Device Spacing Procedure option. -useStickPostProc 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Procedure for Stick Diagram Compiler option. 0 : Disable the Procedure for Stick Diagram Compiler option. Examples # Example 1 # If it is a transistor type, show the length and width. # If it is a resistor type, show the resistor value. # If it is a capacitor type, show the capacitor value. # If it has an M-factor, show its M-factor. # Disable the group information, and show the form gate # as PnP level. lakerSchBroPreference -BrowserFormat \ {[%L %L/%W]\n[%C %C]\n[%R %R]\n[%F m=%F]} -BrowserShowGroup 0 \ -BrowserShowGateType 1 528 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Options Commands # Example 2 # Set tolerance of mos's length and width to be 2%, tolerance of # Resistor's value to be 2%, and tolerance of Capacitor's # value to be 2%, it allows mismatch between netlist and # layout inside the tolerence lakerSchBroPreference -BrowserDimTolerance 1 \ -BrowserMosLenTolerance 2.0 -BrowserMosWidthTolerance 2.0 \ -BrowserResValueTolerance 2.0 -BrowserCapValueTolerance 2.0 # Example 3 lakerSchBroPreference -BrowserDimTolerance 1 \ -BrowserMosLenTolerance 0.85 -BrowserMosWidthTolerance 0.75 \ -BrowserResValueTolerance 2.5 -BrowserCapValueTolerance 1.8 # Example 4 lakerSchBroPreference -BrowserShowGateType 0 \ -mosLayoutPort 1 -resLayoutPort 1 -capLayoutPort 1 \ -instLayoutPort 0 # Example 5 # Turn on the Generate Text option for MCell Transistors, # MCell Capacitors, and Devices lakerSchBroPreference -BrowserGenTextFor \ {Transistor Capacitor Device} # Example 6 # Turn off the Enable Auto Text Generation option lakerSchBroPreference -BrowserAutoGenText 0 # Example 7 # Specify the text layer with layer name and purpose name lakerSchBroPreference -BrowserGenTextLayer MT1 drawing # Example 8 # Clear the layer setting lakerSchBroPreference -BrowserUnsetGenTextLayer # Example 9 # Use post-process procedure "alignPoly" which is defined # in "alignPoly.tcl" for Stick Diagram Compiler lakerSchBroPreference -useStickPostProc 1 \ -stickPostProc alignPoly -stickPostProcScript ../alignPoly.tcl See Also Home Page: Options > SDL Preferences Laker³ Tcl Reference Manual K-2015.06 529 Chapter 5: Home Page Symbol Callback Commands lakerSetUserStrokeFile The lakerSetUserStrokeFile command updates the UserStrokeFile settings in the [LeoPreference] section of the laker.rc resource file, and then replaces the mouse wheel binding with new definitions immediately. Syntax lakerSetUserStrokeFile fileName Returns None Arguments Argument Description fileName Specify the user-defined stroke file with its full path and enclose the file path with double quotes. Examples lakerSetUserStrokeFile "/usr/myMouseWheel.stk" Symbol Callback Commands This section describes the Tcl commands for symbol callbacks. These commands include: ■ paramGetAttr ■ paramSetAttr paramGetAttr The paramGetAttr command returns the field value of the parameter if the value of the parameter can be obtained. This command only works in the script file of symbol parameter callbacks. Refer to Appendix A, Symbol Callback Procedures for more details. Syntax paramGetAttr -name parameterName -attr fieldName [-eval] [lib] [-cell] 530 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Symbol Callback Commands Returns The field value of the parameter if successful; otherwise, returns nothing. Arguments Argument Description -attr fieldName Specify the field name of the parameter. Valid values: promptname, type, value, visible, and editable. -cell Return the cell name of the master cell for the current instance. -eval Return the final real value for the expression value of the parameter. -lib Return the library name of the master cell for the current instance. -name parameterName Specify the parameter name (not "Prompt Name"). Examples # Example 1 paramGetAttr -name w -attr value -eval # Example 2 paramGetAttr -name 1 -attr visible # Example 3 paramGetAttr -name area -attr value See Also Home Page: Library > Parameter > Callback paramSetAttr The paramSetAttr command sets a new value into the parameter. This command only works in the script file of symbol parameter callbacks. Refer to Appendix A, Symbol Callback Procedures for more details. Syntax paramSetAttr -name parameterName -attr fieldName -value value Laker³ Tcl Reference Manual K-2015.06 531 Chapter 5: Home Page Netlist Procedure Commands Returns None Arguments Argument Description -attr fieldName Specify the field name of the parameter. Valid values: promptname, type, value, visible, and editable. -name parameterName Specify the parameter name (not "Prompt Name"). -value value Specify the new value. Examples # Example 1 paramSetAttr -name l -attr value –value 0.1u # Example 2 paramSetAttr -name w -attr visible –value 1 See Also Home Page: Library > Parameter > Callback Netlist Procedure Commands This section describes the Tcl commands for netlist procedures. These commands include: ■ nlEval ■ nlGetAttr ■ nlPuts nlEval The nlEval command returns a string if the evaluated value from the netlist table can be obtained. The netlist table is specified in the Netlist tab of the Parameter Dialog form, invoked by the Library > Parameter command in the Home Page. 532 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Netlist Procedure Commands Syntax nlEval [-modelName modelName | -pin allTerm | -instParam instParam [-keyword 0|1] | -subcktParam subcktParam [-keyword 0|1]] [-componentName componentName] [-instModelName model] Returns A string if successful; otherwise, returns nothing. Arguments Argument Description -componentName componentName Get the evaluated component name in the Component Name text field of the netlist table. The componentName is with the following format: [nlGetAttr -attr componentName]. -instModelName model Get the evaluated instance model name if the netlist is not exported from the netlist procedure. -instParam instParam [-keyword 0|1] Get the evaluated instance parameter in the Instance Parameters text field of the netlist table. -modelName modelName Get the evaluated model name in the Model Name text field of the netlist table. -pin allTerm Get the evaluated pin order (for example: connected names) in the Pin Order text field of the netlist table. -subcktParam subcktParam [-keyword 0|1] Get the evaluated subckt parameter in the Subckt Parameters text field of the netlist table. Laker³ Tcl Reference Manual K-2015.06 533 Chapter 5: Home Page Netlist Procedure Commands Examples # Example 1 proc outInstProc {} { set nlPinOrder [nlGetAttr -attr nlPinOrder] set nlNamePreFix [nlGetAttr -attr nlNamePreFix] set nlModelName [nlGetAttr -attr nlModelName] set nlInstParam [nlGetAttr -attr nlInstParam] set nlInstName [nlGetAttr -attr nlInstName] set outInstName "" append outInstName $nlNamePreFix append outInstName $nlInstName nlPuts "$outInstName" set connectedNet [ nlEval -pin $nlPinOrder ] nlPuts "$connectedNet" set modelName [ nlEval -modelName $nlModelName ] set nlength [llength $modelName] if {$nlength > 0} { nlPuts "$modelName " } set InstParamEval [ nlEval -instParam $nlInstParam -keyword 1 534 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Netlist Procedure Commands ] nlPuts "$InstParamEval" } proc myCProc {} { outInstProc } proc myMProc {} { outInstProc } proc myRProc {} { outInstProc } # Example 2 # Return connected net # If they are floating # n corresponds to the nlEval -pin "A B C D" # Return the connected nlEval -pin "A[0:3]" names "1 2 3 4" of ports A, B, C and D. nets, return dummy_node_n where index of dummy nets. net names "A[0] A[1] A[2] A[3]" # Example 3 # Return the cell name nlEval -modelName "@[CellName]" # If the parameter XXX exists, return the evaluated value of # parameter XXX. If the parameter XXX does not exist, return # a string XXX. nlEval -modelName "XXX" # Example 4 # Return the cell name of the instance master nlEval -instParam "@[CellName]" # Return the value 2 if X equals to 2 nlEval -instParam X -keyword 0 # Return the value X=2 if X equals to 2 nlEval -instParam X -keyword 1 See Also nlGetAttr nlPuts Laker³ Tcl Reference Manual K-2015.06 535 Chapter 5: Home Page Netlist Procedure Commands nlGetAttr The nlGetAttr command returns a string if the simulation information in the netlist table or the export options of the File > Export > Spice, Verilog, and EDIF commands can be obtained. The netlist table is specified in the Netlist tab of the Parameter Dialog form, invoked by the Library > Parameter command in the Home Page. Syntax nlGetAttr -attr attrName [-attType attrType] Returns A string if successful; otherwise, returns nothing. The following table lists the available attribute names. 536 Attribute Name Description componentName Get the value of the Component field of the netlist table. instParameters Get the value of the Instance Parameters field of the netlist table. namePrefix Get the value of the Name Prefix field of the netlist table. netlistProcedure Get the value of the Netlist Procedure field of the netlist table. netlistType Get the netlist type. Supported netlist types: Hspice, CDL, Eldo, SmartSpice, Spectre, and UserDefine. Default procedure name for these netlist types: adpHspiceProc, adpCDLProc, adpEldoProc, adpSmartSpiceProc, and adpSpectreProc. nlInstId Get the instanceId when exporting an instance’s statement. nlInstName Get the instance name when exporting an instance’s statement. nlSchematicCV Get the schematic cellviewId when exporting a subckt's statement. nlSymbolCV Get the symbol cellviewId when exporting a subckt’s statement. If the symbol cellviewId does not exist, an empty string is returned. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Netlist Procedure Commands Attribute Name Description otherParameters Get the value of the Other Parameters field of the netlist table. propMapping Get the value of the Property Mapping field of the netlist table. pseudoDevice Get the option status of the Generate Pseudo Device option. termOrder Get the value of the Term Order field of the netlist table. Arguments Argument Description -attr attrName Specify the attribute name. Refer to the Attribute Name Table for more details on the available attribute names. -attType attrType Specify the attribute type. Valid values: user, and original. ■ user : Get the user-defined value of the simulation information. ■ original : Get the original value of the simulation information. If the attribute type is not specified, return the user-defined value if it exists, otherwise, return the original value of the simulation information. Examples # Example 1 proc outInstProc {} { set nlPinOrder [ nlGetAttr -attr nlPinOrder ] set nlNamePreFix [ nlGetAttr -attr nlNamePreFix ] set nlModelName [ nlGetAttr -attr nlModelName ] set nlInstParam [ nlGetAttr -attr nlInstParam Laker³ Tcl Reference Manual K-2015.06 537 Chapter 5: Home Page Netlist Procedure Commands ] set nlInstName [ nlGetAttr -attr nlInstName ] set outInstName "" append outInstName $nlNamePreFix append outInstName $nlInstName nlPuts "$outInstName" set connectedNet [nlEval -pin $nlPinOrder] nlPuts "$connectedNet" set modelName [nlEval -modelName $nlModelName] set nlength [llength $modelName] if {$nlength > 0} { nlPuts "$modelName " } set InstParamEval [nlEval -instParam $nlInstParam -keyword 1] nlPuts "$InstParamEval" } proc myCProc {} { outInstProc } proc myMProc {} { outInstProc } proc myRProc {} { outInstProc } See Also nlEval nlPuts Home Page: Library > Parameter > Netlist Procedure nlPuts The nlPuts command is used in the Tcl script file of netlist procedures, it returns a string if the desired text string of the Spice command can be exported. Syntax nlPuts "string" 538 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Netlist Procedure Commands Returns A string if successful; otherwise, returns nothing. Arguments Argument Description "string" Specify the desired text string. Examples # Example 1 proc outInstProc {} { set nlPinOrder [nlGetAttr -attr nlPinOrder] set nlNamePreFix [nlGetAttr -attr nlNamePreFix] set nlModelName [nlGetAttr -attr nlModelName] set nlInstParam [nlGetAttr -attr nlInstParam] set nlInstName [nlGetAttr -attr nlInstName] set outInstName "" append outInstName $nlNamePreFix append outInstName $nlInstName nlPuts "$outInstName" set connectedNet [nlEval -pin $nlPinOrder] nlPuts "$connectedNet" set modelName [nlEval -modelName $nlModelName] set nlength [llength $modelName] if {$nlength > 0} { nlPuts "$modelName " } set InstParamEval [nlEval -instParam $nlInstParam -keyword 1] nlPuts "$InstParamEval" } proc myCProc {} { outInstProc } proc myMProc {} { outInstProc } proc myRProc {} { outInstProc } Laker³ Tcl Reference Manual K-2015.06 539 Chapter 5: Home Page Miscellaneous See Also nlGetAttr nlEval Miscellaneous This section describes the other Tcl commands applied to the Home Page. These commands include: 540 ■ adpAddHighLightInst ■ adpAddHighLightNet ■ adpAddPortPad ■ adpAutoCheck ■ adpChgBusChar ■ adpDelGNet ■ adpDelRNet ■ adpDiscardDesign ■ adpDsgSaveSchCV ■ adpFixBundleNet ■ adpFixNetFig ■ adpFixPinDot ■ adpGetActiveWnd ■ adpGetNetListType ■ adpGetTextEditor ■ adpGetWindowVar ■ adpGetWndByCV ■ adpGetWndCellViewId ■ adpRegWndCB ■ adpRmHighLight ■ adpRmParam Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous ■ adpSetInstParamCB ■ adpSetLibGrid ■ adpSetObjType ■ adpTriggerPropertyCB ■ lakerEcho ■ lakerExportSIF ■ lakerGetLibCell ■ lakerExtractECOCommand ■ lakerExtractSwapPort ■ lakerGetDesign ■ lakerImportSIF ■ lakerIpcHdl ■ lakerLoadNanoScopeFile ■ lakerRegWndCB ■ lakerSetDeviceObjMode ■ lakerVersion ■ sysGetRcValue ■ sysSetRcValue ■ wtShowLicStatus adpAddHighLightInst The adpAddHighLightInst command returns 1 if any instances have been highlighted. Syntax adpAddHighLightInst -topWnd winId -name instName1 instName2 [-color colorType] Returns 1 if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 541 Chapter 5: Home Page Miscellaneous Arguments Argument Description -color colorType Specify the color code. -name instName1 instName2... Specify the instance name(s). -topWnd winId Specify the top window identifier. Examples adpAddHighLightInst -topWnd _adp2 -name aa -color ID_Red4 adpAddHighLightNet The adpAddHighLightNet command returns 1 if any nets have been highlighted. Syntax adpAddHighLightNet -topWnd winId -name netName1 netName2 [color colorType] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -color colorType Specify the color code. -name netName1 netName2... Specify the net name(s). -topWnd winId Specify the top window identifier. Examples adpAddHighLightNet -topWnd _adp2 -name aa -color ID_Red4 542 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous adpAddPortPad The adpAddPortPad command returns 1 if there is any port pads have been created. Syntax adpAddPortPad [-lib libname [-cell cellname]] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellname Specify the cell name. -lib libname Specify the library name. Examples adpAddPortPad -lib aa adpAutoCheck The adpAutoCheck command invokes an offline auto fix to the schematic or symbol views of the current cell in the database when the schematic ERC, symbol check pin, Save Design or Save As features are executed. Syntax adpAutoCheck [-lib libName [-cell cellName [-view viewName]]] [-fix] [-log [-file FileName]] Returns None Arguments Argument Description -cell cellName Specify the cell name. -file FileName Specify the file to save the checking/fixing results. This argument is valid only if -log is specified. Laker³ Tcl Reference Manual K-2015.06 543 Chapter 5: Home Page Miscellaneous Argument Description -fix Fix the DB errors. -lib libName Specify the library name. -log Dump the auto checking/fixing results to a log file. -view viewName Specify the view name. Valid values: schematic, and symbol. Examples # Example 1 # Check DB errors in a symbol cell view adpAutoCheck -lib local -cell test -view symbol # Example 2 # Check DB errors in a cell adpAutoCheck -lib local -cell test # Example 3 # Check DB errors in a library adpAutoCheck -lib local # Example 4 # Check DB errors in all libraries with mapping path adpAutoCheck # Example 5 # Fix DB errors in a symbol cell view adpAutoCheck -lib local -cell test -view symbol -fix # Example 6 # Fix DB errors in a cell adpAutoCheck -lib local -cell test -fix # Example 7 # Fix DB errors in a library adpAutoCheck -lib local -fix # Example 8 # Fix DB errors in all libraries with mapping path adpAutoCheck -fix # Example 9 # Fix DB errors in a symbol cell view and log the results adpAutoCheck -lib local -cell 4_bit_adder2 -view symbol -fix -log 544 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous adpChgBusChar The adpChgBusChar command changes different bus parenthesis to create bus type objects. It checks the following objects: ■ instance names (in the schematic) ■ bundle net names (in the schematic) ■ base names of buses (in the schematic) ■ net name labels (in the schematic) ■ port names (in the schematic) ■ pin names (in the symbol) ■ pin name labels (in the symbol) ■ the Pin Order field for all kinds of netlist type (in the symbol) ■ the adpBusParenthesis property (in the library), which supports characters [ and ( only. Since this Tcl may update the pin name of the symbol, ERC must be executed to fix the connection in the schematic. Alternatively, the adpFixNetFig command can be used to fix the related instance connection in the schematic. Syntax adpChgBusChar -lib libName -orig OrigChar -rep RepChar [dump] Returns None Arguments Argument Description -dump Dump a report of the modified results to a file. The file name can be _adpChgBusCharCmd%d where %d corresponds to an integer starting from 0. -lib libName Specify library name. -orig OrigChar The old bus parenthesis can be specified by < or [. Specifying {<} changes <> to a new bus parenthesis. Specifying {[} changes [] to a new bus parenthesis. Laker³ Tcl Reference Manual K-2015.06 545 Chapter 5: Home Page Miscellaneous Argument Description -rep RepChar The new bus parenthesis can be specified by < or [ only. Examples adpChgBusChar -lib local -orig {[} -rep < -dump # the log message (dumped to the file) can be: # Original = TR[1:0] Replace = TR<1:0> (Symbol Pin Label) # Original = TOUT[3:0] Replace = TOUT<3:0> (Symbol Pin Name) # Original = N1<1> Replace = N1[1] (Net Name) # Original = A<0><0:1> Replace = A[0][0:1] (Instance Name) # Original = <> Replace = [] (Bus Parenthesis) adpDelGNet The adpDelGNet command returns 1 if the global net is deleted. Syntax adpDelGNet -lib libName -name net1 net2 net3... Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the library name. -name netName Specify the name of the global net that is deleted. Examples adpDelGNet -lib aa -name VDD VSS VDD! VSS! adpDelRNet The adpDelRNet command returns 1 if the net or port without figures is deleted. Syntax adpDelRNet -lib libName -cell cellName [-name netName] 546 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. -lib libName Specify the library name. -name netName Specify the name of the non-figured net that is deleted. Otherwise, delete all the nets with no figures. Examples adpDelRNet -lib local -cell dm_chan adpDelRNet -lib local -cell dm_chan -name EQ1_18 adpDiscardDesign The adpDiscardDesign command discards the active design and restores the original design. Syntax adpDiscardDesign -topWnd winId -lib libName -cell cellName -view viewName Returns None Arguments Argument Description -cell cellName Specify the cell to be discarded. -lib libName Specify the library database. -topWnd winId Specify the active window identifier. -view viewName Specify the view name of the cell to be discarded. Valid values: schematic, symbol, and any user-defined view name (default=schematic). Laker³ Tcl Reference Manual K-2015.06 547 Chapter 5: Home Page Miscellaneous Examples # Discard saving the schematic cell aaa with sch001 view adpDiscardDesign -topWnd _adp5 -lib test -cell aaa -view sch001 See Also adpLibMgrOpenDesign adpDsgSaveSchCV adpDsgSaveSchCV The adpDsgSaveSchCV command saves the schematic cell design. Syntax adpDsgSaveSchCV -topWnd winId -lib libName -cell cellName view viewName Returns None Arguments Argument Description -cell cellName Specify the cell to be saved. -lib libName Specify the library database. -topWnd winId Specify the active window identifier. -view viewName Specify the view name of the cell to be saved. Valid values: schematic, symbol, and any user-defined view name (default=schematic). Examples # Save the schematic cell aaa with sch001 view adpDsgSaveSchCV -topWnd _adp5 -lib test -cell aaa -view sch001 See Also adpLibMgrOpenDesign adpDiscardDesign 548 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous adpFixBundleNet The adpFixBundleNet command returns 1 if the Laker ADP database with bundle net issue has been fixed. Syntax adpFixBundleNet Returns 1 if successful; otherwise, returns 0. Arguments None Examples adpFixBundleNet adpFixNetFig The adpFixNetFig command returns 1 if the old wire model has been converted to a new wire model. Syntax adpFixNetFig -lib libName -cell cellName Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. -lib libName Specify the library name. Examples adpFixNetFig -lib local -cell dm_chan Laker³ Tcl Reference Manual K-2015.06 549 Chapter 5: Home Page Miscellaneous adpFixPinDot The adpFixPinDot command returns 1 if the label size is kept fixed while changing the grid resolution. Syntax adpFixPinDot -lib libName [-cell cellName] -dotSize dotSize Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell name. If it is not specified, all cells are fixed. -dotSize dotSize Specify the label size. Valid value: an integer (default=8). When the grid resolution is 16, the dot size is set as 12. When the grid resolution is 10, the dot size is set as 8. When the grid resolution is 1, the dot size is set as 0. -lib libName Specify the library name. Examples adpFixPinDot -lib aa -dotSize 12 adpGetActiveWnd The adpGetActiveWnd command returns the current schematic/symbol window identifier (or window name). Syntax adpGetActiveWnd [-id] | [-name] Returns The current schematic/symbol window identifier (or window name) if successful; otherwise, returns nothing. 550 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Arguments Argument Description -id Get the current schematic/symbol window identifier. -name Get the current schematic/symbol window name. Examples adpGetActiveWnd -id adpGetNetListType The adpGetNetListType command returns the netlist type Hspice, CDL, Eldo, SmartSpice or Spectre. Syntax adpGetNetListType Returns The netlist type Hspice, CDL, Eldo, SmartSpice or Spectre if successful; otherwise, returns nothing. Arguments None Examples adpGetSelectHierName -topWnd _adp2 -net -delimiter . \ -netlist [adpGetNetListType] adpGetTextEditor The adpGetTextEditor command returns the default text editor. Syntax adpGetTextEditor Returns The default text editor if successful; otherwise, returns nothing. Arguments None Laker³ Tcl Reference Manual K-2015.06 551 Chapter 5: Home Page Miscellaneous Examples adpGetTextEditor adpGetWindowVar The adpGetWindowVar command returns a window identifier if the window identifier is given. Syntax adpGetWindowVar winId Returns Window identifier if successful; otherwise, returns nothing. Arguments Argument Description winId Specify the window identifier. Examples adpGetWindowVar la22810 adpGetWndByCV The adpGetWndByCV command returns a window identifier if the window identifier can be obtained by the cell view identifier. Syntax adpGetWndByCV -cv cellViewId | [-lib libName [-cell cellName] -view viewName] Returns A window identifier if successful; otherwise, returns nothing. Arguments 552 Argument Description -cell cellName Specify the cell name of the opened cell. -cv cellViewId Specify the cell view identifier. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Argument Description -lib libName Specify the library. -view viewName Specify the view name of the opened cell. Valid values: schematic, and symbol. Examples # Example 1 adpGetWndByCV -cv la22810 # Example 2 adpGetWndByCV -lib testLib -cell testCell -view schematic adpGetWndCellViewId The adpGetWndCellViewId command returns a cell view identifier if the cell view identifier of the current Design window can be obtained. Syntax adpGetWndCellViewId -topWnd winId Returns The cell view identifier if successful; otherwise, returns nothing. Arguments Argument Description -topWnd winId Specify the top window identifier. Examples adpGetWndCellViewId -topWnd _adp2 adpRegWndCB The adpRegWndCB command returns 1 if an event can be registered or unregistered for the specified design window. This command is used for the ADP/Composer Integration. When evaluating the specified callback procedures, several global Tcl variables are provided to keep the information for accessing. They are explained with the following Examples: Laker³ Tcl Reference Manual K-2015.06 553 Chapter 5: Home Page Miscellaneous _adpWndCBReasonName SelectSchematic (SelectSchematic, PreSelect, MouseMoving, MouseLeftClick, MouseRightClick, WndEnter,or WndClose) _adpWndCBLibName xxxLib (library logic name) _adpWndCBCellName xxxCell _adpWndCBViewName Schematic _adpWndCBWndName _adp3 _adpWndCBDBCoord (0.567,0.409) _adpWndCBScrCoord (562 284) _adpWndCBObjId 7fb5478 (Only for the preSelect event and return 0 when no object is pre-selected.) Syntax adpRegWndCB -type typeName -callback procedureName [-topWnd _adp#] [-remove] Returns 1 if successful; otherwise, returns 0. Arguments 554 Argument Description -callback procedureName Specify the callback procedure name. -remove To unregister the event with the specified callback procedure name. -topWnd _adp# Specify the name of the design window to register/unregister. The default is the active window, but if the active window is not the design window, the command fails. -type typeName Specify the register/unregister type. Valid values: SelectSchematic, WndEnter, WndClose, PreSelect, MouseMoving, MouseLeftClick, and MouseRightClick. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Examples # Example 1 adpRegWndCB -type SelectSchematic -callback SchematicSelectChange -topWnd _adp2 # Example 2 adpRegWndCB -type PreSelect -callback SchematicPreSelect -topWnd _adp2 -remove adpRmHighLight The adpRmHighLight command returns 1 if the highlighted object(s) has been removed. Syntax adpRmHighLight -topWnd winId Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -topWnd winId Specify the top window identifier. Examples adpRmHighLight -topWnd _adp2 adpRmParam The adpRmParam command removes the duplicate parameter data from the schematic view. Syntax adpRmParam -lib libName Returns None Laker³ Tcl Reference Manual K-2015.06 555 Chapter 5: Home Page Miscellaneous Arguments Argument Description -lib libName Specify the library name. Examples adpRmParam -lib aa adpSetInstParamCB The adpSetInstParamCB command sets the value to the specified parameter and triggers the callback of this paramter. Syntax adpSetInstParamCB -cv cellviewId -inst instName -param parameterName -value value Returns None Arguments Argument Description -cv cellViewId Specify the cell view identifier. -inst instName Specify the instance name. -param parameterName Specify the parameter name. -value value Specify the parameter value. Examples adpSetInstParamCB -cv oa:0x2a978cef1a -inst X1 -param ln -value 1 adpSetLibGrid The adpSetLibGrid command returns 1 if the resolution of the library has been changed. Syntax adpSetLibGrid -lib libName -resolution resolutionValue 556 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -lib libName Specify the library name. -resolution Specify the resolution of the library grid. resolutionValue Valid value: an integer. Examples adpSetLibGrid -lib aa -resolution 4 adpSetObjType The adpSetObjType command filters unnecessary objects when selecting objects in the schematics. Syntax adpSetObjType -obj objtype -sel selmode Returns None Arguments Argument Description -obj objtype Specify the object type to be set. Valid values: all, instance, wire, wirelabel, port, pin, frame, pseudorc, text, shape, and annotationtext. -sel 0|1 Valid values: Boolean values, 0 and 1. 1 : The specified object type is selectable. 0 : The specified object type is unselectable. Examples adpSetObjType -obj all -sel 1 Laker³ Tcl Reference Manual K-2015.06 557 Chapter 5: Home Page Miscellaneous adpTriggerPropertyCB The adpTriggerPropertyCB command updates parameter values when changing and updating the script file. It uses the current parameter value as the input and trigger the procedure function of the parameter (if the parameter has a procedure function), and update all modified parameter values if needed. It is a cell-based command. Syntax adpTriggerPropertyCB -lib libname [-cell cellname] [callback callbackFuncName] [-masterLib masterlibName masterCell masterCellName] -param Name Returns None Arguments Argument Description -callback callbackFuncName Specify the procedure name (callback function name) in the script file. -cell cellname Specify the schematic cell view. -lib libname Specify the library name. -masterCell masterCellName Specify the master symbol view name of an instance. -masterLib masterlibName Specify the master library name of an instance. -param Name Specify the parameter name of an instance. Examples # Example 1 # Update param w of all instances of all schematic views in # library a adpTriggerPropertyCB -lib a -param w # Example 2 # Update param w of all instances of schematic view b in # library a adpTriggerPropertyCB -lib a -cell b -param w 558 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous # Example 3 # Update param w of all instaces of all schematic views in # library a. The master library of these instances is b and # the master cell is c. adpTriggerPropertyCB -lib a -masterLib b -masterCell c -param w lakerEcho The lakerEcho command specifies whether to echo messages in the Home Page. Syntax lakerEcho 0|1 Returns None Arguments Argument Description 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable echo messages. 0 : Disable echo messages. Examples # Disable the echo in the Home page lakerEcho 0 lakerExportSIF The lakerExportSIF command exports the Laker database to a SIF format database. Syntax lakerExportSIF -file fileName -lib libName -design designName [-logFile logErrName] Returns 1 if successful; otherwise, returns 0. Laker³ Tcl Reference Manual K-2015.06 559 Chapter 5: Home Page Miscellaneous Arguments Argument Description -design designName Specify the design name. -file fileName Specify the input SIF file. -lib libName Specify the library name. -logFile logErrName Specify the file name for the log and error files. Examples lakerExportSIF -file test.sif -lib test -design test lakerGetLibCell The lakerGetLibCell command shows a dialog for user to select a library and a cell. Syntax lakerGetLibCell [-initLib initLibName [-initCell initCellName]] [-canNew 0|1] Returns The selected library and a list of cell names if successful; otherwise, returns nothing. Arguments 560 Argument Description -canNew 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Allow to open a new cell. 0: Do not allow to open a new cell. -initCell initCellName The cell name is selected initially if it exists in the -initLib argument is specified. If this option is not specified, nothing is selected. If the -initLib argument is not specified, this option is ignored. -initLib initLibName The logical library name is selected initially if it exists. If this argument is not specified, nothing is selected. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Examples # Popup this dialog with initially-selected library, named LibA, # and cell named CellA. And user can open a new cell. lakerGetLibCell -initLib LibA -initCell CellA -canNew 1 lakerExtractECOCommand The lakerExtractECOCommand command extracts ECO commands from the referenced library. Syntax lakerExtractECOCommand -refLib refLibName -targetLib targetLibName [-topCell topCellName] [-ecoFile ecoFileName] [[-extractConstraint 0|1] [-priority priority] [-suffix constraintSuffix]] [-extractReadOnly 0|1] Returns None Arguments Argument Description -ecoFile ecoFileName Specify the extracted command file. If not specified, the ecoFileName is the name of the referenced library with a suffix _ECO.cmd. -extractConstraint 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Extract constraint information from the referenced library. 0 : Do not extract constraint information from the referenced library. -extractReadOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Extract ECO commands even if the cell view is readOnly. 0 : Do not extract ECO commands for readOnly cell views. -priority priority Valid values: schematic, and layout (default=schematic). schematic: Constraints in the schematic view have higher priority. layout: Constraints in the logic view have higher priority. Laker³ Tcl Reference Manual K-2015.06 561 Chapter 5: Home Page Miscellaneous Argument Description -refLib refLibName Specify the referenced library to extract the object tree information. -suffix constraintSuffix Specify the suffix added when the constraint names conflict. -targetLib targetLibName Specify the new target library database. Recovering hierarchy manipulation on this library. -topCell topCellName Specify the top cell name of the design to be extracted. Its library should be the referenced library. If not specified, the whole library is analyzed. Examples # Example 1 lakerExtractECOCommand -refLib chkLib -target myLib \ -extractConstranit 0 -priority layout -extractReadOnly 1 # Example 2 lakerExtractECOCommand -refLib chkLib -target myLib \ -topCell topCkt -ecoFile result_ECO.cmd lakerExtractSwapPort The lakerExtractSwapPort command extracts the swap port information and appends it into the model mapping file. Syntax lakerExtractSwapPort -lib libName [-cell cellName] Returns None Arguments 562 Argument Description -cell cellName Specify the cell to be extracted. If the option is null, all cells in the library are extracted. -lib libName Specify the library database. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Examples lakerExtractSwapPort -lib chkLib lakerExtractSwapPort -lib chkLib -cell sum lakerGetDesign The lakerGetDesign command shows a dialog for user to select miscellaneous types of designs. Syntax lakerGetDesign -type designType [-initLib initLibName [initCell initCellName [-initView initViewName] ] ] | [initView initViewName] [-canNew 0|1] Returns The value returned depends on the design type you specified with -type. See table below. Design Type Value Returned -type library A selected library name if successful; otherwise, returns nothing. -type cellView A list of the selected library, cell and view names if successful; otherwise, returns nothing. -type cell A list of the selected library and selected cell names if successful; otherwise, returns nothing. -type view A list of the selected view names (which might be empty) if successful; otherwise, returns 0. Arguments Argument Description -canNew 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Allow to specify a new library, a new cell view, or one or more new cells. 0: Do not allow to specify a new library, a new cell view, or one or more new cells. This option is not supported if -type library, -type cellView or -type cell is specified. Laker³ Tcl Reference Manual K-2015.06 563 Chapter 5: Home Page Miscellaneous Argument Description -initCell initCellName Specify one or more cell names to be selected initially if they exists. If this option is not specified, nothing is selected. This option is not supported if -type library or -type view is specified. More than one cell names can be specified only if -type cell is specified. -initLib initLibName Specify a logical library name to be selected initially if it exists. If this option is not specified, nothing is selected. This option is not supported if -type view is specified. -initView initViewName Specify one or more view names to be selected initially if they exists. If this option is not specified, nothing is selected. This option is not supported if -type library or -type cell is specified. More than one view names can be specified only if -type view is specified. -type designType Specify a design type to select. Valid values: library, cellView, cell, and view. library: Select a library. cellView: Select a cell view. cell: Select one or more cells in some library. view: Select one or more views. Examples # Example 1 # Show a dialog to select a library. lakerGetDesign -type library # User selects library LibB; Laker returns LibB # User clicks on "Cancel" button, Laker returns empty. # Example 2 # Show a dialog to select a cell view, with initially-selected # library named LibA, cell named CellA, and view named layout. lakerGetDesign -type cellView -initLib LibA -initCell CellA \ -initView layout # User selects library LibA, cell CellB, and view schematic; # Laker returns LibA CellB schematic # User clicks on "Cancel" button, Laker returns empty. 564 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous # Example 3 # Show a dialog to select one or more cells, with initially-selected # library named LibA, and cells named CellA, and CellB lakerGetDesign -type cell -initLib LibA -initCell CellA CellB # User selects library LibB, cells CellB1, CellB3 and CellB7; # Laker returns LibB {CellB1 CellB3 CellB7} # User clicks on "Cancel" button, Laker returns empty. # Example 4 # Show a dialog to select one or more cells, and also specify new # cells. lakerGetDesign -type cell -canNew 1 # User selects library LibB, specify NewA, NewB, and NewC in Text # field; Laker returns LibB {NewA NewB NewC} # User clicks on "Cancel" button, Laker returns empty. # Example 5 # Show a dialog to select one or more views, with initially-selected # views, named layout, symbol, and abs. lakerGetDesign -type view -initView layout symbol abs # User selects views schematic, and logic; # Laker returns schematic logic # User clicks on "Cancel" button, Laker returns empty. # User selects nothing and clicks on "OK" button; Laker returns 0 lakerImportSIF The lakerImportSIF command imports an SIF format to the Laker database. The specified library and design (cell) name must be opened. Syntax lakerImportSIF -file fileName -lib libName -design designName [-logFile logErrName] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -design designName Specify the design name. -file fileName Specify the file input SIF file. -lib libName Specify the library name. Laker³ Tcl Reference Manual K-2015.06 565 Chapter 5: Home Page Miscellaneous Argument Description -logFile logErrName Specify the file name for the log and error files. Examples lakerImportSIF -file test.sif -lib test -design test lakerIpcHdl The lakerIpcHdl command invokes an independent Tcl process from Laker. This command helps you to keep writing data to the process, or to terminate the invoked Tcl process. The -error and -end arguments are not ready at current stage. The procedure defined in -end is not triggled when you submit the terminate command to the specific IPC number. At the current stage, the IPC Handler sends a special word, _TERMINATE_, to the child process if you run lakerIpcHdl command with -terminate option. To use the -terminate option correctly, you should make your child process terminated itself if it receives the special word _TERMINATE_. More than one process can be invoked even if you specify the same read procedure in the -read option with the lakerIpcHdl command. However, you have to take charge of handling those messages from various invoked processes in the read procedure. Syntax lakerIpcHdl -opt option {-script tclScriptFile -read readHdlProc -error errorHdlProc -end endHdlProc | -id virProcId [-content content]} lakerIpcHdl -opt option {-cmdLine Executable_Command -read readHdlProc -error errorHdlProc -end endHdlProc | -id virProcId [-content content]} Returns 1 if successful; otherwise, returns 0. 566 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Arguments Argument Description -cmdLine Executable_Command Specify an executable program that can run on UNIX environment and talk with Laker through IPC protocol. -content content Specify the content to be written to an invoked Tcl process. -end endHdlProc Specify the Tcl procedure when terminating a Tcl process. -error errorHdlProc Specify the Tcl procedure when failing to read data from a Tcl process. -id virProcId Specify a virtual process identifier which is written to or terminated. You can get it from the result value after a Tcl process is invoked. -opt option Specify an action of the Tcl process. Valid values: invoke, write, and terminate. where invoke starts a Tcl process; write writes data to a Tcl process; and terminate ends a Tcl process. -read readHdlProc Specify the Tcl process when succeeding to read data from a Tcl process. -script tclScriptFile Specify the Tcl script file which is executed by the invoked Tcl process. Examples # Example 1 # Invoke a Tcl process lakerIpcHdl -opt invoke -script tcpServer.tcl \ -read IpcReadHdlProc -error IpcErrHdlProc -end IpcEndHdlProc # Write to a Tcl process lakerIpcHdl -opt write -id 2222 -content \ {lakerProbeShape -mode net} # Terminate a Tcl process lakerIpcHdl -opt terminate -id 2222 Laker³ Tcl Reference Manual K-2015.06 567 Chapter 5: Home Page Miscellaneous # Example 2 # submit a process and communicate with Laker # through IPC protocol lakerIpcHdl -opt invoke \ -script $env($COHESION_TOOL_PATH)/scripts/navclient.tcl \ -read ProcessReadHdl -error ProcessErrorHdl -end ProcessEndHdl # terminate the IPC process lakerIpcHdl -opt terminate -id $ipcVar(nVirTcpProcessId) # Example 3 set Global(ecsPort) "-porttosch $porttosch \ -portfromsch $portfromsch" set Global(ecsCmd) "$Global(ecsCmdPath)/hdsshell $Global(ecsPort)" lakerIpcHdl -opt invoke -cmdLine "$Global(ecsCmd)" \ -read ProcessECSReadHdl -error ProcessErrorHdl \ -end ProcessECSEndHdl lakerLoadNanoScopeFile The lakerLoadNanoScopeFile command loads the defect and simulation data generated by NanoScope and shows the defect and simulation objects on screen. Syntax lakerLoadNanoScopeFile -view viewName [-output outputFile] [-contour contourFile] [-point (x1,y1) (x2,y2)] [quality] Returns 1 if successful; otherwise, returns 0. Arguments 568 Argument Description -contour contourFile Specify the output ASCII file from NanoScope, which contains simulation contours. -output outputFile Specify the output ASCII file from NanoScope, which contains inspected defects. -point (x1,y1) (x2,y2) Specify the bounding box of the selected area for inspecting and contouring. Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous Argument Description -quality Specify whether those inspected defects are with qualities in the specified output file from NanoScope. -view viewName Specify the view name to be appended to the cell. Examples # Example 1 # Load only output file from NanoScope lakerLoadNanoScopeFile -view ns_output -output nsOutput.rpt # Example 2 # Load output file and contour file with a specified area from # NanoScope lakerLoadNanoScopeFile -view ns_output -output nsOutput.rpt \ -contour nsContour.rpt -point \ (1698.65,3142.28) (2190.22,3617.98) # Example 3 # Load output file containing qualities from NanoScope lakerLoadNanoScopeFile -view quality -output nsOutput.rpt lakerRegWndCB The lakerRegWndCB command is an event registered or unregistered for a specific design window. This command is used for Laker/Composer integration. When evaluating the specified callback procedure, several global Tcl variables are provided to keep the information for accessing. They are _lkWndCBReasonName, _lkWndCBWndName, _lkWndCBLibName, _lkWndCBCellName, _lkWndCBViewName, _lkWndCBInstList, _lkWndCBNetList, _lkWndCBScrCoord, _lkWndCBDBCoord, _lkWndCBObjId, _lkWndCBLibName2, _lkWndCBCellName2, _lkWndCBViewName2, _lkWndCBHLInstList, and _lkWndCBHLNetList. Laker³ Tcl Reference Manual K-2015.06 569 Chapter 5: Home Page Miscellaneous 570 SelectLayout V V V V V V V SelectBrowser V V V V V V V MouseMoving V V V V V V V MouseLeftClick V V V V V V V MouseRightClick V V V V V V V preSelect V V V V V WndEnter V V V V V EIP V V V V V V V V Descend V V V V V V V V ReturnTo V V V V V V V V Save V V V V V SaveAs V V V V V Discard V V V V V Load V V V V V Highlight V V V V V ClearHighlight V V V V V _lkWndCBHLNetList _lkWndCBHLInstList _lkWndCBViewName2 _lkWndCBCellName2 _lkWndCBLibName2 _lkWndCBObjId _lkWndCBDBCoord _lkWndCBScrCoord _lkWndCBNetList _lkWndCBInstList _lkWndCBViewName _lkWndCBCellName _lkWndCBLibName _lkWndCBWndName CallBack Type _lkWndCBReasonName The following table shows the relationship of callback types and global Tcl variables. V V V V V V V V V V V Laker³ Tcl Reference Manual K-2015.06 WndClose V V V V V WndOpen V V V V V _lkWndCBHLNetList _lkWndCBHLInstList _lkWndCBViewName2 _lkWndCBCellName2 _lkWndCBLibName2 _lkWndCBObjId _lkWndCBDBCoord _lkWndCBScrCoord _lkWndCBNetList _lkWndCBInstList _lkWndCBViewName _lkWndCBCellName _lkWndCBLibName _lkWndCBWndName CallBack Type _lkWndCBReasonName Chapter 5: Home Page Miscellaneous Syntax lakerRegWndCB -type typeName -callback procedureName [-wnd wndName] [-remove] Returns 1 if successful, otherwise returns 0. Arguments Argument Description -callback procedureName Specify the callback procedure name. -remove Unregister the event with the specified callback procedure name. Laker³ Tcl Reference Manual K-2015.06 571 Chapter 5: Home Page Miscellaneous Argument Description -type typeName Specify the registered or unregistered callback type. Valid values are listed and explained as follows: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ -wnd wndName SelectLayout: Used when the select set in the layout is changed. SelectBrowser: Used when the select set in the Design Browser pane is changed. MouseMoving: Used for mouse moving in the Layout window. MouseLeftClick: Used for left-click in the Layout window. MouseRightClick: Used for right-click in the Layout window. preSelect: Used for pre-selecting the layout in the Layout window. WndEnter: Used for mouse entering in the Layout window. EIP: Used for editing a cell with EIP mode. Descend: Used for descending a cell in EIP mode. ReturnTo: Used for returning to the EIP/Descend level. Save: Used for saving a design with the same name. SaveAs: Used for saving the design with another name. Discard: Used for discard editing. Load: Used for loading another design in the current Layout window. Highlight: Used for showing highlights in the layout. ClearHighlight: Used for clearing highlights in the layout. WndClose: Used for closing the Design window. WndOpen: Used for opening the Design window. Specify the name of the registered or unregistered design window. The default is the active window, but if the active window is not the design window, the command fails. Do not specify this argument when -type WndOpen is specified. Examples # Example 1. Evaluate the callback procedure # LayoutSelectChange with the following global # Tcl variables for the SelectLayout event 572 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous proc LayoutSelectChange {} { global _lkWndCBReasonName global _lkWndCBWndName global _lkWndCBLibName global _lkWndCBCellName global _lkWndCBViewName global _lkWndCBInstList global _lkWndCBNetList lakerMessage "CallBack Type: $_lkWndCBReasonName Window:$_lkWndCBWndName Library:$_lkWndCBLibName Cell:$_lkWndCBCellName View:$_lkWndCBViewName" lakerMessage "instList: $_lkWndCBInstList\nnetList: $_lkWndCBNetList" } # register the SelectLayout callback event lakerRegWndCB -type SelectLayout \ -callback LayoutSelectChange -wnd Wnd2 # unregister the SelectLayout callback event lakerRegWndCB -type SelectLayout -callback LayoutSelectChange \ -wnd Wnd2 -remove # Example 2. Various Examples for supported callback events. proc DumpGlobalVar {} { global _lkWndCBReasonName global _lkWndCBWndName global _lkWndCBLibName global _lkWndCBCellName global _lkWndCBViewName lakerMessage "CallBack Type: $_lkWndCBReasonName Window:$_lkWndCBWndName Library:$_lkWndCBLibName Cell:$_lkWndCBCellName View:$_lkWndCBViewName" } proc EIPLayoutWnd {} { DumpGlobalVar # Information of the previous editing cell view global _lkWndCBLibName2 global _lkWndCBCellName2 global _lkWndCBViewName2 lakerMessage "Old: libName: $_lkWndCBLibName2, cellName: $_lkWndCBCellName2, viewName: $_lkWndCBViewName2" } Laker³ Tcl Reference Manual K-2015.06 573 Chapter 5: Home Page Miscellaneous proc DescendLayoutWnd {} { DumpGlobalVar # Information of the previous editing cell view global _lkWndCBLibName2 global _lkWndCBCellName2 global _lkWndCBViewName2 lakerMessage "Old: libName: $_lkWndCBLibName2, cellName: $_lkWndCBCellName2, viewName: $_lkWndCBViewName2" } proc ReturnToLayoutWnd {} { DumpGlobalVar # Information of the previous editing cell view global _lkWndCBLibName2 global _lkWndCBCellName2 global _lkWndCBViewName2 lakerMessage "Old: libName: $_lkWndCBLibName2, cellName: $_lkWndCBCellName2, viewName: $_lkWndCBViewName2" } proc SaveLayoutWnd {} { DumpGlobalVar } proc SaveAsLayoutWnd {} { DumpGlobalVar # Information of the current editing cell view global _lkWndCBLibName2 global _lkWndCBCellName2 global _lkWndCBViewName2 lakerMessage "Old: libName: $_lkWndCBLibName2, cellName: $_lkWndCBCellName2, viewName: $_lkWndCBViewName2" } proc closeLayoutWnd {} { DumpGlobalVar } proc DiscardLayoutWnd {} { DumpGlobalVar } proc LoadLayoutWnd {} { DumpGlobalVar # Information of the previous editing cell view global _lkWndCBLibName2 global _lkWndCBCellName2 global _lkWndCBViewName2 574 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous lakerMessage "Old: libName: $_lkWndCBLibName2, cellName: $_lkWndCBCellName2, viewName: $_lkWndCBViewName2" } proc selObjsInLayout {} { DumpGlobalVar global _lkWndCBWndName global _lkWndCBInstList global _lkWndCBNetList #lakerMessage {Callback Type: SelectLayout|SelectBrowser} lakerMessage "instList: $_lkWndCBInstList\nnetList: $_lkWndCBNetList" } proc MouseMovingCB {} { DumpGlobalVar global _lkWndCBDBCoord global _lkWndCBScrCoord lakerMessage "Coordinate: $_lkWndCBDBCoord, coor: $_lkWndCBScrCoord" } proc MouseLeftClickCB {} { DumpGlobalVar global _lkWndCBDBCoord global _lkWndCBScrCoord lakerMessage "Coordinate: $_lkWndCBDBCoord, coor: $_lkWndCBScrCoord" } proc MouseRightClickCB {} { DumpGlobalVar global _lkWndCBDBCoord global _lkWndCBScrCoord lakerMessage "Coordinate: $_lkWndCBDBCoord, coor: $_lkWndCBScrCoord" } proc preSelectCB {} { DumpGlobalVar global _lkWndCBDBCoord global _lkWndCBScrCoord global _lkWndCBObjId if {$_lkWndCBObjId == "0"} { lakerMessage "Clear Pre-select data" } else { lakerMessage "Pre-select objId: $_lkWndCBObjId" } lakerMessage "Coordinate: $_lkWndCBDBCoord, coor: $_lkWndCBScrCoord" Laker³ Tcl Reference Manual K-2015.06 575 Chapter 5: Home Page Miscellaneous } proc enterCB {} { DumpGlobalVar } proc highlightCB {} { DumpGlobalVar global _lkWndCBHLInstList global _lkWndCBHLNetList lakerMessage "InstList: $_lkWndCBHLInstList NetList: $_lkWndCBHLNetList" } proc clearhighlightCB {} { DumpGlobalVar } proc regSDLCallBack {} { set cv [leoGetWndCellViewId] set wndId [lakerGetWndByCV -cv $cv] set result [lakerRegWndCB -wnd $wndId -type WndClose -callback closeLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type EIP -callback EIPLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type Descend -callback DescendLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type ReturnTo \ -callback ReturnToLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type Save -callback SaveLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type SaveAs -callback SaveAsLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type Discard -callback DiscardLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type Load -callback LoadLayoutWnd] set result [lakerRegWndCB -wnd $wndId -type MouseMoving \ -callback MouseMovingCB] set result [lakerRegWndCB -wnd $wndId -type MouseLeftClick \ -callback MouseLeftClickCB] set result [lakerRegWndCB -wnd $wndId -type MouseRightClick \ -callback MouseRightClickCB] set result [lakerRegWndCB -wnd $wndId -type preSelect \ -callback preSelectCB] set result [lakerRegWndCB -wnd $wndId -type SelectLayout \ -callback selObjsInLayout] set result [lakerRegWndCB -wnd $wndId -type SelectBrowser \ -callback selObjsInLayout] set result [lakerRegWndCB -wnd $wndId -type WndEnter \ 576 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous -callback enterCB] set result [lakerRegWndCB -wnd $wndId -type Highlight \ -callback highlightCB] set result [lakerRegWndCB -wnd $wndId -type ClearHighlight \ -callback clearhighlightCB] } # Example 3. Specify a callback for window opened event proc OpenLayoutWnd {} { set logoutFile [open RegWndCB.log a+] global global global global global _lkWndCBReasonName _lkWndCBWndName _lkWndCBLibName _lkWndCBCellName _lkWndCBViewName puts $logoutFile "Callback Type: $_lkWndCBReasonName" puts $logoutFile "Window : $_lkWndCBWndName" puts $logoutFile "Current: libName: $_lkWndCBLibName, cellName: $_lkWndCBCellName, viewName: $_lkWndCBViewName" puts $logoutFile "========================================================" close $logoutFile } lakerRegWndCB -type WndOpen -callback OpenLayoutWnd lakerSetDeviceObjMode The lakerSetDeviceObjMode command sets the device object mode to treat MCells as regular instances. Syntax lakerSetDeviceObjMode [-mode 0|1] Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Device Object Mode option. 0 : Disable the Device Object Mode option. Laker³ Tcl Reference Manual K-2015.06 577 Chapter 5: Home Page Miscellaneous Examples lakerSetDeviceObjMode -mode 1 See Also Home Page: Options > Preferences > General tab > Selector > Device Object Mode lakerVersion The lakerVersion command returns the current release information, such as the current release date and version. The version related information is not displayed on the Home Page if this command is used in a Tcl script. Syntax lakerVersion [-release | -date] Returns The information of the current version if successful, otherwise returns an error message. Arguments Argument Description -date Specify the release date of the current version. -release Specify the version of the current release. Examples # Example 1 lakerVersion # Return: # Laker - Toward Custom Layout Automation, # Release 3.0v6 32-bit (SOLARIS) 04/15/2003 lakerVersion -release # Return: 3.0v6 lakerVersion -date # Return: 04/15/2003 578 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous sysGetRcValue The sysGetRcValue command is used to get the value of the specified keyword in the laker.rc resource file. Syntax sysGetRcValue -section section -key key Returns None Arguments Argument Description -key key Specify the keyword. Valid values: InfixEditing, PopUpInformation, SetColorNameForShapeCreation, and SetLockForShapeCreation. -section section Specify the section name. Valid value: LeoPreference. Examples # Example 1 sysGetRcValue -section LeoPreference -key InfixEditing # Example 2 sysGetRcValue -section LeoPreference -key PopUpInformation # Example 3 sysGetRcValue -section LeoPreference \ -key SetColorNameForShapeCreation # Example 4 sysGetRcValue -section LeoPreference -key SetLockForShapeCreation sysSetRcValue The sysSetRcValue command is used to set or modify the value of the specified keyword in the laker.rc resource file. You can specify the color and lock in the [LeoPreference] section of the laker.rc resource file with the following keywords: Laker³ Tcl Reference Manual K-2015.06 579 Chapter 5: Home Page Miscellaneous SetColorNameForShapeCreation = ColorName SetLockForShapeCreation = TRUE | FALSE Syntax sysSetRcValue -section section -key key -value value Returns None Arguments Argument Description -key key Specify the keyword. Valid values: InfixEditing, PopUpInformation, SetColorNameForShapeCreation, and SetLockForShapeCreation. -section section Specify the section name. Valid value: LeoPreference. -value value Specify the value to be set. Valid values: true and false for InfixEditing, PopUpInformation, and SetLockForShapeCreation; colorName for SetColorNameForShapeCreation, where colorName can be any string like colorA. Examples # Example 1 sysSetRcValue -section LeoPreference -key InfixEditing \ -value true # Example 2 sysSetRcValue -section LeoPreference -key PopUpInformation \ -value true # Example 3 sysSetRcValue -section LeoPreference \ -key SetColorNameForShapeCreation -value colorA # Example 4 sysSetRcValue -section LeoPreference \ -key SetLockForShapeCreation -value FALSE 580 Laker³ Tcl Reference Manual K-2015.06 Chapter 5: Home Page Miscellaneous wtShowLicStatus The wtShowLicStatus command shows the license status. When the command is invoked without -feature, the system displays an Information form showing the Laker_AdvancedNode license status. Figure 2 Information Form Shows Laker_AdvancedNode License Status When the command is invoked with -feature, the system displays an Information form showing the status of the specified license feature. Figure 3 Information Form Shows Specified License Feature Syntax wtShowLicStatus [-feature feature] Returns None Laker³ Tcl Reference Manual K-2015.06 581 Chapter 5: Home Page Miscellaneous Arguments Argument Description -feature feature Specify the license feature to be checked. Valid values: Laker_Viewer, Laker_L1, Laker_L2, Laker_L3, Laker_L4, Laker_FPD_L2, Laker_SE, Laker_ADP, and Laker_AdvancedNode (default=Laker_AdvancedNode). Examples # Example 1 wtShowLicStatus -feature Laker_L3 # Example 2 wtShowLicStatus -feature Laker_Viewer 582 Laker³ Tcl Reference Manual K-2015.06 6 6 Library Mapping Editor This chapter describes the definable Tcl commands to access the Graphical User Interface (GUI) which applied within the Library Mapping Editor window, invoked by Library > Mapping Path in the Home Page. The Tcl commands are explained in the following sections. Tcl commands and arguments are sorted alphabetically. ■ lakerLME ■ lakerLMEBack2Top ■ lakerLMEClose ■ lakerLMEOpen ■ lakerLMESave ■ lakerLMESaveAs ■ lakerMapPath lakerLME The lakerLME command invokes the Library Mapping Editor window and creates and deletes the mapping record by the specified -purge and buildmap option. Syntax lakerLME [-logicName logicName -mapPath mapPath | -purge 0|1 | -buildmap buildmap | -include fileName] Returns None Laker³ Tcl Reference Manual K-2015.06 583 Chapter 6: Library Mapping Editor lakerLMEBack2Top Arguments Argument Description -buildmap buildmap Build all libraries in the directory into the Library Mapping Editor (default=current directory). -include fileName Include the library mapping file. Specify the file with its full path. -logicName logicName Specify the logic name of the mapping library. -mapPath mapPath Specify the mapping library in full path. -purge 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Clear all mapping paths in the Library Mapping Editor. 0 : Keep all mapping paths in the Library Mapping Editor. Examples # Example 1 lakerLME -purge 1 lakerLME -logicName a1 -mapPath /local/test/a1.lib++ lakerLME -logicName demo -mapPath /local/test/demo.lib++ lakerLME -include /local/test/aa.lib See Also Library Mapping Editor lakerLMEBack2Top lakerLMEClose lakerLMEOpen lakerLMESave lakerLMESaveAs lakerLMEBack2Top The lakerLMEBack2Top command returns to the initial state of the library mapping record. Syntax lakerLMEBack2Top 584 Laker³ Tcl Reference Manual K-2015.06 Chapter 6: Library Mapping Editor lakerLMEClose Returns None Arguments None Examples None See Also Library Mapping Editor: File > Back to Top lakerLME lakerLMEClose lakerLMEOpen lakerLMESave lakerLMESaveAs lakerLMEClose The lakerLMEClose command closes the Library Mapping Editor window. Syntax lakerLMEClose Returns None Arguments None Examples None See Also Library Mapping Editor: File > Close lakerLME lakerLMEBack2Top lakerLMEOpen lakerLMESave lakerLMESaveAs Laker³ Tcl Reference Manual K-2015.06 585 Chapter 6: Library Mapping Editor lakerLMEOpen lakerLMEOpen The lakerLMEOpen command opens an existing library mapping file in the Library Mapping Editor. Syntax lakerLMEOpen -file fileName Returns None Arguments Argument Description -file fileName Specify the library mapping file with its full path. Examples lakerLMEOpen -file /local/test/aa.lib See Also Library Mapping Editor: File > Open lakerLME lakerLMEBack2Top lakerLMEClose lakerLMESave lakerLMESaveAs lakerLMESave The lakerLMESave command saves the library mapping file. If the file does not exist, save it to the laker.rc file. Syntax lakerLMESave [-file fileName] Returns None 586 Laker³ Tcl Reference Manual K-2015.06 Chapter 6: Library Mapping Editor lakerLMESaveAs Arguments Argument Description -file fileName Specify the library mapping file with its full path. Examples None See Also Library Mapping Editor: File > Save lakerLME lakerLMEBack2Top lakerLMEClose lakerLMEOpen lakerLMESaveAs lakerLMESaveAs The lakerLMESaveAs command saves the library mapping file with another file name. Syntax lakerLMESaveAs Returns None Arguments None Examples None See Also Library Mapping Editor: File > Save As lakerLME lakerLMEBack2Top lakerLMEClose lakerLMEOpen lakerLMESave Laker³ Tcl Reference Manual K-2015.06 587 Chapter 6: Library Mapping Editor lakerMapPath lakerMapPath The lakerMapPath command creates and deletes the mapping path in the Library Mapping Editor window by the specified -purge and -buildmap options. By specifying the -add and -del options, the lakerMapPath command can also create and delete the mapping path without invoking the Library Mapping Editor window. Syntax Operations in the GUI: lakerMapPath [-logicName logicName -mapPath mapPath | -purge 0|1 | -buildmap buildmap] Add or remove the library definition without invoking the GUI: lakerMapPath [-add|-del] -logicName logicName [-mapPath mapPath] Returns None Arguments 588 Argument Description -add If specified, create the library mapping path. -buildmap buildmap Build all libraries in the directory into mapping path window (default=current directory). -del If specified, delete the library mapping path. -logicName logicName Specify the logic name of the mapping path. -mapPath mapPath Specify the library of the mapping path. -purge 0|1 Clear all mapping paths in the GUI and save the results to the laker.rc file. Valid values: Boolean values, 0 and 1 (default=0). Laker³ Tcl Reference Manual K-2015.06 Chapter 6: Library Mapping Editor lakerMapPath Examples # Example 1 #clear all mapping paths in the GUI lakerMapPath -purge 1 # Example 2 # build all libraries in directory (/usr/home/work) # into mapping path lakerMapPath -buildmap /usr/home/work # Example 3 # create a mapping path for library (demoLib) on “/usr/home/work” lakerMapPath -logicName demoLib -mapPath /usr/home/work/demoLib # Example 4 # Add a library mapping of library "a1" lakerMapPath -add -logicName a1 -mapPath /local/test/a1 # Example 5 lakerMapPath -logicName a1 -mapPath /local/test/a1 # Example 6 # Delete a library mapping "a1" lakerMapPath -del -logicName a1 See Also Library Mapping Editor Laker³ Tcl Reference Manual K-2015.06 589 Chapter 6: Library Mapping Editor lakerMapPath 590 Laker³ Tcl Reference Manual K-2015.06 7 Layout Window 7 This chapter describes the definable Tcl commands to access the Graphical User Interface (GUI) which applied within the Layout window (including the Schematic Area). In general, each command in these windows has a corresponding Tcl command for configuration. The Tcl commands are categorized in the following sections. Tcl commands and arguments are sorted alphabetically. ■ Cell Commands ■ View Commands ■ Create Commands ■ Edit Commands ■ SDL Commands ■ MCell Commands ■ Options Commands ■ Query Commands ■ EIP Commands ■ Verification Commands ■ Placer Commands ■ Router Commands ■ Window Commands ■ Schematic Commands ■ UDD Commands ■ DFM Commands Laker³ Tcl Reference Manual K-2015.06 591 Chapter 7: Layout Window Cell Commands ■ Selection Commands ■ Highlight Schemes ■ User Entry Functions ■ Miscellaneous Cell Commands This section describes the Tcl commands applied to the Cell commands of the Layout window. These commands include: ■ lakerAssocNet ■ lakerCapture ■ lakerCapturePNG ■ lakerCellPro ■ lakerCheckReference ■ lakerChgmodeDesign ■ lakerCloseDesign ■ lakerDiscardDesign ■ lakerIPMerge ■ lakerLoadDesign ■ lakerOpenDesign ■ lakerPrintDesign ■ lakerSaveDesign ■ lakerSaveAsDesign ■ lakerSummaryDesign ■ lakerSynchronize lakerAssocNet The lakerAssocNet command associates nets to top level shapes and instance ports. 592 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands Syntax lakerAssocNet -fromView viewName [-rptFile reportFileName] [-tolerance tolerance] [-overwrite 0|1] -layer layerMappingList Returns None Arguments Argument Description -fromView viewName Specify the view name having “LVS” or “Net Tracer” connection results. -layer layerMappingList Specify the layer mapping list. Each layer mapping includes the use flag, the layer name of the LVS stage (this is needed only when -from View lvs is specified), the layer number in the From View, the purpose number in the From View, the layer number in the layout view, and the purpose number in the layout view. If the use flag is 0, that means that layer is not processed. Otherwise, if the use flag is 1, that layer is processed. -overwrite 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Overwrite the original net names in the layout. 0 : Do not overwrite the original net names in the layout. -rptFile reportFileName Specify the file name of the report file. -tolerance tolerance Specify the tolerance to equivalent layers between fromView and layout view. The default is 0 micron. Examples lakerAssocNet -fromView {lvs} -rptFile ./AssocNet.rpt \ -tolerance 0 -overwrite 1 \ -layer { 0 NSD 1 252 46 252 } { 0 PSD 1 26 1 26 } \ { 1 POLY 2 252 2 252 } { 1 MET1 3 252 3 252 } { 1 MET2 4 252 4 252 } \ See Also Layout Window: Cell > Associate Net Laker³ Tcl Reference Manual K-2015.06 593 Chapter 7: Layout Window Cell Commands lakerCapture The lakerCapture command captures the image of the Layout window pane. Syntax lakerCapture -footer footercomment -file filename -Inverse lakerCapture -printer printerName -type printType -copy copyNumber -orient orientation -paper paperSize [fitpage] Returns None Arguments Argument Description -copy copyNumber Specify the number of copies. -file filename Save the captured image to a file. -fitpage Fit the printout to paper size. -footer footercomment Specify the footer comment. -Inverse Inverse the image color. -orient orientation Specify the orientation. Valid values: Landscape and Portrait. -paper paperSize Specify the paper size. Valid values: Letter, A4, A3, A2, A1, A0, B, C, D, and E. -printer printerName Specify the printer name. -type printType Specify the postscript print type. Valid values: Level1, and Level2. Examples # Specify the file name (test.png) and footer (Sheet1) # and specify to inverse the image color lakerCapture -footer Sheet1 -file test.png -Inverse lakerCapture -printer Jupiter -type Level2 -copy 1 \ -orient Landscape -paper D -fitpage 594 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands See Also Layout Window: Cell > Capture lakerCapturePNG The lakerCapturePNG command captures a PNG image. Syntax lakerCapturePNG -file filename Returns None Arguments Argument Description -file filename Save the captured PNG image to a file. Examples lakerCapturePNG -file caplamg See Also lakerCapture lakerCellPro The lakerCellPro command assigns a string (cell property) to a cell view so that the LefOut process can refer to the string and dump the information to the CLASS token. Syntax lakerCellPro -property {None -attr None | COVER -attr {None | BUMP} RING -attr None | BLOCK -attr {None | BLACKBOX} | PAD -attr {None | INPUT | OUTPUT | INOUT | POWER | SPACER | AREAIO} | CORE -attr {None | FEEDTHRU | TIEHIGH | TIELOW | SPACER | ANTENNACELL | WELLTAP} | ENDCAP -attr {PRE | POST | TOPLEFT | TOPRIGHT | BOTTOMLEFT | BOTTOMRIGHT} | SITE -attr {coresite | User-defined Site} | ANTENNAINFO -attr {pinName antennaAreaType antennaArea [layerName]} | SYMMETRY -attr {X|Y|X Y|Any}} -site siteName Laker³ Tcl Reference Manual K-2015.06 595 Chapter 7: Layout Window Cell Commands Returns None Arguments Argument Description -attr propertyType Specify the attributes of the property type. If -property ATTENNAINFO is specified, the ATTENNAINFO attributes is a list of parameters with this format: -attr {pinName antennaAreaType antennaArea [layerName]} ■ ■ ■ ■ pinName: The pin that has the antenna info. antennaAreaType: The antenna area type. Valid values: ANTENNADIFFAREA, and ANTENNAGATEAREA. antennaArea: The antenna area. Valid values: a positive floating number. The default is 0.0. layerName: Layer name. The layer is not specified by default. When the layer is not specified, the antenna area applies to all layers. -property propertyName Specify the name of the property type. Valid values: None, COVER, RING, BLOCK, PAD, CORE, ENDCAP, SITE, ATTENNAINFO, and SYMMETRY. -site siteName Specify the site name. Valid values: coresite, and any user-defined sites (default=coresite). Examples # Example 1 lakerCellPro -property RING -attr None # Example 2 lakerCellPro -property CORE -attr WELLTAP # Example 3 lakerCellPro -property ANTENNAINFO \ -attr {I2 ANTENNADIFFAREA 4.8} {F3 ANTENNAGATEAREA 6.0 MET1} # Example 4 # Antenna diffusion area in pin A2 has two values 4.0 and 4.8 lakerCellPro -property ANTENNAINFO \ -attr {A2 ANTENNADIFFAREA 4.8} {A2 ANTENNADIFFAREA 4.0} 596 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands See Also dbCellPro Layout Window: Cell > Cell Type lakerCheckReference The lakerCheckReference command checks whether all used master cell views exist in the current design hierarchy. Syntax lakerCheckReference Returns None Examples lakerCheckReference See Also Layout Window: Cell > Check Reference lakerChgmodeDesign The lakerChgmodeDesign command changes the editing mode of the activated design. Syntax lakerChgmodeDesign Returns None Examples # Change the editing mode of the activated design lakerChgmodeDesign See Also Layout Window: Cell > Change to Edit/ReadOnly Mode Laker³ Tcl Reference Manual K-2015.06 597 Chapter 7: Layout Window Cell Commands lakerCloseDesign The lakerCloseDesign command closes the activated design. Syntax lakerCloseDesign Returns None Examples # Example 1 # Close the activated design lakerCloseDesign See Also Layout Window: Cell > Close lakerDiscardDesign The lakerDiscardDesign command discards the activated design and restores the original design. Syntax lakerDiscardDesign Returns None Examples # Discard the activated design and restore the original design lakerDiscardDesign See Also Layout Window: Cell > Discard Edit lakerIPMerge The lakerIPMerge command returns 1 if the specified masters can be searched and replaced. 598 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands Syntax lakerIPMerge [-logFile 0|1] [-logFileName fileName] [skipEmptyCell 0|1] [-gdsOut 0|1] [-gdsOutFileName fileName] [-changedMasters masterList] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -changedMasters masterList Record the changed masters of the design. -gdsOut 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Export the merged results to a stream file. 0 : Do not export the merged results to a stream file. -gdsOutFileName fileName Specify the file name for the output stream file. -logFile 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Save messages to a log file. 0 : Do not save messages to a log file. -logFileName fileName Specify the file name for the log file. -skipEmptyCell 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Skip empty cells when exporting the merged results. 0 : Keep empty cells when exporting the merged results. Examples # Example 1 # Save the results to IPMergeResult.log and export the results to # the stream file, IPMergeResult.gz lakerIPMerge -logFile 1 -logFileName IPMergeResult \ -skipEmptyCell 1 -gdsOut 1 -gdsOutFileName IPMergeResult.gz # Example 2 # Display AND2X1, AND2X2 and AND2X4 in the Master Cell List table lakerIPMerge -changedMasters {{AND2X1 s1423_lef AND2X1} \ {AND2X2 s1423_lef AND2X2} {AND2X4 s1423_lef AND2X4}} Laker³ Tcl Reference Manual K-2015.06 599 Chapter 7: Layout Window Cell Commands See Also Layout Window: Cell > IP Merge lakerLoadDesign The lakerLoadDesign command returns 1 if the design data (with the specified file path and opening mode) can be loaded into the current layout window. Syntax lakerLoadDesign -lib libName -cell cellName [-mode mode] [view viewName] [-restorenum restoreNum] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -cell cellName Specify the cell to be opened. -lib libName Specify the library database. -mode mode Specify an opening mode. Valid values: edit and readOnly (default=edit). -view viewName Specify the view type of the opened cell. Valid values: layout, abs, and schematic (default=layout). -restorenum restoreNum Restore the backup database (default=-1). Examples # Example 1 # Load the layout view of cell (ram) in the library (ram) lakerLoadDesign -lib ram -cell ram -mode edit # Example 2 # Load the previous version of layout view of cell (ram) # in the library (ram) lakerLoadDesign -lib ram -cell ram -mode edit -restorenum 1 600 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands See Also Layout Window: Cell > Load lakerOpenDesign Refer to the lakerOpenDesign command in the Home Page: File Commands section for more details. lakerPrintDesign The lakerPrintDesign command prints the layout design. Syntax lakerPrintDesign [-printerName printerName] [-orient orientation] [-paperSize paperSize] [-copy printCopy] [color printColor] [-toFile printToFile] [-fileName fileName] [-header paperHeader] [-footer paperFooter] [magni magnification] [-view viewName] [-layerPattern 0|1] [-ruler 0|1] [-type Type] [-filter filterValue] Returns None Arguments Argument Description -color printColor Set the output format in color. -copy printCopy Specify the number of copies (default=1). -fileName fileName Specify the output file. Laker³ Tcl Reference Manual K-2015.06 601 Chapter 7: Layout Window Cell Commands Argument Description -filter filterValue Specify the print quality. Valid values: -1, 0, and 1 (default=0). -1 : Print at the highest resolution. This is not recommended for layouts with an extremely large scale because this prints all layout objects (no layout objects are filtered) in the printout. 0 : Print at a moderate resolution. This can slow down the printing process, and some layout objects might be filtered. 1 : Print at a lower resolution in a short time. -footer paperFooter Print the footer string. -header paperHeader Print the header string. -layerPattern 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Print the layer patterns. 0 : Do not print the layer patterns. -magni magnification View size is printed compared with a real chip size. Valid value: a positive floating number (default=1.0). -orient orientation Specify the paper orientation. Valid values: Portrait and Landscape (default=Landscape). -paperSize paperSize Specify the paper size. Valid values: Letter, Legal, A4, A3, A2, A1, A0, B, C, D, E, and User-defined (default=A4). -printerName printerName Specify the printer name. 602 -ruler 0|1 Print the ruler lines. Valid values: Boolean values, 0 and 1 (default=1). -toFile printToFile Set the output to file or printer. -type Type Specify the print file type. Valid values: PS2, PS1, and GL2 (default=PS2). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands Argument Description -view viewName Print the whole chip or screen area. Valid values: screen, and cell (default=cell).screen : Print the viewing area on screen (a part of the cell view). cell : Print the full cell view (the whole chip). Examples # Example 1 lakerPrintDesign -paper A4 -header "%L, %C, %M, %T, %H" \ -footer "%U" -file "Auto.ps" -type GL2 \ -filter 0 -view screen # Example 2 lakerPrintDesign -orient portrait -paper Letter \ -file “32v3.ps” -type PS2 -filter -1 See Also Layout Window: Cell > Print Layout Layout Window: Cell > Print Schematic lakerSaveDesign The lakerSaveDesign command saves the activated design to the database. Syntax lakerSaveDesign [-autosave] Returns None Arguments Argument Description -autosave Create the autosave file. Examples # Example 1 # save the activated design to database lakerSaveDesign Laker³ Tcl Reference Manual K-2015.06 603 Chapter 7: Layout Window Cell Commands # Example 2 # save the activated design to an autosave file lakerSaveDesign -autosave tclExec “cp ./A.lib++/a/layout.autosave .” See Also Layout Window: Cell > Save lakerSaveAsDesign The lakerSaveAsDesign command saves the activated design to another cell. Syntax lakerSaveAsDesign -cell cellName [-lib libName] [IgnoreLogicSchematicView 0|1] [-SavemaskLayoutOnly 0|1] Returns None Arguments Argument Description -cell cellName Specify the cell to be saved. Valid values: Boolean values, 0 and 1 (default=0). IgnoreLogicSchematicView 1 : Enable the Ignore Logic/Schematic Views 0|1 option. 0 : Disable the Ignore Logic/Schematic Views option. 604 -lib libName Specify the library database (default=the current library). -SavemaskLayoutOnly 0|1 Valid values: Boolean values, 0 and 1. 1 : Do not save the logic and schematic views of the selected cell. 0 : Save the selected cell with all of its existing views. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Cell Commands Examples # Example 1 # Save the activated design to another cell (demo) # in the library (demo) lakerSaveAsDesign -lib demo -cell demo # Example 2 # Save the activated design to another cell (demo) in the # library (demo) # without logic/schematic views lakerSaveAsDesign -lib demo -cell demo \ -IgnoreLogicSchematicView 1 See Also dbSaveCV Layout Window: Cell > Save As lakerSummaryDesign The lakerSummaryDesign command displays the summary of the design. Syntax lakerSummaryDesign [-mode modeName [-level levelNum]] [logFile logFileName] Returns None Arguments Argument Description -level levelNum Specify the design hierarchy level. Valid value: an integer, from 0 to 49 (default=0). -logFile logFileName Specify the summary file in ASCII format. -mode modeName Specify the mode to be used to get the summary. Valid values: full and select (default=full). Examples # Example 1 # summary for default mode (full) and default level (0) lakerSummaryDesign Laker³ Tcl Reference Manual K-2015.06 605 Chapter 7: Layout Window View Commands # Example 2 # summary for default mode (full) and maximum level (49) lakerSummaryDesign -mode full -level 49 # Example 3 lakerSummaryDesign -mode select # Example 4 lakerSummaryDesign -logFile /tmp/Laker/summary.log See Also Layout Window: Cell > Summary lakerSynchronize The lakerSynchronize command synchronizes and updates the cell view content in several processes if any of the cell views opened in several processes are modified. Syntax lakerSynchronize Returns None Examples # Reload data from database lakerSynchronize See Also Layout Window: Cell > Synchronize View Commands This section describes the Tcl commands applied to the View commands of the Layout window. These commands includes: 606 ■ lakerBackwardView ■ lakerDelAllAreaDsp ■ lakerDelAreaDsp Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands ■ lakerFitSelObj ■ lakerForwardView ■ lakerLastView ■ lakerMaxViewLevel ■ lakerMinViewLevel ■ lakerPanDown ■ lakerPanLeft ■ lakerPanRight ■ lakerPanUp ■ lakerPanXY ■ lakerRedraw ■ lakerSetAbsMode ■ lakerSetAreaDsp ■ lakerSetBothViewMode ■ lakerSetLayoutMode ■ lakerViewInsAbs ■ lakerViewInsLayout ■ lakerViewInsNormal ■ lakerViewLevel ■ lakerViewLevelDec ■ lakerViewLevelInc ■ lakerViewMark ■ lakerViewPinLabelNet ■ lakerViewPinLabelOff ■ lakerViewPinLabelPort ■ lakerViewTopSysPin ■ lakerZoomAll ■ lakerZoomIn Laker³ Tcl Reference Manual K-2015.06 607 Chapter 7: Layout Window View Commands ■ lakerZoomInByArea ■ lakerZoomOut lakerBackwardView The lakerBackwardView command changes to the previous view. Syntax lakerBackwardView Returns None Examples # Example 1 # Change to the previous view lakerBackwardView See Also Layout Window: View > Cycle Last View > Backward View lakerDelAllAreaDsp The lakerDelAllAreaDsp command deletes all area displays. Syntax lakerDelAllAreaDsp Returns None Examples # Example 1 # Clean all area displays lakerDelAllAreaDsp See Also Layout Window: View > Area Display > Delete All Areas 608 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands lakerDelAreaDsp The lakerDelAreaDsp command deletes the area display at the specified point. Syntax lakerDelAreaDsp -point (x0,y0) Returns None Arguments Argument Description -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples # Example 1 # Remove the area display on point (100,100) lakerDelAreaDsp -point (100,100) See Also Layout Window: View > Area Display > Delete Area Display lakerFitSelObj The lakerFitSelObj command zooms in the view area to the bounding box of the selected objects. Syntax lakerFitSelObj Returns None Examples # Example 1 # Zoom in the view area to the bounding box of the selected objects lakerFitSelObj Laker³ Tcl Reference Manual K-2015.06 609 Chapter 7: Layout Window View Commands See Also Layout Window: View > Fit Selected Obj lakerForwardView The lakerForwardView command changes to the next view. Syntax lakerForwardView Returns None Examples # Example 1 # Change to the next view lakerForwardView See Also Layout Window: View > Cycle Last View > Forward View lakerLastView The lakerLastView command changes the current view area to the last view area. Syntax lakerLastView Returns None Examples # Example 1 # Switch to the last view area lakerLastView See Also Layout Window: View > Last View 610 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands lakerMaxViewLevel The lakerMaxViewLevel command sets the view level to maximum (49) to view all levels of hierarchial design. Syntax lakerMaxViewLevel Returns None Examples # Example 1 # Set the view level to 49 lakerMaxViewLevel See Also Layout Window: View > View Level > Max View Level lakerMinViewLevel The lakerMinViewLevel command sets the view level to the minimum (0) to view the top level of hierarchial design. Syntax lakerMinViewLevel Returns None Examples # Example 1 # Set the view level to 0 lakerMinViewLevel See Also Layout Window: View > View Level > Min View Level Laker³ Tcl Reference Manual K-2015.06 611 Chapter 7: Layout Window View Commands lakerPanDown By following the specified ratio, the lakerPanDown command pans the current view area downward the current window or the view box boundary. Syntax lakerPanDown [-ratio ratio] Returns None Arguments Argument Description -ratio ratio Specify the size of the scrolled view box (default=2). 0: Scroll to the bottom of the view box boundary. n: 1/n of the view box for each scrolled size. Examples # Example 1 # Pan 1/4 down of current view area to the current window lakerPanDown -ratio 4 # Example 2 # Pan to the bottom of the view box boundary lakerPanDown -ratio 0 See Also Layout Window: View > Pan lakerPanLeft By following the specified ratio, the lakerPanLeft command pans the current view area to the left of the current window or the view box boundary. Syntax lakerPanLeft [-ratio ratio] Returns None 612 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands Arguments Argument Description -ratio ratio Specify the size of the scrolled view box (default=2). 0: Scroll to the bottom of the view box boundary. n: 1/n of the view box for each scrolled size. Examples # Example 1 # Pan 1/4 left of current view area to the current window lakerPanLeft -ratio 4 # Example 2 # Pan to the left of the view box boundary lakerPanLeft -ratio 0 See Also Layout Window: View > Pan lakerPanRight By following the specified ratio, the lakerPanRight command pans the current view area to the right of the current window or the view box boundary. Syntax lakerPanRight [-ratio ratio] Returns None Arguments Argument Description -ratio ratio Specify the size of the scrolled view box (default=2). 0: Scroll to the bottom of the view box boundary. n: 1/n of the view box for each scrolled size. Examples # Example 1 # Pan 1/4 right of current view area to the current window lakerPanRight -ratio 4 Laker³ Tcl Reference Manual K-2015.06 613 Chapter 7: Layout Window View Commands # Example 2 # Pan to the right of the view box boundary lakerPanRight -ratio 0 See Also Layout Window: View > Pan lakerPanUp By following the specified ratio, the lakerPanUp command pans the current view area upward the current window or the view box boundary. Syntax lakerPanUp [-ratio ratio] Returns None Arguments Argument Description -ratio ratio Specify the size of the scrolled view box (default=2). 0: Scroll to the top of the view box boundary. n: 1/n of the view box for each scrolled size. Examples # Example 1 # Pan 1/4 up of current view area to the current window lakerPanUp -ratio 4 # Example 2 # Pan to the top of the view box boundary lakerPanUp -ratio 0 See Also Layout Window: View > Pan lakerPanXY The lakerPanXY command pans the current view area to the specified point or place a mark on the specified point. 614 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands Syntax lakerPanXY [-load loadFile | -save saveFile | -disall 0|1 | -delall 0|1 | -changeall 0|1 | -point (x0,y0) [-mark 0|1] [-delmark 0|1] [-dismark 0|1] [-zoomsize zoomSize] [snapcursor 0|1] ] Returns None Arguments Argument Description -changeall 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable all marks. 0 : Disable all marks. -delall 0|1 Valid values: Boolean values, 0 and 1. 1 : Delete all marks. 0 : Keep all marks. -delmark 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Delete the mark. 0 : Keep the mark. -disall 0|1 Valid values: Boolean values, 0 and 1. 1 : Disable all marks. 0 : Enable all marks. -dismark 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Disable the mark. 0 : Enable the mark. -load loadFile Load mark data from file. -mark 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Set the mark. 0 : Do not set the mark. -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -save saveFile Save mark data to file. Laker³ Tcl Reference Manual K-2015.06 615 Chapter 7: Layout Window View Commands Argument Description -snapcursor 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Snap the cursor to the desired point. 0 : Do not snap the cursor to the desired point. -zoomsize zoomSize Zoom in to the specified scale. Valid value: an integer. Examples # Example 1 # Load a mark data from demofile.mark lakerPanXY -load demofile.mark # Example 2 # Save the current mark data to demofile.mark lakerPanXY -save demofile.mark # Example 3 # Disable all marks lakerPanXY -disall 1 # Example 4 # Delete all marks lakerPanXY -changeall 1 # Example 5 # Place a mark on point (100,100) lakerPanXY -point (100,100) -mark 1 # Example 6 # Disable the mark of point (100,100) lakerPanXY -point (100,100) -dismark 1 # Example 7 # Delete the mark of point (100,100) lakerPanXY -point (100,100) -delmark 1 # Example 8 # Pan to the point (100,100) and # change its view box as (95,95) (105,105) lakerPanXY -point (100,100) -zoomsize 5 # Example 9 # Set the desired point (-3.615,2.77) and snap cursor to this point lakerPanXY -point (-3.615,2.77) -snapcursor 1 See Also Layout Window: View > Pan 616 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands lakerRedraw The lakerRedraw command redraws the current viewing area. Syntax lakerRedraw Returns None Examples # Redraw the current viewing area lakerRedraw See Also Layout Window: View > Redraw lakerSetAbsMode The lakerSetAbsMode command sets the viewing mode of the Layout window to the Abstract Mode. Syntax lakerSetAbsMode Returns None Examples lakerSetAbsMode See Also Layout Window: View > View Mode > Abstract View lakerSetAreaDsp The lakerSetAreaDsp command sets the area display bounding box and its view level. Laker³ Tcl Reference Manual K-2015.06 617 Chapter 7: Layout Window View Commands Syntax lakerSetAreaDsp -lowerLeft (x0,y0) -upperRight (x1,y1) [StartViewLevel StartViewLevel] [-ViewLevel ViewLevel] Returns None Arguments Argument Description -lowerLeft (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -StartViewLevel StartViewLevel Start of the view level in this area. Valid value: an integer (default=0). -upperRight (x1,y1) x1 specifies a position value for the x coordinate point while y1 specifies the value for the y coordinate point. -ViewLevel ViewLevel End of the hierarchical view level in this area. Valid value: an integer (default=49). The range of the maximum hierarchical view level is from 0 to 49. The maximum non-negative integer value is 49. Examples # set the area display on area (100,100) (110,110) # and its view level from 0 to 49 lakerSetAreaDsp -lowerLeft (100,100) -upperRight (110,110) -StartViewLevel 0 -ViewLevel 10 See Also Layout Window: View > Area Display > Set Area Display lakerSetBothViewMode The lakerSetBothViewMode command sets the viewing mode of the layout window to the Layout and Abstract Mode. Syntax lakerSetBothViewMode 618 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands Returns None Examples lakerSetBothViewMode See Also Layout Window: View > View Mode > Both View lakerSetLayoutMode The lakerSetLayoutMode command sets the viewing mode of the layout window to the Layout Mode. Syntax lakerSetLayoutMode Returns None Examples lakerSetLayoutMode See Also lakerOpenDesign lakerChgmodeDesign Layout Window: View > View Mode > Layout Mode lakerViewInsAbs The lakerViewInsAbs command sets the view type of the selected instance to the abstract view. Syntax lakerViewInsAbs Returns None Examples lakerViewInsAbs Laker³ Tcl Reference Manual K-2015.06 619 Chapter 7: Layout Window View Commands See Also Layout Window: View > View Instance > Abstract View lakerViewInsLayout The lakerViewInsLayout command sets the view type of the selected instance to the layout view. Syntax lakerViewInsLayout Returns None Examples lakerViewInsLayout See Also Layout Window: View > View Instance > Layout View lakerViewInsNormal The lakerViewInsNormal command sets the view type of the selected instance to the original view. Syntax lakerViewInsNormal Returns None Examples lakerViewInsNormal See Also Layout Window: View > View Instance > Normal 620 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands lakerViewLevel The lakerViewLevel command sets the view level by following the specified value. Syntax lakerViewLevel -level level [-startlevel startlevel] Returns None Arguments Argument Description -level level Specify the value of the view level. Valid value: an integer. -startlevel startlevel Specify the starting value of the view level. Valid value: an integer (default=0). Examples # Example 1 # Set the view level from 0 to 5 lakerViewLevel -startlevel 0 -level 5 See Also Layout Window: View > View Level > View Level lakerViewLevelDec The lakerViewLevelDec command decreases the view level in the hierarchial design by one. Syntax lakerViewLevelDec Returns None Examples # Example 1 # Decrease on current view level lakerViewLevelDec Laker³ Tcl Reference Manual K-2015.06 621 Chapter 7: Layout Window View Commands See Also Layout Window: View > View Level > View Level-1 lakerViewLevelInc The lakerViewLevelInc command increases the view level in the hierarchial design by one. Syntax lakerViewLevelInc Returns None Examples # Example 1 # Increase one current view level lakerViewLevelInc See Also Layout Window: View > View Level > View Level+1 lakerViewMark The lakerViewMark command records the specified viewing area to a *.mark file. Syntax lakerViewMark [ -load loadFile | -save saveFile | -del delitem | -delall 0|1 | -point (x1,y1)(x2,y2) [ -view 0|1 | -addkey keystr]] Returns None Arguments 622 Argument Description -load loadFile Load the view mark data from a file. -save saveFile Save the view mark data to a file. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands Argument Description -delall 0|1 Valid values: Boolean values, 0 and 1. 1 : Delete all view marks. 0 : Keep all view marks. -del delItem Delete the view mark. -point (x1,y1) (x2,y2) (x1,y1) specifies the lower left point of the viewing area while (x2,y2) specifies the upper right point. -view 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the zoom area. 0 : Disable the zoom area. -addkey keystr Add the viewing area and keystr as its comment. Examples # Example 1 # Load the view marks from the demo.mark file lakerViewMark -load demo.mark # Example 2 # Save the current view marks to the demo.mark file lakerViewMark -save demo.mark # Example 3 # Delete all marks lakerViewMark -delall 1 # Example 4 # Delete the “View_area1” view mark lakerViewMark -del View_area1 # Example 5 # Add to “View_area1” view area (0,0)(100,100) to view mark notes lakerViewMark -point (0,0)(100,100) -addkey “View_area1” # Example 6 # Zoom to the (0,0)(100,100) area lakerViewMark -point (0,0)(100,100) -view 1 See Also Layout Window: View > View Mark Laker³ Tcl Reference Manual K-2015.06 623 Chapter 7: Layout Window View Commands lakerViewPinLabelNet The lakerViewPinLabelNet command sets the display mode of pin labels to Net Name. Syntax lakerViewPinLabelNet Returns None Arguments None Examples lakerViewPinLabelNet See Also Layout Window: View > View Pin > View Pin Label > Net Name lakerViewPinLabelOff The lakerViewPinLabelOff command sets the display mode of pin labels to Off. Syntax lakerViewPinLabelOff Returns None Arguments None Examples lakerViewPinLabelOff See Also Layout Window: View > View Pin > View Pin Label > Off 624 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands lakerViewPinLabelPort The lakerViewPinLabelPort command sets the display mode of pin labels to Port Name. Syntax lakerViewPinLabelPort Returns None Arguments None Examples lakerViewPinLabelPort See Also Layout Window: View > View Pin > View Pin Label > Port Name lakerViewTopSysPin The lakerViewTopSysPin command sets the display mode of top system pins in the layout. Syntax lakerViewTopSysPin [-mode 0|1] Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show top system pins. 0 : Hide top system pins. Examples lakerViewTopSysPin Laker³ Tcl Reference Manual K-2015.06 625 Chapter 7: Layout Window View Commands See Also Layout Window: View > View Pin > View Top System Pin lakerZoomAll The lakerZoomAll command fits the current design in the layout window. Syntax lakerZoomAll Returns None Examples # Example 1 # Fit the current design in the layout window lakerZoomAll See Also Layout Window: View > Zoom All lakerZoomIn The lakerZoomIn command zooms in the view area by 1/2 of the active layout window. Syntax lakerZoomIn [-ratio ratio] Returns None Arguments 626 Argument Description -ratio ratio Specify a value to determine the size of the view area. When specified, the view area is zoomed in by 1/<value> of the active layout window. Valid value: a positive integer, greater than or equal to 2. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window View Commands Examples # Example 1 # Zoom in the view area by 1/2 of the active layout window lakerZoomIn See Also Layout Window: View > Zoom In lakerZoomInByArea The lakerZoomInByArea command zooms to a desired viewing area by specifying an area in the active layout window. Syntax lakerZoomInByArea -point (x1,y1) (x2,y2) [-refTop level] Returns None Arguments Argument Description -point (x1,y1) (x2,y2) (x1,y1) specifies the lower left point of the zoomIn area while (x2,y2) specifies the upper right point. -refTop level Specify the design hierarchy level to be referenced. Valid value: an integer, 0-49 (default=0). This argument only takes effect in the EIP (Descend) mode. It automatically transforms the input cooridinate based on the specified hierarchy level. Examples # Example 1 # Zoom to the desired viewing area (100,100) (200,200) lakerZoomInByArea -point (100,100) (200,200) # Example 2 lakerZoomInByArea -point (100,100) (200,200) -refTop 2 See Also Layout Window: View > Area Zoom Laker³ Tcl Reference Manual K-2015.06 627 Chapter 7: Layout Window Create Commands lakerZoomOut The lakerZoomOut command zooms out the view area by 1/2 of the active layout window. Syntax lakerZoomOut [-ratio ratio] Returns None Arguments Argument Description -ratio ratio Specify a value to determine the size of the view area. When specified, the view area is zoomed out by 1/<value> of the active layout window. Valid value: a positive integer, greater than or equal to 2. Examples # Example 1 # Zoom out the view area by 1/2 of the active layout window lakerZoomOut See Also Layout Window: View > Zoom Out Create Commands This section describes the Tcl commands applied to the Create commands of the Layout window. These commands include: 628 ■ lakerCreateBus ■ lakerCreateCapacitor ■ lakerCreateCircle ■ lakerCreateContact ■ lakerCreateDoughnut ■ lakerCreateEllipse Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands ■ lakerCreateFinRegion ■ lakerCreateGuardRing ■ lakerCreateInstance ■ lakerCreateMetalSlot ■ lakerCreatePath ■ lakerCreatePickedDevice ■ lakerCreatePin ■ lakerCreatePoly ■ lakerCreateRect ■ lakerCreateResistor ■ lakerCreateStackedPath ■ lakerCreateText ■ lakerCreateTransistor ■ lakerDimensionMark ■ lakerGenText ■ lakerRulerLabel lakerCreateBus The lakerCreateBus command draw a bus. Syntax lakerCreateBus -point point (x0,y0)...(xn,yn) -style pathStyle -pattern {number {{width [layer purpose] colorName 0|1} ...} {spacing ...} } Returns None Laker³ Tcl Reference Manual K-2015.06 629 Chapter 7: Layout Window Create Commands Arguments Argument Description -pattern {number {{width [layer purpose] {colorName 0|1}} ...} {spacing ...} } Specify the number of buses and the repeated pattern of the layer (width), color attributes, and spacing as follows: ■ ■ ■ ■ ■ ■ ■ number: Specifies the number of buses. width: Specifies the width of the drawing path. layer: Specifies the layer of the drawing path (default=current). purpose: Specifies the purpose of the layer (default=drawing). colorName: Specifies the color of the shape. 0|1: Specifies the shape’s lock status. spacing: Specifies the spacing between paths. -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -style pathStyle Specify the path style. Valid values: Truncate, Extend, Round, and Variable -beginExt value -endExt value (default=Truncate). Examples # Example 1 lakerCreateBus -point \ (-11.705,11.26) (-2.535,11.26) (-2.535,7.035)\ -style Extend -pattern \ {10 {0.1 {0.1 OD} {0.5 MET1 drawing} {0.2 VIA2} 0.3} {0.1 0.2 0.5}} # Example 2 lakerCreateBus -point (0.185,1.01) (7.56,1.01) \ (7.56,7.56) (12.67,7.56) -pattern \ {10 {0.1 {0.1 OD} {0.5 MET1 drawing} {0.2 VIA2} 0.3} {0.1 0.2 0.5}} See Also Layout Window: Create > Bus lakerCreateCapacitor The lakerCreateCapacitor command returns a dbFigId if the specified capacitor can be created. 630 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Syntax lakerCreateCapacitor -device deviceName -point (x0,y0) value value [-contType contType [-metEncCo metEncCo metWidth metWidth -unitDist unitDist]] [-inst instName] [-orient orientation] [-magni magnification] [-pattern pattern] [-cutDist cutDist] [-originOffset xOffset yOffset] [-dummyCapValue dummyCapValue] [-xRepeat xRepeat] [-yRepeat yRepeat] [-unitSpaceX unitSpaceX] [unitSpaceY unitSpaceY] [-unitValue unitValue] [unitWidth unitWidth] [-useMaskResolution 0|1] [-xCoSpace spacing_in_x_direction] [-yCoSpace spacing_in_y_direction] Returns A dbFigId if successful; otherwise, returns nothing. Arguments Argument Description -contactMode contact_mode Specify the contact mode. Valid values: normal, and cross (default=normal). -contType contType Specify the contact type. Valid values: maximum or contactArray (default=maximum). maximum : Insert a maximum number of contacts.contactArray : Insert a contact array with the number of columns and rows, such as contactArray [column_number] [row_number]. This is only valid for square-type capacitors. -cutDist cutDist Cut distance for capacitor corners. Valid value: a positive floating number (default=0.0). -device deviceName Specify the name of capacitor devices. -dummyCapValue dummyCapValue Specify the capacitance (in pF) of dummy capacitors. -inst instName Specify the instance name (default=system-assigned). -magni magnification View size is printed compared with a real chip size. Valid value: a positive floating number (default=1.0). Laker³ Tcl Reference Manual K-2015.06 631 Chapter 7: Layout Window Create Commands Argument Description -metEncCo metEncCo Specify the enclosure distance between the metal and contact layers (for Cross contact mode only). 632 -metWidth metWidth Specify the width of Metal layer shapes that connect cross type contacts (for Cross contact mode only). -orient orientation Specify the orientation of capacitors. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -originOffset xOffset yOffset xOffset is the offset value from the point x0 while yOffset is the offset value from the point y0. The origin of MCell instances is calculated by (x0+xOffset, y0+yOffset). -pattern pattern Specify the capacitor pattern. Valid values: patternA, patternB, patternC, and patternD (default=patternA). -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -unitDist unitDist Specify the unit distance of the cross contact array structure (for Cross contact mode only). -unitSpaceX unitSpaceX Specify the horizontal spacing between unit capacitors. Valid value: a positive floating number. -unitSpaceY unitSpaceY Specify the vertical spacing between unit capacitors. Valid value: a positive floating number. -unitValue unitValue Specify the unit capacitance in pF. Valid value: a positive floating number. -unitWidth unitWidth Specify the width (in microns) of unit capacitors. Valid value: a positive floating number. -useMaskResolution 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use the Mask/General resolution. 0 : Use the MCell resolution. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -value value Specify the capacitor value. The equation is defined in the technology file. Valid value: a positive floating number. -width width Specify the width of capacitors. -xCoSpace Specify the contact spacing in X direction when the contact type is contactArray or maximum. The spacing_in_x_direction spacing_in_x_direction is in user units. -xRepeat xRepeat Specify the number of capacitors in x-direction. Valid value: a positive integer. -yCoSpace Specify the contact spacing in Y direction when the contact type is contactArray or maximum. The spacing_in_y_direction spacing_in_y_direction is in user units. -yRepeat yRepeat Specify the number of capacitors in y-direction. Valid value: a positive integer. Examples # Example 1 # The origin of this capacitor is (23.76,-11.41) lakerCreateCapacitor -point (23.26,-11.91) \ -originOffset 0.5 0.5 -device PCAP -value 100.0 \ -metEncCo 0.8 -unitDist 5.0 -metWidth 1.2 -pattern patternB # Example 2 # Create 2x1 unit capacitors with dummy capacitors. Each unit is # 1.0pF, distance between units is 1 micron and dummy is 0.5pF. lakerCreateCapacitor -point (147.3,-146.725) -device PCAP \ -metEncCo 0.35 -unitDist 2.000000 -metWidth 0.5 \ -pattern patternA -xRepeat 2 -yRepeat 1 -unitValue 1.0 \ -unitSpaceX 1.0 -unitSpaceY 1.0 -dummyCapValue 0.5 # Example 3 # Same as Example 2 but no dummy capacitors lakerCreateCapacitor -point (147.3,-146.725) -device PCAP \ -metEncCo 0.35 -unitDist 2.000000 -metWidth 0.5 \ -pattern patternA -xRepeat 2 -yRepeat 1 -unitValue 1.0 \ -unitSpaceX 1.0 -unitSpaceY 1.0 Laker³ Tcl Reference Manual K-2015.06 633 Chapter 7: Layout Window Create Commands # Example 4 # Create an PCAP capacitor with patternA type, and which # has 10x10 contacts with spacing in X direction 1.0 and spacing # in Y direction 1.5 on CAP1 layer. The spacing of contacts on CAP2 # layer is the maximum of spacing_in_x_direction and spacing # in_y_direction. lakerCreateCapacitor -point (-2.62,-9.64) -useMaskResolution 0 \ -device PCAP -value 36.903320 -width 10.000000 -cutDist 1.0 \ -metEncCo 0.35 -unitDist 2.000000 -metWidth 0.5 \ -pattern patternA -contactType contactArray 10 10 \ -xConSpace 1.0 -yConSpace 1.5 See Also Layout Window: Create > Capacitor lakerCreateCircle The lakerCreateCircle command returns a dbFigId if the specified circle shape can be created. Syntax lakerCreateCircle -point (x0,y0) -radius radius [-layerName layerName [-purpose purpose]] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. Arguments 634 Argument Description -colorName colorName Specify the color name. Valid value: a string. -layerName layerName Specify the layer name (default=the active layer). -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -point (x0,y0) x0 specifies a center value for the x coordinate point while y0 specifies the value for the y coordinate point. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -purpose purpose Specify the purpose name (default=drawing). -radius radius Specify the radius of the circle. Examples lakerCreateCircle -layerName poly -purpose drawing \ -point (0,0) -radius 10.5 See Also Layout Window: Create > Conics > Circle lakerCreateContact The lakerCreateContact command returns a dbFigId if the specified contact device can be created. Syntax To create contact in a regular way: lakerCreateContact -device deviceName -point (x0,y0) -width width -length length -xSpace xSpace -ySpace ySpace xLay1Enc xLay1Enc -yLay1Enc yLay1Enc -xLay2Enc xLay2Enc -yLay2Enc yLay2Enc [-xRepeat xRepeat] [-yRepeat yRepeat][-inst instName] [-orient orientation] [originOffset xOffset yOffset] [-viaGroup mode] [-param parameters] [-updateAs 0|1] [-autoPoint (x1,y1) (x2,y2)] [-sameNetOnly 0|1] [-sameMetWidth 0|1] [-split 0|1] [nonOverlapVia 0|1] [-routeStatus routeStatus] [routeParam attributeList] [-routeType routeType] To create auto contact in the route library: lakerCreateContact [-autoPoint (x1,y1) (x2,y2) [-fill 0|1] [-sameMetWidth 0|1] [[-atLeastOne 0|1] | [-minContact contNumber] [-direction direction] [-minEnclosureSet 0|1] [-align justification]] [-contMode contMode] [autoContNum autoContNum] [-routeStatus routeStatus] [layerSeparateStackVia layerName [purposeName]] [routeParam attributeList] [-routeType routeType]] Returns A dbFigId if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 635 Chapter 7: Layout Window Create Commands Arguments 636 Argument Description -align justification Specify the justification for minimum contact creation. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=CenterCenter). -autoContNum autoContNum Specify the number of contacts to be created in the Auto Contact mode. Valid values: maximum and single (default=maximum). -autoPoint (x1,y1) (x2,y2) (x1,y1) (x2,y2) indicate the dragging rectangle when creating contacts automatically. -atLeastOne 0|1 Valid values: Boolean values, 0 and 1 (default=1). This argument is used for the Auto Contact mode only. 1: Generate contacts on the overlapping area regardless of the area width. 0: No contact is generated if the area is too small to contain a contact. -contMode contMode Specify the relation of shapes for cut layers. Valid values: centerAlign and maximum (default=maximum). centerAlign : The center of the cut layer is aligned. maximum : Each cut layer is independent and the number of rows/columns for each cut layer is as large as possible. -device deviceName Specify the name of contact devices. The device name can be StackVia for stack vias, or viaStacking for via stackings. -direction direction Specify a direction for minimum contact creation. Valid values: horizontal and vertical (default=horizontal). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -fill 0|1 This argument is used for auto contact mode only. Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Fill Overlapped Metal option. 0 : Disable the Fill Overlapped Metal option. -inst instName Specify the instance name (default=systemassigned). -layerSeparateStackVia layerName [purposeName] Specify the layer to separate a stack via by assigning layerName [purposeName], where purposeName is optional. The default purpose name is drawing. -length length Specify the cutting length of contacts. -minContact contNumber Specify the number of contacts to be generated when the overlapped metal area or the selected area is smaller than the contact area. This argument is used for the Auto Contact mode and it works for rectangular overlapped areas only. If it is specified, -atLeastOne is ignored. -minEnclosureSet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Min Enclosure Set option. 0 : Disable the Min Enclosure Set option. -nonOverlapVia 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Allow non-overlapping contacts/vias. 0 : Allow overlapping contacts/vias. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -originOffset xOffset yOffset xOffset is the offset value from the point x0 while yOffset is the offset value from the point y0. The origin of MCell instances is calculated by (x0+xOffset, y0+yOffset). Laker³ Tcl Reference Manual K-2015.06 637 Chapter 7: Layout Window Create Commands 638 Argument Description -param parameters Specify the parameter list. Each parameter includes the device name, the number of columns, the number of rows, the contact width, the contact length, the align type (m for maximum type), optional parameters for the width and height of the bottom layer, the horizontal spacing between contact layers, the vertical spacing between contact layers, the horizontal enclosure distance between the contact layer and the first connected layer, the vertical enclosure distance between the contact layer and the first connected layer, the horizontal enclosure distance between the contact layer and the second connected layer, the vertical enclosure distance between the contact layer and the second connected layer, the align type (c for align center, other for no align center), the horizontal distance between the leftmost contact’s center of the current contact layer and the first contact layer, the vertical distance between the leftmost contact's center of the current contact layer and the first contact layer. -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -routeParam attributeList Specify the list of attributes for the modified element of route objects. The format is {elementIndex {attrKey attrValue} ...}. Some attributes for path and via elements are illustrated in lakerAttribute. -routeType routeType Specify the route type. -sameMetWidth 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Force each metal layer to be the same size. 0 : Do not force each metal layer to be the same size. Valid values: none, ring, padRing, blockRing, stripe, followPin, IOWire, coreWire, and blockWire (default=none). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -sameNetOnly 0|1 This argument is used for auto contact mode only. Valid values: Boolean values, 0 and 1 (default=0). 1: Generate contacts for the overlapped area with the same net. 0: Generate contacts on all overlapped areas. -split 0|1 This argument is used for auto contact mode only. Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Split Contact Device option. 0 : Disable the Split Contact Device option. -updateAs 0|1 This argument is used for manual create mode only. Valid values: Boolean values, 0 and 1 (default=0). 1: Set CreateContactUpdateAs=TRUE and save the setting to the laker.rc resource file. 0: Set CreateContactUpdateAs=FALSE and save the setting to the laker.rc resource file. -viaGroup mode Specify the via group for auto contact creation. Valid values: MCell, and RouteVia. If -viaGroup MCell is specified and the MCell contact device definition exists in the technology file, contacts are created based on the MCell contact device definition. If -viaGroup RouteVia is specified and the standard via definition exists in the technology file, contacts are created based on the standard via definition. -width width Specify the cutting width of contacts. -xLay1Enc xLay1Enc Specify the horizontal enclosure distance between the contact layer and the first connected layer. -xLay2Enc xLay2Enc Specify the horizontal enclosure distance between the contact layer and the second connected layer. -xRepeat xRepeat Specify the number of columns for contact arrays. Valid value: an integer (default=1). -xSpace xSpace Specify the horizontal spacing between contact layers. Laker³ Tcl Reference Manual K-2015.06 639 Chapter 7: Layout Window Create Commands Argument Description -yLay1Enc yLay1Enc Specify the vertical enclosure distance between the contact layer and the first connected layer. -yLay2Enc yLay2Enc Specify the vertical enclosure distance between the contact layer and the second connected layer. -yRepeat yRepeat Specify the number of rows for contact arrays. Valid value: an integer (default=1). -ySpace ySpace Specify the vertical spacing between contact layers. Examples # Example 1 # The origin of this contact device becomes (0.3,10.5) lakerCreateContact -point (-0.2,10) -originOffset 0.5 0.5 \ -device M1_P1 -yRepeat 1 -xSpace 0.4 -ySpace 0.4 -length 0.4 \ -width 0.4 -xLay1Enc 0.15 -yLay1Enc 0.15 -xLay2Enc 0.15 \ -yLay2Enc 0.15 # Example 2 # Create a 2x3 contact device with M1_PDIFF type lakerCreateContact -point (-2.03,3.005) -device M1_PDIFF -param \ {M1_PDIFF 2 3 0.4 0.4 0.4 0.4 0.15 0.15 0.15 0.15 0 0.0 0.0 } # Example 3 # Create a 2x3 stack via from P1 to M3 with align center # and no offset lakerCreateContact -point (-6.48,1.67) -device StackVia -param \ { M1_P1 2 3 0.45 0.45 0.45 0.45 0.15 0.15 0.15 0.15 0 0.0 0.0 } \ { M1_M2 2 3 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 c 0.0 0.0 } \ { M2_M3 2 3 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 c 0.0 0.0 } # Example 4 # Create a 2x3 stack via from P1 to M3 with no align center # and no offset lakerCreateContact -point (-4.325,2.74) -device StackVia -param \ { M1_P1 2 3 0.45 0.45 0.45 0.45 0.15 0.15 0.15 0.15 0 0.0 0.0 } \ { M1_M2 2 3 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 0 0.0 0.0 } \ { M2_M3 2 3 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 0 0.0 0.0 } # Example 5 # Create auto contact with device = M1_P1 inside # the bounding box, (-7.875,-1.97) (14.025,12.885) lakerCreateContact -autoPoint (-7.875,-1.97) (14.025,12.885) \ -point (-5.05,1.175) -device M1_P1 -param \ { M1_P1 20 12 0.4 0.4 0.4 0.4 0.15 0.15 0.15 0.15 0 0.0 0.0 } 640 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands # Example 6 # If the device name is "Auto", no "-param" parameter is needed. # The program automatically finds the matched contact devices # and create contacts inside the bounding box, # (-7.815,-1.495) (14.0,11.88) lakerCreateContact -autoPoint (-7.815,-1.495) (14.0,11.88) \ -device Auto # Example 7 lakerCreateContact -autoPoint (-763.065,-5411.435) \ (210.91,-4445.61) -sameNetOnly 1 -device Auto # Example 8 lakerCreateContact -autoPoint (2.85,-4.08) (5.395,-1.805) \ -atLeastOne 0 -device Auto # Example 9 lakerCreateContact -point (3.443,1.755) -device viaStacking1 \ -sameMetWidth 1 -param \ { M1_P1 0 0 0.4 0.4 0.4 0.4 0.15 0.15 0.15 0.15 c 0.0 0.0 3.0 4.0 } \ { M1_M2 0 0 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 c 0.0 0.0 3.0 4.0 } \ { M2_M3 0 0 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 c 0.0 0.0 3.0 4.0 } # Example 10 lakerCreateContact -autoPoint (0,0) (100,100) -device Auto \ -split 1 See Also Layout Window: Create > Contact lakerCreateDoughnut The lakerCreateDoughnut command returns a dbFigId if the specified doughnut shape can be created. Syntax lakerCreateDoughnut -point (x0,y0) -inner r1 -outer r2 [layerName layerName [-purpose purpose]] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 641 Chapter 7: Layout Window Create Commands Arguments Argument Description -colorName colorName Specify the color name. Valid value: a string. -inner r1 Specify the inner radius of doughnuts. -layerName layerName Specify the layer name (default=the active layer). -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -outer r2 Specify the outer radius of doughnuts. -point (x0,y0) x0 specifies a center value for the x coordinate point while y0 specifies the value for the y coordinate point. -purpose purpose Specify the purpose name (default=drawing). Examples lakerCreateDoughnut -layerName poly -purpose drawing \ -point (0,0) -inner 10.5 -outer 20 See Also dbCreateDoughnut Layout Window: Create > Conics > Doughnut lakerCreateEllipse The lakerCreateEllipse command returns a dbFigId if the specified ellipse shape can be created. Syntax lakerCreateEllipse -point (x1,y1) (x2,y2) [-layerName layerName [-purpose purpose]] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. 642 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Arguments Argument Description -colorName colorName Specify the color name. Valid value: a string. -layerName layerName Specify the layer name (default=the active layer). -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -point (x1,y1)(x2,y2) (x1,y1) specifies the lower left corner of the ellipse while (x2,y2) specifies the upper right corner. -purpose purpose Specify the purpose name (default=drawing). Examples lakerCreateEllipse -layerName poly -purpose drawing \ -point (0,0) (10,10) See Also Layout Window: Create > Conics > Ellipse lakerCreateFinRegion The lakerCreateFinRegion command creates fin regions by honoring the tfWideAlignments definition in the technology file section lakerLayerRule. Syntax lakerCreateFinRegion -layerName layerName -purpose purpose -point (x1,y1) (x2,y2) (x3,y3) (x4,y4) Returns None Arguments Argument Description -layerName layerName Specify the name of the boundary layer. Laker³ Tcl Reference Manual K-2015.06 643 Chapter 7: Layout Window Create Commands Argument Description -point (x1,y1) (x2,y2) (x3,y3) (x4,y4) (x1,y1) specifies the lower left corner of the boundary, (x2,y2) specifies the upper left corner, (x3,y3) specifies the upper right corner, and (x4,y4) specifies the lower right corner. -purpose purpose Specify the purpose of the boundary layer. Examples lakerCreateFinRegion -layerName FINFET2 -purpose boundary \ -point (-0.2,-0.19) (-0.2,0.49) (0.288,0.49) (0.288,-0.19) See Also Layout Window: Create > Fin Region lakerCreateGuardRing The lakerCreateGuardRing command returns a dbFigId if the specified guard ring can be created. Syntax lakerCreateGuardRing -device deviceName -point (x0,y0) (centerLine centerLine | -mode select [-fitRect 0|1]) [rows rows] [-inst instName] [-orient orientation] [-magni magnification] [-impEnc impEnc] [-useMaskResolution 0|1] [-originOffset xOffset yOffset] [-bodyWidth floatValue] [-contMode contMode] [-topLayer layerName] [createCornerContact 0|1] [-contactDevice $deviceName] [sameMetWidth 0|1] [-SameAsBodyWidth 0|1] [-globalRule $rule_name] [-rectContactStyle 0|1] [-bboxSpace spacingValue | -layerSpace {GRLayerName GRPurposeName RefLayerName RefPurposeName spacingValue} +] [layerSetting {layerName purposeName enable | disable rectangle | fillNotch | none | fillHole} {value1 value2} +] [-plugInParam {{$paramName $paramValue}[{$paramName $paramValue} +]}] Returns A dbFigId if successful; otherwise, returns nothing. 644 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Arguments Argument Description -bboxSpace spacingValue Specified with -mode select only. Specify the spacing between the bounding box of selected objects and the guard ring’s boundary. -bodyWidth floatValue Specify the body width of guard rings. The number of contact rows is determined by the body width and contact spacing. Valid value: a positive floating number. -centerLine centerLine (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array of the center line while y0...yn specify the y coordinate. -contactDevice $deviceName Specify the contact device name. -contMode contMode Specify the contact mode. Valid values: normal and stackVia (default=normal). -createCornerContact 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Create corner contacts. 0 : Do not create corner contacts. -device deviceName Specify the name of guard ring devices. Valid values: PGR, NGR, TGR, and Auto. -fitRect 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Fit to Rectangle option. 0 : Disable the Fit to Rectangle option. -globalRule $rule_name Specify the global rule (default=default, which indicates the default rule). -impEnc impEnc Specify the enclosure distance between Imp and Body layers. -inst instName Specify the instance name (default=systemassigned). Laker³ Tcl Reference Manual K-2015.06 645 Chapter 7: Layout Window Create Commands Argument Description -layerSetting {layerName purposeName enable|disable rectangle|fillNotch|none|fillHole} {value1 value2}+ ■ ■ ■ ■ ■ ■ enable or disable enables or disables the specified layer, and rectangle, fillNotch, none, or fillHole sets the extend type of that layer. The parameter set {layerName purposeName enable|disable rectangle|fillNotch|none|fillHole} is ignored if the specified layer is disabled (setting generate off and control off in the technology file). enable or disable is ignored if the layer is locked (setting control off in the technology file). rectangle, fillNotch, none, or fillHole is ignored if this layer is set to be disable. {value1 value2} sets the enclosure distance between preserved option layers (Imp, L1-L9) and the body layer. The layers without layer editing parameters use the default value defined in the technology file. -layerSpace {GRLayerName Specified with -mode select only. GRPurposeName Specify the spacing between GR and Ref layers RefLayerName individually. RefPurposeName spacingValue} + -magni magnification View size is printed compared with a real chip size. Valid value: a positive floating number (default=1.0). -mode select Create guard rings automatically enclosing the selected objects. -plugInParam {{$paramName $paramValue}[{$paramName $paramValue} +]} Define a list of parameters for MCell callbacks. ■ ■ 646 $paramName: Specify the parameter name, which is defined in params of the callBack section. $paramValue: Specify the parameter value for the corresponding $paramName. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -originOffset xOffset yOffset xOffset is the offset value from the point x0 while yOffset is the offset value from the point y0. The origin of the MCell instance is calculated by (x0+xOffset, y0+yOffset). -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -rectContactStyle 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Rectangle Contact Style option. 0 : Disable the Rectangle Contact Style option. -ring rings Specify the number rings to be added when the -device auto option is specified. -rows rows Specify the number of rows for cutting array of contacts. Valid value: an integer (default=1). -SameAsBodyWidth 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Force M1 width to be the same as the body width. 0 : M1 width may not be the same as the body width. -sameMetWidth 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enlarge all metal layers to fit all contacts/vias and metal rules. 0 : Do not enlarge all metal layers. -topLayer layerName Specify the top layer is selected from one of the metal layers defined in the technology file. This argument is valid only if -contMode stackVia is specified. Laker³ Tcl Reference Manual K-2015.06 647 Chapter 7: Layout Window Create Commands Argument Description -useMaskResolution 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use the Mask/General resolution. 0 : Use the MCell resolution. Examples # Example 1 # The origin of this guard ring is (1.24,3.02) lakerCreateGuardRing -point (0.74,2.52) -device TGR \ -originOffset 0.5 0.5 \ -centerLine (0.74,2.52) (15.84,2.52) (15.84,-5.36) \ (-9.66,-5.36) (-9.66,10.23) # Example 2 lakerCreateGuardRing -mode select -device auto -ring 2 \ -conSpace 0.5 # Example 3 lakerCreateGuardRing -mode select -device TGR -rows 2 \ -conSpace 0.800000 -impEnc 0.350000 \ -layerSpace {{OD drawing} {POLY drawing} 0.45} \ {{MET1 drawing} {MET1 drawing} 0.45} \ {{OD drawing} {OD drawing} 0.6} -layerSetting \ { PP drawing enable none } See Also Layout Window: Create > Guard Ring lakerCreateInstance The lakerCreateInstance command returns a dbFigId if the specified instance or array cell can be created. Syntax lakerCreateInstance -cell cellName -point (x0,y0) [-lib libName] [-inst instName] [-orient orientation] [justification justification] [-rowSpace rowSpace colSpace colSpace [-rows rowsNo] [-cols colsNo]] [-view viewName] [-param $param] [-reEval 0|1] Returns A dbFigId if successful; otherwise, returns nothing. 648 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Arguments Argument Description -cell cellName Specify the instance cell. -cols colsNo Specify the number of instance columns. Valid value: an integer (default=1). -colSpace colSpace Specify the number of instances for y coordinate spacing. -inst instName Specify the instance name (default=system-assigned). -justification justification Specify the instance justification. Valid values: UL, CL, LL, UC, CC, LC, UR, CR, LR, and Origin. -lib libName Specify the library database. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -param $param Specify the variable parameters ($param), which consist of pairs of a name and value, for example: {pd {1.15u}}. -point (x0,y0) Specify the reference point of Justification. x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -reEval 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Re-evaluate and update the existing device. 0: Do not re-evaluate the existing device. -rows rowsNo Specify the number of instance rows. Valid value: an integer (default=1). -rowSpace rowSpace Specify the number of instances for the x coordinate spacing. -view viewName Laker³ Tcl Reference Manual K-2015.06 Specify the view name for the specified cell (default=layout). 649 Chapter 7: Layout Window Create Commands Examples # Example 1 lakerCreateInstance -point (8.65,5.82) -cell in01d1 # Example 2 lakerCreateInstance -point (8.65,5.82) -lib y1 \ -cell in01d1 -rows 2 -cols 3 -rowSpace 21.3 -colSpace 5.5 # Example 3 lakerCreateInstance -point (25.079,1.511) -cell xtr \ -lib device_lib -view symbolic # Example 4 lakerCreateInstance -point (-0.45,0.915) -cell nch -lib N1 \ -view layout -param {drawDnw FALSE} {tieL {35n}} {tieW {20n}} \ {vshareSD {None}} {sb {17n}} {sa {17n}} {nrd {0.5}} {nrs {0.5}} \ {pd {75n}} {ps {75n}} {ad {3.5e-14}} {as {3.5e-14}} \ {POshrink {(0 0 0)}} {SDshrink {(0 0 0 0 0)}} {RdiffExt {0}} \ {LdiffExt {0}} {fingers_SP_INC {0}} {w {20n}} {l {6n}} See Also Layout Window: Create > Instance lakerCreateMetalSlot The lakerCreateMetalSlot command creates slot shapes on wide wires. Besides, All rules may also be maintained in the user's own laker.ms file. Syntax To create slots: lakerCreateMetalSlot -action create -mode mode -slotCell slotCellName (-switch ruleName | -ruleDef modifiedRules) [-ignore 0|1] [-rotateSlots 0|1] [-mergeLayer {layer purpose}] [-area bboxSet] [-toViewLevel | -toMaxLevel] To change a rule switch: lakerCreateMetalSlot -action change -switch ruleName To create and save a rule set: lakerCreateMetalSlot -action save -switch ruleName -ruleDef modifiedRules Returns None 650 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Arguments Argument Description -action action Specify the action type. Valid values: create, change, and save. create : Create slot shapes.change : Change a rule set.save : Save a new rule set to the laker.ms file. -area bboxSet Specify the bounding boxes. This option is only used with mode area. -ignore 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Ignore Existing Slot Instances option. 0 : Disable the Ignore Existing Slot Instances option. -mergeLayer {layer purpose} Specify the layer and purpose of the merger layer to connect end edges. -mode mode Specify the action mode. Valid values: cell, and area.cell : Create slot shapes on whole cell view.area : Create slot shapes on the bounding boxes specified by the -area option. -rotateSlots 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Rotate Square Slots in Diagonal Metal option. 0 : Disable the Rotate Square Slots in Diagonal Metal option. -ruleDef modifiedRules Specify the modified rule values. -slotCell slotCellName Specify the cell that stores all slot shapes created in this feature. -switch ruleName Assign the rule set name (defined in the technology file) for metal slotting to be adopted to. This option can be assigned with -ruleDef when creating a new rule set. -toMaxLevel Set the traverse depth for slot shape creation. If this option is set, this function works on all design data. -toViewLevel Set the traverse depth for slot shape creation. If this option is set, this function works on the design data from top level to the current view level. This option is set by default. Laker³ Tcl Reference Manual K-2015.06 651 Chapter 7: Layout Window Create Commands Examples # Example 1 # Create slot shapes in cell mode with rule set, al_process lakerCreateMetalSlot -action create -switch al_process \ -toViewLevel -ignore 0 -slotCell CellMode -mode cell # Example 2 # Create slot shapes # and modified rules lakerCreateMetalSlot -slotCell SelectMode -ruleDef {slotLength in select mode with action rule set -action create -toViewLevel -ignore 0 \ -mode select \ 100.0 20.0 60.0} # Example 3 # Create slot shapes in area mode with rule set, al_process lakerCreateMetalSlot -action create -switch al_process -toMaxLevel -ignore 1 -slotCell AreaMode -mode area \ -area (1698.65,3142.28) (2190.22,3617.98) \ (1696.67,2295.91) (2206.07,2753.78) # Example 4 # Change rule set to al_process lakerCreateMetalSlot -action change -switch al_process # Example 5 # Save modified rules to rule set, al_process, in "laker.ms" lakerCreateMetalSlot -action save -switch al_process \ -ruleDef {slotLength 100.0 20.0 60.0} # Example 6 # Rotate the square slots in diagonal metal lakerCreateMetalSlot -action create -switch checker \ -toViewLevel -ignore 0 -rotateSlots 0 -slotCell LakerMetalSlot \ -mode select # Example 7 # Do not rotate the square slots in diagonal metal lakerCreateMetalSlot -action create -switch checker \ -toViewLevel -ignore 0 -rotateSlots 1 -slotCell LakerMetalSlot \ -mode select # Example 8 # Specify the merger layer to decide the connected end edge lakerCreateMetalSlot -action create -switch checker \ -toViewLevel -ignore 0 -mergeLayer {MT1 drawing} \ -slotCell LakerMetalSlot -mode select See Also Layout Window: Create > Metal Slot 652 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands lakerCreatePath The lakerCreatePath command returns a dbFigId if the specified path shape, wire with contact or bus can be created. Syntax lakerCreatePath -point point -width pathWidth [contWidth] [-layerName layerName [-purpose purpose]] [-style pathStyle] [-busNo busNo -pitch pitch -via2via via2via [-push segmentNo] [-pathStartPos pathStartPos]] [contactPos contactPos -cell cellName -rows rowsNo -cols colsNo -yDist yDist -xDist xDist -length length -justify justification [-busAlignStyle busAlignStyle] [-router snapmode [-onGrid 0|1]]] [-net netName] [-useDropVia] [commitDropVia] [-globalRule $rule_name] [-routeParam attributeList] [-viaGroup mode] [-routeStatus routeStatus] [-routeType routeType] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. Arguments Argument Description -busAlignStyle busAlignStyle Specify the bus alignment style. Valid values: line, saw, inc, and dec (default=saw). -busNo busNo Specify the number of buses. Valid value: an integer (default=1). -cell cellName Specify the cell to be renamed. -colorName colorName Specify the color name. Valid value: a string. -cols colsNo Specify the number of instance columns. Valid value: an integer. -commitDropVia Execute the dropping via action. -contactPos contactPos (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the center position of contacts while y0...yn specify the y coordinate. Laker³ Tcl Reference Manual K-2015.06 653 Chapter 7: Layout Window Create Commands Argument Description -globalRule $rule_name Specify the global rule (default=default, which indicates the default rule). -justify justification Specify the justification of contacts. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight. -layerName layerName Specify the layer name (default=the active layer). -length length Specify the cutting length of contacts. -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -net netName Specify the net name of the path to be created. The net name is not assigned if -net is not specified. -onGrid 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : The drawing points must be on-grid. 0 : The drawing points may be off-grid. -pathStartPos pathStartPos (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the start of the bus position while y0...yn specify the y coordinate. -pitch pitch Specify the spacing between the path centerlines. Valid value: a floating number. 654 -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -purpose purpose Specify the purpose name (default=drawing). -push segmentNo Enable the push-wire function and start pushing from the number of path segments specified. Valid value: an integer, greater than 0. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -routeParam attributeList Specify the list of attributes for the modified element of route objects. The format is {elementIndex {attrKey attrValue} ...}. Some attributes for path and via elements in lakerAttribute. -router snapmode Create connection paths with Auto Route mode, where the snap mode may be one of the following: ■ ■ ■ ■ auto: The path is automatically decided by the router. orthogonal: The target point aligns to the source point horizontally or vertically, depending on the larger direction offset. xFirst: The router creates horizontal paths from the start point first. yFirst: The router creates vertical paths from the start point first. -routeStatus routeStatus Specify the route status. Valid values: Fixed, Routed, and Cover (default=Fixed). -routeType routeType Specify the route type. -rows rowsNo Specify the number of instance rows. Valid value: an integer. -style pathStyle Specify the path style. Valid values: Truncate, Extend, Round, and Variable -beginExt value -endExt value (default=Truncate). -useDropVia Adopt via dropping at the same net intersection. -via2via via2via Specify the spacing for the center of the contact position to another between two paths. Valid value: a floating number. Laker³ Tcl Reference Manual K-2015.06 Valid values: none, ring, padRing, blockRing, stripe, followPin, IOWire, coreWire, and blockWire (default=none). 655 Chapter 7: Layout Window Create Commands Argument Description -viaGroup mode Specify the via group for auto contact creation. Valid values: MCell and RouteVia. If -viaGroup MCell is specified and the MCell contact device definition exists in the technology file, contacts are created based on the MCell contact device definition. If -viaGroup RouteVia is specified and the standard via definition exists in the technology file, contacts are created based on the standard via definition. -width pathWidth [contWidth] Specify the path width and cutting width of contacts. Valid value: a floating number. -xDist xDist Specify the number of instances for the y coordinate spacing. -yDist yDist Specify the number of instances for the x coordinate spacing. Examples # Example 1 lakerCreatePath -layerName poly -purpose drawing \ -point (0,0) (10,10) (25,20) (30,-35) -width 0.6 # Example 2 lakerCreatePath -router auto -layerName MET1 \ -point (-6.12,4.58) (-12.17,-2.20) -width 0.350000 # Example 3 lakerCreatePath -router auto -onGrid 1 -layerName MET1 \ -point (-6.12,4.58) (-12.17,-2.20) -width 0.350000 # Example 4 lakerCreatePath -push 1 -layerName MET1 \ -point (1.62,4.23) (1.62,8.76) (11.27,8.76) -width 0.5 0.0 # Example 5 lakerCreatePath -layerName poly -purpose drawing -point \ (0,0) (10,10) (25,20) (30,-35) -width 0.6 -net VDD 656 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands # Example 6 lakerCreatePath -contactPos (145.542,-88.091) \ -busAlignStyle saw -device M1_M2 -param \ {M1_M2 1 1 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 0 0.0 0.0 } \ -layerName MET2 -point (88.649,-87.841) (145.792,-87.841) \ -width 0.600000 0.500000 -net net1 -useDropVia lakerCreatePath -contactPos (145.542,-131.402) \ -busAlignStyle saw -orient MXR90 -device M1_M2 -param \ {M1_M2 1 1 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 0 0.0 0.0 } \ -pathStartPos (145.792,-87.841) -layerName MET1 -point \ (145.792,-87.841) (145.792,-131.152) -width 0.500000 0.500000 \ -net net1 -useDropVia lakerCreatePath -pathStartPos (145.792,-131.152) \ -layerName MET2 -point (145.792,-131.152) (92.083,-131.152) \ -width 0.600000 0.000000 -net net1 -useDropVia lakerCreatePath -commitDropVia # Example 7 lakerCreatePath -routeParam {0 {layerName METAL1} \ {purpose drawing} {points (-1.48,4.255) (2.19,4.255)} \ {width 0.5} {beginStyle Truncate} {endStyle Truncate}} # Example 8 # Create a path object with color attribute lakerCreatePath -pathStartPos (145.792,-131.152) \ -layerName MET2 -point (145.792,-131.152) (92.083,-131.152) \ -width 0.6 0.0 -net net1 -useDropVia -color ColorA -lock 0 # Example 9 # Create a route object with color attribute lakerCreatePath -routeParam \ {0 {layerName METAL1} {purpose drawing} \ {points (-1.48,4.255) (2.19,4.255)} {width 0.5} \ {beginStyle Truncate} {endStyle Truncate}} {color ColorA} {lock 0} See Also dbCreatePath Layout Window: Create > Path lakerCreatePickedDevice The lakerCreatePickedDevice command creates picked devices from the schematic. Laker³ Tcl Reference Manual K-2015.06 657 Chapter 7: Layout Window Create Commands Syntax lakerCreatePickedDevice -point (x,y) [-viewList {listName}] [-spacing value] [-MFactor {MFacotrName}] [-instName 0|1] [-connectivity 0|1] Returns None Arguments Argument Description -connectivity 0|1 Valid values: Boolean values, 0 and 1. 1 : Keep the connectivity from schematic. 0 : Do not keep the connectivity from schematic. -instName 0|1 Valid values: Boolean values, 0 and 1. 1 : Keep the instance name from schematic. 0 : Do not keep the instance name from schematic. -MFactor {MFacotrName} Specify the priority to search M-factor names. -point (x,y) x specifies the x coordinate while y specifies the y coordinate. -spacing value Specify the spacing between devices. -viewList {listName} Specify the priority to search view names. Examples # Example 1 lakerCreatePickedDevice -point (-4.917,-8.348) \ -viewList {layout} -spacing 2 -instanceName 1 -connectivity 1 See Also Layout Window: Create > Picked Device lakerCreatePin The lakerCreatePin command returns a dbFigId if the specified pin can be created. 658 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Syntax lakerCreatePin [-layerName layerName] [-purpose purpose] net netName -port portName -pin pinName [-dir pinType] [-accDir accDir] -point point [-jointType jointType] [placementStatus status] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. Arguments Argument Description -accDir accDir Specify the pin direction. Valid values: the combination of {Top}, {Bottom}, {Left}, and {Right} (default=all directions, that is, {Top}{Bottom}{Left}{Right}). -colorName colorName Specify the color name. Valid value: a string. -dir pinType Specify the pin type. Valid values: Input, Output, InputOutput, Jumper, and Feedthrough (default=Input). -jointType jointType Specify the joint type for the specified pin. Valid values: Disjointed, Strong, and Weak. -layerName layerName Specify the layer name (default=the active layer). -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -net netName Specify the net name. -pin pinName Specify the pin name. -placementStatus status Specify the pin placement status. Valid values: Fixed, Cover, Placed, Unplaced, and Null (default=Placed). -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the pin shape, while y0...yn specify the y coordinate. -port portName Specify the port name. Laker³ Tcl Reference Manual K-2015.06 659 Chapter 7: Layout Window Create Commands Argument Description -purpose purpose Specify the purpose name (default=drawing). Examples # Example 1 lakerCreatePin -layerName POLY -net ABC -port ABC \ -dir Input -pin 1 -accDir Top -point (0.159,-0.96) \ (0.159,1.225) (2.146,1.225) (2.146,-0.96) # Example 2 lakerCreatePin -layerName MET4 -purpose drawing -net ABC \ -port ABC -dir Jumper -pin ABC -accDir {Right} {Left} -point \ (4.81,1.51) (4.81,2.73) (3.62,2.73) (3.62,1.51) See Also dbCreatePin Layout Window: Create > Pin lakerCreatePoly The lakerCreatePoly command returns a dbFigId if the specified polygon shape can be created. Syntax lakerCreatePoly -point point [-layerName layerName [-purpose purpose]] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. Arguments 660 Argument Description -colorName colorName Specify the color name. Valid value: a string. -layerName layerName Specify the layer name (default=the active layer). -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -purpose purpose Specify the purpose name (default=drawing). Examples lakerCreatePoly -layerName poly -purpose drawing \ -point (0,0) (10,10) (25,20) (30,-35) See Also dbCreatePolygon Layout Window: Create > Polygon lakerCreateRect The lakerCreateRect command returns a dbFigId if the specified rectangle shape can be created. Syntax lakerCreateRect -point (x1,y1)(x2,y2) [-layerName layerName [-purpose purpose]] [-color colorName] [-lock 0|1] Returns A dbFigId if successful; otherwise, returns nothing. Arguments Argument Description -colorName colorName Specify the color name. Valid value: a string. -layerName layerName Specify the layer name (default=the active layer). -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -point (x1,y1)(x2,y2) (x1,y1) specifies the lower left corner of the rectangle while (x2,y2) specifies the upper right corner. Laker³ Tcl Reference Manual K-2015.06 661 Chapter 7: Layout Window Create Commands Argument Description -purpose purpose Specify the purpose name (default=drawing). Examples lakerCreateRect -layerName poly -purpose drawing \ -point (0,0.3) (10.1,10) See Also dbCreateRect Layout Window: Create > Rectangle lakerCreateResistor The lakerCreateResistor command returns a dbFigId if the specified resistor can be created. Syntax lakerCreateResistor -device deviceName -point (x0,y0) [totalLength length|-value value] -fit (seg|block) fitValue -width width -space deviceSpace -metWidth metWidth [-inst instName] [-orient orientation] [-magni magnification] [-contType contType] [-connectType connectType] [-interDist interContDistance] [-resEncCo enclosure_value] [-originOffset xOffset yOffset] [dummyWidth value] [-dummyContact 0|1] [-extSegLength 0|1] [-param parameter] [-useMaskResolution 0|1] [-xCoSpace spacing_in_x_direction] [-yCoSpace spacing_in_y_direction] Returns A dbFigId if successful; otherwise, returns nothing. Arguments 662 Argument Description -connectType connectType Specify the connected type for resistors. Valid values: metal, res, and none (default=res). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -contType contType Specify the contact type. Valid values: maxRow, single, maximum, and contactArray (default=maxRow).maxRow : Insert as many contact rows as possible, such as maxRow row_number. single : Insert a single contact. maximum : Insert a maximum number of contacts. contactArray : Insert a contact array with the number of columns and rows, such as contactArray column_number row_number. -device deviceName Specify the name of resistor devices. -dummyContact 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Add contacts and metal on dummy resistors. 0 : Do not add contacts and metal on dummy resistors. -dummyWidth value Specify the dummy width for resistors. By default, the value is equal to the -width option. -extSegLength 0|1 Valid values: Boolean values, 0 and 1 (default=0). This argument is used for disconnected resistors only. 1 : Extend each segment to make each segment having the same length. 0 : Do not extend each segment of the resistor. -fit (seg|block) fitValue Specify the segment or blockLength value. -inst instName Specify the instance name (default=systemassigned). -interDist interContDistance Each inter contact distance (default=empty string). -magni magnification View size is printed compared with a real chip size. Valid value: a floating number (default=1.0). -metWidth metWidth Specify the width of the Metal layer. Laker³ Tcl Reference Manual K-2015.06 663 Chapter 7: Layout Window Create Commands 664 Argument Description -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -originOffset xOffset yOffset xOffset is the offset value from the point x0 while yOffset is the offset value from the point y0. The origin of MCell instances is calculated by (x0+xOffset, y0+yOffset). -param parameter Specify the parameter list. Each parameter includes the resistor’s value, length, width, align, offset, and metal-option string. This argument is used for disconnected resistors only. -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -resEncCo enclosure_value Specify the horizontal enclosure distance between the resistor body layer and contact layer. -space deviceSpace Specify the spacing between resistor shapes. -totalLength length Specify the total length between outmost contact layers (default=100.0). -useMaskResolution 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use the Mask/General resolution. 0 : Use the MCell resolution. -value value Specify the resistance value. If -totalLength is specified, this argument is ignored. -width width Specify the width of the resistor body layer. -xCoSpace spacing_in_x_direction Specify the contact spacing in X direction when the contact type is contactArray or maximum. The spacing_in_x_direction is in user units. -yCoSpace spacing_in_y_direction Specify the contact spacing in Y direction when the contact type is contactArray or maximum. The spacing_in_y_direction is in user units. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Examples # Example 1 # The origin of this resistor is (4.1,1.5) lakerCreateResistor -point (3.6,1) -originOffset 0.5 0.5 -device TRES -totalLength 100 -width 4 -space 2 \ -metWidth 4 -fit seg 5 # Example 2 lakerCreateResistor -point (0.00425,0.00478) -device TRES \ -totalLength 100.000000 -width 4.000000 -space 2.000000 \ -metWidth 2.000000 -fit segment 4 -connectType none \ -param { length 100.0 4.0 asIs 0.0 "" } \ { length 100.0 4.0 left 0.0 "" } \ { length 100.0 4.0 left 0.0 "" } \ { length 100.0 4.0 left 0.0 "" } # Example 3 # create a TRES resistor with 3x3 contact, and the contact spacing # in X and Y directions is 1.0 user unit. lakerCreateResistor -point (-38.7,8.715) -useMaskResolution 0 \ -device TRES -totalLength 100.000000 -width 4.000000 \ -space 2.000000 -metWidth 2.000000 -fit segment 5 \ -contType contactArray 3 3 -xConSpace 1.0 -yConSpace 1.0 \ -extSegLength 0 See Also Layout Window: Create > Resistor lakerCreateStackedPath The lakerCreateStackedPath command returns a dbFigId if the specified stack path can be created. Syntax lakerCreateStackedPath -point point (x0,y0)...(xn,yn) useMaskResolution 0|1 -width width [-pathOffset value] [-style pathStyle] -topLayer topLayerName [topPurpose] bottomLayer bottomLayerName [bottomPurpose] [-device viaStackName] [-createContact 0|1] [-createCornerContact 0|1] [-contAlignMode Center|Max] [-param parameters] Returns A dbFigId if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 665 Chapter 7: Layout Window Create Commands Arguments 666 Argument Description -bottomLayer bottomLayerName [bottomPurpose] Specify the layer name (and purpose name) for the bottommost layer. -contAlignMode Center|Max Specify the contact pattern. Valid values: Center, and Max (default=Center). Center : Center-aligned contacts; Max : Maximum contacts. -createContact 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Create contacts in stack paths. 0 : Do not create contacts in stack paths. -createCornerContact 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Create corner contacts. 0 : Do not create any corner contacts. -device viaStackName Specify the via stacking name (or contact device name) for stack paths (default=StackVia). If it is StackVia, the contact device sequence is connected automaically. -param parameters Specify the parameter list. Each parameter includes the contact device name, contact width, contact length, horizontal/vertical spacing between contact layers, horizontal/vertical enclosure distance between contact layer and the first connected layer, horizontal/vertical enclosure distance between contact layer and the second connected layer. -pathOffset value Specify the path offset for user-defined justification. Valid value: a floating number (default=0.0). -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -style pathStyle Specify the path style. Valid values: Truncate, Extend, and Variable -beginExt value -endExt value (default=Truncate). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -topLayer topLayerName [topPurpose] Specify the layer name (and purpose name) for the topmost layer. -useMaskResolution 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use the Mask/General resolution. 0 : Use the MCell resolution. -width width Specify the path width. Valid value: a floating number. Examples # Example 1 lakerCreateStackedPath -point (60.7708,90.3622) (60.7708,90.3622)\ -useMaskResolution 0 -topLayer MET2 -bottomLayer POLY \ -width 0.900000 -pathOffset 0.200000 # # # # Example 2 Create stacked path by specifying a contact device instead of a viaStacking,creating corner contact(default value) and with contact pattern "Center"(default value): lakerCreateStackedPath -point (-6.858,7.947) (-6.858,7.947)\ (3.391,7.947) (3.391,3.003) (15.613,3.003) -device M1_P1 \ -param {M1_P1 0.4 0.4 0.4 0.4 0.15 0.15 0.15 0.15 } \ -topLayer MET1 -bottomLayer POLY -width 2.000000 # # # # Example 3 Create stacked path by specifying a viaStacking "viaStacking1" contains three contact device without creating corner contact and with contact pattern "Maximum": lakerCreateStackedPath -point (0.0,0.0) (-11.719,15.168)\ (8.169,15.168) (8.169,-6.275) (-16.163,-6.275) \ -device viaStacking1 \ -param {M1_P1 0.4 0.4 0.4 0.4 0.15 0.15 0.15 0.15 } \ {M1_M2 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 } \ {M2_M3 0.5 0.5 0.45 0.45 0.2 0.2 0.15 0.15 } \ -topLayer MET3 -bottomLayer POLY -width 4.000000 \ -createCornerContact 0 -contAlignMode Max See Also Layout Window: Create > Stack Path Laker³ Tcl Reference Manual K-2015.06 667 Chapter 7: Layout Window Create Commands lakerCreateText The lakerCreateText command returns a dbFigId if the specified text label can be created. Syntax lakerCreateText -point (x0,y0) | (x1,y1) (x2, y2) ... (xn, yn) -height height [-width width] -text textString [layerName layerName [-purpose purpose]] [-orient orientation] [-justify justification] [-font textFont] [-offsetPoint (x0,y0)] [-drafting 0|1] [-toPoly 0|1] [attachFig figId | -attach 0|1] [-spacing dSpacing] [non45free 0|1] [-placeOn 0|1] [-skip skipVal] [-textLayer textLayer] [-mapFile fileName] Returns A dbFigId if successful; otherwise, returns nothing. Arguments 668 Argument Description -attach 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Attach text strings/labels to a pre-selected object. 0 : Do not attach text strings/labels to objects. -attachFig figId Specify the figure identifier to be attached. When it is specified, the -attach argument is ignored. -drafting 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show the orientation of the text at zero degrees. 0 : Do not show the orientation of the text at zero degrees. -font textFont Specify the font type of the input text string. Valid values: Modern, Script, Roman, Simple, Merit, Contemplate, and Contemplate1 (default=Modern). -height height Specify the text height. Valid value: a positive floating number (default=1.0). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -justify justification Specify the justification of the input text string. Valid values: Original, UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=LowerLeft). The Original value is available only if -toPoly 1 is specified. -layerName layerName Specify the layer name (default=the active layer). -mapFile fileName Specify the layer map file. This argument is valid only if -textLayer userDef is specified. -non45free Valid values: Boolean values, 0 and 1. 1: Do not allow non-45 polygons for all polygonal text labels. 0: Allow non-45 polygons for all polygonal text labels. This argument is valid only if -toPoly 1 is specified. -offsetPoint (x0,y0) x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -orient orientation Specify the orientation of the input text string. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, MYR90, and auto (default=R0). When -orient auto is used, the orientation of serial texts is adjusted by the direction of line segments: ■ ■ ■ If it is a vertical line, the orientation is R0. If it is a horizontal line, the orientation is R90. If it is a non-orthogonal line, the orientation is R0. -placeOn 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Place serial texts on the selected objects which overlap the drawing line. 0: Place serial texts on objects which overlap the drawing line. -point (x0,y0) | (x1,y1) (x2, y2) ... (xn, yn) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. If point count is more than one, it means a drawing point array is used to trace the overlapped shapes. Laker³ Tcl Reference Manual K-2015.06 669 Chapter 7: Layout Window Create Commands Argument Description -purpose purpose Specify the purpose name (default=drawing). -skip skipVal Specify a skip width to ignore the shape that exceeds the specified value during text creation. If the width of a shape is greater than the specified Skip Width value, the text string is not placed on that shape. If the Skip Width field is empty, the checking is ignored. -spacing dSpacing Specify the spacing between polygonal labels (default=1.0). This argument is valid only if -toPoly 1 or -font Contemplate1 is specified. -text textString Specify the text string list. -textLayer textLayer Specify the layer for text creation. Valid values: active, tf, and userDef. active: Current selected layer. tf: The rule of tfAbstractCell in technology file. userDef: The rule defined in the layer map file, specified by -mapFile. -toPoly 0|1 Create the border of text with polygon segments. Valid values: Boolean values, 0 and 1 (default=1). 1: All font types are available. 0: Only three font types (for example: Modern, Script, and Roman) are available. -width width Specify the stick width of polygonal labels in Contemplate font type. The height must be greater than 5 times of the specified stick width, and the stick width must be the even multiple resolutions. Valid value: a positive number. Examples # Example 1 lakerCreateText -layerName poly -purpose drawing -point (0,0) \ -orient R90 -justify CenterCenter -font Roman -height 0.6 \ -text demostring 670 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands # Example 2 lakerCreateText -toPoly 1 -layerName POLY -purpose drawing \ -point (0,0) -orient R0 -justify Original -font Contemplate \ -height 40.0 -width 8.0 -spacing 0.0 -text demostring # Example 3 lakerCreateText -toPoly 1 -spacing 1.0 -layerName poly \ -purpose drawing -point (0,0) -justify Original -font Merit \ -height 0.6 -text {demostring} # Example 4 lakerCreateText -layerName poly -point (1.02,-3.26) \ -font Contemplate1 -height 1.0 -text {abc} # Example 5 lakerCreateText -textLayer active -skip 1.6 -layerName NWELL \ -height 1.0 -spacing 1.000000 -text {a[0:3]-b[0:3],c[0:3]} \ -point {(-8.95,12.75) (-8.95,1.44) (1.86,1.44) } -orient auto See Also dbCreateLabel Layout Window: Create > Text lakerCreateTransistor The lakerCreateTransistor command returns a dbFigId if the specified transistor can be created. Syntax lakerCreateTransistor -device deviceName -point (x0,y0) gates gates -param parameter [-globalRule $rule_name] [inst instName] [-orient orientation] [-magni magnification] [-contType contType] [-contAlign contAlign] [-contMode contMode] [-type deviceType] [disableImpNotch 0|1] [-optLayerRepeatPattern optLayerRepeatPattern] [-traitRepeatPattern Pattern] [co2Gate number [$rule_name]] [[-conSpaceRule coSpaceRuleName]|[-xConSpace xConSpace [$rule_name]] [yConSpace yConSpace [$rule_name]]] [-discreteGatePitch 0|1] [-originOffset xOffset yOffset] [-useMaskResolution 0|1] [-coWidth value [value2]] [-layerSetting {layerName purposeName enable|disable rectangle|fillNotch|none} {value1 value2}+ ] [-createDummyGate {numberSingle numberMulti numberInner | {numberInner toleranceValue}} [-dummyGateLengthType LengthType]] [-createPolyCont 0|1] Laker³ Tcl Reference Manual K-2015.06 671 Chapter 7: Layout Window Create Commands [-polyContType polyContType] [-polyConSymmetry 0|1] [xPolyCoEnc value] [-yPolyCoEnc value] [-xPolyCoConSpace xConSpace [$rule_name]] [-yPolyCoConSpace yConSpace [$rule_name]] [-dummyGatePolyCoSym mode] [-xCo2OdEnc xValue -yCo2OdEnc yValue] [-plugInParam {{$paramName $paramValue}[{$paramName $paramValue}...]}] Returns A dbFigId if successful; otherwise, returns nothing. Arguments 672 Argument Description -co2Gate number [$rule_name] Specify the spacing between contacts and gates. number: The number is in user units, and it must be greater than or equal to the minCo2GateSpace value defined in the technology file. The default is the minCo2GateSpace value. $rule_name: The rule to be used (default=default, which indicates the default rule). -conSpaceRule coSpaceRuleName Specify the contact spacing. If the specified rule name is not defined in the super master of the referenced transistor, the default rule is used. If -conSpaceRule is specified, -xConSpace and -yConSpace are ignored. -coWidth value [value2] Specify the contact width. The value or the value pair of {value value2} should be one of the defined value of minCoWidth in the super master of the referenced transistor; otherwise, the create or modify attribute operation fails. -contAlign contAlign Specify the contact alignment. Valid values: top, center, and bottom (default=center). -contMode contMode Specify the contact mode. Valid values: Normal, Esd, and StackVia (default=Normal). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -contType contType Specify the contact type. Valid values: SingleContact, MaxContact, ContactArray, and NoContact (default=MaxContact). -createDummyGate Create dummy gates for a transistor with these { numberSingle conditions: numberMulti numberInner | ■ numberSingle: Number of dummy gates { numberInner (default=2) for a transistor with one normal gate. toleranceValue } } ■ numberMulti: Number of dummy gates (default=1) for a transistor with multiple normal gates. ■ numberInner: Number of dummy gates (default=1) for a transistor with different gate width (between two adjacent gates) exceeding the toleranceValue. This toleranceValue must be greater than or equal to 0.0. ■ numberSingle, numberMulti and numberInner must be specified when this option is used. Valid value: an integer, greater than or equal to 0. -createPolyCont 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Create poly contacts. 0 : Do not create any poly contacts. -device deviceName Name of transistor devices. -disableImpNotch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Create a notch shape on IMP/L1/L2 layers. 0 : Do not create any notch shapes on IMP/L1/L2 layers. -discreteGatePitch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Discrete Gate Pitch option. 0 : Disable the Discrete Gate Pitch option. Laker³ Tcl Reference Manual K-2015.06 673 Chapter 7: Layout Window Create Commands Argument Description -dummyGateLengthType LengthType Specify the length type for dummy gates. This argumant is valid only if -createDummyGate is specified. Valid values: AdjacentNarrower, AdjacentWider, and MinChannelLength (default=AdjacentNarrower). -dummyGatePolyCoSym mode Set the poly contact structure for dummy gates. Valid values: none, polyOnly, and all (default=none). -gates gates Specify the number of gates to be used. Valid values: a positive integer (maximum=2500). -globalRule $rule_name Specify the global rule (default=default, which indicates the default rule). -inst instName Specify the instance name (default=systemassigned). -layerSetting {layerName purposeName enable|disable rectangle|fillNotch|none} {value1 value2}+ ■ ■ ■ ■ ■ ■ -magni magnification 674 enable or disable enables or disables the specified layer, and rectangle, fillNotch, or none sets the extend type of that layer. The parameter set {layerName purposeName enable|disable rectangle|fillNotch|none} is ignored if the specified layer is disabled (setting generate off and control off in the technology file). enable or disable is ignored if the layer is locked (setting control off in the technology file). rectangle, fillNotch, or none is ignored if this layer is set to be disable. {value1 value2} sets the enclosure distance between preserved option layers (Imp, L1-L9) and the OD layer. The layers without layer editing parameters use the default value defined in the technology file. View size is printed compared with a real chip size. Valid value: a floating number (default=1.0). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -optLayerRepeatPattern optLayerRepeatPattern Define the repeated sequence of option layers. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -originOffset xOffset yOffset xOffset is the offset value from the point x0 while yOffset is the offset value from the point y0. The origin of MCell instances is calculated by (x0+xOffset, y0+yOffset). -param parameter Specify the parameter list for transistors. The list is defined with this format: -param {pattern width length align offset [{polyConPattern polyConLocation polyConShift}] [$rule_name] [dummyGate]}+ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Laker³ Tcl Reference Manual K-2015.06 pattern: Gate pattern. Valid values: patternA, patternB, patternC, patternD, and patternE. width: Channel width. Valid value: a floating number. length: Channel length. Valid value: a floating number. align: Contact alignment between gates. Valid values: top, center, bottom, and asIs. offset: Offset value. Valid value: a floating number. polyConPattern: Poly contact pattern. Valid values: none, top, bottom, and both (default=none). polyConLocation: Poly contact location. Valid values: inner, and outer (default=inner). polyConShift: Poly contact shift. Valid values: left, center, and right.(default=center). $rule_name: Refer to the global rule. dummyGate: If specified, the auto generation of dummy gates is ignored. 675 Chapter 7: Layout Window Create Commands Argument Description -plugInParam {{$paramName $paramValue}[{$paramNa me $paramValue}...]} Define a list of parameters for MCell callbacks. ■ ■ 676 $paramName: Specify the parameter name, which is defined in params of the callBack section. $paramValue: Specify the parameter value for the corresponding $paramName. -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -polyContType contType Specify the contact type for poly contacts. Valid values: NoContact, SingleContact, MaxContact, and ContactArray (default=MaxContact). SingleContact : Insert a single contact. MaxContact : Insert the maximum number of contacts. ContactArray : Insert a contact array with the number of columns and rows, such as contactArray row column. -polyConSymmetry 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Symmetry option for poly contacts. 0 : Disable the Symmetry for poly contacts. -traitRepeatPattern Pattern Define the trait repeat pattern for transistors. The valid value can be any combinations from the defined trait in technology file. -type deviceType Specify the device type. Valid values: parallel and serial (default=serial). -useMaskResolution 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use the Mask/General resolution. 0 : Use the MCell resolution. -xCo2OdEnc xValue Horizontal enclosure distance between the contact layer and the adjacent edge of the Thin-oxide layer. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Argument Description -xConSpace xConSpace [$rule_name] Specify the contact x-spacing (default=minCoSpace in ruleDef). Valid value: a floating number, greater than or equal to the minCoSpace value. $rule_name: Rule to be used (default=default, which indicates the default rule). -xPolyCoConSpace xConSpace [$rule_name] Specify the contact x-spacing for poly contacts (default=minCoSpace in polyContact). The valid value and $rule_name settings are similar to the xConSpace argument. -xPolyCoEnc value Specify the minimum horizontal enclosure distance from contacts to metals. Valid value: a floating number. -yCo2OdEnc yValue Specify the vertical enclosure distance between the contact layer and the adjacent edge of the Thinoxide layer. -yConSpace xConSpace [$rule_name] Specify the contact y-spacing (default=minCoSpace in ruleDef). Valid value: a floating number, greater than or equal to the minCoSpace value. $rule_name: Rule to be used (default=default, which indicates the default rule). -yPolyCoConSpace yConSpace [$rule_name] Specify the contact y-spacing for poly contacts (default=minCoSpace in polyContact). The valid value and $rule_name settings are similar to the yConSpace argument. -yPolyCoEnc value Specify the minimum vertical enclosure distance from contacts to metals. Valid value: a floating number. Examples # Example 1 # The origin of this transistor instance is (3.5,7.3) lakerCreateTransistor -point ((3.0,6.8) -originOffset 0.5 0.5 \ -device pmos -gates 1 -param {patternA 0.7 0.35 bottom 0.0} Laker³ Tcl Reference Manual K-2015.06 677 Chapter 7: Layout Window Create Commands # Example 2 lakerCreateTransistor -point (5.25,0.235) -device pmos -gates 1 \ -disableImpNotch 0 -contType MaxContact -xConSpace 0.4 \ -yConSpace 0.4 -co2Gate 0.5 -contAlign center \ -param {patternA 0.7 0.35 bottom 0.0 } -optLayerRepeatPattern { } # Example 3 lakerCreateTransistor -point (-1.175,2.055) -device pmos \ -gates 2 -type parallel -contType MaxContact -ConSpaceRule 0.4 \ -yConSpace 0.4 -co2Gate 0.3 -contAlign center \ -param {patternA 1.0 0.35 asIs 0.0 } \ {patternA 1.2 0.35 bottom 0.0 } \ -optLayerRepeatPattern { } -layerSetting \ { PP drawing enable none } -createDummyGate {2 1 1} # Example 4 lakerCreateTransistor -point (-1.175,2.055) -device pmos \ -gates 2 -type parallel -contType MaxContact -xConSpace 0.4 \ -yConSpace 0.4 -co2Gate 0.3 -contAlign center \ -param {patternA 1.0 0.35 asIs 0.0 } \ {patternA 1.2 0.35 bottom 0.0 } \ -optLayerRepeatPattern { } -layerSetting \ { PP drawing enable none } -createDummyGate {2 1 {1 0.2}} # Example 5 lakerCreateTransistor -point (37.145,16.653) \ -useMaskResolution 0 -device pfet -gates 2 -type parallel \ -contType MaxContact -xConSpace 1.0 -yConSpace 1.0 \ -co2Gate 0.8 -contAlign center -param \ {patternA 2.0 1.0 asIs 0.0 } {patternA 3.0 2.0 bottom 0.0 } \ -optLayerRepeatPattern { } -layerSetting \ { PIMP drawing enable none } -createDummyGate {2 1 1} \ -dummyGateLengthType AdjacentNarrower # Example 6 lakerCreateTransistor -point (52.192,17.547) \ -useMaskResolution 0 -device PMOS_plugIn_dummyPoly \ -gates 2 -type parallel -contType MaxContact -xEnc 0.5 \ -yEnc 0.45 -xConSpace 1.0 -yConSpace 1.0 -co2Gate 0.8 \ -contAlign center -xCo2OdEnc 0.5 -yCo2OdEnc 0.5 \ -param {patternA 6.0 0.8 asIs 0.0 } {patternA 3.0 0.8 bottom 0.0 } \ -optLayerRepeatPattern { } -traitRepeatPattern { } \ -layerSetting {PIMP drawing enable none} \ -plugInParam {{normalPitch 4.0} {dummyPitch 2.0} {numDummy 1}} See Also Layout Window: Create > Transistor 678 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands lakerDimensionMark The lakerDimensionMark command draws a dimension line from an object, and saves the dimension line drawing into the related cell view for later reference. Syntax lakerDimensionMark -point point [-layerName layerName] [purpose purpose] [-font textFont] [-height height] [hideDim 0|1] [-showExtensionLine 0|1] [-justify justification] Returns None Arguments Argument Description -font textFont Specify the font type for text labels. Valid values: Modern, Script, and Roman (default=Modern). -height height Specify the text height for text labels. Valid value: a positive floating number (default=1.0). -hideDim 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Hide Value of Dimension Mark option. 0 : Disable the Hide Value of Dimension Mark option. -justify justification Specify the justification of dimension mark labels. Valid values: Auto, UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight. -layerName layerName Specify the layer name (default=the active layer). -point point (x0,y0),(x1,y1),(x2,y2) x0, x1 and x2 specify the x coordinate for point0, point1 and point2 while y0, y1 and y2 specify the y coordinate for point0, point1 and point2. -purpose purpose Specify the purpose name (default=drawing). Laker³ Tcl Reference Manual K-2015.06 679 Chapter 7: Layout Window Create Commands Argument Description -showExtensionLine 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Show Extension Line option. 0 : Disable the Show Extension Line option. Examples # Example 1 lakerDimensionMark -layerName poly -purpose drawing \ -point (0,0) (10,0) (10,10) # Example 2 lakerDimensionMark -layerName poly -purpose drawing \ -point (0,0) (10,0) (10,10) -font Modern -height 1.2 -hideDim 0 \ -showExtensionLine 1 -justify auto See Also Layout Window: Create > Dimension Mark lakerGenText The lakerGenText command generates text labels from the logical information, and attaches the text labels to shapes, transistors, resistors, capacitors, Tcl PCells and instances. The content of text labels refers to the net name or instance name. Syntax lakerGenText -from pin -mode mode -height height [-attach 0|1] [-font textFont] [-justify justification] [-orient orientation] [-busParentheses bracket] [-fromTF | fromObj | -fromFile fileName | [-layerName layerName purpose purpose]] [-useVirtual 0|1] [-ThruVia 0|1] lakerGenText -from net -mode mode -height height [-attach 0|1] [-font textFont] [-justify justification] [-orient orientation] [-busParentheses bracket] [-fromTF | fromObj | -fromFile fileName | [-layerName layerName purpose purpose]] [-useVirtual 0|1] [-ThruVia 0|1] lakerGenText -from instance -mode mode -height height [attach 0|1] [-font textFont] [-justify justification] [orient orientation] [-layerName layerName -purpose purpose] [-useVirtual 0|1] [-ThruVia 0|1] 680 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands Returns None Arguments Argument Description -attach 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Attach to Object option. 0 : Disable the Attach to Object option. -busParentheses bracket Specify the bus translation style. Valid values: angle and square (default=square). angle: angle bracket < >. square: square bracket [ ]. -font textFont Specify the font type for text labels. Valid values: Modern, Script, and Roman (default=Modern). -fromFile fileName Use layers that are defined in a separate file for label generation; otherwise, nothing is generated. -fromObj Use the same layer of the selected object for label generation. -fromTF Use layers that are defined in tfAbstractCell for label generation; otherwise, nothing is generated. -height height Specify the text height. Valid value: a positive floating number (default=1.0). -justify justification Specify the text justification. Valid values: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=CenterCenter). -layerName layerName Specify the layer name of the layer to be used for label generation. Laker³ Tcl Reference Manual K-2015.06 681 Chapter 7: Layout Window Create Commands Argument Description -mode mode Specify the attach mode of text labels. Valid values: select, full, area, line, and click. select: selected objects. full: full cell. area: -area (0.0, 0.0) (2.0, 2.0) line: -line (0.0, 0.0) (0.0, 2.0) (2.0, 2.0) (4.0, 2.0) (6.0, 3.0) click: -point (0.0, 0.0) -orient orientation Specify the text orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0,and MYR90 (default=R0). -purpose purpose Specify the purpose name (default=drawing). -ThruVia 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Generate text labels through Via and treate text label as connected physically. 0 : Do not generate text labels through Via. -useVirtual 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Connect text labels appended with ":" for objects belonging to a same net but which are not connected together. 0 : Do not connect text labels appended with ":" Examples # Example 1 lakerGenText -from instance -mode full -height 1.0 -font Roman \ -justify LowerLeft -orient R90 -layerName POLY -purpose drawing # Example 2 lakerGenText -from pin -mode full -height 1.0 -font Roman \ -justify CenterCenter -orient R0 -busParentheses square -fromTF # Example 3 lakerGenText -from net -mode select -height 1.0 -font Modern \ -justify CenterCenter -orient R0 -busParentheses angle \ -layerName POLY -purpose drawing -attach 0 See Also Layout Window: Create > Generate Text 682 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Create Commands lakerRulerLabel The lakerRulerLabel command draws ruler labels, and saves the drawing of ruler labels into the related cell view for later reference. Syntax lakerRulerLabel -point point [-layerName layerName] [purpose purpose] [-font textFont] [-height height] Returns None Arguments Argument Description -font textFont Specify the font type for text labels. Valid values: Modern, Script, and Roman (default=Modern). -height height Specify the text height. Valid value: a positive floating number (default=1.0). -layerName layerName Specify the layer name (default=the active layer). -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -purpose purpose Specify the purpose name of the layer (default=drawing). Examples lakerRulerLabel -layerName poly -purpose drawing \ -point (0,0) (10,0) (0,10) See Also Layout Window: Create > Ruler Label Laker³ Tcl Reference Manual K-2015.06 683 Chapter 7: Layout Window Edit Commands Edit Commands This section describes the Tcl commands applied to the Edit commands of the Layout window. These commands include: 684 ■ lakerAlignObj ■ lakerAnnotatePin ■ lakerAttachObj ■ lakerAutoFix ■ lakerBoolean ■ lakerChgVia ■ lakerChopObj ■ lakerCloneMaster ■ lakerContinueBus ■ lakerConvertToPoly ■ lakerCopyObj ■ lakerCopyToClipboard ■ lakerCorrectOffGridObj ■ lakerCutCorner ■ lakerCutFinBdry ■ lakerCutPolyShape ■ lakerDeleteObj ■ lakerDtbAlign ■ lakerGroupObj ■ lakerHybridAlign ■ lakerLayerGen ■ lakerMakeCell ■ lakerMergeObj ■ lakerMirrorX ■ lakerMirrorY Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands ■ lakerMoveObj ■ lakerPasteObj ■ lakerPropagateNet ■ lakerReassignNet ■ lakerRedo ■ lakerRepeatObj ■ lakerReshapeObj ■ lakerRotate ■ lakerRotate90 ■ lakerSelGroupByName ■ lakerShiftOrigin ■ lakerSlitSlot ■ lakerSmashObj ■ lakerSplitArray ■ lakerSplitNet ■ lakerSplitObj ■ lakerStretchObj ■ lakerStripeWire ■ lakerSwapInstPort ■ lakerTrimWire ■ lakerTunnelObj ■ lakerUndo ■ lakerUngroupObj ■ lakerYankObj lakerAlignObj The lakerAlignObj command aligns each specified position of objects to a reference edge. Laker³ Tcl Reference Manual K-2015.06 685 Chapter 7: Layout Window Edit Commands Syntax lakerAlignObj [ -point point -mode selMode | -refPoint (x0,y0) [-space space] ] [-traversedist traverseDist] Returns None Arguments Argument Description -mode selMode Specify the select mode of alignment, the mode for the first point is start, the second one is select/ deselect. -point point (x0,y0)...(xn,yn) Specify each position of the aligned objects. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -refPoint (x0,y0) Specify a reference coordinate to align. x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -space space Make a spacing from each aligned edge to the reference edge. Valid value: a floating number, greater than 0. -traversedist traverseDist Specify the traversing distance. Valid value: a floating number. Examples # align the point (10,0) object and point (20,0) object # to point (0,0) object lakerPreSel -point (10,0) lakerAlignObj -point (10,0) -mode start lakerPreSel -point (20,0) lakerAlignObj -point (20,0) -mode select lakerPreSel -point (0,0) lakerAlignObj -refPoint (0,0) See Also Layout Window: Edit > Others > Align 686 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands lakerAnnotatePin The lakerAnnotatePin command validates new instance ports to nets. Syntax lakerAnnotatePin -annotate {{instPortName netName} ... } Returns None Arguments Argument Description -annotate {{instPortName netName} ... } Set the net name to the instance ports of the selected instance. Examples lakerAnnotatePin -annotate {{yb n1n29} {i n1n27} {vdd vdd} {vss vss}} See Also Layout Window: Edit > Annotate Pin lakerAttachObj The lakerAttachObj command attaches a child object to a parent object. When moving, copying, or deleting a parent object, the child object is also moved, copied, or deleted. Syntax lakerAttachObj -mode attachMode Returns None Arguments Argument Description -mode attachMode Specify the attach mode for the selected objects. Valid values: children and toParent. Laker³ Tcl Reference Manual K-2015.06 687 Chapter 7: Layout Window Edit Commands Examples lakerSingleSel -point (0,0) lakerAttachObj -mode children lakerSingleSel -point (0,10) lakerAttachObj -mode toParent See Also Layout Window: Edit > Others > Attach lakerAutoFix The lakerAutoFix command runs AutoFix. Syntax lakerAutoFix [-region { {x1 y1} {x2 y2} }] [-insertJogs mode] [-lockVias 0|1] [-lockInstances 0|1] [lockInvisibleShapes 0|1] Returns None Arguments 688 Argument Description -insertJogs mode Specifies whether to insert jogs. Valid values: conservatively, aggressively, and never (default=conservatively). -lockInstances 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Lock the position of instances. 0 : Move instances. -lockInvisibleShapes 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Lock the position of invisible shapes. 0 : Move invisible shapes. -lockVias 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Lock the position of vias. 0 : Move vias. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Argument Description -region { {x1 y1} {x2 y2} } Specifies the window extent with coordinates { {x1 y1} {x2 y2} } . If not specified, the full design layout is applied by default. Examples lakerAutoFix -region { { -27.0 -2.8 } { 84.3 , 59.9 } } \ -insertJogs aggressively -lockInstances 0 -lockVias 0 \ -lockInvisibleShapes 0 lakerBoolean The lakerBoolean command changes the selected shapes by using the Boolean operation with point array. Syntax lakerBoolean -op booleanOperation -point point [-truncate value] [-newObj 0|1] [-layerName layerName [-purpose purpose]] [-convert 0|1] [-keepOrthogonal 0|1] [-absolute 0|1] Returns None Arguments Argument Description -absolute 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Multiply the truncate value by sizing value. 0 : Do not multiply the truncate value. -convert 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Convert the round path to polygon before sizing it.0 : Do not convert the round path to polygon before sizing. -keepOrthogonal 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Keep orthogonal edges. 0 : Cutting acute angle by its bisection regardless of the vertical or horizontal edges. Laker³ Tcl Reference Manual K-2015.06 689 Chapter 7: Layout Window Edit Commands Argument Description -layerName layerName Assign to another layer. The operation shape is changed by a specific layer. -newObj 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Assign to the newly created shape. 0 : Do not assign to the newly created shape. -op booleanOperation Set Boolean operation. Valid values: OR, AND, NOT, XOR, and SIZE. If this is set to SIZE, the point option has no effect; and in this case, four values need to be specified by the order Left, Bottom, Right, Top, for example, {SIZE 0.5 -0.3 0 0.15} -point point (x0,y0)...(xn,yn) Draw a point array. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -purpose purpose Assign to another layer purpose. The operation shape is changed by a specific purpose. -truncate value Specify a value to cut out the sharp angle. Valid value: a floating number, greater than 0 (default=2.61). Examples # Example 1 lakerBoolean -op {SIZE -0.1 -0.1 0.1 0.1} -newObj 1 \ -layerName THIN # Example 2 lakerBoolean -op AND -point (2.42,4.87) (2.42,12.3) \ (4.74,12.3) (4.74,4.87) # Example 3 lakerBoolean -op NOT -point (1.29,8.13) (1.29,9.89) (9.84,9.89) (9.84,8.13) \ -layerName poly # Example 4 lakerBoolean -op {SIZE 0.2 0.2 0.2 0.2} -truncate 3.0 690 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands # Example 5 lakerBoolean -op {SIZE 3.0 3.0 3.0 3.0} -truncate 2.61 \ -convert 1 -newObj 1 -layerName OD # Example 6 lakerBoolean -op {SIZE 0.5 0.5 0.5 0.5} -truncate 2.0 \ -keepOrthogonal 1 -absolute 1 -convert 1 -selObj 0 See Also Layout Window: Edit > Boolean lakerChgVia The lakerChgVia command replaces all vias by specified net name or location. Syntax lakerChgVia {-netName name -point (x0,y0)| -area (x1,y1) (x2,y2)} -from viaName -to replaceName [-normalOnly 0|1] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -area (x1,y1) (x2,y2) Specify the area to select via devices. x1 and x2 specify the x coordinate for the area while y1 and y2 specify the y coordinate. -from viaName Specify the via candidate for replacement. -netName name Specify the net name. -normalOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Filter special routes during replacement. 0 : No filter. -point (x0,y0) Specify the position point to select a via device. x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -to replaceName Specify the target via (the via to be substituted). Laker³ Tcl Reference Manual K-2015.06 691 Chapter 7: Layout Window Edit Commands Examples # Example 1 lakerChgVia -netName net1 -from via12E -to via12S # Example 2 lakerChgVia -netName net1 -area (0,0)(10,10) -from via12E \ -to via12S # Example 3 lakerChgVia -area (0,0)(10,10) -from via12E -to via12S \ -normalOnly 1 See Also Layout Window: Edit > Others > Change Via lakerChopObj The lakerChopObj command chops the selected object with a point array. Syntax lakerChopObj -point point [-mode chopMode] [-keep 0|1] [keepPath 0|1] [-keepExtendPathEnds 0|1] Returns None Arguments Argument Description -keep 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Keep Chopped Area option. 0 : Disable the Keep Chopped Area option. -keepExtendPathEnds 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Keep Extend Path Ends in Chopped Area option. 0 : Disable the Keep Extend Path Ends in Chopped Area option. -keepPath 0|1 692 Valid values: Boolean values, 0 and 1. 1 : Enable the Chop Path Centerline option. 0 : Disable the Chop Path Centerline option. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Argument Description -mode chopMode Specify the chop mode. Valid values: line, polygon, and rectangle (default=rectangle). When line is specified, the remove action has no effect. -point point (x0,y0)...(xn,yn) Draw a point array to chop shapes. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. Examples # Example 1 lakerChopObj -mode line -point (0,0) (10,10) (25,20) (30,-35) # Example 2 lakerChopObj -mode rectangle -point \ (21.368,32.128) (26.781,41.427) -keepExtendPathEnds 0|1 See Also Layout Window: Edit > Chop lakerCloneMaster The lakerCloneMaster command copies the master cell of the specified instance to another. Syntax lakerCloneMaster -cellname cellName -inst instName Returns None Arguments Argument Description -cellname cellName Specify a new cell name. -inst instName Specify the action instance. Examples # Change the master cell of instance (xinvB) to cell (NewINV) lakerCloneMaster -cellname NewINV -inst xinVB Laker³ Tcl Reference Manual K-2015.06 693 Chapter 7: Layout Window Edit Commands See Also Layout Window: Edit > Clone Master Design Browser: Clone Master lakerContinueBus The lakerContinueBus command continues drawing a bundle of the selected paths or stack paths, and then changes their direction via the end point of each path or stack path. Syntax lakerContinueBus -point point (x0,y0)...(xn,yn) [-ignoreNet 0|1] Returns None Arguments Argument Description -ignoreNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Ignore the net after the continue bus operation. 0 : Do not ignore the net after the continue bus operation. -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. Examples lakerContinueBus -point (16.265,-0.745) (14.87,-0.745) \ (14.87,-0.745) (13.33,-0.745) (13.33,0.42) See Also Layout Window: Edit > Continue Bus lakerConvertToPoly The lakerConvertToPoly command converts the selected objects to polygon shapes. Syntax lakerConvertToPoly [-snapGrid 0|1] 694 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Returns None Arguments Argument Description -snapGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Snap vertices to the minimum grid resolution. 0 : Do not snap vertices to the minimum grid resolution. Examples lakerConvertToPoly See Also dbPathToPolygon Layout Window: Edit > Others > Convert To Polygon lakerCopyObj The lakerCopyObj command copies the selected objects from the reference point to the offset point. Syntax lakerCopyObj -refPoint (x0,y0) -offsetPoint offsetPoint [orient orientation] [-rows rowsNo] [-cols colsNo] [layerName layerName [-purpose purpose]] [-keepLogic 0|1] [-autoArrange 0|1 [-colSpace colSpace | -rowSpace rowSpace]] Returns None Arguments Argument Description -autoArrange 0|1 Valid values: Boolean values, 0 and 1. 1 : Arrange the array of copied objects automatically. 0 : Do not arrange the array of copied objects. -cols colsNo Specify the number of columns in the array of copied objects. Valid value: an integer (default=1). Laker³ Tcl Reference Manual K-2015.06 695 Chapter 7: Layout Window Edit Commands Argument Description -colSpace colSpace Specify the interval between two columns. Valid value: a positive or negative floating number. -layerName layerName Copy a shape to another layer. The copied shapes are changed by a specific layer. -keepLogic 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Preserve the logic information of copied object(s). 0 : Do not preserve the logic information of copied object(s). -offsetPoint offsetPoint (x0,y0) [(x1,y1) [(x2,y2)]] Control the position of the copied object. xn specifies an offset value from the x coordinate point while yn specifies the value from the y coordinate point. -orient orientation Specify the orientation for objects. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -purpose purpose Copy a shape to another layer purpose. The copied shapes are changed by a specific purpose. -refPoint (x0,y0) Specify a reference coordinate to copy. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. -rows rowsNo Specify the number of rows in the array of copied objects. Valid value: an integer (default=1). -rowSpace rowSpace Specify the interval between two rows. Valid value: a positive or negative floating number. Examples lakerCopyObj -refPoint (-17.73,24.571) -offsetPoint \ (-57.084,65.527) (-57.084,56.445) (-48.002,56.089) \ -cols 2 -rows 2 -orient R90 -layerName MET1 -purpose pin \ -keepLogic 1 696 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands See Also Layout Window: Edit > Copy lakerCopyToClipboard The lakerCopyToClipboard command copies the selected objects to a temporay memory area for later pasting action. Syntax lakerCopyToClipboard Returns None Examples lakerCopyToClipboard See Also Layout Window: Edit > Paste lakerCorrectOffGridObj The lakerCorrectOffGridObj command fixes off-grid instance or geometric shape in the working cell view by shifting the off-grid point to the closest grid point. Syntax lakerCorrectOffGridObj -mode mode -show option -correct item Returns None Arguments Argument Description -correct item Specify the item to be corrected. Valid values: index and all. index: fixes particular object by giving its index number (1 2 3 ...) such as 1 represents the first matched item.all: fixes all objects. Laker³ Tcl Reference Manual K-2015.06 697 Chapter 7: Layout Window Edit Commands Argument Description -mode mode Define the filter mode for the search of off-grid objects. Valid values: cell and select. cell: searches on all objects within the working cell view. select: searches on the selected objects only. -show option Define the filter mode for the matches of your search result. Valid values: Instance and Shape. Instance: displays off-grid instance only. Shape: displays off-grid geometric shape only. Examples # Fix matched items 1 and 3 that the Find process found # in the working cell view lakerCorrectOffGridObj -mode cell -show Instance Shape \ -correct 1 3 See Also Layout Window: Edit > Others > Correct Off-grid Object lakerCutCorner The lakerCutCorner command cuts the object corner at 45 degrees or smooths the object corner with the Arc Sides setting. Syntax lakerCutCorner [-cutangleLen nLength] [-cutangleSides nSides] Returns None Arguments 698 Argument Description -cutangleLen nLength Specify the cutting length (default=1.0). -cutangleSides nSides Specify the arc sides of the cutting corner (default=8). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Examples # Example 1 # Cut the selected object corner to 8 sides using 0.2 radius lakerCutCorner -cutangleLen 0.2 -cutangleSides 8 See Also Layout Window: Edit > Others > Cut Corner lakerCutFinBdry The lakerCutFinBdry command cuts the fin boundary on design. Syntax lakerCutFinBdry [-cutLen nLength] [-stepTracksNum num] [lastStepTracks mode] Returns None Arguments Argument Description -cutLen nLength Specify the cut length. Valid value: a floating number (default=1.0). -lastStepTracks mode Specify the minimum number of tracks to be covered in the last step. Valid values: stepTracks and minTracks (default=stepTracks). -stepTrackNum num Specify the number of step tracks to be covered in the vertical segment for each step. Valid value: an integer (default=1). Examples # Example 1 lakerCutFinBdry -cutLen 0.2 - stepTracksNum 2 \ -lastStepTracks stepTracks See Also Layout Window: Edit > Others > Cut Fin Boundary Laker³ Tcl Reference Manual K-2015.06 699 Chapter 7: Layout Window Edit Commands lakerCutPolyShape When a poly shape is entirely crossed by a cut shape, and they are both on the same design hierarchy, the lakerCutPolyShape command divides the poly shape into two poly shapes. Syntax lakerCutPolyShape -cutoffLayer layerName [-cutoffPurpose purposeName] -polyLayer layerName [-polyPurpose purposeName] Returns None Arguments Argument Description -cutoffLayer layerName Specify the layer name of the cut layer. -cutoffPurpose purposeName Specify the purpose name of the cut layer (default=drawing). -polyLayer layerName Specify the layer name of the poly layer. -polyPurpose purposeName Specify the purpose name of the poly layer (default=drawing). Examples # Example 1 lakerCutPolyShape -cutoffLayer POLY2 -polyLayer POLY See Also Layout Window: Edit > Others > Cut Poly Shape lakerDeleteObj The lakerDeleteObj command deletes the selected object(s). Syntax lakerDeleteObj 700 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Returns None Examples lakerDeleteObj See Also Layout Window: Edit > Delete lakerDtbAlign The lakerDtbAlign command aligns more than one object at one time. Syntax lakerDtbAlign -opt alignOpt Returns None Arguments Argument Description -opt alignOpt Valid values: left, right, verCenter, hozCenter, bottom, top, verDistrib, and hozDistrib. left: Align to the left. right: Align to the right. verCenter: Align to the vertical center. hozCenter: Align to the horizontal center. bottom: Align to the bottom. top: Align to the top. verDistrib: Vertical distribution with spacing. hozDistrib: Horizontal distribution with spacing. Examples lakerDtbAlign -opt left See Also Layout Window: Edit > Others > Distributed & Align Laker³ Tcl Reference Manual K-2015.06 701 Chapter 7: Layout Window Edit Commands lakerGroupObj The lakerGroupObj command joins selected objects into one group so they behave as one unit. Syntax lakerGroupObj -append 0|1 -name groupName Returns None Arguments Argument Description -append 0|1 Valid values: Boolean values, 0 and 1. 1 : Append selected objects to an existing group. 0 : Create a new group. -name groupName Specify the group name. Examples lakerGroupObj -append 1 -name g1 See Also Layout Window: Edit > Group lakerHybridAlign The lakerHybridAlign command aligns more objects at one time with hybrid modes. Syntax lakerHybridAlign -mode mode [-align 0|1] [-distribute 0|1] [-distributeMethod method] [-spacing value] [-orthogonal 0|1] [-sorting 0|1] [-orthogonalDirection Direction] [orthogonalSpacing value] [-reverseSorting 0|1] [sortMethod method] [-layerName layerName -purpose purposeName] [-snap 0|1] Returns None 702 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Arguments Argument Description -align 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Align option. 0 : Disable the Align option. -distribute 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Distribute by option. 0 : Disable the Distribute by option. -layerName layerName -purpose purposeName Specify the layer and the layer’s purpose name for snapping boundary. -distributeMethod method Specify the distribute method. Valid values: spacing and pitch. -mode mode Specify the align mode. Valid values: alignLeft, alignRight, alignTop, alignBottom, alignVerticalCenter, and alignHorizontalCenter. -orthogonal 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Orthogonal option. 0 : Disable the Orthogonal option. -orthogonalDirection Direction Specify the orthogonal direction. Valid values: rightUp, rightDown, topLeft, and topRight. -orthogonalSpacing value Specify the orthogonal distance between objects’ edges or centers. -reverseSorting 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Reverse option. 0 : Disable the Reverse option. -snap 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Snap by Reference Point option. 0 : Disable the Snap by Reference Point option. -sorting 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Sorting by option. 0 : Disable the Sorting by option. Laker³ Tcl Reference Manual K-2015.06 703 Chapter 7: Layout Window Edit Commands Argument Description -sortMethod method Specify the sorting method. Valid values: InstanceName, CellName, and NetName. -spacing value Specify the distance between objects’ edges or centers. Examples lakerHybridAlign -align 1 -alignMode alignLeft -distribute 1 \ -spacing 100 -orthogonalSpacing 1 -orthogonalSpacingValue 200 \ -distributeMethod spacing -sorting 1 -sortingMethod CellName \ -reverseSorting 0 -snap 0 See Also Layout Window: Edit > Others > Distributed and Align lakerLayerGen The lakerLayerGen command changes the shapes of specific layer by using the Boolean operation. Syntax lakerLayerGen -layerName layerName1 layerName2 layerName3 [-with operationWith] [-purpose purpose1 purpose2 purpose3] [-op booleanOperation] Returns None Arguments Argument Description -layer layerName1 layerName1 specifies the layer of main shapes, layerName2 layerName3 layerName2 specifies the layer of operating shapes, and layerName3 specifies the layer of resulting shapes. -op booleanOperation 704 Set the Boolean operation. Valid values: OR, AND, NOT, and XOR (default=OR). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Argument Description -purpose purpose1 purpose2 purpose3 purpose1 specifies the purpose of main shapes, purpose2 specifies the purpose of operating shapes, and purpose3 specifies the purpose of resulting shapes. (default=drawing) -with operationWith Set the operation objects are from visible layers or selectable layers. Valid values: visible and select (default=visible). Examples lakerLayerGen -op AND -layerName PIMP POLY PWELL lakerLayerGen -op NOT -with select -layerName PIMP POLY PWELL See Also dbLayerGen Layout Window: Edit > Others > Layer Gen... lakerMakeCell The lakerMakeCell command makes a cell view from the selected objects. Syntax lakerMakeCell -cell cellName [-lib libName] -view viewName -instname instName [-replace 0|1] [-overwrite 0|1] [originOffset (Dx,Dy)] [-originPoint (x,y)] Returns None Arguments Argument Description -cell cellName Specify the new cell. -instname instName Specify the new instance name. -lib libName Specify the library database. The default is the active library. Laker³ Tcl Reference Manual K-2015.06 705 Chapter 7: Layout Window Edit Commands Argument Description -originOffset (Dx,Dy) Set the origin offset. The default is (0,0). -originOffset takes higher priority than -originPoint. -originPoint (x,y) Set the point of the top cell view as the instance origin. The default is (0,0). -overwrite 0|1 Valid values: Boolean values, 0 and 1. 1 : Overwrite the selected cell. 0 : Do not overwrite the selected cell. -replace 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Replace Figures option. 0 : Disable the Replace Figures option. -view viewName Specify the view type of the cell (default=layout). Examples # Example 1 lakerMakeCell -replace 1 -cell INV_0 -view layout \ -instname aaa -overwrite 1 See Also lakerSchMakeNode dbSchMakeNode Layout Window: Edit > Make Cell lakerMergeObj The lakerMergeObj command merges the selected shapes that touch or overlap each other into one shape. Shapes on different layers cannot be merged. Syntax lakerMergeObj [-sameNetOnly 0|1] [-moveColPoint 0|1] Returns None 706 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Arguments Argument Description -sameNetOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Merge shapes with the same net. 0 : Merge shapes but the belonging net name is cleared. -moveColPoint 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Delete the points that approximate to collinear after merging. 0 : Keep the points that approximate to collinear after merging. Examples # Example 1 lakerMergeObj -sameNetOnly 1 # Example 2 lakerMergeObj -moveColPoint 1 See Also Layout Window: Edit > Merge lakerMirrorX The lakerMirrorX command mirrors the selected objects along the x-axis. Syntax lakerMirrorX [-individual 0|1] Returns None Arguments Argument Description -individual 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Individual Swap option. 0 : Disable the Individual Swap option. Examples lakerMirrorX Laker³ Tcl Reference Manual K-2015.06 707 Chapter 7: Layout Window Edit Commands See Also Layout Window: Edit > Others > Mirror X lakerMirrorY The lakerMirrorY command mirrors the selected objects along the y-axis. Syntax lakerMirrorY [-individual 0|1] [-refPoint (x0,y0)] Returns None Arguments Argument Description -individual 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Individual Swap option. 0 : Disable the Individual Swap option. -refPoint (x0,y0) Specify a reference coordinate to mirror. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples # Example 1 lakerMirrorY -refPoint (-16.58169,-13.31044) # Example 2 lakerMirrorY -individual 1 See Also Layout Window: Edit > Others > Mirror Y lakerMoveObj The lakerMoveObj command moves the selected object from reference point to offset point. 708 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Syntax lakerMoveObj -refPoint (x0,y0) -offsetPoint (x0,y0) [-orient orientation] [-layerName layerName [-purpose purpose]] [-ignoreNet 0|1] Returns None Arguments Argument Description -ignoreNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Ignore the net of shapes/contacts. 0 : Do not ignore the net of shapes/contacts. -layerName layerName Move a shape to another layer. The moved shapes are changed by a specific layer. -offsetPoint (x0,y0) Specify an offset direction to move. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -orient orientation Specify the orientation for objects. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -purpose purpose Move a shape to another layer purpose. The moved shapes are changed by a specific purpose. -refPoint (x0,y0) Specify a reference coordinate to move. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerMoveObj -refPoint (3.440,15.890) \ -offsetPoint (9.210,11.890) -orient R90 -layerName FUSE1 See Also Layout Window: Edit > Move Laker³ Tcl Reference Manual K-2015.06 709 Chapter 7: Layout Window Edit Commands lakerPasteObj The lakerPasteObj command pastes the copied or yanked object from clipboard to the current cell view. Syntax lakerPasteObj -point (x0,y0) [-stack 0|1] [-guiMode 0|1] [-oneExecute 0|1] [-procedure procedureName] [clientData clientData] [-orient orientation] [-justify justification] Returns None Arguments 710 Argument Description -clientData clientData Specify the client data, which is treated as the second argument of the specified procedure. -guiMode 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Apply the interactive GUI mode after this Tcl is exectued and show the rubber banding of stacked layout objects. 0 : Do not apply the interactive GUI mode after this Tcl is executed. -justify justification Specify the justification of the pasting referenced point. Valid values: Original, UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=Original). -oneExecute 0|1 Valid values: Boolean values, 0 and 1. 1 : Execute this Tcl in one time execution mode. 0 : Execute this Tcl in continuous mode. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -point (x0,y0) Specify a position to paste. x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Argument Description -procedure procedureName Specify a Tcl procedure name. For example: proc tcl_procedure {reason clientData} {...} -stack 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the stacking function. 0 : Disable the stacking function. Examples # Example 1 lakerPasteObj -point (9.210,11.890) -orient R90 # Example 2 lakerPasteObj -point (0.0,2.89) -justify Original -stack 1 \ -guiMode 1 -oneExecute 0 -procedure iPasteCB \ -clientData [lakerGetSelSet] # Example 3 lakerPasteObj -point (22.935,12.25) -justify CenterCenter \ -stack 1 -guiMode 1 -procedure iPasteCB See Also Layout Window: Edit > Paste lakerPropagateNet The lakerPropagateNet command assigns a net to all shapes, route objects, or instance pins without a net name in the working cell view by propagating the net name from their overlapping shapes, route objects, or instance pins. Syntax lakerPropagateNet Returns None Examples lakerPropagateNet See Also Layout Window: Edit > Net Operation > Propagate Net Laker³ Tcl Reference Manual K-2015.06 711 Chapter 7: Layout Window Edit Commands lakerReassignNet The lakerReassignNet command reassigns an existing net to another net name. Syntax lakerReassignNet -netName newName Returns None Arguments Argument Description -netName newName Specify a net name to the selected objects. Examples lakerReassignNet -netName n1 See Also Layout Window: Edit > Net Operation > Reassign Net lakerRedo The lakerRedo command repeats the last editing command. Syntax lakerRedo Returns None Examples # redo the last editing command lakerRedo See Also Layout Window: Edit > Redo 712 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands lakerRepeatObj The lakerRepeatObj command repeats the last copy command to newly selected objects. Syntax lakerRepeatObj Returns None Examples lakerRepeatObj See Also Layout Window: Edit > Others > Repeat lakerReshapeObj The lakerReshapeObj command reshapes the selected object with a point array. Syntax lakerReshapeObj -point point [-mode reshapeMode] [-swap swapNo] Returns None Arguments Argument Description -mode reshapeMode Reshape mode sets whether you are adding a rectangle, polygon or redrawing a path. Valid values: rectangle and line (default=rectangle). -point point (x0,y0)...(xn,yn) Draw a point array to reshape a shape. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. Laker³ Tcl Reference Manual K-2015.06 713 Chapter 7: Layout Window Edit Commands Argument Description -swap swapNo The reshape action always makes two shapes but only one can be selected; while the swap option selects the value that is not selected by default. Examples lakerReshapeObj -mode line -swap 1 \ -point (0,0) (10,10) (25,20) (30,-35) See Also Layout Window: Edit > Reshape lakerRotate The lakerRotate command rotates the selected objects at any angle. This command does not support the rotation of MCells, instances, text labels, Tcl PCells, ruler labels, and dimension marks. Syntax lakerRotate -point (x0,y0) -angle angle [-snap 0|1] Returns None Arguments Argument Description -angle angle Specify the angle to rotate the object. -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -snap 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Snap rotated objects onto the grid resolution. 0 : Do not snap rotated objects onto the grid resolution. Examples lakerRotate -point (0,0) -angle 20.0 -snap 1 See Also Layout Window: Edit > Others > Rotate 714 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands lakerRotate90 The lakerRotate90 command turns the selected objects at 90 degrees counterclockwise. Syntax lakerRotate90 Returns None Examples lakerRotate90 See Also Layout Window: Edit > Others > Rotate 90 lakerSelGroupByName The lakerSelGroupByName command queries groups by name and adds the matched group to the select set. Syntax lakerSelGroupByName -groupName groupName -zoomTo 0|1 Returns None Arguments Argument Description -groupName groupName Specify the group name. Multiple groups must be separated by spaces. -zoomTo 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Fit the highlighted group to screen. 0 : Highlight the group with the current viewing area. Examples lakerSelGroupByName -groupName g3 g5 -zoomTo 1 Laker³ Tcl Reference Manual K-2015.06 715 Chapter 7: Layout Window Edit Commands See Also Layout Window: Edit > Group Operation > Select Group By Name lakerShiftOrigin The lakerShiftOrigin command shifts the original point of the active cell view to a new origin. Syntax lakerShiftOrigin -point (x0,y0) Returns None Arguments Argument Description -point (x0,y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerShiftOrigin -point (9.210,11.890) See Also dbShiftOrigin Layout Window: Edit > Others > Shift Origin lakerSlitSlot The lakerSlitSlot command slots on AnyAngle metal shapes. Syntax lakerSlitSlot -action create -mode mode [-slitLayer {layer purpose}] [-guideline {layer purpose} [deleteGuideline]] [-operation booleanOP -blockLayer {layer purpose}] [-ruleDef rules] lakerSlitSlot -loadRuleFile -filename fileName lakerSlitSlot -saveRuleFile -filename fileName Returns None 716 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Arguments Argument Description -action create Generate slot shapes. -blockLayer {layer purpose} Specify the layer and purpose of the blockage layer. -deleteGuideline Delete the guildline after slitting. -fileName fileName Specify the rule file for loading and saving. -guideline {layer purpose} Specify the layer and purpose of the guideline layer. -loadRuleFile Load the rules from an existing file. -mode mode Specify the slitting mode. Valid values: Cell and Select (default=Cell). -operation booleanOP Specify the Boolean operation between the slit layer and the blockage layer. Valid values: AND and NOT. -ruleDef rules Specify the slit rules with the following format: {rulename value}. -saveRuleFile Save the rules to a file. -slitLayer {layer purpose} Specify the layer and purpose of the slit layer. Laker³ Tcl Reference Manual K-2015.06 717 Chapter 7: Layout Window Edit Commands Examples # Example 1 lakerSlitSlot -action create -slitLayer {Met1 drawing} \ -guideline {poly drawing} -operation not -blockLayer \ {BLOCK1 drawing} -mode cell -ruleDef {slitWidth 3} # Example 2 # Load the rule file lakerSlitSlot -loadRuleFile -filename /home/work/laker.st \ -saveToRC 0 # Example 3 # Save the rule file lakerSlitSlot -saveRuleFile -filename /home/work/laker.st \ -saveToRC 0 See Also Layout Window: Edit > Slit lakerSmashObj The lakerSmashObj command flattens the number of levels of instances, which include Tcl PCells, MCells and leaf cells as polygon data, based on the user-specified level. Syntax lakerSmashObj [-level level] [-SmashArrayInst 0|1] [autoGroup 0|1] [-smashStripedWire 0|1] Returns None Arguments 718 Argument Description -autoGroup 0|1 Valid value: Boolean values, 0 and 1 (default=0). 1 : Group objects of the smashed instance automatically. 0 : Do not group objects of the smashed instance. -level level Specify the number of design hierarchy levels to be smashed (default=all levels). Valid value: a non-negative integer, 1-50 (default=1). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Argument Description -SmashArrayInst 0|1 Valid value: Boolean values, 0 and 1 (default=0). 1 : Smash instances, arrays or MCells. 0 : Do not smash any instances, arrays or MCells. -smashStripedWire 0|1 Valid value: Boolean values, 0 and 1 (default=0). 1 : Only the striped wire is smashed and the normal instance or MCell are not smashed. 0 : Do not smash any stripe wires or normal instances/ MCells. Examples # Example 1 lakerSmashObj -level 1 -SmashArrayInst 1 # Example 2 lakerSmashObj -level 2 -autoGroup 1 See Also dbSmashInst dbSchFlatten lakerSchFlattenAll lakerSchFlattenLvl lakerSchFlattenOne Layout Window: Edit > Smash lakerSplitArray The lakerSplitArray command separates selected instance arrays. Syntax lakerSplitArray [-swap swapNo] -point (x1,y1) (x2,y2) Returns None Laker³ Tcl Reference Manual K-2015.06 719 Chapter 7: Layout Window Edit Commands Arguments Argument Description -point (x1,y1) (x2,y2) Draw a line to split instance array. x1, x2 specify the x coordinate for the point array while y1, y2 specify the y coordinate. -swap swapNo The split action makes two parts of split segment but only one can be selected; while the swap option selects the value that is not selected, by default. Examples lakerSplitArray -swap 1 -point (7.318,6.349) (13.533,6.349) See Also Layout Window: Edit > Split Array lakerSplitNet The lakerSplitNet command splits an existing net to multiple net segments. Syntax lakerSplitNet [-mode splitMode] -points point list -net {{netName (x,y)} ... } Returns None Arguments 720 Argument Description -mode splitMode Specify the split mode to control the shape to be used as the cutter. Valid values: rectangle and polygon (default=rectangle). -net {{netName (x,y)} ... } Specify the objects included in the region, the point (x,y) located on, with the net name. -points point list Draw a point array to split net. x0...xn specifies x corrdinate for the point array while y0...yn specifies y coordinate. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Examples # Example 1 lakerSplitNet -mode rectangle -points \ (21.368,32.128) (26.781,41.427) \ -net {n1_1 (21.368,33.763)} {n1_2 (26.781,33.763)} # Example 2 lakerSplitNet -mode polygon \ -points (20.813,41.288) (20.813,32.128) (8.877,32.128) \ (8.877,27.548) (8.877,27.548) (25.671,27.548) (25.671,41.288) \ -net {n1_1 (25.671,30.794)} {n1_2 (18.395,27.548)} \ {n1_3 (11.074,32.128)} {n1_4 (23.553,27.548)} See Also Layout Window: Edit > Net Operation > Split Net lakerSplitObj The lakerSplitObj command uses a line to spilt and stretches the selected object from reference point to offset point. Syntax lakerSplitObj -point point -refPoint (x0,y0) -offsetPoint (x0,y0) [-swap swapNo] [-lockAngle 0|1] [-layerName layerName] [-purpose purpose] Returns None Arguments Argument Description -layerName layerName Stretch a shape to another layer. The stretched shapes are changed by a specific layer. -lockAngle 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Lock the angle of objects while stretching in order to prevent changes. 0 : Do not lock the angle of objects while stretching. -offsetPoint (x0,y0) Specify an offset direction to stretch part of splitter edges. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. Laker³ Tcl Reference Manual K-2015.06 721 Chapter 7: Layout Window Edit Commands Argument Description -point point (x0,y0)...(xn,yn) Draw a line to split shapes. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -purpose purpose Stretch a shape to another layer purpose. The stretched shapes are changed by a specific purpose. -refPoint (x0,y0) Specify a reference coordinate to stretch part of splitter edges. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. -swap swapNo The split action makes two parts of stretched edges but only one can be selected; while the swap option selects the value that is not selected, by default. Examples lakerSplitObj -lockAngle 1 -point (0,0) (10,10) (25,20) (30,-35) -refPoint (-6.020,13.650) -offsetPoint (-4.420,12.120) layerName POLY See Also Layout Window: Edit > Split lakerStretchObj The lakerStretchObj command stretches the selected object from a reference point to an offset point. Syntax lakerStretchObj [-push] -refPoint (x0,y0) -offsetPoint (x0,y0) [-lockAngle 0|1] [-layerName layerName [-purpose purpose]] [-ignoreNet 0|1] [-slideRail mode] Returns None 722 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Arguments Argument Description -ignoreNet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Ignore Logic Information (Shape/Contact) option. 0 : Disable the Ignore Logic Information (Shape/Contact) option. -layerName layerName Stretch a shape to another layer. The stretched shapes are changed by a specified layer. -lockAngle 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Lock Angle option. 0 : Disable the Lock Angle option. -offsetPoint (x0,y0) Specify an offset direction to stretch. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -purpose purpose Stretch a shape to another layer purpose. The stretched shapes are changed by a specific purpose. -push Enable the push-wire function. -refPoint (x0,y0) Specify a reference coordinate to stretch. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. -slideRail mode Specify the slide-rail mode. Valid values: individual, backbone, and fixedVia (default=individual). Examples # Example 1 lakerStretchObj -refPoint (-6.0,13.6) -offsetPoint (4.420,12.120) \ -layerName POLY # Example 2 lakerStretchObj -push -refPoint (-1.49,1.28) -ignoreNet 0 \ -offsetPoint (-1.49,-0.96) # Example 3 lakerStretchObj -slideRail fixedVia -refPoint (3.425,1.855) \ -ignoreNet 0 -offsetPoint (3.425,2.105) Laker³ Tcl Reference Manual K-2015.06 723 Chapter 7: Layout Window Edit Commands See Also Layout Window: Edit > Stretch lakerStripeWire The lakerStripeWire command stripes selected wire objects, including paths, pathSegs, and vias. Syntax lakerStripeWire [-policy StripePolicy] [-beginStrap 0|1] [endStrap 0|1] [-expandSel] Returns None Arguments Argument Description -beginStrap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Indicate there is a strap at the begin terminal. 0 : Do not indicate the strap at the begin terminal. -endStrap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Indicate there is a strap at the end terminal. 0 : Do not indicate the strap at the end terminal. -expandSel When specified, expands selection from current selected objects. -policy StripePolicy Sets striped width, spacing, and number. Valid values: Optimal, Footprint, and Width (default=Optimal). Examples # Stripe the selected wire objects with optimal policy, # do not create strap at begin/end. lakerStripeWire -policy Optimal -beginStrap 0 -endStrap 0 \ -expandSel 724 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands lakerSwapInstPort The lakerSwapInstPort command swaps the net of two specified instance ports. Syntax lakerSwapInstPort [[-inst instance_name] | -portName port_name] Returns None Arguments Argument Description -inst instance_name Specify the instance. -portName port_name Specify the two ports to be swapped. Examples # Swap the net of instance(xsc) port(a,b) lakerSwapInstPort -inst xsc -portName a b See Also Layout Window: Edit > Net Operation > Swap Instance Port lakerSwapPort lakerTrimWire The lakerTrimWire command trims the edge of selected objects to the nearest wire, the cross edge or area. Syntax lakerTrimWire [-mode mode] [-net 0|1] Returns None Laker³ Tcl Reference Manual K-2015.06 725 Chapter 7: Layout Window Edit Commands Arguments Argument Description -mode mode Specify the preferred mode for trimming. Valid values: Wire, ViaEdge, and ViaCnter (default=Wire). -net 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Trim by Net option. 0 : Disable the Trim by Net option. Examples # To trim the wire to the nearest edge of the cross object # without considering the net relationship lakerTrimWire -mode Wire -net 0 See Also Layout Window: Edit > Others > Trim Wire lakerTunnelObj The lakerTunnelObj command makes an opening through the selected path with a point array, and then replaces the opening with a contact and connects the path with a new layer. Syntax lakerTunnelObj -point point -cutoffLayerName cutoffLayerName [-cutoffPurpose cutoffPurpose] replaceLayerName replaceLayerName [-replacePurpose replacePurpose] [-via2via via2via] [-contRow contRow] [-repWidth repWidth] [-xLay1Enc xLay1Enc] [-yLay1Enc yLay1Enc] [-xLay2Enc xLay2Enc] [-yLay2Enc yLay2Enc] [viaGroup mode -viaDef ViaName] Returns None Arguments 726 Argument Description -contRow contRow Specify the number of rows for contact arrays. Valid value: an integer (default=1). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands Argument Description -cutoffLayerName cutoffLayerName Assign to a cutoff layer. The operation shape is cut by a specified layer. -cutoffPurpose cutoffPurpose Assign to a cutoff layer purpose. The operation shape is cut by a specified purpose (default=drawing). -point point (x0,y0)...(xn,yn) Draw a point array to tunnel path shapes. x0...xn specify the x coordinate for the point array while y0...yn specify the coordinate. -replaceLayerName replaceLayerName Assign to another layer. The operation shape is changed by a specified layer. -replacePurpose replacePurpose Assign to another layer purpose. The operation shape is changed by a specified purpose (default=drawing). -repWidth repWidth Change to the replaced path width. The cutoff width is kept by default. -via2via via2via Specify the spacing for the center of the contact position to another between two paths. Valid value: a floating number (default=0.0) -viaDef ViaName Specify the name of the via definition. -viaGroup mode Specify the via group. Valid values: MCell and RouteVia. If -viaGroup MCell is specified and the MCell contact device definition exists in the technology file, vias are created based on the MCell contact device definition. If -viaGroup RouteVia is specified and the standard/custom via definition exists in the technology file, vias are created based on the standard/custom via definition. If -viaGroup is not specified, vias are created automatically when changing the layer. -xLay1Enc xLay1Enc Laker³ Tcl Reference Manual K-2015.06 Specify the horizontal enclosure distance between the contact layer and the first connected layer. 727 Chapter 7: Layout Window Edit Commands Argument Description -xLay2Enc xLay2Enc Specify the horizontal enclosure distance between the contact layer and the second connected layer. -yLay1Enc yLay1Enc Specify the vertical enclosure distance between the contact layer and the first connected layer. -yLay2Enc yLay2Enc Specify the vertical enclosure distance between the contact layer and the second connected layer. Examples # Example 1 lakerTunnelObj -point (0,0) (10,10) (25,20) (30,-35) \ -cutoffLayerName POLY -replaceLayerName MET1 # Example 2 lakerTunnelObj -point (-1547.94,-27.495) (-1547.94,-19.99) \ (-1537.81,-19.99) (-1537.81,-27.495) \ -cutoffLayerName METAL1 -replaceLayerName METAL2 \ -viaGroup RouteVia -viaDef via1Array -xLay1Enc 0.2 \ -yLay1Enc 0.2 -xLay2Enc 0.2 -yLay2Enc 0.2 # Example 3 lakerTunnelObj -point (-1552.89,-20.195) (-1552.89,-15.795) \ (-1545.705,-15.795) (-1545.705,-20.195) \ -cutoffLayerName METAL1 -replaceLayerName METAL2 \ -viaGroup MCell -viaDef M1_M2 -xLay1Enc 0.2 -yLay1Enc 0.2 \ -xLay2Enc 0.2 -yLay2Enc 0.2 See Also Layout Window: Edit > Tunnel lakerUndo The lakerUndo command reverses the last editing command. Syntax lakerUndo Returns None Examples # undo the last editing command lakerUndo 728 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Edit Commands See Also Layout Window: Edit > Undo lakerUngroupObj The lakerUngroupObj command separates previously grouped objects so that they can be manipulated individually. Syntax lakerUngroupObj [-level level] Returns None Arguments Argument Description -level level Specify the number of design hierarchy levels to be ungrouped. Valid value: a non-negative integer, 1-50. Examples lakerUngroupObj -level 1 See Also Layout Window: Edit > Ungroup lakerYankObj The lakerYankObj command returns a clipboard cell view identifier if the selected objects or a set of area enclosing the objects can be copied to the yank buffer for later pasting. Syntax lakerYankObj -refPoint (x,y) [-point (x1,y1) ... (xn,yn)] Returns A clipboard cell view identifier if successful; otherwise, returns nothing. Laker³ Tcl Reference Manual K-2015.06 729 Chapter 7: Layout Window SDL Commands Arguments Argument Description -point (x1,y1) ... (xn,yn) Specify the coordinate points for yank area. If you specify two points only, (x1,y1) specifies the lower left corner of the bounding box while (x2,y2) specifies the upper right corner. If this argument is not specified, the selected objects are copied to the yank buffer. -refPoint (x,y) Specify the referenced point for later pasting. Examples # for yank the selected objects lakerYankObj # if nothing selection, yank with rectangle lakerYankObj -point (3.0,15.0) (9.0,11.5) # if nothing selection, yank with polygon lakerYankObj -point (0.0,0.0) (0.0,5.0) (5.0,5.0) (5.0,10.0) (10.0,10.0) (10.0,0.0) See Also Layout Window: Edit > Yank SDL Commands This section describes the Tcl commands applied to the SDL commands of the Layout window. These commands include: 730 ■ lakerCopyAssoc ■ lakerCrSoftPin ■ lakerDelPin ■ lakerDelSoftPin ■ lakerGenPin ■ lakerMatch ■ lakerPasteWithLogic ■ lakerPatternReuse Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands ■ lakerToStickDiagram ■ lakerYankWithLogic lakerCopyAssoc The lakerCopyAssoc command copies a selected layout pattern on the layout window and associate the logic information for the matched candidates. Syntax Dump the searched results of candidates: lakerCopyAssoc [-mode mode] [-selObj 0|1] [-parameter 0|1] [-autoMapInfo fileName] Create and associate the data: lakerCopyAssoc [-arrayMode 0|1] [-rearrangeMaster 0|1] [cols columnNum -rows rowNum -typeIn 0|1 -colSpace colSpace -rowSpace rowSpace] [-orient orientationList] [-mapInfo mapInfoList -point point (x0,y0)...(xn,yn)] [[rowDoubleBack 0|1] [-colDoubleBack 0|1] [-flipRow 0|1] [-flipCol 0|1]] Returns None Arguments Argument Description -arrayMode 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Arrange objects by array style. 0 : Do not arrange objects by array style. -autoMapInfo fileName Specify the output file to save the candidate data. -colDoubleBack 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Double Back for Columns option. 0 : Disable the Double Back for Columns option. This argument is valid only if -arrayMode 1 is specified. -cols colsNum Specify the number of columns for instances. Valid value: an integer (default=1). Laker³ Tcl Reference Manual K-2015.06 731 Chapter 7: Layout Window SDL Commands 732 Argument Description -colSpace colSpace Specify the number of instances for y coordinate spacing. Valid value: a floating number. -flipCol 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Flip All Columns option. 0 : Disable the Flip All Columns option. This argument is valid only if -arrayMode 1 is specified. -flipRow 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Flip All Rows option. 0 : Disable the Flip All Rows option. This argument is valid only if -arrayMode 1 is specified. -mapInfo mapInfoList Specify the mapping information list with the following format: { {userDefInstName1} {mapInstName1} {userDefInstName2} {mapInstName2}...} { {userDefNetName1} {mapNetName1} {userDefNetName2} {mapNetName2}...}} where userDefInstName is the specified instance, userDefNetName is the specified net, mapInstName is the instance to be reused, and mapNetName is the net to be reused. -mode mode Valid values: connection and topology (default=connection). connection : Only the net connection is considered when searching candidates. topology : No net connection but the topology relationship is considered when searching candidates. -orient orientationList Specify the orientation list with the following format: { R0 R0 R90 R180 ... } Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands Argument Description -parameter 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Compare with the device parameters (dimension), for example: W and L for MOS devices, and value for resistors and capacitors. 0 : Do not compare with the above device parameters. -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -rearrangeMaster 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Rearrange master cells. 0 : Do not rearrange master cells. This argument is valid only if -arrayMode 1 is specified. -rowDoubleBack 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Double Back for Rows option. 0 : Disable the Double Back for Rows option. This argument is valid only if -arrayMode 1 is specified. -rows rowsNum Specify the number of rows for instances. Valid value: an integer (default=1). -rowSpace rowSpace Specify the number of instances for the x coordinate spacing. Valid value: a floating number. -selObj 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Selected Objects option. 0 : Disable the Selected Objects option. -typeIn 0|1 Valid values: Boolean values, 0 and 1. 1 : Specify the x- and y-spacing between objects when copying them with array mode. 0 : Do not specify the x- and y-spacing between objects when copying them with array mode. Laker³ Tcl Reference Manual K-2015.06 733 Chapter 7: Layout Window SDL Commands Examples # Example 1 # Dump the searched results to a file lakerCopyAssoc -mode topology -selObj 1 -parameter 0 \ -autoMapInfo topology.out # Example 2 lakerCopyAssoc -arrayMode 1 -cols 2 -rows 3 -typeIn 1 \ -colSpace 2.5 -rowSpace 3.3 -mapInfo \ {{{M10} {M9} {M11} {M12}} {{M14} {M13} {M15} {M16}} \ {{M20} {M19} {M17} {M18}} {{M25} {M26} {M28} {M27}} \ {{M95} {M96} {M97} {M98}} {{M5} {M6} {M8} {M7}}} \ -point (31.25,11.02) -orient { R0 } # Example 3 lakerCopyAssoc -arrayMode 0 -mapInfo \ {{{M10} {M9} {M11} {M12}} {{M14} {M13} {M15} {M16}} \ {{M20} {M19} {M17} {M18}} {{M25} {M26} {M28} {M27}} \ {{M95} {M96} {M97} {M98}} {{M5} {M6} {M8} {M7}}} \ -point (40.72,52.668) (34.096,47.463) (30.31,35.633) \ (52.55,44.624) (31.257,28.772) (63.906,42.494) \ -orient { R0 R0 R90 R180 R270 R0 } See Also Layout Window: SDL > Copy & Associate lakerCrSoftPin The lakerCrSoftPin command creates soft pin after opening the layout cell. Syntax lakerCrSoftPin Returns None Examples lakerCrSoftPin See Also Layout Window: SDL > Soft Pin > Create Soft Pin 734 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands lakerDelPin The lakerDelPin command deletes all system pins, generated by the Generate System Pin command. Syntax lakerDelPin Returns None Examples lakerDelPin See Also Layout Window: SDL > Delete System Pin lakerDelSoftPin The lakerDelSoftPin command deletes the selected soft pin. Syntax lakerDelSoftPin Returns None Examples lakerDelSoftPin See Also Layout Window: SDL > Soft Pin > Delete Soft Pin lakerGenPin The lakerGenPin command creates real pins for soft pins. It automatically creates pin shapes from the traversed shape with net and port properties and removes the soft pin(s) after realization. Laker³ Tcl Reference Manual K-2015.06 735 Chapter 7: Layout Window SDL Commands Syntax lakerGenPin [-points points] [-genPinBy label|net|mix] [-report 0|1] [-topLevelOnly 0|1] [-extLevel levelNo] [-useColonVirtual 0|1] [-pinSize 0|1 -width width [excludePoly 0|1] [-topMetalLayer number] [-thruVia 0|1]] [-usePinPurpose 0|1] [-placementStatus status] Returns 1 if successful; otherwise, returns 0. Arguments 736 Argument Description -excludePoly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Do not generate system pins with poly shapes. 0 : Generate system pins with poly shapes. -extLevel levelNo Specify the extraction level. Valid value: an integer, 0-49 (default=0). -genPinBy label|net|mix Specify the method to create system pins. Valid values: label, net, mix (default=label). -pinSize 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Pin Size option. 0 : Disable the Pin Size option. -placementStatus status Specify the pin placement status. Valid values: Fixed, Cover, Placed, Unplaced, and Null (default=Placed). -points points Specify a region to generate system pins. If it is not specified, system pins are generated in the top cell. -report 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Show a report after the command is invoked. 0 : Do not show the report after the command is invoked. -thruVia 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Propagate system pins through via/contact. 0 : Do not propagate system pins through via/contact. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands Argument Description -topLevelOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1: Create pin shapes from the traversed shapes with net and port properties at the top level, and the soft pin is removed. 0: Not only create pin shapes from the top level, but also from instances. -topMetalLayer number Valid value: an integer, larger than or equal to 1 (default=1). If it is specified, use the specified number of top metal layers to generate system pins. If it is not specified, do not use top metal layers to generate system pins. -useColonVirtual 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use colon as the virtual connection. 0 : Do not use colon as the virtual connection. This option decides whether the joint type of a generated pin shape is weak or disjointed. If the label is followed by a colon (:), it is weak. -usePinPurpose 0|1 Valid values: Boolean values, 0 and 1. 1 : Use pin purpose. 0 : Do not use pin purpose. This option decides whether the pin purpose is copied to the pin shapes. -width width Specify the width of a rectangle to limit the size of generated pin shapes. Valid value: a floating number. This argument is only valid for -pinSize 1. Laker³ Tcl Reference Manual K-2015.06 737 Chapter 7: Layout Window SDL Commands Examples # Example 1 lakerGenPin -genPinBy label -extLevel 1 -useColonVirtual 1 -pinSize 1 -width 5.0 # Example 2 lakerGenPin -points (-2.07,3.58) (-2.07,9.71) \ (7.08,9.71) (7.08,3.58) -genPinBy net -topLevelOnly 0 # Example 3 lakerGenPin -points \ {(-2.07,3.58) (-2.07,9.71) (7.08,9.71) (7.08,3.58)} \ {(-13.82,6.02) (-9.28,6.02) (-9.28,3.15) \ (-7.015,3.15) (-7.015,-0.41) (-13.82,-0.41)} \ -genPinBy net -topLevelOnly 0 # Example 4 lakerGenPin -genPinBy net -topLevelOnly 1 -topMetalLayer 2 \ -excludePoly 1 See Also Layout Window: SDL > Generate System Pin lakerMatch The lakerMatch command makes the arrangement of symmetrical patterns for analog circuits, according to the selected transistors and instances in the Layout window pane. Refer to the lakerSchMatch description for more details. Syntax lakerMatch -XSpace xSpace -YSpace ySpace -repeatRow repeatRow -repeatCol repeatCol -param matchPattern [ODSharing 0|1] [-inst instName1] Returns Refer to the Arguments section in lakerSchMatch for more details on arguments. 738 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands Examples # Example 1 lakerMatch -XSpace 1.0 -YSpace 2.0 -repeatRow 1 -repeatCol 1 \ -param {0 {0 my} 0 {0 my}} # Example 2 lakerMatch -XSpace 1.0 -YSpace 4.0 -repeatRow 1 -repeatCol 1 \ -param {0 {1 my} 0 {0 my} 1 {0 my} } {{1 mx} {0 mxy} {1 mx} \ {1 mxy} {0 mx} {1 mxy} } {0 {1 my} 0 {0 my} 1 {0 my} } # Example 3 lakerMatch -XSpace 1.2 -YSpace 1.2 -repeatRow 1 -repeatCol 2 \ -param {0 {1 my} 1 {0 my}} {{1 mx} {0 mxy} {0 mx} {1 mxy}} See Also Layout Window: SDL > Match Matching Device Creator lakerPasteWithLogic The lakerYankWithLogic command copies selected layout instances with their logic information to a yank buffer for later pasting action. The lakerPasteWithLogic command pastes instances with their logic information from a yank buffer. The combination of these two commands allows copying instances to another design. Syntax lakerPasteWithLogic [-point (x0, y0)] [-shortNet 0|1] [globalNet 0|1] [-dim 0|1] [-formGate 0|1] [-arrayMode 0|1] [-cols colsNo] [-rows rowsNo] [-typeIn 0|1] [colSpace colSpace] [-cmpInnerNet 0|1] [-rowSpace rowSpace] [-autoMapInfo fileName] [-cmpSubstrate 0|1] [mapInfo { {mappingInformation1} {mappingInformation2} ...}] [-corrPointFile corrPointFile] [-orient orientation] Returns None Laker³ Tcl Reference Manual K-2015.06 739 Chapter 7: Layout Window SDL Commands Arguments 740 Argument Description -arrayMode 0|1 Valid values: Boolean values, 0 and 1. 1 : Arrange the objects by array style. 0 : Do not arrange the objects by array style. -autoMapInfo fileName Specify a file in which the candidate data can be accessed. -cmpInnerNet 0|1 Valid values: Boolean values, 0 and 1. 1 : Compare inner nets. 0 : Do not compare any inner nets. -cmpSubstrate 0|1 Valid values: Boolean values, 0 and 1. 1 : Compare substrates. 0 : Do not compare any substrates. -cols colsNo Number of instance columns. Valid value: an integer (default=1). -colSpace colSpace Number of instance for y coordinate spacing. Valid value: a floating number. -corrPointFile corrPointFile Specify the initial corresponding file in full path. -dim 0|1 Valid values: Boolean values, 0 and 1. 1 : Consider the dimension net of primitive object if the object to be copied is a primitive object like MOS. 0 : Do not consider the dimension net of primitive object. -globalNet 0|1 Valid values: Boolean values, 0 and 1. 1 : Consider global nets. 0 : Do not consider any global nets. -shortNet 0|1 Valid values: Boolean values, 0 and 1. 1 : Consider external short nets. 0 : Do not consider any external short nets. -find 0|1 Valid values: Boolean values, 0 and 1. 1 : Get the matching list of the specified cell. 0 : Do not get the matching list of the specified cell. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands Argument Description -formGate 0|1 Valid values: Boolean values, 0 and 1. 1 : Consider the form gate topology, which treats serial or parallel device structure as equalivlent schematic circuit. 0 : Do not consider the form gate topology, which treats serial or parallel device structure as equalivlent schematic circuit. -mapInfo { {mappingInformation1} {mappingInformation2} ...} Specify the mapping information with the following format: { {userDefInstName1} {mapInstName1} {userDefInstName2} {mapInstName2}...} { {userDefNetName1} {mapNetName1} {userDefNetName2} {mapNetName2}...}} where: userDefInstName: The specified instance. userDefNetName: The specified net. mapInstName: The instance to be reused. mapNetName: The net to be reused. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -point (x0, y0) x0 specifies a position value for the x coordinate point while y0 specifies the value for the y coordinate point. -rows rowsNo Specify the number of instance rows. Valid value: an integer (default=1). -rowSpace rowSpace Specify the number of instances for the x coordinate spacing. Valid value: a floating number. -typeIn 0|1 Valid values: Boolean values, 0 and 1. 1 : Specify the x- and y-spacing between objects if copying them with array mode. 0 : Do not specify the x- and y-spacing between objects if copying them with array mode. Laker³ Tcl Reference Manual K-2015.06 741 Chapter 7: Layout Window SDL Commands Examples lakerPreSel -point (-0.702,6.89) -traversedist 0.37 \ lakerYankWithLogic \ lakerSetActiveWnd Wnd3 lakerPasteWithLogic -shortNet 0 -globalNet 1 -dim 1 -formGate 0 \ -cmpSubstrate 0 -cmpInnerNet 1 -arrayMode 1 -cols 1 -rows 1 \ -typeIn 0 -point (6.78,-11.66) -orient R0 \ -mapInfo {{ {{N4} {N4} {P4} {P4} } {{LATCH_N} {LATCH_N} \ {LATCH_P} {LATCH_P} {NET046} {NET046} {OUTPUTB} \ {OUTPUTB} {VDD!} {VDD!} {VSS!} {VSS!} } } \ { {{N3} {N4} {P3} {P4} } {{LATCH_N} {LATCH_N} \ {LATCH_P} {LATCH_P} {NET0115} {NET046} {OUTPUT} \ {OUTPUTB} {VDD!} {VDD!} {VSS!} {VSS!} } }} See Also lakerCopyAssoc lakerYankWithLogic Layout Window: SDL > Paste with Logic View lakerPatternReuse The lakerPatternReuse command defines the logic information on a layout instance when it is reused from a cell that is made from other layout objects with the same layout topology. Syntax To invoke the Pattern Reuse feature: lakerPatternReuse -start To search for candidates and dump the matched results: lakerPatternReuse -mode mode -selObj 0|1 [-autoMapInfo fileName] To select the pattern cell view: lakerPatternReuse -patternLib patternLibName -patternCell patternCellName -patternView patternViewName To select the layout mapping cell view: lakerPatternReuse -mapLib mapLibName -mapCell mapCellName mapView mapViewName 742 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands To create and associate the logic/layout data: lakerPatternReuse -realizeToLayout 0|1 [-arrayMode 0|1 -cols columnNum -rows rowNum -typeIn 0|1 -colSpace colSpace rowSpace rowSpace -rearrangeMaster 0|1] -mapInfo mapInfoList [-point pointList -orient orientationList instPrefix instNamePrefix -cellPrefix cellNamePrefix] [dumpTip fileName] To abort the Pattern Reuse feature: lakerPatternReuse -end Returns None Arguments Argument Description -arrayMode 0|1 Valid values: Boolean values, 0 and 1. 1 : Arrange objects by array style. 0 : Do not arrange objects by array style. -autoMapInfo fileName Specify the output file to save the candidate data to. -cellPrefix cellNamePrefix Specify the cell name prefix for new nodes. -colDoubleBack 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Double Back for Columns option. 0 : Disable the Double Back for Columns option. This argument is valid only if -arrayMode 1 is specified. -cols colsNum Specify the number of columns for instances. Valid value: an integer (default=1). This argument is valid only if -arrayMode 1 is specified. -colSpace colSpace Specify the number of instances for y coordinate spacing. Valid value: a floating number. This argument is valid only if -arrayMode 1 is specified. -dumpTip fileName Specify the file to save the dumped tips to. The default file name is MismatchTip.log. -end Abort this feature. Laker³ Tcl Reference Manual K-2015.06 743 Chapter 7: Layout Window SDL Commands 744 Argument Description -flipCol 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Flip All Columns option. 0 : Disable the Flip All Columns option. This argument is valid only if -arrayMode 1 is specified. -flipRow 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Flip All Rows option. 0 : Disable the Flip All Rows option. This argument is valid only if -arrayMode 1 is specified. -instPrefix instNamePrefix Specify the instance name prefix for new nodes. -mapCell mapCellName Specify the cell name of the mapped layout. -mapInfo mapInfoList Specify the format of mapping information as follows: { {cellName [instName]} { {userDefInstName1} {mapInstName1} {userDefInstName2} {mapInstName2}...} { {userDefNetName1} {mapNetName1} {userDefNetName2} {mapNetName2}...}} where: cellName is the pattern cell name, instName is the pattern instance name, userDefInstName is the specified instance, userDefNetName is the specified net, mapInstName is the instance to be reused, and mapNetName is the net to be reused. -mapLib mapLibName Specify the library name of the mapped layout. -mapView mapViewName Specify the view name of the mapped layout. -mode mode Valid values: connection and topology (default=connection). connection : Only the net connection is considered when searching for candidates. topology : The topology relationship (not the net connection) is considered when searching for candidates. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands Argument Description -orient orientationList Specify the orientation list with the following format: { R0 R0 R90 R180 ... } Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -patternCell patternCellName Specify the cell name of the pattern cell. -patternLib patternLibName Specify the library name of the pattern cell. -patternView patternViewName Specify the view name of the pattern cell. -point pointList Specify a point list of coordinates to paste the mapping object to. For example, fill in three coordinates in the pointList when there are three mapping objects. Only one point value is needed if -arrayMode is specified. The coordinate is reset to (0,0) when the point value is not specified. -realizeToLayout 1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Realize the selected candidates to the layout. 0 : Do not realize the selected candidates to the layout. -rearrangeMaster 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Rearrange master cells. 0 : Do not rearrange master cells. This argument is valid only if -arrayMode 1 is specified. -rowDoubleBack 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Double Back for Rows option. 0 : Disable the Double Back for Rows option. This argument is valid only if -arrayMode 1 is specified. -rows rowsNum Laker³ Tcl Reference Manual K-2015.06 Specify the number of rows for instances. Valid value: an integer (default=1). This argument is valid only if -arrayMode 1 is specified. 745 Chapter 7: Layout Window SDL Commands Argument Description -rowSpace rowSpace Specify the number of instances for the x coordinate spacing. Valid value: a floating number. This argument is valid only if -arrayMode 1 is specified. -selObj 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Selected Objects option. 0 : Disable the Selected Objects option. -start Start this feature. -typeIn 0|1 Valid values: Boolean values, 0 and 1. 1 : Specify the x- and y- spacings between objects if copying them with array mode. 0 : Do not specify the x- and y- spacings between objects if copying them with array mode. This argument is valid only if -arrayMode 1 is specified. Examples lakerPatternReuse -start lakerPatternReuse -mode topology -selObj 1 \ -autoMapInfo topology.out lakerPatternReuse -realizeToLayout 1 -arrayMode 1 -cols 1 -rows 1 \ -typeIn 1 -colSpace 3.1 -rowSpace 13.954 -DoubleBackForRows 1 \ -DoubleBackForColumns 0 -FlipAllRows 0 -FlipAllColumns 0 \ -rearrangeMaster 0 -mapInfo { { { {NewInstName} {NewCellName} } \ { {M28} {M27} {M26} {M25} {M35} } } } -point (-2.892,28.9) \ -orient { R0 } -instPrefix xLK -cellPrefix PatternCell_LK lakerPatternReuse -realizeToLayout 1 -arrayMode 0 -mapInfo \ { { { {xPT0} {NewCell0} } { {I127} {I131} {I130} {I129} } } \ { { {xPT1} {NewCell1} } { {I128} {I132} {I133} {I134} } } \ { { {} {} } { {I135} {I141} {I140} {I139} } } { { {} {} } \ { {I136} {I142} {I143} {I144} } } { { {} {} } { {I137} {I147} \ {I146} {I145} } } { { {} {} } { {I138} {I148} {I149} {I150} } } } \ -point (62.254,26.792) (71.529,61.014) (52.499,34.788) \ (77.126,52.379) (73.608,10.001) (42.264,7.922) \ -orient { R0 R90 R180 R270 R0 R90 } -instPrefix xLK \ -cellPrefix PatternCell_LK lakerPatternReuse -end 746 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window SDL Commands See Also lakerSchPatternReuse Design Browser: Pattern Reuse Layout Window: SDL > Pattern Reuse lakerToStickDiagram This lakerToStickDiagram command puts the selected transistors from the Layout window pane to the Stick Diagram Compiler window for further editing. Syntax lakerToStickDiagram Returns None Examples lakerToStickDiagram See Also Layout Window: SDL > To Stick Diagram lakerYankWithLogic The lakerYankWithLogic command copies selected layout instances with their logic information to a yank buffer for later pasting action. The lakerPasteWithLogic command pastes instances with their logic information from a yank buffer. The combination of these two commands allows copying instances to another design. Syntax lakerYankWithLogic Returns None Examples lakerPreSel -point (-0.702,6.89) -traversedist 0.37 Laker³ Tcl Reference Manual K-2015.06 747 Chapter 7: Layout Window MCell Commands lakerYankWithLogic \ lakerSetActiveWnd Wnd3 \ lakerPasteWithLogic -shortNet 0 -globalNet 1 -dim 1 -formGate 0 \ -cmpSubstrate 0 -cmpInnerNet 1 -arrayMode 1 -cols 1 -rows 1 \ -typeIn 0 -point (6.78,-11.66) -orient R0 \ -mapInfo {{ {{N4} {N4} {P4} {P4} } {{LATCH_N} {LATCH_N} \ {LATCH_P} {LATCH_P} {NET046} {NET046} {OUTPUTB} \ {OUTPUTB} {VDD!} {VDD!} {VSS!} {VSS!} } } \ { {{N3} {N4} {P3} {P4} } {{LATCH_N} {LATCH_N} \ {LATCH_P} {LATCH_P} {NET0115} {NET046} {OUTPUT} \ {OUTPUTB} {VDD!} {VDD!} {VSS!} {VSS!} } }} See Also Layout Window: SDL > Yank with Logic View MCell Commands This section describes the Tcl commands applied to the MCell commands of the Layout window. These commands include: 748 ■ lakerAddDummyGate ■ lakerAutoChopGR ■ lakerChangeStack ■ lakerChopContact ■ lakerChopGuardRing ■ lakerDeleteDummyGate ■ lakerDivideObj ■ lakerFillContact ■ lakerFillGuardRing ■ lakerFold ■ lakerFuseObj ■ lakerInsert ■ lakerLinkMCell ■ lakerMergeGate ■ lakerMoveContact Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands ■ lakerMoveGate ■ lakerOptimize ■ lakerReGuardRing ■ lakerRmOverlapGRCont ■ lakerStretchCapacit ■ lakerStretchContact ■ lakerStretchGate ■ lakerStretchResist ■ lakerSubduce ■ lakerSwapGate ■ lakerUnlinkMCell ■ mcGet ■ mcSet ■ schLakerSetMosType lakerAddDummyGate The lakerAddDummyGate command adds dummy gates to the selected MCell transistor by honoring the Auto Dummy Gate Settings section in the Preferences form, invoked by Options > Preferences > MCell_Tx tab. If the selected transistor contains dummy gates, this command does nothing. Syntax lakerAddDummyGate Returns None Examples lakerAddDummyGate See Also Layout Window: MCell > Dummy Gates > Create Home Page: Options > Preferences > MCell_Tx Laker³ Tcl Reference Manual K-2015.06 749 Chapter 7: Layout Window MCell Commands lakerAutoChopGR The lakerAutoChopGR command chops guard ring metals and removes contact/via that violates DRC rule, minMetSpace. Syntax lakerAutoChopGR [-bbox (x1,y1) (x2,y2)] [-fullCell 0|1] [ignoreSameNet 0|1] [-checkGroupMet 0|1] Returns None Arguments 750 Argument Description -bbox (x1,y1) (x2,y2) Draw an area to chop guard ring. x1 and x2 specify the x coordinate for the point array while y1 and y2 specify the y coordinate. -checkGroupMet 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Check all metal layers which belong to the same group. 0 : Do not check all metal layers which belong to the same group. -fullCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : All overlapping areas of guard rings and metal shapes in the cell is checked and the contact/via that causes DRC violations is removed. 0 : Only the fully selected guard rings and metal shapes are checked and the contact/via that causes DRC violations is removed. -ignoreSameNet 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Do not chop the overlapping areas of guard rings and metal shapes which have the same nets. 0 : Chop the overlapping areas of guard rings and metal shapes even they are having the same nets. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Examples # Example 1 # check guard rings and metal shapes in the cell and do not chop # overlapping area of guard rings and metals that have the same net lakerAutoChopGR -fullCell 1 # Example 2 # check selected guard rings and/or metal shapes and do not chop # overlapping area of guard rings and metals that have the same net lakerAutoChopGR # Example 3 # check guard rings and metal shapes within specified chop # area and chop overlapping area of guard rings and metals # even they have the same net lakerAutoChopGR -bbox (0,100) (100,200) -ignoreSameNet 0 See Also Layout Window: MCell > Auto Chop Guard Ring lakerChangeStack The lakerChangeStack command modifies the selected activeLayer-region of a transistor by chopping contact/via or filling with specified layer in particular conditions. Syntax lakerChangeStack -point (x1,y1) (x2,y2) [-stackViaLayerName layerName [-stackViaPurpose purpose]] [-removeContact 0|1] Returns None Arguments Argument Description -point (x1,y1) (x2,y2) (x1,y1) specifies the lower left point and (x2,y2) specifies the upper right point of the area where the stack layer of the stack vias inside is changed. Laker³ Tcl Reference Manual K-2015.06 751 Chapter 7: Layout Window MCell Commands Argument Description -removeContact 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Remove the contact(s) and change the layer to MET1 layer. This argument only works if the layer specified by -stackViaLayerName or -stackViaPurpose is MET1 layer. 0 : Change the layer to MET1 layer and keep the contact(s). -stackViaLayerName layerName Specify the layer name to be changed to. -stackViaPurpose purpose Specify the purpose name of the layer to be changed to (default=drawing). Examples lakerChangeStack -point (0,0) (5,5) -stackViaLayerName MET1 \ -removeContact 1 See Also Layout Window: MCell > Modify Contact/Via lakerChopContact The lakerChopContact command chops contact(s) in a selected contact/via array or stack path. Syntax lakerChopContact -point point -topLayerName topLayerName [topPurpose topPurpose] -bottomLayerName bottomLayerName [-bottomPurpose bottomPurpose] [-removeContactOnly 0|1] [-clip 0|1] Returns None 752 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Arguments Argument Description -bottomLayerName bottomLayerName Specify the layer name for the bottommost layer. -bottomPurpose bottomPurpose Specify the purpose name for the bottommost layer (default=drawing). -clip 0|1 Valid values: Boolean values, 0 and 1 (default=1; only works for contact device). 1 : Force the chopped boundary for each conductor layer between the top/bottom layers become the same. 0 : The chopped boundary for each conductor layer keeps the minimum enclosure rule to the related contact/via layer and may be different with each other. -point point (x0,y0)...(xn,yn) Draw a point array (rectangle) to chop shapes. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -removeContactOnly 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Remove the contact layer(s) only and keep the conductor layers. 0 : Remove both contact layer(s) and conductor layers. -topLayerName topLayerName Specify the layer name for the topmost layer. -topPurpose topPurpose Specify the purpose name for the topmost layer (default=drawing). Examples lakerChopContact -point (-231.677,972.795) \ (-231.677,985.241) (-218.928,985.241) (-218.928,972.795) \ -topLayerName MET3 -bottomLayerName POLY -removeContactOnly 1 \ -clip 0 See Also Layout Window: MCell > Chop Contact Laker³ Tcl Reference Manual K-2015.06 753 Chapter 7: Layout Window MCell Commands lakerChopGuardRing The lakerChopGuardRing command chops the selected guard ring with a point array. Syntax lakerChopGuardRing -point point [-split 0|1] [-chopType chopType] Returns None Arguments Argument Description -chopType chopType Valid values: metal, split, and contact. metal : Chop metals and contacts in the guard ring. split : Split one guard ring into two guard rings. contact : Remove contacts in the guard ring only. Overwrite the -split option when the -chopType option is defined. -point point (x0,y0)...(xn,yn) Draw a point array (rectangle) to chop guard ring. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -split 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Split one guard ring into two guard rings. 0 : Do not split one guard ring into two guard rings. Examples # Example 1 lakerChopGuardRing -point (0,0) (0,20) (25,20) (25,0) # Example 2 lakerChopGuardRing -point (6.91,1.21) (6.91,4.13) \ (10.56,4.13) (10.56,1.21) -chopType contact See Also Layout Window: MCell > Chop Guard Ring 754 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands lakerDeleteDummyGate The lakerDeleteDummyGate command removes dummy gates from the selected MCell transistor. If the selected transistor does not have any dummy gates, this command does nothing. Syntax lakerDeleteDummyGate [-keepGatePosition 0|1] [-optimizeOD 0|1] Returns None Arguments Argument Description -keepGatePosition 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the Keep Gate Positions option. 0 : Disable the Keep Gate Positions option. -optimizeOD 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Optimize OD option. 0 : Disable the Optimize OD option. Examples lakerDeleteDummyGate -keepGatePosition 1 -optimizeOD 1 See Also Layout Window: MCell > Dummy Gates > Delete lakerDivideObj The lakerDivideObj command splits the selected transistor to two transistors. Syntax lakerDivideObj Returns None Laker³ Tcl Reference Manual K-2015.06 755 Chapter 7: Layout Window MCell Commands Examples lakerDivideObj See Also Layout Window: MCell > Split lakerFillContact The lakerFillContact command refills contact(s) in a selected contact/via array or stack path. Syntax lakerFillContact -point point -topLayerName topLayerName [topPurpose topPurpose] -bottomLayerName bottomLayerName [-bottomPurpose bottomPurpose] Returns None Arguments Argument Description -bottomLayerName bottomLayerName Specify the layer name for the bottommost layer. -bottomPurpose bottomPurpose Specify the purpose name for the bottommost layer (default=drawing). -point point (x0,y0)...(xn,yn) Draw a point array (rectangle) to fill shapes. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. -topLayerName topLayerName Specify the layer name for the topmost layer. -topPurpose topPurpose Specify the purpose name for the topmost layer (default=drawing). Examples lakerFillContact -point \ (-5.884,6.041) (-5.884,8.79) (-1.829,8.79) (-1.829,6.041) -topLayerName MET1 -bottomLayerName MET1 756 \ Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands See Also Layout Window: MCell > Fill Contact lakerFillGuardRing The lakerFillGuardRing command fills the selected guard ring with a point array. Syntax lakerFillGuardRing -point point Returns None Arguments Argument Description -point point (x0,y0)...(xn,yn) Draw a point array (rectangle) to fill guard ring. x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. Examples lakerFillGuardRing -point (0,0) (0,20) (25,20) (25,0) See Also Layout Window: MCell > Fill Guard Ring lakerFold The lakerFold command splits a selected transistor gate. Syntax lakerFold -glueNo glueNo (-segment segmentNum|-width gateWidth) -contAlign alignMode Returns None Laker³ Tcl Reference Manual K-2015.06 757 Chapter 7: Layout Window MCell Commands Arguments Argument Description -contAlign alignMode Specify the alignment style of contacts after folding gate. Valid value: top, center, and bottom (default=bottom). -glueNo glueNo Specify a glue block number of the transistor gate (or that of the range of gates) to be folded. Valid value: a positive integer. -segment segmentNum Specify the segment number that the specified gate(s) to be folded to. Valid value: a positive integer. -width gateWidth Specify the maximum gate width for the resulting gates. Valid value: a positive integer. Examples # Example 1 lakerFold -glueNo 2 -width 3.0 # Example 2 lakerFold -glueNo 2 -segment 2 -contAlign center See Also Layout Window: MCell > Fold lakerFuseObj The lakerFuseObj command merges two selected transistors. Syntax lakerFuseObj -fixed 0|1 | [-align align [-offset offset]] [-swap swapNo] Returns None 758 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Arguments Argument Description -align align Specify the alignment of transistors. Valid values: top, center, bottom, and ruleDist. If align ruleDist is set, the offset option has no effect. -fixed 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Position of both transistors remains unchanged, the merged region expands after fusion. 0 : Adjust the position of both transistors. -offset offset Specify an offset value for alignment. Valid value: an integer (default=0). -swap swapNo Select the transistor to be merged (default=the first selected). Examples # Example 1 # Merge two transistors at fixed position lakerFuseObj -fixed 1 # Example 2 # Merge two transistors and align them on top with offset (1.0) lakerFuseObj -align top -offset 1.0 See Also Layout Window: MCell > Merge Transistors lakerInsert The lakerInsert command inserts a transistor with the entire object selected to another transistor with an activeLayer-region selected. Syntax lakerInsert Returns None Examples lakerInsert Laker³ Tcl Reference Manual K-2015.06 759 Chapter 7: Layout Window MCell Commands See Also Layout Window: MCell > Insert lakerLinkMCell The lakerLinkMCell command groups selected MCells together if their submaster is the same. Syntax lakerLinkMCell Returns None Examples lakerLinkMCell See Also Layout Window: MCell > Link lakerMergeGate The lakerMergeGate command merges the selected gate into the target merged gate in the same transistor. Syntax lakerMergeGate -selGlueNo num1 -mergeGlueNo num2 -optimize 0|1 Returns None Arguments 760 Argument Description -mergeGlueNo num2 num2 is the glue number for the target gate. Valid value: an integer. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Argument Description -optimize 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Optimize the source/drain after merging gates, even if the order of some gates have to be changed. 0 : Optimize such source/drain only if the transistor, which contains only one gate and no gate order change, needs to be reversed. -selGlueNo num1 num1 is the glue number for the selected gate. Valid value: an integer. Examples lakerMergeGate -selGlueNo 2 -mergeGlueNo 4 See Also Layout Window: MCell > Merge Gates lakerMoveContact The lakerMoveContact command moves an inner contact of MCell devices. Syntax lakerMoveContact -refPoint (x0,y0) -offsetPoint (x0,y0) Returns None Arguments Argument Description -offsetPoint (x0,y0) Specify an offset direction to move. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -refPoint (x0,y0) Specify a reference coordinate to move. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerMoveContact -refPoint (5.59,5.63) -offsetPoint (8.01,5.63) Laker³ Tcl Reference Manual K-2015.06 761 Chapter 7: Layout Window MCell Commands lakerMoveGate The lakerMoveGate command moves a gate of the transistor device to a new location. Syntax lakerMoveGate -refPoint (x0,y0) -offsetPoint (x0,y0) [alignWith alignWith] Returns None Arguments Argument Description -alignWith alignWith Specify a side of the gate on which all gates are kept at the original position after the Move Gate command. Valid values: left, right, and both (default=right). -offsetPoint (x0,y0) Specify an offset direction to move. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -refPoint (x0,y0) Specify a reference coordinate to move. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerMoveGate -refPoint (5.59,5.63) -offsetPoint (8.01,5.63) lakerOptimize The lakerOptimize command optimizes an activeLayer-region or the entire selected transistor. It is auto-adjusted horizontally in order to meet the minimum design rule. Syntax lakerOptimize Returns None 762 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Examples lakerOptimize See Also Layout Window: MCell > Optimize lakerReGuardRing The lakerReGuardRing command reforms the shape of the selected guard ring with a point array. Syntax lakerReGuardRing -point point [-swap 0|1] Returns None Arguments Argument Description -point point (x0,y0)...(xn,yn) Draw a point array to reform guard ring. x0...xn specify the x coordinate for the point array while y0...yn specify the coordinate. -swap 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Select a new conjunction from the first or the last drawing point. 0: Do not select a new conjunction from the first or the last drawing point. Examples lakerReGuardRing -point (0,0) (0,10) (10,10) (10,15) See Also Layout Window: MCell > Re-Guard Ring lakerRmOverlapGRCont The lakerRmOverlapGRCont command removes the contacts of overlapping guard rings that violate the contact DRC rules. Laker³ Tcl Reference Manual K-2015.06 763 Chapter 7: Layout Window MCell Commands Syntax lakerRmOverlapGRCont [-fullCell 0|1] [-viewLevel viewLevel] Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -fullCell 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : All guard rings in the cell are checked and the contacts that cause DRC violations are removed. 0 : Only the fully selected guard rings are checked and the contacts that cause DRC violations are removed. -viewLevel viewLevel Check guard rings at a specified view level. Valid values: current, max, and min (default=current). current : Check guard rings that could be viewed at current view level only. min : Check the DRC errors of guard rings that belong to the current cell. max : Check the DRC errors of guard rings that belong to the current cell and all descendants. Examples # Example 1 # Select mode: lakerRmOverlapGRCont # or lakerRmOverlapGRCont -fullCell 0 # Example 2 # Full Cell mode: lakerRmOverlapGRCont -fullCell 1 # Example 3 lakerRmOverlapGRCont -viewLevel max See Also Layout Window: MCell > Remove Overlapping Guard Ring Contacts 764 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands lakerStretchCapacit The lakerStretchCapacit command stretches an edge of the capacitor. The total value of the capacitor remains unchanged. Syntax lakerStretchCapacit -refPoint (x0,y0) -offsetPoint (x0,y0) Returns None Arguments Argument Description -offsetPoint (x0,y0) Specify an offset direction to stretch. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -refPoint (x0,y0) Specify a reference coordinate to stretch. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerStretchCapacit -refPoint (5.59,5.63) \ -offsetPoint (8.01,5.63) See Also Layout Window: MCell > Stretch Capacitor lakerStretchContact The lakerStretchContact command stretches the edge or vertice of L1/L2 bounding box in a contact array. Syntax lakerStretchContact -refPoint (x0,y0) -offsetPoint (x0,y0) Returns None Laker³ Tcl Reference Manual K-2015.06 765 Chapter 7: Layout Window MCell Commands Arguments Argument Description -offsetPoint (x0,y0) Specify an offset direction to stretch. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -refPoint (x0,y0) Specify a reference coordinate to stretch. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerStretchContact -refPoint (5.5,5.3) -offsetPoint (8.0,5.3) See Also Layout Window: MCell > Stretch Contact lakerStretchGate The lakerStretchGate command stretches the gate edge of a transistor device. Syntax lakerStretchGate -refPoint (x0,y0) -offsetPoint (x0,y0) Returns None Arguments Argument Description -offsetPoint (x0,y0) Specify an offset direction to stretch. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -refPoint (x0,y0) Specify a reference coordinate to stretch. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerStretchGate -refPoint (5.59,5.63) -offsetPoint (8.01,5.63) 766 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands lakerStretchResist The lakerStretchResist command stretches the resistor in two ways, at the end point, or at the edge with fixed one of the end point. Syntax lakerStretchResist -refPoint (x0,y0) -offsetPoint (x0,y0) Returns None Arguments Argument Description -offsetPoint (x0,y0) Specify an offset direction to stretch. x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -refPoint (x0,y0) Specify a reference coordinate to stretch. x0 specifies a reference position value for the x coordinate point while y0 specifies the value for the y coordinate point. Examples lakerStretchResist -refPoint (5.59,5.63) -offsetPoint (8.01,5.63) See Also Layout Window: MCell > Stretch Resistor lakerSubduce The lakerSubduce command divides one selected transistor into two transistors. Syntax lakerSubduce -glueNo glueNo Returns None Laker³ Tcl Reference Manual K-2015.06 767 Chapter 7: Layout Window MCell Commands Arguments Argument Description -glueNo glueNo Specify two numbers to divide the glue blocks. Valid value: an integer. Examples lakerSubduce -glueNo 3 5 See Also Layout Window: MCell > Subduce lakerSwapGate The lakerSwapGate command swaps the gate(s) or active(s) of an MCell. Syntax lakerSwapGate -selGlueNo num1 num2 -swapGlueNo num3 num4 Returns None Arguments Argument Description -selGlueNo num1 num2 num1 and num2 may have the same value; they refer to the number of the selected glue block. Valid value: an integer. -swapGlueNo num3 num4 num3 and num4 may have the same value; they refer to the number of glue block that is swapped with. Valid value: an integer. Examples #swap glue block 1 with glue block 7 lakerSwapGate -selGlueNo 1 1 -swapGlueNo 7 7 # swap glue block 2 to 4 with glue block 5 to 9 lakerSwapGate -selGlueNo 2 4 -swapGlueNo 5 9 See Also Layout Window: MCell > Swap 768 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands lakerUnlinkMCell The lakerUnlinkMCell command ungroups selected MCells from their group. Syntax lakerUnlinkMCell Returns None Examples lakerUnlinkMCell See Also Layout Window: MCell > Unlink mcGet The mcGet command gets parameters of transistors and guard rings for the encrypted technology file sections tfLayoutMagicCell and tfLayoutMagicCellCallBack. The available attributes of mcGet and mcSet are listed in the following tables. Syntax To get parameters of transistors: mcGet -obj <obj_Id> [glueSyntax] [-all | -attr attr_name] To get parameters of guard rings: mcGet -obj <obj_Id> [-all | -attr attr_name [segmentSyntax] ] Returns Varies based on the attribute settings. Laker³ Tcl Reference Manual K-2015.06 769 Chapter 7: Layout Window MCell Commands Arguments Argument Description -all | -attr attr_name The -attr argument specifies the attribute to be obtained. If -all or -attr All is specified, displays all attributes, including values, for the whole transistor, the whole guard ring, the specified glue block of a transistor, or the specified segment of a guard ring. If -attr attr_name is not specified, the default is -all. The available attributes are listed in the Whole Transistor Attributes tables, the Transistor Gate Region Attributes tables, the Transistor activeLayer Region Attributes tables, the Whole Guard Ring Attributes tables, and the Guard Ring Segment Attributes tables. -obj <obj_Id> obj_id can be an instanceId of an MCell transistor or an MCell guard ring, or a cellviewId of an MCell sub-master cell. ■ ■ 770 Using mcGet with an instanceId can get the following types of attributes: transistor/guard ring parameter, logic information, geometry attribute name, physical geometry (the coordinates are based on the top cell view.) Using mcGet with a cellviewId of an MCell sub-master cell can get the following types of attributes: transistor/guard ring parameter, geometry attribute name, physical geometry (the coordinates are based on the sub-master cell view), and physical geometry identifier. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Argument Description glueSyntax This only works for MCell transistors. glueSyntax refers to [-glueNo glue_block_number] | [-glueGateNo gate_glue_number] | [-glueActiveNo active_glue_number], where: ■ -glueNo, -glueGateNo, and -glueActiveNo are exclusive. ■ -glueNo specifies the number of glue blocks for activeLayer regions or gates of a transistor. ■ The glue_block_number value must be greater than or equal to 1; and the total_glue_block_number must be greater than or equal to the glue_block_number value. ■ The odd value corresponds to activeLayer region glue blocks. ■ The even value corresponds to gate glue blocks. ■ -glueGateNo specifies the number of gate glue blocks. ■ The gate_glue_number value must be greater than or equal to 1; and the value of (total_glue_block_number-1)/2 must be greater than or equal to the gate_glue_number value. ■ -glueActiveNo specifies the number of activeLayer region glue blocks. ■ The active_glue_number value must be greater than or equal to 1; and the value of (total_glue_block_number+1)/2 must be greater than or equal to the active_glue_number value. If this glueSyntax is not specified, using mcGet can get the attributes of the whole transistor. Refer to the Whole Transistor Attributes tables for more details. If the glueSyntax is specified with gate glue blocks, then using mcGet can get the attributes of gate regions. Refer to the Transistor Gate Region Attributes tables for more details. If the glueSyntax is specified with activeLayer region glue blocks, then using mcGet can get the attributes of activeLayer regions. Refer to the Transistor activeLayer Region Attributes tables for more details. Laker³ Tcl Reference Manual K-2015.06 771 Chapter 7: Layout Window MCell Commands Argument Description segmentSyntax This only works for MCell guard rings with the Segment column checked in attributes. segmentSyntax refers to [segHori] | [-segVert], where: ■ -segHori and -segVert are exclusive. -segHori specifies the horizontal segment of a guard ring. ■ -segVert specifies the vertical segment of a guard ring. The return values are sorted by the location of segments, from left to right and from bottom to top. ■ If this segmentSyntax is not specified, using mcGet can get the attributes of the whole guard ring. Refer to the Whole Guard Ring Attributes tables for more details. If -segHori or -segVert is specified, then using mcGet can get the attributes of horizontal or vertical guard ring segments. Refer to the Guard Ring Segment Attributes tables for more details. Examples # Create Dummy Poly by defining the callBack subsection # in the tfLayoutMagicCell section with mcGet and mcSet: tfLayoutMagicCell { device { deviceName {PMOS_plugIn_dummyPoly} layerDef { {Co CONT} {Met MT1} {Poly POLY} {Od $L_OD} {Imp PIMP} {Met2 MT2} {Via VIA1} } callBack { params { { NormalPitch 4.0 String editable } { DummyPitch 2.0 String editable } { NumDummy 1 String editable } } execPlugIn { set gatePoints [ mcGet -obj $dbMCellSubMasterId -glueNo 2 -attr ObjPoly ] set tmp [lindex $gatePoints end] set numTmp [llength $tmp] for { set j 0 } { $j<$NumDummy } { incr j} { set newPoints {} for { set i 0 } { $i<$numTmp } { incr i } { set t1 [lindex $tmp $i] set p1 [lindex $t1 0] set p1 [expr $p1 - ($NormalPitch + ($j * $DummyPitch) )] set p2 [lindex $t1 1] 772 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands lappend newPoints [format {(%s,%s)} $p1 $p2] } dbCreatePolygon -cv $dbMCellSubMasterId -layer POLY \ -point $newPoints } set idxRGate [expr [ mcGet -obj $dbMCellSubMasterId -attr GlueNum] - 1] set gatePoints [ mcGet -obj $dbMCellSubMasterId -glueNo $idxRGate \ -attr ObjPoly] set tmp [lindex $gatePoints end ] set numTmp [llength $tmp] for { set j 0 } { $j<$NumDummy } { incr j } { set newPoints {} for { set i 0 } { $i<$numTmp } { incr i } { set t1 [lindex $tmp $i] set p1 [lindex $t1 0] set p1 [expr $p1 + ($NormalPitch + ($j * $DummyPitch) )] set p2 [lindex $t1 1] lappend newPoints [format {(%s,%s)} $p1 $p2] } dbCreatePolygon -cv $dbMCellSubMasterId -layer POLY \ -point $newPoints } } ruleDef } { { minChannelLength 0.8 } { minChannelWidth 1.0 } { minGateSpace 1.2 } { minOd2GateExtension 1.2 } { minOdNotch 0.7 } { minPoly2GateExtension 0.8 } { minCo2OdEnclosure 0.5 } { minCoSpace 1.0 } { minCo2GateSpace 0.8 } { minCoWidth $CONT_WIDTH } { minCo2MetEnclosure {{0.5 0.45} {0.55 0.4}} } { minOd2PolySpace 0.4 } { minOdWidth $OD_WIDTH } { minOd2ImpEnclosure 0.6} { minMetSpace 1.45} { minImpNotch 1.4} { diagonalGateBendCompensation 0.02} { minPoly2ImpEnclosureX 0.3} { minPoly2ImpEnclosureY 0.4} { minOdSpace 1.3} } }} Laker³ Tcl Reference Manual K-2015.06 773 Chapter 7: Layout Window MCell Commands See Also This section includes attributes tables for transistors: Whole Transistor Attributes, Transistor Gate Region Attributes, and Transistor activeLayer Region Attributes; and attributes tables for guard rings: Whole Guard Ring Attributes and Guard Ring Segment Attributes. Whole Transistor Attributes The attributes of the whole transistor are summarized in the following tables: Table 1, Table 2, Table 3, Table 4, and Table 5. Table 1 774 Parameter Type for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls DeviceName Device name String mcGet, mcSet OptLayerMaskResolution Enable/disable the Use Tech. File's Mask/General Resolution For Option Layers option 0, 1 mcGet, mcSet PolyContact Enable/disable the Poly Contact option 0, 1 mcGet, mcSet DiscreteGatePitch Enable/disable the Discrete Gate Pitch option 0, 1 mcGet, mcSet GateNum Number of gates Integer mcGet, mcSet ActiveNum Number of activeLayer regions Integer mcGet GlueNum Number of glue blocks Integer mcGet UserDefOptRepeatPattern The repeat pattern of user- A list of user- mcGet, defined option layers defined option mcSet layers, for example: Imp2 none Imp1 none Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 1 Parameter Type for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls TraitRepeatPattern Trait repeat pattern A list of trait names, for example: HV2 None HV2 mcGet, mcSet RuleSwGlobalRule Global rule String mcGet, mcSet ParamXXX Plug-in parameter value Parameter type value mcGet, mcSet Table 2 Logic Information for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls SubstrateNet Substrate nets String mcGet, mcSet Table 3 Geometry Attribute Name for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls AllLayerObjName Attribute names to get geometries for available layers A list of attribute names, for example: objOd objPoly ... mcGet AllDevLayerObjName Attribute names to get geometries for available device layers A list of attribute names mcGet AllResvLayerObjName Attribute names to get geometries for available reserved option layers A list of attribute names mcGet Laker³ Tcl Reference Manual K-2015.06 775 Chapter 7: Layout Window MCell Commands Table 3 Arguments Description Return Values Applicable Tcls AllUserLayerObjName Attribute names to get geometries for available user-defined option layers A list of attribute names, for example: objUserImp1 ... mcGet Table 4 776 Geometry Attribute Name for Whole Transistor Attributes Physical Geometry for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls ObjOd For Od layer (whole and individual) Several lists of coordinates, for example: { {200.002 100.005} { } ... } {...} mcGet ObjPoly For Poly layer Several lists of coordinates mcGet ObjCo For Co layer Several lists of coordinates mcGet ObjMet For Met layer Several lists of coordinates mcGet ObjVia For Via layer Several lists of coordinates mcGet ObjMet2 For Met2 layer Several lists of coordinates mcGet ObjPolyCoPoly For polyCo Poly layer Several lists of coordinates mcGet ObjPolyCoCo For polyCo Co layer Several lists of coordinates mcGet Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 4 Physical Geometry for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls ObjPolyCoMet For polyCo Met layer Several lists of coordinates mcGet Obj<Imp, L1~L9> For reserved option layers Several lists of coordinates mcGet ObjUser<userdefined name> For user-defined option layers Several lists of coordinates mcGet Table 5 Physical Geometry Identifier (Id) for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls ObjIdOd For Od layer (whole and individual) Several lists of identifiers mcGet ObjIdPoly For Poly layer A list of identifiers, for example: 6fccd22acb00 caff0000213b... mcGet ObjIdCo For Co layer A list of identifiers mcGet ObjIdMet For Met layer A list of identifiers mcGet ObjIdVia For Via layer A list of identifiers mcGet ObjIdMet2 For Met2 layer A list of identifiers mcGet ObjIdPolyCoPoly For polyCo Poly layer A list of identifiers mcGet ObjIdPolyCoCo For polyCo Co layer A list of identifiers mcGet ObjIdPolyCoMet For polyCo Met layer A list of identifiers mcGet ObjId<Imp, L1~L9> For reserved option layers A list of identifiers mcGet Laker³ Tcl Reference Manual K-2015.06 777 Chapter 7: Layout Window MCell Commands Table 5 Physical Geometry Identifier (Id) for Whole Transistor Attributes Arguments Description Return Values Applicable Tcls ObjIdUser<userdefined name> For user-defined option layers A list of identifiers mcGet Transistor Gate Region Attributes The attributes of the gate regions are summarized in the following tables: Table 6, Table 7, Table 8, Table 9, Table 10, and Table 11. Table 6 Parameter Type for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls GatePattern Gate pattern patternA, patternB, patternC, patternD, patternE mcGet, mcSet Length Gate length Positive floating number mcGet, mcSet Width Gate width Positive floating number mcGet, mcSet Align Gate alignment bottom, center, top mcGet, mcSet Offset Gate offset Floating number mcGet, mcSet OptLayer Option layer A list of user-defined option layers mcGet, mcSet Trait Trait name A list of trait names mcGet, mcSet IsDummy Dummy gate definition 0, 1 mcGet, mcSet Rule name (String) mcGet, mcSet RuleSwGatePatternRule Gate rule 778 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 7 Parameter (polyContact) for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls PolyCoPattern polyContact pattern none, top, bottom, both mcGet, mcSet PolyCoLoc polyContact location inner, outer mcGet, mcSet PolyCoShift polyContact shift left, center, right mcGet, mcSet PolyCoSymmetry Enable/disable the Poly Contact Symmetry option 0, 1 mcGet, mcSet RuleSwPolyCoCo2MetEncRule polyContact Co2MetEnc rule Rule name (String) mcGet, mcSet RuleSwPolyCoCoSpacingRule polyContact Contact spacing rule Rule name (String) mcGet, mcSet PolyCoTopContactType Contact type user, single, max mcGet, mcSet PolyCoTopRow Number of contact rows Positive integer mcGet, mcSet PolyCoTopColumn Number of contact columns Positive integer mcGet, mcSet PolyCoTopMetEncX Contact to Met Enclosure X Positive floating number mcGet, mcSet PolyCoTopMetEncY Contact to Met Enclosure Y Positive floating number mcGet, mcSet PolyCoTopCoSpaceX Contact spacing X Positive floating number mcGet, mcSet Laker³ Tcl Reference Manual K-2015.06 779 Chapter 7: Layout Window MCell Commands Table 7 780 Parameter (polyContact) for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls PolyCoTopCoSpaceY Contact spacing Y Positive floating number mcGet, mcSet PolyCoTopCoWidth Contact width X,Y A pair of x,y values, for example: 1.0,1.1 mcGet, mcSet PolyCoBottomContactType Contact type user, single, max mcGet, mcSet PolyCoBottomRow Number of contact rows Positive integer mcGet, mcSet PolyCoBottomColumn Number of contact columns Positive integer mcGet, mcSet PolyCoBottomMetEncX Contact to Met Enclosure X Positive floating number mcGet, mcSet PolyCoBottomMetEncY Contact to Met Enclosure Y Positive floating number mcGet, mcSet PolyCoBottomCoSpaceX Contact spacing X Positive floating number mcGet, mcSet PolyCoBottomCoSpaceY Contact spacing Y Positive floating number mcGet, mcSet PolyCoBottomCoWidth Contact width X,Y A pair of x,y values, for example: 1.0,1.1 mcGet, mcSet Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 8 Logic Information for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls GateName Gate name String mcGet, mcSet GateNet Nets on the gate String mcGet, mcSet SourceNet Nets on the left side of the specified gate String mcGet, mcSet DrainNet Nets on the right side of the specified gate String mcGet, mcSet Table 9 Geometry Attribute Name for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls AllLayerObjName Attribute names to get geometries for available layers A list of attribute names mcGet AllDevLayerObjNa me Attribute names to get geometries for available device layers A list of attribute names mcGet Table 10 Physical Geometry for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls ObjPoly For Poly layer Several lists of coordinates mcGet ObjGate For gate area Several lists of coordinates mcGet ObjPolyCoPoly For polyCo Poly layer Several lists of coordinates mcGet Laker³ Tcl Reference Manual K-2015.06 781 Chapter 7: Layout Window MCell Commands Table 10 Physical Geometry for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls ObjPolyCoCo For polyCo Co layer Several lists of coordinates mcGet ObjPolyCoMet For polyCo Met layer Several lists of coordinates mcGet Table 11 Physical Geometry Identifier (Id) for Transistor Gate Region Attributes Arguments Description Return Values Applicable Tcls ObjIdPoly For Poly layer A list of identifiers mcGet ObjIdPolyCoPoly For polyCo Poly layer A list of identifiers mcGet ObjIdPolyCoCo For polyCo Co layer A list of identifiers mcGet ObjIdPolyCoMet For polyCo Met layer A list of identifiers mcGet Transistor activeLayer Region Attributes The attributes of the activeLayer regions are summarized in the following tables: Table 12, Table 13, Table 14, Table 15, Table 16, and Table 17. Table 12 782 Parameter Type for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls GlueBlockType glueBlock type left, inter, right mcGet BlockLength glueBlock length Positive floating number mcGet, mcSet LeftWidth glueBlock left width (related to the left gate width and pattern) Positive floating number mcGet Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 12 Parameter Type for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls RightWidth glueBlock right width (related to the right gate width and pattern) Positive floating number mcGet OptLayer Option layer String mcGet, mcSet Trait Trait name String mcGet, mcSet AutoExpand Decide the expand direction of diffusion when the diffusion cannot contain the user-defined contacts no, top, bottom, topBottom mcGet, mcSet CoAlign Align contacts within OD active regions of transistors to the center in the xdirection xCenter mcSet Table 13 Parameter (Contact) for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls CoType Contact type no, single, max, user mcGet, mcSet CoRow Number of contact rows Positive integer mcGet, mcSet CoColumn Number of contact columns Positive integer mcGet, mcSet Co2MetX Co2MetEnclosure X Positive floating number mcGet, mcSet Laker³ Tcl Reference Manual K-2015.06 783 Chapter 7: Layout Window MCell Commands Table 13 784 Parameter (Contact) for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls Co2MetY Co2MetEnclosure Y Positive floating number mcGet, mcSet Co2OdX Co2OdEnclosure X Positive floating number mcGet, mcSet Co2OdY Co2OdEnclosure Y Positive floating number mcGet, mcSet CoSpaceX Contact spacing X Positive floating number mcGet, mcSet CoSpaceY Contact spacing Y Positive floating number mcGet, mcSet CoWidth ContactWidth X,Y A pair of x,y values, for example: 1.0,1.1 mcGet, mcSet CoMode Contact mode normal, Esd, mcGet, stackVia mcSet RuleSwCo2GateRule Co2Gate rule name String mcGet, mcSet RuleSwCoModeRule CoMode rule name String mcGet, mcSet RuleSwCo2MetEncRule Co2MetEnclosure rule name String mcGet, mcSet RuleSwCoSpacingRule Co spacing rule name mcGet, mcSet String Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 14 Logic Information for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls Net Net name String Table 15 mcGet, mcSet Geometry Attribute Name for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls AllLayerObjName Attribute names to get geometries for available layers A list of attribute names mcGet AllDevLayerObjName Attribute names to get geometries for available device layers A list of attribute names mcGet Table 16 Physical Geometry for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls ObjOd For Od layer Several lists of coordinates mcGet ObjCo For Co layer Several lists of coordinates mcGet ObjMet For Met layer Several lists of coordinates mcGet ObjVia For Via layer Several lists of coordinates mcGet ObjMet2 For Met2 layer. Several lists of coordinates. mcGet Laker³ Tcl Reference Manual K-2015.06 785 Chapter 7: Layout Window MCell Commands Table 17 Physical Geometry Identifier (Id) for Transistor activeLayer Region Attributes Arguments Description Return Values Applicable Tcls ObjIdOd For Od layer Several lists of identifiers mcGet ObjIdCo For Co layer A list of identifiers mcGet ObjIdMet For Met layer A list of identifiers mcGet ObjIdVia For Via layer A list of identifiers mcGet ObjIdMet2 For Met2 layer A list of identifiers mcGet Whole Guard Ring Attributes The attributes of the whole guard ring are summarized in the following tables: Table 18, Table 19, Table 20, Table 21, and Table 22. Table 18 786 Parameter Type for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls DeviceName Device name String mcGet OptLayerMaskResolution Enable/disable the option layer referring to mask resolution 0, 1 mcGet, mcSet RuleSwGlobalRule Global rule name String mcGet, mcSet CenterLine Centerline of a guard ring Several lists of coordinates of segments, for example: { {x1 y1} {x2 y2 } } {…} mcGet Met<2~4>Seg A list of segments Several lists of coordinates of segments mcGet Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 18 Parameter Type for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls Via<2~3>Seg A list of segments Several lists of coordinates of segments mcGet RowNumber Contact row number Integer mcGet, mcSet CornerContact Enable/disable to 0, 1 create corner contacts mcGet, mcSet MetalWidthAsBody Enable/disable metal width = body 0, 1 mcGet, mcSet SameMetalWidth Enable/disable all metal widths are the same 0, 1 mcGet, mcSet BodyWidth Body layer width Positive floating number mcGet, mcSet BodyWidthHori Body layer width in horizontal segments Positive floating number mcGet BodyWidthVert Body layer width in vertical segments Positive floating number mcGet MetWidthHori Met layer width in horizontal segments Positive floating number mcGet MetWidthVert Met layer width in vertical segments Positive floating number mcGet Met<2~4>WidthHori Met<2~4> layer width Positive floating in horizontal segments number mcGet Met<2~4>WidthVert Met<2~4> layer width in vertical segments Positive floating number mcGet CoSpaceX Contact spacing X Positive floating number mcGet, mcSet Laker³ Tcl Reference Manual K-2015.06 787 Chapter 7: Layout Window MCell Commands Table 18 788 Parameter Type for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls CoSpaceY Contact spacing Y Positive floating numberPositive floating number mcGet, mcSet Co2BodyX Co2BodyEnclosureX Positive floating number mcGet, mcSet Co2BodyY Co2BodyEnclosureY Positive floating number mcGet, mcSet Co2MetX Co2MetEnclosreX Positive floating number mcGet, mcSet Co2MetY Co2MetEnclosreY Positive floating number mcGet, mcSet CoWidth Contact width Positive floating number mcGet, mcSet CoLength Contact length Positive floating number mcGet, mcSet Via<2~3>SpaceX Via<2~3> spacing X Positive floating number mcGet, mcSet Via<2~3>SpaceY Via<2~3> spacing Y Positive floating number mcGet, mcSet Via<2~3>Layer1X Via<2~3> to Layer1 enclosure X Positive floating number mcGet, mcSet Via<2~3>Layer1Y Via<2~3> to Layer1 enclosure Y Positive floating number mcGet, mcSet Via<2~3>Layer2X Via<2~3> to Layer2 enclosure X Positive floating number mcGet, mcSet Via<2~3>Layer2Y Via<2~3> to Layer2 enclosure Y Positive floating number mcGet, mcSet Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 18 Parameter Type for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls Via<2~3>Width Via<2~3> width Positive floating number mcGet, mcSet Via<2~3>Length Via<2~3> length Positive floating number mcGet, mcSet Body2<Imp,L1~L9>EncX Body to <Imp, L1~L9> enclosure X Positive floating number mcGet, mcSet Body2<Imp,L1~L9>EncY Body to <Imp, L1~L9> enclosure Y Positive floating number mcGet, mcSet ParamXXX Plug-in parameter value Positive floating number mcGet, mcSet Table 19 Logic Information for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls NetName Net name String mcGet, mcSet Table 20 Geometry Attributes for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls AllLayerObjName Attribute names to get geometries for available layers A list of attribute names, for example: objBody objMet ... mcGet AllDevLayerObjName Attribute names to get geometries for available device layers A list of mcGet attribute names Laker³ Tcl Reference Manual K-2015.06 789 Chapter 7: Layout Window MCell Commands Table 20 Arguments Description Return Values AllResvLayerObjName Attribute names to get geometries for available reserved option layers A list of mcGet attribute names AllUserLayerObjName Attribute names to get geometries for available user-defined option layers A list of attribute names, for example: objUserImp1 ... Table 21 790 Geometry Attributes for Whole Guard Ring Attributes Applicable Tcls mcGet Physical Geometry for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls ObjBody For Body layer (whole and individual) Several lists of coordinates, for example: { {200.002 100.005} { } ... } {...} mcGet Obj<Imp, L1~L9> For reserved option layers Several lists of coordinates mcGet ObjUser<userdefined name> For user-defined option layers Several lists of coordinates mcGet Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Table 22 Physical Geometry Identifier (Id) for Whole Guard Ring Attributes Arguments Description Return Values Applicable Tcls ObjIdBody For Body layer (whole and individual) Several lists of identifiers, for example: 6fccd22acb00 caff0000213b ... mcGet ObjId<Imp, L1~L9> For reserved option layers A list of identifiers mcGet ObjIdUser<userdefined name> A list of identifiers mcGet For user-defined option layers Guard Ring Segment Attributes The attributes of segments are summarized in the following tables: Table 23, Table 24, and Table 25. Table 23 Parameter Type for Guard Ring Segment Attributes Arguments Description Return Values Applicable Tcls BodySeg A list of segments for the centerline Several lists of coordinates of segments, for example: { {x1 y1} {x2 y2 } } {…} mcGet MetSeg A list of segments for the centerline (available segments without a chopped region) Several lists of coordinates of segments mcGet ContSeg A list of segments for the centerline Several lists of coordinates of segments mcGet Laker³ Tcl Reference Manual K-2015.06 791 Chapter 7: Layout Window MCell Commands Table 24 Physical Geometry for Guard Ring Segment Attributes Arguments Description Return Values Applicable Tcls ObjCo For Co layer Several lists of coordinates mcGet ObjMet For Met layer Several lists of coordinates mcGet ObjVia For Via layer Several lists of coordinates mcGet ObjMet<2~4> For MetX layer Several lists of coordinates mcGet ObjVia<2~3> For ViaX layer Several lists of coordinates mcGet Table 25 Physical Geometry Identifier (Id) for Guard Ring Segment Attributes Arguments Description Return Values Applicable Tcls ObjIdCo For Co layer A list of identifiers mcGet ObjIdMet For Met layer A list of identifiers mcGet ObjIdVia For Via layer A list of identifiers mcGet ObjIdMet<2~4> For MetX layer A list of identifiers mcGet ObjVia<2~3> For ViaX layer A list of identifiers mcGet mcSet The mcSet command sets parameters of transistors or guard rings for encrypted the technology file sections tfLayoutMagicCell and tfLayoutMagicCellCallBack. When default settings are required, settings in the attributes form are applied without referencing the MCell.rc resource file. When using mcSet to modify 792 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands multiple parameters, you must follow the settings in the attribute form. That is, if a field in the current setting cannot be modified in the attribute form, using mcSet to modify it may get a return value 0. The default settings of mcSet attributes are similar to the settings in the Transistor Attribute form. For example, when the Discrete Gate Pitch option is not editable in the Transistor Attribute form, using mcSet to modify the discreteGatePitch attribute returns 0. Syntax To set parameters of transistors: mcSet -obj <obj_Id> [glueSyntax] -attr attr_name -value new_value [-submit] To re-generate the layout with the logic information of the specified transistor: mcSet -obj <instance_Id> -regen To set parameters of guard rings: mcSet -obj <obj_Id> -attr attr_name -value new_value [submit] To apply the modification of mcSet to a transistor or guard ring immediately: mcSet -submit Returns 1 if successful; otherwise, returns 0. Arguments Argument Description -attr attr_name Specify the attribute to be set. The available attributes are listed in the Whole Transistor Attributes tables, the Transistor Gate Region Attributes tables, the Transistor activeLayer Region Attributes tables, the Whole Guard Ring Attributes tables, and the Guard Ring Segment Attributes tables. -obj <obj_Id> obj_id must be an instanceId of the MCell transistor or guard ring. Using mcSet with an instanceId can set the followings types of attributes: transistor/guard ring parameter and logic information. Laker³ Tcl Reference Manual K-2015.06 793 Chapter 7: Layout Window MCell Commands Argument Description -regen When an MCell transistor contains any callBack definitions in the tfLayoutMagicCell or tfLayoutMagicCellCallBack sections, the logic information of this MCell transistor is used to re-generate the layout. -submit Apply the modification of mcSet to the MCell transistor or guard ring immediately. ■ ■ ■ -value new_value When -submit is not specified, the modification is kept in the buffer. The buffer is cleared each time after specifying -submit, regardless of the return value of mcSet; however, if a set command has a return value 0, the following -submit is ignored. When a new object Id (obj_Id) is specified in an mcSet command C, the mcSet -submit command is called automatically before the mcSet command C runs, and the auto submit does not return any values. The mcGet command always returns the evaluated value. When a value has been set but not submitted by mcSet, using mcGet can get the old value. Specify a new attribute value. Refer to the return values in the Whole Transistor Attributes tables, the Transistor Gate Region Attributes tables, the Transistor activeLayer Region Attributes tables, the Whole Guard Ring Attributes tables, and the Guard Ring Segment Attributes tables for the supported value types of each attribute. mcSet returns 0 if any wrong value types are set. No new value is set if -value “” is specified. 794 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands Argument Description glueSyntax This only works for MCell transistors. glueSyntax refers to [-glueNo glue_block_number] | [-glueGateNo gate_glue_number] | [-glueActiveNo active_glue_number], where: ■ -glueNo, -glueGateNo and -glueActiveNo are exclusive. ■ -glueNo specifies the number of glue blocks for activeLayer regions or gates of a transistor. ■ The glue_block_number value must be greater than or equal to 1; and the total_glue_block_number must be greater than or equal to the glue_block_number value. ■ The odd value corresponds to activeLayer region glue blocks. ■ The even value corresponds to gate glue blocks. ■ -glueGateNo specifies the number of gate glue blocks. ■ The gate_glue_number value must be greater than or equal to 1; and the value of (total_glue_block_number-1)/2 must be greater than or equal to the gate_glue_number value. ■ -glueActiveNo specifies the number of activeLayer region glue blocks. ■ The active_glue_number value must be greater than or equal to 1; and the value of (total_glue_block_number+1)/2 must be greater than or equal to the active_glue_number value. If glueSyntax is not specified, using mcSet can set the attributes of the whole transistor. Refer to the Whole Transistor Attributes tables for more details. If glueSyntax is specified with gate glue blocks, then using mcSet can set the attributes of gate regions. Refer to the Transistor Gate Region Attributes tables for more details. If glueSyntax is specified with activeLayer region glue block, then using mcSet can set the attributes of activeLayer regions. Refer to the Transistor activeLayer Region Attributes tables for more details. Examples # Example 1 dbOpenLib -lib reg_mcGetSet set CVID [dbOpenCV -lib reg_mcGetSet -cell reg_1] set INSTID [dbGet -obj $CVID -attr Insts] Laker³ Tcl Reference Manual K-2015.06 795 Chapter 7: Layout Window MCell Commands #1~5 mcSet mcSet mcSet mcSet mcSet -obj $INSTID -attr SubstrateNet -value "" -obj $INSTID -glueGateNo 4 -attr GatePattern -value patternA -obj $INSTID -glueGateNo 4 -attr Length -value 2 -obj $INSTID -glueGateNo 4 -attr Width -value 5 -obj $INSTID -glueGateNo 3 -attr IsDummy -value 0 #6~10 mcSet -obj $INSTID -glueGateNo 4 -attr IsDummy -value 1 mcSet -obj $INSTID -glueGateNo 2 -attr PolyCoPattern -value both mcSet -obj $INSTID -glueGateNo 1 -attr PolyCoTopContactType \ -value single mcSet -obj $INSTID -glueGateNo 1 -attr PolyCoBottomRow -value 2 mcSet -obj $INSTID -glueGateNo 1 -attr PolyCoBottomColumn -value 2 #11~15 mcSet -obj -value 0.6 mcSet -obj -value 0.7 mcSet -obj -value 1.2 mcSet -obj -value 1.4 mcSet -obj #16~20 mcSet -obj mcSet -obj mcSet -obj mcSet -obj mcSet -obj 796 $INSTID -glueGateNo 1 -attr PolyCoBottomMetEncX \ $INSTID -glueGateNo 1 -attr PolyCoBottomMetEncY \ $INSTID -glueGateNo 1 -attr PolyCoBottomCoSpaceX \ $INSTID -glueGateNo 1 -attr PolyCoBottomCoSpaceY \ $INSTID -glueGateNo 1 -attr GateName -value gate001 $INSTID $INSTID $INSTID $INSTID $INSTID -glueGateNo 1 -glueGateNo 1 -glueGateNo 1 -glueActiveNo -glueActiveNo -attr GateNet -value "" -attr SourceNet -value a1 -attr DrainNet -value a2 3 -attr BlockLength -value 3.9 4 -attr CoType -value user Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window MCell Commands #21~25 mcSet -obj $INSTID -glueActiveNo 4 -attr CoRow -value 2 mcSet -obj $INSTID -glueActiveNo 4 -attr CoColumn -value 1 mcSet -obj $INSTID -glueActiveNo 5 -attr Net -value net5 mcSet -submit mcSet -submit -regFile empty_file dbSaveCV -cv $CVID dbCloseCV -cv $CVID # Example 2 # The priority of this option is lower than the rules and # the compact form of transistors. If the left and right sides # of contact related rules are not the same, the contact is set # as close as possible to the center in the x-direction, but # not always at the center. It also depends on the rules and # whether the active region is in a compact form. # For a compact MOS: # - In the left or right OD region, the contact follows rules # minCo2ODEnclsure and minCo2GateSpacing at different sides. If # the values are not equal, the contact is not at the center. # - In an internal OD region, the contact follows rules # minCo2GateSpacing and minMetSpace. The metal of different sides # of neighboring OD regions can be different. If the metal of one # side is closer than another, the metal of the contact may be # pushed away to keep the minimum metal spacing. mcSet -glueNo 2 -attr CoAlign -value xCenter schLakerSetMosType The schLakerSetMosType command specifies preferable NMOS/PMOS symbols for certain MOS types. The available MOS symbols are shown in the following figure. Laker³ Tcl Reference Manual K-2015.06 797 Chapter 7: Layout Window Options Commands Figure 1 Default Mos and Special Mos Syntax schLakerSetMosType -type MosType Returns None Arguments Argument Description -type MosType Specify the preferable MOS symbol type. Valid values: Mos3T, Mos4T, Std4T, Ind4T, Ind3T, Dep3T, Asy3T, Sym3T, and Nv4T. Examples schLakerSetMosType -type Ind4T Options Commands This section describes the Tcl commands applied to the Options commands of the Layout window. These commands include: 798 ■ lakerCellTemplate ■ lakerChangeGrid Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands ■ lakerDispFinGrid ■ lakerDispGlobalFinGrid ■ lakerDispGrid ■ lakerDispHier ■ lakerDispMCellInfo ■ lakerDispRow ■ lakerDispTrack ■ lakerLayerTap ■ lakerSetColPat (for Layer Attribute Setup) ■ lakerSetColPat (for Layer Filter Setup) ■ lakerSetColPat (for Layer Session Setup) ■ lakerSetColPat (for Layer Attribute Editing) ■ lakerSetColPat (for Layer Category Editing) ■ lakerSnapFinGrid ■ lakerSnapRow ■ lakerSnapTrack lakerCellTemplate The lakerCellTemplate command specifies a set of constraints for transistor placement and realization. Syntax lakerCellTemplate [-PlaceConstraint PlaceConstraint] [-RowNum rowNum] [-RowPattern rowPattern] [-PAlignment PAlignment] [-NAlignment NAlignment] [-PNSpacing PNSpacing] [-PStripHeight PStripHeight] [-NStripHeight NStripHeight] [-PPowerSpacing PPowerSpacing] [NGroundSpacing NGroundSpacing] [-PowerRailWidth PowerRailWidth] [-PowerRailLayer 0|1] [-GroundRailWidth GroundRailWidth] [-GroundRailLayer 0|1] [-WellLower WellLower] [-WellUpper WellUpper] [-WellLayer 0|1] [ContactStyle ContStyle] [-PwrGndContactAlignment 0|1] [ContactRowNo ContRowNo] [-ContactColNo ContColNo] [ContactXSpacing ContXSpacing] [-ContactYSpacing Laker³ Tcl Reference Manual K-2015.06 799 Chapter 7: Layout Window Options Commands ContYSpacing] [-PContactAlignment PContAlign] [NContactAlignment NContAlign] [-DefContSpacing 0|1] [PowGndSpacing PowGndSpacing] [-MergeParalle2Single 0|1] [-PolyGateAlign 0|1] [-GateFolding 0|1] [-FoldingStyle FoldingStyle] [-StraightMaxPStrip StrMaxPStrip] [StraightMaxNStrip StrMaxNStrip] [-ThresholdPStrip ThresPStrip] [-ThresholdNStrip ThresNStrip] [-save fileName] [-section sectionName] [-backwardStacking 0|1 -backwardStackingRange float] [-mergeDiffWidthTxOD 0|1] [-useLocalPowerGround 0|1] [-localPower PowerNameList] [-localGround GroundNameList] [-DefThinOdSpacing 0|1] [ThinOdXSpace spacing] Returns None Arguments 800 Argument Description -backwardStacking 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Allow backward transistor placement though it slightly violates the signal flow. 0 : Place the transistors by the signal flow. -backwardStackingRange float Specify the placement range value. Valid value: a positive floating number (default=0.0). -ContactColNo ContColNo Specify the number of columns for the contact array to be created. Valid value: an integer (default=1). -ContactRowNo ContRowNo Specify the number of rows for the contact array to be created. Valid value: an integer (default=1). -ContactStyle ContStyle Specify the contact style of transistors. Valid values: Maximum, Single, User-Defined, None, and Default (default=Maximum). -ContactXSpacing ContXSpacing Specify the spacing between the horizontal contact layers. The default value relies on the technology file setting. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Argument Description -ContactYSpacing ContYSpacing Specify the spacing between the vertical contact layers. The default value relies on the technology file setting. -DefContactSpacing 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Use the defined spacing between contact layers. 0 : Do not use the defined spacing between contact layers. -DefThinOdSpacing 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the OD or Boundary Spacing option. 0 : Disable the OD or Boundary Spacing option. -FoldingStyle FoldingStyle Specify the folding style. Valid values: Uniform and Maximum (default=Uniform). -GateFolding 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Fold gates. 0 : Do not fold gates. -GroundRailLayer 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Specify the layer for ground rails with layer_num purpose_num (for example: GroundRailLayer 1 1 252). 0 : Do not specify any layers for ground rails. -GroundRailWidth GroundRailWidth Specify the height for ground rails. Valid value: a floating number (default=2.3). -localGround GroundNameList Specify the local ground nets. Multiple nets must be separated by spaces. -localPower PowerNameList Specify the local power nets. Multiple nets must be separated by spaces. -mergeDiffWidthTxOD 0|1 Valid values: Boolean values, 0 and 1. 1 : Merge OD for different width transistors. 0 : Merge OD for the same width transistors. Laker³ Tcl Reference Manual K-2015.06 801 Chapter 7: Layout Window Options Commands 802 Argument Description -MergeParalle2Single 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Combine various parallel gates to form a single gate. 0 : Do not combine various parallel gates. -NAlignment NAlignment Specify the alignment mode while placing an NMOS within the N strip. Valid values: PMos, Center, and Ground (default=PMos). -NContactAlignment NContAlign Specify the alignment mode of NMOS contacts. Valid values: PMos, Center, and Ground (default=Center). -NGroundSpacing NGroundSpacing Specify the spacing between N strips and ground rails. Valid value: a floating number (default=1.0). -NStripHeight NStripHeight Specify the height for N strips. Valid value: a real number (default=3.5). -PAlignment PAlignment Specify the alignment mode while placing a PMOS within the P strip. Valid values: Power, Center, and NMos (default=NMos). -PContactAlignment PContAlign Specify the alignment mode of PMOS contacts. Valid values: Power, Center, and NMos (default=Center). -PlaceConstraint PlaceConstraint Specify the constraint to get an optimized transistor placement. Valid values: Default, MinRoutingTrack, MaxGateAlignment, and MaxDiffSharing (default=Default). -PNSpacing PNSpacing Specify the spacing between P and N strips. Valid value: a floating number (default=5.0). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Argument Description -PolyGateAlign 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Correct the relative position of the poly gates between PMOS and NMOS vertically by following the -PAlignment and -NAlignment options. 0 : Do not correct the relative position of poly gates between PMOS and NMOS vertically. -PowerRailLayer PowerRailLayer Valid values: Boolean values, 0 and 1 (default=1). 1 : Specify the layer for power rails with layer_num purpose_num, for example, -PowerRailLayer 1 1 252. 0 : Do not specify any layers for power rails. -PowerRailWidth PowerRailWidth Specify the height for power rails. Valid value: a floating number (default=2.3). -PowGndSpacing PowGndSpacing Specify the spacing between contact layers. It is used when -ContactRowNo is greater than 1. Valid value: a floating number (default=3.0). -PPowerSpacing PPowerSpacing Specify the spacing between P strips and power rails. Valid value: a floating number (default=1.0). -PStripHeight PStripHeight Specify the height for P strips. Valid value: a real number (default=4.2). -PwrGndContactAlignment Valid values: Boolean values, 0 and 1 (default=0). 0|1 1 : Align power and ground contacts. When it is used, the power contact aligns with Vdd, and the ground contact aligns with Vss. 0 : Do not align any power and ground contacts. -RowNum rowNum Specify the number of rows to be used. Valid value: an integer (default=1). The -rowNum should be greater than 1 if -RowPattern PNNP or -RowPattern NPPN is specified. -RowPattern rowPattern Specify the row pattern. Valid values: PN, NP, PNNP, and NPPN (default=PN). Laker³ Tcl Reference Manual K-2015.06 803 Chapter 7: Layout Window Options Commands Argument Description -save fileName Save the changes of the cell template to a file (default=laker.rc). -section sectionName Specify the section to be loaded in the Cell Template form. -StraightMaxNStrip StrMaxNStrip Specify the N strip height to determine whether to fold a straight gate in an NMOS. When a straight gate exceeds the maximum value, it is folded. Valid value: a floating number (default=5.0). -StraightMaxPStrip StrMaxPStrip Specify the P strip height to determine whether to fold a straight gate in a PMOS. When a straight gate exceeds the maximum value, it is folded. Valid value: a floating number (default=5.0). 804 -ThinOdXSpace spacing Specify the horizontal OD spacing for MOS devices. This argument only works with -DefThinOdSpacing. Valid value: a floating number (default=0.0). -ThresholdNStrip ThresNStrip Specify the minimum strip height of the folded gate in an NMOS. Valid value: a floating number (default=5.0). -ThresholdPStrip ThresPStrip Specify the minimum strip height of the folded gate in a PMOS. Valid value: a floating number (default=5.0) -useLocalPowerGround 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Apply local power/ground nets. 0 : Do not apply local power/ground nets. -WellLayer 0|1 Specify whether to add a new Well layer. Valid values: Boolean values, 0 and 1 (default=1). layer_num purpose_num may be specified when the value is 1 (for example: -WellLayer 1 1 252). -WellLower WellLower Specify the lower location of the Well layer. Valid value: a floating number (default=10.0). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Argument Description -WellUpper WellUpper Specify the upper location of the Well layer. Valid value: a floating number (default=20.0). Examples lakerCellTemplate -useLocalPowerGround 1 \ -localPower {VDDA VDDB VDDC} -localGround {GNDA GNDB GNDC} See Also Layout Window: Options > Cell Template lakerChangeGrid The lakerChangeGrid commad sets up the grid attributes and the rules of cursor snapping. Syntax lakerChangeGrid -resolution resolution lakerChangeGrid -default lakerChangeGrid [-dx horDist | -dy verDist | -ratio ratio | -type gridType] [-CursorOnGrid CursorOnGrid] [coordinateOnGrid 0|1] [-mask maskRuleList] [maskCursorOnGrid 0|1] [-track trackRuleList] [-trackCursorOnGrid 0|1] [-displayTrack 0|1] [-saveTF] Returns None Arguments Argument Description -coordinateOnGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). This argument is valid only when -CursorOnGrid is specified. 1 : Enable the Snap User Input Coordinate option. 0 : Disable the Snap User Input Coordinate option. -CursorOnGrid CursorOnGrid If specified, enable the Snap Cursor to Minor Ratio option and set the ratio. Valid value: an integer. Laker³ Tcl Reference Manual K-2015.06 805 Chapter 7: Layout Window Options Commands 806 Argument Description -default Reload the default grid settings from the technology file. -displayTrack 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the Display Routing Track option. 0 : Disable the Display Routing Track option. -dx horDist Specify the horizontal distance of grids. Valid value: a floating number. -dy verDist Specify the vertical distance of grids. Valid value: a floating number. -mask maskRuleList Specify mask resolution rules, listed by the following sequence: LayerName, PurposeName, X-spacing, Yspacing, and Available (Boolean values). -maskCursorOnGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Snap Cursor to Mask Resolution option. 0 : Disable the Snap Cursor to Mask Resolution option. -ratio ratio Specify the value of (Major Grid)/(Minor Grid). Valid value: an integer. -resolution resolution Specify the digital resolution value. Valid value: an integer. -saveTF Update and save the current system unit settings in the Change Grid form to the technology file. -track track RuleList Specify routing track rules, listed by the following sequence: LayerName, PurposeName, X-pitch, Ypitch, X-offset, Y-offset, Direction (V, H, or Orth), Available (Boolean values), and Display (Boolean values). -trackCursorOnGrid 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Snap Cursor to Routing Track option. 0 : Disable the Snap Cursor to Routing Track option. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Argument Description -type gridType Specify the grid type. Valid values: none, line, and dot. Examples # # # # # # # Example 1 Change the minimum resolution to 0.01 Change the minor X and Y spacing to 0.1 Change the major grid ratio to 5 Set the 'Snap Cursor to Min Ratio' to 2 Change the grid type to “dot” Reload the default grid setting of the technology file lakerChangeGrid -resoultion 0.01 -dx 0.1 -dy 0.1 -ratio 5 \ -type dot -CursorOnGrid 2 lakerChangeGrid -track { PO1 drawing 0.5 0.5 0.25 0.25 H 0 0 } \ { ME1 drawing 0.5 0.5 0.25 0.25 V 0 0 } \ { ME3 drawing 0.5 0.5 0.0 0.0 Orth 1 1 } \ { ME4 drawing 0.5 0.5 0.2 0.2 Orth 1 1 } \ { ME5 drawing 0.5 0.5 0.3 0.3 Orth 1 1 } \ lakerChangeGrid -mask { ME1 drawing 0.05 0.05 1 } \ -maskCursorOnGrid 1 lakerChangeGrid -default # Example 2 lakerChangeGrid -dx 0.1 -dy 0.1 -ratio 5 -type dot \ -CursorOnGrid 2 -saveTF lakerChangeGrid -dx 0.5 -dy 0.5 -saveTF # Example 3 # Set the minimum resolution to 0.001 lakerChangeGrid -resolution 0.001 # Example 4 lakerChangeGrid -CursorOnGrid 1 -coordinateOnGrid 1 See Also Layout Window: Options > Change Grid lakerDispFinGrid The lakerDispFinGrid command turns on/off the display of fin grids (or tracks) within a local fin region on screen. Laker³ Tcl Reference Manual K-2015.06 807 Chapter 7: Layout Window Options Commands Syntax lakerDispFinGrid -mode 0|1 Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the display of fin grids (or tracks) within a local fin region on screen. 0 : Disable the display of fin grids (or tracks) within a local fin region on screen. Examples # Display fin grids (or tracks) within a local fin region lakerDispFinGrid -mode 1 See Also Layout Window: Options > Display Fin-grid > Fin Region lakerDispGlobalFinGrid The lakerDispGlobalFinGrid command turns on/off the display of fin grids (or tracks) within a global fin region on screen. Syntax lakerDispGlobalFinGrid -mode 0|1 Returns None Arguments 808 Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the display of fin grids (or tracks) within a global fin region on screen. 0 : Disable the display of fin grids (or tracks) within a global fin region on screen. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Examples # Display fin grids (or tracks) within a global fin region lakerDispGlobalFinGrid -mode 1 See Also Layout Window: Options > Display Fin-grid > Global Fin lakerDispGrid The lakerDispGrid command turns on/off the display of the background grid on screen. Syntax lakerDispGrid [-mode 0|1] Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Enable the display of the background grid on screen. 0 : Disable the display of the background grid on screen. Examples # display the grid lakerDispGrid -mode 1 See Also Layout Window: Options > Display Grid lakerDispHier The lakerDispHier command fits the screen size to the selected cell of the design hierarchy. Syntax lakerDispHier -point (x1,y1)(x2,y2) Laker³ Tcl Reference Manual K-2015.06 809 Chapter 7: Layout Window Options Commands Returns None Arguments Argument Description -point (x1,y1)(x2,y2) (x1,y1) specifies the lower left corner of the bounding box while (x2,y2) specifies upper right corner. Examples # zoom in the view area to (100,100)(200,200) lakerDispHier -point (100,100)(200,200) See Also Layout Window: Options > Design Hierarchy lakerDispMCellInfo The lakerDispMCellInfo command turns on/off the display of the MCell information in the Layout window. Syntax lakerDispMCellInfo -mode 0|1 Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the display of the MCell information. 0 : Disable the display of the MCell information. Examples # turn off the display of MCell information lakerDispMCellInfo -mode 0 See Also Layout Window: Options > Display MCell Information 810 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands lakerDispRow The lakerDispRow command turns on/off the drawing of the row and row area on the screen. Syntax lakerDispRow -mode 0|1 Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the drawing of the row site on screen. 0 : Disable the drawing of the row site on screen. Examples # display the row site lakerDispRow -mode 1 See Also Layout Window: Options > Display Row lakerDispTrack The lakerDispTrack command turns on/off the drawing of the routing track on screen. Syntax lakerDispTrack [-mode 0|1] Returns None Laker³ Tcl Reference Manual K-2015.06 811 Chapter 7: Layout Window Options Commands Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the drawing of the routing track on screen. 0 : Disable the drawing of the routing track on screen. Examples # display the routing track lakerDispTrack -mode 1 See Also Layout Window: Options > Display Routing Track lakerLayerTap The lakerLayerTap command taps the layer at the specified point into the active layer. Syntax lakerLayerTap -point (x0,y0) Returns None Arguments Argument Description -point (x0, y0) (x0,y0) specifies the location of tap for the layer. Examples # Example 1 # Tap the layer at point (100,100) into active layer lakerLayerTap -point (100,100) See Also Layout Window: Options > Layer Tap 812 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands lakerSetColPat (for Layer Attribute Setup) The lakerSetColPat command sets up the attributes of outline colors, fill colors, stipple patterns, line styles, and line widths for the specified layer and purpose. Syntax To set layer attributes in the layer table: lakerSetColPat -selall 0|1 | -visall 0|1 To set the visibility or selectability of all valid layers in the layer table: lakerSetColPat -selValid 0|1 | -visValid 0|1 To edit global settings in the layer table: lakerSetColPat -default [category] | -LoadDispFile | -SaveDispFile [-fileName fileName [-saveToRC 0|1] To edit layer attributes in the layer table: lakerSetColPat [-AddLayer|-DelLayer] -layerNo layerNum [purpose purposeName] | -layerName layerName [-purpose purposeName] | -lp {layerName [purposeName]} ... [[outlineColor colorName -fillColor colorName -stipple stippleName -style lineStyleName -width width -vis 0|1 sel 0|1 -use 0|1] [-streamNo streamNum -dataTypeNo dataTypeNum -apply 0|1]] To show/hide all layers in the layer table: lakerSetColPat -useall 0|1 Returns None Arguments Argument Description -AddLayer Add a layer. -apply 0|1 Valid values: Boolean values, 0 and 1. 1 : Specify the layer to be streamed in/out. 0 : Do not specify the layer to be streamed in/out. Laker³ Tcl Reference Manual K-2015.06 813 Chapter 7: Layout Window Options Commands 814 Argument Description -dataTypeNo dataTypeNum Specify the data type number. -default [category] Reload the default value of technology file. -default: Reload tfLayoutLayerTable, and tfStreamIoTable. -default category: Reload tfLayoutLayerCategory. -DelLayer Delete a layer. -fileName fileName Specify the display file for loading and saving. -fillColor colorName Specify the name of the fill color. -layerName layerName Specify the layer name of the shape. -layerName layerName Specify the layer name of the specified layer. -layerNo layerNum Specify the layer number of the shape. -LoadDispFile Load a display file to replace display definition. -lp {layerName [purposeName]} Specify layer name and purpose name at the same time. If the layer purpose is not specified, the default purpose, drawing, is used. -outlineColor colorName Specify the name of the outline color. -purpose purposeName Specify the purpose name of the shape (default=drawing). -purpose purposeName Specify the purpose name of the specified layer (default=drawing). -SaveDispFile Save the display definition to a file. -saveToRC 0|1 Valid values: Boolean values, 0 and 1. 1 : Update UserDispFile attribute in the laker.rc file. 0 : Do not update UserDispFile attribute in the laker.rc file. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Argument Description -sel 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the selectability of a layer. 0 : Disable the selectability of a layer. -selall 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the selectability of all layers. 0 : Disable the selectability of all layers. -selValid 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the selectability of all valid layer purpose pairs (LPPs). 0 : Disable the selectability of valid LPPs. -stipple stippleName Specify the name of the stipple. -streamNo streamNum Specify the stream number. -style lineStyleName Specify the name of the line style. -use 0|1 Valid values: Boolean values, 0 and 1. 1 : Specify the appearance of a layer. 0 : Do not specify the appearance of a layer. -useall 0|1 Valid values: Boolean values, 0 and 1. 1 : Show all layers. 0 : Hide all layers. -vis 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the visibility of layers. 0 : Disable the visibility of layers. -visall 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the visibility of all layers. 0 : Disable the visibility of all layers. -visValid 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the visibility of all valid LPPs. 0 : Disable the visibility of valid LPPs. -width width Specify the line width. Examples # Example 1 Laker³ Tcl Reference Manual K-2015.06 815 Chapter 7: Layout Window Options Commands # Set all layers to be selectable lakerSetColPat -selall 1 # Example 2 # Load a display file, save it as another display file and # update "UserDispFile" attribute in laker.rc. lakerSetColPat -LoadDispFile /tmp/Laker/display.dsp \ lakerSetColPat -SaveDispFile /tmp/Laker/default.dsp -saveToRC 1 # Example 3 # Add/Delete/Modify a layer lakerSetColPat -AddLayer -layerName NEWLL -layerNo 12 \ -purpose drawing -outlineColor red -fillColor red \ -stipple blank -style solid -width 2 -vis 1 -sel 1 lakerSetColPat -DelLayer -layerNo 12 -purpose drawing lakerSetColPat -layerNo 12 -purpose drawing -outlineColor red \ -fillColor red -stipple blank -style solid -width 2 -vis 1 \ -sel 1 -streamNo 10 -dataTypeNo 10 -apply 1 # Example 4 # Deselect three layer purposes “POLY drawing”, “POLY pin”, # and “MET blockage” with one of the following methods: # method 1 lakerSetColPat -lp [list POLY {POLY pin} {MET1 blockage}] -sel 0 # method 2 lakerSetColPat -lp POLY {POLY pin} {MET1 blockage} -sel 0 # Example 5 # Allow the layer (11 drawing) to stream in/out with stream # number (11) and data type number (0) lakerSetColPat -layerNo 11 -purpose drawing -streamNo 11 \ -dataTypeNo 0 -apply 1 # Example 6 # Set all valid layers to be selectable lakerSetColPat -selValid 1 See Also Layout Window: Options > Layer Color/Pattern > Layer Setting Layer Table Frame: Sel/Vis Control Panel lakerSetColPat (for Layer Filter Setup) The lakerSetColPat command sets up the layer filter. 816 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Syntax To set or clear a layer filter in the layer table: lakerSetColPat -clearFilter | -setFilter filterPattern Returns None Arguments Argument Description -clearFilter Clear the existing layer filter. -setFilter filterPattern Set the filter pattern for the layer filter. Examples # Example 1 # Clear the existing layer filter lakerSetColPat -clearFilter # Example 2 # Set filter pattern "od" lakerSetColPat -setFilter od # Example 3 # Set filter pattern "{m1:drawing via}" lakerSetColPat -setFilter {m1:drawing via} See Also Layer Table Frame: Search Panel lakerSetColPat (for Layer Session Setup) The lakerSetColPat command sets up the layer session. Syntax To set a session in the layer table: lakerSetColPat -saveSession index | -clearSession index | restoreSession index Returns None Laker³ Tcl Reference Manual K-2015.06 817 Chapter 7: Layout Window Options Commands Arguments Argument Description -clearSession index Clear data in the indexed session. Valid value: an integer, from 1 to 5. -restoreSession index Restore data from the indexed session. Valid value: an integer, from 1 to 5. -saveSession index Save data to the indexed session. Valid value: an integer, from 1 to 5. Examples # Example 1 # Save data to the indexed session 1 lakerSetColPat -saveSession 1 # Example 2 # Clear data in the indexed session 2 lakerSetColPat -clearSession 2 # Example 3 # Restore data from the indexed session 3 lakerSetColPat -restoreSession 3 See Also Layer Table Frame: Session Panel lakerSetColPat (for Layer Attribute Editing) The lakerSetColPat command edits the fill colors, line styles, stipple patterns, and display groups. Syntax To edit colors: lakerSetColPat -AddColor | -DeleteColor | -ModifyColor colorName colorName [-r redKey -g greenKey -b blueKey blink 0|1] 818 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands To edit line styles: lakerSetColPat -AddLineStyle | -DeleteLineStyle | -ModifyLineStyle -lineStyleName lineStyleName [-length length -width width -pattern lineStyle] To edit stipples: lakerSetColPat -AddStipple | -DeleteStipple | -ModifyStipple -stippleName stippleName [-width width -height height pattern stipplePatten] To edit display groups: lakerSetColPat -AddGroup | -DeleteGroup | -ModifyGroup -groupName groupName [-outlineColor color -fillColor color -stipple stipple -lineStyle lineStyle] Returns None Arguments Argument Description -AddColor Add a color. -AddGroup Add a display group pattern. -AddLineStyle Add a line style. -AddStipple Add a stipple pattern. -blink 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Specify the blink state of the color. 0 : Do not specify the blink state of the color. -colorName Specify the color name. -DeleteColor Delete a color. -DeleteGroup Delete a display group pattern. -DeleteLineStyle Delete a line style. -DeleteStipple Delete a stipple pattern. -fillColor color Specify the fill color name of the display group pattern. Laker³ Tcl Reference Manual K-2015.06 819 Chapter 7: Layout Window Options Commands 820 Argument Description -groupName groupName Specify the display group name. -height height Specify the height of stipple pattern. -length length Specify the length of the line style. -lineStyle lineStyle Specify the line style name of the display group pattern. -lineStyle lineStyleName Specify the name of the line style. -ModifyColor Modify a color. -ModifyGroup Modify a display group pattern. -ModifyLineStyle Modify a line style. -ModifyStipple Modify a stipple pattern. -outlineColor color Specify the outline color name of the display group pattern. -pattern lineStyle Specify the pattern of the line style starting from left to right, each digit (1/0) represents the pattern (fill/blank) on the mapping position. -pattern stipplePatten Specify the stipple pattern starting from left top to right bottom. Each digit (1/0) represents the pattern (fill/blank) on the mapping position. -r redKey -g greenKey -b blueKey Specify the value of the RGB color. Valid values: redKey, greenKey and blueKey. -stipple stipple Specify the stipple name of the display group pattern. -stippleName stippleName Specify the name of the stipple pattern. -width width Specify the width (thickness) of the line style. -width width Specify the width of the stipple pattern. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Examples # Example 1 # Add a color, a line style, a stipple and a display group pattern lakerSetColPat -AddGroup -groupName DGgreen -outlineColor green \ -fillColor green -stipple blank -lineStyle solid # Example 2 # Delete a color, a line style, a stipple and a display group pattern lakerSetColPat -DeleteGroup -groupName DGgreen # Example 3 # Modify a color, a line style, a stipple and a display group pattern lakerSetColPat -ModifyGroup -groupName DGgreen \ -outlineColor green -fillColor green -stipple blank \ -lineStyle solid See Also Layout Window: Options > Layer Color/Pattern > Layer Setting lakerSetColPat (for Layer Category Editing) The lakerSetColPat command adds, deletes, or modifies a layer category. Syntax To add a layer category set: lakerSetColPat -addCategory Name -use 0|1 -layerInfo Layer1 [Layer2]... To delete a layer category set: lakerSetColPat -delCategory Name To modify a layer category set: lakerSetColPat -modCategory Name -newName newName -use 0|1 -layerInfo Layer1 [Layer2] ... To enable all layer category sets: lakerSetColPat -useAllCategory 0|1 To enable/disable the SysPin category set and the list of PinBorder related layers: lakerSetColPat -modCategory SysPinSet -use 0|1 Laker³ Tcl Reference Manual K-2015.06 821 Chapter 7: Layout Window Options Commands To enable/disable the visibility and selectability of each PinBorder related layer: lakerSetColPat [-syspin layerName] [-vis 0|1] [-set 0|1] To append layer category sets by the category file: lakerSetColPat -LoadCatFile | -SaveCatFile -fileName fileName [-saveToRC 0|1] Returns None Arguments 822 Argument Description -addCategory Name Add a user-defined layer category set. The default category names (RoutingSet, DrawingSet, and DesignSet) cannot be used in this argument. -delCategory Name Delete a user-defined layer category. The default category names, RoutingSet, DrawingSet, and DesignSet, cannot be used in this argument. -fileName fileName Specify the category file for loading and saving. -layerInfo Layer1 [Layer2]... Specify the layer name and purpose name with {LayerName PurposeName} | SystemLayerName | LayerName. The default purpose name is drawing. -layerInfo Layer1 [Layer2]... Specify the layer name and purpose name (default=drawing) with {LayerName PurposeName} | SystemLayerName | LayerName. -LoadCatFile Load a category file. -modCategory Name Modify a user-defined layer category set. The default category names, RoutingSet, DrawingSet, and DesignSet, cannot be used in this argument. -modCategory SysPinSet Modify the SysPin category set. -newName newName Rename a user-defined layer category set. The default category names, RoutingSet, DrawingSet, and DesignSet, cannot be used in this argument. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Argument Description -SaveCatFile Save a category file. -saveToRC 0|1 Valid values: Boolean values, 0 and 1. 1 : Update the LayerCategory attributes in laker.rc. 0 : Do not update the LayerCategory attributes in laker.rc. -sel 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the selectability of PinBorder related layers. 0 : Disable the selectability of PinBorder related layers. -syspin layerName Specify the PinBorder related layers, defined in the tfLayoutConnection section of the technology file. -use 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the appearance of a layer category set. 0 : Disable the appearance of a layer category set. -useAllCategory 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable all layer category sets. 0 : Disable all layer category sets. -vis 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the visibility of PinBorder related layers. 0 : Disable the visibility of PinBorder related layers. Examples # Example 1 # Add a layer category set lakerSetColPat -addCategory drawingSet1 -use 1 \ -layerInfo {MET1 drawing} {MET2 drawing} {MET3 drawing} # Example 2 # Delete a layer category set lakerSetColPat -delCategory drawingSet2 # Example 3 # Modify a layer category set lakerSetColPat -modCategory drawingSet1 -newName drawing1 \ -use 1 -layerInfo {MET1 drawing} {VIA1 drawing} \ {MET2 drawing} # Example 4 # Disable the selectability of the PinBorder related layer, MET1 Laker³ Tcl Reference Manual K-2015.06 823 Chapter 7: Layout Window Options Commands lakerSeColPat -syspin MET1 -sel 0 # Example 5 # Disable the visibility of the PinBorder related layer, MET1 lakerSeColPat -syspin MET1 -vis 0 See Also Layout Window: Options > Layer Color/Pattern > Category Setting Layer Table Frame: Category List Panel lakerSnapFinGrid The lakerSnapFinGrid command turns on/off the cursor snap action to the nearest fin grid (or track) within a fin region when creating or editing a fin region or an OD shape. Syntax lakerSnapFinGrid -mode 0|1 Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the snap action to the nearest fin grid or track. 0 : Disable the snap action to the nearest fin grid or track. Examples # Example 1 # Snap cursor to the nearest fin grid or track lakerSnapFinGrid -mode 1 See Also Layout Window: Options > Snap Fin-grid lakerSnapRow The lakerSnapRow command turns on/off the cursor snap action to the nearest row site when creating or editing instances for cell placement. 824 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Options Commands Syntax lakerSnapRow -mode 0|1 Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the snap action to the nearest row site. 0 : Disable the snap action to the nearest row site. Examples # Example 1 # Snap cursor to the nearest row site lakerSnapRow -mode 1 See Also Layout Window: Options > Snap Row lakerSnapTrack The lakerSnapTrack command turns on/off the cursor snap action to the nearest routing track when moving or pointing to objects. Syntax lakerSnapTrack [-mode 0|1] Returns None Arguments Argument Description -mode 0|1 Valid values: Boolean values, 0 and 1. 1 : Enable the cursor snap action to the nearest routing track. 0 : Disable the cursor snap action to the nearest routing track. Examples # Example 1 # Snap cursor to the nearest routing track Laker³ Tcl Reference Manual K-2015.06 825 Chapter 7: Layout Window Query Commands lakerSnapTrack -mode 1 See Also Layout Window: Options > Snap Routing Track Query Commands This section describes the Tcl commands applied to the Query commands of the Layout window. These commands include: 826 ■ lakerAdjacentNet ■ lakerArea ■ lakerAttribute ■ lakerClearHighLight ■ lakerClearConn ■ lakerClearDimensionMarks ■ lakerClearRuler ■ lakerClearRulerLabels ■ lakerClearTagRulers ■ lakerConfigFlightLine ■ lakerConnBrowser ■ lakerConnChecker ■ lakerDistance ■ lakerEstimateCellArea ■ lakerFindObj ■ lakerFindNetByArea ■ lakerFlightLine ■ lakerMeasureResistance ■ lakerP2PResistance ■ lakerPadWindow ■ lakerRefreshShortError Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands ■ lakerReplaceObj ■ lakerRuler ■ lakerShortClean ■ lakerShortLocator ■ lakerShowHPWireLength ■ lakerSpareCell ■ lakerUDP lakerAdjacentNet The lakerAdjacentNet command extracts adjacent objects in accordance with user-specified spacing rule. Syntax lakerAdjacentNet -with applyWith -margin marginRatio [highlight 0|1] [-addSel 0|1] [-gdsOut fileName] Returns None Arguments Argument Description -with applyWith Define the extraction input. Valid values: highlight, netTracer, and select. -margin marginRatio Specify the margin ratio, it is multiplied by the spacing value, defined in tfNetRouteRule. -highlight 0|1 Valid values: Boolean values, 0 and 1. 1 : Draw the output data with highlight color by sequence. 0 : Do not draw the output data with highlight color by sequence. -addSel 0|1 Valid values: Boolean values, 0 and 1. 1 : Add the output data into the select set. 0 : Do not add the output data into the select set. -gdsOut fileName Save the output data to a GDSII file. Laker³ Tcl Reference Manual K-2015.06 827 Chapter 7: Layout Window Query Commands Examples # Extract the adjacent objects from the currently selected set. # The space between selected object and adjacent object should be # smaller than 0.63 (margin multiplied by spacing: 1.4*0.45=0.63 if # the spacing rule is 0.45). If the checking object meets the rule, # it adds into the select set. lakerAdjacentNet -with select -addSel 1 -margin 1.4 See Also Layout Window: Query > Adjacent Net lakerArea The lakerArea command estimates the area of pointed shapes. Syntax lakerArea [-layer {layerName purposeName} {...}] [-fromlevel Level] [-tolevel Level] [-file fileName] Returns None Arguments Argument Description -file fileName Save the measurement result to a specified file (*.log). The file path is printed in the message frame of the Home page. -fromlevel Level Specify the start level (default=current start level). Valid value: an integer (default=0). -layer {{layerName purposeName} {...} Specify the layer of the displayed shapes (default=layer of all displayed shapes). -tolevel Level Specify the view level (default=current view level). Valid value: an integer (default=0). Examples None See Also Layout Window: Query > Measure > Area 828 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands lakerAttribute The lakerAttribute command modifies the attributes of selected objects or devices. The following table shows the six attributes of path elements for -routeParam. Argument Description beginStyle pathStyle Choose one of the path styles, either Truncate, Extend, or Variable. color colorName Specify the color name. endStyle pathStyle Choose one of the path styles, either Truncate, Extend, or Variable. layerName layer Specify the layer name. lock 0|1 Lock or unlock the color of the shape. points (x0, y0) (x1, y1) Specify two ends of the modified path segment. purpose purpose Specify the purpose name. width width Specify a float value as the width of the modified path segment. The following table shows the nine attributes of via elements. Argument Description colSpace colSpace Specify the interval between columns. columns colsNo Specify the number of columns for via arrays. height height Specify a float value as the height of vias. orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90. point (x, y) Specify the via location. Laker³ Tcl Reference Manual K-2015.06 829 Chapter 7: Layout Window Query Commands Argument Description rows rowsNo Specify the number of rows for via arrays. rowSpace rowSpace Specify the interval between rows. viaDef viaName Specify the via name. width width Specify a float value as the width of vias. Syntax lakerAttribute [-index index] [-point point | [-lowerLeft (x0,y0)] [-upperRight (x0,y0)]] [-offsetPoint (x0,y0)] [-style pathStyle] [-layerName layerName [-purpose purpose] ] [-width width] [-length length] [-orient orientation] [-magni magnification] [-cell cellName] [inst instName] [-rows rowsNo] [-cols colsNo] [-rowSpace rowSpace] [-colSpace colSpace] [-justify justification] [-font textFont] [-height height] [-text textString] [inner r1] [-outer r2] [-changeToArray changeToArray] [device deviceName] [-xSpace xSpace] [-ySpace ySpace] [xLay1Enc xLay1Enc] [-yLay1Enc yLay1Enc] [-xLay2Enc xLay2Enc] [-yLay2Enc yLay2Enc] [-xRepeat xRepeat] [yRepeat yRepeat] [-device viaStackName] [-contType contType] [-contAlign contAlign] [[-contMode contMode] [-topLayer layerName]] [-createContact 0|1] [createCornerContact 0|1] [-contAlignMode Center|Max] [contLen number] [-totalLength length] [-fit seg | [block] fitValue] [-space deviceSpace] [-metWidth metWidth] [connectType connectType] [-interDist interContDistance] [-value value] [-metEncCo metEncCo] [-unitDist unitDist] [-pattern pattern] [-centerLine centerLine] [-param parameters] [-netName netName] [-gateName gateName] [portName portName] [-pinName pinName] [-portType portType] [-accDir accDir] [-status status] [disableImpNotch 0|1] [-resEncCo enclosure_value] [co2Gate number [$rule_name]] [-optLayerRepeatPattern optLayerRepeatPattern] [-traitRepeatPattern Pattern] [trait Pattern] [-layerSetting {layerName purposeName enable | disable rectangle | fillNotch | none | fillHole} {value1 value2} + ] [-createDummyGate {numberSingle numberMulti numberInner | {numberInner toleranceValue}} [-dummyGateLengthType LengthType]] [-dummyCapValue dummyCapValue] [-unitSpaceX unitSpaceX] [-unitSpaceY 830 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands unitSpaceY] [-unitValue unitValue] [-unitWidth unitWidth] [-dummyWidth value] [-dummyContact 0|1] [extSegLength 0|1] [-segNo value] [-bodyWidth floatValue] [-pivot top|bottom|firstEnd|secondEnd] [useMaskResolution 0|1|AsIs] [-xConSpace xConSpace [$rule_name]] [-yConSpace yConSpace [$rule_name]] [routeParam attributeList] [-pathOffset value] [globalRule $rule_name] [-topLayerName name1] [topPurpose name2] [-botLayerName name3] [-botPurpose name4] [-bottomLayer bottomLayerName [bottomPurpose]] [topLayer topLayerName [topPurpose]] [-nonOverlapVia 0|1] [-discreteGatePitch 0|1] [-contLay1Width layerWidth] [reEval 0|1] [-contLay1Height layerHeight] [createPolyCont 0|1] [-routeStatus routeStatus] [routeType routeType] [-polyContType contType] [-polyConSymmetry 0|1] [-showExtensionLine 0|1] [xPolyCoEnc value] [-yPolyCoEnc value] [-xPolyCoConSpace xConSpace [$rule_name]] [-yPolyCoConSpace yConSpace [$rule_name]] [-dummyGatePolyCoSym mode] [-xCo2OdEnc xValue -yCo2OdEnc yValue] [-plugInParam {{$paramName $paramValue} [{$paramName $paramValue}...]}] [placementStatus status] [-rectContactStyle 0|1] [avgDCCurrent avgDCCurrent] [-avgACCurrent avgACCurrent] [-peakACCurrent peakACCurrent] [-rmsACCurrent rmsACCurrent] [-object objectName] [-beginStyle beginStyle [-beginExt beginExt extendValue]] [-endStyle endStyle [-endExt extendValue]] [-beginStrap 0|1] [endStrap 0|1] [-striped 0|1] [-stripeSegIndex index] [viaDef viaName] [-spacing spacing] [-number number] [color colorName] [-lock 0|1] Returns None Arguments Argument Description -accDir accDir Specify the pin direction. Valid values: the combination of {Top}, {Bottom}, {Left}, and {Right} (default=all directions, that is, {Top}{Bottom}{Left}{Right}). Laker³ Tcl Reference Manual K-2015.06 831 Chapter 7: Layout Window Query Commands 832 Argument Description -avgACCurrent avgACCurrent Specify the average AC current value. Valid value: a positive floating number. -avgDCCurrent avgDCCurrent Specify the average DC current value. Valid value: a positive floating number. -beginExt extendValue Specify the extension value if the begin style is Variable. Valid value: a floating number. -beginStrap 0|1 Valid values: Boolean values, 0 and 1. 1 : Indicate there is a strap at the begin terminal. 0 : Do not indicate any strap at the begin terminal. -beginStyle beginStyle Specify the begin style of striped wires. Valid values: Truncate, Extend, and Variable. -bodyWidth floatValue Specify the body width of guard rings. The number of contact rows is determined by the body width and contact spacing. Valid value: a positive floating number. -botLayerName name3 This argument is used for contact devices. name3 is the bottommost layer name of stack vias. -botPurpose name4 This argument is used for contact devices. name4 is the bottommost layer purpose of stack vias. -bottomLayer bottomLayerName [bottomPurpose] Specify the layer name (and purpose name) for the bottommost layer. -cell cellName Specify the cell name. -centerLine centerLine (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array of the center line while y0...yn specify the y coordinate. Objects can be aligned by XY coordinates respectively: (*, -12.3) : X is AsIs and Y aligns to -12.3 (12.3, *) : Y is AsIs and X aligns to 12.3 Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -changeToArray changeToArray Change the instance type to one-by-one array type. -co2Gate number [$rule_name] Specify the spacing between contacts and gates. number: The number is in user units, and it must be greater than or equal to the minCo2GateSpace value defined in the technology file. The default is the minCo2GateSpace value. $rule_name: The rule to be used (default=default, which indicates the default rule). -colorName colorName Specify the color name. Valid value: a string. -cols colsNo Specify the number of columns. Valid value: an integer. -colSpace colSpace Specify the number of instances for y coordinate spacing. -connectType connectType Specify the connected type for resistors. Valid values: metal, res, and none (default=res). -contAlign contAlign Specify the alignment of contacts. Valid values: top, center, and bottom (default=center). If the value of -contAlign is none of the above values, or it is not specified, the contact align status for the selected transistor/activeLayer-region remains unchanged. -contAlignMode Center|Max Specify the contact pattern. Valid values: Center, and Max (default=Center). Center : Center-aligned contacts; Max : Maximum contacts. -contLay1Height layerHeight Specify the height for the bottom layer of contact arrays. Laker³ Tcl Reference Manual K-2015.06 833 Chapter 7: Layout Window Query Commands Argument Description -contLay1Width l ayerWidth Specify the width for the bottom layer of contact arrays. -contLen number Specify the contact length. It accepts two kinds of unit, that is, db unit and user-defined unit as follows. ■ ■ -contMode contMode Specify the contact mode. The following valid values vary depending on different MCell devices. ■ ■ ■ -contType contType (for transistors) Transistors: Normal, Esd, and StackVia (default=Normal). Refer to lakerCreateTransistor. Guard rings: normal, and stackVia (default=normal). Refer to lakerCreateGuardRing. Contacts: centerAlign, and maximum (default=maximum). Refer to lakerCreateContact. Specify the contact type. The following valid values vary depending on different MCell devices. ■ 834 With a decimal point, the user- defined unit is used. Without a decimal point, the db unit is used. Transistors: asIs, NoContact, SingleContact, MaxContact, and ContactArray (default=MaxContact). asIs : Keep the existing condition without modification. NoContact: Remove contacts. SingleContact : Change to a single contact structure. MaxContact : Change to a maximum contact structure. ContactArray : Insert a contact array with the number of columns and rows, such as contactArray column row. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -contType contType (for resistors) Specify the contact type. The following valid values vary depending on different MCell devices. ■ -contType contType (for capacitors) Resistors: maxRow, single, maximum, and contactArray (default=maxRow). maxRow : Change to a contact structure with maximum row, such as maxRow row. single : Change to a single contact structure. maximum : Change to a maximum contact structure. contactArray : Insert a contact array with the number of columns and rows, such as contactArray column row. Specify the contact type. The following valid values vary depending on different MCell devices. ■ Capacitors: maximum, contactArray, and AsIs (default=maximum). maximum : Change to a maximum contact structure. contactArray : Insert a contact array with the number of columns and rows, such as contactArray column row. AsIs : Keep the existing condition without modification. -createContact 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Create contact in stack paths. 0 : Do not create contact in stack paths. -createCornerContact 0|1 Valid values: Boolean values, 0 and 1 (default=1). 1 : Create corner contacts. 0 : Do not create any corner contacts. Laker³ Tcl Reference Manual K-2015.06 835 Chapter 7: Layout Window Query Commands 836 Argument Description -createDummyGate { numberSingle numberMulti numberInner | { numberInner toleranceValue } } Create dummy gates for a transistor with these conditions: numberSingle: Number of dummy gates (default=2) for a transistor with one normal gate. numberMulti: Number of dummy gates (default=1) for a transistor with multiple normal gates. numberInner: Number of dummy gates (default=1) for a transistor with different gate width (between two adjacent gates) exceeding the toleranceValue. This toleranceValue must be greater than or equal to 0.0. numberSingle, numberMulti and numberInner must be specified when this option is used. Valid value: an integer, greater than or equal to 0. -createPolyCont 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Create poly contacts. 0 : Do not create any poly contacts. -device deviceName Specify the name of contacts, transistors, resistors, capacitors or guard rings. -device viaStackName Specify the via stacking name (or contact device name) for stack paths (default=StackVia). If it is StackVia, the contact device sequence is connected automatically. -disableImpNotch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Create a notch shape on IMP/L1/L2 layers. 0 : Do not create any notch shapes on IMP/L1/L2 layers. -discreteGatePitch 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Discrete Gate Pitch option. 0 : Disable the Discrete Gate Pitch option. -dummyCapValue dummyCapValue Specify the capacitance (in pF) of dummy capacitors. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -dummyGateLengthType LengthType Specify the length type for dummy gates. This argument is valid only if -createDummyGate is specified. Valid values: AdjacentNarrower, AdjacentWider and MinChannelLength (default=AdjacentNarrower). -dummyContact 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Add contacts and metal on dummy resistors. 0 : Do not add contacts and metal on dummy resistors. -dummyWidth value Specify the dummy width for resistors. By default, the value is equal to the -width option. -dummyGatePolyCoSym mode Set the poly contact structure for dummy gates. Valid values: none, polyOnly, and all (default=none). -endExt extendValue Specify the extension value if the end style is Variable. Valid value: a floating number. -endStrap 0|1 Valid values: Boolean values, 0 and 1. 1 : Indicate there is a strap at the end terminal. 0 : Do not indicate any strap at the end terminal. -endStyle endStyle Specify the end style of striped wires. Valid values: Truncate, Extend, and Variable. -extSegLength 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Extend each segment to make each segment having the same length. This argument is used for disconnected resistors only. 0 : Do not extend the segment length. -fit seg|[block] fitValue Specify the value of segment or blockLength. Laker³ Tcl Reference Manual K-2015.06 837 Chapter 7: Layout Window Query Commands Argument Description -font textFont Specify the font type of created text strings, ruler labels, genText labels or dimension marks. Valid values for created text strings: Modern, Script, Roman, Simple, Merit, Contemplate and Contemplate1 (default=Modern). Valid values for ruler labels, genText labels and dimension marks: Modern, Script, and Roman (default=Modern). 838 -gateName gateName Assign a gate name to the transistor gate. -globalRule $rule_name Specify the global rule for transistors, contact devices, guard rings (default=default, which indicates the default rule). -height height Specify the text height of created text strings, ruler labels, genText labels or dimension marks. Valid value: a positive floating number (default=1.0). -index index Edit an index of the selected objects. Valid value: an integer. The starting index number is 1. If this is not set, all selected objects can be edited. -inner r1 Specify the inner radius of doughnuts. -inst instName Specify the instance name (default=systemassigned). -interDist interContDistance Specify each inter contact distance (default=empty string). -jointType jointType Specify the joint type for the specified pin. Valid values: Disjointed, Strong, and Weak. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -justify justification Specify the contact justification of paths, or the text justification of created text strings, dimension mark and genText labels. Valid values for contacts in paths: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight. Valid values for created text strings: Original, UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=LowerLeft). The Original value is available only when -toPoly is turned on. Valid values for genText labels: UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight (default=CenterCenter). Valid values for dimension mark labels: Auto, UpperLeft, CenterLeft, LowerLeft, UpperCenter, CenterCenter, LowerCenter, UpperRight, CenterRight, and LowerRight. -layerName layerName Laker³ Tcl Reference Manual K-2015.06 Specify the layer name. 839 Chapter 7: Layout Window Query Commands Argument Description -layerSetting {layerName purposeName enable|disable rectangle|fillNotch|none|fillHole} {value1 value2}+ ■ ■ ■ ■ ■ ■ 840 enable or disable enables or disables the specified layer, and rectangle, fillNotch, none, or fillHole sets the extend type of that layer. fillHole is used for MCell guard rings only. The parameter set {layerName purposeName enable|disable rectangle|fillNotch|none|fillHole} is ignored if the specified layer is disabled (setting generate off and control off in the technology file). enable or disable is ignored if the layer is locked (setting control off in the technology file). rectangle, fillNotch, none, or fillHole is ignored if this layer is set to be disable. {value1 value2} sets the enclosure distance between preserved option layers (Imp, L1-L9) and the OD layer for MCell transistors or the body layer for MCell guard rings. The layers without layer editing parameters use the default value defined in the technology file. -length length Specify the cutting length of contacts. -lock 0|1 Valid values: Boolean values, 0 and 1. 1 : Lock the color of the shape. 0 : Unlock the color of the shape. -lowerLeft (x0,y0) x0 specifies the x coordinate for the lower left corner of the rectangle while y0 specifies the y coordinate. Objects can be aligned by XY coordinates respectively: (*, -12.3) : X is AsIs and Y aligns to -12.3 (12.3, *) : Y is AsIs and X aligns to 12.3 -magni magnification Specify the view size is printed compared with a real chip size. Valid value: a positive floating number (default=1.0). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -metEncCo metEncCo Specify the enclosure distance between the metal and contact layers (for Cross contact mode only). -metWidth metWidth Specify the width of Metal layer shapes that connect cross type contacts (for Cross contact mode only). -netName netName Assign a net name to the selected shape or MCell. -nonOverlapVia 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Allow non-overlapping contacts/vias. 0 : Allow overlapping contacts/vias. -number number Specify the number of stripes for the striped segment. Valid value: an integer. -object objectName Specify the name of the striped wire. -offsetPoint (x0,y0) x0 specifies an offset value from the x coordinate point while y0 specifies the value from the y coordinate point. -optLayerRepeatPattern optLayerRepeatPattern Define the repeated sequence of option layers. -orient orientation Specify the orientation. Valid values: R0, R90, R180, R270, MXR0, MXR90, MYR0, and MYR90 (default=R0). -outer r2 Specify the outer radius of doughnuts. -pathOffset value Specify the path offset for user-defined justification. Valid value: a floating number (default=0.0). Laker³ Tcl Reference Manual K-2015.06 841 Chapter 7: Layout Window Query Commands Argument Description -param parameters Specify the parameter list for contacts. Each parameter includes the device name, the number of columns, the number of rows, the contact width, the contact length, the align type (m for maximum type), optional parameters for the width and height of the bottom layer, the horizontal spacing between contact layers, the vertical spacing between contact layers, the horizontal enclosure distance between the contact layer and the first connected layer, the vertical enclosure distance between the contact layer and the first connected layer, the horizontal enclosure distance between the contact layer and the second connected layer, the vertical enclosure distance between the contact layer and the second connected layer, align type (c for align center, other for no align center), the horizontal distance between the leftmost contact’s center of the current contact layer and the first contact layer, the vertical distance between the leftmost contact's center of the current contact layer and the first contact layer. Specify the parameter list for stack paths. Each parameter includes the contact device name, the contact width, the contact length, the horizontal/ vertical spacings between contact layers, the horizontal/vertical enclosure distances between contact layer and the first connected layer, the horizontal/vertical enclosure distances between contact layer and the second connected layer. Refer to the -param parameter description for more details of the parameter list for transistors. 842 -pattern pattern Specify the capacitor pattern. Valid values: patternA, patternB, patternC, and patternD (default=patternA). -peakACCurrent peakACCurrent Specify the peak AC current value. Valid value: a positive floating number. -pinName pinName Assign a pin name to the selected shape. Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -pivot top | bottom | firstEnd | secondEnd Specify the end point under consideration. Valid values: top, bottom, firstEnd, and secondEnd. top and bottom are for metal/res-connected resistor. firstEnd and secondEnd are for disconnected resistor and are ignored if -segNo is not specified. -placementStatus status Specify the pin placement status. Valid values: Fixed, Cover, Placed, Unplaced, and Null (default=Placed). -plugInParam {{$paramName $paramValue}[{$paramName $paramValue}...]} Define a list of parameters for MCell callbacks. This applies to MCell transistors and guard rings. ■ ■ $paramName: Specify the parameter name, which is defined in params of the callBack section. $paramValue: Specify the parameter value for the corresponding $paramName. -point point Specify the centerline of the striped segment. -point point (x0,y0)...(xn,yn) x0...xn specify the x coordinate for the point array while y0...yn specify the y coordinate. Objects can be aligned by XY coordinates respectively, for example: (*, -12.3) : X is AsIs and Y aligns to -12.3 (12.3, *) : Y is AsIs and X aligns to 12.3 -polyContType contType Specify the contact type for poly contacts. Valid values: NoContact, SingleContact, MaxContact, and ContactArray (default=MaxContact). SingleContact : Insert a single contact. MaxContact : Insert the maximum number of contacts. ContactArray : Insert a contact array with the number of columns and rows, such as contactArray row column. Laker³ Tcl Reference Manual K-2015.06 843 Chapter 7: Layout Window Query Commands 844 Argument Description -polyConSymmetry 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Symmetry option for poly contacts. 0 : Disable the Symmetry for poly contacts. -portName portName Assign a port name to the selected shape. -portType portType Set the pin shape type. Valid values: in, out, inout, jumper, and device. -purpose purpose Specify the purpose name (default=drawing). -rectContactStyle 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Rectangle Contact Style option. 0 : Disable the Rectangle Contact Style option. -reEval 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Refresh Signature Number option. 0 : Disable the Refresh Signature Number option. -resEncCo enclosure_value Specify the horizontal enclosure distance between the resistor body layer and contact layer. -rmsACCurrent rmsACCurrent Specify the root-mean-square (rms) AC current value. Valid value: a positive floating number. -routeParam attributeList Specify the list of attributes for the modified element of route objects. The format is {elementIndex {attrKey attrValue} ...}. Some attributes for path and via elements are illustrated the Description section. -routeStatus routeStatus Specify the route status. Valid values: Fixed, Routed, and Cover (default=Fixed). Laker³ Tcl Reference Manual K-2015.06 Chapter 7: Layout Window Query Commands Argument Description -routeType routeType Specify the route type. -rows rowsNo Specify the number of instance rows. Valid value: an integer (default=1). -rowSpace rowSpace Specify the number of instances for the x coordinate spacing. Valid value: a floating number. -segNo value Specify the segment index of a disconnected resistor. -showExtensionLine 0|1 Valid values: Boolean values, 0 and 1 (default=0). 1 : Enable the Show Extension Line option. 0 : Disable the Show Extension Line option. -space deviceSpace Specify the spacing between resistor shapes. -spacing spacing Specify the stripe spacing for this striped segment. -status status Set the pin shape status. Valid values: fix and float. -striped 0|1 Valid values: Boolean values, 0 and 1. 1 : Specify the geometry as stripes. 0 : Specify the geometry as fat wires. -stripeSegIndex index Specify the index of the active striped segment. Valid value: an integer (default=1). -style pathStyle Specify the path style. Valid values: Truncate, Extend, Round, and Variable -beginExt value -endExt value (default=Truncate). -text textString Specify the text string. Laker³ Tcl Reference Manual K-2015.06 Valid values: none, ring, padRing, blockRing, stripe, followPin, IOWire, coreWire, blockWire, signalUser, pgStripe, clockStripe, and miscFillTrack (default=none). 845 Chapter 7: Layout Window Query Commands 846 Argument Description -topLayer layerName Specify the top layer is selected from one of the metal layers defined in the technology file. This argument is valid only if -contMode stackVia is specified. -topLayerName name1 This argument is used for contact devices. name1 is the topmost layer name of stack vias. -topLayer topLayerName [topPurpose] Specify the layer name (and purpose name) for the topmost layer. -topPurpose name2 This argument is used for contact devices. name2 is the topmost layer purpose of stack vias. -totalLength length Specify the total length between outmost contact layers (default=100.0). -trait Pattern Define the trait repeat pattern for partially selected transistors. The valid value can be any combinations from the defined trait in technology file. -traitRepeatPattern Pattern Define the trait repeat pattern for fully selected transistors. The valid value can be any combinations from the defined trait in technology file. -unitDist unitDist Specify the unit distance of cross contact array structure (for Cross contact mode only). -unitSpaceX unitSpaceX Specify the horizontal spacing between unit capacitors. Valid value: a positive floating number. -unitSpaceY unitSpaceY Specify the vertical spacing between unit capacitors. Valid valu