791
End-User License Agreement Trademark Information IC Station User’s Manual Software Version v8.9_9 IC Flow Version 2003.1 Copyright Mentor Graphics Corporation 2003. All rights reserved. This document contains information that is proprietary to Mentor Graphics Corporation. The original recipient of this document may duplicate this document in whole or in part for internal business purposes only, provided that this entire notice appears in all copies. In duplicating any part of this document, the recipient agrees to make every reasonable effort to prevent the unauthorized use and distribution of the proprietary information.

Icstation User Manual @Vins

Embed Size (px)

Citation preview

Page 1: Icstation User Manual @Vins

End-User License Agreement

Trademark Information

IC Station User’s Manual

Software Version v8.9_9

IC Flow Version 2003.1

Copyright Mentor Graphics Corporation 2003.All rights reserved.

This document contains information that is proprietary to Mentor Graphics Corporation. The originalrecipient of this document may duplicate this document in whole or in part for internal business purposesonly, provided that this entire notice appears in all copies. In duplicating any part of this document, therecipient agrees to make every reasonable effort to prevent the unauthorized use and distribution of the

proprietary information.

Page 2: Icstation User Manual @Vins

This document is for information and instruction purposes. Mentor Graphics reserves the right to makechanges in specifications and other information contained in this publication without prior notice, and thereader should, in all cases, consult Mentor Graphics to determine whether any changes have beenmade.

The terms and conditions governing the sale and licensing of Mentor Graphics products are set forth inwritten agreements between Mentor Graphics and its customers. No representation or other affirmationof fact contained in this publication shall be deemed to be a warranty or give rise to any liability of MentorGraphics whatsoever.

MENTOR GRAPHICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIALINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR MERCHANTABILITY ANDFITNESS FOR A PARTICULAR PURPOSE.

MENTOR GRAPHICS SHALL NOT BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, ORCONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)ARISING OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT,EVEN IF MENTOR GRAPHICS CORPORATION HAS BEEN ADVISED OF THE POSSIBILITY OFSUCH DAMAGES.

RESTRICTED RIGHTS LEGEND 03/97

U.S. Government Restricted Rights. The SOFTWARE and documentation have been developedentirely at private expense and are commercial computer software provided with restricted rights. Use,duplication or disclosure by the U.S. Government or a U.S. Government subcontractor is subject to therestrictions set forth in the license agreement provided with the software pursuant to DFARS 227.7202-3(a) or as set forth in subparagraph (c)(1) and (2) of the Commercial Computer Software - RestrictedRights clause at FAR 52.227-19, as applicable.

Contractor/manufacturer is:Mentor Graphics Corporation

8005 S.W. Boeckman Road, Wilsonville, Oregon 97070-7777.

This is an unpublished work of Mentor Graphics Corporation.

Page 3: Icstation User Manual @Vins

Table of Contents

xxxi

..xxxixxiii..xxxvi

1-1

... 1-3... 1-4. 1-11. 1-111-12

. 1-15.. 1-151-161-17.. 1-17.. 1-17. 1-18. 1-19.. 1-19.. 1-20. 1-20. 1-221-241-25

2-1

... 2-2

... 2-3

.... 2-3

... 2-3

Table of Contents

About This Manual ............................................................................................

Manual Organization .......................................................................................IC Layout and Verification Documentation ................................................... xOther Resources.............................................................................................

Chapter 1Introduction to IC Station ..................................................................................

IC Design Flow................................................................................................Front-End Design ..........................................................................................Full Custom IC Design..................................................................................Automated IC Design....................................................................................Verification ....................................................................................................

Tool Invocation................................................................................................Setup.............................................................................................................Invoking Tools ...............................................................................................Invoking IC Tools on Sun Workstations........................................................

Related Software.............................................................................................Interfaces ......................................................................................................Framework Software.....................................................................................Plotting Software...........................................................................................

Licenses ..........................................................................................................Key Concepts..................................................................................................

IC Environment.............................................................................................Editing Modes ...............................................................................................Technology Information.................................................................................Flat and Hierarchical Layout..........................................................................

Chapter 2Full Custom Overview ........................................................................................

Full Custom Tools ...........................................................................................Rule File ........................................................................................................Process File ..................................................................................................Logic Source .................................................................................................

IC Station User’s Manual, v8.9_9 iii

Page 4: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

... 2-3... 2-4... 2-4.... 2-4

. 3-1

... 3-1

... 3-3... 3-4... 3-5.... 3-5... 3-5... 3-6. 3-6

4-1

... 4-1

.... 4-2

... 4-4.. 4-134-13.. 4-154-15

.. 4-16

. 5-1

.... 5-1

.... 5-1

... 5-3

.... 5-3.... 5-4

Floorplanning ................................................................................................ICgraph..........................................................................................................Compaction ...................................................................................................Other Layout Sources...................................................................................

Chapter 3Automated IC Design.........................................................................................

Overview..........................................................................................................Automated Layout Process Flow.....................................................................

Library Creation ............................................................................................Floorplanning ................................................................................................Placement and Routing ................................................................................Compaction ...................................................................................................Design Verification and Pattern Generation .................................................

For Additional Information................................................................................

Chapter 4ICblocks Design Environment............................................................................

Overview..........................................................................................................Placement .....................................................................................................Routing..........................................................................................................

Logic Source...................................................................................................EDDM Viewpoints.........................................................................................

Layout Source.................................................................................................Technology Information ...................................................................................

Via Cells in the Process................................................................................

Chapter 5ICgraph Objects .................................................................................................

Handles ...........................................................................................................Aspect .............................................................................................................

Aspect and Connectivity ...............................................................................Aspect and Peeking ......................................................................................

Angles .............................................................................................................

IC Station User’s Manual, v8.9_9iv

Page 5: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

..... 5-5

.... 5-6.... 5-7.... 5-7. 5-13.. 5-15. 5-17.. 5-18. 5-20. 5-20. 5-21. 5-23. 5-26.. 5-28. 5-28.. 5-29.. 5-31.. 5-33.. 5-34. 5-36. 5-37.. 5-37.. 5-39.. 5-39. 5-395-40

5-40. 5-40. 5-41.. 5-435-445-44

. 5-44

Design Database ............................................................................................Object Types...................................................................................................

Shape ............................................................................................................Path...............................................................................................................Property Text.................................................................................................Cell and Instance ..........................................................................................Array .............................................................................................................Device Generators........................................................................................Text ...............................................................................................................PG Text .........................................................................................................Via .................................................................................................................Blockage........................................................................................................Cell Boundary ...............................................................................................Floorplan Shape ...........................................................................................Floorplan Row...............................................................................................Property ........................................................................................................Port ...............................................................................................................Pin ................................................................................................................Net ................................................................................................................Overflow .......................................................................................................

Changing Object Attributes .............................................................................Groups.............................................................................................................Selection .........................................................................................................

Select Sets ....................................................................................................Selection and the Active Context ..................................................................Selection and Display Attributes....................................................................Selection and Layer Visibility........................................................................The Select Filter ............................................................................................Selection Options ..........................................................................................

Protection........................................................................................................Highlighting......................................................................................................

Highlighting Nets ...........................................................................................Undoability ......................................................................................................

IC Station User’s Manual, v8.9_9 v

Page 6: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

-1

... 6-1

... 6-1... 6-1.... 6-2.. 6-2... 6-3..... 6-5... 6-6... 6-6.... 6-7... 6-7. 6-8.. 6-8.... 6-9. 6-106-10. 6-13. 6-146-16.. 6-16. 6-16. 6-17.. 6-18

-1

... 7-2..... 7-3... 7-6. 7-10.. 7-11. 7-12

Chapter 6Engineering Change Orders (ECO).................................................................. 6

Introduction......................................................................................................Terminology ....................................................................................................Environmental Requirements ..........................................................................ECO Process Flow..........................................................................................Logic-Layout Relationship ...............................................................................A Logic Change Example................................................................................Changes that ECO Detects.............................................................................Viewpoint Usage .............................................................................................Running the ECO Function .............................................................................

Starting the ECO Process .............................................................................Prompting for Options...................................................................................Gathering Connectivity Information ...............................................................Comparing Old and New Connectivity..........................................................Changes Made by ECO................................................................................Ignoring Unmatched Instances......................................................................Splitting MOS Device Instances ....................................................................Generating a Report File ...............................................................................The Report File .............................................................................................

Editing After Running ECO .............................................................................ECO User Interface.........................................................................................

Edit Commands.............................................................................................DRC Commands ...........................................................................................Short Checker Commands............................................................................

Chapter 7Capacitance Driven Layout (CDL).................................................................... 7

How CDL Calculates Capacitance ..................................................................Estimated Placement Capacitance...............................................................Estimated Global Routing Capacitance ........................................................

CDL Requirements ..........................................................................................Process Flow Scenario....................................................................................CDL Setup Example ........................................................................................

IC Station User’s Manual, v8.9_9vi

Page 7: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

... 7-12.. 7-15.. 7-17. 7-18. 7-18.. 7-19.. 7-22. 7-22.. 7-23.. 7-247-247-27

. 7-27

.. 7-28

. 7-28.. 7-37

. 8-1

..... 8-1.... 8-2... 8-3. 8-3.... 8-5.. 8-10. 8-10.. 8-11.. 8-12.. 8-15.. 8-15. 8-16

Setup the Process.........................................................................................Setup the Rule File .......................................................................................Create Target Capacitance File ....................................................................

Using CDL.......................................................................................................CDL Palette Menu.........................................................................................Setting Target Capacitance ..........................................................................Estimating Placement Capacitance ..............................................................Estimating Global Route Capacitance ..........................................................Reporting Capacitance .................................................................................Using a Report to Create Target Capacitance ..............................................Changing Net Priority ....................................................................................Protecting and Unprotecting Net Priorities ....................................................

CDL IC Design ................................................................................................Design Setup ................................................................................................Design Flow ..................................................................................................

Possible Problems and Solutions ....................................................................

Chapter 8Design Requirements.........................................................................................

Process ...........................................................................................................Process Variables .........................................................................................

Automated Layout Logic Source Requirements..............................................EDDM Viewpoint ...........................................................................................

Properties ........................................................................................................Cell Requirements ..........................................................................................

Checking Cells ..............................................................................................Pin Requirements .........................................................................................Port Requirements........................................................................................Path Requirements .......................................................................................Blockage Requirements ...............................................................................Via Cell Requirements ..................................................................................

IC Station User’s Manual, v8.9_9 vii

Page 8: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

-1

... 9-1.... 9-2... 9-3... 9-3... 9-4... 9-5... 9-8.. 9-10. 9-129-129-13.. 9-13

0-1

. 10-210-2

. 10-3. 10-3. 10-3. 10-4. 10-510-5. 10-8.. 10-8. 10-80-1110-120-150-160-16

10-17

Chapter 9Design Management in IC Station..................................................................... 9

Design Management Overview .......................................................................Why Use the Design Manager? ......................................................................Design Object Identity .....................................................................................Data Integrity ...................................................................................................Location Maps .................................................................................................Copying Design Objects ..................................................................................Moving Design Objects ...................................................................................Changing References ......................................................................................Design Configuration.......................................................................................

Configuration Object......................................................................................Using Configuration in Design Management ................................................

Design Reuse ..................................................................................................

Chapter 10Floorplanning Operations ................................................................................ 1

Area Estimation and Partitioning.....................................................................Hierarchical Repartitioning ..............................................................................Routing to Floorplan Objects...........................................................................Floorplanning Methodologies..........................................................................

Bottom-Up.....................................................................................................Top-Down .....................................................................................................

Row Sculpting .................................................................................................Additional ICplan Capabilities .........................................................................Autofloorplan Parameters................................................................................Floorplanning Procedures...............................................................................

Setting up the Floorplanner...........................................................................Using the Hierarchy Window....................................................................... 1Cell Boundaries............................................................................................Manually Adding Rows ............................................................................... 1Automatically Creating the Floorplan.......................................................... 1Viewing the Floorplan.................................................................................. 1Updating and Showing Guidelines...............................................................

IC Station User’s Manual, v8.9_9viii

Page 9: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

0-170-170-180-180-1810-19

1-1

. 11-11-411-6

. 11-811-1111-111-12

1-141-151-16

11-2111-2111-2211-2411-2511-2611-271-281-29

11-2911-3011-3111-32

Notching a Floorplan Row........................................................................... 1Moving a Floorplan Row ............................................................................. 1Copying a Floorplan Row ............................................................................ 1Deleting a Floorplan Row ............................................................................ 1Repartitioning The Hierarchy ...................................................................... 1Placing Pins..................................................................................................

Chapter 11Cell Related Operations.................................................................................... 1

Creating a New Cell.........................................................................................Creating a Cell with EDDM Connectivity ..................................................... 1Logic Loading Options ..................................................................................

Making a Cell from Selected Objects..............................................................Logic Loading.................................................................................................

Logic Loading Requirements.......................................................................Using $load_logic()...................................................................................... 1Property Handling with Logic Loading ....................................................... 1Loading Logic into an Existing Cell ............................................................ 1

Netlist-Driven Layout ..................................................................................... 1Opening an Existing Cell................................................................................Reserving Cells for Edit..................................................................................Creating a Hierarchical Design.......................................................................Peeking Cells ..................................................................................................Using Peek on View .......................................................................................Unpeeking Cells..............................................................................................Saving A Cell..................................................................................................Saving A Cell Keeping the Edit Reservation ................................................. 1Closing a Cell Window................................................................................... 1Unloading Cells ..............................................................................................Resyncing Cells ..............................................................................................Updating Referenced Cells .............................................................................Salvaging Referenced Cells ............................................................................

IC Station User’s Manual, v8.9_9 ix

Page 10: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

2-1

... 12-1

.. 12-312-1612-1612-17. 12-182-1912-20

12-2212-242-2512-2512-2612-2712-2912-3012-3112-3212-322-3412-352-352-3712-382-39

12-3912-3912-4012-4112-4212-432-43

Chapter 12Full Custom Editing Operations...................................................................... 1

Saving and Restoring Preferences .................................................................Setup IC ..........................................................................................................Changing the Active Context..........................................................................Editing In Context...........................................................................................Setting the Object Template ...........................................................................Creating Shapes .............................................................................................

Abutting New Shapes to Existing Objects ................................................... 1Creating Circle and Arc Shapes......................................................................

Manhattan Arc Mode ...................................................................................Creating Paths.................................................................................................

Abutting New Paths to Existing Path Lines................................................. 1Making Ports...................................................................................................Adding to a Port..............................................................................................Creating a Custom PG Text Font....................................................................Changing the Default PG Text Font ...............................................................Creating PG Text ............................................................................................Changing the Size of PG Text ........................................................................Adding Free-standing Text .............................................................................Adding Text Objects to a Group.....................................................................Adding Multiple Text Objects to a Cell ......................................................... 1Viewing Layers...............................................................................................Displaying Object Information ....................................................................... 1Using Application Variables........................................................................... 1Changing the Redraw Mode ...........................................................................Selection and Highlighting ............................................................................. 1

Using the Select Filter ..................................................................................Selecting a Single Object .............................................................................Selecting Objects in an Area ........................................................................Selecting Text...............................................................................................Protecting Objects From Selection...............................................................Unprotecting Objects ...................................................................................Highlighting Objects .................................................................................... 1

IC Station User’s Manual, v8.9_9x

Page 11: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

12-452-482-502-542-5512-562-572-582-5812-5912-602-622-6212-64

12-6712-6812-682-69

12-7012-7012-712-712-7212-7212-7312-7412-7712-782-792-802-8212-8312-8512-862-87

Object Dynamics ............................................................................................DRC Checking On the Fly ........................................................................... 1Resistor/Capacitor Extraction On the Fly .................................................... 1

Auto Popup Information Box ......................................................................... 1Setting Up Auto Popup Information Boxes ................................................. 1

Moving Objects ..............................................................................................Moving Unconstrained................................................................................. 1Moving Relative to the Basepoint................................................................ 1Moving Objects to Conform to DRC Rules................................................. 1Moving Objects as Close as Possible...........................................................Moving Edges ..............................................................................................Moving a Single Vertex ............................................................................... 1

Aligning Objects............................................................................................. 1Abutting Shapes and Paths...........................................................................

Copying Objects .............................................................................................Copying One or More Objects .....................................................................Copying Relative to the Basepoint...............................................................Copying About Another Basepoint .............................................................. 1Using the Clipboard .....................................................................................Copying and Pasting through the Clipboard ................................................Cutting and Pasting through the Clipboard..................................................Copying to Another Layer ........................................................................... 1

Modifying Path Centerlines............................................................................ 1Extending a Path Centerline.........................................................................Changing the Direction of a Path Centerline ...............................................

Notching Objects ............................................................................................Cutting and Recomposing Objects .................................................................Slicing Objects................................................................................................

Slice with Line ............................................................................................. 1Slice with Polygon (path)............................................................................. 1Slice with Polygon (polygons) ..................................................................... 1

Stretching Objects...........................................................................................Resizing Polygons ..........................................................................................Flattening Objects...........................................................................................Rounding Corners (Filleting).......................................................................... 1

IC Station User’s Manual, v8.9_9 xi

Page 12: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

12-8812-8812-8912-9012-9012-9112-9212-9312-94

3-1

13-1.. 13-2.. 13-313-3.. 13-4.. 13-813-8.. 13-9.. 13-93-1013-1013-103-1113-1113-113-1213-1213-1213-1313-1313-1413-14

Rounding a Single Corner............................................................................Rounding Corners in an Area.......................................................................

Using Boolean Operations (Compose) ...........................................................Selected Objects ...........................................................................................Geometries ...................................................................................................

Creating Arrays...............................................................................................Using Undo and Redo.....................................................................................Creating Groups..............................................................................................Using Aspects .................................................................................................

Chapter 13Edit Mode Operations....................................................................................... 1

Promoting Cells from GE to the CE Mode.......................................................Prerequisites .................................................................................................Procedure......................................................................................................

Promoting Cells from GE to the CBC Mode....................................................Prerequisites .................................................................................................Procedure......................................................................................................

Promoting Cells from CE to the CBC Mode ....................................................Prerequisites .................................................................................................Procedure......................................................................................................

Demoting Cells from CBC to the CE Mode................................................... 1Prerequisites .................................................................................................Procedure......................................................................................................

Demoting Cells from CE to the GE Mode...................................................... 1Prerequisites .................................................................................................Procedure......................................................................................................

Demoting Cells from CBC to the GE Mode................................................... 1Prerequisites .................................................................................................Procedure......................................................................................................

Naming Ports, Pins, and Nets .........................................................................Port and Pin Naming ....................................................................................Naming Nets.................................................................................................Adding Net Properties..................................................................................

IC Station User’s Manual, v8.9_9xii

Page 13: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

4-1

. 14-114-214-3

. 14-64-1014-1214-1414-2214-2314-2614-2614-264-274-284-294-294-30

-1

. 15-115-115-6. 15-715-75-8. 15-8. 15-95-10

15-1015-11

Chapter 14Using Routing Functions.................................................................................. 1

Using the Interactive Router (IRoute) .............................................................Routing with IRoute.......................................................................................Routing Multiple Paths ..................................................................................IRoute Options ..............................................................................................Defining Net Shielding ................................................................................ 1Pushing other Routes with IRoute................................................................Routing Hotkeys...........................................................................................

Using the Point-To-Point Router ....................................................................Example Process for Routing .........................................................................Automated Routing.........................................................................................

Routing all Nets............................................................................................Restructuring Signal and Power Nets ..........................................................Preventing Over-the-Block Routing ............................................................ 1Verifying Missing Connections ................................................................... 1Checking Routing Overflows....................................................................... 1Changing Layer Appearance to View Routing Results ............................... 1Adding a Connection that Does Not Exist in the Netlist ............................. 1

Chapter 15Automated Layout Editing Operations........................................................... 15

Design Methodologies .....................................................................................Bottom-Up with Mixed Standard Cells and Blocks.......................................Top-Down with Mixed Standard Cells and Blocks .......................................

Editing Operations ...........................................................................................Specifying Wire Types...................................................................................Defining Multiple Routing Layers for a Routing Level................................. 1Creating a Cell Outline..................................................................................Making Ports .................................................................................................Interrupting Automated Tools...................................................................... 1Fracturing Rectilinear Ports .........................................................................Changing Block and Cell Placement............................................................

IC Station User’s Manual, v8.9_9 xiii

Page 14: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

16-1

16-116-3

16-3. 16-416-5. 16-56-516-716-8

7-1

17-17-117-2

. 17-317-67-1017-1417-297-307-33

8-1

. 18-2

.. 18-48-128-1318-1318-14

Chapter 16Library Operations ...........................................................................................

Build Library ....................................................................................................Creating an IC Station Library .........................................................................Adding and Removing Cells from an IC Station Library.................................Prescreening the Cell Library ..........................................................................Building the Library .........................................................................................

Using the Build_lib Parameters ....................................................................Creating Complete or Directional Blockages by Using Build_lib................. 1Creating Ports Using Build_lib ......................................................................Making Changes Required after Running Build_lib......................................

Chapter 17Importing and Exporting Data ........................................................................ 1

Importing Logical Data into IC Station ............................................................Preparing and Importing an EDDM Viewpoint Netlist ................................. 1

Reading and Writing GDSII Data.....................................................................Reading a GDSII Stream File .......................................................................Writing IC Station data to GDSII Stream ......................................................Options Dialog Box Summary ..................................................................... 1Data Conversion...........................................................................................

Options File ....................................................................................................Converting an ICLink Options File.............................................................. 1

IC Station to Calibre Translation.................................................................... 1

Chapter 18Compaction Operations.................................................................................... 1

The Compact Function ....................................................................................Compaction Parameters ..................................................................................Minimize Vias ................................................................................................ 1Minimize Levels ............................................................................................. 1Slide Route......................................................................................................Insert Posts......................................................................................................

IC Station User’s Manual, v8.9_9xiv

Page 15: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

9-1

. 19-2

... 19-3. 19-3.. 19-4. 19-4.. 19-719-7. 19-7. 19-819-8

. 19-89-119-13

0-1

. 20-1.. 20-2.. 20-3.. 20-3.. 20-4. 20-4.. 20-5.. 20-6.. 20-7.. 20-920-1120-120-13

20-14. 20-14. 20-14

Chapter 19Printing/Plotting in IC Station ......................................................................... 1

Printing Versus Exporting ...............................................................................Panels.............................................................................................................Print Filter ........................................................................................................Print/Plot Setup Requirements........................................................................Print Cell/Setup Print Options .........................................................................Printing Procedures.........................................................................................

Printing ASCII Files.......................................................................................Print an Entire Cell........................................................................................Creating a Panel within a Cell.......................................................................Printing a Panel within a Cell.........................................................................Exporting Graphics .......................................................................................

Printing with the IC Station HotPlot Interface ............................................... 1Using the IC Station HotPlot Interface ........................................................ 1

Chapter 20Technology Definition........................................................................................ 2

Overview and Key Concepts ...........................................................................Process Information Sources........................................................................Process Variable Value Assignments...........................................................Process-related IC Station Functions ...........................................................Process Userware File ..................................................................................Process Definition Fileset .............................................................................Layers...........................................................................................................

The Default Process........................................................................................Default Process Variables ............................................................................Default Process Layers.................................................................................

System Layers.................................................................................................Multiple Processes ..........................................................................................

Compatibility Requirements ........................................................................ 2Session and Active Process Compatibility...................................................

Process Operating Procedures .......................................................................Creating a Process .......................................................................................

IC Station User’s Manual, v8.9_9 xv

Page 16: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

20-1920-2320-2420-2620-2820-3020-31

20-35. 20-3720-3720-4720-51

.. 20-5520-5520-6020-61

21-1

. 21-121-121-221-3

. 21-421-421-621-821-8

. 21-9. 21-9

22-1

. 22-1

Setting Layer Appearance ............................................................................Loading a Process ........................................................................................Editing a Process ..........................................................................................Making Temporary Changes to a Process....................................................Using Process When Creating Cells ............................................................Changing a Cell Process...............................................................................Procedures Required after Editing a Process ...............................................Retrieving Process Information....................................................................

Process Examples ..........................................................................................Automated Layout........................................................................................Skeleton Process Userware File ...................................................................Custom Process Userware File.....................................................................

Process Related Messages ............................................................................Error Messages.............................................................................................Warning Messages .......................................................................................Note Messages .............................................................................................

Chapter 21Calibre Interface................................................................................................

Overview..........................................................................................................Calibre DRC/DRC-H .....................................................................................Calibre LVS/LVS-H.......................................................................................

Using the Calibre Interface in IC Station .........................................................Using the IC Session Calibre Menu ..............................................................Using Calibre > Run DRC .............................................................................Using Calibre > Run LVS..............................................................................Using Calibre > Start RVE.............................................................................Using Calibre > Run PEX..............................................................................Using Calibre > Setup ...................................................................................

IC Station to Calibre Translation.....................................................................

Chapter 22XML Format ......................................................................................................

Overview..........................................................................................................

IC Station User’s Manual, v8.9_9xvi

Page 17: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

.. 22-2

. 22-222-322-522-6.. 22-722-8. 22-82-11

22-1222-1322-13

22-142-4022-402-4122-4122-4322-4322-43

23-1

23-1. 23-2

. 24-1

. 24-1.. 24-124-3.. 24-4.. 24-4. 24-4

User Interface..................................................................................................Read XML.....................................................................................................Read XML Options ........................................................................................Write XML.....................................................................................................Write XML Options .......................................................................................

Function Reference Table...............................................................................The Document Type Definition (DTD)............................................................

Element Type Declarations ...........................................................................Attribute Declarations .................................................................................. 2Entity Declarations.......................................................................................Verbose vs. Terse XML Database ...............................................................Data Correctness ..........................................................................................Element and Attribute Tables.......................................................................

XML Tutorial.................................................................................................. 2Examples ......................................................................................................Parsing XML................................................................................................ 2Perl ...............................................................................................................Python ..........................................................................................................Java...............................................................................................................

Credits.............................................................................................................

Chapter 23AutoCells Interface............................................................................................

Running AutoCells from IC Station .................................................................The AutoCells Forms.......................................................................................

Chapter 24ARoute...............................................................................................................

ARoute Overview ............................................................................................ARoute Process...............................................................................................

Apply Area Routing Performance Guidelines to Your Design......................Set up ARoute ..............................................................................................

ARoute Concepts ............................................................................................Routing by Region ........................................................................................

IC Station User’s Manual, v8.9_9 xvii

Page 18: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

. 24-5.. 24-6. 24-6.. 24-624-94-1024-114-1224-1224-1224-134-144-15

24-164-17

24-1824-21

. 25-1

25-1.. 25-1. 25-1. 25-225-2

.. 25-3. 25-6. 25-6.. 25-925-1025-1125-1225-1325-1425-16

Routing by Extent .........................................................................................Net Classes ...................................................................................................

ARoute Graphical User Interface ....................................................................Setup ICassemble > ARoute ........................................................................ARoute Options Dialog Box ..........................................................................Set Preferred Routing Direction Dialog Box ............................................... 2Set Route Hierarchy Mode Selector.............................................................Set Overflow Versus Net Routing Selector ................................................. 2Set Region Versus Extent Selector ..............................................................Select Net Class Dialog Box ........................................................................Net Class Dialog Box...................................................................................Additional Layer Spacing Dialog Box......................................................... 2Define Net Class Shield Dialog Box............................................................ 2Assign Nets to Classes Dialog Box..............................................................Edit Process Override Dialog Box ............................................................... 2ARoute Palette Menu ...................................................................................

ARoute Figures...............................................................................................

Chapter 25Tutorial ..............................................................................................................

About This Tutorial ..........................................................................................Prerequisite...................................................................................................Tutorial Organization and Goals...................................................................

Falcon Framework ...........................................................................................Falcon Framework Overview.........................................................................Design Management.....................................................................................Common User Interface ................................................................................Windows .......................................................................................................Scopes ..........................................................................................................Navigators ....................................................................................................The Mouse....................................................................................................Keys..............................................................................................................Menus...........................................................................................................Prompt Bars..................................................................................................Dialog Boxes................................................................................................

IC Station User’s Manual, v8.9_9xviii

Page 19: Icstation User Manual @Vins

Table of Contents (cont.)

Table of Contents

25-1725-2025-205-21

5-2125-2225-2425-2725-2825-2925-29

. 25-3125-325-3425-3625-375-38

-1

..A-1...A-1...A-2...A-2...A-2...A-7.A-11

Strokes..........................................................................................................Online Documentation .................................................................................Environment Variables.................................................................................

Full Custom Editing........................................................................................ 2Full Custom Editing Overview .................................................................... 2ICgraph.........................................................................................................Cells..............................................................................................................Editing Modes ..............................................................................................Graphical Objects.........................................................................................Logical Objects ............................................................................................Aspects .........................................................................................................Process.........................................................................................................Layers...........................................................................................................IC Window................................................................................................... 2Selection.......................................................................................................Editing Operations .......................................................................................Full Custom Editing Lab Exercise ............................................................... 2

Appendix APerformance Improvement Tips........................................................................A

GDSII to ICgraph Translation ..........................................................................Via Cells........................................................................................................Datatype to Layer Mapping ..........................................................................

Graphic Performance Tuning ..........................................................................Overview.......................................................................................................Graphic Performance Improvements ............................................................

Editing Operations ...........................................................................................

Index

IC Station User’s Manual, v8.9_9 xix

Page 20: Icstation User Manual @Vins

List of Figures

xxivxxxv.. 1-1.. 1-3.. 1-51-14. 1-261-271-28. 1-29.. 1-30.. 1-31.. 1-32. 1-331-34

. 2-1. 2-2. 3-2.. 3-4.. 4-1... 4-6. 4-7.. 4-8... 4-94-10... 5-2.... 5-7.... 5-8.... 5-8... 5-9... 5-9.. 5-10.. 5-11.. 5-11. 5-12

List of Figures

Figure 1. IC Layout Documentation...............................................................xFigure 2. IC Verification Documentation........................................................Figure 1-1. IC Station Overview .....................................................................Figure 1-2. IC Design Flow .............................................................................Figure 1-3. Front-End Design Flow Overview................................................Figure 1-4. IC Station and the ICverify Tools.................................................Figure 1-5. Flat Layout ...................................................................................Figure 1-6. Hierarchical Layout ......................................................................Figure 1-7. Hierarchical Layout Top Level .....................................................Figure 1-8. Concept of Hierarchy...................................................................Figure 1-9. Referenced Cells .........................................................................Figure 1-10. Creating Ports............................................................................Figure 1-11. Ports Become Pins ....................................................................Figure 1-12. Peeking Cells .............................................................................Figure 1-13. Editing In Context.......................................................................Figure 2-1. Typical Full Custom IC Design Flow............................................Figure 2-2. IC Station Full Custom IC Design Flow........................................Figure 3-1. Typical Automated Layout IC Design Flow..................................Figure 3-2. Automated Layout Design Flow...................................................Figure 4-1. ICblocks Design Environment......................................................Figure 4-2. OCR Routing ...............................................................................Figure 4-3. Initial Global Routing ....................................................................Figure 4-4. Improved Global Routing .............................................................Figure 4-5. Final Routing ...............................................................................Figure 4-6. Trimming Dangling Nets ..............................................................Figure 5-1. Aspect ..........................................................................................Figure 5-2. Shape Examples ..........................................................................Figure 5-3. Path Reference Line....................................................................Figure 5-4. Path End Types ...........................................................................Figure 5-5. Path Without Padding ..................................................................Figure 5-6. Path With Padding .......................................................................Figure 5-7. Padded/Unpadded Overlay .........................................................Figure 5-8. Cambered Path ............................................................................Figure 5-9. Uncambered Path ........................................................................Figure 5-10. Cambered Path (Left Reference Line) .......................................

IC Station User’s Manual, v8.9_9 xx

Page 21: Icstation User Manual @Vins

List of Figures (cont.)

List of Figures

.. 5-12

. 5-13

. 5-17. 5-20. 5-20. 5-24. 5-27.. 5-32. 5-33. 5-36.... 6-2... 6-3.. 6-4.. 6-5.. 6-6.. 6-7. 6-126-13

. 6-14

. 8-14

... 9-7. 9-1010-3

. 10-5

. 10-710-9rid

0-20-22

. 11-111-21-411-6

. 11-9

Figure 5-11. Cambered Path (Center Reference Line) ..................................Figure 5-12. Property Text Example ..............................................................Figure 5-13. Array Example ...........................................................................Figure 5-14. Sample Text Object....................................................................Figure 5-15. Sample of the Default PG Font Characters................................Figure 5-16. Blockage Example .....................................................................Figure 5-17. Cell Boundary Example.............................................................Figure 5-18. Ports ..........................................................................................Figure 5-19. Pin Examples .............................................................................Figure 5-20. Sample Overflows......................................................................Figure 6-1. ECO Process Flow ......................................................................Figure 6-2. Logic Change Example................................................................Figure 6-3. Version 1 Logic and Layout .........................................................Figure 6-4. Version 2 Logic and Layout .........................................................Figure 6-5. Set Logic Source Dialog Box .......................................................Figure 6-6. Run ECO Dialog Box ...................................................................Figure 6-7. MOS Instances Before Deletion ..................................................Figure 6-8. MOS Instances After Deletion......................................................Figure 6-9. A Sample ECO Report.................................................................Figure 8-1. Adding the Route_set Property to Ports.......................................Figure 9-1. Copying Subhierarchies ...............................................................Figure 9-2. Moving Subhierarchies ................................................................Figure 10-1. Hierarchy Repartitioning ............................................................Figure 10-2. Row Sculpting............................................................................Figure 10-3. Notch Floorplan Shapes with Constant Area.............................Figure 10-4. Setup ICassemble > Floorplanning Dialog Box .........................Figure 10-5. Setup ICassemble > Floorplanning Dialog Box with Fixed Pitch G10-10Figure 10-6. Autoplace Pins Dialog Box....................................................... 1Figure 10-7. Autoplace Pins with Manual Location Dialog Box .................. 10Figure 11-1. Properties Associated with a New Cell......................................Figure 11-2. Create Cell Dialog Box...............................................................Figure 11-3. Create Cell with EDDM Connectivity Dialog Box .................... 1Figure 11-4. Logic Loading Options ...............................................................Figure 11-5. Making a Cell From Selected Objects .......................................

IC Station User’s Manual, v8.9_9 xxi

Page 22: Icstation User Manual @Vins

List of Figures (cont.)

List of Figures

1-101-121-1511-171-191-191-2012-42-102-2012-222-232-23

12-2712-2712-302-33-342-412-452-462-48-502-50

12-522-53

. 12-542-5612-612-642-652-662-72

12-752-79

Figure 11-6. Make Cell Dialog Box .............................................................. 1Figure 11-7. Load Logic Dialog Box ............................................................ 1Figure 11-8. $load_logic() Property Handling .............................................. 1Figure 11-9. Read Spice dialog box ..............................................................Figure 11-10. Define MOS Sharing dialog box............................................. 1Figure 11-11. Define MOS Folding dialog box............................................. 1Figure 11-12. Define MOS Cell Type dialog box ......................................... 1Figure 12-1. Setup IC Dialog Box...................................................................Figure 12-2. Setup IC Dynamics Dialog Box................................................ 1Figure 12-3. Circle Input Style ...................................................................... 1Figure 12-4. Notching a Circle Shape to Create an Arc Shape .....................Figure 12-5. Default Arc Mode ..................................................................... 1Figure 12-6. Manhattan Arc Mode ................................................................ 1Figure 12-7. Default PG Text Font Characters..............................................Figure 12-8. Sample Custom PG Text Character ..........................................Figure 12-9. PG Text Parameters Dialog Box...............................................Figure 12-10. Add Text to a Group Dialog Box............................................ 1Figure 12-11. Add Multiple Text Dialog Box ............................................... 12Figure 12-12. $select_text() Dialog Box ....................................................... 1Figure 12-13. Object Dynamics with Delta Location.................................... 1Figure 12-14. Object Dynamics with Perimeter/Area ................................... 1Figure 12-15. Set Layer Spacing Dialog Box................................................ 1Figure 12-16. DRC On the Fly, Highlighting Only....................................... 12Figure 12-17. DRC On the Fly, Restrict Cursor............................................ 1Figure 12-18. Edit Process Dialog Box .........................................................Figure 12-19. Set Process Layer Electrical Rules Dialog Box...................... 1Figure 12-20. Resistance and Capacitance on the Fly..................................Figure 12-21. Auto Popup Information Box.................................................. 1Figure 12-22. Moving Edges .........................................................................Figure 12-23. Align dialog box ..................................................................... 1Figure 12-24. Path Placement Before Using F7 (Gravity) Key..................... 1Figure 12-25. Path Placement After Using F7 (Gravity) Key ....................... 1Figure 12-26. Modifying Path Centerlines .................................................... 1Figure 12-27. Notching Polygons..................................................................Figure 12-28. Slicing a Polygon with a Line................................................. 1

IC Station User’s Manual, v8.9_9xxii

Page 23: Icstation User Manual @Vins

List of Figures (cont.)

List of Figures

2-792-80

2-8212-8412-8512-86

12-8712-89. 13-6. 13-7.. 14-3.. 14-314-514-614-74-114-13

14-1517-417-517-717-9. 18-3. 18-5. 18-6.. 18-718-7. 18-918-108-118-1318-1418-1518-15

.. 19-2

Figure 12-29. Slicing a Path with a Line ....................................................... 1Figure 12-30. Slicing a Path with a Polygon ................................................. 1Figure 12-31. Slicing a Polygon with Another Polygon................................ 1Figure 12-32. Stretching Polygons ................................................................Figure 12-33. Resizing Polygons...................................................................Figure 12-34. Flattening Instances and Paths ................................................Figure 12-35. Rounding Corners ...................................................................Figure 12-36. Using Boolean Operations (Compose) ...................................Figure 13-1. Real Geometry Blockage ...........................................................Figure 13-2. Abstracted Geometry Blockage .................................................Figure 14-1. Before Target Reached .............................................................Figure 14-2. Check Box Appears when Target Reached ..............................Figure 14-3. Define Routing Transform Dialog Box ......................................Figure 14-4. Setup IRoute Dialog Box ............................................................Figure 14-5. Set Route Hierarchy Mode Dialog Box ......................................Figure 14-6. Define Net Shield Dialog Box .................................................. 1Figure 14-7. Set Route Protection Dialog Box.............................................. 1Figure 14-8. IRoute Popup Menu ..................................................................Figure 17-1. Read GDSII Dialog Box .............................................................Figure 17-2. Read GDSII Options Dialog Box ...............................................Figure 17-3. Write GDSII Dialog Box ............................................................Figure 17-4. Write GDSII Options Dialog Box...............................................Figure 18-1. Compactor Allows Path Reversal ..............................................Figure 18-2. Compactor Uses Offset Vias To Reduce Used Area .................Figure 18-3. Vias to Wires Options................................................................Figure 18-4. Compactor Uses or Keeps Corners ...........................................Figure 18-5. Clear or Use Corners of External Cells During Compaction......Figure 18-6. Wires to Pins ..............................................................................Figure 18-7. Compactor Reduces Tromboning .............................................Figure 18-8. Compactor Minimizes Resistive Layers ................................... 1Figure 18-9. Slide Routing Reduces The Number of Routing Tracks .......... 1Figure 18-10. Posts Inserted Along a Long Path...........................................Figure 18-11. Post Inserted at a Path Intersection .........................................Figure 18-12. Post Inserted at an Angled Path's Corner................................Figure 19-1. Printing Process ........................................................................

IC Station User’s Manual, v8.9_9 xxiii

Page 24: Icstation User Manual @Vins

List of Figures (cont.)

List of Figures

19-3.. 19-919-109-119-129-149-169-179-209-219-229-2320-1620-1620-200-210-2220-2420-3120-3321-421-421-521-621-721-821-9

1-101-1122-322-42-52-6

.. 23-4.. 23-7

Figure 19-2. Difference Between Plotting and Exporting ...............................Figure 19-3. The Export Screen Process .......................................................Figure 19-4. Selecting a Format for Exported Data ......................................Figure 19-5. Where Export Graphics Obtains its Menu Information............ 1Figure 19-6. The HotPlot Flow...................................................................... 1Figure 19-7. HotPlot Dialog Box................................................................... 1Figure 19-8. HotPlot Setup File Dialog Box ................................................. 1Figure 19-9. Select Layers Dialog Box ......................................................... 1Figure 19-10. Plot Manager Dialog Box ....................................................... 1Figure 19-11. Select Time to Plot Dialog Box .............................................. 1Figure 19-12. Formatter Dialogue Box ......................................................... 1Figure 19-13. Plot Attributes Dialogue Box.................................................. 1Figure 20-1. Default Process Variable Values ..............................................Figure 20-2. $create_process() Prompt Bar...................................................Figure 20-3. $set_layer_appearance() Dialog Box........................................Figure 20-4. Fill Pattern Chip........................................................................ 2Figure 20-5. Line Styles in ICgraph .............................................................. 2Figure 20-6. $load_process() Prompt Bar .....................................................Figure 20-7. $set_cell_process() Dialog Box ................................................Figure 20-8. Routing Level Process Variable................................................Figure 21-1. Calibre Pulldown Menu ..............................................................Figure 21-2. Setup Calibre Dialog Box for DRC ............................................Figure 21-3. Calibre Interactive - DRC Dialog Box........................................Figure 21-4. Setup Calibre Dialog Box for LVS.............................................Figure 21-5. Calibre Interactive - LVS Dialog Box ........................................Figure 21-6. Setup Calibre Dialog Box for RVE ............................................Figure 21-7. Setup Calibre Dialog Box ...........................................................Figure 21-8. Write Calibre Dialog Box ......................................................... 2Figure 21-9. Write Calibre Options Dialog Box ........................................... 2Figure 22-1. Read XML Dialog Box...............................................................Figure 22-2. Read XML Options Dialog Box .................................................Figure 22-3. Write XML Dialog Box .............................................................. 2Figure 22-4. Write XML Options Dialog Box ................................................ 2Figure 23-1. AutoCells Basic Tabbed Pane...................................................Figure 23-2. AutoCells Place Tabbed Pane...................................................

IC Station User’s Manual, v8.9_9xxiv

Page 25: Icstation User Manual @Vins

List of Figures (cont.)

List of Figures

.. 23-923-11. 24-624-84-1024-1824-214-22

24-2324-2424-25. 25-425-5. 25-725-8.. 25-925-1025-1125-1325-1525-165-17

25-1825-195-23

25-2525-2625-3025-305-335-35

25-3625-405-425-44

Figure 23-3. AutoCells Route Tabbed Pane ..................................................Figure 23-4. AutoCells Log Tabbed Pane .....................................................Figure 24-1. Setup ICassemble > ARoute Dialog Box...................................Figure 24-2. Setup ICassemble > Fixed Pitch Grid Dialog Box .....................Figure 24-3. Rip Options Dialog Box............................................................ 2Figure 24-4. ARoute Palette Menu................................................................Figure 24-5. Pin Spacing Guidelines .............................................................Figure 24-6. Pin Layers and Preferred Routing Direction............................. 2Figure 24-7. Pins on Non-Routing Layers.....................................................Figure 24-8. Pin Stubbing..............................................................................Figure 24-9. Pin Blockage Layers and Shapes ..............................................Figure 25-1. Design Manager .........................................................................Figure 25-2. Copy Design Object Dialog Box ................................................Figure 25-3. IC Session Window....................................................................Figure 25-4. Status Line with Dynamic Status Disabled.................................Figure 25-5. Scopes .......................................................................................Figure 25-6. Navigator...................................................................................Figure 25-7. The Mouse ................................................................................Figure 25-8. Menus: Pulldown, Popup, and Palette ......................................Figure 25-9. Prompt Bar ................................................................................Figure 25-10. Prompt Bar Buttons.................................................................Figure 25-11. Dialog Box .............................................................................. 2Figure 25-12. Stroke Example.......................................................................Figure 25-13. Stroke Grid..............................................................................Figure 25-14. ICgraph Flow Chart ................................................................ 2Figure 25-15. Flat Design Data .....................................................................Figure 25-16. Hierarchical Design Data........................................................Figure 25-17. External Aspect .......................................................................Figure 25-18. Internal Aspect ........................................................................Figure 25-19. Set Visible Layers Menu......................................................... 2Figure 25-20. IC Station Window ................................................................. 2Figure 25-21. Selection in ICgraph ...............................................................Figure 25-22. Location Map ..........................................................................Figure 25-23. Open Cell Dialog Box............................................................. 2Figure 25-24. IC Window.............................................................................. 2

IC Station User’s Manual, v8.9_9 xxv

Page 26: Icstation User Manual @Vins

List of Figures (cont.)

List of Figures

25-4525-4625-4725-4925-515-525-545-5525-565-57

25-5825-5825-5925-61

Figure 25-25. ICgraph Window Showing Process Change ...........................Figure 25-26. CMOS Process Layers ............................................................Figure 25-27. Floating Layer Palette .............................................................Figure 25-28. Adding Rulers .........................................................................Figure 25-29. Inverter contact, metal1, and via Layers.................................Figure 25-30. Viewing An Area of The IC.................................................... 2Figure 25-31. Adding A Polygon To The metal1 Layer ............................... 2Figure 25-32. Adding Additional Polygons To The metal1 Layer................ 2Figure 25-33. Final metal1 Polygon ..............................................................Figure 25-34. First Cursor Position For Notching......................................... 2Figure 25-35. Second Cursor Position For Notching ....................................Figure 25-36. First Notch Complete..............................................................Figure 25-37. Second Notch Complete .........................................................Figure 25-38. Completed Inverter .................................................................

IC Station User’s Manual, v8.9_9xxvi

Page 27: Icstation User Manual @Vins

List of Tables

.... 5-5.... 8-2.... 8-5.. 9-6. 9-811-5. 12-212-27. 13-213-413-5. 13-714-197-1017-1417-217-3119-259-25

19-269-26. 20-7.. 20-920-1120-1220-3320-3520-36. 22-722-8

. 22-92-102-142-152-15

List of Tables

Table 5-1. Design Database Files ..................................................................Table 8-1. Process Variable Summary ..........................................................Table 8-2. IC Properties Cross-Reference Table ...........................................Table 9-1. Hints for Copying Design Objects .................................................Table 9-2. Hints for Moving Design Objects ...................................................Table 11-1. Properties Copied or Interpreted by Loading Logic .....................Table 12-1. Change Attributes Types and Functions .....................................Table 12-2. Symbol Character Cell Names ...................................................Table 13-1. Default Power Net Names ...........................................................Table 13-2. Single-Layer Geometry Mapping .................................................Table 13-3. Multilayer Geometry Mapping .....................................................Table 13-4. Connectivity Plane Table ............................................................Table 14-1. IRoute Hotkeys ...........................................................................Table 17-1. Read/Write GDSII Options Dialog Box ..................................... 1Table 17-2. GDSII Records ...........................................................................Table 17-3. IC Station Objects ......................................................................Table 17-4. Converting ICLink Options ........................................................ 1Table 19-1. Array Style: Standard .................................................................Table 19-2. Array Style: Borders ................................................................... 1Table 19-3. Array Style: Corners ...................................................................Table 19-4. Array Style: Verify ..................................................................... 1Table 20-1. Default Process Variable Summary ............................................Table 20-2. Default Process Layer Data ........................................................Table 20-3. Reserved System Layers ............................................................Table 20-4. Source of Process Data ...............................................................Table 20-5. Effects of Changes to Process Variables ....................................Table 20-6. Report Functions ........................................................................Table 20-7. Functions Returning Process Information ..................................Table 22-1. Pathname Attributes ....................................................................Table 22-2. XML Functions ............................................................................Table 22-3. Element Control Symbols ...........................................................Table 22-4. XML database DTD Elements ................................................... 2Table 22-5. ELEMENT design ...................................................................... 2Table 22-6. ELEMENT version .................................................................... 2Table 22-7. Version Attribute List ................................................................. 2

IC Station User’s Manual, v8.9_9 xxvii

Page 28: Icstation User Manual @Vins

List of Tables (cont.)

List of Tables

2-1522-152-162-162-162-172-192-19

2-192-202-202-202-202-212-212-212-222-232-232-242-252-252-262-262-272-272-282-282-292-292-30

22-302-302-312-31

Table 22-8. ELEMENT process .................................................................... 2Table 22-9. Process Attribute List .................................................................Table 22-10. ELEMENT digest ..................................................................... 2Table 22-11. Digest Attribute List ................................................................. 2Table 22-12. ELEMENT cell ........................................................................ 2Table 22-13. Cell Attribute List ..................................................................... 2Table 22-14. ENTITY cell.preamble ............................................................. 2Table 22-15. ENTITY cell.mask ................................................................... 2Table 22-16. ENTITY cell.connectivity ........................................................ 2Table 22-17. ELEMENT library_ref ............................................................. 2Table 22-18. Library_ref Attribute List ......................................................... 2Table 22-19. ELEMENT panel ...................................................................... 2Table 22-20. Panel Attribute List .................................................................. 2Table 22-21. ELEMENT property ................................................................. 2Table 22-22. Property Attribute List ............................................................. 2Table 22-23. ELEMENT property_text ......................................................... 2Table 22-24. Property_text Attribute List ..................................................... 2Table 22-25. ELEMENT boundary ............................................................... 2Table 22-26. ELEMENT instance ................................................................. 2Table 22-27. Instance Attribute List .............................................................. 2Table 22-28. ELEMENT array ...................................................................... 2Table 22-29. Array Attribute List .................................................................. 2Table 22-30. ELEMENT iobj ........................................................................ 2Table 22-31. Iobj Attribute List ..................................................................... 2Table 22-32. ELEMENT device .................................................................... 2Table 22-33. Device Attribute List ................................................................ 2Table 22-34. ELEMENT transform ............................................................... 2Table 22-35. Transform Attribute List .......................................................... 2Table 22-36. ELEMENT rotate ..................................................................... 2Table 22-37. ELEMENT translate ................................................................. 2Table 22-38. ELEMENT coords .................................................................... 2Table 22-39. ELEMENT shape .....................................................................Table 22-40. Shape Attribute List ................................................................. 2Table 22-41. ELEMENT path ....................................................................... 2Table 22-42. Path Attribute List .................................................................... 2

IC Station User’s Manual, v8.9_9xxviii

Page 29: Icstation User Manual @Vins

List of Tables (cont.)

List of Tables

2-322-322-332-332-342-342-362-362-362-382-382-382-392-392-40

Table 22-43. ELEMENT via_obj .................................................................. 2Table 22-44. Via_obj Attribute List .............................................................. 2Table 22-45. ELEMENT Text ....................................................................... 2Table 22-46. Text Attribute List .................................................................... 2Table 22-47. ELEMENT row ........................................................................ 2Table 22-48. Row Attribute List .................................................................... 2Table 22-49. ELEMENT origin_line ............................................................. 2Table 22-50. ELEMENT port ........................................................................ 2Table 22-51. Port Attribute List ..................................................................... 2Table 22-52. ELEMENT port_ref ................................................................. 2Table 22-53. Port_ref Attribute List .............................................................. 2Table 22-54. ELEMENT net ......................................................................... 2Table 22-55. Net Attribute List ..................................................................... 2Table 22-56. ELEMENT pin_ref ................................................................... 2Table 22-57. Pin_ref Attribute List ............................................................... 2

IC Station User’s Manual, v8.9_9 xxix

Page 30: Icstation User Manual @Vins

List of Tables (cont.)

List of Tables

IC Station User’s Manual, v8.9_9xxx

Page 31: Icstation User Manual @Vins

u

m

ute

f

r

About This Manual

TheIC Station User's Manual contains task-specific procedures related to fullcustom and automatic placement and routing of standard cells and blocks.

Manual OrganizationThe following list contains brief descriptions of the chapters in this manual:

• Chapter1, “Introduction to IC Station,” contains conceptual information onIC design flows, related software, licenses, and key concepts.

• Chapter2, “Full Custom Overview,” describes the tools and processes youse to interactively build the physical layout of your IC design.

• Chapter3, “Automated IC Design,” describes the steps you use to perforautomated chip layout.

• Chapter4, “ICblocks Design Environment,” contains conceptual andprocedural information on using ICblocks to automatically place and roa layout.

• Chapter5, “ICgraph Objects,” contains detailed descriptions of each type oIC design object.

• Chapter6, “Engineering Change Orders (ECO),” contains conceptual andprocedural information on using ICgraph features to correct a layout fochanges made to the logic source.

• Chapter7, “Capacitance Driven Layout (CDL),” contains conceptual andprocedural information on creating an IC layout with lumped parasiticcapacitance.

IC Station User’s Manual, v8.9_9 xxxi

Page 32: Icstation User Manual @Vins

Manual Organization

e

ta.

ll or

lM

ms

tor the

m

• Chapter8, “Design Requirements,” describes the requirements that must bmet before you lay out an IC design.

• Chapter9, “Design Management in IC Station,” contains conceptual andprocedural information for managing V8.2 or later IC Station design da

• Chapter10, “Floorplanning Operations,” contains conceptual andprocedural information for estimating the chip area for each standard ceblock.

• Chapter11, “Cell Related Operations,” contains conceptual and procedurainformation for creating new cells using logic information from an EDDdesign viewpoint.

• Chapter12, “Full Custom Editing Operations,” contains conceptual andprocedural information for using popup, pulldown, and palette menu iteto select and edit selected objects.

• Chapter13, “Edit Mode Operations,” contains conceptual and proceduralinformation you can use to determine what prerequisites must be met change editing modes and how to change editing modes in ICgraph aftecell has been created.

• Chapter14, “Using Routing Functions,” contains conceptual andprocedural information for using ICgraph routing functions.

• Chapter15, “Automated Layout Editing Operations,” contains conceptualand procedural information for automated creation of bottom-up andtop-down designs.

• Chapter16, “Library Operations,” contains conceptual and proceduralinformation for creating a physical cell library of blockages and ports froexisting geometric data.

• Chapter17, “Importing and Exporting Data,” contains procedures forimporting and exporting logical data.

IC Station User’s Manual, v8.9_9xxxii

Page 33: Icstation User Manual @Vins

IC Layout and Verification Documentation

live

lsign

s

nce

• Chapter18, “Compaction Operations,” contains conceptual and procedurainformation for using ICcompact to perform both automatic and interactminimization of the area of your completed layout.

• Chapter19, “Printing/Plotting in IC Station,” describes how to print all orpart of your design.

• Chapter20, “Technology Definition,” contains conceptual and procedurainformation on creating Process data that describes the technology, derules, and other information about a cell or a design.

• Chapter21, “Calibre Interface,” describes how to use Calibre and its toolfrom IC Station.

• Chapter25, “Tutorial,” contains basic procedural instructions for usingICgraph to perform mask layout.

• AppendixA, “Environment Variables,” contains descriptions of theenvironment variables that affect IC Station tools.

• AppendixA, “Performance Improvement Tips,” contains information toreduce the translation time for GDSII designs, improve redraw performain IC Station, and improve the performance both for interactive andindividual command usage during editing operations.

IC Layout and VerificationDocumentation

This manual is one of a set of documents that supports the IC layout andverification products, IC Station and ICverify.

Figure 1 shows the documentation related to IC layout.Figure 2 shows thedocumentation related to IC verification.

IC Station User’s Manual, v8.9_9 xxxiii

Page 34: Icstation User Manual @Vins

IC Layout and Verification Documentation

Figure 1. IC Layout Documentation

Other Manuals:

IC Station

Yes

NoConverting

IC Station

Start

IC VerificationDocumentation

User’s Manual

GDSII or othernetlist?

Database Conversion

Manual

IC Station Release Notes

Yes

NoUsingdevices?

IC StationDeviceLevel

Yes

NoNeedfunction orcommand

info?

IC Station Reference

Manual

Yes

NoCustomizinguser interface?

IC Station User

Interface Manual

Yes

NoVerifyinglayout?

End

Automation

IC Station Programming QuickReference Manual

Manual

IC Station User’s Manual, v8.9_9xxxiv

Page 35: Icstation User Manual @Vins

IC Layout and Verification Documentation

Figure 2. IC Verification Documentation

Verification

Yes

NoWritingRules files?

ICverify

Start

Manual

End

Standard Verification Rule Format

Manual

IC Station Release Notes

IC Station Programming QuickReference Manual

Other Manuals:

IC Station User’s Manual, v8.9_9 xxxv

Page 36: Icstation User Manual @Vins

Other Resources

Other Resources

Task Link

To learn about online documentation Online Documentationa

a. Refers to sections in theManaging Mentor Graphics IC Flow Software manual

To learn about searching manuals Searching Manualsa

To find related IC Flow manuals Related Publicationsa

To learn documentation conventions Documentation Conventionsa

To learn about the Support Pulldown MenuUsing the Support Menub

b. Refers to sections in theIC Flow Common User Interface manual

IC Station User’s Manual, v8.9_9xxxvi

Page 37: Icstation User Manual @Vins

Chapter 1Introduction to IC Station

The Integrated Circuit (IC) tools that operate in the IC Environment arecollectively calledIC Station, as shown in Figure1-1.

Figure 1-1. IC Station Overview

TheIC Environment is an IC development environment you invoke from theDesign Manager or a shell. TheDesign Manager is a concurrent design

Automated VerificationFull Custom Interfaces

Falcon Framework

IC Station

Layout EditorICgraph

FloorplanningICplan

Cell and BlockAutomatic Place

and Route

ICblocks

CompactingICcompact

InteractiveDesign and

Electrical RulesChecking

ICrules

InteractiveLayout Versus

SchematicComparison

ICtrace

InteractiveLayout Parasitic

Extraction

ICextract

Batch DesignRule

Checking

MaskCheck

ProceduralDatabase

IClister

GDSII/CIFICLink

Dracula

VerificationDataPort

OtherTools

PlottingSoftware

FrameworkSoftware

IC Station User’s Manual, v8.9_9 1-1

Page 38: Icstation User Manual @Vins

Introduction to IC Station

C

ers,

s

SII,ddactort,asitic

h of

ingage,s,

environment comprised of both a graphical user interface and a set ofmanagement facilities that help you to create and manage your schematic, Pboard, and IC layout designs.

IC Station tools use the Falcon Framework, which provides the Common UsInterface (CUI) for all Mentor Graphics tools, supports, multiple editing windowand manages your layout's database.

The IC Station tools provide you with the capability to design full custom celland mixed standard cell and block hierarchical layouts. You can also use a Cprogram interface; translate a design between the IC Environment, GDT, GDand CIF formats; edit polygons; and automatically floorplan, place, route, ancompact your design. Whether you are performing a full custom or automatelayout, you can use the floorplanner to sketch out your design and the compto optimize it. Additionally, you can use the IC Station tools to verify your layoucompare your layout to a schematic, extract parasitics, and backannotate parresults to a schematic.

The schematic capture, digital simulation, and design configuration tools, eacwhich you can independently invoke from the Design Manager or a shell, arecollectively calledIdea Station.

The Idea Station tools provide you with the capability to describe a design usthe Very High-Speed Integrated Circuit (VHSIC) hardware description languperform both schematic capture and digital simulation, configure your designand manage backannotations.

IC Station User’s Manual, v8.9_91-2

Page 39: Icstation User Manual @Vins

Introduction to IC Station IC Design Flow

ing

dardost

ut is

IC Design FlowFigure1-2 shows the major steps in a representative design flow for transferran idea for an IC into silicon reality.

• During physical layout, you build the mask data for the IC. You canhandcraft each polygon, or use automated layout techniques using stancells and blocks to assist you. Polygon layout generally gives you the mcompact designs; a standard cell layout is generally faster to design, bnot as efficient in silicon usage. For more information about physicallayout, refer to the appropriate user's manual.

The following list describes the majorsteps in an IC design flow:

• Front-end design consists ofcreating the logic for yourdesign, simulation, and testvector generation. The logicsource for your design can be assimple as a paper copy of thedesign, or it can originate frommany different electronicsources. If your logic source iselectronic, you can take fulladvantage of the automaticlayout and verificationcapabilities of the IC Stationtools. For more informationabout the front-end design flow,refer to the section “Front-EndDesign” in this manual.

Figure 1-2. IC Design Flow

Front-End Design

Physical Layout

Verification/Mask Prep

IC Station User’s Manual, v8.9_9 1-3

Page 40: Icstation User Manual @Vins

IC Design Flow Introduction to IC Station

to

ticillsion

he IC.

her

Thete

r the

• Layout verification is the process of interpreting the physical layout datadetermine whether it conforms to the physical design rules, electricaldesign rules, and to the source schematic, as well as extracting parasiinformation that you can use with simulators to determine if the design wperform according to specifications. Layout verification generally followfull custom design editing or placement and routing. For more informatabout layout verification, refer to the section “Verification.”

Mask generation is the final step in the design flow; the process oftransferring the mask layout to patterns that can be used to generate t

The following sections provide a brief description of the tools that are eitpart of, or that are optional software that you can use with IC Station.

Front-End Design

Front-end design is the process of creating the logic source for your design. logic source can be as simple as a paper copy of the design, or it can originafrom many different electronic sources.

If you have an electronic logic source, you can use simulators and test vectogenerators to aid you in testing your design. You can also take advantage ofautomated physical layout and verification IC Station tools. Figure1-3 shows thetypical process flow for front-end design.

IC Station User’s Manual, v8.9_91-4

Page 41: Icstation User Manual @Vins

Introduction to IC Station IC Design Flow

r IC

nue

Figure 1-3. Front-End Design Flow Overview

The following sections briefly describe each step of the front-end designprocesses and the tools you can use to create and simulate the logic for youdesigns.

Behavioral Modeling and Simulation

Behavioral language modeling is a technique you can use to create your owcomponent models. Behavioral language models (BLMs) are C programs yowrite to simulate the function of complex devices. Well-written BLMs simulatfaster than some models and are very accurate.

For more information about creating BLMs, refer to theBehavioral LanguageModel (BLM) Development Manual.

BehavioralModeling and

SimulationSynthesis

PhysicalLayout

Test VectorGenerationSchematic Entry

Structural/FaultSimulation

Layout Verification& Mask Generation

IC Station User’s Manual, v8.9_9 1-5

Page 42: Icstation User Manual @Vins

IC Design Flow Introduction to IC Station

g

icalality

edn

istscs inping.

ust

or itf theate

g

atad

Synthesis

In the context of CAE applications,synthesisis defined as the process of creatina design from one or more high level design descriptions. The high leveldescriptions can be in the form of a high level language description or a graphrepresentation. This gives you the freedom to create and test design functionwithout being concerned with technological implementation details. MentorGraphics offers design synthesis products for the design of ICs andapplication-specific integrated circuits (ASIC).

As the ASIC design process becomes increasingly complex through increasdesign complexity and shorter design cycles, logic synthesis and optimizatiobecome significantly more important in the design process.

AutoLogic

AutoLogic is a design optimization tool that produces technology-specific netlfrom generic netlists, such as those produced by AutoLogic VHDL. AutoLogioptimizes these netlists at the gate level so that they meet your requirementterms of area and performance. AutoLogic also serves as a technology-maptool that gives you the ability to map a netlist from one technology to another

For more information about AutoLogic, refer to theAutoLogic OptimizationGuide and theAutoLogic User Interface Reference Manual.

Schematic Entry

Before you create the physical layout data for an IC, you or someone else mcreateschematics for your design. A schematic is a graphical and behavioraldescription of a circuit, which can be as simple as a paper copy of the design,can originate from many different electronic sources. To take full advantage oIC Station tools, you need an electronic logic source for your design. You crean electronic schematic by combining and connecting electrical objects usinvarious modeling and schematic capture tools.

The logic source for your physical layout can either be an Electronic Design DModel (EDDM) design viewpoint that you create with Design Architect-IC anthe Design Viewpoint Editor, or a netlist.

IC Station User’s Manual, v8.9_91-6

Page 43: Icstation User Manual @Vins

Introduction to IC Station IC Design Flow

ns. or as usend

Thealog

Models

Modeling is the creation of computer models that represent devices or desigThe device or design being modeled can be as simple as a single logic gatecomplex as an entire system. Regardless of the level of complexity, you canthe computer model in conjunction with electronic design capture, analysis, alayout applications.

Mentor Graphics supports a variety of digital and analog modeling andarchitectural design techniques that you can use to create your own models.Mentor Graphics component libraries contain several thousand digital and ancomponent models. These libraries might not contain a specific componentnecessary for you to complete and to test your design. Or, you might want tomodel some characteristic of a device differently than the Mentor Graphicscomponent.

For more information about component modeling, refer to theDigital ModelingGuide and theSystem Modeling Blocks User's and Reference Manual.

IC Station User’s Manual, v8.9_9 1-7

Page 44: Icstation User Manual @Vins

IC Design Flow Introduction to IC Station

ren to

te

snint inhis

Design Architect-IC

You use Design Architect-IC (DA-IC) to create a schematic, but DA-IC is mothan a computer-aided schematic capture application. It is a multi-level desigenvironment that includes: a Schematic Editor, a Symbol Editor, an interfaceregister and place behavioral language and SPICE models, and a simulationcockpit for setting up and running analog, RF, and mixed signal simulations.

• Implement top-down and bottom-up design methodology

• Specify a design at different levels of abstraction, from high-levelspecifications to gate level implementation

• Specify a design using different modeling techniques

• Configure and manage different design descriptions to explore alternadesign implementations

You use Design Architect-IC to create and edit logical designs for use withdownstream processes such analog and digital simulation. Many applicationreturn design information to Design Architect-IC in the form of backannotatiovalues. These values can then be edited in the context of the design viewpoDesign Architect-IC and optionally merged into the original source design. Tcycle of creating a logical design, passing it to a downstream application forprocessing, and then passing new updated property values back to DesignArchitect-IC for editing is a common design process.

For more information about Design Architect-IC, refer to theDesign Architect-ICUser's Manual.

IC Station User’s Manual, v8.9_91-8

Page 45: Icstation User Manual @Vins

Introduction to IC Station IC Design Flow

ointol,ed

sign,youts.

ate

beenctors:

nhigh,n be can ofy of

Design Viewpoints

You use the Design Viewpoint Editor-IC (DVE-IC) to create adesign viewpoint,which is a special data object used for design configuration. The design viewpcontains a subset of the schematic's information that is used by a specific tosuch as ICgraph. A design viewpoint is required before the design can be uswith other downstream EDA tools such as ICblocks.

You can also use DVE-IC to set and change the rules that configure your decheck the design viewpoint, view models, and browse the design. In addition,can use it to create, connect, disconnect, and prioritize backannotation objec

After you extract parasitic information from your IC layout, you can backannotthis information to your logic source, then resimulate your design using thisinformation.

For more information about the Design Viewpoint Editor-IC, refer to theDesignViewpoint Editor User's and Reference Manual.

Test Vector Generation

Test vector generation is the process of creating test vectors, which are theelectronic signals that you use to verify the operation of a design after it has manufactured. Mentor Graphics offers two tools to help you generate test ve

FlexTest

FlexTest is a high-performance sequential Automatic Test Pattern Generatio(ATPG) system that allows you to create a set of test patterns that achieve aaccurately measured test coverage for your cycle-based circuits. FlexTest caused for circuits with full scan, partial scan, and non-scan designs. Also, youuse the embedded high-speed fault simulator in FlexTest to verify the qualitytest patterns created by others. Furthermore, the scan identification capabilitFlexTest can guide you to build low cost partial scan chains to significantlyincrease test coverage. For more information about FlexTest, refer to theFastScanand FlexTest Reference Manual.

IC Station User’s Manual, v8.9_9 1-9

Page 46: Icstation User Manual @Vins

IC Design Flow Introduction to IC Station

red testsis of

the

the

lyze

.

y,

s.

FastScan

FastScan creates a set of test patterns that achieve a high, accurately measucoverage for scan-based designs. FastScan performs a static learning analythe circuit to determine indirect relationships of gate assignments. Thisinformation allows the test generator to make more intelligent decisions andreduces the number of faults. For more information about FastScan, refer toFastScan and FlexTest Reference Manual.

Structural and Fault Simulation

Fault analysis is the process that the simulator uses to determine the faultdetection coverage of your designs. The fault analysis process fits between initial functional verification of the design, and before the physical hardwaretesting in the product development cycle.

Explorer LSim is a Mentor Graphics design automation tool that lets you anathe behavior of electronic designs ranging from high-level, abstract systemmodels through full-custom integrated circuits.

Explorer LSim includes the following features:

• Mixed-signal, multi-level simulation.

• Incorporation of M Language, VHDL, and netlist descriptions at anyhierarchical level in a single model.

• Simulation of different parts of a model using logic, switch, and analogmodes simultaneously.

• Hardware- and software-accelerated, and logic simulation.

• Full-screen interactive debugging of M-Language and VHDL models,including the use of breakpoints, execution tracing, and single-stepping

• Circuit traversal, which allows you to move through the design hierarchchecking connectivity, and forcing and reading values.

• Timing checks, which monitor parameters such as setup and hold time

IC Station User’s Manual, v8.9_91-10

Page 47: Icstation User Manual @Vins

Introduction to IC Station IC Design Flow

on aorFor

lls

ide

t

ic

t

• Test-vector generation, translation, and execution.

For more information about LSim, refer to theExplorer LSim User's Guide.

Full Custom IC Design

Full custom, or handcrafted IC design, is the process of creating an IC bymanually creating and editing each polygon.

ICgraph is the IC Station layout editor. In most IC layout systems, you useseparate editors for full custom and automated designs, resulting in separatedatabases. You must use converters to transfer data between tools. IC Staticombines full custom editing, automated block placement, and routing withinsingle editor using a unified database. You specify the design methodology feach cell that you create, mixing and changing design methods at any time. more information about full custom editing, refer to the section “Full CustomOverview.”

Automated IC Design

Automated IC design is the process of creating an IC by placing standard ceinto a layout and performing automatic routing between the blocks or cells togenerate an IC layout from schematics or a netlist. The following automatedlayout tools are either part of IC Station, or can be used with IC Station to provenhanced automated place and route capabilities:

• ICplan. A set of functions within ICgraph that you use to perform layoufloorplanning. For more information about ICplan, refer to the section“Floorplanning.”

• ICblocks. A set of functions within ICgraph that let you perform automatplacement and routing. For more information about ICblocks, refer tochapter4, “ICblocks Design Environment.”

• ICcompact. A set of functions within ICgraph that let you perform layoucompaction. For more information about ICcompact, refer to chapter18,“Compaction Operations.”

IC Station User’s Manual, v8.9_9 1-11

Page 48: Icstation User Manual @Vins

IC Design Flow Introduction to IC Station

s,

ace

ules,with

out

ols

l

nvice

rts

You can also use a batch utility called apr_batch to run ICplan, ICblockand ICcompact. For more information on apr_batch, refer to theIC StationReference Manual.

• ICdevice. A set of device generators that you set up to automatically plmos devices, resistors, capacitors, vias, and guard bands. For moreinformation, see theIC Station Device Level Automation Manual.

For more information on automated layout, refer to Chapter3, “Automated ICDesign.”

Verification

Layout verification is the process of interpreting the physical layout data todetermine whether it conforms to the physical design rules, electrical design rand source schematic, as well as extracting parasitic information you can usesimulators to determine if the design performs according to specifications.

The IC Station layout verification system is tightly integrated with the otherIC Station tools to both provide interactive verification, as you create your laydesign, and to perform batch verification on your completed design.

The entire IC Station Layout Verification system consists of the verification toshown in Figure1-4.

Collectively, the verification tools are referred to as ICverify. SeeFigure 1-4 onpage 1-14 for a visual of IC Station and ICverify tools. The following describesthe ICverify tools:

• Connectivity Extraction. A function within ICgraph that recognizeselectrically connected regions in the cell layout called nets. Nets arerecognized from layout geometries by analyzing the mutual topologicarelations between layout shapes and other objects on various layers.Connectivity rules, specified in the Rule file, guide the analysis.

• Device Recognition. A function within ICgraph that recognizes shapes ithe cell layout called device instances. The recognition is guided by dedefinitions specified in the Rule file. Connectivity extraction precedesdevice recognition in the chain of processes. Device recognition suppo

IC Station User’s Manual, v8.9_91-12

Page 49: Icstation User Manual @Vins

Introduction to IC Station IC Design Flow

y

ICtrace by preparing a net list. Device recognition supports ICextract bpreparing a list of pin and port locations.

• ICextract . A set of functions within ICgraph that you can use to performlayout parasitic extraction.

• ICrules. A set of functions within ICgraph that you can use to performdesign and geometry rules checking.

• ICtrace. A set of functions within ICgraph that you can use to performlayout versus schematic comparison.

IC Station User’s Manual, v8.9_9 1-13

Page 50: Icstation User Manual @Vins

IC Design Flow Introduction to IC Station

Figure 1-4. IC Station and the ICverify Tools

For more information about the ICverify tools, refer to the ICverify Manual.

IC StationDesign

Database

GDSII orCIF File

ICLinkIClister

C Program

ICextract

ICtrace

ICrules

ICplan

ICgraph

SourceCircuit

ICcompact

ICblocks

Full Customand AutomatedLayout Tools

IC Station Interfaces

VerificationDataPort

DraculaResults

LayoutVerification

DeviceRecognition

ConnectivityExtraction

IC Station User’s Manual, v8.9_91-14

Page 51: Icstation User Manual @Vins

Introduction to IC Station Tool Invocation

rcks

emnt

he

to

ust

In addition,MaskCheck is a batch physical layout verification tool that isavailable in IC Station. For more information about MaskCheck, refer to theCheckMate User's Manual.

The ICverify tools are supported by an ASCII text file called aRule file. A Rulefile defines connectivity rules for connectivity extraction, device definitions fodevice recognition, proportionality constants for ICextract, and design rule chefor ICrules. For more information about the Rule file, refer to the StandardVerification Rule Format Manual.

Tool InvocationIn order to focus your attention on your design rather than the operating systand workstation, V8.x provides you with a consistent, easy-to-use environmefor all your design management tasks. This section describes setting up andinvoking IC Station tools.

Setup

Before you begin to use any of the procedures or methods described in thischapter, you should edit your search path variable to include the$MGC_HOME/bin directory. Most of the commands used in this section arelocated in the bin directory.

1. To verify that you have an MGC_HOME environment variable, enter tfollowing at a command prompt:

For a Bourne/Korn shell: envFor a C-shell: printenv

If you do not have an MGC_HOME environment variable, you will needadd one to your startup file.

2. To include the $MGC_HOME/bin directory in your search path, you medit your startup file.

For a Bourne/Korn Shell, edit your.profile file.For a C-Shell, edit your.cshrc file.

IC Station User’s Manual, v8.9_9 1-15

Page 52: Icstation User Manual @Vins

Tool Invocation Introduction to IC Station

voker.

sting theface

red

u

cand the

ute

After you edit your startup file, your path variable may look like this:

PATH: your_home_directory$MGC_HOME/bin and other pathnames, depending on your workstation.

Invoking Tools

This section describes how to set up the operating system environment and intools. You can invoke tools from a command line or from the Design manage

From a command line

To start an ICgraph session from a command line, type$MGC_HOME/bin/ic atthe command line of any pad. If you type only “$MGC_HOME/bin/ic”, theICgraph session opens in the default graphic environment, taking over the exiwindow. There are several switches that you can use to open the session innographics mode, or to cause ICgraph to run as an External Rendering Inter(ERI) server. For more information about these switches, refer to theIC StationReference Manual.

From Design Manager

You can invoke the IC tools from the Design Manager in two ways: data-centeor tool-centered.

1. Data-centered invocation

With data-centered invocation, you specify a design object as input. Yonavigate to a design object, select it, and “open” it by executing theOpen >menu item from the navigator's popup menu. A list of tools appears thatoperate on the selected design object. You choose one of those tools antool invokes with the selected design object as input.

2. Tool-centered invocation

Note

To invoke applications by name, rather than typing in an absolpathname, you should have$MGC_HOME/binas an early elementin your search path.

IC Station User’s Manual, v8.9_91-16

Page 53: Icstation User Manual @Vins

Introduction to IC Station Related Software

.e

isct,

un

r

hen,

up

de

With tool-centered invocation, you invoke a tool without specifying adesign object as input. You double-click a tool icon in the tools windowThe tools window displays, as icons, all of the tools that you can invokfrom your Design Manager session. When you open a tool in the toolswindow, that tool’s session appears with no data object specified. At thpoint, most tools will either ask you for the pathname of an existing objeor will create a new object.

For more information on invoking tools from Design Manager-IC, refer to theDesign Manager-IC User’s Manual.

Invoking IC Tools on Sun Workstations

On Sun workstations, IC Station tools can only operate in the OpenWindowsenvironment. To invoke OpenWindows, use the following command at the SO/S prompt:

/usr/openwin/bin/openwin

Running ICgraph on the Sun workstation requires a shell window. For furtheinformation, refer to theOpenWindows Version 2 User's Guide (Sundocumentation). To open a shell window, put the cursor over the screenbackground, press the right mouse button to popup the Workspace menu. Tpopup the Programs submenu, and select “Command Tool” to open a shellwindow. To invoke ICgraph, enter the following at the shell prompt:

$MGC_HOME/bin/ic

After you complete the ICgraph session, exit the window system by poppingthe Workspace menu, and select “exit”.

Related Software

Interfaces

You use the following tools to manipulate the IC Station database or to proviaccess to other design databases:

IC Station User’s Manual, v8.9_9 1-17

Page 54: Icstation User Manual @Vins

Related Software Introduction to IC Station

wslsoe

r

d

rface

drch

ore

• Calibre DRC and LVS. A toolset that you can use to verify the physicaland electrical integrity of your IC designs. A write database facility alloyou to write out your Calibre database for use in IC Station, while you aview your Calibre results in IC Station. For more information, refer to thsection “Calibre Interface” or theCalibre Verification User’s Manual.

• Verification DataPort. A tool that you can use to import ICverify resultsinto IC Station for interactive debugging. This is useful for viewing andfixing errors on a workstation without consuming an ICrules, ICtrace, oICextract license.

• IClister. A C language procedural interface that provides access to thedesign database. For more information, refer to the IClister Manual.

• ICLink. A tool that you can use to convert between ICgraph, GDSII, anCIF. For more information, refer to theIC Station Database ConversionManual.

Framework Software

The following software comes with IC Station, but is part of the FalconFramework:

• Design Manager. A graphical tool that provides operating systemindependence for design manipulation and invocation. For moreinformation, refer to theDesign Manager User's Manual.

• Decision Support System (DSS). A spreadsheet tool for creating customelectronic design applications. DSS combines a spreadsheet user intewith a set of interfaces to outside data, and an easy-to-learn visualbuilding-block toolkit. For more information, refer to theDecision SupportSystem (DSS) User's Manual.

• Notepad. A text editor that you can invoke from the Design Manager anfrom within any V8.x tool. You can use the Notepad to change fonts, seaand replace, auto-wrap, auto-delete, manipulate files, select text fordeletion, copying, clipboard storage, or cut-and-paste operations. For minformation, refer to the Notepad User's and Reference Manual.

IC Station User’s Manual, v8.9_91-18

Page 55: Icstation User Manual @Vins

Introduction to IC Station Licenses

g.

n.

n

the

:

if

on

For more information about the Falcon Framework, refer to theGetting Startedwith Falcon Framework Training Workbook.

Plotting Software

The following manuals contain printer/plotter information:

• Plot/Export Filter User’s and Reference Manual

• Print Interface Reference Manual

• HotPlot User's and Reference Manual

LicensesThe licenses for your IC Station applications are either nodelocked or floatin

• Nodelocked licensesauthorize a specific workstation to run an applicatio

• Floating licenses authorize a particular workstation to run the applicatioor specific functionality within the application.Acquiring a license meansthat you have exclusive use of that license until you release it by exitingapplication or executing the$release_license()function. Contact a networklicense broker to obtain a floating license.

You acquire an ICgraph license (if available) when you invoke ICgraph

o If the workstation on which you invoke ICgraph has a nodelockedICgraph license, that license is used.

o If the workstation on which you invoke ICgraph does not have anodelocked ICgraph license, you acquire a floating ICgraph licenseone is available.

After you acquire the ICgraph license, you can acquire any nodelockedICrules, ICtrace, ICextract, ICblocks, ICcompact, ICplan, and VerificatiDataPort licenses.

IC Station User’s Manual, v8.9_9 1-19

Page 56: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

ou

willally

ICss tourw

thsitive

If floating, but not nodelocked, licenses for ICrules, ICtrace, ICextract,ICblocks, ICcompact, ICplan, and Verification Dataport are available, yexplicitly acquire them after ICgraph is invoked. You acquire licensesusing the $acquire_license()function in ICgraph. You release licenses tomake them available to others using the $release_license() function inICgraph. To find out the licenses you have acquired, use the$report_licenses()function in ICgraph.

If a palette menu item requires a license that has not been acquired, ICgraphattempt to acquire it when you click on that palette menu item. You automaticrelease acquired licenses when you exit ICgraph.

For more information about licenses, refer to theManaging Mentor GraphicsSoftware manual.

Key Concepts

IC Environment

When you invoke the IC environment software, you gain access to all of the Station tools that you are licensed to use. The IC environment gives you accemultiple tools that operate in multiple windows within the IC environment. Yoenvironment can change depending on a number of variables, and the windo(scope) in which you are currently working.

Variables

There are three types of variables associated with IC Station: environmentvariables, process variables, and application variables.

IC Environment Variables

An environment variable is a shell-level variable that lets you communicate wiyour program and set its internal states as it is executing. You assign case sennames to variables and values.

IC Station User’s Manual, v8.9_91-20

Page 57: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

ICour

IC.

cessze,tion

n

to

uen intive

To ensure that your environment works correctly, you or your SystemAdministrator must correctly set the appropriate environment variables for theStation tools. For information about the environment variables that relate to yIC Station environment, refer to AppendixA, “Environment Variables.”

IC Process Variables

Processis the description of the technology that you use in the design of yourProcess variables are reserved AMPLE variables that specify a predefinedProcess parameter. Mandatory Process variables include process name, proprecision, and process unit length. Optional process variables include grid sinumber of routing levels, site types, and wiring types. For a complete descripof the process variables used in IC Station, refer to the section“Process VariableDictionary” in theIC Station Reference Manual.

IC Application Variables

Application variables provide defaults for function arguments that you do notsupply. Some examples of application variables include the following:

The various setup and set functions let you change the value of an applicatiovariable. The get functions let you retrieve the current value of a particularapplication variable. Some applications refer to application variables asinternalstate functions. For more information about specific application variables, refertheset andget function descriptions in the IC Station Reference Manual.

Active Window

Theactive windowis the window that receives commands and functions you issfrom the command line or menus. Although there may be many windows opeICgraph, only one is the active window. ICgraph highlights the frame of the acwindow for easy identification.

• layer_minimum_spacing • ic_path_style

• layer_minimum_width • ic_path_width

IC Station User’s Manual, v8.9_9 1-21

Page 58: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

inell in

ple, and

g,

edan to

nges to

noty or orotionlsoith.

Active Context

Theactive context cell is the editing context for the active window. The activecontext can be the cell you initially opened, or you can peek an instance withthat cell and then set your active context to that peeked cell or any peeked cthe hierarchy.

Object creation and editing can only be done in the active context. For examyou cannot select objects in one context, change the context to another cell,then delete the selected objects.

Editing Modes

ICgraph has threeediting modesthat can be assigned to a cell: Geometry EditinConnectivity Editing, and Correct By Construction.

The editing modes are differentiated by the level of editing constraints enforcby the built-in connectivity model and design rule checking algorithms, which cbe used or ignored. This constraint-oriented model allows automatic updatesthe connectivity as edits occur. If it meets certain requirements, you can chathe editing mode of a cell. Changing from an editing mode of fewer constraintone of tighter constraints is calledpromoting a cell. Changing from an editingmode of tighter constraints to one of fewer constraints is calleddemoting a cell.For procedures to change editing modes, refer to Chapter13, “Edit ModeOperations.”

Geometry Editing Mode

The Geometry Editing (GE) mode allows unrestricted polygon editing, it doesuse or maintain the connectivity information, and does not prevent connectivitphysical design rule errors. If you demote a cell to the GE mode from the CECBC modes, connectivity and correspondence data will be present after demto the GE mode, but it might be invalidated by editing operations. You can aextract connectivity data from the design, and create correspondence data wICtrace. The GE mode is typically used for handcrafting polygon-level layout

IC Station User’s Manual, v8.9_91-22

Page 59: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

ur,et a

Ifthe

s to

r than

licitor

drcists inech

,ror

eect

y

tain

Connectivity Editing Mode

The Connectivity Editing (CE) mode maintains connectivity data as edits occbut does not prevent any errors in connectivity or physical design rules. You gwarning when connectivity is changed by an edit, but the change is allowed.you want to keep track of connectivity, but need the freedom to modify it, useCE mode.

Correct By Construction Mode

The Correct By Construction (CBC) mode restricts editing to prevent changeconnectivity.

If the error-directed dimensional check operations that are error-directeddimensional check operations have a Connected or Not Connected parametewhen the operation is executed to support ICgraph CBC, they use existingICgraph connectivity as established in the ICgraph CBC mode. This is anexception among nodal dimensional check operations, which require an expconnectivity extraction when selected and executed by the DRC executive. Fthis reason, the connectivity of the input layers of nodal dimensional checkoperations that are output operations of DRC RuleChecks in the continuous_group arenot verified at compilation time against the mask verification set. Thsolves the problem of forcing users to insert (often false) mask mode connecthe Rule file to satisfy connectivity verification of operations at compilation timor, worse, having separate Rule files for CBC DRC verses “normal” DRC. If sua DRC RuleCheck is explicitly selected and executed by the DRC executivehowever, then the connectivity is verified at that time, resulting in a run-time erif this verification fails.

CE and CBC Mode Connectivity Maintenance

At times it might be necessary to switch between the CE and CBC modes.Connectivity information is handled differently in the two editing modes. In thCE mode, connectivity is only determined by extraction according to the Connoperations in the Rule file. In the CBC mode, connectivity determines theinformation in the connectivity (routing level) layer sets and in layers explicitlset for direct connectivity tracing in the Rules file. This difference can causeproblems if you switch between the CE and CBC mode, and you do not mainconsistency between the two connectivity sources.

IC Station User’s Manual, v8.9_9 1-23

Page 60: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

el,hey

uleout

f the

ype,

ion.

le file

ringe

boutcells

a cellbout

hened in

In the CBC mode, you maintain connectivity by maintaining the $routing_lev$wiring_type, and $power_styles Process variables in your Process so that talways represent the actual usage of layers.

Any changes that you make in the Process will not require a change to the Rfile, although you will need to reload the Rule file. Most of the automated laytools are available to you without any extra Process definition.

Rule File, Process, and the CBC Mode

The automated layout tools use width and spacing specifications from some oprocess variables. The process variables $layer_spacing and $routing_levelspecify the spacing requirements, and $port_style, $power_styles, $wiring_tand $port_height specify the width requirements.

If spacing or width is smaller in a process variable than in a DRC rule in thecontinuous_drc group, the automated layout tools might create a DRC violatThis would be detected at one of these times:

• When you are editing later near the violation.

• When the template is checked against continuous_drc because the Ruhas changed.

Technology Information

You must describe the physical characteristics of the technology or manufactuprocess that you will use to implement your design as an IC. In IC Station, thdescription of your technology is referred to as theProcess.

Process data describes the technology, design rules, and other information ayour design. The Process also contains information shared among different in one design (for example, the routing level definitions).

Each cell has a Process associated with it. Either you specify a Process for when you create it, or ICgraph uses a default Process. For more information athe default Process, refer to the section “The Default Process.” Once you assign aProcess to a cell and save the cell, the Process is persistent with the cell. Wyou load a cell, the associated Process is also loaded if it is not already load

IC Station User’s Manual, v8.9_91-24

Page 61: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

ound, alsoing a

ouents

ip

the session. If the Process associated with a cell does not exist or cannot be fICgraph displays a warning and keeps the current session Process. You canchange the Process associated with a cell. For more information about changcell's Process, refer to the section “Changing a Cell Process.”

The level of information required in the Process for a particular cell varies. If yuse handcrafted design methodologies to create a cell, the Process requiremare minimal. If you use automated layout tools such as ICblocks, additionalProcess information is required.

For general information about Process, refer to Chapter, “Technology Definition.”For Process information specific to your design flow, refer to the section“Process.”

Flat and Hierarchical Layout

ICgraph uses cells as the basic design element. Each cell is an independentstructure, which you can create flat or hierarchically.

Flat Layout

Flat layout contains only mask layout data. You use flat layout for smaller chdesigns, defining functional blocks, and creating library cells for automatedlayout. Figure1-5 illustrates the concept of flat layout, which uses individualpolygons to define all functionality.

IC Station User’s Manual, v8.9_9 1-25

Page 62: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

n is

r. Theith

ieshout

for

Figure 1-5. Flat Layout

Hierarchical Layout

Hierarchical layout contains symbolic representations of mask data for aparticular set of functionality. These symbolic representations are calledinstances. This concept is similar to using symbols on a schematic. Your desigseparated into functional blocks that can range from a gate to an entire CPUsubsystem. Symbols are created for each block such as an inverter or registesymbols contain connection points called “pins” that you connect together wnets.

A design team environment is an area where hierarchical design methodologare especially useful. Each team member can work on a functional block witinterfering with the work being done by other team members.

Figure1-6illustrates the use of hierarchy to define gate level functional blocksthe same design shown in Figure1-5.

GND GNDGND GND GNDGND

VS

S

VS

S VS

S

VS

S

VS

S

VS

S

VS

S

VS

S

VS

S

VS

S VS

S

A BZ ZAZA ZA AKJ QN

CL

R Q

S

NO

R2

INV

INV

NO

R2

VDD

INV

VDD

INV

VDD

GND

BZ A

A Z

Z

Z

VD

D

VD

DVD

D

VD

D

VD

DV

SS

22

NR

2IV IV IV

FJK

3

VD

D

VD

D

VD

D

VD

D VD

D

INV

INV

INV

VDD

INV

VDD

A QNJ KZ A Z

RING

INV

JKF

F

RING

INV

VDD

JKF

F

VDD

VD

D

VD

D

IV

RING

22

22

S R Q

CL A

22

SQ R

SR

QA

A

VS

SV

DD

VD

DV

SS

IV

22

INV

JKF

F

NA

ND

3

GND

VDD

GND

VDD

JKF

F

INV

NA

ND

3

VDD

GND

IVFJK

3

ND

3

A

QN

CL

CL

QN

JK

JK A

Z

Z

A

BZ

Z

A

B

CC

VS

SVS

SV

DD

VD

DV

SS

VD

D

VS

SV

DD

33

IC Station User’s Manual, v8.9_91-26

Page 63: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

d as to thed

ver,

Figure 1-6. Hierarchical Layout

In a hierarchical design, you define the mask data for the functional block ansymbolic representation. Then, you can place the instances and use polygonconnect the pins of the various instances together to complete the design. Inexample in Figure1-6, the gate level blocks let you define functionality once, anreuse it many times in many designs.

You determine the number of levels of hierarchy to use in your design. Howemore complex designs might require many levels of hierarchy. Figure1-7 showsthe same design as Figure1-6 using an additional level of hierarchy to definelarger functional blocks.

RINGRINGRING

33

22

NAND3INVINVNAND4

I0I0I1

I1

I2I2

OU

TO

UT

OU

TO

UT

ININOU

TO

UT

ININ

INV

QQ

SET

SE

TRESET

CLO

CK

CLO

CK

RE

SE

T

JK

JKQ

B

QB

QQ

SET

SE

T

RESET

CLO

CK

CLO

CK

RE

SE

T

J K

J KQ

B

QB

OU

TO

UTIN

INOU

TO

UTIN

INOU

TO

UTIN

IN OU

TO

UTIN

IN

VDD

GNDI2I0I0 I1

I1I2

I3

I3

OU

TO

UTB

A

ZZB

A

DC

DC

VD

DV

SS

VD

DV

SS

ND

4

I0I1I0I1

OU

TO

UT

INV INV INVNOR2

JKFF

JKFF

IC Station User’s Manual, v8.9_9 1-27

Page 64: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

icantSBta on

r. In

Figure 1-7. Hierarchical Layout Top Level

Figure1-8 shows a 3-dimensional view of this design to further illustratehierarchy. Level 0, the top level, contains references to a subcell, Least SignifBit (LSB), which is connected to other cells by mask data. Level 1, inside the Lcell, also contains references to various gate level cells. There is no mask dathis level because the power and ground grids of each gate touch each othethis example, the level one data for the Most Significant Bit (MSB) cell is notshown. Level 2 contains the actual mask data for the gate level cells. In thisexample, the mask shows data for the INV cell.

Before you send your design out for pattern generation, flatten the symbolicrepresentations, leaving only the mask data from all the hierarchical levels.

33

RINGRINGRING

MSB

LSB

IC Station User’s Manual, v8.9_91-28

Page 65: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

Figure 1-8. Concept of Hierarchy

INV

INV

INV

JKFF

NOR2

Level 1

Level 2

Level 0

OUT

MSBLSB

IC Station User’s Manual, v8.9_9 1-29

Page 66: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

inter

and

eseuseock

s of

Referenced Cells

When you place an instance of a cell in your design, ICgraph maintains a poto where the instance came from on disk called areference. Therefore, cells thatyou place in your design, as an instance, are calledreferenced cells. The design inFigure1-7 references two cells called LSB and MSB, as shown in Figure1-9.These two cells in turn reference a number of cells called NOR2, INV, JKFF,NAND4. INV and JKFF are both referenced by LSB and MSB. NOR2 isreferenced only by LSB, and NAND4 is referenced only by MSB. Creating thgate level cells, or cells at any level, lets you define functionality that you canover and over again. You can build and verify these functional blocks, then lthem so they cannot be changed, which gives you a guarantee that they willalways perform exactly the same.

You can define functional blocks to suit your needs, and have as many levelhierarchy.

Figure 1-9. Referenced Cells

CHIP

LSB MSB

NOR2 INV JKFF NAND4

IC Station User’s Manual, v8.9_91-30

Page 67: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

eeate

Connecting Hierarchical Elements

When you create the symbolic representation of your cell, you also define thshapes or paths where signal and power should be connected. When you crthese connection points, they are called ports as shown in Figure1-10.

Figure 1-10. Creating Ports

NA

ND

4

VDD

NA

ND

4

I0

OU

TO

UT

B

A B DC

DC

NA

ND

4

IC Station User’s Manual, v8.9_9 1-31

Page 68: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

s as

ith

When you place the cell in another cell, these connection points are called pinshown in Figure1-11. You can select pins individually, which lets you modifyproperties attached to the pins. You connect the pins of various cells either wpolygons that touch the pins, or by making the pins touch or overlap.

Figure 1-11. Ports Become Pins

For instructions about creating ports, refer to the section “Making Ports.”

INV

NA

ND

4

Vdd

GNDGND

Vdd

OU

TO

UT

ININ

I3I3I2

I2

QQ

I1I1

I0I0

OU

TO

UT

IC Station User’s Manual, v8.9_91-32

Page 69: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

o sol)

Viewing Mask Data

If you need to see the mask data of a referenced cell in your design, you can dby peeking the cell.Peeking lets you temporarily replace the symbolic (externaview of a cell with the mask layout (internal) view for a cell as shown inFigure 1-12.

Figure 1-12. Peeking Cells

For instructions about peeking cells, refer to the section “Peeking Cells.”

INV

Vdd

GND

OU

TO

UT

ININ

QQ

RES

RE

SE

T

IC Station User’s Manual, v8.9_9 1-33

Page 70: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

withandhew onw isaskwn

ing

t thee. For

Editing Hierarchical Designs

Normally, you create a design by placing cells and connecting them togetherother shapes or paths. The cell in which you are doing this is your active cell,also your editing context. There might be times when you will want to modify tmask data of a cell you have placed. You have two alternatives: open a windothe cell and make the changes, or edit the cell in place. Opening a new windono different than editing any other cell. Editing in place means you view the mdata and perform the edits directly within the context of the existing cell, as shoin Figure 1-13. This lets you see exactly how the edits will affect the surrounddata, and is also faster than opening a separate window.

Figure 1-13. Editing In Context

Arrays and devices behave like any other hierarchical cell, but you cannot secontext inside the device or array; you set the context to the arrayed instancinstructions about editing in context, refer to the section “Editing In Context.”

INV

Vdd

GNDO

UT

OU

T

ININ

QQ

RES

RE

SE

T

IC Station User’s Manual, v8.9_91-34

Page 71: Icstation User Manual @Vins

Introduction to IC Station Key Concepts

otherrryof a

ationds the

youarentse.are

use

theribes

atst

ent

e

Keeping Hierarchical Designs Up to Date

Flat designs always reflect the latest changes. Hierarchical designs referencecells that you or someone else can change. Normally, you do not have to woabout updating the references in your design. If you edit the external aspect referenced cell within the same session in which you reference that cell, allinstances of that cell are automatically updated. Otherwise, whenever an operrequires access to the data for a changed instance, ICgraph automatically loanewest version of that instance.

There are occasions when you might want to force an update, such as whenknow that a new version of an instance has been created. When you save a pcell, the version number of each instance is saved in the parent cell's databaWhen you open the parent cell again, those same versions of the instances loaded. No check is made to determine if any of them have changed. You canthe $report_outdated_cells()function to determine if you have out-of-dateinstances in your design. You have two methods that you can use to updateparent cell's database: resyncing/updating and updating. The following descdifferent methods of manually updating hierarchical designs:

• Resyncing/Updating. Resynchronizing loads and displays the latestversion of out-of-date instances from the disk, but does not update anyconnectivity or design rule information in the parent cell. A flag is set thindicates a pending update. This lets you update your design to the morecent version of an instance without the overhead of updating the parcell. If, after resyncing, you select an out-of-date instance, ICgraphautomatically updates the connectivity and design rule information in thparent cell for all occurrences of that instance. For instructions aboutresyncing, refer to the section “Resyncing Cells.” For more informationabout resynchronizing, refer to the $resync_cell()and$resync_cell_by_name()function descriptions in theIC Station ReferenceManual.

IC Station User’s Manual, v8.9_9 1-35

Page 72: Icstation User Manual @Vins

Key Concepts Introduction to IC Station

nseious

etted

he the

ando youdated,ny

eeds

• Updating. Updating updates the connectivity and design rule informatioin the parent cell for all occurrences of out-of-date instances. If you clothe cell window without saving, the updated instances revert to the prevversion. For instructions about updating, refer to the section “UpdatingReferenced Cells.” For more information about updating, refer to the$update_cell()and$update_cell_by_name()function descriptions in theICStation Reference Manual.

• Salvaging References. Every file or directory that you create has a UniquIDentifier (UID). When you reference a cell in a hierarchical design, thacell's UID is stored as part of the parent cell. If a referenced cell is deleand then recreated, the new cell has a different UID. If this cell isreferenced by other cells in a hierarchical design, any attempt to load tcell, such as by peeking, fails because the UIDs do not match betweenold reference in its parent cell and the new cell. This UID mismatch iscalled an invalid reference.If an invalid reference is encountered whenICgraph tries to load a referenced cell, ICgraph updates the reference loads the cell using the updated reference. This process is transparent texcept that warning messages are reported about references being upand in which parent cells. If this occurs, you should reserve and save aparent cells that have reported reference salvaging. Any function that nto access disk data could trigger reference salvaging, such as $peek(),$peek_area(), $open_cell(), and $load_process().

IC Station User’s Manual, v8.9_91-36

Page 73: Icstation User Manual @Vins

es

inger IC

ll

Chapter 2Full Custom Overview

Full custom, or handcrafted IC design, is the process of creating an IC bymanually creating and editing each polygon. Full custom layout generally givyou the most compact designs.

Figure2-1 shows the major steps in a representative design flow for transferran idea for an Integrated Circuit into silicon reality. This section describes thtools and processes that you can use to handcraft the physical layout of youdesign.

Figure 2-1. Typical Full Custom IC Design Flow

For instructions about performing specific operations that are related to fullcustom IC design, refer to the section “Full Custom Editing Operations.”

For information about specific functions and commands that are related to fucustom IC design, refer to the IC Station Reference Manual.

Full CustomLayout

Front-EndDesign

Layout Verificationand Mask Prep

IC Station User’s Manual, v8.9_9 2-1

Page 74: Icstation User Manual @Vins

Full Custom Tools Full Custom Overview

ft the

.

Full Custom ToolsThe following sections describe the tools and processes you use to handcraphysical layout of your IC design. Figure2-2 shows the Mentor Graphics toolsand the steps you use to create a full custom design.

Figure 2-2. IC Station Full Custom IC Design Flow

The following sections describe each part of the handcrafted design process

ICcompact

ICgraph

ProcessFile

RulesFile

GDSIIor CIF

ICLink

LayoutDatabase

Front-EndDesign

Layout Verificationand Mask Prep

ICplan

LogicSource

IC Station User’s Manual, v8.9_92-2

Page 75: Icstation User Manual @Vins

Full Custom Overview Full Custom Tools

tion,ust

s in

s by

ign.

ach

ns.

Rule File

The Rule file is used during incremental design rule checking, parasitic extracand layout versus schematic. If you use ICrules, ICtrace, or ICextract, you mfirst load a Rule file. For more information about the Rule file, refer to theStandard Verification Rule Format Manual.

Process File

The Process file describes the technology, some design rules, and otherinformation about a cell or a design. Information shared among different cellone design (for example, the routing level definitions) is also contained in theProcess. The Process file should use variables for all values, allowing accesthe Rule file and other applications.

Process requirements for full custom IC designs are described in the section“Process.”

Logic Source

If you choose to use the floorplanner, you will need a logic source for your desThe logic source can be a hardcopy of a schematic, or an EDDM designviewpoint, created with the Design Viewpoint Editor-IC (DVE-IC).

Floorplanning

Floorplanningis the process of estimating the chip area that will be used for estandard cell or block in the design. Afloorplan is a topological structurecomprised of rows and shapes used as guides for placing cells in a design.

ICplan is the IC Station tool that lets you generate and edit hierarchical floorplaFor more information about ICplan and floorplanning, refer to the section“Floorplanning Operations.”

IC Station User’s Manual, v8.9_9 2-3

Page 76: Icstation User Manual @Vins

Full Custom Tools Full Custom Overview

uesom

l

the

and

ICgraph

You use the layout editor, ICgraph, to handcraft your IC. You can completelyhandcraft your design, or use a number of productivity improvement techniqsuch as Schematic Driven Layout (SDL). For more information on the full custoperations that you can perform in ICgraph, refer to the section “Full CustomEditing Operations.” For information about SDL in full custom IC design, refer toChapter, “Generate Devices” in the IC Station Device Level Automation Manua.

Compaction

Compaction is the process of minimizing the size of a completed layout.ICcompact is the IC Station automated layout tool that lets you perform bothautomatic and interactive minimization of the area of your completed layout.

For more information about ICcompact and compaction procedures, refer tosection, “Compaction Operations.”

Other Layout Sources

The layout for your design originates from several different sources. You cancreate the layout in ICgraph, or import the layout from other sources.

ICLink is the IC Station data translator that converts IC layout data betweenvarious database formats. ICLink helps you import layout data into IC Stationhelps you deliver layout data from IC Station to various foundry formats.

ICLink performs two main functions, which are described as follows:

1. Database/File Conversion. ICLink converts between the IC Stationdatabase format and the following data formats:

o GDS (Calma GDSII) stream files

o CIF stream files

IC Station User’s Manual, v8.9_92-4

Page 77: Icstation User Manual @Vins

Full Custom Overview Full Custom Tools

cell

efer

2. Database/File Status Reporting. ICLink interprets and displays IC Stationdesign data in any of several formats, identifying design hierarchy andinformation.

You can invoke ICLink from within IC Station, the Falcon Framework DesignManager, or an operating system shell. For more information about ICLink, rto the IC Station Database Conversion Manual.

IC Station User’s Manual, v8.9_9 2-5

Page 78: Icstation User Manual @Vins

Full Custom Tools Full Custom Overview

IC Station User’s Manual, v8.9_92-6

Page 79: Icstation User Manual @Vins

utrom

ing

Chapter 3Automated IC Design

Automated layout is the process of creating an IC by placing cells into a layoand performing automatic routing between the cells to generate an IC layout fschematics or from netlist information.

OverviewFigure3-1 shows the major steps in a representative design flow for transferran idea for an Integrated Circuit into silicon reality using automated layoutmethodologies.

IC Station User’s Manual, v8.9_9 3-1

Page 80: Icstation User Manual @Vins

Overview Automated IC Design

ssesing a

, this

n

ter it

Figure 3-1. Typical Automated Layout IC Design Flow

The primary elements of the automated layout IC design flow shown in Figure3-1are as follows:

• Schematic Capture. The first step in the IC design flow; the process ofcreating a schematic using a computer and storing it so that other procecan use it. The schematic can contain components that are modeled usbehavioral language such as VHDL. When the design is mature, VHDLsynthesizes into a gate level description. As a designer creates a designprocess allows maximum flexibility.

• Simulation. The second step in the IC design flow; the process ofmodeling, exercising, and analyzing the behavior of an electronic desigwithout the ownership costs of the physical hardware.

• Test Pattern Generation. The process of creatingtest vectors, which arethe electronic signals that are used to verify the operation of a design af

SchematicCapture

SimulationTest

PatternGeneration

AutomatedLayout

LayoutVerification

PatternGeneration

IC Station User’s Manual, v8.9_93-2

Page 81: Icstation User Manual @Vins

Automated IC Design Automated Layout Process Flow

a

s to

igns

hissign

al

has been manufactured. Test generation generally follows successfulsimulation.

• Automated Layout. The process of creating an IC by placing cells into layout and performing automatic routing between the blocks or cells togenerate an IC layout from schematics or from netlist information.Automated layout generally follows schematic capture and simulation.

• Layout Verification . The process of interpreting IClayout data todetermine whether the layout conforms to the design rules, correspondthe source schematic, and performs satisfactorily. Layout verificationgenerally follows placement and routing or full custom editing.

• Pattern Generation. The final step in the design flow; the process oftransferring the mask layout to patterns used to generate the IC.

Automated Layout Process FlowThis section covers the process flow related to the automated layout of IC desusing ICblocks.

Figure3-2 shows the steps you use to perform automated layout of a chip. Tflow diagram assumes you have already obtained the logic source for your defrom Design Architect-IC or another source. The remainder of this sectiondescribes the IC Station automated layout tools that let you perform the actulayout of your chip.

IC Station User’s Manual, v8.9_9 3-3

Page 82: Icstation User Manual @Vins

Automated Layout Process Flow Automated IC Design

tche

illtry atad

en

Figure 3-2. Automated Layout Design Flow

The automated layout tools run either from within the ICgraph editor or as a bajob. The automated layout tools use an initial representation of the logic in thform of either a schematic or a netlist.

Library Creation

Library creationis the process of creating a library of standard cells that you wuse in your design. Acell library is a design object you create in IC Station thacontains the cells in your design. You can add or delete cells from your libraany time. The cell library does not actually contain cell information, but instecontains references or pointers to the cell information and to other libraries.Therefore, you do not need to physically locate the cells with the library or ev

Library Creation

Floorplanning

Placement

Routing

Compaction

Design Verificationand Pattern Generation

IC Station User’s Manual, v8.9_93-4

Page 83: Icstation User Manual @Vins

Automated IC Design Automated Layout Process Flow

cess

d,

ach

ns.

.ween

the

with each other. Your cell library automatically contains a reference to the Prothat is your session Process at the time you create the library.

Your library should contain all the cells in your layout, including your standarblock, external, feedthru, left cap, right cap, and corner cells. Your cell librarydoes not include via cells; via cells are identified in your Process. For moreinformation on library operations, refer to the section “Library Operations.”

Floorplanning

Floorplanningis the process of estimating the chip area that will be used for estandard cell or block in the design. Afloorplan is a topological structurecomprised of rows and shapes used as guides for placing cells in a design.

ICplan is the IC Station tool that lets you generate and edit hierarchical floorplaFor more information about ICplan and floorplanning, refer to the section“Floorplanning Operations.”

Placement and Routing

Placement is the process of placing standard cells or blocks onto the floorplanRouting is the process of placing and connecting signal and power paths betthe standard cells or blocks.

With IC Station, you use ICblocks for placement and routing. For moreinformation on ICblocks, refer to the section “ICblocks Design Environment.”

Compaction

Compaction is the process of minimizing the size of a completed layout.ICcompact is the IC Station automated layout tool that lets you perform bothautomatic and interactive minimization of the area of your completed layout.

For more information about ICcompact and compaction procedures, refer tosection “Compaction Operations.”

IC Station User’s Manual, v8.9_9 3-5

Page 84: Icstation User Manual @Vins

For Additional Information Automated IC Design

usede

out,

Design Verification and Pattern Generation

During design verification and pattern generation, you determine whether thelayout conforms to the design rules; corresponds to the source schematic;performs satisfactorily; then transfer the mask layout to patterns that can be to generate the IC. For more information about layout verification, refer to thsection “Verification.”

For Additional InformationFor automated layout design requirements, refer to the section “DesignRequirements.”

For instructions about performing specific operations related to automated layrefer to the section “Automated Layout Editing Operations.”

For information about specific functions and commands that are related toautomated layout, refer to the IC Station Reference Manual.

IC Station User’s Manual, v8.9_93-6

Page 85: Icstation User Manual @Vins

(thecells

ths

Chapter 4ICblocks Design Environment

OverviewFigure4-1 shows the ICblocks design environment and interfaces to variousexternal databases.

Figure 4-1. ICblocks Design Environment

The IC Station automated layout tool, ICblocks, consists of the autoplace toolPlacer) and the autoroute tool (the Router). First, you use the Placer to placein the design, then use the Router to route the physical signal and power pabetween pins in the design.

TechnologyInformation

LogicSource

LibraryCells

ICblocks

LayoutSource

Database

Placer/Router

IC Station User’s Manual, v8.9_9 4-1

Page 86: Icstation User Manual @Vins

Overview ICblocks Design Environment

ingbatch

h.

, cap. The

ll

rding

e

t.

ing

.

You can use ICblocks within the IC Station environment or in batch mode usapr_batch. The apr_batch shell command runs the automated layout tools inmode without invoking an IC Station graphic window. You can run anycombination of functions in ICblocks, ICplan, and ICcompact using apr_batcFor more information about the apr_batchshell command, refer to the IC StationReference Manual.

Placement

The ICblocks Placer automatically places blocks, standard cells, corner cellscells, feedthru cells, groups, pins, and ports that are in a corresponding netlistresulting placement is optimized based on the criteria you select.

In IC Station, you can choose from the following algorithms for automatic ceplacement with ICblocks:

• Initial . Performs a “top-down bipartitioning” initial placement of standacells. This method gives you a good-quality standard cell placement usthe Min-Cut algorithm to minimize wiring congestion; however, theresulting placement is improved further by applying thesimulated-annealing technique to the estimated wire-length.

This method is most useful if pin/port placement is critical, in which casthe automatic port placer can be invoked after executing this step, andbefore resuming placement improvement described below.

• Initial + Improve . Performs iterative wire-length improvement usingsimulated annealing after performing the bipartitioning initial placemen

Simulated Annealing follows an exponential decay function for generatvalues of the objective function (wire length weighted by net priorities).When applied to iterative improvement of the wire-length, this typicallyresults in about a 10-20% improvement. Execution time for theimprovement phase is about twice as long as the initial placement step

IC Station User’s Manual, v8.9_94-2

Page 87: Icstation User Manual @Vins

ICblocks Design Environment Overview

ss.

ale

al that

that

• Random + Improve. Performs a random initial placement instead of thebipartitioning placement followed by the wire-length improvement proceThis might require up to three or four times as much CPU time asinit_n_improve, and has been preserved as a backup, in caseinit_n_improve is unable to complete the placement.

• Resume. Continues with the wire-length improvement phase from thecurrent placement. All cells must have been previously placed byperforming either the Initial or Initial + Improve placement step. The inititemperature for the annealing process is restored from the temperatursaved at the end of the previous placement run.

• Improve. Continues with the wire-length improvement phase from thecurrent placement. All cells must have been previously placed byperforming either the Initial or Initial + Improve placement step. The inititemperature for the annealing process is recalculated and started frompoint.

The ICblocks Placer has the following automated placement capabilities:

• Supports mixed case with blocks preplaced either automatically ormanually

• Supports horizontal and vertical rows for internal standard cells

• Supports vertical busing structures

• Uses fixed seed placement if you provide one

• Takes into account the existence of equipotential pins in the design

• Performs row sculpting to generate variable length rows to fit aroundblocks in the design

• Takes advantage of either all, part, absolute, or relative preplacement you have already performed

• Uses net priority weighting as a factor in placing the design

IC Station User’s Manual, v8.9_9 4-3

Page 88: Icstation User Manual @Vins

Overview ICblocks Design Environment

ether.. The

of

el

ing

a

ding beenfrom

ks on

• Places both gridded and nongridded cells

Routing

Routing is the process by which standard cells and blocks are connected togThese objects must already be placed by either interactive or manual meansconnectivity information usually comes from a netlist or schematic database.Routing with ICblocks can be done manually, interactively, or a combinationboth.

Routing Algorithms

Routing with ICblocks is achieved with combinations of line-probe and channrouting algorithms.

TheAutoroute Nets andAutoroute Overflow commands use a line-probe routingalgorithm. TheAutoroute All command uses both line-probe and channel routalgorithms.

Line-probe Routing Algorithm

The line-probe router is a point-to-point router, which uses probes in finding path. The line-probe router works well in open areas, is relatively fast, butsometimes leaves overflows.

The algorithm starts at the source and target locations of a single net by extenprobes in both directions. If there is an intersection in the probes, a path hasfound that can be used. If no intersection occurs, then probes are extended the original probe lines, which are closer together, to find a path.

Channel Routing Algorithm

The channel routing algorithm is used on standard cell, composite, and blocdesigns. This algorithm is much faster than the line-probe algorithm and worka collection of nets rather than a single net.

This algorithm consists of two main parts: global and final routing.

IC Station User’s Manual, v8.9_94-4

Page 89: Icstation User Manual @Vins

ICblocks Design Environment Overview

to beded

anre

neting.

The global router assigns nets to channels. The router activates pins on cellsused by the final router, and inserts and activates any external feedthrus neefor final routing. Some global routers insert and order channel end ports; it cthen expand the channels if necessary. The routing is based on minimum wilength and congestion.

The final router determines the specific positions and routing layers for eachthat is assigned to a specific channel, then the channels are ordered for routThe channels are then routed starting with the highest numbered channel.

ICblocks Routing Steps

Routing in ICblocks is accomplished in five main steps:

1. Over-the-Cell routing (OCR) (line-probe)

2. Global routing (channel)

3. Final routing (channel)

4. Cleanup routing (line-probe)

5. Deleting dangling nets (channel)

IC Station User’s Manual, v8.9_9 4-5

Page 90: Icstation User Manual @Vins

Overview ICblocks Design Environment

erts

bal

Over-the-Cell Routing (OCR)

The OCR portion of the router brings pins to the cell extent (stub routing), insinternal feedthrus, and completes tie-downs (power straps) as illustrated inFigure4-2.

Figure 4-2. OCR Routing

Global Routing

The global router is divided into two phases:

1. Initial global router . Spans out from the source pin and activates theclosest node pin on the target cell. It uses the minimum wire length todetermine which pin to activate. This is done for all nets. The initial glorouter will:

o Assign nets to channels

o Activate internal feedthrus

o Insert external feedthrus

o Expand and contract channels

Blockage

FEED

FEED

FEED

Channel

Channel

IC Station User’s Manual, v8.9_94-6

Page 91: Icstation User Manual @Vins

ICblocks Design Environment Overview

Figure 4-3 shows initial global routing.

Figure 4-3. Initial Global Routing

2. Improved global router. Uses the initial global router information andimproves it by examining the channel congestion. The router:

o Inserts or removes feedthrus

o Reassigns nets to channels

o Deactivates and activates pins

o Expands and contracts channels

Blockage

Blockage

Channel

Channel

Channel

FEED

FEED

FEED

FEED

FEED

FEED

IC Station User’s Manual, v8.9_9 4-7

Page 92: Icstation User Manual @Vins

Overview ICblocks Design Environment

Figure 4-4 shows improved global routing.

Figure 4-4. Improved Global Routing

Final Routing

The final router:

• Routes the channels based on global routing

• Handles constraints in the channels

• Routes to activated pins and feedthrus

• Expands the channel as needed

• Determines the best layers for routing

• Routes power and ground

Blockage

Blockage

Channel

Channel

Channel

FEED

FEED

FEED

FEED

FEED

FEED

IC Station User’s Manual, v8.9_94-8

Page 93: Icstation User Manual @Vins

ICblocks Design Environment Overview

by

Figure 4-5 shows final routing.

Figure 4-5. Final Routing

Cleanup Routing

The cleanup router is a line-probe router that tries to route any overflows leftthe final router. The cleanup router is enabled or disabled with$set_router_cleanup(), sets up its own parameters, and routes over cells.

Congested Channel

Blockage

Blockage

Channel

Channel

FEED

FEED

FEED

FEED

FEED

FEED

IC Station User’s Manual, v8.9_9 4-9

Page 94: Icstation User Manual @Vins

Overview ICblocks Design Environment

nale

Trimming Dangling Nets

The final phase of routing scans the database to remove unused stubs, interfeedthrus, and routing material. Dangling nets are removed manually with thTrim Nets command, or automatically withAutoroute All if$get_router_cleanup() = @on.

Figure 4-6. Trimming Dangling Nets

Congested Channel

Blockage

Blockage

Channel

Channel

FEED

FEED

FEED

FEED

FEED

FEED

IC Station User’s Manual, v8.9_94-10

Page 95: Icstation User Manual @Vins

ICblocks Design Environment Overview

.

ace.

and

les

he

ire

in

Router Capabilities

The ICblocks Router has the following automated routing capabilities:

• Supports blocks, standard cells, and mixed blocks and cells topologies

• Routes n-levels up to 20 layers.

• Routes rectilinear channel areas.

• Supports all technologies.

• Automatically routes over-the-cell and block using a complete obstacleavoidance model, allowing you to limit the amount and direction ofover-the-cell and block routing.

• Automatically solves pinwheel conditions; you do not need slicingstructures.

• Obeys design rules for same net spacing.

• Routes in fixed mode, where all components in the layout are fixed in pl

• Automatically routes 100% assuming no design rule violations on pinsthat pins are not blocked.

• Routes multiple wiring types, and allows different width and spacing rufor each wiring type.

• Routes with unrestricted pin locations on either blocks or cells, where tpin location is not restricted to edge and internal.

• Supports all angle geometries in recognizing blockages.

• Contains a global router that bases routing on either congestion and wlength, or just wire length.

• Provides a congestion model in global routing that attempts to maintainuniform routing density; the ICblocks global router tries to place routesalternative channels if many routes exist in one part of the channel.

IC Station User’s Manual, v8.9_9 4-11

Page 96: Icstation User Manual @Vins

Overview ICblocks Design Environment

es

lock

in to

g,

the

• Adds extra space to channels, if specified.

• Uses preferred routing by channel direction.

• Determines feedthrus, and cap cell placement and connection.

• Routes cells of variable height.

• Routes multiple cell types.

• Performs a planar route where possible to minimize transitioning. Routon the same layer with no layer change whenever possible.

• Supports soft prerouting with the global router.

• Routes power feedthrus. For example, routing to one power pin on a bor cell implies that the other pin is also connected to power.

• Concurrently integrates signal and power net routing into the ICblockschannel router, thus yielding excellent power routing topology.

• Bases tapering on port sizes. The router uses the width of the power pdetermine the width of the power connection to a power bus.

• Allows multiple power routing styles: row to bus, pad to bus, internal rininternal vertical, left vertical, and right vertical.

• Accepts an unlimited number of power signals, which is useful withdifferent types of cells (for example, analog or digital), and/or differenttechnologies (for example, BICMOS or GaAs).

• Allows manual sizing of power wires in channel.

• Routes tie-downs. You can specify tie-downs in either the schematic ornetlist to attach a signal pin to power.

• Routes power between two routing layers by using power via stitching.

• Defines power straps to tie a signal to power within a cell or block, ifpossible.

IC Station User’s Manual, v8.9_94-12

Page 97: Icstation User Manual @Vins

ICblocks Design Environment Logic Source

e

• RoutesN layer point-to-point routing.

• Routes layer preferences as defined in the Process. You can control thamount of routing in the non-preferred direction.

• Routes by net, area, group, or point-to-point.

• Routes in either a gridded or a gridless mode.

• Routes in the user-specified, nonpreferred direction and maximum wirelength in nonpreferred direction for over-the-cell routing.

• Allows you to specify maximum number of vias allowed in a path.

• Automatically checks specified overflows against a user-specifiedminimum and maximum length per routing level.

Logic SourceThe logic source for your design must be an EDDM viewpoint.

EDDM Viewpoints

An EDDM viewpoint, also called a design viewpoint, is created by the DesignViewpoint Editor (DVE-IC) or by the $create_viewpoint() function in ICgraph,which operate on the Design Architect-IC database. If you have a NetEdschematic, you can convert it to a Design Architect-IC schematic using“cvt_comp.” Both$load_logic() and$create_cell() functions can be used to loadthe netlist from an EDDM viewpoint into IC Station.

IC Station User’s Manual, v8.9_9 4-13

Page 98: Icstation User Manual @Vins

Logic Source ICblocks Design Environment

thepomp

byden.

aded

ny

ory,t issedript

dme

You use Design Architect-IC to add Comp and Phy_comp properties to allsymbols for which you want to have corresponding physical cells pulled fromavailable layout libraries. Any schematic instance that has an attached Comproperty is treated as a primitive instance. The values of the Comp and Phy_cproperties specify the physical cell name that is to be used for the primitiveinstance.

The desired EDDM viewpoint of the Design Architect-IC database is createdusing the $open_design_viewpoint() function in DVE-IC. The viewpoint is maof the top level schematic of the logic that is going to be loaded into IC Statio

The physical libraries in IC Station should contain the physical cells thatcorrespond to the design's schematic instances. In ICgraph, if you have not loProcess and Rule files prior to loading a logic (viewpoint), ICgraph uses thedefault session Process.

In ICgraph, only one EDDM design viewpoint can be cached in memory at agiven time. This viewpoint is referred to as theactive viewpoint. The followingcommands are affected by the active viewpoint:

All these commands behave consistently. If an active viewpoint exists in memand if you ask for a different viewpoint, all design data from the old viewpoinremoved from memory and the new viewpoint is read in. The last viewpoint ubecomes the active viewpoint. Notes in the message window and the transcspecify which viewpoint is active.

If a logic is currently open and you ask for a different viewpoint, the commanfails. This happens if you perform the Open Mask Logic or Open Logic By Nacommand, not followed by a Close Logic command. Before you use a newviewpoint, first perform a Close Logic command.

• Open Logic • LVS Mask

• Open Mask Logic • Load Logic

• Open Logic By Name • Mask BackannotationCommands

• LVS Direct • Direct Parasitic ExtractionBackannotation Commands

IC Station User’s Manual, v8.9_94-14

Page 99: Icstation User Manual @Vins

ICblocks Design Environment Layout Source

ofally

hat it

uchformr theolscess

ationne.

n

Layout SourceYou create the layout in ICgraph. Cell libraries provide you with a collection cells that you can include in your design. A standard cell library does not actucontain cells, but instead has references orpointersto the cells. You can locate thecells anywhere in your directory structure and organize them in any fashion.Because a library is just a set of references to these cells, you can tailor it so tonly contains those cells needed for a particular design.

You can add any of the following design data to the physical library:

• Converted CellGraph designs

• Converted ChipGraph designs

• Translated designs

• New ICgraph designs

Technology InformationSpecific information about manufacturing technology is required to create alayout design. This technology information can take the form of design rules, sas spacings and widths, which layout verification software can also use to perchecks on the layout. Within IC Station, the Process is the single repository forule-specific and manufacturing technology information that the IC Station toneed for a given layout design technology. The Process is comprised of a ProDefinition Fileset (PDF) and a Rule file.

Process data describes the design technology, design rules, and other informabout a cell or a design. Information that is shared among different cells in odesign, such as the routing level definitions, is contained in the design's PDF

For a particular Process, aRule file defines the design rule checks that IC Statiocan perform:

• Dimensional checks (width and spacing checks)

IC Station User’s Manual, v8.9_9 4-15

Page 100: Icstation User Manual @Vins

Technology Information ICblocks Design Environment

eanges

nge

Theourur

nt,eck

areointerll

• Connectivity extraction (what layers are electrically connected)

• Parasitic extraction (capacitance and resistance effects of layers)

• Device extraction (recognition of functional structures)

The Rule file is linked to the Process Definition Fileset so that it uses all of thsame layers and layer sets already defined in the Process. You can make chto the Process values in the Process Definition Fileset without having to chathe Rule file.

You perform automated layout in the Correct By Construction (CBC) mode. CBC operational configuration enforces correct connectivity, as specified in ylogic, and it enforces certain physical design rules. Each time you modify yolayout while in CBC, IC Station automatically evaluates the RuleCheck groupnamed “continuous_drc” in your Rule file. Therefore, the minimum requiremefor your Rule file to be able to support automated layout, is to have a RuleChgroup with the name “continuous_drc.”

Via Cells in the Process

Via cells are considered part of the Process because the valid via cell types constrained by other Process Variables. The Process contains a reference pto the via cell templates that are associated with it. For information on via cerequirements, refer to the section “Via Cell Requirements.”

IC Station User’s Manual, v8.9_94-16

Page 101: Icstation User Manual @Vins

se

eu

lternalisng:

es.

Chapter 5ICgraph Objects

Each object in your IC design has a specific type, handle, and aspect. You usome objects in both handcrafted and standard cell and block designs; someobjects are used only in standard cell and block designs.

HandlesA handle is a unique identifier of an object within a cell. Its format is a positivinteger. Every object you create or place in your design has a handle, and yocannot change the handle of an object.

AspectThere are two sets of data associated with a cell: external aspect and internaaspect. External aspect objects are the interface and abstraction of the cell. Inaspect objects are the implementation of a cell and are visible when the cell peeked. Each object within a cell has its aspect defined as one of the followi

• External. Objects that are used for the symbolic view and some blockagThe external aspect includes the connected interface of the cell.

• Internal. Objects that are part of the mask data and non-exported cellfeatures.

IC Station User’s Manual, v8.9_9 5-1

Page 102: Icstation User Manual @Vins

Aspect ICgraph Objects

Forth the

ernal

putandnand

when

data.that

ct,ell'sers.

• Both. Objects that are used as mask data and part of the symbolic view.example, pins and some blockages. An object can be a member of bointernal and external sets of data, making it both a part of theimplementation, as well as being visible in the interface of a cell. Portmembers (shapes and paths) automatically have both internal and extaspects.

Figure5-1 illustrates the concept of internal and external aspects using a 4-innand gate. Objects with an internal aspect are the actual mask data for the ngate. Objects with an external aspect are the symbolic representation of the gate that you would use in a hierarchical design.

Figure 5-1. Aspect

You can specify the aspect (internal, external, or both) for shapes and pathsyou create them, or you can change the aspect at a later time.

An object's aspect does not necessarily distinguish mask data from non-maskThe layers that you specify for output to pattern generation determine the datais considered as mask data.

By default, a cell placed within another cell initially displays its external aspewhich is made up of external data and an extent. Actual presentation of the cexternal aspect is determined by the window-specific visibility settings for lay

Internal Aspect External Aspect

GN

D

Vdd NAND4

OUT OUT

I3

I3

I2

I2

I1

I1

I0 I0

IC Station User’s Manual, v8.9_95-2

Page 103: Icstation User Manual @Vins

ICgraph Objects Aspect

ts.

a theells

text

ols.

ve an,

kf the

nputbyked.

When you set a cell as the active context, the internal aspect is displayed bydefault. You can control the display to show internal, external, or both aspec

Aspect and Connectivity

There are two levels of data for connectivity:

• The data in the active context cell.

• The data of cells instantiated in that cell. For an unpeeked cell, the datpresented to the place and route, compaction, and connectivity tools isinternal data for the active context cell and the external data for all subcat that hierarchy level. Only one level of internal data and one level ofexternal data are presented. Data that is external only in the active concell is not available, and data that is internal only in the subcells is notavailable. This applies to all non-hierarchical layout and connectivity to

Aspect and Peeking

When you peek an instance, only objects within the peeked instance that haaspect of internal or both are visible. Regardless of peeking, place and routecompaction, and the connectivity database operate only on data that has anexternal aspect. Rule checking, plotting, and viewing are affected by the peecondition and operate on both the internal and the external data. The effect opeek condition on layout verification depends on the method that you use as ito the verification tools through the connectivity manager, which is unaffectedpeek, and the rules for running Mask ICtrace, which is affected by what is pee

IC Station User’s Manual, v8.9_9 5-3

Page 104: Icstation User Manual @Vins

Angles ICgraph Objects

can

and are

m to not

notle

youf 45

AnglesEach object you create in a cell can be constrained within certain angles. Youlimit objects to 45 degrees, 90 degrees, or all angles. You use the$set_angle_mode()function to set the angle mode for shape and path creationpath modification. The coordinates supplied to the add and editing functionsconstrained by the angle mode. Each cell has a different angle mode.

If an editing function alters the shapes and paths so that they no longer conforthe current angle mode, a warning message is displayed. The angle mode isactually enforced until you enable angle mode enforcement with the$set_angle_mode_enforcement() function. When angle mode enforcement isenabled, all object editing must conform to the angle mode or the operation isperformed. If the cell already contains objects that do not conform to the angmode, a warning message is displayed.

The angle mode you set for a cell is persistent and is stored with that cell. If do not set the angle mode for a cell, that cell will have a default angle mode odegrees.

IC Station User’s Manual, v8.9_95-4

Page 105: Icstation User Manual @Vins

ICgraph Objects Design Database

hise

Design DatabaseTable5-1 describes the ICgraph database files created for an ICgraph cell. Tcollection of files is referred to as a design object and is displayed as a singlobject in the Design Manager.

Table 5-1. Design Database Files

Database Files for Cell dflp Description of Contents:

Thedflp.Ic_cell_template.attr file in thisexample contains persistent information aboutthe cell, such as the Process, versions, andreferenced cells.

Thedflp.Ic_cell_template.attr.lck file in thisexample indicates that this particular cell isreserved for edit and other users are lockedout and cannot open the cell for edit.However, other users can still place the cell intheir own designs or open the cell read-only.

Thedflp.ic_cell_1 file in this examplecontains the actual polygon information forversion 1 of this cell.

Thedflp.ic_cell_2 file in this examplecontains the actual polygon information forversion 2 of this cell.

dflp

dflp.Ic_cell_template.attrdflp.Ic_cell_template.attr.lckdflp.iccell_1dflp.iccell_2

IC Station User’s Manual, v8.9_9 5-5

Page 106: Icstation User Manual @Vins

Object Types ICgraph Objects

eater IC

sign

Object TypesICgraph objects are either physical or logical. A physical object is a set ofgeometric layout shapes. A logical object consists of a group of descriptiveinformation that is not directly represented in the physical layout. You can cror change logical objects by importing either schematic or netlist data into youStation design, or by editing them.

The following ICgraph objects are considered physical objects:

The following ICgraph objects are considered logical objects:

The following sections describe each type of ICgraph object. For specific derequirements for your design flow, refer to the section “Design Requirements.”

For instructions about displaying object information, refer to the procedure“Displaying Object Information.”

• Shape • Device Generators • Blockage

• Path • Array • Text

• Floorplan Shape • Via Object • PG Text

• Floorplan Row • Via Instance • Property Text

• Cell and Instance

• Property • Pin • Overflow

• Port • Net

IC Station User’s Manual, v8.9_95-6

Page 107: Icstation User Manual @Vins

ICgraph Objects Object Types

nds096.

rs, as

ed tocells

fthpath. of

Shape

A shape is a closed polygon existing on a single layer. Most editing commaoperate on shapes. The maximum number of vertices allowed for a shape is 4Shapes can be circular, rectangular, or irregular, and can have filleted corneshown in Figure5-2. If an editing operation results in the creation of multipleshapes from an existing shape, the new shapes get new handles.

Figure 5-2. Shape Examples

Path

Paths in standard cells are either signal or power paths. Signal paths are ustransmit electrical signals between signal pins. Power paths carry current to to power the cells' operations.

A path has a reference line, width, and endtype. Most path editing functionsoperate on the reference line. If an editing operation results in the creation omultiple paths from an existing path, the new paths get new handles. The pareference line can be defined as the centerline, left edge, or right edge of theFigure 5-3 shows that the initial and endpoints determine the left or right sidethe reference line. Arrows indicate the direction of the drawn reference line(shown in bold).

Rectangular Irregular FilletedCircular

IC Station User’s Manual, v8.9_9 5-7

Page 108: Icstation User Manual @Vins

Object Types ICgraph Objects

edhalfint of

g, 45ay

and

Figure 5-3. Path Reference Line

Path ends can be normal or extended, as shown in Figure5-4. A normal pathoutline ends at the reference line endpoints. Extended path outlines extendone-half the path width beyond both ends of the reference line. First_extendpath outlines only extend from the first endpoint of the reference line by one-the path width. Last_extended path outlines extend only from the last endpothe reference line by one-half the path width.

Figure 5-4. Path End Types

Heuristically Padded Paths

If a path contains 45 degree angles, you can add padding. If you add paddindegree segments of the path outline are moved approximately six percent awfrom the reference line. This will place the segment at least on the half grid,

Center Left Right

Normal

Extended

FirstExtended

LastExtended

IC Station User’s Manual, v8.9_95-8

Page 109: Icstation User Manual @Vins

ICgraph Objects Object Types

ce

probably on grid.Figure 5-5 shows a path without padding.Figure 5-6 shows apath with padding. Graphically, it is difficult to tell the difference.Figure 5-7shows the padded and unpadded paths overlaid, clearly making the differenvisible.

Figure 5-5. Path Without Padding

Figure 5-6. Path With Padding

IC Station User’s Manual, v8.9_9 5-9

Page 110: Icstation User Manual @Vins

Object Types ICgraph Objects

to

ofuchdinging

This

at theen

Figure 5-7. Padded/Unpadded Overlay

Grid Padded Paths

Padding is performed outward in the x and y direction from the reference linethe nearest grid point. The$set_padding_grid()function may be performed. If it isnot, then the lesser of the x and y snap grid values, determined by $set_grid() isused.

Prerequisites: Path model lines must be on the padding grid. The half-width centerline paths and the width of left/right-justified paths must be specified sthat the vertical and horizontal outline segments are automatically on the padgrid without additional manipulation. The path must have no skew lines, meanno segments which are not orthogonal or diagonal, in the model line.

The $set_padding_grid establishes a padding grid relative to the cell origin. function sets a grid that is separate from the coordinates determined by$set_grid().

When $set_padding_grid() is used, the user is responsible for making sure thpad grid is compatible with the snap grid. If the padding grid is not specified, ththe lesser of thex andy snap grid values is used.

Note

If any of the prerequisites are not met, the path is generatedwithout padding, and a warning is issued in the status area andtranscript.

IC Station User’s Manual, v8.9_95-10

Page 111: Icstation User Manual @Vins

ICgraph Objects Object Types

s set

int of

uld

When the padding_grid value is set, it is persistent with the cell, meaning it iuniquely for each cell and is saved with it. A user may query the padding gridvariable by calling the $get_cell_info() function.

Cambered Paths

If a path contains acute angles (internal angles less than 45 degrees), the pothe acute angle is automatically cambered as shown in the path in Figure5-8,versus remaining uncambered as shown in Figure5-9.

Figure 5-8. Cambered Path

Figure 5-9. Uncambered Path

If the path has a left or right reference line, the outline is not cambered if it wocamber the reference line as shown in the path in Figure5-10with a left referenceline, versus the same path in Figure5-11 with a center reference line.

IC Station User’s Manual, v8.9_9 5-11

Page 112: Icstation User Manual @Vins

Object Types ICgraph Objects

Figure 5-10. Cambered Path (Left Reference Line)

Figure 5-11. Cambered Path (Center Reference Line)

IC Station User’s Manual, v8.9_95-12

Page 113: Icstation User Manual @Vins

ICgraph Objects Object Types

n

anded at

add

ff the

Property Text

Property text is a graphical representation of aProperty that you add to a specificlayer of your design. The property value is displayed as an object that you caselect in the layout. It has characteristics such as height, justification, andorientation. You can select, highlight, move, delete, group, rotate, and flipproperty text independent of the owning object. Vdd and CLOCK in Figure5-12are examples of property text.

Figure 5-12. Property Text Example

When you add property text to an object, a property with the specified namevalue is created if the property does not already exist and the value is displaythe specified location. The defaults for height, justification, and orientation ofproperty text are set by the$setup_object_template() function, which you canoverride by using the Options dialog box that is part of the$add_property_text()function. If you have a large object that stretches across the layout, you can property text with the same name and value at multiple locations.

You can control the visibility of property text by placing property text on adifferent layer from its owner and using the$set_visible_layers() function.Property text always has the same aspect as its owner. You can turn on or odisplay of all property text by using the$set_text_display() function or theDisplay Text option on the Setup IC dialog box.

Vdd

RE

SE

T

CLOCK

SET

Q

IC Station User’s Manual, v8.9_9 5-13

Page 114: Icstation User Manual @Vins

Object Types ICgraph Objects

tes ond.

lta.

ed

s,ut

f youonlyo

s.

the

Some functions that operate on an object that owns property text also operathe property text, regardless of whether the property is selected or highlighteSome examples of this are as follows:

• If you move the owning object, its property text moves by the same de

• If you flip the owning object, the offsets for the property text are flippedand the justifications are reversed.

• If you rotate the owning object, the offsets for its property text are rotatand the orientation of the property text can change.

If an editing operation on the owner of property text results in multiple objectproperty text is copied onto the new objects with the same offset as before, brelative to the new objects origins and each property text gets a new handle. Imove or copy the owner to a new layer, the layer of the property text changesif you also select the property text. For information about properties related tyour design flow, refer to the section “Design Requirements.”

Adding Property Text

You can use the$add_property_text() function to add visible properties to yourdesign.

Changing Property Text

You can use the$change_property_text() function to change the name, value,height, or justification of property text. You can also use the$change_object_attributes() function to change the same property text attribute

For information about the properties that are used in your design flow, refer tosection “Property.”

IC Station User’s Manual, v8.9_95-14

Page 115: Icstation User Manual @Vins

ICgraph Objects Object Types

otherll

berher. are

youou

lly

is type.

orts,;d cantype.

Cell and Instance

A cell is a named object in the database hierarchy. When a cell is added to ancell, it becomes acell instance. You can place or unplace an instance. Each cehas a name, but only an instance of the cell has a handle. Each cell has aphysicalname, which is the pathname to the cell. It also has alogical name, which is thecell logical name, and is set with the$set_cell_logical_name() function. Inaddition, it has aninstance name, which is the value of the INST property for aspecific instance of the cell.

Each cell has a set of site types assigned at creation. The site type is a numfrom 1 to 30 that you choose to identify similar cells that can be placed togetNormally, cells share a site number if the power rails for a row of those cellscreated by cell abutment, ensuring power abutment for cells in a row.

Each cell you create has a specific purpose, which is defined by the cell typeassign to the cell. The following sections describe the various types of cells ycan create and use:

Block

Blocks are arbitrarily sized full custom cells. A block has an equivalent in thelogic design and can have hierarchy. Blocks are effectively used when theycontain cells and other blocks at lower levels of hierarchy. They are especiauseful in top-down designs in which you place, route, and compact a smallnumber of top level blocks before working on lower hierarchical levels. A blocknot designed to be placed on a standard cell row and does not require a siteBlocks can have any number of ports, which can be of any type.

Standard Cell

Standard cells are comprised of logical and physical objects including pins, ppower straps, and paths. They are designed to be placed on an internal rowtherefore, they require a site type. It has an equivalent in the logic design anhave hierarchy. A standard cell has any number of ports, which can be of anyIt can be of any height and width, as long as it can abut with other like-typedstandard cells without a design rule or connectivity violation.

IC Station User’s Manual, v8.9_9 5-15

Page 116: Icstation User Manual @Vins

Object Types ICgraph Objects

any

w,s.laced

y theThey sitets.

ow tonotn aner of

ells.pey tocify.

External Cell

An external cell is an I/O pad; it is not a port. It has an equivalent in the logicdesign and can have hierarchy. An external cell is designed to be placed onexternal row and therefore requires a site type. An external cell can have annumber of ports, which can be of any type.

Left and Right Cap Cell

A left or right cap cell is designed to be placed on the left or right end of a rousually to terminate row features such as p-wells or to connect power busseThey do not have an equivalent in the logic design. They are designed to be pon an internal row and therefore require a site type. A cap cell can have anynumber of ports, but cannot have signal ports.

Corner Cell

A corner cell is designed to be placed at the edge of the layout, as defined bends of the external rows. They do not have equivalents in the logic design. are placed at the intersection of external rows and therefore do not require atype. A corner cell can have any number of ports but cannot have signal por

Feedthru

A feedthru is a cell that is designed to be placed in gaps between cells in a rprovide continuity for row features such as power rails and p-wells. They do have an equivalent in the logic design. A feedthru is designed to be placed ointernal row and therefore requires a site type. A feedthru can have any numbports, but cannot have signal ports.

All functions that create cells or devices have a site_type vector argument. Asite_type is required for standard, external, left_cap, right_cap, and feedthru cYou will get an error message if you try to create a cell that requires a site_tyand you do not supply a site_type. You will also get an error message if you trcreate a cell with a cell_type for which a site_type is meaningless, and you spea site_type. Hierarchy is allowed within all cell types except vias and devices

IC Station User’s Manual, v8.9_95-16

Page 117: Icstation User Manual @Vins

ICgraph Objects Object Types

ate and

ake

and

.ouEach

An unplaced port is created for a via cell when you create a via cell with the$create_cell() or $make_cell() functions. You are prevented from creating ordeleting ports inside a via cell. An unplaced port is not created when you crevia template with the $add_device() function. The device generator creates adeletes ports inside a via cell and scans the device after it is completed to msure that exactly one port exists.

Array

An array is an object that contains arrayed instances of a cell; it contains rowscolumns of a cell instance. Figure5-13 shows an example of a memory cellarrayed in an 8 X 4 configuration.

Figure 5-13. Array Example

Arrays are not allowed in CE mode cells. Arrays of arrays are not supportedThere are no specified operations within the context of an array. However, ycan set the context to the visible placement in the array closest to the cursor.array has a handle.

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

RAM_1

IC Station User’s Manual, v8.9_9 5-17

Page 118: Icstation User Manual @Vins

Object Types ICgraph Objects

inyoures

oreducecells;le.

f the

hich

, you

tor

t

Device Generators

Traditionally, in full custom designs, you created a cell by graphically drawingeach layer object, then instantiated placements of the cell in various places indesign. If you made any changes to the design of the original cell, the changwere propagated toall the other placements of the cell.

Device generators are AMPLE Userware functions that give IC designers a mflexible and automated way of creating cells. They enable the designer to proprogrammable, repeatable layout structures that can be used like traditional but unlike traditional cells, these generated devices are individually modifiabDevices created using a device generator can be of any complexity, from thesimplest transistor to cells to entire ICs. The complexity and sophistication odevice generated is limited only by the capability of the AMPLE program yousupply.

Unlike traditional cells, generated devices do not have a graphical template, ware difficult to quickly modify for manynearly-alike placements. Becausegenerated devices are constructed from device generator AMPLE programscan build each occurrence of a device with its own unique parameters.

With generated devices, you can:

• Reuse them in various places in your design, such as a traditional cell.

• Modify the parameters of each placement, by program.

• Change one placement and not affect other placements. That is, eachplacement is independent, having its own parameters (such as transissizes, capacitor area or path lengths).

Generated devices are:

• More flexible than cells, especially when each placement uses differenparameters.

• Useful when the whole design will be flattened, with manynearly-alikeiterations of an object (for example, a memory array address decodecircuit).

IC Station User’s Manual, v8.9_95-18

Page 119: Icstation User Manual @Vins

ICgraph Objects Object Types

th.

ithn be

, the

hea

, in

• Quicker and easier to modify than cells.

• Good for cases where you want to generate layout with programs.

Devices can be:

• Point-based —all objects within the device are generated relative to asingle origin point, such as a transistor.

• Path-based —all objects within the device are generated relative to a pa

• Shape-based— all objects within the device are generated relative to ashape.

Like traditional instances, generated devices can have an external aspect, wpins and blockages that correspond to a schematic component, and they caused as placements.

To add devices, use the $add_device() function. You can invoke the$add_device() function via the Edit, Easy Edit, and Expert Edit Palette menusObjects pulldown menu, and the IC window popup menu.

You can use the device generator without needing to know the structure of tAMPLE code involved. A programmer (usually in a CAD support group) writesdevice generator AMPLE script to tell IC Station how to construct the devicemuch the same fashion as if you were drawing it by hand.

For more information on device generators, refer to the section “DeviceGenerators” in the IC Station Device Level Automation Manual.

IC Station User’s Manual, v8.9_9 5-19

Page 120: Icstation User Manual @Vins

Object Types ICgraph Objects

ter, and

your text

Text

You use text objects to place visible, free-standing text into your design. Youplace free-standing text on a specific layer at a specific location. ICgraph texobjects are compatible with GDSII text. You specify the height, orientation, layaspect, and location of each text object. You can delete, move, rotate, copy,change the justification and orientation of text objects. Figure5-14 is an exampleof a text object.

Figure 5-14. Sample Text Object

PG Text

PG text is a mechanism you use to place Pattern Generatable (PG) text intodesign. PG text is created with a built-in device generator called $pgtext. PGis based on a default font or a custom font you specify. Figure5-15is an exampleof PG text using the default font.

Figure 5-15. Sample of the Default PG Font Characters

The following PG Text related procedures can be found in this manual:

For information about converting PG Text with ICLink, refer to the section “PGText Mapping” in the IC Station Database Conversion Manual.

• Creating a Custom PG Text Font • Creating PG Text

• Changing the Default PG TextFont

• Changing the Size of PG Text

feed_thru

IC Station User’s Manual, v8.9_95-20

Page 121: Icstation User Manual @Vins

ICgraph Objects Object Types

se

ve

an

nd atfrom you

Via

Vias, by definition, connect two layers with a shape on each layer. You use$create_cell() or $create_via_cell() to create vias. You can implement vias in ICStation asvia instances or via objects.

Via Instance

A via created by instantiating a via cell is referred to as a via instance. You u$add_via() to instantiate via instances.

Via Object

Via objects are simpler and more memory efficient than via instances, but hamore restrictions. You use$add_via() to instantiate via objects. The followingconstraints apply to via objects:

• The source cell for via objects must be of cell type VIA

• Via objects must be placed orthogonally

• You cannot set the context into the via object, disallowing hierarchicalediting of via objects

• Via objects do not have pins or pin shapes

• Via objects do not have theinst property

• Via objects have a single shape on each layer

• At least one shape must be part of the via port

You construct a via object's representation through a via cell template. You cconstruct via instances and via objects with the same via template, with therestriction that a via object's template has only a single object on each layer, aleast one shape must be part of a port. If you attempt to construct a via objectan illegal via object template, the construction fails with a message notifyingof the problem.

IC Station User’s Manual, v8.9_9 5-21

Page 122: Icstation User Manual @Vins

Object Types ICgraph Objects

s

me, and

f vias to

yers

jectlayed.

fromions

ou

ct are

le

ctingt.if

You cannot set the edit context into a via object. In order to edit a via object'representation, you must explicitly open its template using the$open_cell()function. Alternatively, if there is an available via instance that shares the satemplate as the via object, you can move the context inside that via instanceedit the representation there.

Via objects have no concept of pins or pin shapes, which are an integral part oinstances. However, extraction and the CBC edit mode still rely on port shapedetermine inter-layer connectivity (by the fact that two shapes on different labelong to the same port). This means that the inter-layer connectivity shapesshould be defined as port shapes.

If you edit a via object template in such a way that it is not suitable for via obuse, via objects referencing it are not updated, and an error message is disp

You cannot notch, slice, or fillet via objects. If you stretch a via object, the viaobject moves, just as it would on a via instance. You cannot construct arraysvia objects. However, you can flatten, scale, flip, and rotate via objects. Rotatmust be in multiples of 90 degrees (orthogonal only). A via object has noselectable or editable edges.

To switch a via object's template, you must first convert it to a via instance. Ycan then change it with$replace_cell() and then convert it back to a via object.

Via objects are displayed as if they were a peeked via instance without theplacement box. Therefore, only the via template shapes with an internal aspedisplayed. The aspect of the via object itself is internal only, emulating thebehavior of a via instance.

Layer visibility behaves as normal. That is, only the template shapes on visiblayers are displayed.

When selecting a via object, all of its template objects are selected, as if selea peeked via instance. The select count registers a single item per via objecWhen highlighting a via object, all of its template objects are highlighted, as highlighting a peeked via instance.

IC Station User’s Manual, v8.9_95-22

Page 123: Icstation User Manual @Vins

ICgraph Objects Object Types

rs onert a

te isnotn.

ing

theel

y. Al in

lof the

ngeroutered toso the

ose

You convert via instances into via objects, or vice versa, using the$change_via_type() function. Conversion of via objects to via instances isnecessary if via object limitations are not acceptable in certain situations. Foexample, if you want to create an array of the via or the via has multiple shapea layer. If you attempt to do an unnecessary conversion, such as trying to convvia object into a via object, the conversion is ignored.

If you attempt to convert a via instance into a via object when the via templanot suitable for a via object, you get a warning message and the instance is converted. Attempting to convert a via instance with a non-orthogonal rotatiointo a via object results in a warning message with no conversion being done

Blockage

Blockages are areas in which the router is prohibited from routing. Each routlevel has a corresponding blockage layer. Blockages prohibit routing in thehorizontal and/or vertical direction, and can prohibit the placement of vias in region covered by the blockage shape. A blockage layer can be a routing levwith an external aspect when the blockage is a lower level cell in the hierarchsingle blockage layer must be defined for each explicitly defined routing levethe Process.

Figure 5-16 shows the layout of an XOR gate standard cell, which has severashapes highlighted. Those shapes are pieces of metal1 that are not membersdefined ports. The router creates a short if it is routed over those shapes usimetal1. To identify those areas as blockages, you change the aspect of thosshapes to both external and internal. By having an external aspect, the routeseesthe shapes and recognizes them as blockages on the first routing level. The rcan use the second routing level (metal2) to route over the cell. You do not nedefine the ports as blockages because they already have an external aspect,router treats them as a blockage when routing nets that do not connect to thpins.

IC Station User’s Manual, v8.9_9 5-23

Page 124: Icstation User Manual @Vins

Object Types ICgraph Objects

Figure 5-16. Blockage Example

VDD

VSS

IN1IN2

OUT

IC Station User’s Manual, v8.9_95-24

Page 125: Icstation User Manual @Vins

ICgraph Objects Object Types

llourtant.her

.ke ons on the

t

usthave

ent

ons,

yerg are

l be

The$autoroute_all() and$compact() functions allow you to add blockages on arouting layers in the active context cell after routing or compacting the cell. If yare doing hierarchical placement and routing, adding these blockages is impoYou should add blockages before you either use the compacted cell in a higlevel of hierarchy or begin routing at the next higher hierarchical level.

If the blockages are not defined, routing over-the-cell and/or block can occurBlockages must have an external aspect to prevent over-the-cell and/or blocrouting. A blockage cannot exist between a power pin and its nearest cell edgthe routing level in which the pin must get to the cell edge. Vertical blockagea cell should be 1/2 design rule spacing from the cell boundary, as defined inRule file, unless the vertical blockages extend to the left-most and right-mosextent of the cell. Otherwise, abutting cells cause a design rule violation.

When over-the-block routing is not allowed to route to pins on blocks, there mbe an unobstructed path from the port to the nearest block boundary. If you defined blockages, you do not need to take any measures to preventover-the-block routing; you route the design. For procedures on how to prevover-the-block routing, refer to the section “Preventing Over-the-Block Routing.”

You define multiple blockages per routing level with the $wiring_type and$routing_level Process Variables. For information on Process variable definitifor multiple blockages per routing level, refer to the section “Defining MultipleRouting Layers for a Routing Level.”

A blockage on a routing layer should not completely surround a port on that labecause routing might be prevented to the port's associated pin. The followintwo cases where routing is not prevented to a completely surrounded port:

• If the edge of the blockage and the port shape coincides, the routing wilenabled in the direction orthogonal to the coincident edges.

• If a via fits within or is the same size as the pin on the blockage routinglayer, and the transition to another routing layer is allowed, the routerutilizes a via to route to a different layer.

For more information about blockages, refer to the Block_dir property in theProperties Reference Manual.

IC Station User’s Manual, v8.9_9 5-25

Page 126: Icstation User Manual @Vins

Object Types ICgraph Objects

that

ry

Theflarysed

Cell Boundary

A cell boundary is a shape that defines the outline of a cell and is used byIC Station during placement. The placement algorithm allows cells to abut sotheir boundaries touch. IC Station does not allow cell boundaries to overlap.

You define the boundary of a cell with a shape on the predefined cell boundalayerfp1. By default, IC Station uses the extent of all shapes in the cell todetermine the boundary.

The layout of an XOR gate standard cell in Figure5-17 has its boundaryhighlighted. Notice that the diffusion layer extends beyond the cell boundary.extension of the diffusion is permissible if it will not interfere with the layout oany cell that it might be abutted with. If you let IC Station define a default celboundary, the boundary includes the diffusion shape. The default cell boundwould therefore be unnecessarily larger. If every cell in the layout were increaby this small amount, your final layout could be significantly larger.

IC Station User’s Manual, v8.9_95-26

Page 127: Icstation User Manual @Vins

ICgraph Objects Object Types

Figure 5-17. Cell Boundary Example

VDD

VSS

IN1IN2

OUT

IC Station User’s Manual, v8.9_9 5-27

Page 128: Icstation User Manual @Vins

Object Types ICgraph Objects

en

ed int yeterate

he

ine oflls sohen

any

metedeets

For optimal placement, define cell boundaries so that they are halfway betweuser grids, and the width of the cells should be a multiple of your user grid.

Floorplan Shape

Floorplan shapes are closed polygons that exist on a single layer. They are ustop-down hierarchical design to plan the shape and size of a cell that has nobeen placed, routed, and compacted. Most basic editing commands can opon floorplan shapes.

Cells contain an optional floorplan shape on the cell boundary layer calledfp1.Unless you define a shape on this reserved floorplan layer, IC Station uses textent of a cell for automated layout. If a boundary layer shape exists, theautomated layout tools use the shape on the boundary layer to define the outla cell for placement and routing purposes. The placement algorithms abut cethat their outlines touch. This abutment allows for cells to be defined which, wplaced, share diffusion regions (gate isolation) or other mask geometry.

For procedures to create cell outlines, refer to the section “Creating a CellOutline.”

Floorplan Row

A row is a floorplanning aid that helps you place standard cells. Rows are onspecial layer calledrow. You can select and move rows, but you cannot place aother types of instances on the row layer.

You can move selected row members along their row with the$move_in_row()function, moving the objects as far as possible to the left, right, or center,removing any gaps and overlaps.

You snap standard cells, ports, and/or devices to the nearest row with the sa$site_type Process variable and orientation. You can perform a move of selecobjects, then snap those objects that belong to a row to the nearest row that mthe requirements with the$move_on_row() function. You can snap specificobjects to the nearest row that meets the requirements with the$snap_to_row()function.

IC Station User’s Manual, v8.9_95-28

Page 129: Icstation User Manual @Vins

ICgraph Objects Object Types

sed

ae

apes,teria:

tedtent

thee

Cells with similar site numbers are usually designed to allow power to be buthrough the row by abutment of the cells on the row. A cell can be made by amember of a row if it meets the following criteria:

• The row's site number is a member of the cell's site number set.

• The cell's orientation is a member of the row's valid orientation set.

• The cell's origin is on the origin line of the row. Once a cell instance is member of the row, manipulating the row affects the instance so that throw of cells behaves as a single block.

Port shapes are handled differently from instances. If a row contains port shit cannot contain any standard cells. Port shapes must meet the following cri

• The site number of all port shapes must be the same.

• The orientation of port shapes must always be normal, regardless ofwhether the shape has been mirrored or rotated.

• The origin of port shapes must always be at the lower left corner of theshape.

Property

A property, which is a logical object, is a mechanism that you use to conveynon-graphical information to ICgraph and other tools. Properties are associawith another specific physical or logical object in the cell. Properties are persisat the cell level. Each property consists of aname, value, andowner.

Properties provide the following information:

• Identity of design object. Design Architect-IC automatically namesobjects that you place in designs by adding Inst, Net, or Pin properties toobjects. You might want to add your own set of names by modifying thInst, Net, and Pin properties.

IC Station User’s Manual, v8.9_9 5-29

Page 130: Icstation User Manual @Vins

Object Types ICgraph Objects

k,

g

ou

se

on

ort.em.

jects

newce a.

you

you

• Physical and electrical information. You use properties to specifyconnectivity, signal characteristics, and electrical attributes of circuitelements.

• Design data for interchange with other environments. Properties serveas a medium for translation of design data with netlisters, and for ICLinwhich translates GDSII stream data to IC Station.

• Backannotated design data. Properties serve as vehicles for transmittinlayout edits back to the source design. For more information aboutbackannotation of properties, refer to the Properties Reference Manual.

Theproperty nameis either a reserved word or an arbitrary, but unique, name ypick. A property name associated with a particular object cannot have twodifferent values associated with it. Property names are converted to lowercaletters. For example,NETis changed tonet. net, port, instand any property namethat begins with a dollar sign ($) is reserved for use by ICgraph.

Theproperty value is an arbitrary non-empty string that contains the informatithat you want to convey to ICgraph and other tools.

Theproperty owner is another object in the design, such as a shape, pin, or pYou can add properties, or Mentor Graphics and third-party tools can add thYou can add properties to all selectable objects except overflows, rows, andproperty text. Properties are part of the group filter so that you can group obby property names or property values.

If you add a property to an object that already owns a property with the samename as the property being added, the old property might be replaced by theproperty, depending on the value of the existing_property option. If you replalogical property value, property text associated with that property is updated

If an editing operation on the owner results in multiple objects, properties arecopied to the new objects. For example, if you copy, notch, or cut an owner,may get multiple objects. If the instance is flattened, properties owned by theinstance are discarded.

If you specify a net as the property owner, that property is not added to theselected objects, but is added to any nets with a member that is selected. If

IC Station User’s Manual, v8.9_95-30

Page 131: Icstation User Manual @Vins

ICgraph Objects Object Types

a

r

ion

ty port,a

andewed

specify a port as the property owner, that property is added to any port with member that is selected.

Adding Properties

You can use the$add_property() function to add properties to your design.

Changing Properties

You can use the$change_property()function to change the name, value, or owneof an existing property.

For information about properties related to your design flow, refer to the sect“Design Requirements.”

Port

A port, which is a logical object, includes one or more shapes or paths calledportmembers. ICgraph recognizes the name of the port as the value of the properassociated with the PHY_PIN and PIN property name that is attached to thenot the port members. Figure5-18 shows how ports define where a net exits at particular level of hierarchy. You can select and edit members of a portindividually. When you place a cell as an instance in another cell, all shapespaths that are part of a port become a single pin in the parent cell. Ports are viat the mask level, becoming a pin at the next level up in the hierarchy.

A port that has no shapes is termedunplaced. A port to which shapes have beenassigned is termedplaced. The shapes define the location and shape of theconnection.

IC Station User’s Manual, v8.9_9 5-31

Page 132: Icstation User Manual @Vins

Object Types ICgraph Objects

andngo the

Figure 5-18. Ports

You activate a port to indicate a logical owner for certain operations in the CECBC modes. You add members to the port by activating the port, then creatinew shapes and/or paths; or by selecting existing objects and adding them tport with$add_to_port(). You can use$add_net_members_to_ports()to make allmembers of a net become members of all ports on that net.

GND

Vdd

I3

I3I2

I2I1I1

I0I0

OU

TO

UT

IC Station User’s Manual, v8.9_95-32

Page 133: Icstation User Manual @Vins

ICgraph Objects Object Types

theygble

.ing atherarent

in as

Some ports are logically interchangeable; for these ports, you can specify thatare the same by assigning them aswap setcode. You specify swap sets by addinthe name of the logical swap_set property and the rules to the port. Swappaports share the same swap (swap code >0).

Pin

A pin, which can have a name, is a logical object that belongs to an instanceObjects that make up the pin are defined by the port members in the underlycell. Figure5-19 shows how you use pins to make connections to an instancethe same level of the hierarchy. When a cell is placed as an instance in anotcell, all shapes and paths that are part of a port become a single pin in the pcell. A pin is viewed at the symbolic level; a port is viewed at the mask level.

Figure 5-19. Pin Examples

You cannot select or edit members that make up a pin. You must select the pa whole, then you can edit it only by adding properties.

INV

NA

ND

4

Vdd

GNDGND

Vdd

OU

TO

UT

ININ

I3

I3I2

I2

QQ

I1I1

I0I0

OU

TO

UT

IC Station User’s Manual, v8.9_9 5-33

Page 134: Icstation User Manual @Vins

Object Types ICgraph Objects

e the

pin.

rnalpect,ered

anif it is

ss

h

andto the

not

odehs ared or

The name of a pin is the name of the port that it represents. You cannot changname of a pin directly, but you can change the name of a pin indirectly bychanging the name of the port ,and then updating in the cell that contains the

Net

A net is a logical object whose members include shapes, paths, pins, ports,overflows, and via cells. ICgraph does not use objects that have only an exteaspect when determining connectivity; it uses objects that have an internal asor both. In CBC mode, an object that has only an external aspect is not considpart of a net, even if it is on a layer that is in a routing level set. In CE mode,object that has only an external aspect is not considered part of a net, even on a layer in a connect statement.

You can access a net three ways:

• Select one of the net members in the layout.

• Use the net's handle and name in grouping operations.

• Use the net's name in the Group window.

You can select all members of a net using the$select_by_name() function, or the$select_on_selected() function when one member of the net is selected. A net'connectivity is visible in its overflow objects. You should recalculate overflowby executing the$restructure_nets()function.Restructuring netsis the process ofattempting to connect together all objects associated with a net either througother objects or through overflows.

You activate a net to indicate a logical owner for certain operations in the CECBC modes. When a net is active, the shapes, paths, and vias that are addedcell are added as members of the active net. Even if the other overflows arecurrently visible, overflows of the active net are always visible.

Shapes and paths that are not port members can be part of a net in the CE mand after extraction in the GE mode. In the CBC mode, these shapes and patmembers of a net if they are added while a net is activated, or if they are addeedited so they connect to a shape or path that is a member of a net.

IC Station User’s Manual, v8.9_95-34

Page 135: Icstation User Manual @Vins

ICgraph Objects Object Types

td netode,

ve, orr of a

ing,

e GE The

s on

rmine can

used.

A pin or port that is not connected to any other pin, port, shape, or path is noconsidered part of a net. Two pins or ports that are connected are consideremembers in the CE mode and after extraction in the GE mode. In the CBC mthese pins or ports are members of a net if they are added while a net is actiif they are added or edited so they connect to a shape or path that is a membenet.

The name of a net is based on properties with the name NET. Adding, modifyand deleting theNET property is handled differently in each editing mode.

In the GE mode, Mask ICtrace uses the same properties normally used in thmode. When extraction is run, a NET property is assigned to the logical net.value of this property is the net's name, which is determined by the NETproperties on the shapes and paths of the net. The value closest to “a”alphabetically will be the name of the net. If there are multiple NET propertiewith different values, you can add, modify, and delete the NET property onlyshapes and paths.

In the CE mode, the NET properties on shapes and paths are not used to detethe net's name. Instead, the NET property on the logical object is used. Youadd and modify the NET properties only on nets. You can also delete NETproperties on shapes and paths; this does not change the net's name.

In the CBC mode, the NET properties on shapes and paths are not used todetermine the net's name. Instead, the NET property on the logical object is

IC Station User’s Manual, v8.9_9 5-35

Page 136: Icstation User Manual @Vins

Object Types ICgraph Objects

et

Overflow

In automated layout, anoverflowis an unrouted connection between parts of a nthat are not physically connected in the layout. An overflow consists of linesegments that represent connectivity between two net objects that will beconnected in the layout. Overflows are on a single layer calledoverflow.Overflows of the active net are on a different reserved layer calledactive_overflow. Overflows are shown in yellow by default.Figure 5-20illustrates sample overflows.

Figure 5-20. Sample Overflows

IC Station User’s Manual, v8.9_95-36

Page 137: Icstation User Manual @Vins

ICgraph Objects Changing Object Attributes

dins

Changing Object AttributesTo change the attributes of an object, use$change_object_attributes(). Thisfunction supports the following object types:

• Shape• Path• Text• Property Text• Cell• Array• Row• Device• Via Object• Via Instance

When you select multiple objects, $change_object_attributes() operates on asingle object at a time; selecting many objects results in a long operation.

GroupsGroups are arbitrary collections of objects, consisting of objects that you orICgraph chooses as a logical work unit. Groups can contain both physical anlogical objects. You can edit members of a group individually. ICgraph maintathe following predefined groups:

• ALL_PHYSICAL• INSTANCES• NETS• PORTS• PROPERTIES• PROTECTED• UNPLACED• UNPLACED_INSTANCES• UNPLACED_PINS• UNPLACED_PORTS

IC Station User’s Manual, v8.9_9 5-37

Page 138: Icstation User Manual @Vins

Groups ICgraph Objects

-cellor

ins

g

u

em

can

ithpte an

lues

Each cell maintains its own collection of groups, which are retained betweenediting sessions. Groups do not exist across the hierarchy, only at the singlelevel. When you create a group, you specify each group as either persistent temporary.

• If you save the cell after you create the group, a persistent group remabetween edit sessions.

• Temporary groups are not persistent between edit sessions. Appendinitems to a group does not affect its temporary status.

• You can create temporary groups in a read-only cell. Functions that yobuild on top of temporary groups can operate in read-only cells. Forexample,$select_by_name() and$select_on_selected().

You can create groups through:

• Selection.

• Operations that copy and filter another group.

• Boolean composition of two groups.

• Operations that do checks on selected objects and (optionally) place thinto a user-defined group if they meet certain criteria. For example,$check_instances()checks the placement of selected instances and thenplace any cells with placement violations into a user-defined group.

You can select, unselect, highlight, protect, and compose grouped objects wother groups. With the$filter_group()function, you can create a subset of a grouthat contains objects that meet the requirements that you specify. If you deleobject that is a member of a group, it is removed from the group.

You can add text objects to a group based on the object’s layer and string vawith the$group_text() function. For more information, see theAdding TextObjects to a Group section.

For instructions about creating groups, refer to the procedure, ““Creating Groups”on page 12-93.”

IC Station User’s Manual, v8.9_95-38

Page 139: Icstation User Manual @Vins

ICgraph Objects Selection

tion

The be

thatpen.more

iscted,ction.

eled

pedke

SelectionIn ICgraph, you select objects that you want to manipulate in some way. Selecis affected by select sets, active context, layer visibility, the select filter, andpoint-select mode.

Select Sets

Selection in ICgraph follows the paradigm of an open and closed select set. current selection is the current set of selected items. The current selection canopen or closed. ICgraph starts with an open, empty, current selection. Itemsyou select are added to the current selection only if the current selection is oThe current selection is closed when you execute a function that uses one orof the selected items.

After the current selection is closed, the items in the current selection remainselected so other functions can operate on them. When the current selectionclosed and a new item is selected, all items in the current selection are unselethe selection is opened, and the new item is the only item in the current seleYou can use the$reselect() function to recover previously selected items.

You can use the$reopen_selection() function to add more items to a previouslyclosed current selection. You can use the $reselect() function to reopen andreselect a closed current selection.

Selection and the Active Context

You can select only objects in the active context cell. Objects show their stat(selected or highlighted) only when they are in the active context. This is calcontext-based display of selection.

Warning

When you select an object, the object template for that object tychanges to match that object’s attributes. If you get unexpecteresults when adding an object, check the object template to masure it contains the attributes you expect.

IC Station User’s Manual, v8.9_9 5-39

Page 140: Icstation User Manual @Vins

Selection ICgraph Objects

in

ct's

thea

s are

ces,

fea,

the

Selection and Display Attributes

Selected objects are displayed with theirselected display attributes only whenthey are in the active context cell. You define the selected display attributes your Process. Objects are displayed with theirnormal display attributes in otherwindows that have a different context.

Selection and Layer Visibility

If an object is selected, and you subsequently disable the visibility of that objelayer, the object is still displayed. The visibility of layers and protectionmechanisms help you to isolate single items for selection. You can also use $select_one() function, which goes through the current select set and selects single item each time that you execute the function.

The Select Filter

Selecting is simplified by a global select filter template. The select filter inICgraph establishes the criteria for object selection. The specified object typeset to selectable and the area relationships used for selection are also set.Selection is based on the following criteria:

• Object types. Valid object types are shapes, paths, parameterized deviinstances, pins, overflows, arrays, rows, and property text.

• Area relationship. Whether to select objects that are inside or outside othe defined area, whether to select objects that intersect the defined arand whether surrounding objects are selected.

• Autoselection. Whether to select newly created objects.

The select filter settings remain in effect until you change them or you leave edit session. For instructions about changing the select filter, refer to theprocedure, “Using the Select Filter.”

IC Station User’s Manual, v8.9_95-40

Page 141: Icstation User Manual @Vins

ICgraph Objects Selection

ases,vior.

oint.

tion is

d.

t is

Selection Options

Three selection options allow you to customize selection behavior to fit yourpreferred selection model. These options work independently and, in some ccan be combined to produce a selection model different from the default behaThese options are fully described in the following sections.

• Point-select Mode. Determines which object is selected when a pointselection occurs.

• Unselect-empty Mode. Determines whether currently selected objectsremain selected when a point selection selects zero objects.

• Target mode. Determines whether target highlighting occurs as apredictive action of a point selection.

An additional setup option allows you to control reset behavior for the basepThis option is set by the$set_point_select_reset_basepoint() function and is alsocalled by the$setup_select_filter() function.

Point-Select Mode

Point-select mode determines which objects are selected when a point selecoccurs; point-select mode is always secondarily applied after the select filterapplied. Point-select mode is specified by the$set_point_select_mode()function;this function is also called by the$setup_select_filter() function.

The four possible point-select modes are:

• Select-closest. The object closest to the specified point is selected.

• In-closest. The closest object surrounding the selection point is selecte

• Out-closest. The closest object that does not surround the selection poinselected.

• In-all . All objects that surround the selection point are selected.

IC Station User’s Manual, v8.9_9 5-41

Page 142: Icstation User Manual @Vins

Selection ICgraph Objects

.

ate anct

l

njects.

oting

tablet

Unselect Empty Mode

Unselect-empty mode determines whether objects selected prior to a pointselection remain selected if the point selection fails to select any new objects

The unselect-empty mode and point-select mode can be used together to creUnselect function using the mouse button. For example, to create an Unselefunction, you would set the following options:

• Set Point-select mode to the in-closest mode.

This allows you to click in an unoccupied portion of the screen withoutselecting an object.

• Set Unselect-mode to On

When a point-selection fails to select an object, this mode unselects alcurrently selected objects.

As a result of combining these two selection options, clicking the mouse in aunoccupied portion of the screen results in the unselection of all selected ob

Target Mode

Target mode refers to a targeting action that uses distinct display attributes tassist you with selection. Targeting is separate and distinct from the highlighfeature described in section“Highlighting” on page 5-44.

Target mode predicts whether an object is selectable by highlighting the selecobject as the cursor moves into the proximity of the object; if the object is noselectable, it is not highlighted. Selectable objects are those objects thatwould beselected by the$select_area() function if a single point was supplied to it.

IC Station User’s Manual, v8.9_95-42

Page 143: Icstation User Manual @Vins

ICgraph Objects Protection

ct by

lected

e arelace

ures

The selectability of an object is determined by the combined settings of the$setup_select_filter() and$set_point_select_mode() functions:

• The selection filter, specified by the$setup_select_filter() function,determines the kinds of objects that are open for selection.

• The select mode, specified by the$set_point_select_mode() function,determines the required proximity of the cursor to the object.

For more complete information on selectability, refer to “Selection.”

You can change/set the appearance of the display attributes for the target objesetting the layer appearance for the target_attr_layer layer using the$set_layer_appearance()function.

Target mode is specified by the$set_target_mode()function. This function is alsocalled by the$setup_ic() function.

ProtectionProtection is a mechanism that lets you prevent further selection of specificobjects. An object in the protect set must be unprotected before it can be seagain. All protected objects remain protected until you issue an$unprotect_all()function.

Protection of objects is not persistent; when a cell is saved, the protection ofobjects against selection is not saved. When the cell is reopened for edit, therno protected objects. A protected object will not be moved by an automatic pand route tool.

For instructions about protecting and unprotecting objects, refer to the proced“Protecting Objects From Selection” and “Unprotecting Objects.”

IC Station User’s Manual, v8.9_9 5-43

Page 144: Icstation User Manual @Vins

Highlighting ICgraph Objects

text.

butin

the

sign

ith

ware

of

orating

HighlightingICgraph objects can be highlighted independent of selection in the active conHighlighted objects use the display attributes defined for highlighting, notselection.

Selection has priority over highlighting; highlighted objects can be selected, selected objects cannot be highlighted. Highlighting is additive; objects remahighlighted until they are selected or unhighlighted. For instructions abouthighlighting objects, refer to the procedure “Highlighting Objects.”

Highlighting Nets

You can select a net in the active context and that net will highlight throughouthierarchy.

UndoabilityAn undoable function signals the application to save the current state of the debefore execution. Functions have three kinds of undoability:

• Undoable. The function can be undone, returning the application to itsformer state.

• Transparent. The function cannot be undone, but it does not interfere wundoing functions issued before the transparent function. Examples oftransparent functions include view changes, functions that change user(for example, key definitions), and window resizing.

• Blocking. The function cannot be undone, and it prevents the undoing functions issued before the blocking function. Examples of blockingfunctions include hierarchical operations, simulation solutions, analysiscalculations, and operations that change references (for example, updparts or symbols).

IC Station User’s Manual, v8.9_95-44

Page 145: Icstation User Manual @Vins

ICgraph Objects Undoability

rent.

how

bent of

tionsftted.

theion

Most editing operations are undoable, and most viewing functions are transpaWhen a function is undoable, it is always redoable. The$redo()function will undothe effect of the$undo() function.

With ICgraph, you can use any number of undo levels. You can also specifymuch undo information is to be kept by using the$set_undo_level() function. Alevel of 1 allows one function to be undone, a level of 2 allows two functions toundone, and so on. The higher the number of undo levels, the larger the amousystem memory you will need.

If you undo a dofile, an AMPLE function (such as one called by a menu selecor function key), a menu item definition, or a key definition; the entire dofile iundone. The $undo() function is based on the paradigm that the collection ooperations in a macro is treated as a single undoable action. If any part is noundoable, none of the dofile is undoable. The undo information is not transcrip

For information on whether a particular IC Station function is undoable, checkreference manual for that particular function. The line directly below the functname contains the type of undoability for that function.

IC Station User’s Manual, v8.9_9 5-45

Page 146: Icstation User Manual @Vins

Undoability ICgraph Objects

IC Station User’s Manual, v8.9_95-46

Page 147: Icstation User Manual @Vins

ithin at beges.nd

rce

the

Chapter 6Engineering Change Orders (ECO)

IntroductionAn engineering change order (ECO) describes a change or changes made wlarge system, such as the logic that drives an IC layout. These changes musdescribed so that other, dependent parts of the system can react to the chanWithin ICgraph, ECO classifies the changes, compares the old to the new, amakes most of the changes for the layout designer.

TerminologyIn the following discussions, the phraseengineering change order describes achange or the record of a change made to a logic source. The termECOdescribesthe ICgraph functionality that you use to report changes made to a logic souand make the corrections to the layout.

Environmental RequirementsThe following requirements must be met before you can run ECO:

1. A logic source with an EDDM design viewpoint must be established forlayout.

2. The logic window must be open and visible.

3. The cell that you are editing must be in the CBC mode.

IC Station User’s Manual, v8.9_9 6-1

Page 148: Icstation User Manual @Vins

ECO Process Flow Engineering Change Orders (ECO)

t been

icprobee

ECO Process FlowA simplified ECO process flow is shown inFigure 6-1. This process flow assumesthat a change to a logic source has occurred and these changes have not yeapplied to the layout associated with the logic source.

Figure 6-1. ECO Process Flow

Logic-Layout RelationshipThe information that describes the relationship between an instance in a logsource (schematic) and the corresponding layout object, is stored in the crosstable. The crossprobe table is persistent with the design and is stored with thtop-level cell.

Crossprobe tables are created with one of the following methods:

The logic source has changed

The layout is synchronized

Report

Run ECO

Add New Instances and Ports

Route Overflows

Delete Instances,Deleted Ports, and

Changed Properties

IC Station User’s Manual, v8.9_96-2

Page 149: Icstation User Manual @Vins

Engineering Change Orders (ECO) A Logic Change Example

R2,

acedges

• Running Layout Versus Schematic (LVS),

• Using Schematic Driven Layout (SDL), or

• Using the $set_logical_correspondence() function.

A Logic Change ExampleFigure 6-2 shows an example of a logic change.

Figure 6-2. Logic Change Example

In the example shown inFigure 6-2, the logic on the left (Logic Version 1) hastwo resistors: R1 and R2. The logic was later modified by removing resistor as shown on the logic on the right (Logic Version 2). This change to the logiccomprises an engineering change order. If the IC layout has already been placcording to Logic Version 1, the layout must be updated to reflect the chan

Q4

Logic Version 1

C

B

E

R2500

R1500

Q4

Logic Version 2

B

R1500

C

E

IC Station User’s Manual, v8.9_9 6-3

Page 150: Icstation User Manual @Vins

A Logic Change Example Engineering Change Orders (ECO)

on amaticareas

e

s this

made to Logic Version 2. Detecting such changes, and updating them for thelayout designer, is at the heart of ECO.

Historically, logic designers communicated changes by marking the changeshardcopy version of the schematic, then hand-delivered the marked-up scheto the layout designer. The layout designer was expected to find the affectedin the layout and resolve the changes. ECO frees the layout designer fromresolving all of a layout’s changes. The layout is updated automatically by thECO function except for added instances, ports, and net routing. The layoutdesigner can then use the normal editing functions of the IC Station tools tocorrect the layout.

Figure 6-3 shows the layout associated with Logic Version 1.

Figure 6-3. Version 1 Logic and Layout

In Logic Version 1, R2 is connected to pin C of Q4. In Logic Version 2, R2 habeen removed from the design. ECO assists the layout designer in detecting

Q4

Logic Version 1

B

R2500

R1500

C

E

Layout Version 1

Q4

IC Station User’s Manual, v8.9_96-4

Page 151: Icstation User Manual @Vins

Engineering Change Orders (ECO) Changes that ECO Detects

he

o

o it,w

ogic

change, as well as correcting the layout to reflect the change. ECO reflects tlogic change in a new version of the layout, as shown inFigure 6-4.

Figure 6-4. Version 2 Logic and Layout

With the resistor R2 removed from the logic, the layout designer uses ECO tmodify the layout so that R2 is also removed from the layout. Likewise,connectivity is modified such that pin C on Q4 now has an overflow attached tshowing that some routing needs to occur between pin C and the object it noconnects to (R1).

Changes that ECO DetectsECO detects, reports, and aids in the resolution of the following changes to a lsource (schematic):

• Deletion of objects

Q4

Logic Version 2

B

R1500

C

E

Layout Version 2

IC Station User’s Manual, v8.9_9 6-5

Page 152: Icstation User Manual @Vins

Viewpoint Usage Engineering Change Orders (ECO)

is

CO

n.

y the

l

on.

• Addition of new objects

• Modification of properties on objects

Viewpoint UsageThe ECO function gathers connectivity information from the viewpoint, whichcurrently attached to the open layout cell. If you want to update the layout tomatch a different viewpoint, you must set the logic source before running the Efunction. To set the logic source, use theECO Logic > Setpalette menu item. SeeFigure 6-5. In addition, the ECO function requires that the logic window be opeIf it is not open, you are prompted to open it when you run ECO.

Figure 6-5. Set Logic Source Dialog Box

Running the ECO FunctionThe $run_eco() function identifies the differences between a layout created bschematic driven layout process and a schematic viewpoint. ECO is partiallyautomated. Some differences are corrected automatically, others are not. Aldifferences are written to a report file.

The ECO process goes through four main phases:

1. Prompts you for some control options.

2. Gathers connectivity and property information.

3. Compares the old and new schematic connectivity and property informati

IC Station User’s Manual, v8.9_96-6

Page 153: Icstation User Manual @Vins

Engineering Change Orders (ECO) Running the ECO Function

ustfor

t it isne is

ou

Youu cang to

4. Generates a report file.

Starting the ECO Process

When running ECO, an EDDM schematic viewpoint associated with the cell mbe open to run properly. If the schematic window is not open, ECO opens oneyou. If the schematic window is already open, ECO checks to make sure thathe latest version of the schematic. If the version does not match, the latest oloaded.

Prompting for Options

After the schematic viewpoint is loaded, you are prompted to choose what ywant updated and what objects to work on. SeeFigure 6-6. You can choose tocompare both connectivity and properties, or compare only one or the other.can choose to work only on selected schematic instances or all instances. Yoalso choose to run ECO without updating the layout but with the results gointhe ECO report only.

Figure 6-6. Run ECO Dialog Box

IC Station User’s Manual, v8.9_9 6-7

Page 154: Icstation User Manual @Vins

Running the ECO Function Engineering Change Orders (ECO)

ese, thevicessed

ith, thised done

e

t the

hisoreties byThe

ng is

Gathering Connectivity Information

The connectivity information is gathered from the new schematic. This includall instances and nets, and properties attached to the instances. In this phasfilter function is used so that the ECO functions have the same mapping of deproperties from schematic to layout, as SDL uses. This connectivity is then pato the main ECO function for processing.

Comparing Old and New Connectivity

Once the connectivity and property information is gathered, it is compared wthe existing layout. If the schematic name and the layout name are the samefunction will only match two objects. The four types of objects that are matchand updated are nets, instances, ports, and pins. Matching and updating arein the following sequence:

1. Ports in the layout are matched against the new connectivity.

Any signal port that is not found in the new connectivity is deleted. If thport’s net is also deleted, then the port member shapes are deleted.

2. If any MOS instances are present in the layout, they are checked againsnew connectivity.

Any MOS instance name not found in the new connectivity is deleted. Tmay involve completing the equivalent of one or two split operations befthe delete. For MOS instances that match, the width and length properare compared with the new schematic. Any differences are addressedregenerating the device(s) with the schematic width and length values.net connections to the MOS instance are then updated if needed. Thisupdate may also cause a split to occur if an existing source/drain sharino longer legal in the new connectivity.

Note

You can mark any instances asignoredby ECO by using theECO> MrkIgn palette menu item.

IC Station User’s Manual, v8.9_96-8

Page 155: Icstation User Manual @Vins

Engineering Change Orders (ECO) Running the ECO Function

ey

outor an

withice),

eted.

blee of

cesThisMOS

ns:

repes

3. If any fixed instances or non-MOS devices are present in the layout, thare checked against the new connectivity.

Any connectivity-bearing instance (block, standard, external) in the laythat does not match a new schematic instance is deleted; see Step 4 fexception to this. Vias, feedthrus, and other non-connectivity relatedinstances are essentially ignored by the ECO process. If any deviceinstances are matched, then their properties are checked against theschematic instances and the appropriate regenerations are performedthe new properties. For all the matching instances (device and non-devthe net connection to each pin is checked and updated if necessary.

4. If any nets in the layout do not have members at this point, they are del

Even if the new connectivity calls for the existence of the net, it is possithat a net is deleted at this stage. For example, this would happen if nonthe instances connected to the net were in the layout yet.

5. Finally, the function updates the crossprobing information so that instanand nets with the same name in layout schematic correctly crossprobe.includes the crossprobing between schematic transistor instances anddevice gate pins.

Changes Made by ECO

When noting schematic changes, the ECO function takes the following actio

• A port is added to the schematic. The new port is mentioned in the ECOreport.

• A port is removed from the schematic. The layout port with the samename is deleted from the layout. The port member shapes and paths adeleted if the port net is no longer in the layout. Otherwise, member shaand paths remain in the layout as members of the port net.

• An instance is added to the schematic. The new instance is mentioned inthe ECO report.

IC Station User’s Manual, v8.9_9 6-9

Page 156: Icstation User Manual @Vins

Running the ECO Function Engineering Change Orders (ECO)

. Ifnect

y

at

ortor

• An instance is removed from the schematic.The layout instance with thesame name is deleted from the layout. An exception to this is when theinstance is marked to be ignored by using theECO > MrkIgn palette menuitem.

• A property of the schematic instance is changed. If the matching layoutinstance is an AMPLE device, the device is regenerated with the newproperties. The changed property is mentioned in the ECO report.

• A schematic instance pin is attached to a different net. The matchinglayout pin connects to the new net. If necessary, the new net is createdthe old net is not attached to any layout pins, the old net and its interconare deleted.

ECOdoes not do the following:

• Add new instances in the schematic to the layout

• Add new ports in the schematic to the layout

• Add new nets in the schematic to the layout if at least one instance theconnect to is in the layout after the ECO update is finished.

Ignoring Unmatched Instances

By default, running ECO deletes any layout instances that do not match aschematic instance. To prevent this deletion from occurring, you canmark theinstances to be ignored. The palette menu itemsECO > MrkIgn andECO >UnMark allow you to control what ECO does with layout instances that areunmatched in the schematic.ECO > MrkIgn marks the selected instances so thsubsequent running of ECO does not delete those instances.ECO > UnMarkremoves themark from the selected instances.

Splitting MOS Device Instances

A few changes made by ECO may result in thesplitting of mos device instancesthat use the$mos generatorin ICdevice. This is due to the fact that this generatcan produce a single layout instance that matches multiple schematic transis

IC Station User’s Manual, v8.9_96-10

Page 157: Icstation User Manual @Vins

Engineering Change Orders (ECO) Running the ECO Function

instances. The $mos generator instance includes shared diffusion betweenmultiple transistors. For example, the $mos generator instance shown inFigure 6-7has three gates implementing schematic transistor instancesm1, m2,andm3.

IC Station User’s Manual, v8.9_9 6-11

Page 158: Icstation User Manual @Vins

Running the ECO Function Engineering Change Orders (ECO)

Figure 6-7. MOS Instances Before Deletion

If the schematic is changed by deleting the m2 instance, ECO must split theinstance before deleting the m2 instance.Figure 6-8 shows the result of runningECO.

IC Station User’s Manual, v8.9_96-12

Page 159: Icstation User Manual @Vins

Engineering Change Orders (ECO) Running the ECO Function

erente

e thes

Figure 6-8. MOS Instances After Deletion

A similar situation occurs if the schematic changed resulting in thedrain pin ofm1 being connected to a different net other than thesource pinof m2. This forcesthe sharing between m1 and m2 to break so that the pins can connect to diffnets. In this case, ECO performs the split and attaches the m1 drain pin to thcorrect net.

The resulting layout isshortedmaking the two pins overlap after the split. For thlayout to be LVS correct, the two overlapped pins must be separated. UsingECO > Check Shorts All palette menu item can identify these overlapping pinfor you.

Generating a Report File

When the ECO function is run, it writes a report to a file with the namecellname_eco.rpt.Cell_name is the name of the cell you are working on. For

IC Station User’s Manual, v8.9_9 6-13

Page 160: Icstation User Manual @Vins

Running the ECO Function Engineering Change Orders (ECO)

were theew

on.CO:

example, if you are editing a cell calledinv, the ECO report is generated asinv_eco.rpt.

This file contains a list of the property changes and the layout instances thatdeleted, and a list of schematic instances and ports that need to be added tolayout. The deleted instances are a result of non-matching instances in the nschematic. To read the report, you use theECO > Report palette menu item. TheReport menu item opens a Notepad window with the report. SeeFigure 6-9.

Figure 6-9. A Sample ECO Report

The Report File

The report file is generated in the same directory as the cell you are workingThe following messages may appear in the report file produced by running E

• For a new schematic port:Port port_name is in source but not in layout

Port_name is the schematic port name.

• If a port is deleted from the layout:

IC Station User’s Manual, v8.9_96-14

Page 161: Icstation User Manual @Vins

Engineering Change Orders (ECO) Running the ECO Function

e.

Deleted lyout port: port_name

Port_name is the layout port name.

• For a new schematic instance (except for mos transistors):Instance inst (cell) is in source but not in layout

Inst is the schematic instance name.Cell is the cell or generator nameexpected to be used for this instance.

• For a mos transistor schematic instance:Transistor instance inst is in source but not in layout

Inst is the schematic instance name.

• If a layout instance, except for mos transistors, is deleted from thelayout:

Deleted layout instance: inst (cell)

Inst is the instance name.Cell is the cell or generator name of the instanc

• If a mos transistor instance is deleted from the layout:Deleted transistor from layout: inst

Inst is the layout transistor name.

• Property change on a schematic instance implemented with anAMPLE device:

Changed property name on inst (cell) from old to new

Name is the property name.Inst is the instance name.Cell is the generatorname.Old is the previous property value.New is the new property value.

• Width property changed on a mos transistor instance:Changed transistor width (inst): from old to new

Inst is the transistor instance name.Old is the previous width.New is thenew width.

• Length property changed on a mos transistor instance:Changed trasistor length (inst): from old to new

IC Station User’s Manual, v8.9_9 6-15

Page 162: Icstation User Manual @Vins

Editing After Running ECO Engineering Change Orders (ECO)

O

PLE

hat

s,

hesing

the

o bed

rt

ons

Inst is the transistor instance name.Old is the previous length.New is thenew length.

Editing After Running ECOThe following are suggestions to help you check your layout after running ECand for preparing to complete any necessary layout changes:

• The process of updating pin connections to nets and properties on AMdevice instances may result in layout shorts, open connections and/ordesign rule violations. To identify these problems, it is recommended tyou run the ICrules DRC checker (ECO > DRC Check) and theICshortchecker (ECO > Check Shorts All)functions after running ECO.Run the $check_overflows() function to identify newly created overflowwhich represent open connections.

• A number of changes, which includes changing the net attached to anexisting layout pin, may result in a net interconnect that no longer matcthe intended connectivity. You can apply all of the normal ICgraph editcommands to change the interconnect.ECO > TrimNts palette menu itemenables you to delete whole sections of interconnect that do not matchnew connectivity.

• The ECO report file indicates the list of instances and ports that need tadded to the layout. The normal SDL functions for placing instances anports should be used to add the new items to the layout.

ECO User InterfaceThe ECO palette menu offers direct access to related editing, DRC, and ShoChecker functions. The following subsections list these functions.

Edit Commands

Editing commands are available in the ECO palette menu. The editing functiavailable in the ECO palette are:

IC Station User’s Manual, v8.9_96-16

Page 163: Icstation User Manual @Vins

Engineering Change Orders (ECO) ECO User Interface

ch as

as

For additional editing commands, use the other IC Station palette menus, suthe Easy Edit, Edit, and Expert Edit palette menus.

Usage information for these commands is located in theIC Station User’sManual. For more information on these commands, refer to theIC StationReference Manual.

DRC Commands

DRC commands are available in the ECO palette menu. The DRC functionsavailable in the ECO palette are:

For additional DRC commands, use the other IC Station palette menus, suchthe Verifdp (DRC) and ICrules palette menus.

• $add_shape()

• $add_path()

• $add_route()

• $add_via()

• $move()

• $move_relative()

• $copy()

• $copy_relative()

• $flip_on_axis()

• $rotate()

• $delete()

• $autoroute_overflow()

• $trim_nets

• $check_drc()

• $select_drc_check()

• $set_drc_first()

• $set_drc_next()

• $view_drc()

IC Station User’s Manual, v8.9_9 6-17

Page 164: Icstation User Manual @Vins

ECO User Interface Engineering Change Orders (ECO)

Usage information for these commands is located in theIC Station User’sManual. For reference information on these commands, please refer to theICStation Reference Manual.

Short Checker Commands

Short checker commands are available in the ECO palette menu. The shortchecker functions available in the ECO palette appear in the following table:

For additional short checker commands, see the Short Checker Palette Menudocumented in theIC Station User Interface Manual.

Usage information for these commands is in theIC Station Reference Manual.

• $check_shorts_all()

• $check_shorts_selected()

• $set_drc_first()

• $set_drc_next()

• $view_drc()

• $delete_drc_current()

IC Station User’s Manual, v8.9_96-18

Page 165: Icstation User Manual @Vins

Int,

final

r

er IC

er

ch nett

Chapter 7Capacitance Driven Layout (CDL)

Capacitance-driven layout (CDL) is a layout methodology used in IC design.the CDL process flow, parasitic capacitances are evaluated during placemenglobal routing, and final routing. After the placement or global routing of an ICdesign is complete, parasitic capacitances are estimated for each net. After routing, the lumped parasitic capacitance is calculated using ICextract.

The following terms and acronyms are used in this discussion of CDL:

CBC: Correct By Construction editing, no Design Rule Check (DRC) errors oconnectivity changes can occurCE: Connectivity Editing, can change connectivity and violate DRCDRC: Design Rule CheckDVE-IC : Design Viewpoint Editor-ICICtrace(D): LVS at the pin and instance levelICextract(D) : Parasitic extraction at the pin and instance levelLVS: Layout versus schematic verification

With CDL, you can:

• Assign a target capacitance to each net in the design.

• Perform an estimation of the capacitance on each net in the design aftlayout placement.

• Perform an estimation of the capacitance on each net in the design aftglobal routing.

• Report the estimated placement capacitance, estimated global routingcapacitance, and the extracted lumped capacitance associated with eain the design. These reports can be used as input files to specify targecapacitances.

IC Station User’s Manual, v8.9_9 7-1

Page 166: Icstation User Manual @Vins

How CDL Calculates Capacitance Capacitance Driven Layout (CDL)

tsn

t and

inn

nt.

en

• Assign nets a priority from 1 to 100. Using CDL, you can reprioritize neafter placement, global routing, or final parasitic extraction depending owhether or not the results meet expectations.

• Protect or unprotect the priority of each net in the design.

The following sections describe how capacitance is calculated after placemenglobal routing, the requirements for CDL, a process flow scenario, and anexample of how to setup IC Station for CDL usage.

How CDL Calculates CapacitanceThe CDL capacitance estimate calculation is based on information containedthe Rule file. The following ICverify operations are used. For more informatioabout certain operations, refer to the Standard Verification Rule Format Manual.

CAPACITANCE ORDER layer1 layerNlayer1/layerN — Defines the vertical order from bottom layer to top layer.

CAPACITANCE INTRINSIC layer1 [In1 In2] DIRECTlayer1 — Specifies the routing layer or routing level.In1 — Specifies the intrinsic capacitance area proportionality constant.In2 — Specifies the intrinsic capacitance perimeter proportionality consta

CAPACITANCE NEARBODY <layer> [Nn1 Nn2 Nn3] DIRECTLayer — Specifies the routing layer or routing level.Nn1 — Specifies the nearbody capacitance proportionality constant.Nn2 — Specifies the maximum separation between two parallel edges.Nn3 — Specifies a dimensionless exponent for the actual distance betwe

two parallel edges.

IC Station User’s Manual, v8.9_97-2

Page 167: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) How CDL Calculates Capacitance

net

net

tical

d

d

se

base

Estimated Placement Capacitance

The following values must be defined to calculate the estimated placementcapacitance:

• H — Height of a bounding box that encloses the pins associated with ain user units.

• W — Width of a bounding box that encloses the pins associated with ain user units.

• WPH — Width of the preferred horizontal routing layer with the mostcapacitance.

• WPV — Width of the preferred vertical routing layer with the mostcapacitance.

• In1PH — Intrinsic area capacitance corresponding to the preferredhorizontal layer with the most capacitance.

• In1PV — Intrinsic area capacitance corresponding to the preferred verlayer with the most capacitance.

• In2PH — Intrinsic perimeter capacitance corresponding to the preferrehorizontal layer with the most capacitance.

• In2PV — Intrinsic perimeter capacitance corresponding to the preferrevertical layer with the most capacitance.

• ver_cap_1 — Vertical area capacitance parameter converted to databaunits.

• ver_cap_2 — Vertical perimeter capacitance parameter converted todatabase units.

• hor_cap_1 — Horizontal area capacitance parameter converted to dataunits.

IC Station User’s Manual, v8.9_9 7-3

Page 168: Icstation User Manual @Vins

How CDL Calculates Capacitance Capacitance Driven Layout (CDL)

o

s

ferredons

net.s.dingtion is

• hor_cap_2 — Horizontal perimeter capacitance parameter converted tdatabase units.

• unit_capacitance — Unit capacitance factor specified in the Rule file a“unit capacitance.”

• rules_unit_length — User unit length specified in the Rule file as “unitlength.”

• process_unit_length — User unit length specified in the Process as“$unit_length.”

• precision — Database resolution that is specified in the Process as“$precision.”

The capacitance calculation after placement is an estimate based on the prerouting layers with the most capacitance in the vertical and horizontal directiand one-half the perimeter of a bounding box that encloses the pins of a givenThe calculation is done using the database precision specified in the ProcesTherefore, the intrinsic layer parameters and the width and height of the bounbox that encloses the pins must be converted to database units. The calculaas follows:

First, convert capacitance parameters to database units:

ver_cap_1 =(In1PV*unit_capacitance*1.0e12*rules_unit_length*rules_unit_length)(process_unit_length*process_unit_length*precision*precision)

ver_cap_2 =(In2PV*unit_capacitance*1.0e12*rules_unit_length)(process_unit_length*precision)

hor_cap_1 =(In1PH*unit_capacitance*1.0e12*rules_unit_length*rules_unit_length)(process_unit_length*process_unit_length*precision*precision)

IC Station User’s Manual, v8.9_97-4

Page 169: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) How CDL Calculates Capacitance

tf 3,d as

l,

hor_cap_2 =(In2PH*unit_capacitance*1.0e12*rules_unit_length)(process_unit_length*precision)

The total placement capacitance is given by:

Cplacement_estimate_total = (C1v + C1h +C2v + C2h)*1.0e-12F

where,

C1v = (H*precision)*(WPV*precision)*ver_cap_1 C1h = (W*precision)*(WPH*precision)*hor_cap_1 C2v = ((H*precision)+(WPV*precision))*2*ver_cap_2 C2h = ((W*precision)+(WPH*precision))*2*hor_cap_2

Estimated Placement Capacitance Example

The following is defined in the Process:

$precision = 1000$unit_length = 1E-6

The following lines occur in the Rule file:

UNIT LENGTH 1E-6UNIT CAPACITANCE 1E-12CAPACITANCE ORDER metal1 metal2CAPACITANCE INTRINSIC metal2 [.0000072 .0000528]CAPACITANCE INTRINSIC metal1 [.0000130 .0000522]

The following routing level definition is defined in the Process. This statemendefines routing level 1 as m1; it is the horizontal preferred layer, has a width ouses layer metal1, and avoids blockage layer block1. Routing level 2 is definem2, it is the vertical preferred layer, has a width of 4, uses layer metal2, andavoids blockage layer block2. The routing level definition is as follows:

$routing_level = [["m1", @horizontal, 3, "metal1", "block1"], ["m2", @vertica4, "metal2", "block2"]]

IC Station User’s Manual, v8.9_9 7-5

Page 170: Icstation User Manual @Vins

How CDL Calculates Capacitance Capacitance Driven Layout (CDL)

g

s.

Consider a net that has a pin at (203.0, 1270.0) and a pin at (357.0, 710.0).Therefore,

H=560 and W=154ver_cap_1 = (.0000072*1e-12*1e12*1e-6*1e-6)/(1e-6*1e-6*1000*1000) =7.2e-12ver_cap_2 = (.0000528*1e-12*1e12*1e-6)/(1e-6*1000) = 5.28e-8hor_cap_1 = (.0000130*1e-12*1e12*1e-6*1e-6)/(1e-6*1e-6*1000*1000) =1.3e-11hor_cap_2 = (.0000522*1e-12*1e12*1e-6)/(1e-6*1000) = 5.22e-8C1v = (560*1000)*(4*1000)*7.2e-12 = .016128C1h = (154*1000)*(3*1000)*1.3e-11 = .006006C2v = ((560*1000) + (4*1000))*2*5.28e-8 = .0595584C2h = ((154*1000) + (3*1000))*2*5.22e-8 = .0163908

Cplacement_estimate_total = (C1h + C1v +C2h + C2v)*1.0e-12F

Cplacement_estimate_total = (.016128 + .006006 + .0595584 +.0163908)*1.0e-12F

Cplacement_estimate_total = .098pF or 98fF

Estimated Global Routing Capacitance

The following values must be defined to calculate the estimated global routincapacitance:

• THLn — Total Horizontal Length for a given routing level n in user unit

• TVLn — Total Vertical Length for a given routing level n in user units.

• Wn — Width of the given routing level n in user units.

• In1n — Intrinsic area capacitance for a given routing level n.

• In2n — Intrinsic perimeter capacitance for a given routing level n.

• Nn1n — Nearbody capacitance for a given routing level n.

IC Station User’s Manual, v8.9_97-6

Page 171: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) How CDL Calculates Capacitance

n.

s

.

for

for

total

• Nn2n — Maximum separation between edges for a given routing level

• Nn3n — Dimensionless exponent for a given routing level n.

• unit_capacitance — Unit capacitance factor specified in the Rule file a“unit capacitance.”

• rules_unit_length — User unit length specified in the Rule file as “unitlength.”

• process_unit_length — User unit length specified in the Process as“$unit_length.”

• precision — Database resolution that is specified in the Process as“$precision.”

• area_capn — Area capacitance parameter in database units for level n

• perimeter_capn — Perimeter capacitance parameter in database unitslevel n.

• nearbody_capn — Nearbody capacitance parameter in database unitslevel n.

The capacitance calculation after global routing is an estimate based on the length of a net in each of n routing levels. The calculation is as follows:

For each routing level n DO{Cglobal_route_estimate_total=C1h + C1v + C2h + C2v + C3h + C3v}

where,

C1h = (THLn*precision)*(Wn*precision)*area_capn C1v = (TVLn*precision)*(Wn*precision)*area_capn C2h = (THLn*precision)*2*perimeter_capn C2v = (TVLn*precision)*2*perimeter_capn C3h = (THLn*precision)*nearbody_capn C3v = (TVLn*precision)*nearbody_capn

IC Station User’s Manual, v8.9_9 7-7

Page 172: Icstation User Manual @Vins

How CDL Calculates Capacitance Capacitance Driven Layout (CDL)

e net

and,

area_capn =(In1n*unit_capacitance*rules_unit_length*rules_unit_length)(process_unit_length*process_unit_length*precision*precision)

perimeter_capn =(In2n*unit_capacitance*rules_unit_length)(process_unit_length*precision)

nearbody_capn =(Nn1n*Nn2n-Nn3*unit_capacitance*rules_unit_length)(process_unit_length*precision)

Estimated Global Routing Capacitance Example

The following is defined in the Process:

$precision = 1000$unit_length = 1E-6

The following lines occur in the Rule file:

UNIT LENGTH 1E-6UNIT CAPACITANCE 1E-12CAPACITANCE ORDER metal1 metal2CAPACITANCE INTRINSIC metal2 [.0000072 .0000528]CAPACITANCE INTRINSIC metal1 [.0000130 .0000522]CAPACITANCE NEARBODY metal2 [.000005 10 1]CAPACITANCE NEARBODY metal1 [.000004 10 1]

The routing level definition is the same as the previous example.

Consider a net that has a pin at (203.0, 1270.0) and a pin at (357.0, 710.0). Thwas routed in different channels. The results are:

channel 1: direction: horizontal length = 50 channel 2: direction: vertical length = 550 channel 3: direction: horizontal length = 150

IC Station User’s Manual, v8.9_97-8

Page 173: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) How CDL Calculates Capacitance

First, calculate capacitance parameters for each level:

For routing level 1: area_cap1 = (.0000130*1e-12*1e-6*1e-6)/(1e-6*1e-6*1000*1000) = 1.3e-23 perimeter_cap1 = (.0000522*1e-12*1e-6)/(1e-6*1000) = 5.22e-20 nearbody_cap1 = (.000004*10-1*1e-12*1e-6)/(1e-6*1000) = 4e-22

For routing level 2: area_cap2 = (.0000072*1e-12*1e-6*1e-6)/(1e-6*1e-6*1000*1000) = 7.2e-24 perimeter_cap2 = (.0000528*1e-12*1e-6)/(1e-6*1000) = 5.28e-20 nearbody_cap2 = (.000005*10-1*1e-12*1e-6)/(1e-6*1000) = 5e-22

Next, calculate the capacitance contribution of each routing level:

For routing level 1: Clevel1 = C1h + C1v + C2h + C2v + C3h + C3v C1h = ((50 + 150)*1000)*(3*1000)*1.3e-23 = .0078pF C1v = (0*1000)*(3*1000)*1.3e-23 = 0 C2h = ((50 + 150)*1000)*2*5.22e-20 = .02088pF C2v = (0*1000)*2*5.22e-20 = 0 C3h = ((50 + 150)*1000)*4e-22 = .00008pF C3v = (0*1000)*4e-22 = 0 Clevel1 = .0078pF + 0 + .02088pF + 0 + .00008pf + 0 Clevel1 = .02876pF or 28.76fF

For routing level 2: Clevel2 = C1h + C1v + C2h + C2v + C3h + C3v C1h = (0*1000)*(4*1000)*7.2e-24 = 0 C1v = (550*1000)*(4*1000)*7.2e-24 = .01584pF C2h = (0*1000)*2*5.28e-20 = 0 C2v = (550*1000)*2*5.28e-20 = .05808pF C3h = (0*1000)*5e-22 = 0 C3v = (550*1000)*5e-22 = .000275pF Clevel2 = 0 + .01584pF + 0 + .05808pF + 0 + .000275pF Clevel2 = .074195pF or 74.195fF

IC Station User’s Manual, v8.9_9 7-9

Page 174: Icstation User Manual @Vins

CDL Requirements Capacitance Driven Layout (CDL)

Atdy)

ore

flow

es foryion,

Accumulate totals:

Cglobal_route_estimate_total = Clevel1 + Clevel2Cglobal_route_estimate_total = 28.76fF + 74.195fF = 102.955fF

CDL RequirementsThe requirements to use the CDL process flow are as follows:

• Specify the routing levels and other automated layout variables in theProcess.

• For each routing level, specify the capacitance values in the Rule file. least one of the three types (intrinsic area, intrinsic perimeter, or nearbomust be specified.

• Set the target capacitance for each net or critical net in the design. For minformation on setting target capacitance, refer to the section “SettingTarget Capacitance.”

• ICblocks license.

• ICextract license.

Other requirements that are useful but not required to use the CDL process are as follows:

• Specify crossover capacitance, and all resistance and capacitance valueach routing level and connection. These additional values are used bICextract for the most accurate parasitic estimations. For more informatrefer to the Standard Verification Rule Format Manual.

• ICplan license for floorplanning.

• ICcompact license for layout compaction.

• ICtrace license for LVS verification.

IC Station User’s Manual, v8.9_97-10

Page 175: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Process Flow Scenario

e cell

tance,

• ICrules license for DRC verification.

Process Flow ScenarioThe CDL process flow is as follows:

1. Create a cell in CBC mode and assign target capacitances to nets. Thcan be created using CE mode, but performance is reduced.

2. Floorplan the design.

3. Perform cell and port placement.

4. Estimate placement capacitance.

5. Review the estimated placement capacitance report.

6. If the estimated placement capacitance does not meet the target capacireprioritize the net priorities based on theplacement_net_capproperty andgo to step 2 or step 3.

7. Perform global routing.

8. Review the estimated global routing capacitance report.

9. If the estimated global routing capacitance does not meet the targetcapacitance, reprioritize the net priorities based on theglobal_net_capproperty and go to step 2, 3, or 7.

10. Perform final routing.

11. Optionally perform LVS.

12. Optionally perform DRC.

13. Perform lumped parasitic extraction.

14. Review the extracted lumped capacitance report.

IC Station User’s Manual, v8.9_9 7-11

Page 176: Icstation User Manual @Vins

CDL Setup Example Capacitance Driven Layout (CDL)

nce,

up

:

ents

15. If the extracted lumped capacitance does not meet the target capacitareprioritize the net priorities based on thecap_netproperty and go to step 2,step 3, 7, or 10.

16. Process complete.

CDL Setup ExampleTo utilize all the features the CDL functionality provides, the following is a setexample:

Setup the Process

The Process must contain these variables: $precision, $process_name, and$unit_length.

For automated layout, the Process must also contain the following variables

For more information on Process variables, refer to the section “TechnologyDefinition.”

The following is an example of a Process file to be loaded as userware (commare shown with "//"):

// Start of Process declaration// ########### Start Required Process Variables ##########

$closely_tied $port_styles $site_type

$half_layer $power_net_names $user_grid

$layer_spacing $power_styles $wiring_type

$mfg_grid $routing_level

$port_height $signal_via_cell

IC Station User’s Manual, v8.9_97-12

Page 177: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL Setup Example

// ######## $precision #########// Purpose: Defines number of database coordinates that make// up a user unitextern ic_process@@$precision = 1000;

// ######## $process_name #########// Purpose: Defines the name of the processextern ic_process@@$process_name = "cmos";

// ######## $unit_length #########// Purpose: Defines the length of your user unitextern ic_process@@$unit_length = 1E-6;

// ########### End Required Process Variables ############

// SKIP LAYER DEFINITIONS FOR THIS EXAMPLE

// ########### Start of Automated Layout Definitions #####

// ######## $routing_level #########// Purpose: Assigns direction, minimum spacing, base and// blockage layer for routingextern ic_process@@$routing_level = [// define metal1 routing layer ["M1", @HORIZONTAL, 3.000, "metal1.port", "block1"],// define metal2 routing layer ["M2", @VERTICAL, 3.000, "metal2.port", "block2"]];

// ######## $closely_tied #######// Purpose: Define names of the closely tied layer sets for// compaction.extern ic_process@@$closely_tied = [];

// ######## $half_layer #########// Purpose: Defines whether or not half layer routing is// used (1 = yes, 0 = no)extern ic_process@@$half_layer = 0;

// ######## $layer_spacing #########// Purpose: Defines minimum spacing between objects on// ICgraph layersextern ic_process@@$layer_spacing = [];

IC Station User’s Manual, v8.9_9 7-13

Page 178: Icstation User Manual @Vins

CDL Setup Example Capacitance Driven Layout (CDL)

// ######## $mfg_grid #########// Purpose: Defines the grid the IC can be manufactured onextern ic_process@@$mfg_grid = .5;

// ######## $port_height #########// Purpose: Defines the height of all port shapes (dimension// perpendicular to the side)extern ic_process@@$port_height = 4.000;

// ######## $port_styles #########// Purpose: Specifies the shapes to be created when// autoplacing unplaced ports.extern ic_process@@$port_styles = [ ["metal1_port", [ 3.000, 2]], ["metal2_port", [ 4.000, 3]], ["vdd_port", [ 20.000, 2]], ["vss_port", [ 30.000, 2]]];

// ######## $power_net_names #########// Purpose: Define the power net names used.extern ic_process@@$power_net_names = [ ["VDD", @POWER_SUPPLY], ["VSS", @GROUND]];

// ######## $power_styles #########// Purpose: Defines the power styles to be used for power// routing.extern ic_process@@$power_styles = [ [@PAD_TO_BUS, "VDD", 2, "metal1", 170.000, 0.000, 1], [@IO_RING, "VDD", 3, "metal2", 127.000, 0.000, 1], [@INTERNAL_RING, "VDD", 2, "metal1", 127.000, 146.000, 1], [@ROW_TO_BUS, "VDD", 2, "metal1", 24.000, 0.000, 1], [@INTERNAL_ROW, "VDD", 2, "metal1", 12.000, 0.000, 1], [@INTERNAL_ROW, "VDD", 2, "metal1", 12.000, 0.000, 1], [@TIE_DOWN, "VDD", 2, "metal1", 3.000, 0.000, 1], [@PAD_TO_BUS, "VSS", 2, "metal1", 170.000, 0.000, 1], [@IO_RING, "VSS", 3, "metal2", 127.000, 0.000, 1], [@INTERNAL_RING, "VSS", 2, "metal1", 127.000, 16.000, 1], [@ROW_TO_BUS, "VSS", 2, "metal1", 30.000, 0.000, 1], [@INTERNAL_ROW, "VSS", 2, "metal1", 18.000, 0.000, 1], [@TIE_DOWN, "VSS", 2, "metal1", 3.000, 0.000, 1]];

IC Station User’s Manual, v8.9_97-14

Page 179: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL Setup Example

l

// ######## $signal_via_cell #########// Purpose: Defines via types for use in design.extern ic_process@@$signal_via_cell = [ ["$IC_LIB/layout/VIA", 1, 2, 3, 11]];

// ######## $site_type #########// Purpose: Specifies the standard cell site types and// associated geometric cells.extern ic_process@@$site_type = [// define standard cell site [3, @CELL_SITE, "", "", ""],// define port site [2, @PORT_SITE, "", "", ""],// define additional cell site [1, @CELL_SITE, "busxr", "", ""]];

// ######## $user_grid #########// Purpose: Defines the size of user grid spacing for the// Automated Layout tools.extern ic_process@@$user_grid = 10.000;

// ######## $wiring_type #########// Purpose: Assigns ICgraph layers to wire types by routing// levels.extern ic_process@@$wiring_type = [ [1, ["metal1", 3.000], ["metal2", 4.000]], [2, ["metal1", 10.000], ["metal2", 10.000]]];

// ########### End of Automated Layout Definitions #######

// SKIP LAYER APPEARANCE DEFINITIONS FOR THIS EXAMPLE$unfreeze_window(@all);// End of process declaration

Setup the Rule File

TheRule file must contain one of the three capacitance types used in CDL:intrinsic area, intrinsic perimeter, and nearbody.

The following example includes the basic CDL requirements and other usefudeclarations for more detailed parasitic extraction.

IC Station User’s Manual, v8.9_9 7-15

Page 180: Icstation User Manual @Vins

CDL Setup Example Capacitance Driven Layout (CDL)

re

Example Rule file to be loaded using the $load_rules() function, comments ashown with "//":

// Start of Rule File declarationPRECISION 1000

// Specify the unit length using a positive number or an// abbreviation. Choose one of the following lines:// UNIT LENGTH uUNIT LENGTH 1E-6

// Specify the unit capacitance using a positive number or an// abbreviation. Choose one of the following lines:// UNIT CAPACITANCE pfUNIT CAPACITANCE 1E-12

// Specify the unit resistance using a positive number or an// abbreviation. Choose one of the following lines:// UNIT RESISTANCE ohmUNIT RESISTANCE 1

LAYER nwell 1LAYER pwell 2LAYER aarea 3LAYER poly 4LAYER nplus 7LAYER pplus 8LAYER contact 9LAYER metal1 10LAYER via 11LAYER metal2 12LAYER pass 13

// Define layer connectivityCONNECT metal2 metal2.portCONNECT metal1 metal1.portCONNECT metal1 metal2 by via DIRECT

// SKIP ADDITIONAL DERIVED LAYER DEFINITIONS FOR THIS EXAMPLE

// SKIP DRC RULES DECLARATIONS FOR THIS EXAMPLE

// Define extraction parameters

IC Station User’s Manual, v8.9_97-16

Page 181: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL Setup Example

inputles.

)

// Definitions used by CDLCAPACITANCE ORDER metal1 metal2 DIRECTCAPACITANCE INTRINSIC metal2 [0.0000072 .0000528] DIRECTCAPACITANCE INTRINSIC metal1 [0.0000130 .0000522] DIRECTCAPACITANCE NEARBODY metal2 [.000005 10 1]CAPACITANCE NEARBODY metal1 [.000004 10 1]

// Additional definitions used by ICextract for accurate// parasitic extractionCAPACITANCE CROSSOVER metal2 metal1 [0.0000243 0 0] DIRECTCAPACITANCE CONNECTION metal1 metal2 [.00001 0] DIRECTRESISTANCE CONNECTION metal1 metal2 [.034 0] DIRECTRESISTANCE SHEET metal2 [0.026 0] DIRECTRESISTANCE SHEET metal1 [0.049 0] DIRECT

// SKIP DEVICE DECLARATIONS

// End of Rule File declaration

Create Target Capacitance File

The typical way to assign target capacitances for critical nets is to create an file. The input file can be generated by hand or by editing one of the report fi

The format of each line containing a net name isnet name, prio,net_prio_protected,or target_net_cap, where:

• Net name is the name for a given net.

• prio is the priority from 1 to 100 (1 is the lowest priority and 100 is thehighest). A priority value of 0 is the same as a priority value of 1.

• net_prio_protected is a Boolean property (value of “@true” or “@false”that states whether or not the priority is protected.

• target_net_cap is a property that defines the target capacitance value.

IC Station User’s Manual, v8.9_9 7-17

Page 182: Icstation User Manual @Vins

Using CDL Capacitance Driven Layout (CDL)

s:

leferg

An example of an input file using the previously described format is as follow

Net Name prio net_prio_protected target_net_cap-------------------------------------------------------/CLOCK 100 @true 5E-14/I$1/_N3 1 @false 5E-14/I$1/_N4 1 @false 5E-14/I$2/N$2 50 @true 5E-14/I$2/N$99 1 @false 5E-14/N$1 1 @false 1E-13/RESET 1 @false 1E-13/SHIFT_IN_8 25 @true 5E-14/SHIFT_OUT_8 1 @false 5E-14

Using CDLThis section describes the CDL palette commands and discusses the typicaprocedures you might perform. For a description of the typical process flow, rto the section “Process Flow Scenario” in this chapter. For a real example of usinthe CDL process flow, refer to the section “CDL IC Design” in this chapter.

CDL Palette Menu

The CDL functions, commands, and menus are shown in bold.

• $set_target_capacitance() assigns the priority, net_prio_protectedproperty, and the target_net_cap property to nets in the design.

• $autoplace_standard_cells() does standard cell placement.

• $autoplace_group() places a group of standard cells.

• $autoplace_blocks() does block placement.

• $autoplace_pins() does pin placement.

• $autoplace_ports() does port placement.

IC Station User’s Manual, v8.9_97-18

Page 183: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Using CDL

nt,

rtys an

and

singc net,

ce()

rNet

• $estimate_post_placement_capacitance() does a capacitance estimationand attaches a placement_net_cap property to each net in the design.

• $report_capacitance() creates a report of the target_net_cap propertyversus either the placement_net_cap, global_net_cap, or the cap_netproperty.

• $set_net_priority() reprioritizes unprotected nets based on the placemeglobal route, or final route.

• Autoroute All -cdl runs the ICblocks router with the CDL option. Theroute method must be set to “global_only” because the default is“global_and_detail.” The CDL option causes the global_net_cap propeto be created and attached to each net. The global_net_cap property iestimate of the routed capacitance for a given net.

• $extract_direct_lumped_parameters() does lumped parasitic extractionattaches a cap_net property that represents the extracted lumpedcapacitance to each net.

• Net Priority > Protect protects the priority of specified nets.

• Net Priority > Unprotect unprotects the priority of specified nets.

Setting Target Capacitance

You can set the target capacitance for a given net using one of three ways: uthe $set_target_capacitance() function, attaching the property to a schematior manually adding the target_cap property to specific nets.

Using $set_target_capacitance()

The first way to set target capacitance is by using the $set_target_capacitanfunction. This is the first CDL function on the CDL palette menu. Use thisfunction to enter priority, priority protection, and target capacitance for anindividual net or to specify an input file that contains the same information fomultiple nets. When specifying an input file, a colon (:) is first entered in the Name entry box, followed by the path to the input file.

IC Station User’s Manual, v8.9_9 7-19

Page 184: Icstation User Manual @Vins

Using CDL Capacitance Driven Layout (CDL)

ns.t to

ther

s:

er(:) is as

You can generate an input file in the correct format with the CDL report functioThis file can be used as a template to construct a file or used directly as inputhe $set_target_capacitance() function. For more information, see “ReportingCapacitance” in this chapter.

The following is an example of assigning a net CLK with a priority of 1, nopriority protection, and a target capacitance of 1.2e-12 is as follows:

Execute the command using one of the following:

CDL Palette: CAPACITANCE > Set TargetsCommand: SET TArget CapFunction: $set_target_capacitance()

A dialog box is displayed. Choose Specific Nets and execute the dialog. Anodialog box is displayed. Fill it in with the above information. The transcriptedcommand is as follows:

$set_target_capacitance(@net, void, ["CLK"], ["1.2e-12"], ["1"], [@false]);

An example of specifying an input file “$IC/target.dat” to be read is as follow

Execute the command using one of the following:

CDL Palette: CAPACITANCE > Set TargetsCommand: SET TArget CapFunction: $set_target_capacitance()

A dialog box is displayed. Choose From a File and execute the dialog. Anothdialog box is displayed. Fill it in with the above information. Note that a colonprecedes the filename in the Filename entry box. The transcripted commandfollows:

$set_target_capacitance(@file ":$IC/target.dat", void, void, void, void);

IC Station User’s Manual, v8.9_97-20

Page 185: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Using CDL

t_cap

toy

e

sing

ing:

ist to

Attaching Properties to Nets

The second way to set target capacitance is to attach the property target_neto certain schematic nets. Then, when performing the $create_cell() or$load_logic() functions, this property is added to the list of “Logic Properties Copy.” The following is an example of specifying the target_net_cap propertwhen creating a cell:

Execute the command using one of the following:

IC Session Palette:Cell > CreateCommand: CREate CEllFunction: $create_cell()

A dialog box is displayed and can be filled in with the above information. Notthat the property target_net_cap should be added to theLogic Properties to Copyentry box.

Manually Attaching Properties to Nets

The third way to set target capacitance is to attach the property in the layout uthe $add_property() function. An example of attaching the target_net_capproperty to a specific net is as follows:

Select a net or a group of nets. Execute the command using one of the follow

Menus: Objects > Add > PropertyCommand: ADD PRopertyFunction: $add_property()

A prompt bar is displayed. When the Options button is pressed, a dialog boxdisplayed. To attach this property to the net, the Property Owner must be se“Net” because the default Property Owner is “Selected.”

IC Station User’s Manual, v8.9_9 7-21

Page 186: Icstation User Manual @Vins

Using CDL Capacitance Driven Layout (CDL)

tedwing:

one

the

uter

log

Estimating Placement Capacitance

After the placement of an IC layout is complete, you can calculate the estimacapacitance for each net. To perform this operation, execute one of the follo

CDL Palette: Autoplace > Estimate CapCommand: ESTimate POst Placement CapFunction: $estimate_post_placement_capacitance()

When the operation is complete, the following message is displayed:

ICcdl placement capacitance estimation successfully completed

Estimating Global Route Capacitance

To estimate global routing capacitance, route the design using theglobal_onlyroute method and select the CDL option. To perform this operation, executeof the following:

CDL Palette: Autoroute > AllCommand: AUTOROUte ALl -cdl

A prompt bar is displayed. Change the Route Method to global_only. Youaccomplish this by pressing the space bar or by clicking the down arrow withmouse.

If the function $autoroute_all() is called with no arguments, complete thefollowing steps:

1. Change the Route Method to global_only.

2. Click the Options button on the prompt to display the Batch Channel RoOptions dialog box.

3. Click the Expert Options button to display the Router Expert Options diabox.

IC Station User’s Manual, v8.9_97-22

Page 187: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Using CDL

e,s

nce

ce

nd is

4. Activate the CDL: Estimate Capacitance. If the CDL button is not activno CDL will occur. The -CDL switch for the Autoroute All command doenot automatically activate this button.

5. Click OK on the two dialog boxes and the prompt bar.

Reporting Capacitance

There are capacitance reporting commands that compare the target capacitawith the estimated placement, the estimated global routing, or the extractedlumped capacitance value. For reporting the estimated placement capacitanvalues, use:

CDL Palette:Autoplace > Rpt Place Cap

For reporting the estimated global routing capacitance values, use:

CDL Palette:Autoroute > Rpt Route Cap

For reporting the extracted lumped capacitance values, use:

CDL Palette:ICextract(D) > Rpt Lumped Cap

Each capacitance report command has the same options. When the commaselected, a prompt bar displays with the following options:

• Nets - all or selectedChange this from “all” to “selected” to report only on selected nets.

• only_out_of_spec - false or trueChange this from “false” to “true” to report only nets that are out ofspecification.

• Send Report to - popup or window or fileChange this from “popup” to “window” or “file” depending on how thereport is to be viewed. Set to “file” and enter a name in the “Filename”entry box to save the result.

IC Station User’s Manual, v8.9_9 7-23

Page 188: Icstation User Manual @Vins

Using CDL Capacitance Driven Layout (CDL)

n

:

ty()

• Filename - $MGC_HOME/tmp/net_cap_info Change this to a new filename if desired.

The defaults for each capacitance report command are adequate for mostsituations. If the design is very large, then it is probably necessary to report ocertain selected nets or to focus on just the nets that do not meet the targetcapacitance value.

Using a Report to Create Target Capacitance

To create a report for use as target capacitance, perform the following steps

1. Choose one of the reporting menu items on the CDL Palette:

Autoplace > Rpt Place CapAutoroute > Rpt Route CapICextract(D) > Rpt Lumped Cap

2. Set the following options:

Nets - allonly_out_of_spec - falseSend Report to - fileFilename - your_filename_here

After editing the report file, theCDL > CAPACITANCE > Set Targets menuitem is executed. The filename is entered as described in the section “SettingTarget Capacitance” in this chapter.

Changing Net Priority

There are two ways to change the priority of a given net: the $set_net_priorifunction or the $change_net() function.

IC Station User’s Manual, v8.9_97-24

Page 189: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Using CDL

)e_captual

hisins.est

h they

thee theby

pthe

do

$set_net_priority()

The first way is to use the $set_net_priority() function. The $set_net_priority(function adjusts the priority of nets by sorting the nets into those that meet thtarget capacitance and those that do not. All nets that exceed the target_netproperty value are sorted by the magnitude of the difference between the acand the target.

If the net has a property of “net_prio_protected” and its value is “true”, then tnet is removed from the sorted list. The remaining nets are divided into 10 bEach group is assigned a priority. 100 is assigned to the group with the highdifference magnitude. 90 is assigned to the group with the second highestdifference magnitude and so on down, to 10 being assigned to the group witleast magnitude difference. The nets in each group will have that new prioritassigned to them.

For nets that already meet the target capacitance, they also will be sorted bymagnitude of the difference between actual and the target. The nets that havhighest magnitude of difference will have their existing priority decremented 10.

You can access the $set_net_priority() function from the CDL palette by thefollowing menu items:

Autoplace > Reprio Nets (P)Autoroute > Reprio Nets (G)ICextract(D) > Reprio Nets (L)NET PRIORITY > Reprior Nets

• Autoplace > Reprio Nets (P) calls the function and argument$set_net_priority(@placement_net_cap) and reprioritizes based on thecomparison of the placement_net_cap property with the target_net_caproperty. The placement_net_cap property value comes from executingAutoplace > Estimate Cap menu item. Normally, theAutoplace >Reprio Nets (P) menu item is executed after using theAutoplace >Rpt Place Cap menu item and discover that there are several nets thatnot meet the target capacitance value.

IC Station User’s Manual, v8.9_9 7-25

Page 190: Icstation User Manual @Vins

Using CDL Capacitance Driven Layout (CDL)

n of

t the

nu

on.ivenf the

• Autoroute > Reprio Nets (G) calls the function and argument$set_net_priority(@global_net_cap), and reprioritizes based on thecomparison of the global_net_cap property with the target_net_capproperty. The global_net_cap property value comes from executing theAutoroute > All menu item on the CDL palette. Normally, theAutoroute > Reprio Nets (G) menu item is executed after using theAutoroute > Rpt Route Cap menu item and discovering that there areseveral nets that do not meet the target capacitance value.

• ICextract(D) > Reprio Nets (L) calls the function and argument$set_net_priority(@cap_net), and reprioritizes based on the comparisothe cap_net property with the target_net_cap property. The cap_netproperty value comes from executing theICextract(D) > Lumped menuitem on the CDL palette. Normally, theICextract(D) > Reprio Nets (L)menu item is executed after using theICextract(D) > Rpt Lumped Capmenu item and discovering that there are several nets that do not meetarget capacitance value.

• NET PRIORITY > Reprior Nets calls the $set_net_priority() functionand prompts for the capacitance type. The possible choices are:

• placement_net_cap based on the placement

• global_net_cap based on global routing

• cap_net based on the lumped capacitance

This menu item uses the same function calls as the three previous meitems. It provides flexibility when changing net priorities.

$change_net()

The second way to change the priority of nets uses the $change_net() functiThis function takes as arguments the priority, route style, and via style for a gnet. To perform this operation, select a net or group of nets and execute one ofollowing:

Command: CHAnge NEtFunction: $change_net()

IC Station User’s Manual, v8.9_97-26

Page 191: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL IC Design

ion.

the

alue

able

ar

e ar

es and

sters.

and

A prompt bar is displayed.

Protecting and Unprotecting Net Priorities

You can protect nets from priority changes using the $set_net_priority() functThey cannot be protected from changes that occur using the $change_net()function. The protection is done using a property called net_prio_protected. Ifvalue of this property is set to @true, then the priority is protected from areprioritize command (see the section “Changing Net Priority”). If the value ofthis property is set to @false, then you can change the priority. The default vfor the net_prio_protected property is @false.

To change the priority protection on nets, the following menu items are availon the CDL palette:

NET PRIORITY > ProtectNET PRIORITY > Unprotect

• NET PRIORITY > Protect is used to protect the priority of nets. Thechoices are All Nets, Selected Nets, or Other. When Other is selected,“Net Name” entry box appears for the user to input a single net name oseveral net names.

• NET PRIORITY > Unprotect is used to unprotect the priority of nets. Thchoices are All Nets, Selected Nets, or Other. When Other is selected,“Net Name” entry box appears for the user to input a single net name oseveral net names.

CDL IC DesignThe following is an example of a design that uses the CDL methodology. Thdesign is small (86 standard cells, 152 nets), but illustrates the basic conceptthe overall process flow.

The digital design consists of two blocks: a clock generator and a set of regiThe clock generator takes a clock input, then generates a divide-by-4 and adivide-by-64 output clock signal. The set of registers includes an 8-bit, 16-bit,

IC Station User’s Manual, v8.9_9 7-27

Page 192: Icstation User Manual @Vins

CDL IC Design Capacitance Driven Layout (CDL)

isated

aryfy

ts of

e weresis.

II

eora

24-bit shift register and a divide-by-2 section. The clock generator schematicthe result of synthesis using Autologic. The register section schematic was creby hand. The CMOSN library was used and the technology chosen was 1.2micron CMOS.

Design Setup

The CMOSN design kit was installed. This design kit includes all the necessschematic, simulation, and layout files. The only setup required was to modilocation map variables, making the schematic and layout data available. Thedesign kit comes with a Process and Rule file that meets all of the requiremenCDL (see the section “CDL Setup Example” in this chapter) with the exception ofthe target capacitance input file. A file containing the target capacitanceinformation was generated using the format described in the section “CreateTarget Capacitance File” in this chapter.

Design Flow

The following sections describe the complete design flow of this sample IC.

Front-end Design Creation

The front-end design consists of creating and synthesizing VHDL code for thclock generator and creating the register schematic by hand. The tools usedDesign Architect-IC for schematic and VHDL entry, and Autologic for synthe

Create Design Viewpoints

A design viewpoint for digital simulation and IC layout was created usingDVE-IC. Several parameters and a primitive “model” were added for QuickSimdigital simulation by using theSetup > CMOSN Simulation menu command inDVE-IC. A comp primitive was added for use by IC Station. The comp primitivtells IC Station not to load logic below this property comp. The clock generatcomponent was selected and the model changed to “cmosn_opt_s”. This is schematic model instead of a VHDL model. By changing the model, abackannotation file was created and attached to the viewpoint.

IC Station User’s Manual, v8.9_97-28

Page 193: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL IC Design

ndonput

ction

the

wed

d

Perform Pre-layout Simulation

The QuickSim II digital simulator was invoked on the viewpoint created in thesection “Create Design Viewpoints.” The design schematic was opened andappropriate signals for tracing were selected and added to a trace window.Stimulus was created for the signals RESET, SHIFT_IN_8, SHIFT_IN_16, aSHIFT_IN_24. A clock signal was generated for signal CLOCK. The simulatiwas run and the results examined. After reviewing the results the stimulus inwas saved in the design viewpoint with the leafnameforces and the results weresaved with the leafnameresults.

Create Target Capacitance Data File

A target capacitance data file was created using the format described in the se“Create Target Capacitance File” for use in the CDL flow. The targets werepurposely chosen to be ambitious, but through several placement iterations targets can be achieved. This target capacitance data was created by hand.

Create Complete IC Layout Using CDL Flow

The IC layout process, using CDL, began with the loading of the Process folloby the loading of the Rule file, using the following menu items:

File > Process > Load and File > Load Rules

A cell was created using theFile > Cell > Create pulldown menu item.

The current connectivity mode was CE due to single pin nets in the design.Therefore, for better performance the connectivity editing mode was changefrom CE to CBC using theContext > Set Cell Config >Correct By Construction pulldown menu item.

The initial floorplan was created using thePlace & Route > Autofloorplan menuitem with default options.

Now the design was ready for the main part of the CDL flow. The targetcapacitance file was read in using theCDL > CAPACITANCE > Set Targetsmenu item.

IC Station User’s Manual, v8.9_9 7-29

Page 194: Icstation User Manual @Vins

CDL IC Design Capacitance Driven Layout (CDL)

ette

t

nce.n. Tolow),

ncee

nce.

netghet.

based

An initial placement of cells and ports was done using the following CDL palmenu items with default options:

Autoplace > Std CellsAutoplace > Ports

The estimated placement capacitance was found using theCDL > Autoplace >Estimate Cap menu item.

Then a comparison report of target capacitance versus estimated placemencapacitance was created using theCDL > Autoplace -> Rpt Place Cap menuitem.

The report indicated that 139 out of 152 nets did not meet the target capacitaThis report might not be accurate due to the placement capacitance estimatiosee if the design was overconstrained (that is, target capacitances were set tothe layout was routed, extracted, and a comparison report of target capacitaand extracted lumped capacitance was generated. The following CDL palettmenu items were issued with default options:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The report indicated that 5 out of the 152 nets did not meet the target capacitaA report of these nets was then created using theCDL > ICextract(D) >Rpt Lumped Cap menu item with the Only_out_of_spec option set to true.

From this report it was determined that the target capacitances were not tooconstrained. Out of the five nets that did not meet the target value, only one was off by a large magnitude, net /I$2/N$113. The conclusion was that throuseveral placement iterations, the target capacitances should be able to be m

The nets that did not meet target capacitance value were assigned prioritieson the extracted lumped capacitance using theCDL > ICextract(D) >Reprior Nets (L) menu item.

This assigned priorities of 70, 90, 30, 50, and 10 to the nets /I$1/_N23,/I$2/N$113, /N$1, /N$13, and /SHIFT_IN_24 respectively. The net with the

IC Station User’s Manual, v8.9_97-30

Page 195: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL IC Design

.one

ed

therythe

the aas

s from

s thatuslynetstancesing

oneed

greatest magnitude difference, /I$2/N$113, was assigned the highest priorityTaking into consideration these new priorities, cell and port placement was dagain. The following CDL palette menu items were executed with the specifiplacement method option:

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Each time the cell placement was done, the shell window (operating systemwindow that ran IC Station) was watched to see the final wire length result. Ifwire length did not seem to change much, then the placement is probably vegood. Otherwise, if the wire length changed significantly, then keep executingcell placement command until the wire length does not change much. Once cell and port placement was complete, the layout was routed, extracted, andcomparison report of target capacitance and extracted lumped capacitance wgenerated. The greatest gains in meeting the target capacitance value comea better placement of cells and/or blocks. Thus, to evaluate if the design wasconverging, the following CDL palette menu items were issued with defaultoptions:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there were still 5 netdid not meet the target capacitance value. Out of these 5 nets, 1 was previoreported. This means that by prioritizing the 5 nets for the last iteration, 4 newhad been placed and routed poorly. The nets that did not meet target capacivalue were assigned priorities based on the extracted lumped capacitance utheCDL > ICextract(D) > Reprior Nets (L) menu item.

Taking into consideration these new priorities, cell and port placement was dagain. The following CDL palette menu items were executed with the specifiplacement method option:

IC Station User’s Manual, v8.9_9 7-31

Page 196: Icstation User Manual @Vins

CDL IC Design Capacitance Driven Layout (CDL)

cted,tanceult

at didsed on

oneed

cted,tanceult

at didsed on

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Once the cell and port placement was complete, the layout was routed, extraand a comparison report of target capacitance and extracted lumped capaciwas generated. The following CDL palette menu items were issued with defaoptions:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there were 4 nets thnot meet the target capacitance value. These nets were assigned priorities bathe extracted lumped capacitance using theCDL > ICextract(D) > Reprior Nets(L) menu item.

Taking into consideration these new priorities, cell and port placement was dagain. The following CDL palette menu items were executed with the specifiplacement method option:

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Once the cell and port placement was complete, the layout was routed, extraand a comparison report of target capacitance and extracted lumped capaciwas generated. The following CDL palette menu items were issued with defaoptions:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there were 3 nets thnot meet the target capacitance value. These nets were assigned priorities bathe extracted lumped capacitance using theCDL > ICextract(D) > Reprior Nets(L) menu item.

IC Station User’s Manual, v8.9_97-32

Page 197: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL IC Design

oneed

cted,tanceult

at didsed on

and

cted,tanceult

Taking into consideration these new priorities, cell and port placement was dagain. The following CDL palette menu items were executed with the specifiplacement method option:

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Once the cell and port placement was complete, the layout was routed, extraand a comparison report of target capacitance and extracted lumped capaciwas generated. The following CDL palette menu items were issued with defaoptions:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there were 8 nets thnot meet the target capacitance value. These nets were assigned priorities bathe extracted lumped capacitance using theCDL > ICextract(D) ->Reprior Nets (L) menu item.

The design seemed to be going out of convergence. However, placementiterations were continued. Taking into consideration these new priorities, cellport placement was done again. The following CDL palette menu items wereexecuted with the specified placement method option:

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Once the cell and port placement was complete, the layout was routed, extraand a comparison report of target capacitance and extracted lumped capaciwas generated. The following CDL palette menu items were issued with defaoptions:

IC Station User’s Manual, v8.9_9 7-33

Page 198: Icstation User Manual @Vins

CDL IC Design Capacitance Driven Layout (CDL)

at did

rities

oneed

cted,tanceult

id notution.ed on

oneed

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there were 3 nets thnot meet the target capacitance value. The design seemed to converge on asolution. The nets that did not meet the target capacitance were assigned priobased on the extracted lumped capacitance using theCDL > ICextract(D) >Reprior Nets (L) menu item.

Taking into consideration these new priorities, cell and port placement was dagain. The following CDL palette menu items were executed with the specifiplacement method option:

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Once the cell and port placement was complete the layout was routed, extraand a comparison report of target capacitance and extracted lumped capaciwas generated. The following CDL palette menu items were issued with defaoptions:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there was 1 net that dmeet the target capacitance value. The design seemed to converge on a solThe net that did not meet the target capacitance was assigned a priority basthe extracted lumped capacitance using theCDL > ICextract(D) > Reprior Nets(L) menu item.

Taking into consideration these new priorities, cell and port placement was dagain. The following CDL palette menu items were executed with the specifiplacement method option:

IC Station User’s Manual, v8.9_97-34

Page 199: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) CDL IC Design

cted,tanceult

at didion.

p wasw thiset

cal

iesrities

d be, 10,

ater to.

Autoplace > Std Cells - with "Improve" placement methodAutoplace > Std Cells - with "Improve" placement methodAutoplace > Ports

Once the cell and port placement was complete, the layout was routed, extraand a comparison report of target capacitance and extracted lumped capaciwas generated. The following CDL palette menu items were issued with defaoptions:

Autoroute > AllICextract(D) > LumpedICextract(D) > Rpt Lumped Cap

The extracted lumped capacitance report indicated that there were no nets thnot meet the target capacitance value. The design had converged on a solut

CDL flow notes:It was found that the greatest changes in meeting the target capacitance steby performing the cell and port placement again with new net priorities. A nefloorplan could have been created, which could have had a major affect. Forexample, this was not done. The global routing capacitance estimation and nreprioritization was not used, but it is a good way to fine tune the layout of critinets.

One feature of CDL that was not used was the priority protection. The prioritcan be protected for any net. An example was created that protected the prioafter each iteration. This caused the design to not converge, so any priorityprotection that is done must be done with caution. The issue with priorityprotection might be due to the 10 levels of priority assigned. Perhaps it woulbetter to protect a priority that is different than those generated (for example20, 30, 40, 50, 60, 70, 80, 90, 100) by the $set_net_priority() function.

Now the layout was ready for the DRC and LVS verification flows. Note that DRC and an LVS could have been done on each iteration, but it seemed betwait until the design had converged on a solution before performing this step

IC Station User’s Manual, v8.9_9 7-35

Page 200: Icstation User Manual @Vins

CDL IC Design Capacitance Driven Layout (CDL)

t

ted

ow.ith

ith

ted

Perform DRC and LVS Verification

For DRC verification, theICrules > Check menu item was executed with defauloptions.

For LVS verification, the following ICtrace(D) palette menu items were execuwith the specified options:

Setup > LVS - Type properties: compLVS - Source Name: $TESTDIR/system/cdl

Extract/Backannotate IC Layout Parasitics

Prior to performing the post-layout simulation, capacitance or net delayinformation must be backannotated to the viewpoint. There are twoextraction/backannotation methods available for this design: lumped anddistributed.

For lumped parasitic extraction, the extraction was already done in the CDL flTherefore, only the following ICextract(D) palette menu item was executed wthe specified options:

Bkannotate - BA name: cdl, Type: Lumped

For distributed parasitic extraction, the following commands were executed wthe specified options:

Distributed - default optionsBkannotate - BA name: cdl, Type: Distributed

After executing one of the above set of commands, the design viewpointcdl wasnow updated with the backannotation information, and was ready for digitalsimulation.

Perform Post-layout Simulation

The QuickSim II digital simulator was invoked on the viewpoint that was creain the section “Create Design Viewpoints,” and updated with one of the methodsdescribed in the section “Perform DRC and LVS Verification.” The design

IC Station User’s Manual, v8.9_97-36

Page 201: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Possible Problems and Solutions

d

the

nd

nedteThe

t

ngth.

allalto

he

tion

schematic was opened, and appropriate signals for tracing were selected anadded to a trace window. The stimulus “forces” were reloaded from theviewpoint. The simulation was run and the results examined. After reviewingresults, they were saved in the design viewpoint with the leafnameresults_with_parasitics.

Possible Problems and SolutionsThe following is a summary of problems that may occur during the CDL flow aa potential solution to the problem.

• Target capacitance values are not known.

o Use a tool like QuickPath or another timing analyzer to determinecritical paths and timing slack values. The critical paths can be assighigh priorities. The timing slack value helps determine an approprianet length, from which an estimated capacitance can be calculated.lumped capacitance extraction is based on the net only. It does noinclude the capacitance of the pins it attaches to. Therefore, whenestimating the target capacitance, the focus should be on the net le

o Run through the CDL flow once and determine the capacitance of nets. Use this information and critical path information to setup inititarget capacitances. If the design will not converge, you may have change the targets. Once the CDL flow is complete, resimulate thedesign and verify the timing.

• Errors when loading target capacitance data from a file.

o An input file must adhere to the data format guidelines covered in tsection “Create Target Capacitance File.”

o Take an output report generated by the $report_capacitance() funcand modify it (for use) as an input file.

IC Station User’s Manual, v8.9_9 7-37

Page 202: Icstation User Manual @Vins

Possible Problems and Solutions Capacitance Driven Layout (CDL)

the

d. If

ltsain

nce

rate

r

• Estimating placement capacitance—almost all nets are out of spec.

o Continue through the CDL flow, and see if the same thing occurs inglobal routing capacitance estimation and the extracted lumpedcapacitance. If the same thing occurs, the design is overconstrainenot, the estimated placement capacitance is not accurate. Create aseparate Rule file and adjust the intrinsic, perimeter, and nearbodyvalues for each routing layer to compensate for the inaccurate resuduring placement capacitance estimation. By experimentation, certcapacitance parameters might need to be changed or eliminated.

o Only use the estimated global routing and extracted lumped capacitavalues.

• Estimating global routing capacitance—values seem inaccurate.

o Create a separate Rule file and adjust the intrinsic, perimeter, andnearbody values for each routing layer to compensate for the inaccuresults during global routing capacitance estimation. Throughexperimentation, you may have to change or eliminate capacitanceparameters.

o Focus on the extracted lumped capacitance values. Iterate theplacement based on the extracted lumped capacitance values andpriorities.

• Priority protection on nets does not seem to work or priorities seem tochange.

o Make sure that the nets to be protected are selected and the propeoption is chosen.

o Remember, if a net is not protected and still meets the targetcapacitance, then its priority will decrease by 10 each time the$set_net_priority() function is called.

IC Station User’s Manual, v8.9_97-38

Page 203: Icstation User Manual @Vins

Capacitance Driven Layout (CDL) Possible Problems and Solutions

to

nce

• Placement iterations do not seem to make much difference.

o After global routing, the channel sizes have been estimated. Beforerunning the placement tool again, it might be necessary to run thefloorplan tool. The floorplan tool currently does not take intoconsideration net priorities, but the size and aspect ratios of thefloorplan can affect the placement.

o Adjust the net priorities using the $set_net_priority() function, orchange the priorities by hand.

• Problems achieving the target capacitances.

o Focus on iterating the placement. Incremental changes occur bychanging priorities and performing a global route, but the greatestchanges occur by modifying the placement.

o Design is overconstrained; the target is impossible. Make changesthe logic source and restart the CDL flow.

o Improper values for target capacitance. The lumped capacitanceextraction is based on the net only. It does not include the capacitaof the pins it attaches to. Therefore, when estimating the targetcapacitance, the focus should be on the net length.

IC Station User’s Manual, v8.9_9 7-39

Page 204: Icstation User Manual @Vins

Possible Problems and Solutions Capacitance Driven Layout (CDL)

IC Station User’s Manual, v8.9_97-40

Page 205: Icstation User Manual @Vins

ntsents

e

bout ant

isuse,

whenell and

s for

fer to

Chapter 8Design Requirements

From the perspective of the physical layout of an IC, a number of requirememust be met before you can successfully layout your design. These requiremdepend on the tools you are using. The most significant requirements are thProcess (technology),Logic Source (schematic), andProperties. The followingsections describe each requirement.

ProcessProcess data describes the technology, design rules, and other information acell or a design. The Process also contains information shared among differecells in one design (for example, the routing level definitions). Layout toolsrequire Process information to constrain their task for a given technology. ThProcess information includes preferred layers for interconnect, cell family to and types of vias.

Each cell has an associated Process. Either you specify a Process for a cellyou create it, or a default Process is used. Once you assign a Process to a csave the cell, the Process is persistent with the cell, but you can change theProcess. If it's not already loaded in the session, IC Station loads the Procesyou.

For more general information about the Process and the default Process, re“Technology Definition” later in this manual.

IC Station User’s Manual, v8.9_9 8-1

Page 206: Icstation User Manual @Vins

Process Design Requirements

fullcess

ing

he

r

s.

u

e

er

up a

he

n,r

Process Variables

Table8-1contains brief descriptions of the Process variables that are used forcustom and automated layout. For more detailed information about each Provariable, refer to “Technology Definition” later in this manual.

Table 8-1. Process Variable Summary

Variable Description

$closely_tied Defines layers that can share diffusion between cells durcompaction.

$half_layer Defines whether half layer routing is being used.

$layer_spacing Defines minimum spacing values between objects on tsame layer or on two different layers.

$mfg_grid Defines the dimensions of the manufacturing grid in useunits.

$port_height Specifies the height of placed port shapes and port row

$port_styles Specifies the dimensions of one or more shapes that yowant created for port connection points when youautoplace unplaced ports.

$power_net_names Defines the power net names that are recognized in thdesign.

$power_styles Defines the power styles that you will use to route pownets.

$precision Defines the number of database coordinates that makeuser unit.

$process_name Specifies the name that you assign to a Process; not tpathname of the Process.

$routing_level Defines the routing level name, preferred routing directiominimum spacing, base layer, and the blockage layer foeach routing level.

IC Station User’s Manual, v8.9_98-2

Page 207: Icstation User Manual @Vins

Design Requirements Automated Layout Logic Source Requirements

ou

es

e

rand

r a

alou

that

a

Automated Layout Logic SourceRequirements

EDDM Viewpoint

Before using the $load_logic() function to load an EDDM viewpoint into IC, yneed to complete the following tasks:

• Create an EDDM design viewpoint whose primitives match the primitivintended for use in the layout. You use the Design Viewpoint Editor-IC(DVE-IC) to create a design viewpoint and add primitives to it. For morinformation about the Design Viewpoint Editor-IC, refer to theDesignViewpoint Editor-IC User’s and Reference Manual.

• Create a physical library(s) (directory) that contains the physical cells odevice generators that correspond to the schematic cells. For convertedtranslated designs, you can use the$build_lib() function to create ports,blockages, and a cell outline. For parts libraries from Mentor Graphics othird-party supplier, refer to theLibrary Management System User’s andReference Manuals for Designers.

• Add Comp (the cell’s logical name) and/or Phy_comp (the cell’s physicname) properties to all symbols that correspond to the physical cells. Yuse Design Architect-IC to add Comp and Phy_comp properties to all

$signal_via_cell Defines the via types that you will use when you route adesign.

$site_type Specifies the site types and associated geometric cellsyou can use in your design.

$user_grid Defines the dimensions of the user grid in user units.

$wiring_type Defines the wire types that you will use when you routedesign.

Table 8-1. Process Variable Summary [continued]

Variable Description

IC Station User’s Manual, v8.9_9 8-3

Page 208: Icstation User Manual @Vins

Automated Layout Logic Source Requirements Design Requirements

dthe

symbols for which you want to have corresponding physical cells pullefrom the available libraries. For descriptions of these properties, refer toProperties Reference Manual. For more information about addingproperties, refer to theDesign Architect-IC User’s Manual.

• Add other properties as listed in Table8-2.

• Load necessary Process and Rule files. The functions$load_process() and$load_rules() load Process and Rule files, respectively.

IC Station User’s Manual, v8.9_98-4

Page 209: Icstation User Manual @Vins

Design Requirements Properties

alls the

bjectic

o

PropertiesProperties are a key mechanism used by Mentor Graphics tools for modelingcomponents and circuits. Mentor Graphics design, analysis, and layout toolsdepend on properties to specify certain component and circuit characteristictools need to do their jobs.

Table8-2 is a cross-reference of properties used by IC layout and verificationtools, and whether the property is on a schematic component (S) or layout o(L). If the place, seed, andnet_comp_placeproperties are found on the schematby ICplan or ICblocks, they becomerel_preplacement properties in the layout.

If you are simulating your design, you should ensure that your schematic alscontains the correct properties required by your simulator.

For more detailed information for each property, refer to theProperties ReferenceManual. For information about adding properties, refer to theDesign Architect-ICUser’s Manual.

Table 8-2. IC Properties Cross-Reference Table

Sch. / Lay. > S L S L S L S L S L S L S L S L

Property O=Any object, B=Blockage, D=Design root, E=Extent,I=Instance, N=Net, A=Net attribute, P=Path, C=Pin,F=Power port, G=Port shape, H=Port, S=Shape,Y=Symbol, V=Via, X=N/A

area I I

block_dir B

cap_coupled N

cap_net N N

cap_nets_coupled N

Tool/Flow >

SD

L

CD

L

ICplan

ICblocks

ICcom

pact

ICtrace

ICextract

ICLink

IC Station User’s Manual, v8.9_9 8-5

Page 210: Icstation User Manual @Vins

Properties Design Requirements

cap_pin N F

comp Y Y

$compaction-group O

$con-edge S

$con-obj O

cpl_cap_net N N

do_not_jog P

element Y Y

fall C

gdsii_error E

gdsii_plex X

gdsii_property_# X

gdsii_text SP

gdsii_textinfo X

global_net_cap N

group_abut I I

group_name I I

group_place I I

Table 8-2. IC Properties Cross-Reference Table [continued]

Sch. / Lay. > S L S L S L S L S L S L S L S L

Property O=Any object, B=Blockage, D=Design root, E=Extent,I=Instance, N=Net, A=Net attribute, P=Path, C=Pin,F=Power port, G=Port shape, H=Port, S=Shape,Y=Symbol, V=Via, X=N/A

Tool/Flow >

SD

L

CD

L

ICplan

ICblocks

ICcom

pact

ICtrace

ICextract

ICLink

IC Station User’s Manual, v8.9_98-6

Page 211: Icstation User Manual @Vins

Design Requirements Properties

group_prio I N

group_seed I I

icap_net N

ignore_net N

inst I I I I I I I I

instpar I

model IS

I IS

I I

ms_* I I

must_jog P

my_net H H H

net N NPS

N N NPS

net_comp N N N N

net_comp_count N

net_comp_place N N

net_prio_protected N

netdelay N

nmos_bulk_node D

Table 8-2. IC Properties Cross-Reference Table [continued]

Sch. / Lay. > S L S L S L S L S L S L S L S L

Property O=Any object, B=Blockage, D=Design root, E=Extent,I=Instance, N=Net, A=Net attribute, P=Path, C=Pin,F=Power port, G=Port shape, H=Port, S=Shape,Y=Symbol, V=Via, X=N/A

Tool/Flow >

SD

L

CD

L

ICplan

ICblocks

ICcom

pact

ICtrace

ICextract

ICLink

IC Station User’s Manual, v8.9_9 8-7

Page 212: Icstation User Manual @Vins

Properties Design Requirements

phy_comp IY

I IY

phy_pin C CH

C C C CH

pin C CH

C C C CH

pintype C

place I I

placement_net_cap N

pmos_bulk_node D

prio N A

rc_feedthrough CH

rel_preplacement I IH

res_net N N

res_path N

res_source Pt

rise N

route_set G

Table 8-2. IC Properties Cross-Reference Table [continued]

Sch. / Lay. > S L S L S L S L S L S L S L S L

Property O=Any object, B=Blockage, D=Design root, E=Extent,I=Instance, N=Net, A=Net attribute, P=Path, C=Pin,F=Power port, G=Port shape, H=Port, S=Shape,Y=Symbol, V=Via, X=N/A

Tool/Flow >

SD

L

CD

L

ICplan

ICblocks

ICcom

pact

ICtrace

ICextract

ICLink

IC Station User’s Manual, v8.9_98-8

Page 213: Icstation User Manual @Vins

Design Requirements Properties

seed I I

side_pref PV

stub_dir G

swap_set CH

targe_net_cap N

termplace

text

vtype N N

wtype N N

Table 8-2. IC Properties Cross-Reference Table [continued]

Sch. / Lay. > S L S L S L S L S L S L S L S L

Property O=Any object, B=Blockage, D=Design root, E=Extent,I=Instance, N=Net, A=Net attribute, P=Path, C=Pin,F=Power port, G=Port shape, H=Port, S=Shape,Y=Symbol, V=Via, X=N/A

Tool/Flow >

SD

L

CD

L

ICplan

ICblocks

ICcom

pact

ICtrace

ICextract

ICLink

IC Station User’s Manual, v8.9_9 8-9

Page 214: Icstation User Manual @Vins

Cell Requirements Design Requirements

rnal

r in

g

he

r

Cell Requirements

Checking Cells

Did you perform the following cell-related tasks?

• Place all cells specified in your EDDM design viewpoint into the celllibrary.

• Ensure that standard cells are of the type “standard cell.”

• Assigne a site type to each standard cell, feedthru cell, external cell,left_cap cell, and right_cap cell.

• Ensure that blocks are of the type “block.”

• Ensure that feedthru cells are of the type “feedthru.”

• Ensure that pad cells are of the type “external.”

• Ensure that cells that are sharing diffusion contain a shape with an exteaspect on the cell boundary layer (the reserved floorplan layer named“fp1”).

• Ensured that cells of the same site type are constructed in the same omirrored orientation so that power lines will route properly.

In order to promote optimal design performance, did you perform the followincell-related tasks?

• Create standard cells, spacer cells, and feedthru cells whose width in tX-direction is a multiple of a full user grid.

• Create feedthru cells that contain no more than one feedthru pin (powepins are allowed).

• Specify user-defined feedthru for use during placement and routing.

IC Station User’s Manual, v8.9_98-10

Page 215: Icstation User Manual @Vins

Design Requirements Cell Requirements

only

e

ets

oint

grid

r

lty

in.

r

Pin Requirements

If a blockage surrounds a pin on the same routing level, you can route the pinunder the following conditions:

• The transition to another routing level is allowed.

• A via can fit within the pin or is the same size as the pin on the blockagrouting level.

Before you run any of the automated layout tools, make sure your design methe following conditions:

• The size of a pin should be larger than zero. Pins of zero size, called ppins, can cause routing problems.

• The spacing between pin center points should be a multiple of the halfor full grid. For long pins, you should space them according to theircenterlines instead of their center points.

• The minimum Euclidean distance between pins should be larger than oequal to the sum of half of the via's width and the minimum path-to-viaspacing. If this distance between pins is too small, you will have difficuputting a via immediately below these pins in a channel.

You can use two types of pins in a cell:

• Signal pin. Power paths or signal paths can be connected to a signal p

• Power pin. Only power paths can be connected to a power pin. If powepins exist in a feedthru cell, they should meet the following criteria:

o Power pins line up with cells that have the same site type.

o The power path width is uniform throughout the library.

o Power paths connect correctly.

IC Station User’s Manual, v8.9_9 8-11

Page 216: Icstation User Manual @Vins

Cell Requirements Design Requirements

f thet and

ess are

eed

r

an

in the

ort

geting

, the. Iflly-cell

o Power pins of standard cells of the same site type should line up. Ipower pins are not lined up, they are spaced apart during placemenrouting.

o The Euclidean distance between different power pins must not be lthan the wire-to-wire minimum spacing, even when the power pinsin different routing layers.

Port Requirements

You can place ports at any Y coordinate inside the cell boundary; you do not nto place ports at the top or bottom edge of a cell. The$get_cell_boundary()function returns the points of a cell’s boundary.

You name a port by attaching a Phy_pin property to it. You create ports eithemanually or by using the$build_lib() function. The $build_lib() function createsports for an entire library of cells.

The ports within your cells must meet the following conditions before you runautomated layout:

• Port shapes must be defined on a routing layer that has been defined Process.

• The ports shapes must have sizes greater than zero.

• Add the Phy_pin property to all ports in the physical layout so that the pname matches the physical pin name in the schematic.

• Port shapes must be part of the external aspect of the cell.

• A port on a routing level must not be completely surrounded by a blockaon that level. A port completely surrounded by a blockage prevents rouout of the associated pin, except in these cases:

o If the edge of the blockage and the edge of the port shape coinciderouting is enabled in the direction orthogonal to the coincident edgesthe blockages are not defined, routing over-the-cell and/or block is fuenabled. Blockages must have an external aspect to allow over-the

IC Station User’s Manual, v8.9_98-12

Page 217: Icstation User Manual @Vins

Design Requirements Cell Requirements

cktherou

ock

gtopeess

d.

ce

ed

d inbe

ayts

the

e

and/or block routing. To determine whether over-the-cell and/or blorouting has been performed, you need to peek the cell to check whethe cell or block contains internal routing on the specified layers. Yuse the$peek() function to display the internal aspect of the selectedcell instances in the active context. The internal aspect of a cell or blis a view of the layout at a lower level of your design hierarchy.

o If the $port_styles Process variable defines a port to have two routinlevels, then in order to allow the router to place a via or contact on of a port, the perimeter of the port must enclose the perimeter of thcontact or via cell. For more information about the $port_styles Procvariable, refer to the section “$port_styles” in the IC Station ReferenceManual.

• Use $port_height to set port heights for each port style that you define

Ports should meet the following conditions so that you get optimum performanfrom the automated layout tools:

• If you use ports for vertical metal routing, place the ports on a user-defingrid for better routing results.

Ports should be centered on the user-defined grid that has been definethe$user_gridProcess variable. The $user_grid Process variable shouldgreater than or equal to a wire-to-via pitch on that layer.

• With 2.5 or 3.5 levels of routing, poly ports should either be placed halfwbetween the vertical metal ports or on the half grid. This port placemengives the Router its optimum port placement. However, the Router doeconnect ports not found on grid.

With 3.5 levels of routing, the Router uses two metal layers for routingchannels, and one poly layer for stubbing connections out of the cell torouting channel.

• The extent of ports in one routing level should be at least as large as thlargest via on the same level.

IC Station User’s Manual, v8.9_9 8-13

Page 218: Icstation User Manual @Vins

Cell Requirements Design Requirements

leftbe

in

s

ugnal

ed.

tstillt be

• Pins and/or ports should be at least wire-to-via spacing apart from the and right boundary of its cell as defined in the Rules file, and they shouldplaced on either a half-grid or multiple of a half-grid from the edge. Thefirst and last ports and pins should be 1/2 minimum spacing as definedthe Rules file.

• If two or more ports must be connected by the Router and if these porthave the same name, then use the$define_must_connect() function tospecify this.

• Some of your cells can contain ports that have the same name, but yomight not want to use some of them for feedthrus because part of the sipath contains a highly resistive layer such as poly. In this situation, youshould add the Route_set property to each port shape and provide adifferent integer value for each occurrence of the Route_set property.Figure8-1 shows 3 ports to which the Route_set property has been addThe two ports that contain the Route_set property with a value of 1 areconsidered to be physically connected and can be used as feedthrus.Routing to one pin routes to the all other pins with the same Route_sevalue. The port that contains the Route_set property with a value of 2 isconsidered to be physically connected to the other ports, but should noused for feedthrus.

Figure 8-1. Adding the Route_set Property to Ports

For more information about theRoute_set property, refer to thePropertiesReference Manual.

Route_set = 1

Route_set = 2

Route_set = 1

IC Station User’s Manual, v8.9_98-14

Page 219: Icstation User Manual @Vins

Design Requirements Cell Requirements

thehs

site will

red

be

er to

st

ock

ge.

llht

Path Requirements

• The centerline of a signal path should be on the user-grid.

• The centerline of a power path should be on the user-grid.

• Power paths of a cell should be symmetric with respect to the Y-axis, ifpower line is allowed to be mirrored in the X-dimension. If the power patof a cell are not symmetric, the power pins are spaced apart.

• Cells in either the same or mirrored orientation should have the same type. This way, when same site type cells are abutted, the power pathsroute properly. If you do not construct these cells with the same or mirroorientation, the power paths will not route properly.

• The width of power paths for standard cells of the same site type shoulduniform throughout a library.

Blockage Requirements

• A single blockage layer should be defined for each explicitly definedrouting level in the Process.

• Blockages cannot completely surround a port on the same level in ordprevent routing of the associated pin.

• An unobstructed path should be constructed from the port to the neareblock boundary when routing pins on blocks not using over-the-blockrouting.

• Follow the Operating Procedures instructions for preventing over-the-blrouting when blockages are not defined.

• Avoid creating a blockage between a power pin and its nearest cell ed

• To promote optimal design performance, you should create verticalblockages on a cell which are one-half design rule spacing from the ceboundary, unless the vertical blockages extend to the left most and rig

IC Station User’s Manual, v8.9_9 8-15

Page 220: Icstation User Manual @Vins

Cell Requirements Design Requirements

the

ia

ell.

two

thshe

,you

t

nd

most extent of the cell. The$get_cell_boundary() function returns thepoints of a cell’s boundary.

Via Cell Requirements

Unusual errors in running automated layout are frequently the products ofimproper via cell definitions. The $create_via_cell() function can be used toautomatically create a via cell using the specified layers, polygon sizes, and current active process.

If you created the via cell in another manner, did you perform the following vcell-related tasks?

• Ensure that via cells are of the cell type “via.”

• Ensure that the origin is in the center of the via.

• Create vias with exactly two shapes on the external aspect of the via c

• Associated the two shapes on the external aspect of the via cell with therouting layers being interconnected.

You can optionally define an internal layer by using the$signal_via_cellProcess variable, which is used to space the contacts and vias from paduring routing and compaction. If you do not define the internal layer, tRouter and Compactor use the actual shapes on the routing layers forvia-to-path spacing.

• Use the$add_to_port()function to define a single port named “v” that hasas port members, two shapes that exist on the two routing levels. Whendefine a cell to be of type “via,” the system automatically defines a pornamed “v.” The contact is cut on the internal aspect of the via.

• Confine data on the external aspect to the following: two shapes on therouting levels, the port named “v,” or property text. Placement, routing, afloorplanning can fail if any other data exists on the external aspect.

IC Station User’s Manual, v8.9_98-16

Page 221: Icstation User Manual @Vins

Design Requirements Cell Requirements

is

• Ensure that the center point of the via is on grid, and put the via cell's

property text and special mask data on the via cell's internal aspect. Thenables optimal design performance.

IC Station User’s Manual, v8.9_9 8-17

Page 222: Icstation User Manual @Vins

Cell Requirements Design Requirements

IC Station User’s Manual, v8.9_98-18

Page 223: Icstation User Manual @Vins

GR)es and

, you

ayso

hichne

Chapter 9Design Management in IC Station

This chapter contains a brief description of managing V8.2 or later IC Stationdesign data. It is not intended as a user's guide for the Design Manager (DMor the Integrated Design Manager (iDM). This section provides you with somguidelines that will help you to accomplish several design management taskto avoid some common mistakes. This section also contains examples andchecklists for several common design management tasks.

Design Management OverviewIn general, you should always use the Integrated Design Manager or iDM tooperate on your designs. By using a location map and design configurationssimplify design management tasks. Also worth noting is that ICgraph and theDesign Manager do not exchange session information when design data ismodified by any of the Design Manager functions. Therefore, you should alwunload cells from the ICgraph session before you use the Design Manager tmanipulate a design object in any way.

The Design Manager provides a graphical user interface and platform from wdesign management operations can be accomplished with ease. Basic desigmanagement functions are integrated within ICgraph, and can be found in thMGC > Design Management menu. The integrated design managementfunctions are referred to as the iDM functions.

IC Station User’s Manual, v8.9_9 9-1

Page 224: Icstation User Manual @Vins

Why Use the Design Manager? Design Management in IC Station

in

ichhe as a

art ofn

The following list contains some of the available operations in the DesignManager:

• Copy, move, delete, rename, and change references

• Revert the version on versioned design objects

• Report design objects (for example, references and hierarchy)

• Check for broken references

• Set the version depth on versioned design objects

• Build design configurations and global operations for all design objectsthe configuration (such as copy, release, and change references)

For a complete list of the available functions, refer to theDesign ManagerReference Manual.

iDM operations include the following:

• Copy, move, delete, and change references

• Design hierarchy browsing

Why Use the Design Manager?Two disk files represent each ICgraph cell. One is the ASCII attribute file, whcontains the information for versioning and inter-cell references of the cell. Tother is the binary data file. The Design Manager operates on these two filesunit, and makes sure that they remain intact at all times.

The Design Manager updates the inter-cell references in the attribute file as pthe design management operations whenever possible. For more informatioabout references, refer to the section “Data Integrity” in this chapter.

IC Station User’s Manual, v8.9_99-2

Page 225: Icstation User Manual @Vins

Design Management in IC Station Design Object Identity

copy

ts.ique

and

thee two

all

, youent

dingcept

r

dcellnce

The Design Manager assigns a new object UID to new objects created by theoperations. For more information on UIDs, refer to the following section, “DesignObject Identity” in this chapter.

Design Object IdentityIC Station cells, Processes, and library cells, are referred to as design objecICgraph recognizes a design object by using its pathname and its universal UnID (UID). A parent design object has all of its child design objects' pathnamesUIDs recorded in its attribute file under the reference list. It is important toICgraph that the child design object, located in the reference pathname, hassame object UID as the one recorded in its corresponding references. If thesUIDs do not match, IC Station automatically tries to repair this mismatch bysalvaging the references. If the salvage is successful, the message:

“Warning: reference to cellchild in parent cellparent has been salvaged.”

If the salvage fails, the child cell is not loaded into memory. If this happens, cCustomer Service for assistance.

Data IntegrityBecause ICgraph recognizes a design object by its pathname and object UIDshould use the Design Manager /iDM operations to perform design managemtasks. This allows the Design Manager to update the reference pathname anobject UID as part of its functionality whenever possible. You should avoid usthe operating system commands (/bin/cp or /bin/mv) to operate on the files, exin a few specific cases (discussed in the section “Location Maps”). You shouldalso avoid using a text editor to edit any ASCII attribute file.

However, misuse of design management functions causes problems for youdesigns. The following examples illustrate misuse of the Design Manager:

• Changing references on a parent design object that results in duplicatereferences to the same subcell found in that parent cell. For example, if`top' has references to cell `/xyz/a' and `/xyz/b', and you change refere

IC Station User’s Manual, v8.9_9 9-3

Page 226: Icstation User Manual @Vins

Location Maps Design Management in IC Station

a

ignn.

willsign you

and in thement

s

s,

er

yn). If

from `/xyz/b' to `/xyz/a', now cell `top' has two references to `/xyz/a' asresult of change reference.

• Moving child design objects (subcells) without changing the parent desobject's (top cell) reference, resulting in broken references in the desig

When information in the reference does not match with the design object itreferences, the data integrity is broken. In the two examples above, ICgrapheither fail to load the design, or fail to display the design hierarchy. In the demanagement operations discussed in later sections, a list is provided to helpavoid breaking the design data integrity.

Location MapsLocation maps are ASCII files that define the mapping between soft prefixeshard pathnames. Location maps manage design data and idea componentsheterogeneous or homogeneous environments, making your design managetasks easier. The following are some of the benefits of location maps:

• Allow you to retrieve designs without a rigidly structured hierarchy of linkand network mounts (especially on UNIX platforms).

• Allow pathnames that lead to data without regard for machine types.

• Allow Mentor Graphics applications to adapt to your network.

• Allow you to set up projects without root or network administratorprivileges.

• Provide easily administered redundancy for shared design componentsuch as standard cell libraries.

For example, assume that there are a set of cells that are also used byanother project team. To reduce network traffic, these shared cells arecopied over to another node so that they are locally available to the othproject team. Assuming that these shared subcells are fairly stable andrequire no more change, you can use the UNIX copy command to copthem over (or tar the design onto a tape and untar it at the new locatio

IC Station User’s Manual, v8.9_99-4

Page 227: Icstation User Manual @Vins

Design Management in IC Station Copying Design Objects

ther,thee inign atwhenheheyase,

cing

rsthengeo

more

, thee theain

the

, and

these two project teams eventually need to combine their designs togein the case of using a location map (using soft prefixes to reference to shared subcells), you only need to change the mapping hard pathnamthe location map and do not need to change any references in the desall. In the case of not using a location map (hard pathnames are used referencing the shared subcells), the other project team must change treferences on all the parent cells that instantiate these subcells when tcopy these shared cells over to their workstations. In the final design phwhere the work done by two project teams must be combined, you willhave to change references again on those parent cells that are referenthe cloned, shared subcell directory.

• Allow data to be moved without changing internal design references.

For example, when you move a design across networks and need to fiarchive (tar) your design on a tape and later restore your design from ttape on a different network, if you are using location map, you can chathe pathname mapping in the new location map and you do not need tchange any design data (no need to change references).

To take advantage of these benefits, use location maps in your designs. Forinformation about using location maps in your designs, refer to the section“Design Management with Location Maps” in theDesign Manager User'sManual.

Copying Design ObjectsWhen you use the Design Manager or iDM functions to copy a design objectcopied design object is given a new pathname and a new UID. When you usDesign Manager or iDM operations to copy multiple design objects that contcross-references between the design objects, the cross references areautomatically updated to reflect the new pathnames and new UID, retaining data integrity of your design.

The reference update applies to design objects copied by that copy operationdo not apply to previously copied design objects. For example, if you want tocopy a parent cell and child cell to a new directory and want to retain the

IC Station User’s Manual, v8.9_9 9-5

Page 228: Icstation User Manual @Vins

Copying Design Objects Design Management in IC Station

anderentll

int use

ptult

pyut

parent-child relationship in the copied cells then both cells must be selected copied in one copy operation. If you copy the child cell first and then copy thparent cell later (two separate copy operations), then the reference in the pacell still points to the child cell in the original location, not to the copied child cein the new location. If this is the case, then you must perform one more steporder to have the copied parent cell reference the copied child cell, you musthe Design Manager (or iDM) to change the references of the parent cell.

If a cell with the same leaf name as the selected cell already exists in thedestination directory during a copy operation, the Design Manager will promyou, asking if you wish to overwrite the existing cell. You can change this defabehavior by setting the option in the copy function so that it will either not coanything at all if a name collision occurs, or overwrite the existing cells withoasking. Table9-1 lists several recommendations for copying design objects.Figure9-1 illustrates how to copy a hierarchical design object.

Table 9-1. Hints for Copying Design Objects

Task Recommended Not Recommended

Copy subhierarchy Select all cells in thatsubhierarchy and copythem in one copyoperation. If cells in thesubhierarchy are located inmore than one directory,then build a configurationfirst and copy theconfiguration.

Do not copy cells in morethan one copy operation;references will not getupdated.

Copy a cell and useboth the originaland copy cell in thesame design.

Be sure to use the DesignManager or IDM to copythe cell so that the copygets a new UID as well as anew name.

Do not copy the cell usingshell copy commands suchas /bin/cp. The copied cellwill have the same UID asthe original, which willcause problems when bothcells get loaded in the sameICgraph session.

IC Station User’s Manual, v8.9_99-6

Page 229: Icstation User Manual @Vins

Design Management in IC Station Copying Design Objects

Steps:

1. Select A, B, and C.

2. Copy to directory /proj/Q in one copy operation.

Figure 9-1. Copying Subhierarchies

Make multiplecopies of a cell andmodify these copiesin ICgraph. Thenreplace the originalcell with one of thecopy cells.

Use the Design Managercopy operation to makeduplicate copies of theoriginal cell. When doneediting, close the ICgraphsession (or close all ICwindows and unload cells).Use the Design Managermove operation to replacethe original cell with theselected copy.

Do not instantiate both thecopy and original in thesame parent cell, and lateruse the Design Manager tochange references to createduplicated references.Do not use the DesignManager to move or changereferences on a cell whilethe cell is still loaded inICgraph.

Table 9-1. Hints for Copying Design Objects [continued]

Task Recommended Not Recommended

Directory/proj_P/layout

A

B C

P

Directory/proj_Q/layout

A

CB

Q

OneStepCopy

IC Station User’s Manual, v8.9_9 9-7

Page 230: Icstation User Manual @Vins

Moving Design Objects Design Management in IC Station

ovedt that, the

t

ting

rs,

Moving Design ObjectsWhen you move a design object using Design Management operations, the mdesign object gets a new pathname, but its UID is unchanged. It is importanall references to moved design objects get updated. Like the copy operationmove operation automatically updates inter-cell references that involve cellsmoved by this operation. Like the copy operation, the move operation cannoupdate references to objects that were moved previously.

If a cell with the same leaf name as the selected cell already exists in thedestination directory, the move operation prompts you for overwriting the exiscell. You can change this default behavior by setting the option in the moveoperation so that it will either not move anything at all if a name collision occuor overwrite the existing cells without asking. Table9-2 lists recommendationsassociated with moving design objects.

Table 9-2. Hints for Moving Design Objects

Task Recommended Not Recommended

Movesubhierarchy

Select all cells in that subhierarchyand move them in one moveoperation. If cells in the subhierarchyare located in more than onedirectory, first build a configuration,copy the configuration and delete theoriginal copy (there is no MoveConfiguration function).

Don't move cells inmore than one moveoperation because thereferences will not getupdated.

IC Station User’s Manual, v8.9_99-8

Page 231: Icstation User Manual @Vins

Design Management in IC Station Moving Design Objects

or C.

Figure9-2 illustrates how to move a subhierarchical design object.

Steps:

1. Select A, B, and C.

2. Move to directory /proj_Q.

3. Change the references in object P and all objects that reference A, B,

Move the entiredesign to adifferentlocation on thesame network.

If the entire design is located in onedirectory and there is nothing else inthe directory that you don't want tomove, select that directory and usethe move operation.

Use the shell utility to move thedesign if you are using a locationmap; the only thing you need to do isto modify the pathname in thelocation map entry.

If the original design is located inmore than one directory, you canbuild a configuration; copy theconfiguration; and delete the entriesin the configuration.

Don't leave brokenreferences as a resultof the moveoperation. Brokenreferences can becreated if you don'tfix the references tothe moved objects.

Tar the designonto a tape andship it to aremote site;untar the designon a differentnetwork/nodeand use it.

Use a location map and softnames forthe design container directory. Thenonly the location map entries need tobe changed at new site.

Don't leave thereferences unchangedunless you are using alocation map - it isunlikely that thedesign can be loadedif you don't fix thereference pathnames.

Table 9-2. Hints for Moving Design Objects [continued]

Task Recommended Not Recommended

IC Station User’s Manual, v8.9_9 9-9

Page 232: Icstation User Manual @Vins

Changing References Design Management in IC Station

designsed byThen your

e (for

ll'sndnce

, ifell

Figure 9-2. Moving Subhierarchies

Changing ReferencesYou use the Design Manager (or iDM) to change reference operation to fixreference pathnames. Reference pathnames must be fixed when referencedobjects are moved, so the change reference operation usually does not get uitself, but is rather used as a mending tool after moving or copying designs. change reference operation should be used with great care because it can ruidesign if you use it improperly. The most common mistakes are:

1. Subcells can not be found in the new pathname after change referencexample, a result of a typing error).

2. Changing a reference results in two identical pathnames in a parent cereferences. This is usually the result of instantiating both the original acopy of a subcell, and later using the Design Manager to change referefrom one subcell pathname to the other in the parent cell. For exampleyou intend to replace all instances of a cell (cell A) with one other cell (cB):

Directory/proj_P

A

B C

P

Directory/proj_Q

A

CB

Q

OneStepMove

ChangeReference

IC Station User’s Manual, v8.9_99-10

Page 233: Icstation User Manual @Vins

Design Management in IC Station Changing References

use

ye

and

sign.

renty has for

d to.oo',. But,orthene

lt inuse

onotd

eft in

o If the parent already has instances of both A and B, then you need toICgraph to select all instances of A and replace them with B:

$select_by_name(["A"], @cell_name); $replace_cell("B", @replace);

o If the parent cell only has instances of A, then you can move or copcell B to A (overwrite cell A with cell B), and use ICgraph to open thparent cell, peek any instance of A (which should force an update),save the parent cell.

3. Changing references in part of the design, but not all objects in the deThis usually happens when your design is located in more than onedirectory and you only change references for objects in one of thedirectories. Some users put their Process object and library cells in diffedirectories. Since Process can reference via cells, and the library usuallnumerous references, it is important not to forget to change referencesthe Process and library cells as well as regular cells.

If you forget to change references for part of your design, then ICgraphcannot match the reference with the corresponding cell as it is supposeFor example, all references to cell `foo' are with pathname `/old_path/fand you want to change the references so that they are `/new_path/foo'if somehow you miss part of the design when you change references fyour design, and there is still some cells referencing to `old_path/foo', ICgraph will think there are two different cells with the leafname `foo': onis `/old_path/foo' and the other is `new_path/foo'. This mistake can resuduplicated references showing up in one cell and corrupt the cell or caICgraph to fail to display the design hierarchy because `/old_path/foo'might no longer exist. While this problem is easy to run into, it is difficult tdetect. One way to find out if you are referencing any cell that you are supposed to in your design is to build a configuration of your design andelete all entries that have the valid pathnames, then check each entry lthe configuration to see if it is valid.

IC Station User’s Manual, v8.9_9 9-11

Page 234: Icstation User Manual @Vins

Design Configuration Design Management in IC Station

ain, a

mightt not

lobal

h

the

s.to

sat it

It is a good idea to check references using theEdit > Check Refs menu item onyour design after changing references to ensure the design data integrity. Aglocation map is recommended to simplify the design management tasks andreduce the necessity of changing references. The check reference operationnot find the broken references because the cells with the old pathnames mighhave been deleted yet.

Design ConfigurationA design configuration is a collection of all the unique design objects in yourdesign: layout cells, library cells, process; and (potentially) Rules files,viewpoints, and schematic. A design configuration is an ideal object to bereferenced when completing design management tasks because it has the gview of your design and supports design-wide operations.

Configuration Object

The Design Manager configuration object is a view of your design data whicallows design objects to be manipulated as a group with configurationmanagement functions.

To create a configuration, you must first create a configuration window, usingDesign ManagerWindows > Open Configuration > New menu item. Aconfiguration window is displayed and is ready for you to begin adding entrieTypically, you want to only add the top cell of your design as a primary entry inthe configuration. You can do this by using theEdit > Add Entry menu item andselecting the top cell. Then you use theObject > Build menu item to build theconfiguration. To build a configuration, traverse down the design hierarchy,starting from the top cell that you added to the configuration, and list all theunique layout cells, library cells, Process, and Rules files that are used in thidesign in the configuration. You can optionally set the build rules in a way thfilters out design objects of specified types you do not want.

IC Station User’s Manual, v8.9_99-12

Page 235: Icstation User Manual @Vins

Design Management in IC Station Design Reuse

,

n geteole

ely tohowu areone

r

Using Configuration in Design Management

The Design Manager configuration window provides design-wide operationssuch as the copy/release configuration and change reference. Design-wideoperations, such as copy configuration, ensure that all references in the desigupdated after the copy is complete, in turn ensuring design data integrity. Thcopy configuration operation is most useful when you make a copy of the whdesign, while the design is located in more than one file system directory.

Design ReuseIt is a common practice to reuse part of a design in other project(s). It is relativeasy for you to use cells from another project; you provide the full pathnamethese cells when instantiating them in ICgraph. However, it is confusing as toto bring these cells into the project once the sharing is no longer needed. If yonow done with your project, and want to put all the cells used in this design indirectory before tape out or archive, you should do the following:

1. Invoke the Design Manager and use theWindows >Open Configuration > New menu item to bring up the configurationwindow for creating a new configuration. For example:

$open_configuration("", 0);

2. Use theEdit > Add Entry menu item to select and add the top cell of youdesign into the configuration. For example:

$add_configuration_entry("top_cell", "Ic_cell_template", @false);

IC Station User’s Manual, v8.9_9 9-13

Page 236: Icstation User Manual @Vins

Design Reuse Design Management in IC Station

ed

theess.heruse

e:

d ind to

y,ts

3. Set build rules, if necessary. For example, to exclude all references toEddm_design_viewpoint typed objects:

$select_all(); $set_build_rules(@on, [], [], ["Eddm_design_viewpoint"], ["exclude"], [], [], [], [], [], [], @exclude);

4. Use theObject > Build menu item to build the design configuration. Theconfiguration window should now have a list of all the objects that are usin your design. For example:

$build_configuration();

5. In the configuration window, select all of the objects that are currentlyalready in the target directory and delete them. The target directory is directory that you want all the cells to be located in the end of this procTo select all objects that are already in the target directory, you can eitselect them one by one (by holding the Ctrl-key and click the Select mobutton), or you can use the $select_config_entry() function and usewildcards in the Name entry (see example below). Then use theEdit >Remove Entry menu item to delete all the selected entries. For exampl

$select_config_entry("*/my_proj/*", "", 0, @reselect); $remove_configuration_entry();

Now the objects listed in the configuration are the objects that were useyour design, but are located in other project directories. Thus, you neecopy them into the target directory.

6. UseEdit > Copy to copy all these objects into the target directory. Forexample:

$copy_configuration("/my_proj", @cancel, @nopreview);

7. Activate a Navigator window and change the directory to the targetdirectory. If you have a Navigator window opened in the target directorcall $update_window() to get the copied objects listed. Select all objecand change all the references to the copied object so that they now allreference the copy in the target directory. For example:

IC Station User’s Manual, v8.9_99-14

Page 237: Icstation User Manual @Vins

Design Management in IC Station Design Reuse

e, ifdo

for

$select_all();$change_object_references(["/other_proj","/my_proj"],

@current, @nopreview, @lock);

This step is easy if you use the location map in your design. For examplall cells in “/other_proj” are referenced by “$OTHER_PROJ”, then you not need to change any reference. Modify your location map entry for$OTHER_PROJ to map to the target directory.

Now, your design should be self-contained in the target directory and ready tape out or archive.

IC Station User’s Manual, v8.9_9 9-15

Page 238: Icstation User Manual @Vins

Design Reuse Design Management in IC Station

IC Station User’s Manual, v8.9_99-16

Page 239: Icstation User Manual @Vins

sign

or

out

f

s.ck

nks.ing

tive.

Chapter 10Floorplanning Operations

Floorplanning is the process of arranging the major blocks or sections of a dein preparation for detailed layout. The process involves one or more of thefollowing tasks:

• Reading connectivity information from a Design Architect IC schematica netlist, such as Verilog or Spice, into the IC Station database.

• Placement of large macro blocks whose layout is already complete.

• Creating the boundary and i/o port locations for macro blocks whose layhas not been completed.

• Creating rows, which are objects that act as guides for the placement ostandard cell instances.

ICplan is the IC Station tool you use to generate and edit hierarchical floorplanICplan supports standard cell designs, block designs, and mixed cell and blodesigns. ICplan consists of floorplan hierarchy tools and floorplan edit tools.Autofloorplan, referred to as the Floorplanner, is the primary floorplan creatiotool for standard cell designs. The Autofloorplan tool is also included in ICblocYou can operate ICplan within the IC Station environment or in batch mode usthe apr_batch routine.

Because IC Station supports full hierarchical design, you can manipulate afloorplan across multiple levels of the design hierarchy. To do this, set the accontext into any floorplan block, and continue your floorplanning at that level

IC Station User’s Manual, v8.9_9 10-1

Page 240: Icstation User Manual @Vins

Area Estimation and Partitioning Floorplanning Operations

s at

.

n the

veoue then a

thes

tn ael ofct in

up a

The Floorplanner gives you immediate visual feedback on how your decisionone level of hierarchy affect the next level up in the hierarchy. You canexperiment with different layout alternatives to take advantage of this feature

Area Estimation and PartitioningIn the floorplanning process, you evaluate the design schematic or netlist todetermine what topological area you want each part of the design to occupy otop-level cell.

ICplan lets you take advantage of layout design partitioning in order to improaccuracy and productivity. If your design includes multiple copies of a circuit, yonly need to estimate the area for that circuit once, then use ICplan to replicatfloorplan shape. You might want to modify the floorplan shapes so they all fit igiven area. ICplan lets you modify a floorplan shape while automaticallymaintaining its total area; it preserves the work you did to capture the areaestimation. Area estimation and layout partitioning give you confidence that layout fits into a given area before you begin detailed layout. ICplan estimatelayout areas based on your parameters.

Hierarchical RepartitioningICplan supportshierarchical repartitioning, which lets you interactivelyrearrange your design's hierarchy so it is more suitable for the layout withoumodifying your source schematic. You can eliminate a level of hierarchy, flatteportion of your design, or combine several components and create a new levhierarchy. You can select a part of the schematic and create a floorplan objethe layout that is actually part of the layout hierarchy.

Figure10-1shows the hierarchy repartitioning that brings two blocks and cellsone level in the hierarchy. You can select a part of the schematic and createfloorplan object in the layout that is actually part of the layout hierarchy.

IC Station User’s Manual, v8.9_910-2

Page 241: Icstation User Manual @Vins

Floorplanning Operations Routing to Floorplan Objects

the

k of

ttomo

Figure 10-1. Hierarchy Repartitioning

Routing to Floorplan ObjectsEven though the blocks in the layout might still be empty, you can complete interconnections at a given level of the floorplan and run connectivity checksagainst the schematic. You can run extraction with ICextract for early feedbaccritical nets. The criticality of the nets is based on capacitive and resistivethresholds, and the feedback is given in the form of a report.

Floorplanning Methodologies

Bottom-Up

Use bottom-up methodology to optimize the design of cells that are at the boof the design hierarchy. First, floorplan on the leaf cells—cells that contain nunderlying hierarchy. Bottom-up methodology has the following features:

IC Station User’s Manual, v8.9_9 10-3

Page 242: Icstation User Manual @Vins

Floorplanning Methodologies Floorplanning Operations

he

thy.

evel

edent to

e

ts

n

n

erseveses

• Placed and routed leaf cells become instances in the higher levels of tdesign hierarchy.

• Layout area is exact at each stage, but the layout process may be lengbecause more rework is necessary in order to achieve required results

• Layout area is optimized for each leaf cell.

• Layout area is not optimized globally.

Top-Down

Use top-down methodology to optimize the design of cells that are at the top lof the design hierarchy.

Top-down floorplanning allows you to determine how signals should be bussand assigned at the top level of the design. It also allows the signal assignminfluence signal flow down through the hierarchy.

You first floorplan, place, and route the top-level cells. Then you complete thlayout for the cells that are lower in the hierarchy.

• Physical contents of a cell need not be defined; only an extent and porneed definition.

• Area estimation algorithms allocate the amount of space likely to berequired by a block prior to placement and routing. This area estimatiocapability is a key element to top-down methodology.

• Linking and unlinking logic to the floorplan shapes enable you to assigand deassign cell boundaries to blocks prior to placing and routing.

• Automatic pin assignment provides intelligence at a high level; it considconnectivity in determining where pins should be placed on an instancwithin a cell so as to minimize congestion in the cell. Pin assignment driglobal bussing; it also optimizes locally. Automatic port assignment donot consider connectivity at the parent level of hierarchy.

• Placement and routing generate an accurate estimate of layout area.

IC Station User’s Manual, v8.9_910-4

Page 243: Icstation User Manual @Vins

Floorplanning Operations Row Sculpting

ach

s:

isng

ed onheefulcks,

• You can change the floorplan easily, but the layout area is not exact at estage.

Row SculptingICplan lets you perform row sculpting, which allows floorplan rows to fill theareas not occupied by blocks.Figure 10-2 shows row sculpting.

Figure 10-2. Row Sculpting

Additional ICplan CapabilitiesThe Floorplanner provides the capability for you to perform the following task

• Specify pin placement in a layout block

• Create internal vertical power busses

You can create both horizontal and vertical floorplan rows on which to placeinternal standard cells. When you create a row in ICgraph, the thick solid linethe origin line of the row. The Placer puts the origins of the standard cells alothis line. The dotted-line rectangle shows the extent of cells that can be placthis row. The Placer computes the height of the floorplan row by examining tcells in the library and finding the size of the tallest one. Floorplan rows are uswith mixed standard cells and blocks. If you have a mixed case with large bloyou can add rows to create placeholders for the standard cells.

Block

Block

Floorplan Rows

Floorplan Rows Fill AreaNot Occupied By Blocks

IC Station User’s Manual, v8.9_9 10-5

Page 244: Icstation User Manual @Vins

Additional ICplan Capabilities Floorplanning Operations

tal

d of

Younner

n in

IC Station supports multiple types of standard cells, such as analog and digicells. It also supports cells with different power abutment requirements. Thestandard cell site type is an integer; it is an attribute of both a floorplan row ancells placed in a row.

You can control the placement of ports that go on the periphery of a block byfloorplan rows, the$port_styles Process Variable, and the PORT_SITE field inthe$site_type Process Variable.

You edit floorplan shapes the same way you edit other shapes in IC Station.use the $notch() function to alter the form of a floorplan shape. The Floorplaholds the area of the floorplan shape constant while changing its form, as showFigure10-3.

IC Station User’s Manual, v8.9_910-6

Page 245: Icstation User Manual @Vins

Floorplanning Operations Additional ICplan Capabilities

Figure 10-3. Notch Floorplan Shapes with Constant Area

SelectedSide

SelectedSide

SelectedSide

IC Station User’s Manual, v8.9_9 10-7

Page 246: Icstation User Manual @Vins

Autofloorplan Parameters Floorplanning Operations

you

alset it

e

io,the

n

Autofloorplan ParametersFor designs dominated by standard cells, use the $autofloorplan() function toautomatically floorplan the design. The following are some of the parametersuse in floorplanning:

• Edge Gap. The edge gap sets the gap between the core and the externrows on which the pads will be placed. Set this gap or the system can automatically.

• Number of Rows. You can control the number of rows generated, or thnumber can be calculated automatically.

• Route Area Ratio. The route area ratio controls the vertical spacing(channel height) between rows. If you do not specify the route area ratthe system will estimate the ratio based on the number of connections indesign.

For more information on the parameter settings and the dynamics involved ifloorplanning, refer to the description of the$autofloorplan() function.

Floorplanning ProceduresThis section contains procedures that relate to floorplanning.

Setting up the Floorplanner

Set up the floorplanner with theSetup > ICassemble menu item. This opens theSetup ICassemble dialog box, shown in .

IC Station User’s Manual, v8.9_910-8

Page 247: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

log

ns.

ns.

an

Figure 10-4. Setup ICassemble > Floorplanning Dialog Box

The following describe the fields of the Setup ICassemble > Floorplanning diabox:

• Enable editing of pin shapes: Specifies that pin shapes are editable.

• Area estimation multiplier : Specifies a factor to apply to thefloorplanner’s area estimation.

• Left/Right Level: Specifies the primary horizontal routing level whichhelps the floorplanner identify on which side of a cell extent to place pi

• Top/Bottom Level: Specifies the primary vertical routing level whichhelps the floorplanner identify on which side of a cell extent to place pi

• Enable fixed pitch grid: Yes, opens the Fixed Pitch Grid window in theSetup ICassemble dialog box, shown inFigure 10-5.

Use fixed pitch gridding when you want to route on a custom grid. You cspecify a different grid for each routing level, and the grid can have

IC Station User’s Manual, v8.9_9 10-9

Page 248: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

not

different x and y values. However, if a route’s source or target pins areon the custom grid, then ARoute will not place the route.

Figure 10-5. Setup ICassemble > Floorplanning Dialog Box withFixed Pitch Grid

IC Station User’s Manual, v8.9_910-10

Page 249: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

of

g

g

h

.

The following describe the fields of the Fixed Pitch Grid section of the SetupICassemble > Floorplanning dialog box:

• Start grid from cell origin : Specifies the X and Y offset from the cellorigin from which to start the custom grid.

• Level: Displays the routing level, read from the Routing Levels section the Edit Process Override dialog box found in theFile > Process > Edit Proc Override pulldown menu.

• Horiz. Pitch: Sets the horizontal pitch of the custom grid for each routinlayer.

• Vertical Pitch: Sets the vertical pitch of the custom grid for each routinlayer.

Using the Hierarchy Window

The Hierarchy Window lists all instances by name in the current context. Eacunplaced instance is listed with one of the following cell type symbols:

• B for block

• E for external

• S for standard cell

When you place an instance, the cell type symbol disappears.

To open a Hierarchy Window, perform the following steps:

1. Display the Floorplan palette.

2. Execute the palette menu selection (Hier) OpnWin

To reposition the windows so that both the Hierarchy Window and the layoutwindow are visible, perform the following steps:

1. Reposition the Hierarchy Window to the left side in the Session window

IC Station User’s Manual, v8.9_9 10-11

Page 250: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

ingrchy

elect

ct

rm

Youou

ell'shisdarys:

2. Activate the layout window.

3. Pop the layout window to the top.

4. Reposition the layout window to the right side in the Session window.

Selecting an instance name in the Hierarchy window selects the correspondlayout instance. The following describes techniques for selection in the Hierawindow:

1. Use the LMB to select an instance name. Press and drag the LMB to sa set of consecutive names.

2. If you select an already-selected name, it will be unselected.

3. Click the “Select All” palette item on the Hierarchy window palette toselect all instances. Use function key F2, the “U” stroke, or the “UnseleAll” palette item on the palette to unselect all instances.

To place one or more instances in the layout from the Hierarchy window perfothe following steps:

1. Use the LMB to select the instance names you want to place.

2. Click the Place palette item on the Hierarchy window palette.

3. You are prompted to place each instance, one at a time in the layoutwindow. A message displays the name of the instance you are placing.can press the ‘f’ and ‘r’ keys to flip and rotate the instance image while ydrag it. Select a location for the instance with the LMB.

Cell Boundaries

By default, IC Station uses the rectangular extent of all data in a cell as the cboundary. Alternatively, you can specify your own boundary shape for a cell. Tis done by adding a shape on the reserved layer “fp1”. In most ways, the bounshape is like any other shape in the layout, but following are a few difference

1) Only one “fp1” boundary shape can exist in a cell.

IC Station User’s Manual, v8.9_910-12

Page 251: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

le if

lick

rea as a

m

)

2) The boundary shape always has aspect “both,” meaning it is always visibthe “fp1” layer is visible.

You can perform the following tasks to create and edit your cell boundaries:

• Drawing a Cell Boundary

• Adding a Rectangular Boundary

• Adding a Boundary Shape Surrounding the Layout

• Changing a Boundary Shape

Drawing a Cell Boundary

To draw a cell boundary perform the following steps:

1) Display the Floorplan palette.

2) Under the Cell Bndy header click the Draw palette item.

3) You can press-drag-release the LMB to draw a rectangular boundary or csingle points with the LMB to draw a more complex polygon. While you aredrawing the boundary, the area of the boundary displays and is dynamicallyupdated as you move the mouse. If you ran area estimation, the estimated aalso displays, and the ratio of the drawn area to the estimated area displayspercentage.

Note that unlike the regular Add Shape command, using the Draw palette itewill replace an existing boundary shape.

Adding a Rectangular Boundary

To add a rectangular boundary by specifying its X and Y dimensions (or areaexplicitly, perform the following steps:

1) Display the Floorplan palette.

2) Under the Cell Bndy header, click the SetXY palette item.

IC Station User’s Manual, v8.9_9 10-13

Page 252: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

ed).

four

the

ing

r onery

the

m the

3) You are prompted to supply any two of the following values:

• X dimension

• Y dimension

• Boundary area

• Aspect ratio (X/Y)

The result is a boundary rectangle (replacing the existing boundary if it exist

Note that you can enter arithmetic expressions in addition to numbers in thefields. For example, if you expect the height of the block to be 14 times thestandard cell height of 18.4, you can enter “14*18.4” as the Y dimension andfunction will do the arithmetic for you. These expressions can include Amplevariables and function calls as well, for example: “4 * bit_height”, wherebit_height is an Ample variable set to some number.

Adding a Boundary Shape Surrounding the Layout

To add a boundary shape surrounding the layout in a cell perform the followsteps:

1) Display the Floorplan palette

2) Under the Cell Bndy header, click the Fit palette item.

3) Select the desired options. You can choose either a rectangular boundary othat forms a contour around the layout. You can specify whether the boundasurrounds all of the layout or just the other instances placed in the cell.

The “FitRect” item on the Floorplan palette adds a rectangular shape aroundcell layout without prompting.

Changing a Boundary Shape

To change a boundary shape with SetXY so that its area is unchanged, perforfollowing steps:

IC Station User’s Manual, v8.9_910-14

Page 253: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

-cells

tem

hat

“Yione

d a

1) Display the Floorplan palette.

2) If you are changing the boundary of sub-cells, select instances of the subto be changed.

3) To change the boundary of the current context cell, click the SetXY palette iunder the “Cell Bndy” label. To change the boundary of the sub-cells of theselected instances, click the SetXY palette item under the “Inst Bndy” label.

4) If you know what you want for the X dimension of the cell boundaries, set tvalue in the “X dimension” field and set the “Y dimension” field to 0. If you knowwhat you want for the Y dimension of the cell boundaries, set that value in thedimension” field and set the “X dimension” field to 0. In either case, the functwill compute the other dimension by dividing the current area of the cell by thvalue you supply.

Manually Adding Rows

You can add rows to your design either horizontal, vertical, or in a set. To adsingle horizontal row, perform the following steps:

1. ExecuteObject > Add > Row:.

2. At the prompt bar, specify Site Number and any desired options.

3. Click onOrigin .

4. Add a horizontal origin line for the row. If you want to protect the portplacement, the row needs to be close to the top edge.

5. ExecuteUnselect > All.

To add a single vertical row, perform the following steps:

1. ExecuteObject > Add > Row:.

2. Specify Site Number and any desired options.

3. Click onOrigin .

IC Station User’s Manual, v8.9_9 10-15

Page 254: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

orm

e

e

4. Add a vertical origin line for the row.

To add a set of rows by area, perform the following steps:

1. ExecuteObject > Add > Rows by Area.

2. Specify Site Number, Num Rows, and any desired options.

3. Click onOrigin .

4. Add a dynamic rectangle for the area in which to enclose the rows.

Automatically Creating the Floorplan

To automatically create a floorplan for the active context of your design, perfthe following steps:

1. ExecuteFloorplan > Autofloorplan .

2. Set any desired options.

Viewing the Floorplan

1. View all to get immediate visual feedback on how your decisions at onlevel of hierarchy affect the next level up in the hierarchy.

2. To get a better view of the floorplan, remove the overflow layer from thset of visible layers, by performing the following steps:

a. Execute the pulldown menu selectionOther > Layers > Set VisibleLayers.

b. In the dialog box, specifyRemove in theAction field and click onOverflow.

IC Station User’s Manual, v8.9_910-16

Page 255: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

cksf the

the

plan

ut.

,

Updating and Showing Guidelines

The guidelines highlight the connectivity between the blocks. Since these blocurrently have no pins placed on them, the guidelines gravitate to the center oblocks. The numbers displayed next to the guidelines indicate the number ofconnections between the blocks. The width of the line is also an indicator of number of connections between the blocks.

1. Display the Floorplan palette.

2. Execute the palette menu selection(Guidelines) All.

3. Execute the palette menu selection (Guidelines) None.

Notching a Floorplan Row

You notch floorplan rows to increase or decrease their length. To notch floorrows, perform the following steps:

1. Select the rows to be notched.

2. Execute the palette menu selectionNotch.

3. To shorten the floorplan rows, notch the desired portion of the rows in.

4. To lengthen the floorplan rows, notch the desired portion of the rows o

Moving a Floorplan Row

You move floorplan rows to alter your design's general layout. To move rowsperform the following steps:

1. Select the rows you want to move.

2. Execute the palette menu selectionMove.

3. Move the rows.

IC Station User’s Manual, v8.9_9 10-17

Page 256: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

. To

k soedtE

Copying a Floorplan Row

You copy floorplan rows to quickly floorplan an area of your design. To copyrows, perform the following steps:

1. Select the row if it is not already selected.

2. Copy the row to the location like any other object.

3. Execute the menu selectionUnselect > All.

Deleting a Floorplan Row

You delete floorplan rows in the process of changing the layout of your designdelete rows, perform the following steps:

1. Select the rows to be deleted.

2. Execute the$delete() function.

Repartitioning The Hierarchy

In IC Station, you can move all of your currently placed blocks to a new blocthat you maintain current placement when you floorplan. This process is callrepartitioning the hierarchy. Before you repartition the hierarchy, you must firschange the netlist be resetting your mode to Connectivity Editing (CE). The Cmode lets you make any edits, and it also tracks and reports them.

Reset the mode to CE by selecting the following from the pulldown menu:

Context > Set Cell Config > Connectivity Editing

You can now repartition the blocks by performing the following steps:

1. ChooseSelect All from the pulldown menu.

2. Execute the palette menu selection,Floorplan > (Hierarchy) Partition .

3. Specify the cell name at the prompt bar.

IC Station User’s Manual, v8.9_910-18

Page 257: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

nt of,n

e the

alette

X ofer

ed,

nsggle

Placing PinsYou can have the floorplanner perform automatic or semi-automatic placemeinstance pins. You set this up and execute it with the palette menu selectionFloorplan > (Autoplc) Pins. Figure 10-6 show the dialog box that appears wheyou execute the palette menu selection,Floorplan > (Autoplc) Pins. You drivethe placement of selected pins as follows:

• If you want to place a given set of pins, just select the pins and executpalette menu selection,Floorplan > (Autoplc) Pins.

• If you want to place all pins on one or more instances, just select theinstances (make sure none of their pins are selected) and execute the pmenu selection,Floorplan > (Autoplc) Pins.

• You can combine the two techniques. For example, you can select pininstance A, pin Y of instance B, and the instance C, and the floorplannplaces X, Y, and all of the pins of C.

The following rules govern pin placement:

• Only pins on placed instances are placed. If a pin’s instance is not placthe floorplanner skips the pin.

• If the toggle, Skip already placed pins, is set, then the function skips pithat are already placed. You must unset the Skip already placed pins toto have the floorplanner modify pins that are already placed.

For further information on this function, see $autoplace_pins2002() in theICStation Reference Manual.

IC Station User’s Manual, v8.9_9 10-19

Page 258: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

in

ind

erns.

Figure 10-6. Autoplace Pins Dialog Box

The following items describe the elements of the Autoplace Pins dialog box.

• Placement Type: Specifies whether you want the floorplanner toautomatically set a location to begin the pin placement, or whether youwant to input a location manually.

o Automatic: The floorplanner automatically sets a location to begin pplacement.

o User specified location: The dialog box changes to appear as shownFigure 10-7. After setting up the values for the job, you are promptefor a location to begin the pin placement.

• Skip already placed pins: This toggle specifies what the floorplannershould do with pins that are already placed. Toggled on, the floorplannskips already placed pins; toggled off, the floorplanner re-places the pi

IC Station User’s Manual, v8.9_910-20

Page 259: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

Theer.

the

idth of

s.

ce

in

en

• Only place pins on selected instances: Specifies whether or not limit pinplacement to selected instances only.

• Pin shape type: Specifies the shape and position of placed pins.

o Minimum pin - edge: Specifies that the port shapes created by thefloorplanner are squares placed on an edge of their cell boundary. size of the square is equal to the wire width used on the chosen lay

o Area pin - span instance: Specifies that the port shapes created by floorplanner are rectangles that span the cell boundary where thefunction places them. One dimension of the rectangle is the wire wused on the chosen layer. The other dimension is equal to the spanthe cell boundary at the location where the function places the pin.

• Routing Level: Specifies the routing level name on which to place the pinThe option System Choice causes the system to choose the level.

• Bus sort option: Specifies the order in which the floorplanner should plabussed pins. Options are as follows:

o No sorting: The floorplanner makes no attempt to keep bussed pinsany order.

o Sort ascending: The floorplanner orders bussed pins in ascendingindex order.

o Sort descending: The floorplanner orders bussed pins in descendingindex order.

o Selection order: The floorplanner orders pins in the same order theyyou selected them.

• Pitch: Specifies the center-to-center spacing (also called “pitch”) betwepins. A value of 0 will cause the function to space adjacent pins by thewire-to-via pitch for the pin shape layer.

IC Station User’s Manual, v8.9_9 10-21

Page 260: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

r it

ther

tery.

t.

• Trace nets through hierarchy: Specifies whether a pin’s net is to tracedown the hierarchy in order to find the best location for the pin or whetheshould only consider the current context.

o Only consider net data in current cell: The pin’s net is not traceddown the hierarchy. The function only uses net data (routing and opins) in the current context to find the best placement.

o Consider net data through hierarchy: The pin’s net is traced downthe hierarchy. This may result in a pin placement that enables shorrouting lengths, but it is generally slower and requires more memor

• Place pins on sides: Specifies what sides can be used for the placemen

Figure 10-7. Autoplace Pins with Manual Location Dialog Box

IC Station User’s Manual, v8.9_910-22

Page 261: Icstation User Manual @Vins

Floorplanning Operations Floorplanning Procedures

e asesides.

The items in the Autoplace Pins with Manual Location dialog box are the samthe items in the Autoplace Pins with Automatic Entry dialog box, except it donot contain the two fields, Trace nets through hierarchy, and Place pins on s

IC Station User’s Manual, v8.9_9 10-23

Page 262: Icstation User Manual @Vins

Floorplanning Procedures Floorplanning Operations

IC Station User’s Manual, v8.9_910-24

Page 263: Icstation User Manual @Vins

to ang

secell,

gure

ut

ions

Chapter 11Cell Related Operations

This chapter discusses cell handling. It covers creating a cell, loading logic incell, file operations with cells, working with cells hierarchically, and referencicells.

Creating a New CellCreating a new cell within ICgraph creates a new design object in the databahierarchy. When IC Station creates a new cell, it opens a new window on theand reserves the cell for edit. A library, a Process, a Rule file, connectivityinformation, and other optional features can be associated with a new cell (Fi11-1).

Figure 11-1. Properties Associated with a New Cell

The following process details how to create a new cell. It uses menu items, bthere are functions available for AMPLE programmers, or those who want tocreate a cell by entering the functions in a command entry window. The functrelevant to this chapter are$create_cell(), $attach_library(), $make_cell(),

New Cell

Cell Name Process

Cell Type

Library

Rules

Site Type

Connectivity

Angle Mode

(EDDM Viewpoint)

IC Station User’s Manual, v8.9_9 11-1

Page 264: Icstation User Manual @Vins

Creating a New Cell Cell Related Operations

cell;e

e

$load_logic(), $load_process(), and$load_rules(). For more information on thesefunctions, refer to theIC Station Reference Manual.

To create a new cell:

1. From ICgraph, chooseFile > Cell > Create.

Figure 11-2 shows the Create Cell dialog box.

Figure 11-2. Create Cell Dialog Box

2. Enter the cell name. The cell name is the only field required to create athe remaining fields are optional. Use the Navigator button to locate thappropriate directory.

3. Fill in the following optional fields as needed:

• Attach Library : If you use ICblocks, a library is required. Type in thpathname of the library for this cell, or use the Navigator button tolocate the appropriate library.

IC Station User’s Manual, v8.9_911-2

Page 265: Icstation User Manual @Vins

Cell Related Operations Creating a New Cell

the

ele

d in

re

t

heext

• Process: Enter the pathname of the Process file for this cell, or use Navigator button to locate the Process file. If nothing is entered, theICgraph uses the current session Process or the default Process.

• Rule File: Enter the pathname of the Rule file for this cell, or use thNavigator button to locate the Rule file. If nothing is entered, no Rufile is loaded.

• Site Types: Enter the site types for this cell. Site types are describethe section, “Cell and Instance” in Chapter5.

• Angle Mode: Choose an angle mode for this cell.

• Cell Type: Choose the appropriate cell type for this cell. Cell types adescribed in the section “Cell and Instance” in Chapter5.

• Connectivity?: Choose whether to create the cell with or without neconnectivity information. SelectingWith connectivity discloses the“Logic Source Type” information as seen in figure11-3. For moreinformation on logic handling, refer to the section “Logic Loading.”

4. Execute the Create Cell dialog box by pressing Return or clickingOK .

An IC window displays for the new cell. The cell name is displayed in twindow banner. The status window is updated to show the active contcell, its associated Process, and whether it is open for read or edit.

The cell is now ready for edit.

To create a cell with EDDM Connectivity, refer to the next section“Creating a Cell with EDDM Connectivity.”

IC Station User’s Manual, v8.9_9 11-3

Page 266: Icstation User Manual @Vins

Creating a New Cell Cell Related Operations

intit.

orerted

Creating a Cell with EDDM Connectivity

Figure 11-3. Create Cell with EDDM Connectivity Dialog Box

EDM Schematic Viewpoint: An EDDM viewpoint is a logic source that passesnet connectivity information to a new cell. For more on creating EDDMviewpoints, refer to the section, “Loading Logic into an Existing Cell.”

Before loading an EDDM viewpoint into IC Station, you must complete thefollowing tasks:

• Create an EDDM design viewpoint whose primitives match theprimitives intended for use in the layout. You use the Design ViewpoEditor (DVE-IC) to create a design viewpoint and add primitives to For more information about the Design Viewpoint Editor-IC, refer totheDesign Viewpoint Editor-IC User’s and Reference Manual.

• Create a physical library(s) (directory) that contain the physical cellsdevice generators that correspond to the schematic cells. For convand translated designs, use the$build_lib() function to create ports,

IC Station User’s Manual, v8.9_911-4

Page 267: Icstation User Manual @Vins

Cell Related Operations Creating a New Cell

ics

ical

f

to

blockages, and a cell outline. For parts libraries from Mentor Graphor a third-party supplier, refer to theLibrary Management SystemUser’s and Reference Manual.

• Add Comp (the cell’s logical name) and/or Phy_comp (the cell’sphysical name) properties to all symbols that correspond to the physcells. You use Design Architect-IC to add Comp and Phy_compproperties to all symbols for which you want to have correspondingphysical cells pulled from the available libraries. For descriptions othese properties, refer to theIC Flow Properties Reference Manual. Formore information about adding properties, refer to theDesignArchitect-IC User’s Manual.

• Add other properties.Table 11-1 lists the other available properties.

For more information on these properties, refer to theIC Flow PropertiesReference Manual or click the word in Table11-1.

• Load necessary Process and Rule files. The functions$load_process() and$load_rules() are used to load Process and Rule files, respectively.

o Enter the EDDM Schematic Viewpoint, or use the Navigator buttonlocate the EDDM file.

Table 11-1. Properties Copied or Interpreted by Loading Logic

Instance Properties Net Properties Pin Properties

CompPhy_compPlaceSeedGroup_nameGroup_prioGroup_seedGroup_abut

PrioWtypeVtypeNet_compNet_comp_countNet_comp_place

PintypePhy_pinLoadSizeKriseKfall

IC Station User’s Manual, v8.9_9 11-5

Page 268: Icstation User Manual @Vins

Creating a New Cell Cell Related Operations

ox

ons

o Choosing the Logic Loading Options button brings up a new dialog b(Figure11-4).

Logic Loading Options

Figure 11-4. Logic Loading Options

Below are the descriptions of the options available in the Logic Loading Optidialog box.

IC Station User’s Manual, v8.9_911-6

Page 269: Icstation User Manual @Vins

Cell Related Operations Creating a New Cell

he

eshas

e.

. Inre

• Logic Loading: Specifies how the schematic will be converted.

Flat converts the schematic design into a flat layout.

Full Hierarchy converts the full hierarchy of the schematic design into tlayout so the layout hierarchy matches the schematic hierarchy.

User Specified converts each hierarchy in the schematic based on theinstance's Phy_comp property.

Top Level Only converts only the top level of the hierarchy.

• Cell Name Properties: Case-insensitive property names that specify thelayout cell name for a particular schematic instance. If you type in morthan one name, the first property in the list with a valid property value iused to name the cell. For example, if the schematic instance /adder/invthe following properties:

Then CELL, HIER_COMP in this field will use physical cell “inv3” for/adder/inv because CELL is the first property with a valid property valu

If the field is empty or none of these properties exist on an instance,Phy_comp and Comp properties are used for cell names. In the aboveexample, “inv3.old” would be used.

• Logic Properties to Copy: A vector of strings representing theuser-specified properties to be copied from the schematic to the layoutaddition to the properties specified with this argument, properties that aspecific to place and route are automatically copied to the layout.

Property Name: Property Value:

CELL “inv3”

HIER_COMP “inv3.new”

COMP “inv3.old”

IC Station User’s Manual, v8.9_9 11-7

Page 270: Icstation User Manual @Vins

Making a Cell from Selected Objects Cell Related Operations

esical

attFor

eat

.

te

n

ose

cell,

• Create Primitive Cells: If enabled, specifies that primitive cells should bcreated for schematic components that do not have corresponding phycells in the attached library or Library Names field.

• Library Names: A vector of strings that represents the library names thare searched for physical cells. The library listed in the library argumencan also be listed here. The library attached to the cell is searched first.more on using libraries, see Chapter16, “Library Operations.”

• Viewpoint Directory : Storage directory for viewpoints created by EDDMlogic loading. If Logic Loading is Flat, this argument is not used.

• Layout Directory : Enter the pathname of the layout directory, or use thNavigator button to locate the layout directory. Default is the directory thcontains the new cell.

• Flatten below property: Flattens all data below the given property valueAll data above the property value remains hierarchical.

• Viewpoint for flatten below: Specify a viewpoint to use with the Flattenbelow property above.

• Connectivity Scope:Specify whether to load all connectivity data or creaports only.

• Subcell handling: Specify whether to replace existing subcell data orpreserve subcell layout (ECO).

• Save cells after loading: Check to save cells after connectivity informatiois loaded.

Making a Cell from Selected ObjectsYou can replace a set of selected objects with a cell instance consisting of thobjects. To retain the connectivity of the active context cell, selected portmembers are copied into the newly-created cell and are not deleted from thein the active context. Logical information is not copied into the new cell; pinsrows, and overflows are ignored.

IC Station User’s Manual, v8.9_911-8

Page 271: Icstation User Manual @Vins

Cell Related Operations Making a Cell from Selected Objects

his

ed

m.

fer

Figure11-5 contains an example of making selected objects into a new cell. Texample assumes that ports were already identified before making the cell.

Figure 11-5. Making a Cell From Selected Objects

The basepoint of the current selection becomes the origin of the newly-creatcell. You can use$set_basepoint()to define the new cell origin before making thecell, or you can use the$set_cell_origin() function after the cell is created.

The Make Cell dialog box can be accessed with the$make_cell() function or theObjects > Make > Cell... menu item. The following process uses the menu ite

To create a new cell from selected objects, perform the following steps:

1. Define the ports for the new cell. For instructions about defining ports, reto the section “Making Ports” in Chapter15.

2. Select all objects that you want as part of the new cell.

3. Choose theObjects > Make > Cell... menu item.

Figure 11-6 shows the the Make Cell dialog box.

Original Design Data New cell afterMake Cell

IC Station User’s Manual, v8.9_9 11-9

Page 272: Icstation User Manual @Vins

Making a Cell from Selected Objects Cell Related Operations

here

ed.

e

Figure 11-6. Make Cell Dialog Box

4. Enter the cell name. Use the Navigator button to change the directory wthe cell will be created.

5. Select the cell type.

6. Enter the site types. Site types are described in the section “Cell andInstance” in Chapter5.

7. Execute the dialog box by pressing Return or clickingOK .

The selected objects are replaced by the new cell, which is initially peekFor instructions about unpeeking, refer to the section “Unpeeking Cells.”The cell is also reserved for edit and the angle mode is set to the activcontext cell.

IC Station User’s Manual, v8.9_911-10

Page 273: Icstation User Manual @Vins

Cell Related Operations Logic Loading

andou

ox

,

es

e

and,rty

alou

dthe

Logic LoadingLogic loading brings an EDDM schematic source into the IC Station databasecreates the associated hierarchy and connectivity in the active context cell. Ycan invoke logic loading from IC Station with the$load_logic()function, or whencreating a new cell by specifying With Connectivity in the Create Cell dialog bas described in the section “Creating a New Cell.

Logic Loading Requirements

Before you use the $load_logic() function to load an EDDM viewpoint into ICyou need to complete the following tasks:

• Create an EDDM design viewpoint whose primitives match the primitivintended for use in the layout. You use the Design Viewpoint Editor-IC(DVE-IC) to create a design viewpoint and add primitives to it. For morinformation about the Design Viewpoint Editor-IC, refer to theDesignViewpoint Editor-IC User’s and Reference Manual.

• Create a physical library(s) (directory) that contain the physical cells ordevice generators that correspond to the schematic cells. For convertedtranslated designs, use the$build_lib() function to create ports, blockagesand a cell outline. For parts libraries from Mentor Graphics or a third-pasupplier, refer to theLibrary Management System User’s and ReferenceManuals for Designers.

• Add Comp (the cell’s logical name) and/or Phy_comp (the cell’s physicname) properties to all symbols that correspond to the physical cells. Yuse Design Architect-IC to add Comp and Phy_comp properties to allsymbols for which you want to have corresponding physical cells pullefrom the available libraries. For descriptions of these properties, refer toIC Flow Properties Reference Manual. For more information about addingproperties, refer to theDesign Architect-IC User’s Manual.

• Add properties listed inTable 11-1.

• Load necessary Process and Rule files. The functions$load_process() and$load_rules() load Process and Rule files, respectively.

IC Station User’s Manual, v8.9_9 11-11

Page 274: Icstation User Manual @Vins

Logic Loading Cell Related Operations

x.

he

Using $load_logic()

Invoking $load_logic() brings up the dialog box shown in Figure11-7.

Figure 11-7. Load Logic Dialog Box

The following list describes the options available in the Load Logic dialog bo

• Schematic Viewpoint Name:Specifies the viewpoint to use.

• Logic Loading: Specifies how the schematic will be converted.

Flat converts the schematic design into a flat layout.

Full Hierarchy converts the full hierarchy of the schematic design into tlayout so the layout hierarchy matches the schematic hierarchy.

User Specified converts each hierarchy in the schematic based on theinstance's Phy_comp property.

IC Station User’s Manual, v8.9_911-12

Page 275: Icstation User Manual @Vins

Cell Related Operations Logic Loading

eshas

e.

. Inre

sical

ttFor

Top Level Only converts only the top level of the hierarchy.

• Cell Name Properties: Case-insensitive property names that specify thelayout cell name for a particular schematic instance. If you type in morthan one name, the first property in the list with a valid property value iused to name the cell. For example, if the schematic instance /adder/invthe following properties:

Then CELL, HIER_COMP in this field will use physical cell “inv3” for/adder/inv because CELL is the first property with a valid property valu

If the field is empty, or none of these properties exist on an instance,Phy_comp and Comp properties are used for cell names. In the aboveexample, “inv3.old” would be used.

• Logic Properties to Copy: A vector of strings that represent theuser-specified properties to be copied from the schematic to the layoutaddition to the properties specified with this argument, properties that aspecific to place and route are automatically copied to the layout.

• Create Primitive Cells: If enabled, specifies primitive cells should becreated for schematic components that do not have corresponding phycells in the attached library or Library Names field.

• Library Names: A vector of strings that represent the library names thaare searched for physical cells. The library listed in the library argumencan also be listed here. The library attached to the cell is searched first.more information on using libraries, see “Library Operations” in Chapter16.

• Viewpoint Directory : Storage directory for viewpoints created by EDDMlogic loading. If Logic Loading is Flat, this argument is not used.

Property Name: Property Value:

CELL “inv3”

HIER_COMP “inv3.new”

COMP “inv3.old”

IC Station User’s Manual, v8.9_9 11-13

Page 276: Icstation User Manual @Vins

Logic Loading Cell Related Operations

calfor

are cell,

ays

e nott you

ertyding as

Logic loading creates physical cells for cells that are not present in the physilibrary. If the source is hierarchical, logic loading creates an EDDM viewpointintermediate level (non-primitive) cells that are created during loading.

Logic loading creates power pins in the intermediate levels of hierarchy if theynot present. It reads power net names from the Process associated with theeither a user-defined Process or the default Process. Logic loading createsviewpoints for loaded hierarchical cells. You use these viewpoints forcrossprobing and Layout Versus Schematic (LVS) checks. Logic Loading alwcopies or processes properties that are specific to the layout.

Property Handling with Logic Loading

ICgraph supplies Comp, Phy_comp, and Element property names, but they armandatory. You can create and use completely arbitrary property names, bushould use them consistently throughout your methodology.

You can use a physical cell for an instance of a component by attaching a propto the schematic with the physical cell name as the property value. Logic loasearches for a cell with this physical cell name in the list of libraries providedwell as the libraries in the working directory. If it finds the name, that cell isinstantiated in the layout design, as shown in Figure11-8.

IC Station User’s Manual, v8.9_911-14

Page 277: Icstation User Manual @Vins

Cell Related Operations Logic Loading

e or

the

is

t

ny

Figure 11-8. $load_logic() Property Handling

If logic loading does not find the name, and either the instance is not a primitivtheCreate Primitive option is selected, a new cell is created with its namedetermined by the following rules:

• If the schematic for this component is “schematic,” the cell name iscomponent name.

• If the schematic for this component is not “schematic,” the cell name“<component_name>_<schematic_name>.”

• If there is no schematic for the component, the cell name is the parname or component name.

Loading Logic into an Existing Cell

You can load logic into an existing cell using$load_logic()in the current cell. Thecell must be in either CE or CBC mode for the loaded connectivity to have asignificance to the layout cell’s connectivity.

Nor2

Vss

Vdd

In 1 In 2

OutCOMP: Nor2

LayoutSchematic

$load_logic() searches forthe cell “Nor2” on disk,then instantiates that cellin the layout.

IC Station User’s Manual, v8.9_9 11-15

Page 278: Icstation User Manual @Vins

Netlist-Driven Layout Cell Related Operations

new

Netlist-Driven LayoutA Spice netlist is used as a logic source to pass connectivity information to acell. You must define your devices in the Process to load a Spice netlist.

There’s a variety of ways to use Spice, including from theIC Session palettemenuCreate - Spice item, or, if your cell is open, from theTranslate > ReadSpicemenu item. Both of these options produce theRead Spicedialog box shownin Figure 11-9. You can also use the$read_spice()function:

To pass connectivity information to a new cell using $read_spice():

1. Enter REAd SPice or $read_spice() in a command line.

Figure 11-9 shows theRead Spicedialog box that appears.

IC Station User’s Manual, v8.9_911-16

Page 279: Icstation User Manual @Vins

Cell Related Operations Netlist-Driven Layout

,

d,

he

y

Figure 11-9. Read Spice dialog box

2. Fill in the following fields or select the following buttons, as appropriatefor your cell:

• IC Station cell/Subckt name: Enter the path to your cell or locate itusing the Navigator button. The cell name is optional. If not specifiethe Subckt name is used.

• Spice File: Enter the path to the Spice format file or locate it using tNavigator button.

• Hierarchy option: Specify whether you want the netlist hierarchyreproduced in the layout. You have two choices:

o Flat: Press this button if you do not want the netlist hierarchyreproduced.

o Full Hierarchy : Press this button if you do want the netlist hierarchreproduced in the layout.

• ECO option: Specify what the Spice loader does with the existinglayout. You have two choices:

IC Station User’s Manual, v8.9_9 11-17

Page 280: Icstation User Manual @Vins

Netlist-Driven Layout Cell Related Operations

the

e

e

al

o Replace existing data in cell: Discards any cell’s existing layoutthat matches a netlist subcircuit, unless the cell is in a library or cell’s permissions prohibit editing.

o Update existing data in cell (ECO): Preserves any cell’s existinglayout that matches a netlist subcircuit.

• Save cells after loading: Specify whether cells created or edited by thSpice loader are saved when processing is finished.

• MOS Sharing: Specify whether the MOS transistor diffusions areshared. Clicking this button produces theDefine MOS Sharing dialogbox shown inFigure 11-10. You have four choices:

o Share All: Share parallel and series MOS devices.

o Share Series Only: Share only MOS devices with two-pin seriesnets.

o Share Component: Share MOS devices at the current level or in thhierarchy’s first level.

o Don’t Share: Create each MOS schematic primitive as an individudevice.

For more information on these settings, see $set_mos_share() in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_911-18

Page 281: Icstation User Manual @Vins

Cell Related Operations Netlist-Driven Layout

he

Figure 11-10. Define MOS Sharing dialog box

• MOS Folding: Specify the maximum gate width for a MOS device.Clicking this button produces theDefine MOS Folding dialog boxshown in Figure11-11. Fields are:

o Device Type: Specify the device types stored in the Process for tMOS device.

o Max. Gate Width: Specify the device’s width when folded duringplacement.

For more information on these settings, see$define_max_gate_width() in theIC Station Reference Manual.

Figure 11-11. Define MOS Folding dialog box

IC Station User’s Manual, v8.9_9 11-19

Page 282: Icstation User Manual @Vins

Netlist-Driven Layout Cell Related Operations

g

e

s inheseIC

• MOS Cell Type: Specify the cell type for generated devices. Clickinthis button produces theDefine MOS Cell Type dialog box shown inFigure11-12. You have two choices: block and standard.

Figure 11-12. Define MOS Cell Type dialog box

For more information on these settings, see$set_mos_cell_type()in theIC Station Reference Manual.

• Directory for new layout cells: Enter the path to the directory thatholds the cells created by the Spice loader or locate it using theNavigator button.

• Process: Specify the path to the cell’s Process or locate it using theNavigator button.

• Rules File: Specify the path to the cell’s Rules file or locate it using thNavigator button.

• Library : Specify a path to an IC Station library in which the Spiceloader can search for cells to use. When a subcircuit name appearthe netlist, the Spice loader searches for a cell of the same name in tlibraries or the search path of directories. You can specify up to fourStation library paths.

For more information on these settings, see $read_spice()in theIC StationReference Manual.

IC Station User’s Manual, v8.9_911-20

Page 283: Icstation User Manual @Vins

Cell Related Operations Opening an Existing Cell

itore,.

it

ll.

hehe

er,

elland ato a

3. Execute the Read Spice dialog box by clickingOK or pressing the Returnkey.

Opening an Existing CellTo continue work on a cell that was created and saved in a previous ICgraphsession, you must open the cell. When you open a cell that has been saved,automatically retains all information from the previous editing session. Therefyou do not lose any edits that were made prior to saving and exiting ICgraph

To open an existing cell:

1. Choose theFile > Cell > Open menu item.

A dialog box is displayed, which prompts you for the cell name and edaccess.

2. Type in the cell pathname or use the Navigator button to locate the ce

3. Click the Edit button if you want to open the cell for editing.

4. Click OK or press Return to execute the dialog box.

The specified cell is displayed in an IC window and this cell becomes tactive context cell. The cell name is displayed in the window banner. Tstatus window is updated to show the active context cell, its associatedProcess, and whether it is open for read or edit.

For instructions about opening an existing cell from within the Design Managrefer to the procedureInvoking Tools From Design Manager onpage 1-16.

Reserving Cells for EditIf you open a cell read-only, and you want to modify the cell, you must firstreserve the cell for edit. By reserving a cell for edit, you make a copy of the cthat is currently saved on your disk. You now have a current, saved version version that you can perform edits on. This lets you make temporary changes

IC Station User’s Manual, v8.9_9 11-21

Page 284: Icstation User Manual @Vins

Creating a Hierarchical Design Cell Related Operations

of

the

l the

erve

nu:

aveback

to

cell, view the changes, and discard them without changing the saved versionthe cell that you have on disk.

To reserve a cell for edit:

1. Execute$open_cell().

This can be done from the command line by typing in $open_cell() frompulldown menu, or from the IC Session File Menu:File > Cell > Open.

2. When the Prompt bar appears, fill in the name of the cell, and then scrolACCESSchoice stepper to the edit position.

3. Terminate the prompt bar.

You can also reserve a cell for edit after the cell is opened by ICgraph. To resa cell:

1. Execute $open_cell().

2. Terminate the prompt bar.

3. Execute$reserve_cell().

This can be done from the command line or from the File pulldown meFile > Cell > Reserve > Current Context. If you have multiple cells openin ICgraph, you must specify which cell you want to reserve for edit.

After you have reserved your cell and performed edits on it, you can either sthe cell with the edits in place, or you can discard the edits. The cell reverts to its previous state before being edited.

Creating a Hierarchical DesignUsing the $add_cell() function, you can place an instance of the named cell inthe design in the active context to create hierarchy. The cell is placed at thespecified location and can have flip, rotation, and scale. If you specify bothoptions, flip occurs before rotation.

IC Station User’s Manual, v8.9_911-22

Page 285: Icstation User Manual @Vins

Cell Related Operations Creating a Hierarchical Design

geru ton the

s,be

chy

ting

su bar

raw

calo

Instances are displayed with an external aspect bounded by an extent box.

A hierarchical design is a design methodology that allows you to create a lardesign from much smaller design objects. A hierarchical design also allows yoconstruct cell libraries of commonly used parts for use anytime in your desigcycle. Hierarchical design is also a requirement for some V8.x tools, such asAutomated Layout tools.

At its simplest form, a hierarchical design consists of simple polygons, shapeand paths that make up a single leaf cell. Once that leaf cell is saved, it can placed inside a larger, more complex design, thus creating a multi-tiered orhierarchical design. You may selectively view levels and sub-entries of thehierarchy, and edit hierarchically by setting the active context within the hierarand performing edits. With regard to the number of hierarchy, you have norestrictions in your design. You create hierarchy within your design by complethese steps:

1. Execute the$reserve_cell() function

This reserves the design in the current active context for edit and allowchanges to be made to the design. It can also be executed from the men(File > Reserve > Cell > Hierarchy).

2. Execute the$add_cell() function.

This can be done from the command line or execute theObjects > Add >Cell: pulldown menu.

3. Fill in the Options dialog box.

This dialog box allows you to specify the orientation and the scale to dthe new cell. The dialog box contains three settings:

o Flip : The cell can be placed flipped about the Horizontal axis, Vertiaxis, or with No Flip. If you do not specify a Flip, the cell defaults to NFlip.

IC Station User’s Manual, v8.9_9 11-23

Page 286: Icstation User Manual @Vins

Peeking Cells Cell Related Operations

outo

alo

ar

he

n its

rnal

cesified

singnd

o Rotation: The cell can be placed rotated with respect to the x-axis. Ycan specify any rotation. If no rotation is specified, the value defaults0 degrees.

o Scale: The cell can be placed with a scale factor relative to its originsize. A valid range of scale factors is any positive real number. If nscale factor is specified, the cell is placed with a scale factor of 1.

Close the dialog box by clicking OK or pressing Return.

4. Position the new cell by clicking the LOCATION button in the prompt bof $add_cell(). A ghost image of the cell appears as you move the cellinside the window. Place the cursor where you want the basepoint of tcell to be located. Secure the cell by clicking the Select button.

After you position the cell, the cell appears with its external aspect showing ihighlighted display style. Unselect the cell and the cell appearance returns tonormal display.

Peeking CellsPeeking within ICgraph allows you to view a selected cell or selected area inteaspect down the specified number of context levels, without affecting thehierarchy of the design.

There are two peek functions in ICgraph:$peek() and$peek_area(). Each oneoperates in similar manner; the $peek() function operates on selected instanonly, while the $peek_area() function operates on a selected area. The specarea can contain more than one instance.

If you wish to peek an individual cell, you must:

1. Activate the cell window.

2. Position the cursor at a location near the cell, then select the cell by presthe Select button and dragging the cursor to draw a bounding box arouthe cell. Release the button and the cell to be peeked is selected.

IC Station User’s Manual, v8.9_911-24

Page 287: Icstation User Manual @Vins

Cell Related Operations Using Peek on View

fterof

ls of

ete

ls ofir

ur a

()fulthe

3. Execute the $peek() function.

A prompt bar appears requesting the number of levels to be peeked. Ayou enter this information, click OK or press Return. The entire contentsthe cell are redrawn with the internal view of the subcells

If you choose to peek an area within a hierarchical design, you must:

1. Activate the cell window.

2. Execute the $peek_area() function.

A prompt bar appears, prompting you for information on the number oflevels to be peeked. The number of peeked levels depends on the levehierarchy that you have in your design. After you select the number oflevels to peek, click the POLYGON button in the prompt bar. To complthe argument list, you must now supply an area for peeking.

3. Draw a rectangle or other polygon.

Any instances that intersect the given region will be peeked.

As mentioned previously, when you execute$peek() or $peek_area(), you areprompted to enter the number of levels you want peeked. If you have five levehierarchy and you only peek two, the remaining unpeeked levels display theexternal aspects with respect to the top-level parent cell.

Using Peek on ViewThe ability to peek-as-you-go ($set_peek_on_view()) enables you to view yourhierarchical design all the way down to your leaf cell without having to set yopeek hierarchy levels. The $set_peek_on_view() function allows you to viewpeeked design in the current viewing area.

You can control the graphic drawing capabilities with the $set_peek_on_viewfunction by using CTRL-I to halt the redraw of your cell. This is especially helpif you have a design with several cells with different levels of hierarchy, and cell you want to see reaches its leaf-cell before the rest of your design does.

IC Station User’s Manual, v8.9_9 11-25

Page 288: Icstation User Manual @Vins

Unpeeking Cells Cell Related Operations

verye the

the

inge

ir

oleview

ound

ree

The $set_peek_on_view() function is a global session function that affects ewindow that is used throughout the editing session when it is invoked. To us$set_peek_on_view(), you can either:

• Execute $set_peek_on_view().

A prompt bar appears and prompts you to set the “State” of the function;setting is either “on” or “off.”

You can also include it as part of a $dofile() that gets invoked upon startICgraph. For more information on writing and using $dofile(), refer to thAmple Reference Manual.

• Set “Peek on View” in theSetup > IC... dialog box.

Once you set the $set_peek_on_view() function, any cell that you open thatcontains hierarchy is drawn with all of the leaf cells in view, regardless of thehierarchy level with respect to the parent cell or other cells in the design.

Unpeeking CellsUnpeek is similar to peek. You can unpeek on a selected instance or the whdesign. The ability to unpeek a cell or instance restores the original external of the parent cell. Unpeek does not require hierarchy level information.

To unpeek a specific cell using$unpeek():

1. Have the design containing the desired cell in the active context.

2. Select the cell instance to be unpeeked by drawing a bounding box arthe desired cell.

3. Execute the $unpeek() function.

The selected cell returns to its previous external view; any other cells that wepeeked at the time of the $unpeek() function remain peeked unless they werincluded in the select set with the original specified cell.

IC Station User’s Manual, v8.9_911-26

Page 289: Icstation User Manual @Vins

Cell Related Operations Saving A Cell

thatless

iew()

vede edit

To unpeek a region of cells using the$unpeek_area() function, you must:

1. Have the design that contains the desired cell in the active context.

2. Execute the $unpeek_area() function.

3. Select the area to be unpeeked by drawing a bounding box around thedesired area.

The selected area returns to its previous external view. Any areas of the cellwere peeked when the $unpeek_area() function executed remain peeked unthey were included in the area select set with the original specified area.

Note: the unpeek functions do not work with the$set_peek_on_view() function.To unpeek a cell or area of a design, you must execute the $set_peek_on_vfunction and toggle the switch to “off.”

Saving A CellWhen you save cells, a new version of the cells are saved that contain unsaedits, and changes the edit access of the cells to read-only, which releases threservation of the cells. Once the edit reservation is released, the cells areavailable to other users to instantiate in their layouts. To save cells withoutreleasing edit reservation, see the section, “Saving A Cell Keeping the EditReservation.”

Choose from the following methods of saving your cells:

• To save all the cells in the current active context, choose:

File > Cell > Save Cell > Current Context

• To save all the cells in the hierarchy, choose:

File > Cell > Save Cell > Hierarchy

• To save all the cells in all windows, choose:

IC Station User’s Manual, v8.9_9 11-27

Page 290: Icstation User Manual @Vins

Saving A Cell Keeping the Edit Reservation Cell Related Operations

ln

thout Toer

ods:

,

:

File > Cell > Save Cell > All Cells

• To save a particular cell by name, choose:

File > Cell > Save Cell > By Name...

The Save Cell By Name dialog box displays, which contains a list of alcells currently reserved for edit. Click on the cell you want to save, theexecute the dialog box.

For more information about saving cells, refer to the$save_cell() and$save_cell_by_name() functions in theIC Station Reference Manual.

Saving A Cell Keeping the EditReservation

Saving a checkpoint of a cell saves the cell data to a temporary database wireleasing the edit reservation. The changes are not available to other users.save a cell and release the edit reservation to make changes available to othusers, see the section, “Saving A Cell.”

To save a cell and keep the edit reservation, choose one of the following meth

• To save a temporary database of the cells in the current active contextchoose:

File > Cell > Checkpoint Cell > Current Context

• To save a temporary database of all the cells in the hierarchy, choose:

File > Cell > Checkpoint Cell > Hierarchy

• To save a temporary database of all of the cells in all windows, choose

File > Cell > Checkpoint Cell > All

• To save a temporary database of a particular cell by name, choose:

IC Station User’s Manual, v8.9_911-28

Page 291: Icstation User Manual @Vins

Cell Related Operations Closing a Cell Window

,

fer to

t to

ingcellnit,.

’s

, but

File > Cell > Checkpoint Cell > By Name...

TheCheckpoint Cell By Name dialog box displays, which contains a listof all cells currently reserved for edit. Click on the cell you want to savethen execute the dialog box.

For more information about saving cells and keeping the edit reservation, rethe$checkpoint_cell() function in theIC Station Reference Manual.

Closing a Cell WindowTo close a cell window, double-click on the window menu button. If there areunwritten edits in the cell window, a dialog box is displayed, in which you canchoose how you want to handle the unsaved edits.

By default, only cells in the current context are saved or discarded. If you wansave or discard edits throughout the hierarchy, press the Hierarchy button.

• Press OK to save all edits (this is the default).

• Press the Discard button to discard all edits.

• Press the Nosave button to close the window without saving or discardthe edits. The cell remains in memory. If you open the same cell again,reservation status and all edits are intact. If you close the window wheclosing the session, you are notified that the cell is still reserved for edand you are prompted to choose between saving or discarding the cell

For more information about closing cell windows, refer to the$close_window()function in theIC Station Reference Manual.

Unloading CellsUnless you explicitly unload it, when you close all of a cell’s window, the cellinformation is held in memory until the cell becomes visible (for example, bypeeking its parent cell). Keeping closed cells in memory improves peek timebecause more memory is required, overall performance might be slower.

IC Station User’s Manual, v8.9_9 11-29

Page 292: Icstation User Manual @Vins

Resyncing Cells Cell Related Operations

can

he

iskon.

the

To unload cells from the session, choose:

File > Unload Cells

For more information about unloading cells, refer to the$unload_closed_cells()function in theIC Station Reference Manual.

Resyncing CellsResyncing brings a cell up-to-date relative to the newest version on disk. Youissue the$resync_cell() function any time to force a resync without peeking thesubcells. Even if a resync occurs, the instance’s connectivity information in tparent cell is not updated until you issue an$update_cell() function. The$resync_cell() function determines if a new version of a cell is available on dand, if so, replaces the version of that cell in the session with the latest versi

Resyncronize cells by performing one of the following steps:

• To resyncronize the cell in the current active context, choose:

File > Cell > Resync Cell > Current Context

• To resyncronize all of the peeked instances in the hierarchy, choose:

File > Cell > Resync Cell > Hierarchy

• To resyncronize all of the cells in all windows, choose:

File > Cell > Resync Cell > All

• To resyncronize a particular cell by name, choose:

File > Cell > Resync Cell > By Name:

The Resync Cell By Name prompt bar is displayed. Enter the name of cell you want to resyncronize, then execute the prompt bar.

For more information about resyncing cells, refer to the$resync_cell() and$resync_cell_by_name() functions in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_911-30

Page 293: Icstation User Manual @Vins

Cell Related Operations Updating Referenced Cells

disk

ssionewaysll.ll. To

therion.

akesccur. Inare

Updating Referenced CellsInstances in a cell become out-of-date when the cell has a newer version onthan the one saved in the parent cell’s data.

Newer versions of a cell can exist on a disk that has not been loaded in the sewhen a cell has not yet been peeked, or another session/user has saved a nversion after your session acquired the version currently in use. ICgraph alwloads the latest version of a cell whenever it loads the internal data of the ceICgraph loads the referenced version when it loads the external data of a ceforce a load of the latest version of a cell, use either the $resync_cell() or$resync_cell_by_name() functions.

1. To find the cells that contain out-of-date instances, execute$report_outdated_cells().

Report > Cells > Outdated

The report may list two kinds of out-of-date cells:

o Cells that need to be resynced.

A cell appears here if the version of the cell in memory is older thancurrent version of the cell on disk. This might happen if another usehas edited and saved the cell since you began your IC Station sessFor more information, refer to “Resyncing Cells,” in this chapter forinstructions on how to load the current version.

o Cells that need to be updated.

A parent cell needs to be “updated” whenever any of the child cellsplaced in it are edited in the same session. Generally, the system tcare of this updating process automatically, causing the update to oon the first editing operation in the parent after a child cell changesthe event that this automatic update fails, the following commands provided to explicitly force the update operation to occur:

• To update the cells in the current active context, choose thefollowing menu item:

IC Station User’s Manual, v8.9_9 11-31

Page 294: Icstation User Manual @Vins

Salvaging Referenced Cells Cell Related Operations

e

u

me

()

File > Cell > Update Cell > Current Context

• To update all of the peeked instances in the hierarchy, choose thfollowing menu item:

File > Cell > Update Cell > Hierarchy

• To update all of the cells in all windows, choose the following menitem:

File > Cell > Update Cell > All

• To update a particular cell by name, choose the following menuitem:

File > Cell > Update Cell > By Name:

The Update Cell By Name prompt bar is displayed. Enter the naof the cell you want to update, then execute the prompt bar.

2. To save all of the cells that contain the updated instance information,choose the following menu item:

File > Cell > Save Cell > All Cells

For more information, refer to the$report_outdated_cells(), $update_cell(), and$update_cell_by_name() functions in theIC Station Reference Manual.

Salvaging Referenced CellsTo recover the temporary database of a cell created by the $checkpoint_cellfunction in an ICgraph session that crashed, perform the following steps:

1. Choose the following menu item:

File > Cell > Salvage Cell:

The Salvage Cell prompt bar is displayed.

IC Station User’s Manual, v8.9_911-32

Page 295: Icstation User Manual @Vins

Cell Related Operations Salvaging Referenced Cells

t bar.

2. Enter the name of the cell you want to salvage, then execute the promp

For more information about salvaging cells, refer to the$salvage_cell() functionin theIC Station Reference Manual.

Note

This only works to recover the temporary database of a cell.Salvage Cell will not work on a cell that has been savedpermanently.

IC Station User’s Manual, v8.9_9 11-33

Page 296: Icstation User Manual @Vins

Salvaging Referenced Cells Cell Related Operations

IC Station User’s Manual, v8.9_911-34

Page 297: Icstation User Manual @Vins

h.

nsr

ion

ingtg the

life of

g the

the

he

Chapter 12Full Custom Editing Operations

The procedures in this section help you create and edit objects within ICgrap

You can use the Easy Edit, Edit, and Expert Edit Palette menus; the Objectspulldown menu; and the IC window popup menu to select and edit selectedobjects.

Some editing operations are also programmed into many of the function andnamed keys on your keyboard. In the interest of minimizing keystrokes andimproving productivity, preprogrammed keys are used in procedure instructiorather than using menus. You can find tables that show how the keys on youparticular keyboard are programmed in the section “Keys” in theIC Station UserInterface Manual. You should keep a copy of these tables near your workstatfor easy reference.

Saving and Restoring PreferencesICgraph allows you to specify your own preferences for the creation and editof objects. Preferences may relate to object attributes, object behavior, objecappearance as well as other parameters. You specify these preferences usinmenu items available on theSetup pulldown menu.

You can make the preferences that you have specified persistent beyond thethe session by choosing theSetup > Save Setup pulldown menu item. You canrestore the default preferences to the current session at any time by choosinSetup > Restore Defaults pulldown menu item.

TheSave Setupmenu item saves your current session’s setup configuration toicstation_setup.ample file located in the$HOME/mgc/userware/ic/preferencesdirectory; if the file already exists, it is overwritten. When ICgraph invokes, if t

IC Station User’s Manual, v8.9_9 12-1

Page 298: Icstation User Manual @Vins

Saving and Restoring Preferences Full Custom Editing Operations

s

:

to

the icstation_setup.ample file exists, it is loaded. If, for any reason, the file doenot exist, your session will contain the system default settings.

TheSetup > Save Setup pulldown menu item saves preferences that you havespecified for the following commands.

Warning

If your startup files contain any of the setup commands listed inTable 12-1, saving your preferences using theSetup > Save Setuppulldown menu item, overrides these commands. The overrideoccurs because theicstation_setup.ample file located in$HOME/mgc/userware/ic/preferences is loaded after theicgraph.startup file located in$HOME/mgc/startup.

You can remove the preferences you set using theSetup > SaveSetup pulldown menu item, by doing one of the following steps

• Manually remove theicstation_setup.amplefile located inthe$HOME/mgc/userware/ic/preferences directory

• First, executeSetup > Restore Defaultsto restore thedefault preference settings and, then, executeSetup > Save Setup again to save the changes to theicstation_setup.ample file.

For information on startup files and search and load order, refersection “Startup Files” in theAMPLE User’s Manual.

Table 12-1. Change Attributes Types and Functions

Menu Path Associated Setup Function

Setup > IC $setup_ic()

Setup > Dynamics $setup_ic_dynamics()

Setup > Auto Checkpoint$setup_auto_checkpoint()

Setup > Calibre $setup_calibre()

IC Station User’s Manual, v8.9_912-2

Page 299: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

theny

t

TheRestore Defaults menu item resets all of the preferences to the systemdefault settings. You can view the system default settings by choosing theappropriateSetup menu item and examining the settings in the dialog box thadisplays; note, default settings are displayed only if you have just executed tSetup > Restore Defaultmenu item or if you have never modified and saved apreferences.

Setup ICBefore creating and editing objects, make sure the IC Station options are seappropriately for your needs.

ChooseSetup > IC... from the pulldown menu to bring up the Setup IC dialogbox as seen inFigure 12-1.

Setup > Object Template$setup_object_template()

Setup > Reports $setup_reports()

Setup > Select Filter $setup_select_filter()

Setup > New Windows $setup_new_windows()

Setup > Print $setup_print()

Setup > Session $setup_session()

Setup > Status Line $setup_status_line()

None $setup_mos_values()

None $setup_mos_bend_values()

Setup > IRoute IRoute Options

Table 12-1. Change Attributes Types and Functions

Menu Path Associated Setup Function

IC Station User’s Manual, v8.9_9 12-3

Page 300: Icstation User Manual @Vins

Setup IC Full Custom Editing Operations

Figure 12-1. Setup IC Dialog Box

Note

You can save the preferences you specify using theSetup > ICmenu item by choosing theSetup > Save Setup pulldown menuitem. For more information on saving your preferences, refer tosectionSaving and Restoring Preferences in Chapter12.

IC Station User’s Manual, v8.9_912-4

Page 301: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

• Display Text

Specifies whether or not to display text.

o On: Displays all text.

o Off : Displays no text.

• Display Text Origin

Specifies whether or not to display text origins.

o On: Displays text origins.

o Off : Hides text origins.

• Display Fill

Specifies whether or not to display fill patterns.

o On: Displays fill patterns if defined for the layer.

o Off : Hides fill patterns.

• Display Instance Extent

Specifies whether or not to display instance extents.

o On: Displays instance extents as dotted-line boxes.

o Off : Hides instance extents.

• Display Instance Origin

Specifies whether or not to display instance origins.

o On: Displays instance origins.

o Off : Hides instance origins.

IC Station User’s Manual, v8.9_9 12-5

Page 302: Icstation User Manual @Vins

Setup IC Full Custom Editing Operations

theisr

ance

• Peek on View

Specifies whether or not to peek the design when it is viewed.

o On: Peeks the design when viewed.

o Off : Does not peek the design when viewed.

• Resync on Peek

Specifies whether or not cells are resynced when peeked.

o On: Resyncs cells when peeked.

o Off : Does not resync cells when peeked.

• Instance Name Display

Specifies how to display instance names.

o Off : Does not display names or automatic text notation. However,displays other text, such as free-floating and property text.

o Cell Names: Displays the name of the referenced cell within theborders of each instance. For arrays, the name has a postscript of form “(CxR)”, where C is the number of columns in the array, and Rthe number of rows. Displays the name of the AMPLE generator fodevices.

o Inst Names: Displays either the instance name associated with theinstance, or its handle if the instance name does not exist. The instname is the value of the “inst” property.

• Port/Pin Name Display

Specifies whether or not to display port and pin names.

o Off : Hides port and pin names.

o On: Displays port and pin names.

IC Station User’s Manual, v8.9_912-6

Page 303: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

t

e

• Array Display

Specifies how to display arrays.

o Normal: Displays all elements in arrays.

o Border: Displays only border elements of arrays.

o Corner: Displays only the corner elements of arrays.

o Verify : Displays only border elements and elements diagonallyadjacent to each corner of arrays.

• Setup Dynamics...

A button that brings up the Setup Dynamics dialog box as seen inFigure 12-2.

• Display Target Object

o Off : Disables target highlighting of the selectable object.

o On: Enables target highlighting of the selectable object. For moreinformation on target highlighting, refer to section “Target Mode” inChapter5.

• Window Title Display

Specifies how to display window titles.

o Leaf Cell Names: Displays the leaf names of the top cell and currencontext.

o Top Cell Fullpath: Displays the top cell’s full pathname and thecurrent context’s leaf name.

o Context Cell Fullpath: Displays the top cell’s leaf name and thecurrent context cell’s full pathname.

o Both Fullpath: Displays the full pathname of both the top cell and thcurrent context cell.

o All Levels -- Leaf Names: Displays leaf names of all levels.

IC Station User’s Manual, v8.9_9 12-7

Page 304: Icstation User Manual @Vins

Setup IC Full Custom Editing Operations

noth

jects.

ads

the

ts.

• Path Display

Specifies how to display paths.

o Outline Only: Displays only the path outlines. If a path is selected,displays the reference line.

o Reference Line Only: Displays only the path centerlines. If a path is aaugmented path (V8.5_1+), it ignores this argument, and displays bthe path outline and reference line.

o Normal: Displays both the path reference line and its outline.

• Undo Level

Specifies the depth of the undo queue.

• Error Handling

Specifies how to handle common errors.

o Give Error Message: Stops execution and notifies the user.

o Attempt to Correct : Prompts the user with correction options.

• Update Connected on Move

Extends the scope of the editing functions:$move() and$move_relative(),and the regenerate device functions to objects connected to selected ob

o Update Connected on Move: Extends the editing scope to all objectsconnected to selected objects. Updates paths connected to pins ofdevice when the device is regenerated and the device generator adproperty names to the port shapes it creates. The name must be inform “$name.” Each port shape must have a unique name.

o Don’t Update Connected: Limits the editing scope to selected objec

IC Station User’s Manual, v8.9_912-8

Page 305: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

on,

ion

es are

• Join MOS Devices on Move/Place

Joins MOS devices when moving or placing devices. For more informatisee the section, “Join Devices While Moving or Placing Pins” in the ICStation Device Level Automation Manual.

• Split MOS Devices on Move

Splits selected gate pins when moving. For more information, see sect“Split Gate Pins” in the IC Station Device Level Automation Manual.

• Working Directory

Specifies the pathname of the desired working directory.

• Search Path

A list of pathnames, each separated by one or more spaces. The namcase-sensitive. There is no limit to the number pathnames.

IC Station User’s Manual, v8.9_9 12-9

Page 306: Icstation User Manual @Vins

Setup IC Full Custom Editing Operations

Figure 12-2. Setup IC Dynamics Dialog Box

• Crosshair Parameters

o Style

• Normal: The crosshair is a hollow plus (+) sign.

• Full 90: The crosshair is made up of full-window horizontal andvertical lines.

• Full 45: The crosshair is made up of full-window horizontal,vertical, and diagonal lines.

IC Station User’s Manual, v8.9_912-10

Page 307: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

irs.

s.

he

he

t

ling

o Target: Specifies the shape and size of the display target for crosshaThe target is in addition to the crosshairs.

• None: Displays without a target shape.

• Square: Displays with a square shape.

• Diamond: Displays with a diamond shape.

• Octagon: Displays with an octagon shape.

• Circle: Displays with a circle shape.

o Radius: Specifies the size of the crosshair target in DATABASE unitThe radius in an integer.

o Click Dist : Specifies the number of pixels the mouse will consider tsame location.

o Modify Dist : Specifies how close (in pixels) the cursor must be to apath for the$modify_centerline() function to select that path.

• Drag Ruler Parameters

Specifies the behavior of object dynamics.

o Measurement

• None: Object dynamics show no measurements.

• Delta Location: Object dynamics show the x and y deltas, thedistance from the base point to the current cursor location, and tangle from the base point to the current cursor location.

• Perimeter/Area: As the cursor moves, relative to the basepoint,object dynamics show the perimeter, area and new measuremenlines. When this option is enabled, the currently moved edge(s)displays a measuring line to its opposite edge; only the shortestmeasurement is shown. You can also enable this feature by toggthe mode using the “d” hotkey during the move operation.

IC Station User’s Manual, v8.9_9 12-11

Page 308: Icstation User Manual @Vins

Setup IC Full Custom Editing Operations

nce in

notng.

s

r.

e

he

o R/C Extraction : Object dynamics show the resistance and capacitaof a shape or path on the fly. This requires electrical characteristicsthe process file. For more information, refer to the “Object Dynamics”section.

• Drc Parameter Mode

Specifies whether or not to apply DRC layer spacing rule checks whenmoving, copying, or placing an object or a group of objects.

o None: Applies no DRC layer spacing rule checks while moving,copying, or placing an object or a group of objects.

o Highlight Only : Highlights objects that would cause DRC layerspacing violations if the object or group of objects you are moving,copying, or placing were moved or placed in that location. You are restricted from placing the object; the highlighting is simply a warni

o Restrict Cursor: When moving, copying, or placing objects or groupof objects in orthogonal, horizontal, or vertical modes, the cursor islimited to an area where DRC layer spacing violations will not occu

• Highligh Attributes

Specifies the appearance of the DRC error highlight.

o Default (white): DRC errors appear white.

o Use DRC Layer: DRC errors appear with the attributes as set on thDRC layer.

o Individual Layer : DRC errors appear with the attributes as set for tlayer on which the error occurs.

• Circle Input Style

Specifies the default method used to create circles.

o Center: Uses the radius to create circles.

IC Station User’s Manual, v8.9_912-12

Page 309: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

.

y

fer

o Perimeter: Uses the circumference to create circles.

• Arc Segments

An integer in the range 4 through 1024 that specifies the number ofsegments to use when creating a circle.

• Angle Mode

Specifies the angle mode constraints for placing rulers.

o 90: Specifies orthogonal rulers only.

o 45: Specifies orthogonal and 45 degree rulers.

o All : Specifies all angle rulers.

o Cell: Specifies the angle mode of the active context cell.

• Text Height

Specifies the text height for ruler labels in points. One point = 1/72 inch

• Redraw Level

Specifies the redraw scope.

o All : Redraws everything, and always keeps the display current.

o Context All: Redraws everything that changes within the currentcontext.

o Context Min: Redraws only the minimum. Redraws when the displais no longer current or after editing operations.

• Auto Popup Info

Specifies the scope of the auto popup feature. For more information, reto the “Auto Popup Information Box” section.

o None: (Default) Disables auto popup feature.

IC Station User’s Manual, v8.9_9 12-13

Page 310: Icstation User Manual @Vins

Setup IC Full Custom Editing Operations

.

ese it

thetye

d

o Context Only: Only gives information on objects in the currentcontext.

o Full Hierarchy : Gives information on objects in the entire hierarchy

• Drag Complexity

Determines the complexity of the dynamic drag images displayed by thdynamics for the move, copy, paste, place, and add_cell commands. Uto reduce redraw time for dynamics with a large number of objects.

This number roughly corresponds to the number of objects displayed bydynamic. If 50 objects are selected for a move, and the array complexivalue is 30, only a bounding rectangle is displayed. This function can bused while a dynamic is active to change the dynamic image that isdisplayed. Thus, if the value is changed to 60, all the individual, selecteobjects have their associated images dynamically displayed.

• Snap Basepoint

Specifies whether or not to snap the basepoint to the grid.

o On: Snaps the basepoint to grid.

o Off : Does not snap the basepoint to grid.

• Enforce Angle Mode

Specifies whether or not to enforce the angle mode.

o On: Enforce Angle Mode is on.

o Off : Enforce Angle Mode is off

• Auto Notch

Sets auto notch dynamic mode.

o On: Auto Notch is active.

IC Station User’s Manual, v8.9_912-14

Page 311: Icstation User Manual @Vins

Full Custom Editing Operations Setup IC

souldas can

you

he

t is

o Off : Auto Notch is inactive.

• Arc Input Mode

Specifies the current location mode used by dynamics.

o On: The dynamic is an arc or circle.

o Off : The dynamic is a normal polyline.

• Auto Complete Outlines

Enables the visibility of outlines during creation or manipulation of pathand shapes. These outlines show dynamically what a path or shape wlook like if the edit ended at the current cursor location. All options, suchpath-width, snap-grid, or angle-mode, apply to the dynamic image andbe changed on the fly. Works for$add_path(), $add_shape(),$modify_centerline(), and moving an edge.

o On: Shows helper lines and a dynamic ghost image of the object asdraw it.

o Off : Shows the center-line only as you create or modify a path, or tup to date lines as you create or modify a shape.

• Undraw Move Objects

Enables/disables the display of the original object position as an objecbeing moved to a new location using the$move() function.

o On: As an object is moved, the original position of the object is notdisplayed. Only the horizontal and vertical rubberbands indicate thedisplacement of the object being moved.

o Off : As an object is moved, the original position of the object isdisplayed while the horizontal and vertical rubberbands indicate itsdisplacement. The original position of the object remains until themouse click anchors the object at the new location.

IC Station User’s Manual, v8.9_9 12-15

Page 312: Icstation User Manual @Vins

Changing the Active Context Full Custom Editing Operations

ls of the

s:

the

ed

ed

Changing the Active ContextThe use of hierarchy within a design does not remove the ability to edit subcelyour design. In order to access the subcells in your design, you must changecontext of your design to that of the leaf-cell or subcell that you need to edit.

To change the context of your design, you can use the following two method

• $set_context(): Sets the editing context in the active window to the cellhaving a peeked instance closest to the specified location.

• $set_context_up(): Sets the context up the hierarchy to the root level of design.

Editing In ContextTo edit a cell within a design with hierarchy, you must perform the following:

1. Set the active window to contain the parent design you want to edit.

2. Peek the cells you want to edit using either the$peek() or $peek_area()functions.

3. Reserve the cell for editing within the editing session by executing$reserve_cell().

4. Set the editing context in the active window to the cell that has a peekinstance closest to the specified location. Set the context with$set_context().

5. Make your edits.

6. Save your edits to the cell.

7. Set the editing context in the active window to the cell that has a peekinstance closest to the specified location. Set the context with$set_context().

IC Station User’s Manual, v8.9_912-16

Page 313: Icstation User Manual @Vins

Full Custom Editing Operations Setting the Object Template

made

g

ables

te

ingan

pehe

s

8. Unpeek the cells that you edited.

Once you make changes to the selected leaf cell in your design, the changesto that cell appear in any instance that the edited cell is used.

Setting the Object TemplateThe object template in ICgraph contains settings for variables used in creatinnew objects. Each variable provides attribute information for new objects. Ingeneral, each $setup_?*() function in ICgraph contains variables. Some varican be set in two or more different ICgraph functions.

For a list of variables set by the$setup_object_template(), refer to that function intheIC Station Reference Manual. Unless you are using the function in AMPLEscripts, use the graphical interface as follows:

1. ExecuteSetup> Object Template....

A dialog box appears. Enter the required information into the appropriafields for the Object Template.

2. Apply the changes to the Object Template by clicking OK.

The object template returns all fields to default values when you exit the editsession or reset the object template during the current editing session. You csave your object template preferences withSetup > Save Setup. For moreinformation on saving your preferences, refer to sectionSaving and RestoringPreferences in Chapter12.

Warning

When you select an object, the object template for that object tychanges to match that object’s attributes. So your changes to tobject template are not necessarily persistent within an editingsession. If you get unexpected results when adding an object,check the object template to make sure it contains the attributeyou expect.

IC Station User’s Manual, v8.9_9 12-17

Page 314: Icstation User Manual @Vins

Creating Shapes Full Custom Editing Operations

s

w

eit

and

awn

m

Creating ShapesUsing the$add_shape() function, you can create rectangular or irregular shapewith up to 4096 vertices that conform to the current angle mode.

To create a shape in ICgraph, perform the following steps:

1. Create a cell to be edited or reserve an existing cell for edit.

2. Choose the editing style from the IC Palette.

Choose the editing style consistent with your familiarity with ICgraph. Neusers should use theEasy Edit selection. All edit functions are displayedusing their full function name in the menu palette. As you become morfamiliar with the ICgraph functions, you can decide to use the other edpalettes:

o Edit

o Expert Edit

o CE/CBC Edit

These three styles contain the same edit functions but with truncatedfunction names. You can also enter the editing functions from the commline and bypass the Edit palettes altogether.

3. Execute the$add_shape() function.

Upon executing the $add_shape() function, a prompt bar appears.

4. Click the Options... box or press CTRL-o.

Use the resulting dialog box to choose the layer that the shape will be dron. The default layer is layer 1.

5. Close the prompt bar by clicking the OK button or entering a Return frothe keyboard.

IC Station User’s Manual, v8.9_912-18

Page 315: Icstation User Manual @Vins

Full Custom Editing Operations Creating Shapes

thea

ttone

x, a.

is

youain.

oug

.ing

6. Place the cursor anywhere inside the active window of your design.

7. Press the Select button and drag the cursor until you have completed desired shape of your polygon. This technique works best if you have simple polygon or arc to create.

• If you have more complex shapes, then you must click the Select buat each vertex of the polygon until you return to the initial point of thshape. At that point, double-click the Select button to complete thepolygon.

• If you select “Auto Complete Outlines” in the Setup IC Dynamicsdialog box, every time you click the select button to establish a vertecompleted polygon will be drawn from that point to the initial vertex

The$add_shape() function is a recursive function so that you do not have toinvoke the function each time you need to create a shape. Once the functionexecuted, the dialog box that is associated with it remains until you click theCANCEL button. The only thing you may need to change are the layers thatare drawing the shapes on. To change your drawing layer, perform step 4 ag

For more information about adding shapes, refer to the$add_shape() function intheIC Station Reference Manual.

Abutting New Shapes to Existing Objects

To align or abut shapes you’re adding, while working on a fine drawing grid, ycan use the F7 key. This automatically abuts any shapes you place to existinobjects by activating gravity during the placement process.

After executing the $add_shape() function, the ADD SH prompt bar appearsPress the F7 key and your added shape snaps to the edges of objects, causshapes to abut with each other.

For more information, refer to the section “Abutting Shapes and Paths.”

IC Station User’s Manual, v8.9_9 12-19

Page 316: Icstation User Manual @Vins

Creating Circle and Arc Shapes Full Custom Editing Operations

. The

e

c

Creating Circle and Arc ShapesOn occasion, it might be necessary to create circle or arc shapes in ICgraphfollowing steps outline the procedure for creating these shapes:

1. Choose a layer on which to draw the circle in an open cell.

2. ChooseSetup > Dynamicsfrom the pulldown menu. The Setup ICDynamics dialog box is displayed, as shown inFigure 12-2.

3. Click the “Arc Input Mode” button to change the location mode to arcs.

4. Choose a Circle Input Style, either:

o Center, which defines the circle from its center to its outer edge (thcircle's radius).

o Perimeter, which defines the circle from its outer edges (the circle'sdiameter).

5. Specify the resolution of circles and arcs by entering the number of ArSegments to make a circle in the “Arc Segments” field.

6. Click OK.

Figure 12-3. Circle Input Style

Center Perimeter

Circle Input Style

IC Station User’s Manual, v8.9_912-20

Page 317: Icstation User Manual @Vins

Full Custom Editing Operations Creating Circle and Arc Shapes

ss

.

eps:

”g

ngle

r

7. Enter the Add Shape command.

8. Place the cursor at the point where you wish to add the circle, then preand drag the mouse; release when the circle is the desired size.

9. Choose theSetup > Dynamicspulldown menu item. The Setup IC dialogbox is displayed.

10. Click the “Arc Input Mode” button to reset the line location mode to line

11. Execute the Setup IC dialog box.

If you want to make this circular shape into an arc shape, do the following st

1. Enter the Notch command.

2. Drag a rectangle over portions of the circle that you want to “go away.This might require more than one notching. You might receive a warninthat the resulting arc shaped polygon does not conform to the current amode.

Note

You can save the preferences you specify using theSetup > Dynamicsmenu item by choosing theSetup > SaveSetup pulldown menu item. For more information on saving youpreferences, refer to sectionSaving and Restoring Preferences inChapter12.

IC Station User’s Manual, v8.9_9 12-21

Page 318: Icstation User Manual @Vins

Creating Circle and Arc Shapes Full Custom Editing Operations

e aoint

ilecondted

Figure 12-4. Notching a Circle Shape to Create an Arc Shape

Manhattan Arc Mode

When you add a shape in line mode and want to switch to arc mode to creatquarter-circle, press F9. However, by default, the resulting arc requires a midpof the arc first followed by the other end point of the arc as shown inFigure 12-5.This can make it difficult to create smooth quarter-circles. By pressing “m” whin arc mode, the resulting arc switches to Manhattan mode where only the seend point is required, not the midpoint, and a smooth quarter-circle is calculabetween the two endpoints as shown inFigure 12-6.

Arc Shape Creation by Notching a Circle

Resulting Arc Shaped Polygon

IC Station User’s Manual, v8.9_912-22

Page 319: Icstation User Manual @Vins

Full Custom Editing Operations Creating Circle and Arc Shapes

Figure 12-5. Default Arc Mode

Figure 12-6. Manhattan Arc Mode

For more information about circles and arcs, refer to the$set_circle_input_style(),$set_arc_segments(), and$set_location_mode() functions in theIC StationReference Manual.

IC Station User’s Manual, v8.9_9 12-23

Page 320: Icstation User Manual @Vins

Creating Paths Full Custom Editing Operations

at

ath.

tat

by

Creating PathsUsing the$add_path()function, you can create paths with up to 4096 vertices thconform to the current angle mode.

To create a path in ICgraph, perform the following steps:

1. Open or create a cell to be edited.

2. Select the editing style from the IC Palette.

For more information on editing styles, refer to section “Creating Shapes.”

3. Execute the$add_path() function.

Upon executing the $add_path() function, a prompt bar appears.

4. Select the Option... box and choose the layer and line attributes for the pSelect OK when you are finished with the options dialog box.

5. Place the cursor inside the active window of your design at the startingpoint of the path.

Click the Select button to start your path, then click the Select button aeach vertex of the path until you complete the route of your path. At thpoint, double-click the Select button to terminate path entry.

While drawing the path, you can free the cursor from the path dynamicpressing ‘x’. The dynamic will be locked in its original plane, but thecrosshair can move anywhere.

If you select “Auto Complete Outlines” in the Setup IC Dynamics dialogbox, every time you click the select button to establish a vertex, acompleted path will be drawn from that point to the initial vertex.

6. Close the dialog box by clicking OK or pressing Enter.

For more information about adding paths, refer to the$add_path() function in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_912-24

Page 321: Icstation User Manual @Vins

Full Custom Editing Operations Making Ports

ess

ressn,

n you

med

Abutting New Paths to Existing Path Lines

To align or abut paths you are adding while working on a fine drawing grid, prF7. This automatically abuts any paths you place to existing path lines byactivating gravity during the placement process.

After executing the $add_path() function, the ADD PA prompt bar appears. PF7 and your new path will snap to the existing path line. For more informatiorefer to the section “Abutting Shapes and Paths”.

Making PortsYou use the$make_port() function, to make currently selected shapes and/orpaths members of a new port. Selected shapes and paths are automaticallyestablished as belonging to both internal and external aspects of the cell wheexecute the $make_port() function.

Port names are optional; you can add them with the$add_property() function orthe optional port_name argument.

You cannot use $make_port() in a via cell. Via cells have exactly one port (na“v”) that is created automatically when the cell is created. If you wish to addshapes to an existing port, use the$add_to_port() function.

To create a port, perform the following steps:

1. Select the objects that will make up the port.

2. Choose the following menu item:

Objects > Make > Port:

The Make Port prompt bar is displayed.

3. Choose the port type: signal, power, or feedthru.

4. Choose the port direction: in, out, or bidirectional.

IC Station User’s Manual, v8.9_9 12-25

Page 322: Icstation User Manual @Vins

Adding to a Port Full Custom Editing Operations

havect of

bersl

5. Enter the port name.

6. Execute the prompt bar by pressing Return or clicking OK.

The selected objects become members of the port. The port membersboth an internal and external aspect. When you view the external aspethe cell, you will be able to see the port members.

For more information about making ports, refer to the$make_port() function intheIC Station Reference Manual.

Adding to a PortTo add new members to an existing port, perform the following steps:

1. Select at least one member of the existing port.

2. Choose the following menu item:

Connectivity > Port > Activate > Selected

3. Select the objects that you wish to add to the port.

4. Choose the following menu item:

Connectivity > Port > Add to Port

The selected objects become members of the active port. The port memhave both an internal and external aspect. When you view the externaaspect of the cell, you will be able to see the port members.

For more information about adding members to a port, refer to the$activate_port()and$add_to_port()functions in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_912-26

Page 323: Icstation User Manual @Vins

Full Custom Editing Operations Creating a Custom PG Text Font

(PG)

Cellsouldin

0.rs

Creating a Custom PG Text FontIC Station has a default font that you can use to create Pattern Generatable Text in your designs. Figure12-7 shows the characters in this default font.

Figure 12-7. Default PG Text Font Characters

To create your own customized PG Text font, complete the following steps:

1. Create a directory for your customized font.

2. In ICgraph, create a separate cell for each letter, number, and symbol.should be in the directory that you created in Step 1. The cell names shmatch the letter or number, or the symbol names (upper case) shown Table12-2. Each cell must contain the shapes that you wish to use torepresent that character. All shapes for the character must be on layerFigure12-8is an example for the character “A.” The size of your characteshould reflect what you consider to be normal size.

Figure 12-8. Sample Custom PG Text Character

Table 12-2. Symbol Character Cell Names

Char Cell Name Char Cell Name Char Cell Name

! BANG * STAR < LESSTHAN

" QUOTE + PLUS = EQUALS

# POUND , COMMA > GREATERTHAN

A

IC Station User’s Manual, v8.9_9 12-27

Page 324: Icstation User Manual @Vins

Creating a Custom PG Text Font Full Custom Editing Operations

nt andx:

d

to

The following characters are not available for use:

3. In ICgraph, execute the $make_font() function. For example, if your fodirectory was your current working directory, and you wanted to createfont called ACME_PG with an intercharacter spacing of 15 user units aan interline spacing of 20 user units, you would use the following synta

$make_font("", "ACME_PG", 15, 20)

The result (in this example) is a file in your current working directory calleACME_PG. This file is used if you wish to use your custom font in anICgraph session. For instructions about using your PG Text font, refer the section “Changing the Default PG Text Font.”

% PERCENT - DASH ? QUESTION

& AMPERSAND . DOT [ LBRACKET

' SINGLE_QUOTE

/ SLASH \ BACKSLASH

( LPAREN : COLON ] RBRACKET

) RPAREN ; SEMICOLON ^ UPARROW

$ (dollar sign) ` (back-tick) | (vertical bar)

@ (at symbol) { } (braces) ~ (tilde)

_ (underscore)

Table 12-2. Symbol Character Cell Names [continued]

Char Cell Name Char Cell Name Char Cell Name

IC Station User’s Manual, v8.9_912-28

Page 325: Icstation User Manual @Vins

Full Custom Editing Operations Changing the Default PG Text Font

n a

heont:

Changing the Default PG Text FontFor instructions about creating a custom PG Text font, refer to the section“Creating a Custom PG Text Font.” If you wish to change the default PG Textfont, perform the following steps prior to invoking ICgraph:

1. Ensure that you have a location map and that yourMGC_LOCATION_MAP environment variable is pointing to this locatiomap. If you do not have a location map, or you do not know how to uselocation map, see your System Administrator for assistance.

2. In your location map, define the location of your custom PG Text font. Tfollowing is an example of a location map entry for a custom PG Text f

$MGC_IC_PGFONT/big_ACME_project/custom_font/ACME_PG

The location that you assign to $MGC_IC_PGFONT should be thepathname of your own custom PG Text font.

Note

You can use only one PG Text font during a session or within ahierarchy of cells. ICgraph always uses either the font that youspecified in$MGC_IC_PGFONT in your location map, or thedefault,pgfont.

IC Station User’s Manual, v8.9_9 12-29

Page 326: Icstation User Manual @Vins

Creating PG Text Full Custom Editing Operations

n,

you

ant

Creating PG TextTo interactively add PG Text to the current active cell, perform the followingsteps:

1. Execute the $add_device("$pgtext") function.

A dialog box, similar to the one in Figure12-9, is displayed. Enter the layernumber or name for the PG Text, the horizontal and vertical justificatioand the actual text.

Figure 12-9. PG Text Parameters Dialog Box

While entering the text, pressing Return starts a new line of text. Whenhave entered the text, press OK on the dialog box.

A prompt bar is displayed, prompting you for the location where you wto place the PG Text.

PG Text Parameters

Layer 1

Horizontal JustificationLeft

Vertical Justification

Bottom

TopMiddleMiddle

Right

OK Reset Cancel

IC Station User’s Manual, v8.9_912-30

Page 327: Icstation User Manual @Vins

Full Custom Editing Operations Changing the Size of PG Text

the

sing

PG

PG

2. Click Select at the location where you want to place the PG Text.

The PG Text is placed as a programmable device. If you want, you canmove the PG Text or change its size. For instructions about changing size of PG Text, refer to the procedure, “Changing the Size of PG Text.”For more information about the$add_device() function, refer to theICStation Reference Manual.

As an alternative to the interactive method, you can directly add PG Text by uthe $add_point_device() function as shown below:

$add_point_device("$pgtext", @block, [], [1559, 613],[["layer", "1"], ["hjust", "left"], ["vjust", "bottom"],["gdsii_text", "ACME CMOS ROM"]]);

For more information about the$add_point_device() function, refer to theICStation Reference Manual.

Changing the Size of PG TextTo change the size of PG text in a cell, perform the following steps:

1. Select the PG Text that you wish to change.

2. Execute the $scale_cell() function.

The following is an example of doubling the current size of the selectedText:

$scale_cells(2, @relative)

The following is an example of doubling the original size of the selectedText:

$scale_cells(2, @absolute)

For more information about the$scale_cells() function, refer to theICStation Reference Manual.

IC Station User’s Manual, v8.9_9 12-31

Page 328: Icstation User Manual @Vins

Adding Free-standing Text Full Custom Editing Operations

o

ges.

e

ine ifnd

Adding Free-standing TextTo add free-standing text in a cell, perform the following steps:

1. Choose the following menu item:

Objects > Add > Text:

2. In the Add Text prompt bar, enter the text string that you want to add tyour design.

3. Click the options button and enter the layer, justification, orientation,aspect, and size of the text if desired. Then, Click OK to accept the chan

4. Position the cursor where you want the text in your design and click thSelect button.

For more information about the$add_text()function, refer to theIC StationReference Manual.

Adding Text Objects to a GroupUsing the$group_text() function, you can either append objects to an existinggroup, or add them to a new group. When adding the objects, you can determthey become persistent and are saved with the cell data, or are temporary atherefore not saved.

When this function is invoked using theGRO TE command syntax, the Add Textto a Group dialog box shown inFigure 12-10 appears.

IC Station User’s Manual, v8.9_912-32

Page 329: Icstation User Manual @Vins

Full Custom Editing Operations Adding Text Objects to a Group

eans

sionsa cell.cters,

ith

sas au

Figure 12-10. Add Text to a Group Dialog Box

This function ignores property text objects, and is not case sensitive. This mthat if your input value is “ABC” text with the values of either “ABC” or “abc” isgrouped.

You can select whether text values are treated as literal strings or regularexpressions via the “Treat text as regular expression” button. Regular expresare user-provided character sequences that are used to locate text objects inUse regular expressions to locate text that contains a certain pattern of charasuch as “ABC” in the above example.

For another example, say you’re looking for the cell’s text objects that start w“clock”. If you use the regular expressionclock.*, any string is located thatcontains the wordclock followed by an arbitrary number of characters. Matcheinclude clock, clock2 and clock_signal. However, abc_clock does not return match. If you wanted to find all text objects with the word “clock” included, yowould use the regular expression .*clock.*.

For more information on constructing regular expressions and using specialcharacters such as “.” and “*”, refer to “Regular Expressions” in theAMPLE forIC Flow User’s Manual.

For more information, see $group_text() in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_9 12-33

Page 330: Icstation User Manual @Vins

Adding Multiple Text Objects to a Cell Full Custom Editing Operations

e

n

exeects’

Adding Multiple Text Objects to a CellYou can add one or more text objects to a cell in a repeated pattern using th$add_multiple_text() function. Typically, you use this function to add text with“bussed” values, meaning the values differ only by an incremental number. Aexample is “abc(0)”, “abc(1)”, “abc(2)”.

When you invoke this function using theObjects > Add > Multi Text: pulldownmenu, the Add Multiple Text dialog box appears. In this form, you can set avariety of specifications for the text objects you are adding, including the indvalues, the index increments for adding multiple text objects, and the distancbetween the X and Y coordinates of add objects. You also can set the text objlayer, height, justification, orientation, and aspect.

Figure 12-11. Add Multiple Text Dialog Box

For more information, see$add_multiple_text() in the IC Station ReferenceManual.

IC Station User’s Manual, v8.9_912-34

Page 331: Icstation User Manual @Vins

Full Custom Editing Operations Viewing Layers

oue toge a

.

ndelectre

Viewing LayersYou can establish control over the visibility of layers on a per-window basis. Ycan specify visibility by stating the layer groups that are to participate in, or arbe excluded from, the visible layer sets associated with the window. To chancell's aspect, you must:

1. Execute the$set_visible_layers() function orOther > Layers >Set Visible Layersfrom the pulldown menu. A dialog box with a listing ofthe currently defined layers appears, along with a radio-button selector

2. Select the layers you wish to modify in the visible layer set.

• Place the cursor over the first layer, then press the Select button adrag the cursor down to the last layer to be chosen. Release the Sbutton. Use the And/Or dialog box to and a layer if the layers you ausing form a non-contiguous layer set. You can also choosenon-contiguous layers from the list by pressing CTRL and clickingSelect.

3. Click to choose one of the following. You have the choice of:

• Adding

• Appending

• Removing a visible layer from the visible layer set.

Displaying Object InformationTo obtain information about one or more objects in your design, perform thefollowing:

1. Select the objects that you want information on.

2. ExecuteReport > Selectedfrom the pulldown menu.

IC Station User’s Manual, v8.9_9 12-35

Page 332: Icstation User Manual @Vins

Displaying Object Information Full Custom Editing Operations

at

apes

totedd

e

A dialog box with a listing of the currently selected objects is displayed thcontains the following information about the selected objects:

o The name of the cell where the objects are located.

o The location, aspect, area, perimeter, and minimum segment for shand paths.

The location coordinates returned by $report_selected() are globalthe top cell in the window. Thus, the location coordinates of a selecobject in a subcell are reported based on the location of the selecteobject in theparent cell, not the location of the object within thesubcell.

o The handle, layer name, and layer number.

o The origin line, justification, slideability, resizeability, site type, rowtype, and orientations for rows.

o The handle and coordinate information of edges.

o The scale and orientation.

o The columns, rows, x-pitch, and y-pitch for arrays.

o Any associated net, port, rows, or logical properties.

o The direction, type, must-connect and swap set.

o The Property text owner handle, name, value, and location.

o The placement status.

If you are writing AMPLE programs, you can use the$get_object_info() and$get_cell_info() functions to obtain information on a particular object. For morinformation about these functions, refer to theIC Station Reference Manual.

IC Station User’s Manual, v8.9_912-36

Page 333: Icstation User Manual @Vins

Full Custom Editing Operations Using Application Variables

Theyin

get thatthann

theults tohe

r the

theableitingeep

younotetion

Using Application VariablesApplication variables represent values that the you can access and change. are most often used as default settings for command options, and are used $setup_...() functions and Options dialog boxes. You can access applicationvariables through matching $get_...()/$set_...() functions in ICgraph. These $and $set function pairs allow you to read and modify the application variablerelate to that specific pair. Each application variable can be affected by moreone function. As a result, you have a choice of how to modify each applicatiovariable.

Most or all application variables have a default setting that is determined by type of data that the variable represents. For example, an integer often defa0. If you have changed the value by setting the variable through a function, tvariable retains last value assigned to that variable.

If you choose to execute a particular setup function, for example,$setup_object_template(), you set a collection of application variables for anediting session. Unless you change it, the settings you choose remain valid foduration of the session.

If you choose to change the application variables in an ICgraph function, or incorresponding set function, you have the option of keeping the previous varisettings, or changing the variables to current values for the duration of the edsession through use of the keep_opt switch in the function. If you specify @kfor the keep_opt switch, the settings of the application variables remain untilchange them. If you specify @nokeep for the keep_opt switch, the applicatiovariables will return to their previous settings after the function is executed. Nthat the previous settings may or may not be the default settings of the applicavariable.

IC Station User’s Manual, v8.9_9 12-37

Page 334: Icstation User Manual @Vins

Changing the Redraw Mode Full Custom Editing Operations

stedere

f thehe

not

tive

eof

Lns

n.

Changing the Redraw ModeThe redraw_level in ICgraph controls how changes to graphical objects are poto your display. The redraw_level controls the drawing method used and whthe updates are posted. The redraw_level is an option within the$setup_ic()function; it is also available as an application variable in the$get_redraw_level()and$set_redraw_level() functions.

The redraw_level application variable settings let you determine the extent oredraw level, which indirectly controls the speed of redraw within ICgraph. Tthree choices available in the redraw_level application variable are:

• All . Redraws the area of change in all visible windows.

• Context_all. Redraws the area of change in the current active context; in all visible windows.

• Context_min. Erases and redraws the modified objects in the current accontext; not in all visible windows.

To change the redraw_level, perform the following steps:

1. Execute $setup_ic() or $set_redraw_level() from the command line, thSession pulldown menuSetup > IC... or the Session Palette. In the case $setup_ic(), a dialog box appears and lists the available options.

For the $set_redraw_level() function, executing the function or SET REat the command line causes a prompt bar to appear that lists the optiospecifically for the $set_redraw_level() function.

2. Choose the redraw setting from the options listed.

3. Click OK or press Return to terminate the dialog box.

The redraw_level remains set until you either reset it, or leave the edit sessioYou can make the preferences you specified persisent beyond the life of thesession by choosing theSetup > Save Setup pulldown menu item. For moreinformation on saving your preferences, refer to sectionSaving and RestoringPreferences in Chapter12.

IC Station User’s Manual, v8.9_912-38

Page 335: Icstation User Manual @Vins

Full Custom Editing Operations Selection and Highlighting

sore

vend the

n the

theor.

byct

Selection and Highlighting

Using the Select Filter

To change the select filter, perform the following steps:

1. Execute the$setup_select_filter() function.

You can do this either from the command line or by executing theSetup >SetupFilter pulldown menu. All selection criteria are application variableand can be accessed through the appropriate $get/$set function. For minformation on the $setup_select_filter() function, refer to theIC StationReference Manual.

2. Enter the desired selection criteria in the dialog box.

3. Click OK or press Return when you are finished.

Once the select filter is set, it remains in effect until you change it, or you leathe edit session. You can make the preferences you specified persisent beyolife of the session by choosing theSetup > Save Setup pulldown menu item. Formore information on saving your preferences, refer to sectionSaving andRestoring Preferences in Chapter12.

Selecting a Single Object

If the Select button is already defined to select objects, position the cursor oobject that you wish to select, then click the Select button.

Note

This procedure assumes the point-select mode is set to select object closest to the specified point which is the default behaviThe$set_point_select_mode()function determines whichobject(s) is selected when the$select_area() function is executedwith a single point specified. The point-select mode can be setexplicitly executing the function or by accessing the Setup SeleFilter dialog box through theSetup > Select Filter menu.

IC Station User’s Manual, v8.9_9 12-39

Page 336: Icstation User Manual @Vins

Selection and Highlighting Full Custom Editing Operations

ps:

s:

lar

are

If the Select button is not defined to select objects, perform the following ste

1. Press Esc.

2. Position the cursor on the object that you want to select, then click theSelect button.

For more information about selecting a single object, refer to the$select_area()function in theIC Station Reference Manual.

Selecting Objects in an Area

If the Select button is already defined to select objects, do the following step

1. Position the cursor at a point that identifies one corner of the rectanguarea that you wish to select.

2. Press and hold the Select button.

3. Drag the cursor to the point that identifies the opposite corner of therectangular area that you wish to select.

4. Release the Select button.

Objects within the defined area that meet the select filter requirementsselected.

If the Select button is not defined to select objects, do the following steps:

1. Press Esc.

2. Press and hold the Select button.

3. Drag the cursor to the point that identifies the opposite corner of therectangular area that you wish to select.

IC Station User’s Manual, v8.9_912-40

Page 337: Icstation User Manual @Vins

Full Custom Editing Operations Selection and Highlighting

are

ither

the

is not”

4. Release the Select button.

Objects within the defined area that meet the select filter requirementsselected.

For more information about selecting objects in an area, refer to the$select_area()function in theIC Station Reference Manual.

Selecting Text

You can select text objects in your design using the$select_text() function. Textobjects in the current context are selected by their string value, which can be ea literal string or a text value that is treated like a regular expression.

When the $select_text() function is invoked, either using a command line or Select > Text... pulldown menu, the dialog box shown inFigure 12-12 appears.

Figure 12-12. $select_text() Dialog Box

The $select_text() function only selects text objects on one of thecurrently-selectable layers, and does not select property text. This commandcase-sensitive; if the input value is “XYZ”, then text with either “XYZ” or “xyzis selected.

IC Station User’s Manual, v8.9_9 12-41

Page 338: Icstation User Manual @Vins

Selection and Highlighting Full Custom Editing Operations

sionsa cell.cters,

ith

sas au

tion.

You can select whether text values are treated as literal strings or regularexpressions via the “Treat text as regular expression” button. Regular expresare user-provided character sequences that are used to locate text objects inUse regular expressions to locate text that contains a certain pattern of charasuch as “ABC” in the above example.

For another example, say you’re looking for the cell’s text objects that start w“clock”. If you use the regular expressionclock.*, any string is located thatcontains the wordclock followed by an arbitrary number of characters. Matcheinclude clock, clock2 and clock_signal. However, abc_clock does not return match. If you wanted to find all text objects with the word “clock” included, yowould use the regular expression .*clock.*.

For more detailed information on constructing regular expressions and usingspecial characters such as “.” and “*”, refer to “Regular Expressions” in theAMPLE for IC Flow User’s Manual.

For more information, see$select_text() in theIC Station Reference Manual.

Protecting Objects From Selection

To prevent objects from being selectable and therefore editable, perform thefollowing steps:

1. Select the objects to be protected.

2. Execute theProtect > Selected item.

The selected objects are protected from further selection and manipula

For more information about protecting objects from selection, refer to the$protect() function in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_912-42

Page 339: Icstation User Manual @Vins

Full Custom Editing Operations Selection and Highlighting

teps:

ion

only

tedghtt arebout

t be

Unprotecting Objects

To enable selection and editing of protected objects, perform the following s

1. Execute theUnprotect> All item.

All currently protected objects are unprotected.

2. Unselect the objects that you want unprotected.

3. Execute theProtect> Selected item.

The remaining selected objects are again protected from further selectand manipulation.

For more information about unprotecting objects, refer to the$unprotect_all()function in theIC Station Reference Manual.

Highlighting Objects

Functions that highlight rather than select objects are provided to allow read-access and easy graphical identification for the user. Highlighting functionsoperate on unselected objects in the active context.

Highlighting is additive so that objects remain highlighted until they are selecor unhighlighted. For example, highlighting gives the user the ability to highlia net across the hierarchy regardless of the active context, select objects thapart of that net, and act on those selected objects while having information athe other parts of the net that are highlighted. Selection has priority overhighlighting; highlighted objects can be selected, but selected objects cannohighlighted.

IC Station User’s Manual, v8.9_9 12-43

Page 340: Icstation User Manual @Vins

Selection and Highlighting Full Custom Editing Operations

t

e

Highlighting acts on the following segments of a design:

• Object name: $highlight_by_name()

• Object property: $highlight_by_property()

• Group property : $highlight_group()

• Selected and unselected object(s): $highlight_on_selected(),$highlight_all()

• Protected object(s): $highlight_protected()

• Net: $highlight_hierarchical_net()

To highlight an object(s):

1. Activate the ICgraph window that contains the chosen design.

2. Use theSelect >Highlight > pulldown menu. Depending on what you wanto highlight, select the appropriate function from the cascading menu.

You can also execute highlighting functions from the command line. Thfunctions you use is determined by the objects you want to highlight.

IC Station User’s Manual, v8.9_912-44

Page 341: Icstation User Manual @Vins

Full Custom Editing Operations Object Dynamics

erlacemic.ionsou

tion.en

Object DynamicsWhen you move, copy, or place an object, or add a cell or via, or perform othobject edits, you are given an outline (ghost image) of the object to help you pthe object in the desired location. This ghost image is called the object’s dynaThere are tools available to aid you in placing the object, and there are functavailable for you to manipulate the object when the object dynamic is active. Yspecify what information you want added with the dynamic in the Setup ICDynamics dialog box.

Figure 12-13 shows the dynamic of an object when you set the Drag RulerMeasurement Parameter on the Setup IC Dynamics dialog box to Delta LocaThe x and y deltas, as well as the angle and distance from basepoint, are givwith the dynamics on the fly.

Figure 12-13. Object Dynamics with Delta Location

Delta x

Basepoint

Delta y

Angle fromBasepoint

Distance fromBasepoint

Originalobject

Ghostimage

IC Station User’s Manual, v8.9_9 12-45

Page 342: Icstation User Manual @Vins

Object Dynamics Full Custom Editing Operations

and

n themic

)

Figure 12-14 shows the dynamic when you set the Drag Ruler MeasurementParameter on the Setup IC Dynamics dialog box to Perimeter/Area. The AreaPerimeter of the current polygon are given with the dynamics on the fly.

Figure 12-14. Object Dynamics with Perimeter/Area

When an object’s dynamic appears, a list of available hotkeys is presented itranscript window. You can use these hotkeys to manipulate the object’s dynaon the fly. This list overwrites any previous messages.

If you do not want this message to appear, set $set_dynamic_message_mode() to@off. The dynamic hotkeys overload any of the same hotkeys that werepreviously loaded. To disable dynamic hotkeys, set$set_dynamic_hotkey_mode(to @off. For more information about hotkeys, refer to “Hotkeys”.

Following is a list of available hotkeys when the dynamic is active:

• d: Cycles the dynamic mode from None to Delta Location toPerimeter/Area

• D: Enables R/C Extraction

• f: Flips the dynamic horizontally

Area

Perimeter

Move Edge

IC Station User’s Manual, v8.9_912-46

Page 343: Icstation User Manual @Vins

Full Custom Editing Operations Object Dynamics

line

• F: Flips the dynamic vertically

• m: Enables Manhattan arc mode

• q: Switches DRC parameter mode between Off, Highlight DRC andRestrict Cursor

• r : Rotates the dynamic 90 degrees

• R: Rotates the dynamic -90 degrees

• s: Slides the current edge for object dynamics. Slides the last edge fordynamics.

• x: Enables ortholock.

These hotkeys work with the following functions:

• $move()

• $place()

• $copy()

• $paste()

• $add_cell()

• $add_via()

• $modify_centerline()

• $add_path()

• $add_device()

• $add_shape()

• $move() with a selected edge

IC Station User’s Manual, v8.9_9 12-47

Page 344: Icstation User Manual @Vins

Object Dynamics Full Custom Editing Operations

ste

file,. To

DRC Checking On the Fly

You can have ICgraph run DRC checks on the fly during move, copy, and paoperations. To use DRC On the Fly (DRC OTF), you must specify the layerspacing rules in the layer spacing table. As DRC OTF does not read a Rule you can only edit the layer spacing table by editing a process through ICgraphedit the layer spacing table, perform the following steps:

1. Reserve the process for edit withFile > Process > Reserve.

2. Open the Edit Process dialog box located atFile > Process > Edit....

3. Choose “Layer Spacing” in the Process Values field.

4. Press the Edit Value button.

5. The Set Process Layer Spacing dialog box will open.Figure 12-15 showsthe Set Process Layer Spacing dialog box.

6. Enter the layer names and minimum spacing value.

7. Press OK on the open dialog boxes.

Figure 12-15. Set Layer Spacing Dialog Box

IC Station User’s Manual, v8.9_912-48

Page 345: Icstation User Manual @Vins

Full Custom Editing Operations Object Dynamics

es

e

llow

DRC OTF works with the following functions:

• $move()

• $place()

• $copy()

• $paste()

• $add_cell()

• $add_via()

• $modify_centerline()

• $add_path()

• $add_device()

• $add_shape()

• $move() with a selected edge

DRC OTF Results

DRC OTF gives two results: highlighting only or restrict cursor. The result modare set in theSetup > IC Dynamicsdialog box, DRC Parameter field. Highlightonly mode allows an operation to result in a DRC error; it simply highlights therror as a warning.Figure 12-16 shows the resulting highlight when an object ismoved to a location that violates a DRC rule. Restrict cursor mode does not aan object to be placed in a location that violates a DRC rule.Figure 12-17 showsan attempt to move an object to a location that violates a DRC rule.

IC Station User’s Manual, v8.9_9 12-49

Page 346: Icstation User Manual @Vins

Object Dynamics Full Custom Editing Operations

andyour

ance/C

rocess

Figure 12-16. DRC On the Fly, Highlighting Only

Figure 12-17. DRC On the Fly, Restrict Cursor

Resistor/Capacitor Extraction On the Fly

For $add_path() and moving and edge on a path, you can see the resistance capacitance of the added or modified path in the object dynamics on the fly iftoggle on the R/C Extraction button in the Setup IC Dynamics Dialog Box. Fo$add_shape()and$move()a selected edge on a shape, you can see the capacitof the added or modified shape in the object dynamics on the fly if you toggle RExtraction. You must have the resistance (ohms/square), edge capacitance(farads/user units), and area capacitance (farads/(user units)^2) set in the Pfile for each layer on which you want to use R/C Extraction.

IC Station User’s Manual, v8.9_912-50

Page 347: Icstation User Manual @Vins

Full Custom Editing Operations Object Dynamics

ed

taken

with

he

d)

ified

s are

ess,n

y

For $add_device(), you can see resistance on the fly when adding a point-basresistor, and you can see capacitance on the fly when adding a shape-basedcapacitor. The values of capacitance, edge capacitance, and resistance are from the device setup.

Following are some limitations and notes on using R/C Extraction:

• The resistor and capacitor calculations use the outline constructedthe $add_path(), $add_shape(), and $move() on a selected edgefunctions; therefore, the “Auto Complete Outlines” option must beenabled in the Setup IC Dynamics dialog box for R/C Extraction towork.

• The calculations need the Drag Ruler visible to show the results. TDrag Ruler Parameter Mode in the Setup IC Dynamics dialog boxcannot be “None.”

• The resistance and capacitance are not visible in the drag ruler bydefault. Their visibility is enabled by toggling on the “R/C Extract”button in the Setup IC Dynamics dialog box or by pressing 'D' (Shift-when the object dynamic is active.

• The resistance of the drawn layer is taken from the process as specin the “Electrical Rules” for each layer.

• Resistance is shown in ohms, capacitance in farads. The unit rangeseamless from “f” (femto) to “G” (giga).

• Unspecified values or calculation resulting in a zero value are notprinted. For example, if only sheet resistance is specified in the procthe output on the drag ruler would be {R=xxx}; there is no calculatiofor capacitance.

• The calculation of resistance is made for orthogonal paths only. Annon-orthogonal path will be ignored, as will any shape.

• Orthogonal corners are calculated with the over-the-thumb rule “1/2sheet resistance.”

IC Station User’s Manual, v8.9_9 12-51

Page 348: Icstation User Manual @Vins

Object Dynamics Full Custom Editing Operations

(like

is

ate,

• Self-overlapping shapes are not used for calculation.

• In the case where an edit operation produces two or more shapes $move() on more than one selected edge), the capacitance will beaccumulated.

• When adding an object to a layer set, only the first layer of the set used for calculation.

• Capacitance is only calculated from the current object to the substrnot to other objects.

Setting up R/C Extraction

To set up R/C Extraction, perform the following steps:

1. Reserve the process for edit withFile > Process > Reserve.

2. Open the Edit Process dialog box, shown inFigure 12-18, withFile > Process > Edit....

Figure 12-18. Edit Process Dialog Box

IC Station User’s Manual, v8.9_912-52

Page 349: Icstation User Manual @Vins

Full Custom Editing Operations Object Dynamics

les

in

ge

3. Select “Elect Rules” from the “Process Values” field.

4. Click on the button “Edit Value...”. The Set Process Layer Electrical Rudialog box, shown inFigure 12-19, appears.

Figure 12-19. Set Process Layer Electrical Rules Dialog Box

5. Enter the Layer Name.

6. Enter the Edge Capacitance of the layer in Farad/user units.

7. Enter the Area Capacitance of the layer in Farad/(user units)^2.

8. Enter the Resistance in Ohms/square.

9. Enter the Bend Factor, which is a correction factor for sheet resistancecorner squares.

10. Click OK.

Using R/C Extraction

To use R/C Extraction, perform the following steps:

1. Make sure the Drag Ruler Measurement Parameter from the Setup ICDynamics dialog box is not “None.”

Note

The capacitance is displayed in the dynamics as the sum of EdCapacitance and Area Capacitance.

IC Station User’s Manual, v8.9_9 12-53

Page 350: Icstation User Manual @Vins

Auto Popup Information Box Full Custom Editing Operations

ics

x.

th().

in

the

GC

2. Make sure “Auto Complete Outlines” is enabled in the Setup IC Dynamdialog box.

3. Enable the toggle “R/C Extraction” in the Setup IC Dynamics dialog bo

4. Select a layer and add a shape or path with $add_shape() or $add_pa

The resistance and capacitance is displayed in curly braces as shown Figure 12-20.

Figure 12-20. Resistance and Capacitance on the Fly

Auto Popup Information BoxThe Auto Popup Information Box shows logical information about an object atcurrent mouse location. Logical information includes the cell name, objectinformation, and net membership. The information is reduced to the mostimportant values for each object type as follows:

• Pin: Name and owning cell or logical name and owning cell.

• Instance: Instance name or cell name or cell logical name.

• Device: Instance name or device name and sub-type information for Mdevices.

• Via: Instance name or device name and sub-type information for MGCdevices.

• Others (shape, path, via-objects and so forth): Port name or port logicalname.

IC Station User’s Manual, v8.9_912-54

Page 351: Icstation User Manual @Vins

Full Custom Editing Operations Auto Popup Information Box

ers

t be

tion.

on

in

.

e

all

he

The following criteria determines what objects return information:

• Objects must be visible, so they must be in a peeked context, their laymust be set to visible, and their appropriate aspect must be set.

• Objects must meet the current select filter criteria and their layers musselectable.

• Objects must completely surround the mouse pointer to return informa

• If more than one object meets this criteria, information will be returnedthe object with a vertex closest to the mouse pointer.

Setting Up Auto Popup Information Boxes

To set up Auto Popup Information Boxes, perform the following steps:

1. In the Setup IC Dynamics dialog box, select one of the following optionsthe section Auto Popup Info:

o None: Disables auto popup feature.

o Context Only: Gives information on objects in the current context.

o Full Hierarchy : Gives information on objects in the entire hierarchy

2. Make sure the objects you want information on are visible.

3. Make sure the select filter and layer selectability allow you to select thobjects you want information on.

Note

When you select on object, its information is displayed in a smpopup box.Figure 12-21 shows an example of the informationreturned on an object. The popup box only remains active until tnext time you press a key or move the mouse

IC Station User’s Manual, v8.9_9 12-55

Page 352: Icstation User Manual @Vins

Moving Objects Full Custom Editing Operations

ted a

Figure 12-21. Auto Popup Information Box

Moving ObjectsYou can move selected objects or edges to a specific location. If the secondwindow has the same active context as the first window, you can move selecobjects from one window to another. You can also move selected objects byspecified distance relative to the basepoint.

To move data between cells, use the$copy_to_clipboard()and$paste()functions.

IC Station User’s Manual, v8.9_912-56

Page 353: Icstation User Manual @Vins

Full Custom Editing Operations Moving Objects

on,

on

in

, the

rain

efer

Moving Unconstrained

To move an object or objects, perform the following steps (For more informatirefer to the section “Join Devices While Moving or Placing Pins” and “Split GatePins” in the IC Station Device Level Automation Manual):

1. Activate the window containing the objects you want to move.

2. Select the objects.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. SelectIC Palettes > Edit > MOV.

An unconstrained move is being performed. Moves can be constrainedthe horizontal or vertical directions by selecting horizontal, vertical, ororthogonal in the$move() prompt bar.

4. Drag the ghost image to the desired location. As you move the object(s)cursor readout provides a location reference.

After the objects are moved, they remain selected.

When you move the source or drain of one MOS device over the source or dof another, you can have the two devices automatically joined. For moreinformation, see section “Join Devices While Moving or Placing Pins” in theICStation Device Level Automation Manual.

You can split a MOS device in order to move a subset of the device’s pins. Rto the section “Split Gate Pins” in the IC Station Device Level AutomationManual.

For more information about moving objects, refer to the$move() and$move_relative() functions in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_9 12-57

Page 354: Icstation User Manual @Vins

Moving Objects Full Custom Editing Operations

on

he

thers a

Moving Relative to the Basepoint

To move an object or objects relative to the current basepoint, perform thefollowing steps:

1. Activate the window containing the objects you want to move.

2. Select the objects.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Choose theEdit > Move > Relative:menu item.

4. Enter the X and Y offsets in the prompt bar.

5. Execute the prompt bar.

The selected objects are moved the specified X,Y distance relative to tbasepoint. The moved objects remain selected.

For more information about moving objects, refer to the$move() and$move_relative() functions in theIC Station Reference Manual.

Moving Objects to Conform to DRC Rules

You can move selected objects, with restrictions that keep you from moving objects, into a location where the resulting placement will cause a DRC LayeSpacing violation. There is one level of restriction, which highlights objects awarning when placement would result in a violation.

To highlight objects when a DRC Layer Spacing violation would result:

1. In theSetup > Dynamics... dialog box, select the “Highlight” radio buttonunder Restriction Mode.

2. Select the object(s) and move them. Wherever a DRC layer spacingviolation will occur, the object will be highlighted.

IC Station User’s Manual, v8.9_912-58

Page 355: Icstation User Manual @Vins

Full Custom Editing Operations Moving Objects

ayerf yougroup

or

up

ts as.se

yer

Moving Objects as Close as Possible

You can move objects as close as possible to other objects based on DRC lspacing checks. You can move either a single object or a group of objects. Imove a group of objects, you can choose whether to move the objects as a or move each object in the group individually.

You can use the function,$get_acap_info(), to view the valid range of movementof the selected object or group of objects without actually moving the object objects.

To move an object or group of objects as close as possible to other objects,perform the following steps:

1. Make sure your Rule file is loaded.

2. Select the object or objects you wish to move.

3. With the cursor in the ic session window, type “$move_acap()” to bringthe $move_acap() prompt bar.

4. In themove_direction field, select the direction to move the selectedobject(s).

5. If you have used the $group() function to name the group of objects youwant to move, enter that name in thetarget_group field.

6. If you are moving more than one object, select whether you want theobjects to be moved as a group or one at a time. If you move the objeca group, the current spacing between those objects will be maintainedHowever, if you move the objects individually, they will be moved as cloas possible to the other members of the group.

7. Click OK to run the command.

There are two keystroke shortcuts for moving objects as close as possible.

• Using CTRL plus any one of the four arrow keys will move the selectedobject(s) as close as possible to the nearest object that shares DRC la

IC Station User’s Manual, v8.9_9 12-59

Page 356: Icstation User Manual @Vins

Moving Objects Full Custom Editing Operations

tion

ion.

stes inrent

haveyou

the

spacing and routing channel rules with the selected object(s) in the direcof the arrow key. If there are no objects in that direction, the selectedobject(s) will be moved to the edge of the current window in that direct

• Using CTRL+ALT plus any one of the four arrow keys will move aselected group of objects individually as close as possible to the neareobject that shares DRC layer spacing and routing channel rules with thselected object(s) in the direction of the arrow key. If there are no objectthat direction, the selected object(s) will be moved to the edge of the curwindow in that direction.

Moving Edges

You can move selected objects to a specific location. For each edge that youselected, you are prompted with an image of that edge you can position wherewant the edge moved to.

To move a polygon edge, perform the following steps:

1. Activate the window containing the objects you want to move.

2. Press the Unselect All function key.

3. Position the cursor at a point near the edge you want to select.

4. Click the Ctrl-Select button.

The nearest edge is selected.

5. Press and hold the Ctrl-Select button.

6. Drag the ghost image of the edge to the desired location. As you moveedge, the cursor readout provides a location reference.

7. Release the Ctrl-Select button to move the selected edge.

The moved edge remains selected.

IC Station User’s Manual, v8.9_912-60

Page 357: Icstation User Manual @Vins

Full Custom Editing Operations Moving Objects

e

he of

You can move multiple edges in the same manner by selecting more than onedge before performing the move. Figure12-22 contains examples of moving asingle edge and multiple edges.

If you select “Auto Complete Outlines” in the Setup IC Dynamics dialog box, tcomplete polygon or path automatically adjust its size to the current locationthe cursor.

For more information about moving edges, refer to the$move() and$select_edge() functions in theIC Station Reference Manual.

Figure 12-22. Moving Edges

ORIGINAL AFTER EDGE MOVE

SINGLE EDGE MOVE

MULTIPLE EDGE MOVE

IC Station User’s Manual, v8.9_9 12-61

Page 358: Icstation User Manual @Vins

Aligning Objects Full Custom Editing Operations

sed

ove.

e

entect,

n

d

Moving a Single Vertex

To move a single vertex of a shape, path, shape-based device, and path-badevice, perform the following steps:

1. Select the two edges of the object that meet at the vertex you want to m

2. Click on theEdit > Move > Unconstrained popup menu item.

3. Move the cursor in the direction and the distance you want to move thvertex.

4. Click the mouse button in the location you want to place the vertex.

For more information about moving vertices, refer to the$stretch()function in theIC Station Reference Manual.

Aligning ObjectsUsing the$align()function, you can move selected objects and edges in alignmwith a reference or “target” object. To align selected objects with a target objperform the following steps:

1. Activate the window containing the objects and edges you wish to aligwith a “target” object.

The target object is that with which you want to align other objects andedges. This object is the reference point for the alignment operation andoes not move.

2. Select a “target” object. No overflows should be selected.

3. Choose theEdit > Align menu item.

The $get_select_area()prompt bar appears.

4. Select the objects or edges to align with the target object.

IC Station User’s Manual, v8.9_912-62

Page 359: Icstation User Manual @Vins

Full Custom Editing Operations Aligning Objects

e

t

o

the

TheAlign dialog box (Figure12-23) appears. In this form, you can choosseveral different options to occur during the alignment process.

5. Choose the following buttons or fill in the fields:

• Align this of selected objects: Specify the reference point or edge ofthe selected objects to be moved.

• To this of the target object: Specify the target object’s reference poinor edge.

• Move objects as a group: Specify whether the selected objects aremoved individually or as a group.

• Tile option: Specify whether the alignment specification is applied tthe target object or is recursively applied to the last selected objectmoved. This is ignored is you turn onMove objects as group.

• Offset: Specify the offset distance. The offset distance is added to selected items’ aligned position.

For more information on these settings, see the$align()function in theICStation Reference Manual.

6. Execute the Align dialog box by clickingOK or pressing Enter.

IC Station User’s Manual, v8.9_9 12-63

Page 360: Icstation User Manual @Vins

Aligning Objects Full Custom Editing Operations

cane

bject.

ch

to

Figure 12-23. Align dialog box

Abutting Shapes and Paths

To align or abut shapes and paths while working on a fine drawing grid, you use the F7 key. This automatically abuts any shape or path placements to thnearest object by activating gravity during the placement process.

Gravity distance controls the amount which the cursor snaps to a shape or oUsing the$set_gravity_distance()function, the gravity distance can be setanywhere from 0 to 200 pixels. The default is 50 pixels, which is about a half-inon the screen.

Setting the gravity distance to greater than zero allows you to use the F7 keysnap the shape or path to the nearest object within the gravity distance.

IC Station User’s Manual, v8.9_912-64

Page 361: Icstation User Manual @Vins

Full Custom Editing Operations Aligning Objects

. ther path.

the

che the

After executing the$add_shape()or $add_path()functions, a prompt bar appearsIf you’ve set the gravity distance to greater than 0 and press F7, the edge ofpath or shape you add is automatically snapped to the nearest object edge o

If you are working on a large design, you may have the view zoomed out, asleft-hand portionFigure 12-24 shows. What the figure does not readily show,however, is that the path you added without gravity does not actually abut eashape. The actual space between the path and shapes’ edges is visible oncview is zoomed in, as the right-hand portion of the picture shows.

Figure 12-24. Path Placement Before Using F7 (Gravity) Key

IC Station User’s Manual, v8.9_9 12-65

Page 362: Icstation User Manual @Vins

Aligning Objects Full Custom Editing Operations

theectly

If you turn on the gravity, invoke$add_path()and press F7 before placing yourpath, your added path will abut the existing shapes, as shown inFigure 12-25.Again, looking at the left-hand view, it is tough to determine if the path abutsshapes. However, as the zoomed-in, right-hand portion shows, the path perfabuts the shapes.

Figure 12-25. Path Placement After Using F7 (Gravity) Key

IC Station User’s Manual, v8.9_912-66

Page 363: Icstation User Manual @Vins

Full Custom Editing Operations Copying Objects

sed

n.

Depending upon the object, the snapping behavior varies:

• Path: Snaps orthogonally to the nearest point on the defining line of thepath object.

• Shape: Snaps orthogonally to the nearest edge of the shape object.

• Pin: Snaps based on what the pin’s components are. If the pin is compofrom a path, then path snapping behavior applies. Similarly, if the pin iscomposed from a shape, then shape snapping behavior occurs.

• Via: Snaps to center of the via object.

• Other Objects: Ignores all other objects.

For more information, refer to the$set_gravity_distance() function in theICStation Reference Manual.

Copying ObjectsUsing the$copy() function, you can copy selected objects to a specific locatioYou can copy the selected objects from one window to another window if thesecond window has the same active context as the first window.

You also have the option of copying object(s) to another layer ($copy_to_layer()),to the ICgraph clipboard ($copy_to_clipboard()), or multiple times relative to thebasepoint of the original select set ($copy_relative()).

For more information about copying objects, refer to theIC Station ReferenceManual and the procedures in this section. To copy data between different cells,use the $copy_to_clipboard() and$paste() functions.

IC Station User’s Manual, v8.9_9 12-67

Page 364: Icstation User Manual @Vins

Copying Objects Full Custom Editing Operations

on

p

opy.

er

on

Copying One or More Objects

To copy objects, perform the following steps:

1. Activate the window that contains the object(s) you want to copy.

2. Select the object(s).

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Choose theEdit > Copy > Selected:pulldown menu item.

4. Position the object(s) in the desired location.

As you move the object(s), a ghost image appears, allowing you to keetrack of the location of the object(s) as you position them.

5. Once the object(s) are in place, click the Select button to perform the c

The copied objects remain selected.

Copying Relative to the Basepoint

The$copy_relative() function lets you copy selected objects a specified numbof times, with each copy at an offset relative to the basepoint of the originallyselected objects or from the most previous copy.

1. Activate the window that contains the object(s) you want to copy.

2. Select the object(s).

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Choose theEdit > Copy > Relativepulldown menu item.

4. Enter the number of copies and the X and Y offset in the prompt bar.

IC Station User’s Manual, v8.9_912-68

Page 365: Icstation User Manual @Vins

Full Custom Editing Operations Copying Objects

t.pies.

at is,

her

on

int.

p

opy.

5. Execute the prompt bar.

The selected objects are copied the specified number of times. The firscopy is offset relative to the basepoint of the originally selected objectsThe other copies are offset relative to the basepoint of the previous coThe copied objects remain selected.

Copying About Another Basepoint

Using the $copy() function, you can copy objects about another basepoint; tha basepoint other than the default basepoint.

1. Activate the window that contains the object(s) you want to copy to anotlayer.

2. Select the object(s).

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Choose theEdit > Copy > Selected:pulldown menu item.

4. Click the From button on the Copy prompt.

5. Position the cursor at the location of the new basepoint.

6. Position the object(s) in the desired location relative to the new basepo

As you move the object(s), a ghost image appears, allowing you to keetrack of the location of the object(s) as you position them.

7. Once the object(s) are in place, click the Select button to perform the c

The copied objects remain selected.

IC Station User’s Manual, v8.9_9 12-69

Page 366: Icstation User Manual @Vins

Copying Objects Full Custom Editing Operations

ivepoint the

er or

opy

on

bar is lost.

can.

Using the Clipboard

Using the$cut() function, you can remove the selected objects from the activecontext and store the objects and their properties in the clipboard. Using the$copy_to_clipboard() function, you can copy the selected objects from the actcontext and store the objects and their properties in the clipboard. The baseof the current selection is placed at the clipboard origin. This function closesselect set on execution. The following are not maintained in the clipboard:

Properties and property text that belong to objects are cut and copied whethnot the properties are selected.

Copying and Pasting through the Clipboard

You generally use the clipboard to copy objects between different cells. To cand paste objects through the clipboard, perform the following steps:

1. Activate the window that contains the object(s) you want to copy.

2. Select the object(s).

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Press and release the Copy to Clipboard function key.

The selected objects are copied to the clipboard and the Paste promptdisplayed. Any items that were previously located on the clipboard are

4. If you wish to paste to a different window, activate that window.

5. Position the cursor at the target location and click the Select button.

The objects from the clipboard are pasted to the specified location. Youalso use the individual Copy and Paste keys to copy and paste objects

• connectivity • protection • groups

• selection • highlight

IC Station User’s Manual, v8.9_912-70

Page 367: Icstation User Manual @Vins

Full Custom Editing Operations Copying Objects

cut

on

.

theTo

her

Cutting and Pasting through the Clipboard

You generally use the clipboard to move objects between different cells. To and paste objects through the clipboard, perform the following steps:

1. Activate the window that contains the object(s) you want to cut.

2. Select the object(s).

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Choose theEdit > Cut menu item.

The selected objects are moved to the clipboard. Any items that werepreviously located on the clipboard are lost.

4. If you wish to paste to a different window, activate that window.

5. Choose theEdit > Pastemenu item.

The Paste prompt bar is displayed.

6. Position the cursor at the target location and click the Select button.

The objects from the clipboard are pasted to the specified location.

You can also use the individual Cut and Paste keys to cut and paste objects

Copying to Another Layer

Using the$copy_to_layer() function, you can copy the selected object(s) toanother layer at the same location as the original. However, you cannot use $copy_to_layer() function on instances, arrays, rows, overflows, or devices. copy an object to another layer, perform the following steps:

1. Activate the window that contains the object(s) you want to copy to anotlayer.

IC Station User’s Manual, v8.9_9 12-71

Page 368: Icstation User Manual @Vins

Modifying Path Centerlines Full Custom Editing Operations

on

cute

ed

2. Select the object(s).

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Choose theEdit > Copy > To Layer... pulldown menu item to display theCopy to Layer dialog box.

4. Choose which layer you want the selected object(s) copied to, then exethe dialog box.

The copied object remains selected until you unselect it.

Modifying Path CenterlinesUsing the$modify_centerline() function, you can change the shape of a selectpath or device to extend the endpoints of an existing path, or to add or movevertices to a path or device defined by a centerline as Figure12-26 shows.

Figure 12-26. Modifying Path Centerlines

Extending a Path Centerline

To extend the centerline of a path, perform the following steps:

Original Path New Reference Line Modified Path

IC Station User’s Manual, v8.9_912-72

Page 369: Icstation User Manual @Vins

Full Custom Editing Operations Modifying Path Centerlines

on

tend.

e

fy.

lect

ith

lick

1. Select the path that you wish to extend.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Position the cursor near the vertex on the centerline that you wish to ex

3. Press and hold the Ctrl-Alt-Select button.

4. Move the cursor to the next point for the new centerline and release thCtrl-Alt-Select button.

The path is extended according to the new centerline.

Changing the Direction of a Path Centerline

To modify the centerline of a path, perform the following steps:

1. Select the path that you want to modify.

2. Choose the following menu item:

Edit > Modify Ctrline:

3. Position the cursor at the point on the centerline that you want to modi

4. Click the Select button.

5. Move the cursor to the next point for the new centerline and click the Sebutton.

6. Continue entering new centerline segments until all modifications havebeen made. If you make a mistake, you can remove the last segment wthe Backspace key.

7. Position the cursor on the last point of the new centerline and double-cthe Select button.

The path is modified according to the new centerline.

IC Station User’s Manual, v8.9_9 12-73

Page 370: Icstation User Manual @Vins

Notching Objects Full Custom Editing Operations

e

s,s,

ge,t you

t an

If you select “Auto Complete Outlines” in the Setup IC Dynamics dialog box,every time you click the select button to establish a vertex for the modifiedcenterline, the complete outline of the path will be drawn from that point to thinitial vertex.

For more information about modifying centerlines, refer to the$modify_centerline() function in theIC Station Reference Manual.

Notching ObjectsUsing the$notch() function, you can notch selected shapes, devices, and rowand optionally maintain a constant area. This function operates in two modedepending on what part of an object that you select:

• If you select the entire polygon, you can notch-in and notch-out any edand the overall area of the polygon changes by the area of the notch thacreate.

• If you select only one or more edges of a polygon, you can do anotch-with-constant-area operation; that is, as you notch-in or notch-ouedge, the polygon is modified along the selected edge to maintain theoriginal area of the polygon.

The$notch_special() function enables you to notch shape-based devices (forexample, $capacitor).

Figure12-27 contains examples of notching polygons in and out, and cuttingdoughnut holes in polygons.

Note

The$notch_special()function works on the original geometry anddoes not change the handle number.

IC Station User’s Manual, v8.9_912-74

Page 371: Icstation User Manual @Vins

Full Custom Editing Operations Notching Objects

verlap partsn isuts a

tionon. In

Figure 12-27. Notching Polygons

When you notch in, $notch() cuts out the parts of the selected shapes that othe polygon. When you notch out, IC graph adds to each selected object theof the polygon that intersect and extend past the object. If the specified polygocompletely inside a selected object, and the direction is not @out, $notch() chole in the object.

You can notch through an object to create multiple objects. The $notch() funcdeletes the part of the selected shape that is enclosed by the specified polygcontrast, the$slice_with_polygon() function cuts the selected shape withoutdeleting any part of the shape.

To notch a polygon, perform the following steps:

1. Activate the window that contains the object that you want to notch.

2. Select the object to notch.

ORIGINAL NOTCH OUT NOTCH IN DOUGHNUT

IC Station User’s Manual, v8.9_9 12-75

Page 372: Icstation User Manual @Vins

Notching Objects Full Custom Editing Operations

on

he

ld the

is

you

ect

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Notchin by performing the following steps:

a. Position the cursoroutsidethe selected polygon, then press and hold tShift-Ctrl-Select button.

b. Draw a rectangle that intersects the selected polygon.

c. Release the Shift-Ctrl-Select button.

The area defined by the polygon that intersects the selected object isremoved from the selected object.

4. Notchout by performing the following steps:

a. Position the cursor inside the selected polygon, then press and hoShift-Ctrl-Select button.

b. Draw a rectangle that intersects at least one edge of the selectedpolygon.

c. Release the Shift-Ctrl-Select button.

The area defined by the polygon that is outside the selected objectadded to the selected object.

After the notch area is defined, the selected object remains highlighted until unselect it.

For more information about notching, refer to the$notch() function in theICStation Reference Manual.

Note

For more complex notches than simple polygons, you can alsodraw the notching polygon by clicking the Select button at thevertices of the desired polygon and then double clicking the Selbutton to complete the polygon to define the notch area.

IC Station User’s Manual, v8.9_912-76

Page 373: Icstation User Manual @Vins

Full Custom Editing Operations Cutting and Recomposing Objects

,e orcut,

Theygon

For the

the

on

t thent

Cutting and Recomposing ObjectsUsing the$cut_stretch() function, you can cut and recompose selected shapespaths, or shape- or path-based Ample devices either intersected by a polylinenclosed in a polygon. This function also moves selected items that are not including instances, via objects and text.

When using this function, you are prompted for both a cut line and an add line.cut line does not have to be a straight line, but rather can be a multipoint polwhich allows you to avoid obstacles in the layout. The add line also can havemultiple points.

This function is useful is you have a shape to which you want to add bends. example, if you wanted to add two bends to a shape, and had an obstacle inmiddle of your layout, you previously would invoke the$notch()command twice.Now you can “jog” around the obstacle and add the bends in one pass using$cut_stretch() function.

To cut an object, perform the following steps:

1. Activate the window that contains the object that you wish to cut andreshape.

2. Select the object to cut.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

3. Invoke the $cut_stretch() function using theEdit > Cut/Stretch pulldownmenu.

The CUTS prompt bar appears, prompting for a cut line.

4. Establish the cut line by:

a. Pressing and holding the Select button at the point where you wancut line to begin, then dragging the line to the point at which you wathe cut line to end.

IC Station User’s Manual, v8.9_9 12-77

Page 374: Icstation User Manual @Vins

Slicing Objects Full Custom Editing Operations

pt

t theant

elyese

jects

re

b. Double-click the Select button to end the cut line selection. The prombar now asks you to select an add line.

5. Establish the add line by:

a. Pressing and holding the Select button at the point where you wanadd line to begin, then dragging the line to the point at which you wthe add line to end.

b. Double-click the Select button to end the add line selection.

The shape then is cut and reshaped.

After the cutting and reshaping are performed, the selected object remainshighlighted until you unselect it.

For more information, refer to$cut_stretch() in theIC Station Reference Manual.

Slicing ObjectsUsing the$slice() function, you can cut selected shapes, paths, shape-baseddevices, and path-based devices into pieces using the specified ic_line as adividing line.

Using the$slice_with_polygon() function, you can cut selected objects intomultiple pieces using the polygon outline as the dividing line. Any object entirinside or outside of the polygon is unaffected. The select argument determinwhether all of the new objects are selected, or only those inside or outside thspecified polygon.

ICgraph assigns properties associated with each original object to the new obcreated by the slice functions. The property text offset from each new originremains the same as the original offset.

When shapes and paths that are port members are sliced, the new objects amembers of the same port as their associated original object.

IC Station User’s Manual, v8.9_912-78

Page 375: Icstation User Manual @Vins

Full Custom Editing Operations Slicing Objects

wo

es intops:

on

Slice with Line

Figure12-28 is an example of slicing a polygon with a line, resulting in two nepolygons. Figure12-29is an example of slicing a path with a line, resulting in twnew paths.

Figure 12-28. Slicing a Polygon with a Line

Figure 12-29. Slicing a Path with a Line

To cut selected shapes, paths, shape-based devices, and path- based devicpieces using the specified ic_line as a dividing line, perform the following ste

1. Select the object that you want to slice.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

Original AfterSlice

polyline

Original AfterSlice

polyline

IC Station User’s Manual, v8.9_9 12-79

Page 376: Icstation User Manual @Vins

Slicing Objects Full Custom Editing Operations

t

hcts

tions thate port

w

2. Position the cursor at the first point of the slice line.

3. Press and hold the Shift-Ctrl-Select button.

4. Move the cursor to the ending point for the slice line (the slice line musintersect the selected object), then release the Shift-Ctrl-Select button.

The selected object is sliced into pieces based on the slice line. ICgrapassigns properties associated with each original object to the new objecreated by the slice operation. The property text offset from each neworigin remains the same as the original offset. If the autoselect applicavariable is @true, the new objects are selected. When shapes and pathare port members are sliced, the new objects are members of the samas their associated original object.

For more information about slicing objects with a line, refer to the$slice()function in theIC Station Reference Manual.

Slice with Polygon (path)

Figure12-30is an example of slicing a path with a polygon resulting in three nepaths.

Figure 12-30. Slicing a Path with a Polygon

Original AfterSlice

polygon

IC Station User’s Manual, v8.9_912-80

Page 377: Icstation User Manual @Vins

Full Custom Editing Operations Slicing Objects

rform

on

elect.

raphcts

tionthate port

To cut selected paths and path-based devices into pieces using a polygon, pethe following steps:

1. Select the path that you wish to slice.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Position the cursor at the first point of the slice polygon.

3. Press and hold Shift-Ctrl-Select.

4. Move the cursor to the opposite corner of the slice polygon, (the slicepolygon must intersect the selected path) and then release Shift-Ctrl-S

The selected path is sliced into pieces based on the slice polygon. ICgassigns properties associated with each original object to the new objecreated by the slice operation. The property text offset from each neworigin remains the same as the original offset. If the autoselect applicavariable is @true, the sliced portion of the path is selected. When pathsare port members are sliced, the new objects are members of the samas their associated original object.

For more information about slicing objects with a polygon, refer to the$slice_with_polygon() function in theIC Station Reference Manual.

IC Station User’s Manual, v8.9_9 12-81

Page 378: Icstation User Manual @Vins

Slicing Objects Full Custom Editing Operations

in

s into

on

Slice with Polygon (polygons)

Figure12-31is an example of slicing a polygon with another polygon resultingthree new polygons.

Figure 12-31. Slicing a Polygon with Another Polygon

To cut selected shapes, paths, shape-based devices, and path-based devicepieces using a rectangular polygon, line, perform the following steps:

1. Select the object that you want to slice.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theEdit > Slice > With Polygon: menu item.

3. Position the cursor at one corner of the slice polygon.

4. Press and hold the Select button.

Original AfterSlice

polygon

IC Station User’s Manual, v8.9_912-82

Page 379: Icstation User Manual @Vins

Full Custom Editing Operations Stretching Objects

n

raphpes

tion port the

thspath

dget are

raph

5. Move the cursor to the opposite corner of the slice polygon (the polygomust intersect the selected object) and then release the Select button.

An irregular polygon can be created by clicking at each vertex of thepolygon, then double clicking at the last vertex.

The selected shape is sliced into pieces based on the slice polygon. ICgassigns properties associated with each original shape to the new shacreated by the slice operation. The property text offset from each neworigin remains the same as the original offset. If the autoselect applicavariable is @true, the new shapes are selected. When shapes that aremembers are sliced, the new shapes are members of the same port asoriginal shape.

For more information about slicing objects with a polygon, refer to the$slice_with_polygon() function in theIC Station Reference Manual.

Stretching ObjectsUsing the$stretch()function, you can move the vertices of selected shapes, paand devices that are enclosed by the polygon that you draw. The vertex of ais the vertex of its centerline. You can create new shapes by stretching an ethrough itself. Enclosed (intersecting) instances, via objects, and property texmoved by the given distance.

If the stretched shape does not conform to the current angle mode setting, ICgdisplays a warning message in the transcript. The $stretch() function will notexecute if the stretch would result in an illegal shape or path. Figure12-32 is anexample of stretching polygons.

IC Station User’s Manual, v8.9_9 12-83

Page 380: Icstation User Manual @Vins

Stretching Objects Full Custom Editing Operations

on

ch

Figure 12-32. Stretching Polygons

To stretch the vertices of selected shapes, paths, shape-based devices, andpath-based devices, perform the following steps:

1. Select the objects that you wish to stretch.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theEdit > Stretch: menu item

3. Draw a polygon that encloses the vertices that you want to stretch.

4. Position the cursor anywhere in the active window.

5. Press and hold the Select button.

6. Move the cursor in the direction and the distance that you wish to stretthe enclosed, selected vertices.

7. Release the Select button.

Original AfterStretch

EnclosingPolygon

IC Station User’s Manual, v8.9_912-84

Page 381: Icstation User Manual @Vins

Full Custom Editing Operations Resizing Polygons

yerative

on

size

The enclosed vertices are moved in the direction and distance that youspecified.

For more information about stretching vertices, refer to the$stretch() function intheIC Station Reference Manual.

Resizing PolygonsUsing the$resize() function, you can copy selected shapes from a specified lato another specified layer, and resize the shape by a specified positive or negamount. Figure12-33 is an example of resizing a polygon by -1, and by 1.

Figure 12-33. Resizing Polygons

To resize selected objects, perform the following steps:

1. Select the objects that you want to resize.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theEdit > Resize... menu item.

3. Choose the From and TO layers in the Resize dialog box.

There must be selected objects on the From layer.

4. In the Resize dialog box, enter the number of user units by which to rethe objects.

Original Shape Resize = -1 Resize = 1

IC Station User’s Manual, v8.9_9 12-85

Page 382: Icstation User Manual @Vins

Flattening Objects Full Custom Editing Operations

jects.

ount

by itsextent

Positive numbers enlarge the objects; negative numbers reduce the ob

5. Execute the dialog box.

The selected objects on the From layer are resized by the specified amand the newly-created polygons are placed on the To layer.

For more information about resizing selected objects, refer to the$resize()function in theIC Station Reference Manual.

Flattening ObjectsUsing the $flatten() function, you can remove the hierarchy of instances anddevices, reduce arrays to instances, and reduce paths to shapes. Figure12-34is anexample of flattening instances and paths. The flattened instance is replacedinternal mask data; the flattened path is replaced by a shape with the same as the original path.

Figure 12-34. Flattening Instances and Paths

To flatten selected objects, perform the following steps:

1. Select the objects that you wish to flatten.

NAND4

BEFORE AFTER FLATTENING

GN

D

Vdd

OUT OUT

I3

I3

I2

I2

I1

I1

I0 I0

IC Station User’s Manual, v8.9_912-86

Page 383: Icstation User Manual @Vins

Full Custom Editing Operations Rounding Corners (Filleting)

on

ttsideto the

e ar

if

signents

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theEdit > Flatten menu item.

The selected objects are flattened.

For more information about flattening selected objects, refer to the$flatten()function in theIC Station Reference Manual.

Rounding Corners (Filleting)Using the $fillet() function, you can round off the corner on the selected objecthat is closest to the specified point location. The inside vertices as well as ouones are changed. The radius is calculated as the distance from this vertex point on the adjacent edge closest to the specified location.

If you want to fillet corners of an object with an internal hole (object shaped likdonut), be aware that the item has a cut line from the internal hole to its outeedge. This cut line creates extra corners for the object, which will be clippedthese corners are closest to the specified point.

Path centerlines are filleted rather than its boundary. If the resolution of the despace is not high enough for the specified number of segments, fewer segmare used to fillet the corner. Figure12-35 is an example of rounding corners of apolygon.

Figure 12-35. Rounding Corners

ORIGINAL FILLETED

IC Station User’s Manual, v8.9_9 12-87

Page 384: Icstation User Manual @Vins

Rounding Corners (Filleting) Full Custom Editing Operations

on

e

e

hee

er to

on

Rounding a Single Corner

To round a single corner of a selected object, perform the following steps:

1. Select the object on which you wish to round a corner.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theEdit > Fillet > Closest Vertex: menu item.

The Fillet prompt bar is displayed.

3. Enter the number of segments for the rounding—the default is four. Thlarger the number of segments, the smoother the curve.

4. Position the cursor at the point that you want to use as the radius of throunded corner for the corner that you want rounded.

5. Click the Select button.

The corner nearest the cursor is rounded. The radius is calculated as tdistance from this vertex to the point on the adjacent edge closest to thspecified location.

For more information about rounding a single corner of a selected object, refthe$fillet() function in theIC Station Reference Manual.

Rounding Corners in an Area

To round multiple corners of a selected object, perform the following steps:

1. Select the object on which you wish to round multiple corners.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theEdit > Fillet > With Polygon: menu item.

IC Station User’s Manual, v8.9_912-88

Page 385: Icstation User Manual @Vins

Full Custom Editing Operations Using Boolean Operations (Compose)

thering

e

er to

ng

ns

The Fillet Area prompt bar is displayed.

3. Enter the radius for the rounded corners. The radius must be less thanshortest distance from an enclosed vertex to the line joining its neighbovertices.

4. Enter the number of segments for the rounding—the default is four. Thlarger the number of segments, the smoother the curve.

5. Draw a polygon that encloses the corners that you want rounded.

The corners enclosed by the polygon are rounded.

For more information about rounding a single corner of a selected object, refthe$fillet_area() function in theIC Station Reference Manual.

Using Boolean Operations (Compose)Using the$compose_layer_geometries() and$compose_layer_selections()functions, you can use Boolean operations to create new shapes from existiselected objects, or existing objects with a defined area.

Figure12-36contains examples of using AND, OR, and XOR Boolean operatioto create new polygons.

Figure 12-36. Using Boolean Operations (Compose)

ORIGINAL AND OR XOR

IC Station User’s Manual, v8.9_9 12-89

Page 386: Icstation User Manual @Vins

Using Boolean Operations (Compose) Full Custom Editing Operations

the

on

n

yer.

cts,

fic

Selected Objects

To perform Boolean operations on selected objects on specific layers, performfollowing steps:

1. Select the objects on which you wish to perform a Boolean operation.

Objects are selected according to the select filter. For more informationthe select filter, refer to the section “Using the Select Filter.”

2. Choose theObjects > Compose Layer > Compose Layer Selections:menu item.

The Compose Layer Selections prompt bar is displayed.

3. Enter the first source layer, the second source layer, and the destinatiolayer.

4. Choose the type of Boolean operation that you want to perform.

5. Execute the prompt bar.

The Boolean operation is performed on the selected objects on the twosource layers; the resulting geometries are placed on the destination la

For more information about performing Boolean operations on selected objerefer to the$compose_layer_selections() function in theIC Station ReferenceManual.

Geometries

To perform Boolean operations on all objects within a specific area on specilayers, perform the following steps:

1. Choose theObjects > Compose Layer > Compose Layer Geometries:menu item.

The Compose Layer Geometries prompt bar is displayed.

IC Station User’s Manual, v8.9_912-90

Page 387: Icstation User Manual @Vins

Full Custom Editing Operations Creating Arrays

n

rm

yers

in a

le,thede

f the

tope in, if

the

2. Enter the first source layer, the second source layer, and the destinatiolayer.

3. Choose the type of Boolean operation that you want to perform.

4. Position the cursor at one corner of the area in which you wish to perfothe Boolean operation.

5. Press and hold the Select button.

6. Drag the cursor to the opposite corner of the area in which you wish toperform the Boolean operation.

7. Release the Select button.

The Boolean operation is performed on all objects on the two source lawithin the specified area; the resulting geometries are placed on thedestination layer.

For more information about performing Boolean operations on all objects withspecific area on specific layers, refer to the$compose_layer_geometries()function in theIC Station Reference Manual.

Creating ArraysUsing the$make_array() function, you can create a rectangular array of a singselected instance. The origin of the array is the origin of the [1,1] element of array; the array is placed with its origin equivalent to the origin of the selecteinstance. The orientation of each element in the array is identical to that of thoriginal instance. The orientation of the instance does not affect the rotation oarray.

Upon creation, the columns of the array are aligned horizontally relative to thecell. Once the array is created, however, the columns and rows do not changrelation to the orientation of the array when it is rotated or flipped. For examplea 2-column-by-3-row array is rotated by 90 degrees, it will still be a2-column-by-3-row array, but the columns are aligned horizontally relative totop cell.

IC Station User’s Manual, v8.9_9 12-91

Page 388: Icstation User Manual @Vins

Using Undo and Redo Full Custom Editing Operations

es. Torray

the

.

ified.m.

e)

at

fore

vely

You cannot create arrays of noninstance objects, devices, or arrays themselvform an array of arrays or devices, first make the object into a cell and then athis new cell.

To create an array, perform the following steps:

1. Select the instance that you want to array.

2. Choose theObjects > Make > Array: menu item.

The Make Array bar is displayed.

3. Enter the number of columns and rows for the array.

4. Enter the X an y offset for the array. The default is the X an Y extent ofcell that you are using to create the array.

5. To execute the prompt bar, press the Return key of click the OK button

The array is created using the columns, rows, and offsets that you specYou can modify the array with the Objects > Change > Array: menu ite

For more information about making arrays, refer to the$make_array() and$change_array() functions in theIC Station Reference Manual.

Using Undo and RedoThe$undo() and$redo() functions in ICgraph allow you to return ICgraph to thprevious state before the execution of the last ICgraph function. The $undo(function allows you to make temporary edits to a design, or recover from anerroneous function execution. The $redo() function reverses the action of the$undo() function. Both functions are similar, but have different restrictions thaffect how and when to use them.

The $undo() function is used to return an application to the state it was in bethe last function was issued. With $undo(), you have the ability to set theundo_level of the function from the default value of 3 on up. For performancereasons, it is recommended that you keep your undo_level setting to a relati

IC Station User’s Manual, v8.9_912-92

Page 389: Icstation User Manual @Vins

Full Custom Editing Operations Creating Groups

h the

oreo()

e. If

o()s,e the

tion

iatethe

the

small value (near 3). You can disable undo by setting the undo level to 0 wit$set_undo_level() function.

The $redo() function is used to return an application to the state it was in befthe $undo() was issued. The redo_level is tied to the undo_level of the $undfunction and cannot be any greater than the undo_level setting.

The $undo() and $redo() functions are executed in pairs within ICgraph. Forexample, if you executed a group of 3 $undo()s, you would have at most 3$redo()s to perform at this time, even if your undo_level is set at a higher valuyou attempt to perform a $redo() without a having executed a corresponding$undo(), you get an error message. Also, if you execute a sequence of 3 $undperform 2 $redo()s, and then execute a different function altogether, you loslast $redo() from the redo queue.

To execute either the $undo() or $redo() functions, you simply enter the funcat the command line in ICgraph.

Creating GroupsTo create a group, perform the following steps:

1. Activate the cell you want to work on.

2. Select the design objects that you want to include in a group.

3. Execute one of the group functions based on your grouping criteria.

This can be done from the command line, or by executing theOther >Group > pulldown menu.

After you have created your group, you can view it by executing the appropr$highlight function. You can also generate a report of your group by executingReport > Group > pulldown menu, and selecting the appropriate choice fromcascading menu that appears.

IC Station User’s Manual, v8.9_9 12-93

Page 390: Icstation User Manual @Vins

Using Aspects Full Custom Editing Operations

ctl for.t.

the

e thethe

Using AspectsA design object in V8.x has an internal and an external aspect. A cell's asperepresents the view of the cell that you see in ICgraph. This is especially usefuviewing a cell in terms of its Mask data (Internal) or Symbolic data (External)From this point on, Mask -> Internal Aspect and Symbolic -> External Aspec

To change the view aspect of a cell, you can use one of two methods: usingCTRL keys, or by executing the$show_aspect() function. To change the viewaspect from the keyboard, you use the key mapping below:

• CTRL-E Show external aspect

• CTRL-I Show internal aspect

• CTRL-B Show internal and external aspect

To change the aspect of a cell you must:

1. Load the cell into ICgraph by issuing the$open_cell()function. If the cell isalready loaded you can disregard this step.

2. Change the aspect by issuing the $show_aspect() function. You can uskeyboard settings, or the command line. If you issue the function from command line a prompt bar prompts you to select the viewing aspect.Terminate the prompt bar by pressing Return or clicking OK.

IC Station User’s Manual, v8.9_912-94

Page 391: Icstation User Manual @Vins

ting

cess

g

tain

ausenal

not

Chapter 13Edit Mode Operations

The procedures in this section help you:

• Determine what prerequisites must be met to change editing modes.

• Change editing modes in ICgraph after the cell has been created.

When you are ready to promote or demote your design to a different edimode, your design must meet the criteria discussed in the followingsections.

Before changing a cell's editing mode, you must reserve the cell for edit. If acto the cell is read-only when you execute the$set_cell_configuration()function, amessage is displayed and the function is ignored. You can change any editinmode to any of the other editing modes.

Promoting Cells from GE to the CE ModeWhen you promote a cell from the GE mode to the CE mode, you move fromunrestricted polygon editing to editing restrictions that enable ICgraph to mainconnectivity information as editing occurs.

Promoting a cell from the GE mode to the CE mode might be prohibited becof more rigid constraints on the data. You must process and generate additioinformation about the layout. Promotion of the cell is prohibited if the cell'sconnectivity is not current. You can use$extract_cell_connectivity() to createcurrent connectivity. Changing a cell from the GE mode to the CE mode doesimply that design rule correctness has been established, nor that the layoutconnectivity model matches some source information.

IC Station User’s Manual, v8.9_9 13-1

Page 392: Icstation User Manual @Vins

Promoting Cells from GE to the CE Mode Edit Mode Operations

ists net.

sites

ts in are

iffer

ur

If you promote a cell from the GE mode, each net name property text that exon shapes and paths belonging to a net is moved (not copied) to the owning

Prerequisites

To promote a cell from the GE mode to the CE mode, the following prerequimust be met:

• You must load a Rules file that is specific to the cell in use.

• Editor layers must be used in at least some of the CONNECT statementhe Rules file. It is best if all of the layers in the CONNECT statementseditor layers, not derived layers.

• Your cell cannot contain arrays. If your cell has arrays, you must flattenthem or encapsulate them in an instance.

• Your cell must have existing, valid connectivity.

• Your Process must contain the $power_net_names Process Variabledefining the power net names used in your design, if those net names dfrom the default values listed in Table13-1.

• If you are using the Automated Layout tools, you must define the$routing_level, $wire_type, and $via_type Process Variables within yoProcess.

Table 13-1. Default Power Net Names

Net Name Net Type

VCCVDDVSSGNDVEEVBB

Power supplyPower supplyGroundGroundSpecialSpecial

IC Station User’s Manual, v8.9_913-2

Page 393: Icstation User Manual @Vins

Edit Mode Operations Promoting Cells from GE to the CBC Mode

bles.

m

extas the

Procedure

To promote a cell from the GE mode to the CE mode, follow these steps:

1. Modify or recreate your PDF and include the necessary Process Varia

2. Load the corresponding Rules file using the$load_rules() function.

3. Execute the$extract_cell_connectivity() function to extract cellconnectivity from your design.

4. Execute the $set_cell_configuration(@CE) function.

A message is displayed if the last extract involved objects on derivedlayers.

Your cell is now ready to be edited in the CE mode.

Promoting Cells from GE to the CBCMode

When you promote a cell from the GE mode to the CBC mode, you move frounrestricted polygon editing to editing restrictions that disallow any edit thatwould change the cell connectivity or violate specified design rules.

When you are promoting a cell from the GE mode, each net name property tthat exists on shapes and paths belonging to a net and has the same value name of the net is moved (not copied) to the owning net.

IC Station User’s Manual, v8.9_9 13-3

Page 394: Icstation User Manual @Vins

Promoting Cells from GE to the CBC Mode Edit Mode Operations

use.p.

any

as

ing

y beve.yles.

Prerequisites

To promote a cell from the GE mode to the CBC mode, the followingprerequisites must be met:

• You must load a Rules file that corresponds to the particular Process inThis Rules file must also contain rules for the continous_drc rules grou

• Your cell cannot contain arrays. If your cell has arrays, you must flattenthem or encapsulate them in an instance.

• Your cell must have existing, valid connectivity.

• The Process must contain a valid $routing_level Process Variable plusother variables needed to define connectivity layers used to mapconnectivity planes or routing levels. Here are some simple examples:

o In the simplest case, you will have one layer for each connectivityplane. All you need is a routing level variable for the layer mapping,shown in Table13-2.

This $routing_level Process Variable reflects the layer geometry mappfor Table13-2:

extern ic_process@@$routing_level = [ // Name Direction Width Base Layer Blockage Layer ["POLY", @VERTICAL, 3.000, 8, 55 ], ["METAL1",@HORIZONTAL,3.000, 14, 56 ], ["METAL2",@VERTICAL, 4.000, 12 57 ], ];

o In a more complex case, the pins, signal wires, and power wires maon different layers, in addition to the layer mapping as outlined aboIn this case, you will need to define a wire type and some power st

Table 13-2. Single-Layer Geometry Mapping

Geometry Poly Layer Metal 1 Layer Metal 2 Layer

All 8 14 12

IC Station User’s Manual, v8.9_913-4

Page 395: Icstation User Manual @Vins

Edit Mode Operations Promoting Cells from GE to the CBC Mode

the

ifferls.

For the layer mapping shown in Table13-3, you might declare the$routing_level, $wiring_type, and $power_styles Process Variables, asfollows:

extern ic_process@@$routing_level = [ // Name Direction Width Base Layer Blockage Layer ["POLY", @VERTICAL, 3.000, 8, 55 ], ["METAL1",@HORIZONTAL,3.000, 14, 56 ], ["METAL2",@VERTICAL, 4.000, 12 57 ], ];

extern ic_process@@$wiring_type = [ // Type Poly Metal1 Metal2 [1, [16, 3.000], [22, 4.000], [20, 5.000] ];

extern ic_process@@$power_styles = [ // Type Net Level Layer Width Gap Count [@GENERIC, "VDD", 2, 28, 10.000, 0.000, 1 ], [@GENERIC, "VSS", 2, 28, 10.000, 0.000, 1 ], ];

• All shapes, paths, or pin members must be on layers that are in one ofrouting level layer sets.

• All objects in the cell must either pass the specified rules in thecontinous_drc or be members of placements that can be invalidated.

• Your Process must contain the $power_net_names Process Variabledefining the power net names used in your design if those net names dfrom the default values, or if you wish to use the Automated Layout tooFor a list of the default net names, refer toTable 13-1 on page 13-2.

Table 13-3. Multilayer Geometry Mapping

Geometry Poly Layer Metal 1 Layer Metal 2 Layer

Pins 8 14 12

Wires 16 22 20

Power NONE 30 28

IC Station User’s Manual, v8.9_9 13-5

Page 396: Icstation User Manual @Vins

Promoting Cells from GE to the CBC Mode Edit Mode Operations

tic

ctly

is

an

such

• If you want cross-probing, you must have valid Layout Versus Schema(LVS) information.

• If there are abstracted blockages on instances in a cell, you must corredefine the blockage layers in the PDF using the $routing_level ProcessVariable.

Abstracted blockages differ from real blockages as follows:

o A real geometry blockage is a geometry that exists on the chip andvisible at the next level of hierarchy. Figure13-1shows an example of areal geometry blockage. The metal1 route has both an external andinternal aspect.

Figure 13-1. Real Geometry Blockage

o An abstracted blockage is a user-defined region that presents anobstruction to routing on a connectivity plane and thus is not real.Abstracted blockages should be placed on defined blockage layersas the closely tied diffusion and poly layers shown in Figure13-2.

metal1 pin shape

metal1 pin shape

metal1 route

IC Station User’s Manual, v8.9_913-6

Page 397: Icstation User Manual @Vins

Edit Mode Operations Promoting Cells from GE to the CBC Mode

the

el

In Figure13-2, the abstracted poly blockage prevents the router fromrouting polysilicon over the entire region. This shape is located on poly blockage layer and has only an external aspect.

Figure 13-2. Abstracted Geometry Blockage

Table13-4 lists the layers for abstracted blockages for the $routing_levProcess Variable, shown earlier.

Table 13-4. Connectivity Plane Table

Connectivity Plane Blockage Layer

POLY 55

METAL1 56

METAL2 57

Abstracted Poly Blockage

Diffusion

Poly

IC Station User’s Manual, v8.9_9 13-7

Page 398: Icstation User Manual @Vins

Promoting Cells from CE to the CBC Mode Edit Mode Operations

e

hiles

d toes

etast,

mnsn

ionone

CBCe.

rced

ion

Procedure

To promote a cell from the GE mode to the CBC mode, you must follow thessteps:

1. Edit your Rules file to include continuous_drc rules that are enforced wyou edit your cell. If any changes are made to the Rules file, or the rulehave not been loaded, reload the Rules file with the$load_rules() function.

2. Edit the Process so that it contains valid $routing_level and$power_net_names Process variables, and any other variables needecorrectly define the connectivity of layers in the cell. If you make changto the Process, reload the process.

3. (Optional) If you intend to use the Automated Layout tools, you must sthe remaining Process variables with appropriate values. At the very ledefine the first wire type and first via type.

4. Execute $set_cell_configuration(@CBC) function. Interactive DRCchecking is enabled.

Promoting Cells from CE to the CBCMode

When you promote a cell from the CE mode to the CBC mode, you move frorestricted editing that supports connectivity maintenance, to editing restrictiothat disallow editing that would change connectivity or violate specified desigrules.

If you promote a cell to the CBC mode from the CE mode, additional informatand validation of the layout geometries are required. Design rule checking is dto ensure that the cell's layout is design rule correct before promotion to the mode is allowed. Any error detection will prevent promotion to the CBC mod

You can run logical comparison to verify that each logical element in the sounetlist has a corresponding logical element in the layout connectivity data, anvice versa. If this does not happen, correlation is not possible, but the transit

IC Station User’s Manual, v8.9_913-8

Page 399: Icstation User Manual @Vins

Edit Mode Operations Promoting Cells from CE to the CBC Mode

nototrce

is

the

e

hile

ed.

able.

can still occur. A CBC mode cell's connectivity is assumed to be correct and ischanged during an editing session. Establishing logical correspondence is nrequired for editing but is required to support cross-probing with a logical souview.

Prerequisites

To promote a cell from the CE mode to the CBC mode, you must meet thefollowing prerequisites:

• Load a Rules file that corresponds to the particular Process in use. ThRules file must also contain rules for the continuous_drc rules group.

• The Process must contain a valid $routing_level Process variable.

• All shapes, paths, or pin members must be on layers that are in one ofrouting level layer sets.

• All objects in the cell must either pass the specified rules in thecontinuous_drc or be members of placements that can be invalidated.

Procedure

To promote a cell from the CE mode to the CBC mode, you must follow thessteps:

1. Edit your Rules file to include continuous_drc rules that are enforced wyou edit your cell. Reload the Rules file with the$load_rules() function ifany changes are made to the Rules file or the rules have not been load

2. Edit the Process so that it contains a valid $routing_level Process variReload the process if you make changes to the Process.

3. Execute $set_cell_configuration(@CBC) function. Interactive DRCchecking is enabled.

IC Station User’s Manual, v8.9_9 13-9

Page 400: Icstation User Manual @Vins

Demoting Cells from CBC to the CE Mode Edit Mode Operations

ateance

t beall of

s.

Demoting Cells from CBC to the CEMode

When you demote a cell from the CBC mode to the CE mode, you move fromediting restrictions that disallow editing that would change connectivity or violspecified design rules to restricted editing that supports connectivity maintenwith each edit operation.

Prerequisites

To demote a cell from the CBC mode to the CE mode, the editor layers musused in at least some of the Connect operations in the Rules file. It is best if the layers in the Connect operations are editor layers.

Procedure

To demote a cell from the CBC mode to the CE mode, you must follow thesesteps:

1. Edit your Rules file to include Connect operations that use editor layerReload the Rules file with the$load_rules() function if any changes aremade to the Rules file or the rules have not been loaded.

2. Execute $set_cell_configuration(@CE) function.

o Interactive DRC checking is disabled.

o Invalid placements, are grouped (group name:$INVALID_AT_DEMOTION) and unplaced.

o Nets without members/nets with a single pin/port for a member aredeleted.

o If the rules have not yet been checked against this cell, all nets arerestructured and extracted.

IC Station User’s Manual, v8.9_913-10

Page 401: Icstation User Manual @Vins

Edit Mode Operations Demoting Cells from CE to the GE Mode

tion

ell to

tlypes ore of withes orved to

e CE

ct is

Demoting Cells from CE to the GE ModeWhen you demote a cell from the CE mode to the GE mode, you move fromediting restrictions that support connectivity maintenance with each edit operato unrestricted polygon editing.

Connectivity information is not actively maintained for cells in the GE mode.Connectivity and correspondence data are not removed when you demote a cthe GE mode, but it can be invalidated by editing operations. Overflows areremoved when you demote a cell to the GE mode.

When you demote a cell to the GE mode from the CE or CBC modes, the nename property “NET” is copied from each net with this property to a randomchosen shape or path belonging to the net. If the net does not have any shapaths, the property is not copied. If any object has a pre-existing property namthe same name, the copy is not done. If the net has property text associatedthe property name, the property text is moved (not copied) to one of the shappaths belonging to the net. If the property was copied, the property text is moto the same object. If the property was not copied, the property text is movedone of the objects that already has the property.

Prerequisites

As a general rule, there are no prerequisites when you demote a cell from thmode to the GE mode.

Procedure

To demote a cell from the CE mode to the GE mode, execute$set_cell_configuration(@GE) function. The following are the results ofdemoting a cell from the CE mode to the GE mode.

• If there is an active net, it is deactivated.

• The NET property used to store the net name on each logical net objecopied to one of the shapes or paths of each net.

IC Station User’s Manual, v8.9_9 13-11

Page 402: Icstation User Manual @Vins

Demoting Cells from CBC to the GE Mode Edit Mode Operations

onsn

ell to

tlypes ore of withes orved to

CBC

g a

• All overflows are removed. (This does not split nets. If$extract_cell_connectivity() is executed after demotion, the nets will besplit.)

Demoting Cells from CBC to the GEMode

Demoting from the CBC mode to the GE mode is a move from editing restrictithat disallow editing that would change connectivity or violate specified desigrules to unrestricted polygon editing.

Connectivity information is not actively maintained for cells in the GE mode.Connectivity and correspondence data are not removed when you demote a cthe GE mode, but it can be invalidated by editing operations. Overflows areremoved when you demote a cell to the GE mode.

When you demote a cell to the GE mode from the CE or CBC modes, the nename property, “NET” is copied from each net with this property to a randomchosen shape or path belonging to the net. If the net does not have any shapaths, the property is not copied. If any object has a pre-existing property namthe same name, the copy is not done. If the net has property text associatedthe property name, the property text is moved (not copied) to one of the shappaths belonging to the net. If the property was copied, the property text is moto the same object. If the property was not copied, the property text is movedone of the objects that already has the property.

Prerequisites

As a general rule, there are no special steps when you demote a cell from themode to the GE mode.

Procedure

To demote a cell from the CBC mode to the GE mode, you must execute$set_cell_configuration(@GE) function. The following is the result of demotincell from the CBC mode to the GE mode:

IC Station User’s Manual, v8.9_913-12

Page 403: Icstation User Manual @Vins

Edit Mode Operations Naming Ports, Pins, and Nets

ire

ct is

in IC

the

port()e ofpin'satme.

Thistdered

• Interactive DRC checking is disabled.

• If there are any invalid placements, they are grouped (group name:$INVALID_AT_DEMOTION) and unplaced.

• If invalid placements were marked valid, the connectivity is consideredinvalid. Promotion from the GE mode to the CE or CBC mode will requyou to extract the cell before promotion.

• If there is an active net, it is deactivated.

• The NET property used to store the net name on each logical net objecopied to one of the shapes or paths of each net.

• All overflows are removed. This does not split nets. If$extract_ cell_connectivity() is executed after demotion, the nets will be split.

Naming Ports, Pins, and NetsThis section describes how to change port names, pin names, and net namesStation. It also contains information regarding the rules that govern how ICStation handles net names when moving between editing modes.

Port and Pin Naming

You name ports by adding the logical property “phy_pin,” which is attached toport (not the port members). You can either add the property to the port byselecting the port and executing $add_property(), or you can use the $make_function to create and name the port in one step. The name of a pin is the namthe port that it represents, and cannot be changed directly. You can change aname indirectly by changing the name of the port, then updating in the cell thcontains the pin. ICgraph allows multiple pins and ports to have the same na

ICgraph does not let you change the names of ports or pins in the CBC mode.is part of the current definition of the CBC mode—nets, pins, and ports. Mostypes of instances cannot be added or deleted; renaming a port or pin is consia change of identity, comparable to a deleting the port and re-adding it.

IC Station User’s Manual, v8.9_9 13-13

Page 404: Icstation User Manual @Vins

Naming Ports, Pins, and Nets Edit Mode Operations

the

ithE

eroup

es asith

ode., the

pinode.

toet

ye is

In order to rename a port or a pin in a CBC cell, you must temporarily demotecell to the CE mode. Once the cell is in the CE mode, you can use the$change_property() or $change_property_text() functions to rename the“phy_pin” property. Then, use the $update_cell() function to update the pin wthe port's new name. If the cell has not yet been in CE mode, 'demotion' to Cmay take some time because the cell is extracted to check the Rule file.

Once you finish the port or pin renaming, you can promote the cell back to thCBC mode. However, this will take time because the continuous_drc rules gis checked.

When selecting ports and pins by name, remember to treat pin and port namcase-insensitive. For example, selecting a port by name “i1” will find a port wthe name “I1”.

ICgraph does not allow the case of a port name to be changed in the CBC mHowever, if you have changed the case of a port name in the GE or CE mode$update_cell() function allows you to change the case of the corresponding name, even if you execute the $update_cell() function while using the CBC m

Naming Nets

You name nets with the value of the logical property “net,” which is attachedthe net (not the net members). The way that this property is attached to the nvaries depending on the editing mode of the cell.

Adding property text (as opposed to logical property) to a net is allowed in anediting mode, as long as the net already has a logical net property. Where thaddition of the property text would also add the logical property, the additiongoverned by the rules for adding the logical property. ICgraph does not allowdifferent (separate) nets to have the same name.

Adding Net Properties

The following sections explain the rules for adding net properties in differentediting modes.

IC Station User’s Manual, v8.9_913-14

Page 405: Icstation User Manual @Vins

Edit Mode Operations Naming Ports, Pins, and Nets

arere are valueaths

only

toets to

ied)

for

rmines

and

cannot

any

GE Mode

In the GE mode, nets are created when you execute the $extract_ cell_connectivity() function, which assigns a net property to the logical net if therenet properties attached to the shapes and paths that compose the net. If thedifferent property values for the shapes and paths that compose the net, theclosest alphabetically to “a” is the name of the net. If none of the shapes or phave the net property, the net is not named. If two nets get the same name, one is allowed to have the name, and it is chosen at random; the others areunnamed.

You can add, modify, and delete only those net properties that are attached shapes and paths (not those attached to nets). When you demote a cell with nthe GE mode, the net property is copied to one of the net's shapes or paths(randomly chosen). If property text also exists on the net, it is moved (not copto this shape or path as well.

When you promote a cell from the GE mode, a logical net property is createdeach net in the cell, and associated property text is moved to the net.

CE Mode

In CE mode, the net properties attached to shapes and paths are not used todetermine the net's name. Instead, the net property attached to the net detethe net's name.

You can add net properties to nets and modify the net properties which areattached to nets. Alternatively, you can use the $make_net() function to createname a net in one step.

You can delete net properties that are attached to shapes and paths, but youadd or modify net properties which are attached to shapes or paths. The netproperty cannot be added with or modified to be a value that is the same as another net's in the cell.

IC Station User’s Manual, v8.9_9 13-15

Page 406: Icstation User Manual @Vins

Naming Ports, Pins, and Nets Edit Mode Operations

rmines

te

ou

CBC Mode

In CBC mode, net properties attached to shapes and paths are not used todetermine the net's name. Instead, the net property attached to the net detethe net's name.

You can add net properties to nets and modify the net properties which areattached to nets. Alternatively, you can use the $make_net() function to creaand name a net in one step.

You can delete net properties which are attached to shapes and paths, but ycannot add or modify net properties which are attached to shapes or paths.

IC Station User’s Manual, v8.9_913-16

Page 407: Icstation User Manual @Vins

nder.

r

tles.

with

. The a

mptoill youhe

Chapter 14Using Routing Functions

While editing in a full custom mode, you have access to some of the routingcapabilities of ICgraph.

The point-to-point router enables you to route between two specified points aoptionally start and end the route on specified layers instead of the current layThe point-to-point router connects the points by creating a path around othelayout objects between the two points. The two points form the corners of arectangle; routing is limited to within that rectangle. To use the point-to-poinrouter successfully, you must define width, spacing, via, and routing layer ruFor more information on the point-to-point router, see section “Using thePoint-To-Point Router” in this chapter.

You can also interactively add routes using$iroute().

Using the Interactive Router (IRoute)This section describes how to route interactively, what options are available IRoute, and what hotkeys are available with IRoute.

IRoute contains a set of advanced features, which require a separate licensemain features requiring a license are multiple-path routing, net shielding, andsubset of the hotkeys. The feature name in the license file is “iciroute”. Thefunction automatically tries to acquire the advanced license whenever you attean advanced action with IRoute. If the license is available, you are allowed tperform the action and continue routing. If the license is not available, you wreceive a message, and you are not allowed to perform the action; however,can continue any routing with the basic IRoute functions. You must release tlicense manually.

IC Station User’s Manual, v8.9_9 14-1

Page 408: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

tingefault

er to is

find

thew

e of

se

se

Routing with IRoute

To route with IRoute, perform the following steps:

1. Invoke IRoute withRouting > IRoute.

A prompt bar appears and the target routing layer is set to the lowest roulayer defined in your process. The name of the layer appears next to thcursor, and a box appears around the cursor showing the width of a dewire size on this layer.

2. Click to form each vertex of the route.

3. To change routing layers, press the space bar.

Each time you hit the space bar, $iroute() changes the target routing laythe next highest routing layer which is reachable by a via stack. If thereno higher layer, it cycles to the lowest routing layer and searches up toa new layer reachable from the current layer with a via stack.

If a new target routing layer is reachable by a via stack, a drag image ofvia instance is displayed at the cursor location and the name of the netarget layer is displayed next to the cursor.

4. IRoute finishes the routing by placing the resulting wires and vias at onthe following three events:

• You double-click the Left Mouse Button (LMB).

• You hit the Return key.

• You single-click the LMB when all of the connections are at theirtarget.

A checked box icon appears at the cursor when a connection is cloenough to its target for a single LMB click to complete the route.Figure 14-1 shows a route that has not yet reached its target.Figure 14-2 shows the check box that appears when the route is clo

IC Station User’s Manual, v8.9_914-2

Page 409: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

MB

athiresing

dg

enough to the target that you can complete the route with a single Lclick.

Figure 14-1. Before Target Reached

Figure 14-2. Check Box Appears when Target Reached

Routing Multiple Paths

You can route more than one connection at a time with IRoute. This is multi-prouting. Routing with multiple paths is an advanced IRoute feature, so it requthe iciroute license. IRoute supports two kinds of multi-path routing: bus routand copy routing.

Note

By default, IRoute checks for shorts and DRC errors in theexisting layout. If you do not want IRoute to check for shorts anDRC errors, toggle off the “Check shorts and design rules durinrouting” switch in theRouting > Setup IRoute dialog box .

IC Station User’s Manual, v8.9_9 14-3

Page 410: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

tes

iedof

forrting

thele,

eet

"

r.

with

ute. be

• Bus routing: You want to route two or more connections as a set of routhat follow the same general path, but are offset from one another.

• Copy routing: You want to route two or more connections that wouldotherwise be implemented with a “copy” (you route one connection andcopy the routes to another location, perhaps flipping or rotating the coproutes). This is useful when some part of the layout is a mirrored copy another part (for example, in some analog circuits). It can also be usedwhen two or more parts of a circuit are identical (for example, notmirrored).

Multi-path bus routing

For a single connection, single-click the LMB at the desired starting location the route. To route a bus connection, you need to identify more than one staobject. IRoute supports the following two ways of starting a bus route:

• If you press-drag-release the mouse, you can draw a rectangle aroundobjects from which you want to start routing. As you drag out the rectangtext displays that indicates the number of nets that are included.

• If you hold the Shift key down while doing the press-drag-release of thLMB, the selection of starting objects is restricted to a single net. The nused is the net identified at the cursor, when the shift-LMB "down clickoccurs.

Both bus routing modes require that the starting objects be on the same laye

Multi-path copy routing

You can add multiple paths as copy routing where one is a copy (potentially mirroring) of the other: by defining a transform or by defining a net pair.

Defining Routing Transforms

Using theRouting > Define Routing Transform dialog box, seen inFigure 14-3,you can define a transform that will apply to subsequent routes added with IRoOnce you place the location of the transform, a copy of subsequent routes isrouted from that location.

IC Station User’s Manual, v8.9_914-4

Page 411: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

Figure 14-3. Define Routing Transform Dialog Box

The Define Routing Transform dialog box contains the following fields:

• Transform name: A label for the transform so you can apply it as atransform later with$set_iroute_route_transforms([“name”]).

• Select Transformation Type: Sets the mirroring and flip options for thetransform. Options are as follows:

o No rotation, no flip

o Mirror in x direction

o Mirror in y direction

o Mirror in x and y directions

For more information, see $define_route_transform() in theIC Station ReferenceManual.

IC Station User’s Manual, v8.9_9 14-5

Page 412: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

on

Defining Net Pairs

You can select one object from each of two nets and then use theRouting >Define Net Pair menu item to pair the two nets. Any subsequent route made one net is automatically copied on the other net.

For more information, see$define_net_pair()in theIC Station Reference Manual.

IRoute Options

Figure 14-4 shows the Setup IRoute dialog box that you use to set up theinteractive router. The following section describes the dialog box fields.

Figure 14-4. Setup IRoute Dialog Box

• Starting Mode: Specifies whether to begin routing with a wire or with avia. Options are as follows:

o Wiring Mode : Routing begins with the endpoint of a wire.

IC Station User’s Manual, v8.9_914-6

Page 413: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

re

ent

ase is

fn the

d

ted

o Via Mode: Routing begins with the active Via. If you have the StartRouting from Active Via selected, after you place the initial via, a wiis active on the mouse cursor for placement.

• Instance blockages: Specifies the scope of blockage cell instances presto routing. Options are as follows:

o All data: All geometries in the instance’s cell hierarchy are treated blockages. If the cell has not been loaded into memory when IRoutstarted, you can load and peek it during the command.

o External aspect data only: Only geometries on the external aspect othe instance are treated as blockages. IRoute does not search dowhierarchy.

o Peeked data: Only the geometries that are visible from being peekeare treated as blockages.

This is equivalent to the global hierarchy mode dialog box, shown inFigure 14-5. Access this withRouting > Set Global Hierarchy Mode.

Figure 14-5. Set Route Hierarchy Mode Dialog Box

You can specify a different blockage scope for individual cells or selecinstances of cells using eitherRouting > Set Cell Hierarchy Mode orRouting > Set Instance Hierarchy Mode.

IC Station User’s Manual, v8.9_9 14-7

Page 414: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

t

oyou

ou

thes

s

• Use active layer for initial selection: Sets the initial routing layer to theactive layer instead of the lowest routing layer in the process.

• Display alignment markers?:

o No markers: Disables alignment markers.

o Markers at Intersection only: An alignment marker appears at a poinwhere the current route and the target would meet if you continuerunning the route .

o Markers to Target: A route appears from the target perpendicular tthe direction of the current route. The route is not persistent. Oncereach the marker, you must finish the route to the target.

• Push existing routing to make space: Enables the pushing feature ofIRoute which moves existing routing to make room for new routes.Requires the pushshove license.

• Maximum distance for manhattan snapping:

Specifies the range within which a route snaps to a target. Use this if ywant to get close to the target without zooming in to make sure you areexactly in alignment with the target.

• Maximum number of pushes at one time: Sets the number of pushesIRoute will attempt in order to clear room for a new route. The greaternumber, the longer the routing takes, due to an increase in calculationrequired to move a greater number of routes.

• Allow path jogs during pushing: IRoute bends obstacle paths to makeroom for the new path rather than moving the obstacle paths.

• Enable Right Mouse Button Menu: When selected, you have access tothe IRoute popup menu with the right mouse button. You can use thismenu to alter routes on the fly.

• Enable Hot Key Dialog: When selected, a list of available IRoute hot keyappears when you run IRoute.

IC Station User’s Manual, v8.9_914-8

Page 415: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

ia

f the

rtex.,

s

e

t

ormlel or

n inonly

• Start Routing from Added Via: Specifies whether or not to continuerouting after placing an initial via. Used only when Start Mode is set to VMode.

• Show alignment markers: When selected, IRoute shows an arrowperpendicular to the current path when the cursor passes a member osame net lying perpendicular to the direction of the current path.

• Show orthogonal path: Shows guide paths perpendicular to the currentpath direction. Use these paths to line up a vertex.

• Add shield wires while routing: Toggles whether or not to add netshielding if you have used the menu item,Routing > Define net shielding,to define shielding on the current net.

• Use current mouse position to end route: By default, if you press Returnto end your route, IRoute only preserves the net up to the last placed veIf you want IRoute to preserve the net up to the current mouse positiontoggle this on.

• Check shorts & design rules during routing: By default, IRoute checksfor shorts and DRC errors. If you do not want IRoute to check for shortand DRC errors, toggle this off.

IRoute performs design rule checking based on the following:

o If the loaded Rules file contains a rule group named “iroute” then thrules in this group will be checked during routing. Because thechecking is done continuously while the mouse is moving during aroute, you will want to limit the rules in this group to those that mighbe violated during routing. Generally, this is limited to spacing rulesbetween routing layers and the other design layers. Rules that perfmore complicated checks, such as spacing based on length in paralspacing based on wire width, can be used.

o If no Rules file is loaded, or if the loaded Rules file does not have a“iroute” group then the routing is checked using the spacing valuesthe $layer_spacing variable in the IC Station process. In this case, simple spacing checks are done on the routing.

IC Station User’s Manual, v8.9_9 14-9

Page 416: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

net

to

as

g

the isthe

, so it

es

• Use ICdevice via generator as default via: Toggles whether to use theICdevice via generator as the default active via or use the via style of theyou are routing.

• Increment/decrement width value: Sets the size of theincrement/decrement of a wire width when you use the keys “1” or “2” change the width of a wire during routing.

• When changing wire width: You can control whether a width changemade to the current route also applies to other layers. The options arefollows:

o Change active layer only: A width change to the active route onlyeffects the layer of the active route. No other layers are effected.

o Change all layers to new width: The new width supplied for theactive route is set as the active width for all layers. Note that existinwires are not changed, but new wires will reflect the new width.

o Change all layers proportionally: The new width supplied for theactive route changes all other layers proportionally. For example, ifdefault metal1 width is 0.8, and the width of the active metal1 routechanged to 1.6, then the widths of all other layers is also doubled. Ifwidth was changed to 2, then the widths of the other layers aremultiplied by 2.5.

Defining Net Shielding

You can specify whether or not to add shield wires with your route with theRouting > Define Net Shield dialog box, shown inFigure 14-6. You can alsospecify properties of the shield. Net shielding is an advanced IRoute featurerequires the iciroute license.

Once you have defined shielding for a net, you must have the Add shield wirwhile routing field in theRouting > Setup IRoute dialog box toggled on.

IC Station User’s Manual, v8.9_914-10

Page 417: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

ns

w the

Figure 14-6. Define Net Shield Dialog Box

The Define Net Shield dialog box contains the following fields:

• Shield Type: Specifies the type of shield to route with the net. The optioare as follows:

o None: Specifies no shielding.

o Parallel same-layer only: Specifies that a shield will be placed only onthe same layer as the net.

o Layer above/below only: Specifies that a shield will be placed only onthe layers above and below the net.

o Parallel + Layer Above/Below: Specifies that a shield will be placedboth on the same layer as the net, and on the layers above and belonet.

IC Station User’s Manual, v8.9_9 14-11

Page 418: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

s

thehree

oom

earother

• Shield wire net: Specifies which net the shielding is being defined for.

• Same layer shield wire width: Specifies the width of the shield route.

• Same layer shield wire spacing: Specifies the spacing between the netroute and the shield route.

• Layer above/below overlap: Specifies how much the shield on the layerabove and below the net overlap the net.

Pushing other Routes with IRoute

IRoute can move existing routing to make room for a new route, if you have pushshove license. You enable the pushing feature with any of the following tmethods:

• Toggle on the “Push existing routing to make space” button on theSetupIRoute Dialog Box. This selection remains persistent for subsequentinvocations of IRoute.

• Add the$set_iroute_push_mode function call to your startup file.

• Use the shift-P hotkey to toggle pushing on and off.

IRoute uses the following rules to determine how to change a layout to make rfor a new route:

• The only objects IRoute changes directly are centerline paths. Itmanipulates the paths by changing the vertices of the centerline.

• IRoute moves rectangular shapes, non-rectangular shapes with rectilinedges, via objects, and via instances, but does not change them in anyway.

• IRoute does not modify any other types of objects, which includesinstances, non-rectangular shapes, and non-centerline paths.

IC Station User’s Manual, v8.9_914-12

Page 419: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

n to

ion

hed theding

s

o

Protecting Data from Modification

You can protect modifiable objects from manipulation by IRoute pushing withone of the two following methods:

• Select the objects you want to protect and execute$protect(). Theprotection is not persistent; once you save the cell, the objects are opemanipulation once more.

• Select the objects you want to protect and open the Set Route Protectdialog box, shown inFigure 14-7. Select the options as described belowand clickOK to activate the protection.

Unlike the $protect() method, protecting selected objects or nets with tSet Route Protection dialog box is persistent; you can save the cell anprotection status remains. Furthermore, setting selected objects to fixewith the Set Route Protection dialog box does not prevent you from usother ICgraph editing functions on those objects as $protect does.

Figure 14-7. Set Route Protection Dialog Box

o Protection Status: One of two options for setting the protection statuof selected objects.

• Fixed: Protects the selected objects from IRoute modification.

• Unprotected: Allows IRoute to modify the objects, if necessary, tplace a new route.

IC Station User’s Manual, v8.9_9 14-13

Page 420: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

bers

des

hef

ble

enu,

o Apply protection status to selected objects: Specifies that theprotection status applies to the selected objects only.

o Apply protection status to entire net: Specifies that the protectionstatus applies to all the members of the selected net. All future memof the net receive the protected status as well. If you specify aprotection status for an individual object on a net, that status overriany protection you give to the entire net.

You can view the protection status of an individual object by running theReport > Selected menu item, and looking for the route_status property.

Routing Hotkeys

There are a number of hotkeys available for you to alter a route on the fly. Tfollowing section describes a few of the routing hotkeys. For a complete list oIRoute hotkeys, seeTable 14-1. The “Requires License?” column in the tablespecifies whether or not the hotkey requires the iciroute license. Use the “h”hotkey to open a dialog box that shows the available hotkeys, or set the EnaHotkey Dialog switch in theSetup IRoute Dialog Boxfor the Hotkey Dialog Boxto open when you run IRoute.

You can also alter routes on the fly with the IRoute popup menu, shown inFigure 14-8, which you access with the right mouse button. The IRoute popupmenu is enabled by default; if you do not want access to the IRoute popup myou can disable it in theSetup IRoute Dialog Box.

IC Station User’s Manual, v8.9_914-14

Page 421: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

,”

yntu

ofe

ring bythe

he

ringby

Figure 14-8. IRoute Popup Menu

Changing Wire Widths During Routing

There are three hotkeys available for changing wire widths during routing: “w“1,” and “2.”

The width key, “w,” prompts you for a new width for the wire you are currentladding. This width will continue to be used for subsequent wires on the currerouting layer during the current route. The prompt for the new width gives yocontrol over whether the new width is applied to all the current wires in themulti-path routing, or just to the master path’s wire.

The width down key, default numeric “1” (not keypad), decrements the widththe current wire by the increment value specified in the setup parameters. Thresulting width is used for all subsequent wires on the current routing layer duthe current route. If no value is specified in the setup, the width is decreasedtwice the $mfg_grid variable in the process. If multiple paths are being routed,width is changed for current wires of all paths.

The width up key, default numeric “2” (not keypad), increments the width of tcurrent wire by the increment value specified in the setup parameters. Theresulting width is used for all subsequent wires on the current routing layer duthe current route. If no value is specified in the setup, the width is increased

IC Station User’s Manual, v8.9_9 14-15

Page 422: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

the

es.

of too

ablehis

gngeingendthe

r use

le onlog

can.

twice the $mgf_grid variable in the process. If multiple paths are being routed,width is changed for current wires of all paths.

Dynamic Overflow Display

Iroute displays the “O” hotkey cycles through the three overflow display modThese modes are as follows:

• No overflow display: No overflows are drawn from the wire ends to therest of the net. This may be useful when routing a large net (thousandsnet member objects), since the computation of the overflows may takelong to update dynamically.

• Update to closest: As the end of the wire being routed moves with themouse, IRoute computes the closest point on the wire’s net that is a suittarget for the route. The overflow is drawn from the end of the wire to tpoint.

• Update to initial: IRoute finds the closest point on the net to the initialobject for the route. An overflow is drawn from the end of the wire beinrouted to this closest point. This end of the overflow remains fixed durithe route (the other end of the overflow moves as the end of the wire brouted moves). Use this mode if you are sure about where the route will(the overflow will not update even if you are closer to some other part ofnet during routing).

Via Selection

You can have IRoute use the ICdevice via generator as the default via style, othe active via style for each route’s net.

Selecting Vias with the ICdevice Via Generator

IRoute uses the ICdevice $via_s generator as the default via style, if you toggthe option, "Use ICdevice via generator as default via," in the Setup IRoute diabox. If you use the via generator as the via style for most of your routing, youplace the function, $set_iroute_via_generator_is_default(), in your startup file

IC Station User’s Manual, v8.9_914-16

Page 423: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

ildts ift this

tiveo no

u canyor

ange

tices

lt,gth

rsor

An advantage to using the ICdevice via generator is that it improves post-buediting in that you can easily grow or shrink it to change the number of contacthe shapes to which it connects change size. The drawback, however, is thaflexibility requires additional memory usage.

Selecting Vias by the Via Style of the Route’s Net

IRoute maintains an active via style for each route you place. Initially, the acvia style for a route is the via style of the route's net. If the route corresponds tnet then via style 1 is used.

Cycling Vias on the Fly

Regardless of the method you use to place vias when you start the route, yochange to use vias from a different via style by hitting the “cycle via style” ke(default is “V”). When you hit this key, IRoute increments the active via style feach route. If no higher via style exists, then the active via style is set to 1.

If a via drag image is displayed, it may change appearance if the via style chresults in a different via instance (or stack) attached to the cursor.

Cycling the via style does not affect vias that have been added at previous verof the route. It only affects vias to be added at future vertices.

Length Display

IRoute allows you to display routing length information while routing. By defauthe letter “l” key cycles through the length display modes, controlling what leninformation is displayed. Following are the available length display modes:

• No display: No length displayed at the cursor.

• Length of current route layer: Displays the total length of the currentlayer in the route being added by IRoute. The display text next to the cuappears as follows:

Lpath(layer)=len

wherelayer is the current routing layer andlen is the length.

IC Station User’s Manual, v8.9_9 14-17

Page 424: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

ire the

l

s

dbe

Example: In IRoute, you add a poly wire (10u long) switch to metal1,adding a metal1 length of 15u, then switch back to poly. The current wattached to the mouse is on poly and lengthens/shortens as you movemouse. At the current mouse location, this wire is 8u. In this mode, thelength display will be 18u (10u for the first poly wire, 8u for the currentwire).

• Total length of all wires on all layers: Displays the sum of the lengths ofall wires in the current IRoute invocation. The display text next to thecursor appears as follows:

Lpath(total)=len

wherelen is the length.

Example: In the previous example, the length display would be 33u (alwires are counted).

• Total length of the current route layer for the net being routed: This issimilar to “length of current route layer” above; the difference is that thimode adds the length of the wire(s) added by IRoute to the sum of thelengths of wires already in the same net. If no net is known during therouting, no length is displayed in this mode. The display text next to thecursor appears as follows:

Lnet(layer)=len

wherelayer is the current routing layer andlen is the length.

Example: In the previous example, if the net you are routing already ha12u length of poly wires in it, then the length display in this mode would30u (18u currently in $iroute() added to the 12u already in the net).

• Total length of the net being routed: Similar to the previous option, butthe display is the total length of all wires in the net being routed (on alllayers). The display text next to the cursor appears as follows:

Lnet(total)=len

IC Station User’s Manual, v8.9_914-18

Page 425: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

ad

e

ng

s

h

r

wherelen is the length

Example: Continuing with the above example, if the net you are routing h40u length of wires in it (all layers), then the length display in this modewould be 73u (33u for the $iroute length added to the 40u already in thnet).

Table 14-1. IRoute Hotkeys

Function Default RequiresLicense?

Notes

Delete the lastentered point

backspace No Removes the last entered point fromthe route. If a via stack is present atthis point, it is also removed.

Change layer space bar No Cycles through the available routilayers, displaying the appropriate viaat the cursor.

Set layer l Yes Prompts you to set a new layer. Thiis similar to the “space bar,” exceptyou are prompted with a list of layersinstead of having to step througheach declared routing layer.

Cycle masterpath

b Yes Changes the master path to the “nextpath in the set being routed. Theorder through the paths is arbitrary.For multi-path routing only.

New masterpath

B Yes Changes the master path to that patclosest to the mouse cursor (redarrow) when you press the key. Formulti-path routing only.

Rotate via r Yes Rotate the current via(s) at the cursolocation by 90 degrees,counter-clockwise.

IC Station User’s Manual, v8.9_9 14-19

Page 426: Icstation User Manual @Vins

Using the Interactive Router (IRoute) Using Routing Functions

t

Cycle via type V Yes Cycle through via types defined inthe process. If a via is displayed atthe end of the current path, it willchange to the next higher type (orback to type 1).

Enter newwidth

w Yes Prompts you to enter a new width forthe current path.

Match width W Yes Cycles through the width matchingoptions; changes the width of thecurrent path to match the size of theobject you are connecting to.

Decrementwidth

1 Yes Decrements the width of the currentpath by the value of the$get_iroute_width_increment()parameter.

Incrementwidth

2 Yes Increments the width of the currentpath by the value of the$get_iroute_width_increment()parameter.

Cycle lengthdisplay

l Yes Cycles through the length displayoptions. Enables the display of thecurrent route or net length while youroute.

Cycle segmentor netresistence

o Yes Cycles the segment Resistance or neresistance of a route.

Lock thecurrentorthogonaldirection

x No Toggles “orthogonal lock” mode.When on, the current direction of thelast route segment is maintained nomatter where the cursor moves.

Table 14-1. IRoute Hotkeys

Function Default RequiresLicense?

Notes

IC Station User’s Manual, v8.9_914-20

Page 427: Icstation User Manual @Vins

Using Routing Functions Using the Interactive Router (IRoute)

Cycle overflowdisplay mode

O Yes Cycles through the overflow displayoptions.

Two pointmanhattanentry

m Yes Cycles through the two, two-pointmanhattan entry modes. The firstmode draws two wires in an “L” fromthe last entered point to the currentcursor position by going horizontalfirst then vertical. The second modedraws two wires in an “L” by goingvertical first then horizontal. Hittingthe key a third time returns tosingle-point entry.

Togglealignment pointgravity

a No Toggles the use of gravity around thealignment point that occurs when youdrag the current wire across the pathof a potential target. If the gravity ison then the cursor snaps to thisalignment point, making it easier toenter the next-to-last point in theconnection without having to zoomin.

Showorthogonalprobes

ctrl-x No Toggles the display of orthogonalprobes. When toggled on, a proberectangle is displayed to indicate howfar you can go from the currentcursor location on the current layer inthe direction orthogonal to thecurrent wire direction.

Table 14-1. IRoute Hotkeys

Function Default RequiresLicense?

Notes

IC Station User’s Manual, v8.9_9 14-21

Page 428: Icstation User Manual @Vins

Using the Point-To-Point Router Using Routing Functions

intsntdof a

e

For more information about the interactive router, refer to the$iroute()function intheIC Station Reference Manual.

Using the Point-To-Point RouterThe $route_point_to_point() function lets you route between two specified poand optionally start and end the route on specified levels instead of the currelevel. The point-to-point router connects the points by creating a path arounother layout objects between the two points. The two points form the cornersrectangle; routing is limited to within that rectangle.

Before using the router in the GE mode, your Process must contain$wiring_type,$signal_via_cell, and$routing_level Process variables. For more information onspecific Process variables, refer to the section “Process Variable Dictionary” intheIC Station Reference Manual.

To use the point-to-point router, perform the following steps:

Slide lastsegment

s Yes Toggles “slide mode.” When on, thelast segment of the route slides tomatch the current cursor location.This allows you to easily make anadjustment to the last point enteredwithout having to delete (withbackspace) and re-enter the point.

Auto complete A Yes Invokes automatic router to completconnection from the current cursorposition to the target (if one exists).

Togglechecking

X Toggles IRoute DRC error and shortchecking.

Toggle Pushing shift-P Yes Toggles IRoute pushingfunctionality.

Table 14-1. IRoute Hotkeys

Function Default RequiresLicense?

Notes

IC Station User’s Manual, v8.9_914-22

Page 429: Icstation User Manual @Vins

Using Routing Functions Example Process for Routing

ease

the

1. Choose the following palette menu item:

Place & Route > Autoroute > Pt to Pt

The Route Point To Point prompt bar is displayed.

2. Enter the From level.

3. Enter the To level.

4. Enter the From point.

5. Enter the To point.

6. Position the cursor at one corner of the probe extent.

7. Press and hold the Select button.

8. Move the cursor to the opposite corner of the probe extent, and then relthe Select button.

Paths and vias are added for the route.

Example Process for RoutingThe following pages contain an example Process Userware File that definesProcess variables that will allow you to perform routing functions. For moreinformation about the Process, refer to the section “Technology Definition.”

//# Power Style Typesextern ic_process@@$power_style_type =$constrain_value(@name, [ @GENERIC, @LEFT_VERTICAL_BUS, @RIGHT_VERTICAL_BUS, @BOTTOM_HORIZONTAL_BUS, @TOP_HORIZONTAL_BUS, @INTERNAL_HORIZONTAL_BUS, @INTERNAL_VERTICAL_BUS, @INTERNAL_ROW,

IC Station User’s Manual, v8.9_9 14-23

Page 430: Icstation User Manual @Vins

Example Process for Routing Using Routing Functions

@ROW_TO_BUS, @PAD_TO_BUS, @IO_RING, @TIE_DOWN, @INTERNAL_RING ]);//# Preferred Routing Directionsextern ic_process@@$direction_type = $constrain_value(@name,[ @HORIZONTAL, @VERTICAL ]);//# Site Content Typesextern ic_process@@$site_content_type =$constrain_value(@name, [ @PORT_SITE, @CELL_SITE ]);//####### Miscellaneous Settings ########extern ic_process@@$user_grid = 6.500;extern ic_process@@$mfg_grid = 0.000;//####### Routing Level Definitions ########// Purpose: Assigns direction, minimum spacing, base and// blockage layer for each routing level.// Form: Vector of [Preferred Routing Direction, Min// Spacing, Base Layer, Blockage Layer]extern ic_process@@$routing_level = [ ["metal1", @HORIZONTAL, 1.50, 11, 21], ["metal2", @VERTICAL, 1.50, 12, 22], ["metal3", @VERTICAL, 1.50, 13, 23], ["poly", @HORIZONTAL, 1.50, 14, 24]];///////// Wiring Layer Definitions ////////// Purpose:Assigns ICgraph layers to wire types by routing// levels.// Form: Vector of [Wire Type,// Vector of [ICgraph Layer, Routing Width] for each// route levelextern ic_process@@$wiring_type = [ [1, [14, 1.00], [46, 3.000] ], [2, [12, 1.00], [44, 3.000] ], [3, [10, 1.00], [40, 3.000] ], [4, [16, 1.00], [48, 3.000] ]];extern ic_process@@$wiring_type = [

[1, [11, 1.00], [12, 1.00], [13, 1.00], [14, 1.00]],[2, [21, 3.00], [22, 3.00], [23, 3.00], [24, 3.00]]];

IC Station User’s Manual, v8.9_914-24

Page 431: Icstation User Manual @Vins

Using Routing Functions Example Process for Routing

//## # ######## Power Supply Definitions ########//## # # Purpose: Define the power style names used.//## # # Form: Vector of power supply names.//## # external $power_supplies = [//## # "VDD",//## # "VSS",//## # "VCC"//## # ];//####### Power Net Name Definitions ########// Purpose: Define the power net names used.// Form: Vector of [Power Net Name, Net Type].extern ic_process@@$power_net_names = [ ["VCC", @POWER_SUPPLY], ["VSS", @GROUND], ["VDD", @POWER_SUPPLY]];//####### Power Routing Definitions ########// Purpose: Defines the power styles to be used for powerrouting.// Form: Vector of [Power Style Type, Power Name, RouteLevel, ICgraph Layer, Width, Gap, Bus Count]extern ic_process@@$power_styles = [ [@TIE_DOWN, "VSS", 1, 110, 5.000, 0.000, 1], [@RIGHT_VERTICAL_BUS, "VSS", 2, 108, 60.000, 0.000, 1], [@ROW_TO_BUS, "VSS", 1, 142, 10.000, 0.000, 1], [@INTERNAL_ROW, "VSS", 1, 174, 10.000, 0.000, 1], [@TIE_DOWN, "VCC", 1, 206, 5.000, 0.000, 1], [@LEFT_VERTICAL_BUS, "VCC", 2, 140, 60.000, 0.000, 1], [@ROW_TO_BUS, "VCC", 1, 238, 10.000, 0.000, 1], [@INTERNAL_ROW, "VCC", 1, 270, 10.000, 0.000, 1]];//####### Signal Via Name Declarations ########// Purpose: Defines via types for use in design.// Form: Vector of [Via Cell Physical Name, Type, Level1,Level2, ICgraph Contact Layer]. extern ic_process@@$signal_via_cell = [ ["v12", 1, 1, 2, 31], ["v23", 1, 2, 3, 32], ["v1poly", 1, 1, 4, 33]];//####### Layer to Layer Spacing Definitions ########// Purpose: Explicitly defines minimum spacing valuesbetween objects on ICgraph layers.

IC Station User’s Manual, v8.9_9 14-25

Page 432: Icstation User Manual @Vins

Automated Routing Using Routing Functions

ette

// Form: Vector of [ICgraph layer #, ICgraph layer #,Spacing]extern ic_process@@$layer_spacing = [ [3, 4, 2]];//####### Standard Cell Site Definitions ########// Purpose: Specifies the standard cell site types andassociated geometric cells.// Form: Vector of [Site Number, PORT_SITE | CELL_SITE,Feedthru Cell Name, Left Cap Cell Name, Right Cap Cell Name]extern ic_process@@$site_type = [ [1, @CELL_SITE, "", "", ""], [2, @CELL_SITE, "", "", ""], [3, @CELL_SITE, "", "", ""], [27, @PORT_SITE, "", "", ""], [28, @PORT_SITE, "", "", ""], [29, @PORT_SITE, "", "", ""]];///////// Port height definition ////////// Purpose: Specifies the height of all port shapes (i.e.dimension perpendicular to side.)// Form: Floating point value.// Example: extern ic_process@@$port_height = 3.0;extern ic_process@@$port_height = 3.0;

Automated Routing

Routing all Nets

To automatically route all nets in the active context, execute the following palmenu selection:

(Autoroute) All

Restructuring Signal and Power Nets

To restructure all signal nets, execute either the$restructure_nets()function or thefollowing pulldown menu:

Connectivity > Net > Restructure > All Signal

IC Station User’s Manual, v8.9_914-26

Page 433: Icstation User Manual @Vins

Using Routing Functions Automated Routing

the

es,

younextcks.

To restructure power nets, select the power and signal nets you want torestructure, and then issue the $restructure_nets() function.

Preventing Over-the-Block Routing

If you do not have blockages in the active context block or cell, and want toprevent routing over it at the next level-up in your design hierarchy, perform following steps:

1. Issue either the$autoroute_all() function or the$compact() function.

2. Click Options.

3. Click theAdd Auto Blkgs button.

4. Select any other desired options in the dialog window.

5. Click OK in the dialog window.

6. Click OK in the prompt bar.

If you do not have blockages, and you want to route without creating blockagfollow these steps to prevent over-the-block routing:

1. Issue the $autoroute_all() function.

2. In the dialog box, specify the following:

o block_stub_mode=1

o block_feed_percent=0

If you do not have blockages defined on converted or translated blocks, andwant to create blockages to prevent over-the-block routing of the block at thelevel up in the hierarchy, use Build_lib to create blockages on lower level blo

For the procedure for creating blockages, refer to the section “Creating Completeor Directional Blockages by Using Build_lib.”

IC Station User’s Manual, v8.9_9 14-27

Page 434: Icstation User Manual @Vins

Automated Routing Using Routing Functions

tlist.can

eport

rts

e

Verifying Missing Connections

You might need to connect nets that only have one connection point in the neIC Station gives you the capability of locating the missing connections so youthen supply them.

Before you can search for the missing connection, you must first generate a rof all nets. To generate such a report, perform the following steps:

1. Execute the pulldown menu selection Report > Nets:.

2. In the prompt bar, click once on the Nets field up-arrow to selectall.

3. Click OK in the prompt bar.

4. Click Close in the pop-up window.

To verify that a net connection is missing, perform the following steps:

1. Execute the pulldown menu selectionFile > Open > Group Window.

2. In the Group Window, clickNets to get a listing of all of the nets in theactive context.

3. Scroll down the list to find nets that are missing a connection.

4. In the Group Window, clickPorts.

5. Scroll through the port information in the Group Window to locate the pothat are connected to the nets, which are missing connections.

6. If you want to refer to the group window again, iconify it by clicking on thupper right-hand iconify icon.

After you have located a missing connection, you can insert it by routinginteractively or manually.

IC Station User’s Manual, v8.9_914-28

Page 435: Icstation User Manual @Vins

Using Routing Functions Automated Routing

t or

e

teps:

othe

Checking Routing Overflows

You can retrieve information on overflows either by simply generating a reporby placing into a group overflows within a specified length range.

To generate a report on all overflows, follow these steps:

1. Set up the select filter so that only overflows are selectable by doing thfollowing:

a. Execute the$setup_select_filter() function.

b. In the dialog box, check off all cell types except for overflows.

2. ExecuteSelect > Select > All.

3. Change the select filter so all object types are selectable.

4. ExecuteUnselect > All.

To select a group of overflows within a specified length range, follow these s

1. If you do not want to check all overflows, select the overflows that youwant.

2. Issue the$check_overflows() function.

3. Specify whether eitherall or selected in theoverflows field in the promptbar.

4. Specify any other options that you might want to further restrict theoverflows that are checked.

5. Click OK .

Changing Layer Appearance to View Routing Results

IC Station allows you to control the layer appearance of the layout window. Tmore easily view the routing results, you can change the fill patterns to solid in

IC Station User’s Manual, v8.9_9 14-29

Page 436: Icstation User Manual @Vins

Automated Routing Using Routing Functions

ssber of

ing

ou

ghe

ther,

two route layers. IC Station automatically lists the defined layers in the Proceand places them in the Set Layer Appearance menu. You can select any numlayers and execute a$change_layer() function for all of the selected layers.

To change the appearance of routing layers in your design, perform the followsteps:

1. Execute the pulldown menuOther > Layers > Set Layer Appearance....

2. Select the layer that you want to change in the dialog box.

3. Click onFill Pattern..., which displays the Fill Pattern dialog window.

4. Click on the black box at the upper left side of the pattern box.

5. Click OK in the Fill Pattern dialog box.

6. Click on anObject Fill Color of your choice.

7. Click Set to assign the fill pattern and color to the routing layer which yhad selected.

8. Click OK to save the layer appearance changes.

9. Redraw the graphics in the active context with the Ctrl-R key stroke toreflect the changes in layer appearance.

Adding a Connection that Does Not Exist in the Netlist

Once you have finished the layout, you might need to execute an engineerinchange order (ECO) request to change the design's connectivity. Typically, tchanges require you to either add a path or short two paths together.

To set the editing mode to CE mode, execute the pulldown menu selectionContext > Set Cell Config > Connectivity Editing.

To locate the two paths that correspond to the nets that you want to short togeperform the following steps:

IC Station User’s Manual, v8.9_914-30

Page 437: Icstation User Manual @Vins

Using Routing Functions Automated Routing

ther.ile

1. Execute the pulldown menu selectionFile > Open > Group Window.

2. Click NETS.

3. Scroll down the list and select the two nets that you want to short togeIf the two nets are not listed consecutively, hold down the control key whselecting the second net.

4. Execute the pulldown menu selectionSelect > Select Objects.

5. Close the Group Window.

6. Execute the pulldown menu selectionView > Selected to view the pathsthat correspond to the selected nets.

To add a path to connect the two selected nets, perform the following steps:

1. Execute the palette menu selectionBack > Easy Edit >(Add Objects) Path.

2. Click on theOptions... button.

3. SpecifyLayer andWidth of the path that you are about to add.

4. Add the new path between the two highlighted nets. A message willindicate that you have merged the two nets together.

5. Execute the menu selectionUnselect > All.

IC Station User’s Manual, v8.9_9 14-31

Page 438: Icstation User Manual @Vins

Automated Routing Using Routing Functions

IC Station User’s Manual, v8.9_914-32

Page 439: Icstation User Manual @Vins

signdards

rm

Chapter 15Automated Layout Editing

Operations

Design Methodologies

Bottom-Up with Mixed Standard Cells and Blocks

The following sequence of steps outlines bottom-up design methodology forrunning automated layout on a mixed standard cell and blocks design. The decan contain many levels of hierarchy. The top level contains blocks and stancell pads. One of the blocks contains multiple instances of a single block; thiblock, which is the lowest level block, contains all standard cells.

1. To run automated layout on the lowest level block in the hierarchy, perfothe following steps:

a. In the Floorplan palette menu, click onAutofloorplan .

b. In the Autoplace section of the Place/Route palette menu, click onStdCells.

c. In the Autoplace section of the Place/Route palette menu, click onPorts.

d. In the Autoroute section of the Place/Route palette menu, click onAll .

e. If any nets remain unrouted, select an overflow.

f. In the Autoroute section of the Place/Route palette menu, click onOverflow to route the selected overflow.

IC Station User’s Manual, v8.9_9 15-1

Page 440: Icstation User Manual @Vins

Design Methodologies Automated Layout Editing Operations

.

ins

w,

g. Route each overflow individually by repeating the above two steps

h. In the Place/Route palette menu, click onMinimize Vias.

i. In the Place/Route palette menu, click onCompact.

j. In the IC Palettes palette menu, click onICrules.

k. Select and run rule checks to verify that your design is design rulecorrect.

l. Save the design.

2. Run automated layout on the block one level up in the hierarchy; it contamultiple instances of the lowest level block.

a. In the Floorplan palette menu, click onAutofloorplan .

b. In the Autoplace section of the Place/Route palette menu, click onBlocks.

c. In the Autoplace Ports section of the Autoplace blocks dialog windoclick onYes.

d. In the Autoroute section of the Place/Route palette menu, click onAll .

e. In the IC Palettes palette menu, click onICrules.

f. Select and run rule checks to verify that your design is design rulecorrect.

g. Select an overflow.

h. In the Autoroute section of the Place/Route palette menu, click onOverflow to route the selected overflow.

i. Route each overflow individually by repeating the above two steps.

j. In the Place/Route palette menu, click onMinimize Vias.

IC Station User’s Manual, v8.9_915-2

Page 441: Icstation User Manual @Vins

Automated Layout Editing Operations Design Methodologies

k. In the Place/Route palette menu, click onCompact.

l. In the IC Palettes palette menu, click onICrules.

m. Select and run rule checks to verify that your design is design rulecorrect.

n. Save the design.

3. Run automated layout on the blocks in the top level.

For a block that contains one block and standard cells:

a. In the Floorplan palette menu, click onAutofloorplan .

b. Manually place the block in the active context block.

c. In the Autoplace section of the Place/Route palette menu, click onStdCells.

d. In the Autoplace section of the Place/Route palette menu, click onPins.

e. In the Autoroute section of the Place/Route palette menu, click onAll .

f. In the IC Palettes palette menu, click onICrules.

g. Select and run rule checks to verify that your design is design rulecorrect.

h. Select an overflow.

i. In the Autoroute section of the Place/Route palette menu, click onOverflow to route the selected overflow.

j. Route each overflow individually by repeating the above two steps.

k. In the Place/Route palette menu, click onMinimize Vias.

l. In the Place/Route palette menu, click onCompact.

IC Station User’s Manual, v8.9_9 15-3

Page 442: Icstation User Manual @Vins

Design Methodologies Automated Layout Editing Operations

m. In the IC Palettes palette menu, click onICrules.

n. Select and run rule checks to verify that your design is design rulecorrect.

o. Save your design.

Following are the steps for a block that contains all standard cells:

p. In the Floorplan palette menu, click onAutofloorplan .

q. In the Autoplace section of the Place/Route palette menu, click onStdCells.

r. In the Autoplace section of the Place/Route palette menu, click onPorts.

s. In the Autoroute section of the Place/Route palette menu, click onAll .

t. In the IC Palettes palette menu, click onICrules.

u. Select and run rule checks to verify that your design is design rulecorrect.

v. Select an overflow.

w. In the Autoroute section of the Place/Route palette menu, click onOverflow to route the selected overflow.

x. Route each overflow individually by repeating the above two steps.

y. In the Place/Route palette menu, click onMinimize Vias.

z. In the Place/Route palette menu, click onCompact.

aa. In the IC Palettes palette menu, click onICrules.

ab. Select and run rule checks to verify that your design is design rulecorrect.

IC Station User’s Manual, v8.9_915-4

Page 443: Icstation User Manual @Vins

Automated Layout Editing Operations Design Methodologies

ard

w,

ac. Save your design.

4. Run automated layout on the top level; it contains all blocks and standcell pads.

a. In the Floorplan palette menu in the Hierarchy section, click onOpenWindow.

b. In the Autoplace section of the Place/Route palette menu, click onBlocks.

c. In the Autoplace Ports section of the Autoplace blocks dialog windoclick onYes.

d. In the Autoroute section of the Place/Route palette menu, click onAll .

e. In the IC Palettes palette menu, click onICrules.

f. Select and run rule checks to verify that your design is design rulecorrect.

g. Select an overflow.

h. In the Autoroute section of the Place/Route palette menu, click onOverflow to route the selected overflow.

i. Route each overflow individually by repeating the above two steps.

j. In the Place/Route palette menu, click onMinimize Vias.

k. In the Place/Route palette menu, click onCompact.

l. In the IC Palettes palette menu, click onICrules.

m. Select and run rule checks to verify that your design is design rulecorrect.

n. Save your design.

IC Station User’s Manual, v8.9_9 15-5

Page 444: Icstation User Manual @Vins

Design Methodologies Automated Layout Editing Operations

signll

ksngle

top

l

ou

Top-Down with Mixed Standard Cells and Blocks

The following sequence of steps outlines top-down design methodology forrunning automated layout on a mixed standard cell and blocks design. The deobject contains only a netlist generated from a schematic and a standard celibrary. The schematic contains connectivity and hierarchy information.

The design can contain many levels of hierarchy. The top-level contains blocand standard cell pads. One of the blocks contains multiple instances of a siblock; this block, which is the lowest level block, contains all standard cells.

1. Floorplan the top level cell and place ports and pins on the blocks in thelevel cell.

a. Create floorplan shapes for blocks at the top-level.

b. Edit the floorplan shapes.

c. Link the floorplan shapes.

2. Run automated layout on one of the blocks in the top-level cell. Thiscontains multiple instances of the lowest level block, which contains alstandard cells.

a. In the Floorplan palette menu, click onAutofloorplan .

b. Autoplace all of the block instances

3. Run automated layout on the block which is an instance in the block yjust edited. This block contains all standard cells.

a. In the Autoplace section of the Place/Route palette menu, click onStdCells.

b. In the Autoplace section of the Place/Route palette menu, click onPorts.

c. In the Autoroute section of the Place/Route palette menu, click onAll .

IC Station User’s Manual, v8.9_915-6

Page 445: Icstation User Manual @Vins

Automated Layout Editing Operations Editing Operations

.

E

lue

d. In the Autoroute section of the Place/Route palette menu, click onAllto route the active context block.

e. In the Place/Route palette menu, click onMinimize Vias.

f. In the Place/Route palette menu, click onCompact.

g. Extract delays and verify missing connections in the block instance

h. In the IC Palettes palette menu, click onICrules.

i. Select and run rule checks to verify that your design is design rulecorrect.

j. Run ICtrace in the block instance for layout versus schematic.

k. Run ICextract to produce an HSPICE netlist.

l. Fix missing connections in the block instance by changing to the Cmode and manually creating paths.

Editing Operations

Specifying Wire Types

Specify wire types for each routing level with the$wiring_typeProcess Variable;and add the Wtype property to a net to specify a wire type different from the vaof the $wiring_type Process Variable. The$change_net() function allows you tochange the net priority, the route style, and the via style for a net.

For information on the $wiring_type Process Variable, refer to thePropertiesReference Manual.For information on the $change_net() function, refer to theICStation Reference Manual.

IC Station User’s Manual, v8.9_9 15-7

Page 446: Icstation User Manual @Vins

Editing Operations Automated Layout Editing Operations

ayer

eer. A

as

he

tion)

Inntained

r tone a

an

ingps:

Defining Multiple Routing Layers for a Routing Level

You can define multiple routing layers per routing level with the $wiring_typeand $routing_level Process Variables. You must have previously defined all lnames used in the routing and wiring layer definitions by using the$define_layer_name() function. The wiring definitions must specify either tworegular layers, or one regular layer and a multiple layer. You can use multipllayers to make it easier to see a subset of the wiring and blockages on a laymultiple layer is a legitimate blockage and routing layer. A multiple layer alsoshares the following information with other multiple layers that are all definedpart of the same regular layer:

• Pin information

• Blockage information

• Routing information

• Alternate layer—to be used in routing if blockages prevent routing on tspecified regular layer.

Creating a Cell Outline

You can define cells which, when placed, share diffusion regions (gate isolaor other mask geometry. To define cells that share diffusion or other maskgeometry, you must ensure that the cells remain abutted during placement. order to ensure that the cells remain abutted during placement, cells must coa shape on the cell boundary layer, which is the reserved floorplan layer nam“fp1”. The Automated Layout tools use the shape on the “fp1” boundary layedefine the outline of a cell for placement and routing purposes. You can defishape on the “fp1” layer for any converted, translated, or new IC Station cellbefore you use it for automated layout.

To create a cell outline, copy the boundary layer data to the reserved floorpllayer, named fp1. You can create this shape on the fp1 layer by using the$add_shape() function, or with Build_lib. Build_lib is recommended for creatthis shape for a library of cells. To copy boundary layer data, follow these ste

IC Station User’s Manual, v8.9_915-8

Page 447: Icstation User Manual @Vins

Automated Layout Editing Operations Editing Operations

ot

thstedl and

”)es to

1. Execute the$open_cell() function.

2. Execute the$set_visible_layers() function.

3. Select the cell boundary.

4. Execute the $copy_to_layer("fp1") function.

Do not add a floorplan shape to the via cell, and make sure the via cells do nhave text hanging outside their shapes.

Making Ports

You use the$make_port()function to make currently selected shapes and/or pamembers of a new port. When you execute the $make_port() function, selecshapes and paths are automatically established as belonging to both internaexternal aspects of the cell.

Port names are optional; you can add them with the$add_property() function orthe optional port_name argument.

You cannot use $make_port() in a via cell. Via cells have one port (named “vthat is created automatically when the cell is created. If you wish to add shapan existing port, use the$add_to_port() function.

To create a port, perform the following steps:

1. Select the objects that will make up the port.

2. Choose the following menu item:

Objects > Make > Port:

The Make Port prompt bar is displayed.

3. Choose the port type: signal, power, or feedthru.

4. Choose the port direction: in, out, or bidirectional.

IC Station User’s Manual, v8.9_9 15-9

Page 448: Icstation User Manual @Vins

Editing Operations Automated Layout Editing Operations

havect of

l-S.willhe

ny

:

e

5. Enter the port name.

6. Execute the prompt bar by pressing the Return key or clicking the OKbutton.

The selected objects become members of the port. The port membersboth an internal and external aspect. When you view the external aspethe cell, you will be able to see the port members.

For more information about making ports, refer to the$make_port() function intheIC Station Reference Manual.

Interrupting Automated Tools

To interrupt any of the Automated Layout Tools during the operation press CtrThis interruption causes the operation to stop at a place where no problems occur. By interrupting an Autoplace operation, ICblocks will stop optimizing tplacement as soon as possible and clean up the layout. Interrupting otheroperations has a similar effect.

Fracturing Rectilinear Ports

Because the router only routes to rectangular objects, you need to fracture arectilinear ports into orthogonal rectangle before routing. You can fracturerectilinear ports using either the$fracture() function or the$build_lib() function.

To fracture a rectilinear port using the $fracture() function, follow these steps

1. Select a port.

2. Execute the$fracture() function to fracture the selected shape.

3. Execute the$activate_port() function to activate the rectilinear port.

4. Execute the$add_to_port()function to add the fractured shape to the activport.

5. Delete the original shape.

IC Station User’s Manual, v8.9_915-10

Page 449: Icstation User Manual @Vins

Automated Layout Editing Operations Editing Operations

n

y

g

You automatically fracture rectilinear ports by using the $build_lib() functionwhen you create ports using it.

Changing Block and Cell Placement

Manually Placing Blocks and Cells

To manually place either a block or a cell in the active context, perform thefollowing steps:

1. Select the unplaced block or blocks in the Hierarchy Window.

2. Activate the layout window.

3. Execute the palette menu selectionPlace cell.

4. Place the block at the desired location. If it is a MOS device, it may joiwith another MOS device. For more information, see the section “JoinDevices While Moving or Placing Pins” in the IC Station Device LevelAutomation Manual.

While placing the object, you can dynamically rotate or flip the object bpressing the following keys:

• r : Rotates the dynamic 90 degrees

• R: Rotates the dynamic -90 degrees

• f: Flips the dynamic horizontally

• F: Flips the dynamic vertically

While placing the object, you can get feedback on whether the resultinplacement would be DRC correct.

To highlight objects when a DRC Layer Spacing violation would result:

a. In theSetup > Dynamics... dialog box, select theHighlight buttonunder Restriction Mode.

IC Station User’s Manual, v8.9_9 15-11

Page 450: Icstation User Manual @Vins

Editing Operations Automated Layout Editing Operations

g

e or

ps:

b. Select the object(s) and place them. Wherever a DRC layer spacinviolation will occur, the object will be highlighted.

When you place the source or drain of one MOS device over the sourcdrain of another, you can have the two devices automatically joined bysetting the$set_join_on_move() function.

5. Execute the menu selectionUnselect > All.

Using Automated Block Placement Functions

Autoplacing Blocks

To automatically place blocks in the active context, perform the following ste

1. Execute the palette menu selectionPlace/Route > (Autoplace) Blocks.

2. ExecuteView > All .

Checking Block Placement

To check the block placement for placement violations, perform the followingsteps:

1. Execute the$check_instances() function.

2. In the dialog box, specifyAll in the Instances field.

3. In the dialog box, click on OK.

Using Automated Pin / Port Placement Functions

Placing Ports on Placed Cells and Blocks

To place ports on placed cells and blocks in the active context, perform thefollowing steps:

1. Execute the palette menu selection(Autoplace) Ports.

2. SpecifyEVEN in the Method field.

IC Station User’s Manual, v8.9_915-12

Page 451: Icstation User Manual @Vins

Automated Layout Editing Operations Editing Operations

ock,

ps:

nts.

heirrm

3. Click OK.

4. From the pulldown menu, executeView > All .

Placing Pins

To automatically place pins on a block in the active context, perform thefollowing steps:

1. Select the block in the layout window.

The$autoplace_pins() function places all pins (or port instances) at theinstance boundary of all or selected instances. If you do not select a blall pins on all blocks will be placed.

2. Execute the(Autoplace) Pinspalette menu selection.

3. Click OK.

4. Execute theUnselect > Allmenu selection.

Protecting Port / Pin Placement

If you want to keep the original port/pin placement, perform the following ste

1. Select the rows on which you want to keep the original port/pin placeme

2. Execute the $change_rows() function.

3. Set theSlideable Row option toNo.

4. Execute the Change Rows prompt bar by clicking OK.

Editing Pin/Port Placement Violations of Instances

You can highlight pin/port placement rule violations so that you can correct tplacements. To highlight the placement violations in the active context, perfothe following steps:

1. Execute the$check_instances() function.

IC Station User’s Manual, v8.9_9 15-13

Page 452: Icstation User Manual @Vins

Editing Operations Automated Layout Editing Operations

ing

the

2. Click on theInstances up-arrow to selectall.

3. Specify any desired options in the prompt bar.

4. Click OK.

The $check_instances() function highlights invalid instances in the Hierarchywindow and selects them in the layout window. The function providesinformation on the type of violation in the transcript window.

Using the Automated Standard Cell Placement Function

To automatically place standard cells in the active context, perform the followsteps:

1. Display thePlace/Routepalette menu.

2. Execute the(Autoplace) Std Cellspalette menu selection.

3. Set your options. The default option settings will direct the Placer to useinitial + improve routine.

4. Click OK.

IC Station User’s Manual, v8.9_915-14

Page 453: Icstation User Manual @Vins

tionectlyell

s

pe on

yers

sed

alf).

g.

Chapter 16Library Operations

Build LibraryThe$build_lib() function creates a physical cell library of blockages and portsfrom existing geometric data. The IClink command converts data to the IC Stadatabase, then the $build_lib() function writes the blockages and port data dirinto the IC Station cell database. IC Station stores the modified cells in the clibrary. The updated cells can then be used for placement and routing.

The $build_lib() function models blockages and ports, which are described afollows:

• Blockages. The function models blockages in three ways:

o Each shape or path on the specified layers becomes a blockage shathe specified routing level.

o The bounding rectangle around all of the shapes on the specified laare included as blockages on the specified routing level.

o The cell outline that encloses all of the blockage data in the cell is uas a blockage.

The $build_lib() function handles directional blockages. A directionblockage is a blockage rectangle that restricts routing in a subset opossible routing directions (for example, horizontal, vertical, and viaYou can use directional blockages to inhibit certain types of routingbecause of the influence of layers invisible to placement and routinFor example, block_dir with a value of x inhibits routing in theX-direction and creates a blockage to allow routing in the Y and Z

IC Station User’s Manual, v8.9_9 16-1

Page 454: Icstation User Manual @Vins

Build Library Library Operations

the

om

e is

of a

d

tohem

b.the

ns

e for

eates a

directions. Blockage in all directions is accomplished by not addingblock_dir property.

• Ports. The function models two types of ports:

o Power ports. Power ports have a voltage name as an identifier. Thefunction models power ports as shapes. Power ports are created frany shape on the source layers that contains the value given by aproperty name or the location of a property name. The property valugiven by the voltage name Vdd or Vss.

o Signal ports.The function models signal ports one of three ways:

i. Any shape on a specified set of layers that contains the locationproperty name becomes a signal port.

ii. The signal port location, which is marked by a property name, anthe specified default shape becomes the signal port.

o Power Straps.The function models power straps that tie signal pinsa power source in the IC Station database, but does not translate tinto physical objects in your design.

You can specify which cells in the library where you want to execute Build_liBefore you invoke Build_lib in the active context, you need a valid Process foractive context.

The $build_lib() function in IC Station allows you to extract port informationfrom GDSII mask level information. For port shape and text location definitioand requirements, refer to the$build_lib() function in theIC Station ReferenceManual.

You can use $build_lib() to create ports and pins, blockages, and a cell outlinconverted ChipGraph cells and translated GDSII designs. You can use thisfunction to create a cell outline for converted CellGraph designs. You can crports and blockages manually or with the $build_lib() function. The function ipowerful tool for creating ports and blockages for a library of cells.

IC Station User’s Manual, v8.9_916-2

Page 455: Icstation User Manual @Vins

Library Operations Creating an IC Station Library

e

to the

tion

rary.

dew

The IC Station channel router does not explicitly recognize non-rectangularblockages and polygons. You must run the $build_lib() function to fracturenon-rectangular blockages and polygons into rectangular shapes and add thshapes on the external aspect. Alternatively, the$fracture() function fracturesselected polygons into rectangles and adds the fractured rectangular shapesspecified layer. The$get_fractured_rectangles() function returns a vector ofrectangles fractured from the polygon. For more information, refer to the sec“Fracturing Rectilinear Ports.”

Creating an IC Station LibraryYou can create an IC Station library either by converting a V7.0 Cell Stationdesign that uses the library, or by creating a library and adding cells to that lib

You can add any of the following design data to the physical library: converteCellGraph designs, converted ChipGraph designs, translated designs, and nICgraph designs.

To manually create a library, perform the following steps:

1. Create an empty library by executing the$create_library() function.

2. Add the cells, one by one, to the library by executing the$add_to_library()function.

3. Save the library by executing the$save_library() function.

Adding and Removing Cells from an ICStation Library

To add a cell to an existing V8.X library, follow these steps:

1. To reserve a library for edit, issue the$reserve_library()function. A promptbar appears.

2. Specify Library Name.

IC Station User’s Manual, v8.9_9 16-3

Page 456: Icstation User Manual @Vins

Prescreening the Cell Library Library Operations

abley

the

n allects

3. Issue the $add_to_library() function. A prompt bar appears.

4. Specify Library Name and Cell Name.

To remove a cell from an existing IC Station library, follow these steps:

1. To reserve a library for edit, issue the$reserve_library()function. A promptbar appears.

2. Specify Library Name.

3. Issue the$delete_from_library() function.

4. Specify Library Name and Cell Name in the prompt bar.

Prescreening the Cell LibraryPrescreen the cell library before running automated layout to ensure reasonlayout results. If you have changed only a part of your design, prescreen onlthose changed or added design stages.

The library is usually not changed once it has been properly prepared forautomated layout, so library prescreening is not usually performed once thelibrary is prepared. You can select the objects and the design stages where verification should begin. You have three options for the design stage:

• Check the consistency of the Process.

• Check the cells defined in the current library.

• Check objects in the active context. If there are no objects selected, theobjects in the active context are checked. Otherwise, only selected objare checked.

To prescreen a design for automated layout, follow these steps:

1. Issue the $report_place_route() function. A dialog box appears.

2. Specify the following fields:

IC Station User’s Manual, v8.9_916-4

Page 457: Icstation User Manual @Vins

Library Operations Building the Library

ess

rted

• Input Stage (the checking stage):

Process: Checks the Process Definition Fileset (PDF)Library: Checks only the libraryCurrent: Checks the design

• Check Type (type of check):

Grid: Checks grid-related problemsPower: Checks power rails of standard cellsPort and Pin: Checks port, pin, and via-related problems

• Output Type (style of error report):

List by objectList by error

Building the Library

Using the Build_lib Parameters

Many of the parameter settings in Build_lib depend on the Process Variablesassignments. In order to set the parameters for the$build_lib() function, you needto know the values of the Process Variables. You should reference the ProcUserware File for your design as you set the parameters for $build_lib().

Creating Complete or Directional Blockages by UsingBuild_lib

You can use Build_lib to create ports, blockages, and a cell outline for conveand translated designs. To create complete or directional blockages usingBuild_lib, follow these steps:

1. Issue the$build_lib() function. A dialog box appears.

IC Station User’s Manual, v8.9_9 16-5

Page 458: Icstation User Manual @Vins

Building the Library Library Operations

d.

tion

age.

ingu

the

ot

r

2. Specify to build blockages by clicking on “Blockages.” A dialog boxsubform appears.

3. Set the following parameters:

• Routing Level. Routing level on which the blockages are to be define

• Source Layers. Layers on which source shapes reside. If the celloutline is used as a blockage on the specified routing level, the funcignores the source shapes.

• Blockage Form. Form from which blockages are modeled. Chooseone:

o Include every shape as a blockage.

o Include only the bounding rectangle around all shapes as a block

o Use the cell outline as a blockage.

• Blockage Direction. Direction in which the routing is blocked by theblockage. To create directional blockages, choose one of the followblockage directions for blockage shapes: X, Y, Z, XY, YZ, XZ. If yodo not specify a blockage direction, the blockage will prevent anyrouting from crossing it.

4. Make either or both of the following two required changes after running$build_lib() function:

• Pull text inside the boundary of the cell extent if a boundary layer is nused.

• Check vertical sides of blockages for 1/2 drc spacing.

Note

The $build_lib() function calls the $build_blockages() functionwhich sets up the parameters for modeling blockages. The$build_lib() function generates the cell blockage information fodesigns that are translated from GDSII stream data.

IC Station User’s Manual, v8.9_916-6

Page 459: Icstation User Manual @Vins

Library Operations Building the Library

rted

cell.

d.

en.

For $build_lib() function procedures, refer to the section “Making ChangesRequired after Running Build_lib.”

Creating Ports Using Build_lib

You can use Build_lib to create ports, blockages, and a cell outline for conveand translated designs.

To create ports using Build_lib, follow these steps:

1. Issue the$build_lib() function. A dialog box appears.

2. Specify to build ports by clicking on “Ports.” A dialog box subformappears.

The $build_lib() function calls the$build_ports()function which sets up theparameters for modeling ports. The $build_lib() function generates theport information for designs that you translate from GDSII stream data

For information on the$build_ports() function, refer to the IC StationReference Manual.

3. Set the following parameters:

• Routing Level. Routing level on which the blockages are to be define

• Text Layers.Layer on which GDSII text resides, which specifies theport location.

• Source Layers. Layers on which source shapes reside. The SourcLayers equals the Text Layers if Port Form equals the Text Locatio

• Port Type. Type of I/O: power or signal.

• Port Form. Source of information: shapes or text location.

• Port Direction. Direction the pin is pointing.

• Shape Size Height. Defaults to$port_height Process Variable.

IC Station User’s Manual, v8.9_9 16-7

Page 460: Icstation User Manual @Vins

Building the Library Library Operations

ot

nt.ute

as

the

• Shape Size Width. Defaults to $port_height Process Variable.

4. Make either or both of the following changes after running Build_lib:

• Pull text inside the boundary of the cell extent if a boundary layer is nused.

• Check vertical sides of blockages for 1/2 drc spacing.

For $build_lib() function procedures, refer to the section “Making ChangesRequired after Running Build_lib.”

Making Changes Required after Running Build_lib

You should make the following changes after running Build_lib:

• To minimize the area within the boundary of the cell for autoplace andautoroute functions, pull text inside the cell extent, which is currentlyoutside the cell extent.

If a floorplan shape is used, you can leave the text outside the cell exteWhen performing place and route operations, the autoplace and autorofunctions use the floorplan shape (if it exists), instead of the cell extentthe boundary of the cell.

• To avoid design rule errors, move any blockages that are not on a cellboundary extent, but are closer than 1/2 of a design rule distance fromextent's edge.

IC Station User’s Manual, v8.9_916-8

Page 461: Icstation User Manual @Vins

You

by

nd

nd

Chapter 17Importing and Exporting Data

This chapter describes the different ways you can import data into IC Station.can import logic through an EDDM viewpoint, as well as translate betweenGDSII, EDIF, and LEF/DEF database formats and IC Station.

Importing Logical Data into IC StationYou load logic by using an EDDM viewpoint.

Preparing and Importing an EDDM Viewpoint Netlist

Converting a V7.x Schematic to a Valid EDDM Schematic Source

If you have a V7.x schematic source, you can convert it into the V8.x format using the “cvt_comp” command. This command converts all V7.x schematiccomponents into the corresponding V8.x schematics.

Use the following “cvt_comp” command to convert the named top-level cell aits underlying hierarchy into the V8.x format:

$MGC_HOME/bin/cvt_comp -convert -nodelete top-level_cell_path

Creating and Saving an EDDM Viewpoint

You must have one or more physical libraries that contain the physical cellscorresponding to schematic cells.

By following the steps below, you will prepare the design, and create, test, asave an EDDM viewpoint.

IC Station User’s Manual, v8.9_9 17-1

Page 462: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

t

efault.

tognnt

r

it to

e

ation

enu

1. Add theCompandPhy_compproperties to all symbols for which you wanto use corresponding physical cells.

2. Load the desired Process and Rules files. The session Process is the d

3. Create a viewpoint for the top-level schematic of the logic that is goingbe loaded, by using the $open_design_viewpoint() function in the DesiViewpoint Editor (DVE-IC) to create the viewpoint. Specify the componename as the top-level component in the function.

For example, to create a viewpoint (vpt) for /user/cpu/top_level:

$$open_design_viewpoint("/user/cpu/top_level", "vpt", "", @interface, @editable, void);

4. Traverse the viewpoint and check it against any missing links and otheerrors by using the following function:

$check_design(@nowarning, @noexpand_msgs, @nosubtree, void, @nosim, @noerc, @nonc, void);

5. Save the viewpoint of the top level schematic by using the followingfunction:

$save_design_viewpoint("");

Once you have created and saved your desired viewpoint, you can then usecreate an IC Station cell following the procedure in Chapter, “Cell RelatedOperations.” The procedure creates an IC Station cell with the attributes of thdesign that you captured by the viewpoint.

Reading and Writing GDSII DataThis section describes how to translate design data between GDSII and IC Stusing IC Station commands.

Translation between an IC Station database and a GDSII stream file isaccomplished through the use of the Read GDSII and Write GDSII palette mitems without the need to leave the IC Station application.

IC Station User’s Manual, v8.9_917-2

Page 463: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

e.

e.

asee in

refer

form

inhe

The following IC Station palette menu items allow you to translate to or fromGDSII stream files:

• Read GDSII: Translates a GDSII stream file into an IC Station databas

• Write GDSII: Translates an IC Station database into a GDSII stream fil

These menu items are also located on theTranslate pulldown menu.

For a detailed summary of how various GDSII and IC Station objects areconverted, refer to theData Conversion section on page17-14.

Reading a GDSII Stream File

By default, when Read GDSII converts a GDSII stream file to IC Station databformat, it reads the specified GDSII file and creates an IC Station cell databasthe current working directory. This directory can also be specified in theOutputDirectory text entry box of the Read GDSII Dialog Box, as shown in figure17-1.

For a detailed summary of how GDSII records are translated into IC Station to Table 17-2 on page 17-14.

To create a new database in IC Station directly from GDSII stream data, perthe following steps:

1. Select the Read GDSII palette item in the IC Station session menu.

- or -

SelectRead GDSII from theTranslate pulldown menu.

Note

Read GDSII requires approximately 2.5X the GDSII stream sizephysical memory (RAM and swap space) to convert and save tdesign data.

IC Station User’s Manual, v8.9_9 17-3

Page 464: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

d.

n for

The Read GDSII dialog box displays, as shown in Figure17-1.

Figure 17-1. Read GDSII Dialog Box

2. In the GDS File entry box enter the full pathname to the GDSII file. Youcan use the navigator to locate this file.

3. In theGDS Cell Nameentry box enter the name of the cell to be translate

By default, all cells in the GDSII file are translated if no cell names areentered. All hierarchy below each specified cell will be translated. Wheyou are translating more than one cell, the form adds new entry boxeseach additional cell name.

4. In the Output Directory text entry box, specify the full pathname of thedirectory where you want the new IC Station database stored.

5. If you have an AMPLE file containing commands to set Read GDSIIoptions, selectLoad Options From File.

The Load Options From File dialog box displays.

IC Station User’s Manual, v8.9_917-4

Page 465: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

et

, as

y

a. Enter the name of the AMPLE file that contains the commands to sthe Read GDSII options.

b. ClickOK to execute the dialog box.

This performs a $dofile() on the selected file. If you want to furthermodify the options, go on to steps 6-8 or go on to step9.

6. If applicable, selectRead Options to specify the Read GDSII translationoptions.

The Read GDSII Options dialog box, with default settings and displaysshown in Figure17-2.

Figure 17-2. Read GDSII Options Dialog Box

Note

There is nothing that prevents you from picking an arbitrarfile. Make sure the path to the AMPLE file is correct.

IC Station User’s Manual, v8.9_9 17-5

Page 466: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

he

inhe

7. In the Read GDSII Options dialog box, specify the options you want. TRead GDSII Options dialog box displays any preset options.

For more information on available options, refer to TableTable 17-1 onpage 17-10.

8. Click OK to execute the Read GDSII Options dialog box.

9. Click OK to execute the Read GDSII dialog box.

For more information, refer to the$read_gdsii()command in theIC StationReference Manual.

Writing IC Station data to GDSII Stream

To translate your IC Station database into GDSII stream data, perform thefollowing steps:

1. In the IC Station session window select the Write GDSII palette item.

- or -

selectWrite GDSII from theTranslate pulldown menu.

Note

Read GDSII requires approximately 2.5X the GDSII stream sizephysical memory (RAM and swap space) to convert and save tdesign data.

IC Station User’s Manual, v8.9_917-6

Page 467: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

nots for

The Write GDSII dialog box displays, as shown in Figure17-3.

Figure 17-3. Write GDSII Dialog Box

2. In theIC Station Cell Names entry box, enter the name of the cell to betranslated.

All hierarchy below each specified cell will be translated. The cell doesneed to be open for translation to occur. The form adds new entry boxethe additional cell names when you are translating more than one cell.

If a cell is open and active its name will appear in theIC Station CellNames entry box. This entry box can be overwritten and the user canspecify multiple cells.

3. In theOutput GDS File text entry box specify the full pathname of thedirectory where you want the new GDSII stream file created.

4. If you have an AMPLE file containing commands to set Write GDSIIoptions, selectLoad Options From File.

The Load Options From File dialog box displays.

IC Station User’s Manual, v8.9_9 17-7

Page 468: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

et

as

y

a. Enter the name of the AMPLE file that contains the commands to sthe Write GDSII options.

b. ClickOK to execute the dialog box.

This performs a $dofile() on the selected file. If you want to furthermodify the options, go on to steps 5-7 or go on to step8.

5. If applicable, selectWrite Options to specify the translation options.

The Write GDSII Options dialog box, with default settings and displays,shown in Figure17-4.

Note

There is nothing that prevents you from picking an arbitrarfile. Make sure the path to the AMPLE file is correct.

IC Station User’s Manual, v8.9_917-8

Page 469: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

he

Figure 17-4. Write GDSII Options Dialog Box

6. In the Write GDSII Options dialog box, specify the options you want. TRead GDSII Options dialog box displays any preset options.

IC Station User’s Manual, v8.9_9 17-9

Page 470: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

tion

For more information on available options, refer to Table17-1.

7. Click OK to execute the Write GDSII Options dialog box.

8. Click OK to execute the Write GDSII dialog box.

Refer to the$write_gdsii() command in theIC Station Reference Manualfor more information.

Options Dialog Box Summary

Read GDSII and Write GDSII contain separate dialog boxes that affect the opsettings. Table17-1 summarizes the options available in the dialog boxes.

Table 17-1. Read/Write GDSII Options Dialog Box

Option Label ReadGDSII

WriteGDSII

Description

Cell Angle Mode X

Specifies the angle mode of translated IC Station cells, as follows:• Forty-Five: Angle mode of created cell is 45 degrees.• Ninety: Angle mode of created cell is 90 degrees.• All Angle: Allows all geometry angles.

Related function:$set_gds_anglemode()

Cell Name Case X X

Specifies the case of translated cell names, as follows:• No Change: Does not change the case of cell names.• Upper: Changes all cell names to uppercase.• Lower: Changes all cell names to lowercase.

Related function:$set_gds_cellnamecase()

IC Station User’s Manual, v8.9_917-10

Page 471: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

s if

Cell Name Length X X

Sets the maximum length for a cell name written to GDSII.

Related function:$set_gds_cellnamelength()

Cell Name Map File X

Generates a correspondence list of IC Station cell names that requiredmodification in the specified file.

Only the modified cell names will be written to the cell name map file if theWrite modified cell names only to cell name map file check box is selected.

Related function:$set_gds_cellnamemap()

Fix Self-Intersecting Polygons X

Translates GDSII boundaries, including orientable self-intersecting polygonselected.

Related function:$set_gds_fixpolygons()

GDS Library X

Defines the contents of the GDSII library name record.

Related function:$set_gds_library()

Layer Filter X X

Specifies the layers to be translated.

Related functions:$set_gds_layerfilter()

Table 17-1. Read/Write GDSII Options Dialog Box [continued]

Option Label ReadGDSII

WriteGDSII

Description

IC Station User’s Manual, v8.9_9 17-11

Page 472: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

ed.

a.

n-

Lock Cells X

Specifies that created cells are locked for editing during translation if select

Related function:$set_gds_lockcells()

Log File X X

Specifies pathname where a log file is generated during translation. Allmessages will be transcripted to the log file.

Related functions:$set_gds_logfile()

Process X

Specifies the existing IC Station process to use when translating GDSII dat

Related function:$set_gds_process()

Properties X X

Specifies how GDSII properties are translated, as follows:• All: Translates all properties.• None: Translates no properties.• GDSII Properties: Translates IC Station properties named with the conve

tion “gdsii_properties” and also retains gdsii_property_# numbers. Thisargument only applies to Write GDSII

Related function:$set_gds_properties()

Replace Existing Cell(s) X

Overwrites existing data in the output directory if selected.

Related function:$set_gds_replace()

Table 17-1. Read/Write GDSII Options Dialog Box [continued]

Option Label ReadGDSII

WriteGDSII

Description

IC Station User’s Manual, v8.9_917-12

Page 473: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

Replace Existing GDSII Stream File X

Overwrites existing data in the output directory if selected.

Related function:$set_gds_replace()

Set Layer Mapping X X

Specifies how the translated layers are mapped.

When a layer is mapped between IC Station and GDSII, the followinginformation is required for each map:• GDS Layer: Specifies the GDSII layer.• GDS Datatype: Specifies the GDSII datatype.• IC Layer: Specifies the IC Station layer.

Layers not mapped with Set Layer Mapping are not translated when theSkipUnmapped Layers check box is selected.

Related functions:$set_gds_skipunmapped(), $set_gds_layermap()

Set Text Height X X

Specifies the text height of the corresponding layer, as follows:• Text Layer: Specifies the layer number.• Text Height: Specifies the text height in user units.

Related function:$set_gds_textheightmap()

Table 17-1. Read/Write GDSII Options Dialog Box [continued]

Option Label ReadGDSII

WriteGDSII

Description

IC Station User’s Manual, v8.9_9 17-13

Page 474: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

.ithIC

e

Data Conversion

This section discusses limitations and data conflicts that may result from theconversion process between GDSII stream and IC Station. Table17-2summarizeshow GDSII stream records are translated with Read GDSII and Write GDSIITable 17-3 on page 17-21 summarizes how IC Station objects are translated wRead GDSII and Write GDSII. For detailed descriptions of GDSII records andStation objects, refer to the subsections that follow.

Terse Transcript X X

Specifies detail level of transcripted information.

Warnings, errors, and summary information will be transcripted when theTerse Transcript check box is selected. All messages will be transcripted if thTerse Transcript check box is not selected.

Related functions:$set_gds_transcript()

Table 17-2. GDSII Records

GDSII Stream FileFormat

Read GDSII Write GDSII

HEADER Version Number Transcript, then ignore. Write version 6.

BGNLIB Last Modification Time Time of Last Access

Transcript, then ignore.Transcript, then ignore.

Write current time.Write current time.

LIBDIRSIZE Ignore. Does not write record.

SRFNAME Ignore. Does not write record.

LIBSECUR Ignore. Does not write record.

Table 17-1. Read/Write GDSII Options Dialog Box [continued]

Option Label ReadGDSII

WriteGDSII

Description

IC Station User’s Manual, v8.9_917-14

Page 475: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

n

LIBNAME Transcript, then ignored. Default is “mentor.db”, this cabe changed with the option$set_gds_library().

REFLIBS Ignore. Does not write record.

FONTS Ignore. Does not write record.

ATTRTABLE Ignore. Does not write record.

GENERATIONS Ignore. Does not write record.

FORMAT Ignore. Does not write record.

MASK Ignore. Does not write record.

ENDMASKS Ignore. Does not write record.

UNITS Database unit size inuser units Database unit size inmeters

Further Information:17-24

Transcript, then ignore.

Transcript, then ignore.

Write 1 divided by the processprecision value.

Write Process unit lengthdivided by process precisionvalue.

BGNSTR

Creation Time

Last Modification Time

STRNAME (32 character limit)

STRCLASS ENDSTR

Create IC Station cell of typeBLOCK.

Store creation time of structurewith the IC Station cell.

Store the last modification timeof structure with the ICStation cell.

Give the name of the IC Stationcell. Further Information:17-27

Ignore.Marker only.

Translate each IC Station cellas a GDSII structure.

Write creation time of ICStation cell, if present.Otherwise write the date ofcell on disk.

Write last modification time ofIC Station cell, if present.Otherwise write the date ofcell on disk.

Write IC Station cell name.Further Information:17-27

Does not write record.Write marker.

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_9 17-15

Page 476: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

BOUNDARY

ELFLAGS PLEX LAYER DATATYPE XY (4-200 points)

Create IC Station shape object.

Ignore.Ignore.Further Information:17-23Further Information:17-23Read as vertices of the IC

Station shape object.

Write all IC Station shapeobjects as GDSIIBOUNDARY elements.

Does not write record.Does not write record.Further Information:17-23Further Information:17-23Write vertices of the IC Station

shape object. The shape issplit up if it has more than200 vertices.

Further Information:17-29

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_917-16

Page 477: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

PATH

ELFLAGS PLEX LAYER (0-4095) DATATYPE (0-63) PATHTYPE 0 - square ends (flush) 1 - round ends

2 - square ends (extended) 4 - square ends (variable) WIDTH

BGNEXTN (pathtype 4 info) ENDEXTN (pathtype 4 info) XY (2-200 points)

Create IC Station path object.

Ignore.Ignore.Further Information:17-23Further Information:17-23Further Information:17-27Support flush square ends.

Convert round ends to squareends and handle aspathtype 0.

Support square ends(extended).

Convert to square ends andhandle as pathtype 0.

Use as IC Station path objectwidth.

Support extensions at thebeginning of paths.

Support extensions at the end ofpaths.

Read as vertices of the ICStation path object.

Write IC Station path objects asGDSII PATH orBOUNDARY elementsdepending on the attributesof the path object.Further Information:17-27

Record not written.Record not written.Further Information:17-23Further Information:17-23Further Information:17-27Used when the IC Station path

has normal ends.Never write this pathtype.

Use when IC Station path hasextended ends.

Never write this pathtype.

Write IC Station path objectwidth.

Does not write record.

Does not write record.

Write vertices of the IC Stationpath object. The path is splitup if it has more than 200vertices.

Further Information:17-29

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_9 17-17

Page 478: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

SREF

ELFLAGS PLEX SNAME

STRANS reflection

absolute magnification

absolute angle

MAG

ANGLE

XY (1 point)

Start the creation of an ICStation cell instance.

Ignored.Ignored.Specify the name of a cell

instance. See STRNAME.

Rotate structure about theX-axis.

Not supported. Warningmessage is given.

Not supported. Warningmessage is given.

Specify the scale of the ICStation cell instance.

Specify the rotation of the ICStation cell instance.

Specify the location of the ICStation cell instance.

Write IC Station cell instanceas GDSII SREF elements.

Record not written.Record not written.Writes a cell instance name.

See STRNAME.

Write to field.

Ignore field, write zero.

Ignore field, write zero.

Write the scale of the ICStation cell instance.

Write the rotation of the ICStation cell instance.

Write the basepoint of the ICStation cell instance.

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_917-18

Page 479: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

AREF

ELFLAGS PLEX SNAME

STRANS reflection

absolute magnification

absolute angle

MAG

ANGLE

COLROW

XY (3 points) aref1(x,y)

aref2(x,y)

aref3(x,y)

Start the creation of an ICStation array.

Ignore.Ignore.Specify the name of the cell

instance that the array iscomposed of.See STRNAME

Rotate structure about theX-axis.

Not supported. Warningmessage is given.

Not supported. Warningmessage is given.

Specify the scale of the ICStation array.

Specify the rotation of the ICStation array.

Specify the number of columnsand rows in the IC Stationarray.

Specify the basepoint of thearray.

Inter-column displacement.

Inter-row displacement.

Write an IC Station array asGDSII AREF elements.

Does not write record.Does not write record.See STRNAME.

Write to field.

Always write zero.

Always write zero.

Write the scale of the ICStation array.

Write the rotation of the ICStation array.

Write the number of columnsand rows in the IC Stationarray.

Write the basepoint of thearray.

Inter-column displacement.

Inter-row displacement.

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_9 17-19

Page 480: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

TEXT

ELFLAGS PLEX LAYER (0-4095) TEXTTYPE PRESENTATION font [0-3] vertical presentation 00,01,10 horizontal presentation 00,01,10 PATHTYPE WIDTH STRANS reflection absolute magnification absolute angle MAG

ANGLE

XY (1 point)

STRING

Start the creation of an ICStation text object.

Ignore.Ignore.Further Information:17-23Handled like DATATYPE

Ignore.Store with IC Station text

object.Store with IC Station text

object.Ignore.Ignore.

Ignore.Ignore.Ignore.Specify the IC Station text

height as MAG times theprocess precision.To override see$set_gds_textheightmap().

Round to 1 of 8 discrete anglesand store with IC Station textobject.

Specify the location of the ICStation text object.

Store with the IC Station textobject.

Write IC Station text object asGDSII TEXT elements.

Record not written.Record not written.Further Information:17-23Handled like DATATYPE

Always write zero.Written from IC Station text

object.Written from IC Station text

object.Record not written.Record not written.

Always write zero.Always write zero.Always write zero.Write the IC Station text height

divided by the processprecision. To override see$set_gds_textheightmap().

Write IC Station text objectangle to GDSII text angle.

Write the location of the ICStation text object.

Write from the IC Station textobject.

NODE

ELFLAGS PLEX LAYER (0-4095) DATATYPE (0-63) XY (1-50 points)

Do not read, by default. See$set_gds_nodes() to activateGDSII NODE translation.

Ignore.Ignore.Further Information:17-23Further Information:17-23Store only the first point.

Do not write, by default. See$set_gds_nodes() to activateGDSII NODE translation.

Does not write record.Does not write record.Further Information:17-23Further Information:17-23Write only one point.

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_917-20

Page 481: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

s

BOX

ELFLAGS PLEX LAYER (0-4095) DATATYPE (0-63) XY (5 points, first and last coincide)

Start the creation of an ICStation shape object.

Ignore.Ignore.Further Information:17-23Further Information:17-23Specify the vertices of the IC

Station shape object.

A GDSII BOX is never written.Write IC Station rectangle orsquare as a GDSIIBOUNDARY element.

Does not write record.Does not write record.Further Information:17-23Further Information:17-23Does not write record.

PROPATTR attribute number (1-127)

PROPVALUE

Start the creation of an ICStation property.The name of the property isgdsii_property_#, where # isspecified by attributenumber.

Store PROPVALUE strings asIC Station property values.

Discard IC Station propertynames and write attributenumbers to stream insequence. The count restartat one with each GDSIIelement written.$set_gds_properties() canchange this behavior.

Write IC Station propertyvalues directly to this field.Truncate property values at126 characters.

ENDLIB Marker only. Write marker.

Table 17-3. IC Station Objects

IC Station objects Read GDSII Write GDSII

Cell Instance Translate GDSII SREFelements into IC Stationcell instances.

Write a GDSII SREFelement.

Cell Translate GDSII structuresinto IC Station cells oftype BLOCK.

Write a GDSII structure.

Table 17-2. GDSII Records [continued]

GDSII Stream FileFormat

Read GDSII Write GDSII

IC Station User’s Manual, v8.9_9 17-21

Page 482: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

Via Object Does not have a method forrecognizing via objects.

Write as simple GDSIIBOUNDARY elements.

Via Instance Does not have a method forrecognizing via instances.

Write a GDSII SREFelement.

Array Translate GDSII AREFs intoIC Station arrays.

Write a GDSII AREFelement.

Shape Translate GDSIIBOUNDARYs into ICStation shapes.

Write a GDSIIBOUNDARY element.

Path Translate GDSII PATHs intoIC Station path objects.

Further Information:17-27

Write a GDSII PATHelement.

Further Information:17-27

Text Translate GDSII TEXTelements into IC Stationtext objects.

Write a GDSII TEXTelement.

Device Generator Does not create IC Stationdevice generators.

Write a GDSIIBOUNDARY, PATH, orTEXT element.

Property Translate GDSIIPROPATTR andPROPVALUE recordsinto IC Station properties.The property name isauto-generated in the formof“GDSII_PROPERTY_#”,where number comes fromthe PROPATTR record.The property value comesfrom the PROPVALUErecord.

Ignore IC Station propertynames and replace with anauto-generated numberwritten to the PROPATTRrecord. Write IC Stationproperty values asPROPVALUE records andtruncate to 126 characters.

See$set_gds_properties(@gdsii_properties) tochange the defaultbehavior.

PG Text Does not create IC StationPG Text objects.

Handle as an IC Stationdevice generator.

Table 17-3. IC Station Objects [continued]

IC Station objects Read GDSII Write GDSII

IC Station User’s Manual, v8.9_917-22

Page 483: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

IC

3.hasorts

the

r

The following sections give more detailed information of GDSII records and Station objects.

Layer/Datatype

Standard GDSII format data has a limited layer range, numbered from 0 to 6GDSII data also has a limited datatype range of 0 to 63. In contrast, IC Stationa layer range from 0 to 4095, but has no datatype information. IC Station suppa GDSII layer range, numbered from 0 to 4095.

Layers not to be translated through the use of the$set_gds_layerfilter()commandwill be ignored regardless of whether or not they have been mapped throughuse of the$set_gds_layermap() command.

• Read GDSII - Unless you specify a layer map, you will lose the GDSIIdatatype information when reading stream data and converting it to ICStation format. You can combine the datatype information with the layeinformation and map each GDSII (layer, datatype) pair to a unique ICStation layer. For more information about layer mapping, refer to thediscussions of the$set_gds_layermap() command.

Special Physical Objects Property Text Blockage Floorplan Shape Floorplan Row

None are created. None are written.

Special Logical Objects Port Pin Net Overflow

None are created. None are written.

Special Layers

ICX_ANCHOR_LAYER (4108) TRANSLATE_TEXT_ LAYER (4110)

No elements placed onlayers above 4095.

Elements on this layer areignored.

Elements on this layer areignored.

No elements written fromlayers above 4095.

Elements on this layer areignored.

Elements on this layer areignored.

Table 17-3. IC Station Objects [continued]

IC Station objects Read GDSII Write GDSII

IC Station User’s Manual, v8.9_9 17-23

Page 484: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

eeater

eerairs

)e

ad

000 the

Read GDSII reads the GDSII data and places it on the layer found in thsource unless the layer found is greater than 4095. Objects on layers grthan 4095 are ignored and no warning is issued.

In the absence of specific layer mapping, Read GDSII ignores datatypinformation, folding data with different layer-datatype pairs onto the layfound for the data. You can direct Read GDSII to map layer-datatype pto unique IC Station layers with the$set_gds_layermap() command.

• Write GDSII - Layer mapping is controlled by the $set_gds_layermap(command. If you don’t use this command, Write GDSII outputs the samlayer as IC Station and the datatype is set to zero. Use the$set_ gds_layerfilter() option to limit output layers to GDSII.

Process Definition

• Read GDSII - If a pathname to a Process file is not specified on the ReGDSII dialog box or by the$set_gds_process() command, each cell ReadGDSII converts is associated with the default IC Station Process. Thisdefault Process assigns values to the Process Variables:

$mfg_grid = 0.001$port_height = 2.0$precision = 1000$process_name = "Default"$unit_length = 1e-06$user_grid = 1.0

The GDSII stream file contains two fields that contain database unitinformation:

o Database unit size expressed in user units.

o Database unit size expressed in meters.

For example, if your library was created with user unit=1 micron and 1database units per user unit, then the first number would be 0.001 andsecond number would be 1e-09.

IC Station User’s Manual, v8.9_917-24

Page 485: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

,tion thescaleo

o

unit:

ser

to

e

sed

iththe

nds

n

If the incoming GDSII units do not match the IC Station database unitsthen the coordinates and widths are scaled. After the Read GDSII operais performed, IC Station displays a note stating the units do not match,units of the GDSII database and IC Station database, and the resultingfactor. Further, if the scale factor is not a positive integer, a warning alsdisplays stating some rounding may occur.

When defining an IC Station process with matching database units, twprocess variables need to be defined: $precision and $unit_length.

o $precision: A positive integer that specifies the number of databaseunits per user unit. In the above example, this is the “One database0.001 user units” field. Expressed as an integer, this is 1000.

$precision := 1000

o $unit_length: A positive real number that defines the length of the uunit in meters. In the above example, this is the “One user unit:1.01e-06 meters” field.

$unit_length := 1.01E-06

• Write GDSII - When Write GDSII translates from IC Station database GDSII stream format, it reads the $unit_length and $precision ProcessVariable values and uses them to write the GDSII stream header. WritGDSII performs the translation as follows:

o The Process associated with the top cell specified for translation is uto determine $precision and $unit_length.

o If Write GDSII is translating a cell library, the Process associated wthe first cell encountered in the library is used. (This results becausesearch scheme used by the Unix opendir and readdir commands fithe archived directory first.)

Text Properties

The$set_gds_textheightmap() command allows the user to set the text height iuser units for a specified layer.

IC Station User’s Manual, v8.9_9 17-25

Page 486: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

sed

ingtringSII, _ )

xtext

xts.

The orientation for text in IC Station is either 0 or 90 degrees; any stream baangle is preserved for output back to stream.

GDSII text records that contain strings with non-printable characters (forexample, carriage return) will be read into IC Station with underscores replacnon-printable characters. A warning message will be issued along with the sthat contains the underscore substitution. Upon output from IC Station to GDany non-printable character found in text will be replaced by an underscore (character.

Read GDSII affects text justification based on the current text justification, teangle, and rotation of the cell where text is placed. There are nine possible tjustifications and orientations:

• Horizontal

o Left

o Center

o Right

• Vertical

o Top

o Middle

o Bottom

• Text orientation is either horizontal or vertical. Text is horizontal if the teangle is < 45.0 and >= 315.0 degrees, or >= 135.0 and < 225.0 degree

• Cell placement rotation can be 0, 90, 180, or 270 degrees.

• Cells can also be flipped in the X or Y axis.

IC Station User’s Manual, v8.9_917-26

Page 487: Icstation User Manual @Vins

Importing and Exporting Data Reading and Writing GDSII Data

ed.

that do

SII

SII

eis

, no

t the

Devices

Write GDSII translates a device by changing the internal objects to GDSIIBOUNDARY, TEXT, and PATH elements. Device properties are not translat

Missing References

Read GDSII creates dummy cells in the target directory for referenced cells are not defined in the GDSII stream file or target directory. The dummy cellsnot contain any data.

Paths

• Read GDSII - IC Station supports square and extended paths with GDpathtypes 0, 2, and 4. Round-ended pathtypes (pathtype 1) areautomatically squared (changed to pathtype 0). Pathtype 4 variableextensions are adjusted during the translation to pathtype 2. Read GDreads and writes zero-width paths.

Negative values for the GDSII width field can occur on text and paths.Negative width values are not supported by IC Station. When a negativpath width is encountered in the GDSII stream file, the absolute value used, and the user is given a warning in the log file.

• Write GDSII - Write GDSII converts all IC Station paths including zerowidth paths.

Write GDSII translates IC Station paths that have a path style CENTERpadding, and both ends are the same (NORMAL or EXTENDED) as aGDSII PATH. All other IC Station paths are written as GDSIIBOUNDARY elements.

Cellname Handling

• Name case translation - By default, Read GDSII and Write GDSII do nochange the case of cell names during translation. If you wish to changecase, use the$set_gds_cellnamecase() command.

IC Station User’s Manual, v8.9_9 17-27

Page 488: Icstation User Manual @Vins

Reading and Writing GDSII Data Importing and Exporting Data

es

it

an

).

om

t

• Cell name translation to GDSII - Cell names in IC Station may need to bchanged during translation for various reasons. Cell name modificationcan occur for the following reasons:

o GDSII has a 32-character limit for cell names. IC Station has no limon cell names’ character length.

o GDSII requires all cell names to be unique. IC Station cell names coccur in multiple directories with the same leaf name.

o GDSII cell name characters are limited to:

•A-Z, a-z, 0-9, underscore (_), question mark (?), and dollar sign ($

Two distinct steps exist for translating an IC Station cell name into itscorresponding GDSII structure name:

1. Create a valid GDSII structure name.

• Extract the leaf portion of the IC Station cell name from the fullpathname.

• Truncate the cell name to 32 characters.

• Apply the user specified cell name case handling from$set_gds_cellnamecase().

• Replace invalid GDSII characters with underscores.

Note

The$set_gds_cellnamelength() function allows you to overridethe 32-character limit during GDSII translations. It only applies tWrite GDSII. Using this translation option, the standard maximulength can be a number in the range of 20-1024.

Setting the cell name length to greater than 32 characters is nostandard GDSII. The GDSII stream file created by Write GDSIIwith a cell name length greater than 32 characters should beconsidered an invalid GDSII stream file.

IC Station User’s Manual, v8.9_917-28

Page 489: Icstation User Manual @Vins

Importing and Exporting Data Options File

if

ayreeds

ions

Thisbe

zed

2. Verify the GDSII structure name is unique.

If you encounter a duplicate structure name:

• The structure name is prefixed with the string “U0001_” (or u0001_$set_gds_cellnamecase(@lower) is specified).

The unique number is incremented each time a duplicate structurename is encountered.

• Truncate the structure name to 32 characters.

• Verify that the structure name is unique.

The$set_gds_cellnamemap() command generates a file that contains alisting of modified cell names.

Polygon and Path Segmentation

When translating to GDSII stream, IC Station polygon and path information mexceed the boundary data coordinate limits of GDSII. Each GDSII polygon opath cannot exceed 200 pairs of data coordinates. When IC Station data excthe GDSII limits, Write GDSII segments the data and a warning message istranscripted that contains information about the segmented polygon.

Options FileAn options file allows customization of the conversion process. Use of an optfile can help avoid or resolve conflicts between IC Station and GDSII.

Option commands can be set in an ASCII file to be loaded before translation.ASCII file loads by performing a dofile command. Translation options can alsoset through the use of the dialog boxes in IC Station.

The options available for use with Read GDSII and Write GDSII are summariin Table 17-1 on page 17-10. Any options not listed in the ASCII file will be set tothe default values.

IC Station User’s Manual, v8.9_9 17-29

Page 490: Icstation User Manual @Vins

Options File Importing and Exporting Data

nd

t

nd

If you are converting an ICLink options file for use with Read GDSII or WriteGDSII, Table17-4lists the ICLink options that are supported in Read GDSII aWrite GDSII.

The following shows an example of an ASCII options file:

//option dofile for reading GDSII$set_gds_layermap([\//map GDS (layer,datatype)pairs

[0,0,0],\//to IC Station layer[0,41,1005],\[0,44,1008],\]);

$set_gds_anglemode(@forty_five);//created cell mode//is 45 degrees

$set_gds_cellnamecase(@lower);//convert all cell names//to lower case

$set_gds_fixpolygons(@true);//translate self-intersecting//polygons

$set_gds_process(“$PROCESS4”);//process is defined in//location map file

$set_gds_textheightmap ([\//text layers (6,40,62,64)[6,4.0],[40,4.0],\//mapped to text height 4[62,4.0],[64,4.0] ]);

$set_gds_replace(@true);//replace cells that//already exist

$set_gds_cellnamemap(@all,”crossref.rpt”);//file created//showing how cell//names are mapped

$set_gds_skipunmapped(@true);//skip data on layers//not mapped

Converting an ICLink Options File

ICLink options files do not work with Read GDSII and Write GDSII; they musbe manually converted. Table17-4 shows the ICLink options that are supportedby Read GDSII and Write GDSII. Some options supported by Read GDSII aWrite GDSII do not have similar ICLink options:

$set_gds_lockcells() $set_gds_logfile()

$set_gds_transcript()

IC Station User’s Manual, v8.9_917-30

Page 491: Icstation User Manual @Vins

Importing and Exporting Data Options File

l

Table 17-4. Converting ICLink Options

ICLink option Read/Write GDSII option

angle_mode $set_gds_anglemode()

cell_list_file $write_gdsii() replaces this functionality byallowing the user to specify a vector of celnames.

cell_type_file None

cellname_case $set_gds_cellnamecase()

check_cell_edits None

device_as_cell None

externals None

gds_append None

gds_archive_lib None

gds_cell None

gds_cell_list None

gds_fix_poly $set_gds_fixpolygons()

gds_layer_map $set_gds_layermap()

gds_layer_order None

gds_library $set_gds_library()

gds_match None

gds_reference None

gds_report_dts None

gds_stubs None

gds_surface_text None

gds_text_height $set_gds_textheightmap()

gds_textall None

IC Station User’s Manual, v8.9_9 17-31

Page 492: Icstation User Manual @Vins

Options File Importing and Exporting Data

gds_textinfo None

instance_name_layer None

instance_name_pos None

instance_name_type None

instance_names None

layer_filter $set_gds_layerfilter()

pg_flatten None

pgtext None

process $set_gds_process()

replace $set_gds_replace()

report_cell_crossref $set_gds_cellnamemap()

skip_asterisk $set_gds_nodes()

smash_path None

status Normal translation status information istranscripted like rest of IC Station.

top_cell_only None

translate_gds_anchor None

translate_node $set_gds_nodes()

translate_port_text None

translate_text None

Table 17-4. Converting ICLink Options [continued]

ICLink option Read/Write GDSII option

IC Station User’s Manual, v8.9_917-32

Page 493: Icstation User Manual @Vins

Importing and Exporting Data IC Station to Calibre Translation

sing

IC Station to Calibre TranslationYou can translate your IC Station database into Calibre intermediate format uthe $write_calibre() function. For more detailed information, see section “ICStation to Calibre Translation” or the$write_calibre() function in theIC StationReference Manual.

IC Station User’s Manual, v8.9_9 17-33

Page 494: Icstation User Manual @Vins

IC Station to Calibre Translation Importing and Exporting Data

IC Station User’s Manual, v8.9_917-34

Page 495: Icstation User Manual @Vins

a.ownbout

canll

canhter

the

tch

Chapter 18Compaction Operations

Compaction is the process of minimizing the size of a completed layout.ICcompact is the IC Station automated layout tool that lets you perform bothautomatic and interactive minimization of the area of your completed layout.

ICcompact works on cell-based, device-based, and all-angle polygon baseddesigns, whether they were created in a full custom or automated layoutenvironment. You can compact either the entire layout or just a specified areYou can use ICcompact to push the cells and routing either left, right, up, or dwhile compacting the design. You can compact the cell about a mark point, athe center of a cell or a user-defined area, or towards the extent of a cell or auser-defined area. The interactive ICcompact slide route tool optimizes pathlocation and length.

ICcompact recognizes corner cells and maintains their relative position, andreverse directions of a path to make the design smaller. ICcompact moves akinds of polygons; it is not limited to rectangles. If you're working with GalliumArsenide, ICcompact can insert support posts in routing paths.

In leaf cell compaction, ICcompact can take advantage of diffusion sharing. Itmerge some nets with the same net diffusion area of a transistor, allowing tigcompaction area. ICcompact slides same-net polygons along each other’sboundaries in order to reduce area, while still maintaining connectivity.

After you make layout edits or changes to the design rules, you can also useCompactor to adjust the spacing of your layout.

You can operate ICcompact within either the IC Station environment or in bamode using the apr_batch routine.

IC Station User’s Manual, v8.9_9 18-1

Page 496: Icstation User Manual @Vins

The Compact Function Compaction Operations

ion.

:

th

You supply the following primary parameters to the Compactor:

• Direction. The direction that design objects are pushed during compactThe direction can be up, down, left, or right.

• Reference. The location that the layout is compacted toward. You candirect the compactor to compact toward any of the following:

o Mark. A point that you have specified in the active context.

o Center. The middle of the active context or of a named panel.

o Extent. The edge of the layout or of a named panel.

• Area. A rectangular area in which compaction is to occur.

For more information about the functions licensed by ICcompact, refer to theICStation Reference Manual.

The Compact FunctionYou use the$compact() function to minimize the area of a placed and routeddesign. The Compactor can perform the following operations on your design

• Compacts the center or a user-defined axis or point.

• Compacts entire design or user defined area.

• Compacts selected objects only.

• Compacts either in the left, right, up or down directions.

• Compacts to pins and blockages or to instance extents.

• Compacts in gridless or gridded modes.

• Optimizes the routing by reducing tromboning, which minimizes the palength.

IC Station User’s Manual, v8.9_918-2

Page 497: Icstation User Manual @Vins

Compaction Operations The Compact Function

yout:g

• Optimizes by minimizing resistive layers based on capacitance.

• Compacts cells and blocks that you have not defined as fixed objects.

• Compacts design rule correct based on the rules used for automated lalayer-to-layer spacing, via-to-via spacing, layer-to-via spacing, and I-ringap spacing.

• Fixes existing Design Rule Check (DRC) violations, if possible.

• Attaches pins to paths in a way that minimizes your design.

• Offsets vias to minimize your design.

• Compacts with optional automatic jog insertion.

• Merges cells that can share diffusion on layers that are defined by the$closely_tied Process Variable. For information on the$closely_tiedProcess Variable, refer to theIC Station Reference Manual.

• Reverses paths to reduce the area used by routing, as shown in Figure18-1.

Figure 18-1. Compactor Allows Path Reversal

After Compact LeftBefore Compaction Left

IC Station User’s Manual, v8.9_9 18-3

Page 498: Icstation User Manual @Vins

Compaction Parameters Compaction Operations

ICct

the

an

the

ncify

Compaction ParametersYou can compact in either IC Station or in batch mode. To run ICcompact inStation, use the$compact() function to set the parameters that control ICcompafor a single execution or for the entire session. You are not required to set upcompaction parameters prior to invoking ICcompact. The following describesparameters used in compaction in IC Station:

• Direction. Specifies either an up, down, left, or right direction that thedesign objects will be pushed during compaction.

• Reference.Specifies where the layout will be compacted towards. You cdirect ICcompact to compact towards any of the following:

o Around a point you have marked in the active context

o Toward the center of the active context cell or toward the center ofoptional area.

o Toward the extent of the cell boundary or toward the extent of theoptional area.

• Area. Specifies an area in which compaction will occur. If you specify aarea, only the objects within the area are compacted. If you do not spean area, IC Station compacts the entire active context cell.

• Selected Objects. Specifies which objects are compacted. Objects notselected are fixed in place during compaction.

IC Station User’s Manual, v8.9_918-4

Page 499: Icstation User Manual @Vins

Compaction Operations Compaction Parameters

is

t

tant

• Offset Vias. Specifies whether you will allow ICcompact to offset viasfrom a path during compaction or to recenter vias after compaction. Thsituation occurs when a placed via has a larger width than the path it isplaced on. You can specify the following options:

o No. The via is fixed in its present location.

o Center. The via will be centered on the path.

o Yes. The via is offset in the direction and variable distance that mosminimizes the used area for a given direction of compaction.

Figure18-2shows a pair of nearby vias before compaction and the resulreduction in used area after ICcompact offsets the vias.

Figure 18-2. Compactor Uses Offset Vias To Reduce Used Area

Before ViasAre Offset

After ViasAre Offset

Via

Path

IC Station User’s Manual, v8.9_9 18-5

Page 500: Icstation User Manual @Vins

Compaction Parameters Compaction Operations

t

ct

ted

Figure18-3 shows the possible locations of a via on a path given thedifferent Vias to Wires options.

Figure 18-3. Vias to Wires Options

• Wires Crossing Boundary. Specifies whether you will allow the paths thacross the compaction border of the named panel to move.

• External Cells. Specifies how ICcompact moves external cells. You selefrom one of the following:

o External cells are placed anywhere within the cell boundary.

o External cells are placed as evenly as possible along their associarow.

o External cells are not moved during compaction.

o External cells are moved as a group to maintain their relativeplacement.

CenterFixed(starting point)

Offset in direction andvariable distance thatmost minimizes the space

or

or

Via

Path

IC Station User’s Manual, v8.9_918-6

Page 501: Icstation User Manual @Vins

Compaction Operations Compaction Parameters

sed

rs

• External Rows.Specifies whether the corner area of external rows are uduring compaction of external cells, as shown in Figure18-4.

Figure 18-4. Compactor Uses or Keeps Corners

Figure18-5 shows the result of using the clear_corners and use_corneoptions for a design with multiple cells.

Figure 18-5. Clear or Use Corners of External Cells DuringCompaction

Compactor Keeps Cornersof External Rows Clear

Compactor Uses Cornersof External Rows

Clear_corners Use_corners

IC Station User’s Manual, v8.9_9 18-7

Page 502: Icstation User Manual @Vins

Compaction Parameters Compaction Operations

ringnce

ts on

ts on cell

hs

ing

if

dtules

at

fterisesing

• Compact To.Specifies the objects that the cells are pushed towards ducompaction. You can select either the pins and blockages, or the instaboundary option.

o Pins and Blockages. If you specify the pins and blockages option,ICcompact uses the pin and blockages of the cells as the constraincompaction.

o Channel Areas Only. If you specify the channel areas only option,ICcompact uses the outer boundaries of instances as the constrainthe compaction. ICcompact also leaves any paths that lie across abefore compaction at their current positions.

• Jog Insertion. Specifies whether ICcompact will insert bends in the patduring compaction in order to minimize the layout. If ICcompact insertsunnecessary jogs during compaction, the path minimization processremoves them. You can specify that paths are not to be jogged by addthe Do_not_jog property to the path.

• Jog Power. Specifies whether power and ground paths can be joggedduring compaction. Jogging of power is only performed by ICcompact you have turned on the jog insertion switch.

• Check Same Net Rules. Specifies whether “same net” rules are enforceduring compaction. If two paths correspond to the same net, ICcompaccompacts to the layer-to-layer spacing design rules as defined in the Rfile. If you have not enforced the same net spacing rules, ICcompact isallowed to violate the layer-to-layer spacing rules between two paths thare connected to the same net.

• Auto Add Blkg. Specifies whether a blockage layer should be added acompaction to cover the cell extent in the active context. This addition useful if you are going to use this cell in a higher level of hierarchy. Thblockage layer created by ICcompact also covers all external pins, cauthe ICblocks router to ignore them.

IC Station User’s Manual, v8.9_918-8

Page 503: Icstation User Manual @Vins

Compaction Operations Compaction Parameters

n.

• Wires to Pins. Specifies how ICcompact will affix paths duringcompaction. This specification is useful if pins are wider than the wirewidth that is connected to them. You can specify that the paths eitherremain fixed, centered, or slide on the connecting pin during compactio

o Fixed. The path is fixed in its present location.

o Center. The path is centered on the pin.

o Offset. The path is offset in the direction and variable distance thatminimizes the used area for a given direction of compaction.

Figure18-6 shows the possible locations of a path on a pin given thedifferent wires to pins options.

Figure 18-6. Wires to Pins

CenterFixed(starting point)

Offset in direction andvariable distance thatmost minimizes the space.

or

or

Pin

Path

IC Station User’s Manual, v8.9_9 18-9

Page 504: Icstation User Manual @Vins

Compaction Parameters Compaction Operations

of

• Path Minimization. Specifies the basis for optimization of path length.You can select from the following options:

o No Minimization. Does not perform path minimization.

o Reduce Tromboning.Pulls paths that were extended in the directioncompaction back to their optimum location. Figure18-7 showstrombone reduction after compacting down.

Figure 18-7. Compactor Reduces Tromboning

Compactor reducestromboning byminimizing extrapath length.

Tromboning occurs when thecompactor pulls the path asas far as possible in thedirection of compaction.

After Compaction Down Trombone ReductionPost Compaction

Cell1 Cell2

Metal1

Poly

Via

Cell1 Cell2

IC Station User’s Manual, v8.9_918-10

Page 505: Icstation User Manual @Vins

Compaction Operations Compaction Parameters

in

o Minimize Resistive Layers. Minimizes the wire length on highlyresistive layers. The optimization is based on capacitance and canlengthen some wires in order to minimize others, as shown inFigure18-8. Optimization, based on capacitance, may lengthen wiresorder to minimize the wire length on highly resistive layers such aspoly.

Figure 18-8. Compactor Minimizes Resistive Layers

Layer 1

Layer 2Layer 3

Layer 3Layer 2

Layer 1

Layer 1

Layer 2Layer 3

Compaction DownMinimize Layer 1

Compaction DownNo Layer Minimization

Compaction DownMinimize Layer 3

IC Station User’s Manual, v8.9_9 18-11

Page 506: Icstation User Manual @Vins

Minimize Vias Compaction Operations

tivest

forisast is

d

at

n

f

area,

Costs are user-defined by routing level. If you select the minimize resislayers option, you specify both the routing levels and corresponding cofactors. The higher the cost factor, the more the routing level will beminimized. If you specify a cost of 1 for routing level-1 and a cost of 2 routing level-2, then routing level-2 is twice as expensive as level-1. Thcost is by individual path count only, not by length. Thus, if an instance h3 level-1 wires and 2 level-2 wires connecting to it, the level-1 total cos3 and the level-2 cost is 4. ICcompact minimizes level-2 paths at theexpense of lengthening level-1 paths, since the level-2 cost outweighslevel-1.

• Gridded and Gridless Compacting. You can direct ICcompact to movepaths using one of the two following modes:

o Gridded. ICcompact moves paths on only user grid points as defineby the$user_grid Process Variable.

o Gridless. ICcompact moves paths on manufacturing grid points asdefined by the$mfg_grid Process Variable.

• Keep Options.Specifies whether you want to keep the option setting thyou made in the Compact dialog window for the next time you want tocompact.

For more information on the parameter settings and the dynamics involved icompaction, refer to the$compact() function.

Minimize ViasThe $minimize_vias() function allows you to change the layer assignments orouting segments to eliminate unneeded vias. You can minimize the resistiveinterconnect (poly routing) by converting the poly to metal; this removes theunnecessary vias and poly routes. You can either minimize vias on a selectedselected nets, or in the entire active context.

IC Station User’s Manual, v8.9_918-12

Page 507: Icstation User Manual @Vins

Compaction Operations Minimize Levels

thsvel.

ve

heg,

u can thehtedthsting

Minimize LevelsThe$minimize_levels()function allows you to add vias to a net and change pato a new routing level to minimize the number of paths on a certain routing leYou can minimize levels for selected nets, a selected area, or the entire acticontext.

Slide RouteThe$slide_route()function is an interactive routing tool you can use to change tlocation of paths, while maintaining connectivity. When you invoke slide routina highlighted boxed area appears that displays the range of legal locations yomove the selected path. If you attempt to move the path to a location outsideboxed area, the path will be snapped to the nearest position within the highligbox. After you have released the selected path, ICcompact moves joining paand corresponding vias so they properly attach to the moved path. Slide roureduces the number of required routing tracks so that ICcompact can furtherminimize the area of the design, as shown in Figure18-9.

Figure 18-9. Slide Routing Reduces The Number of Routing Tracks

Via

Metal1

Slide routearea

After Slide Routing

Poly

Slide routearea

Before Slide Routing

IC Station User’s Manual, v8.9_9 18-13

Page 508: Icstation User Manual @Vins

Insert Posts Compaction Operations

ss.ts in) a

ceedreule

own

Insert PostsYou use posts in a design that will be fabricated in a Gallium Arsenide procePosts are comprised of many vias packed close together to gusset weak spolong paths, intersecting paths, and angled paths. You use the $insert_posts(function to add posts after the design is routed and compacted. Compactingdesign that has had posts added will cause the posts to move to undesirablelocations.

On long paths, ICcompact inserts posts at spacing increments that never exthe specified maximum spacing increment and at locations that do not interfewith objects on other levels of the design. ICcompact observes the Design RCheck (DRC) requirements in placement of the posts. A post along a path iscomprised of many overlapping vias placed across the width of the path as shin Figure18-10.

Figure 18-10. Posts Inserted Along a Long Path

Post(overlapping vias)

Distance < Max. Spacing increment

metal1

IC Station User’s Manual, v8.9_918-14

Page 509: Icstation User Manual @Vins

Compaction Operations Insert Posts

n thea

pathrea

ICcompact inserts a post on every path intersection, where both paths are osame routing level. The vias are packed into the intersection and into an arearound the intersection that is equal to 1/3 of the path width, as shown inFigure18-11.

Figure 18-11. Post Inserted at a Path Intersection

ICcompact inserts posts at the corner of every angled path, where the angledis on a single routing level. The vias are packed into the corner and into an aaround the corner that is equal to 1/3 of the path width, as shown in Figure18-12.

Figure 18-12. Post Inserted at an Angled Path's Corner

Post(overlapping vias)

metal1metal1

met

al1

metal1

met

al1 Single via

to anotherlayer

Post(overlapping vias)

IC Station User’s Manual, v8.9_9 18-15

Page 510: Icstation User Manual @Vins

Insert Posts Compaction Operations

IC Station User’s Manual, v8.9_918-16

Page 511: Icstation User Manual @Vins

fure

n

Chapter 19Printing/Plotting in IC Station

Printing (plotting) in IC Station is the process of getting all or part (a panel) oyour design through a print filter to the hardcopy output device as shown in Fig19-1. Print/plot may be available in some releases. Make sure you check theICStation Release Notes for the current status of print/plot. You can always printwith the Hotplot interface if print/plot is not available. For more information othe Hotplot interface, see the section, “Printing with the IC Station HotPlotInterface.”

IC Station User’s Manual, v8.9_9 19-1

Page 512: Icstation User Manual @Vins

Printing Versus Exporting Printing/Plotting in IC Station

terhicters

Figure 19-1. Printing Process

ThePlot Filter User’s Manual describes general printing and plotting from withMentor Graphics applications. The following sections contain informationspecific to printing and plotting from within IC Station.

Printing Versus ExportingMost Mentor Graphics filters can either format a file to send directly to a prinor plotter, or export to an output file. This output file can be included as a grapin another application such as FrameMaker, or plotted at another time. All filthat format for plotting can also export data to a file.

FILTER

IC Station User’s Manual, v8.9_919-2

Page 513: Icstation User Manual @Vins

Printing/Plotting in IC Station Panels

he

on

nt

F).

hensitive.

matity intheace.

Figure 19-2. Difference Between Plotting and Exporting

Filters can be configured to be invoked directly by the application providing tdata or by the UNIX print environment. For a detailed description of all thecomponents involved in the plotting and exporting process, refer to the secti“Map of the Print Environment” in thePlotFilter User's Manual.

You send data from IC Station to a print or plot device using Print Cell or PriText File commands. Mentor Graphics provides filters that format data forplotting in the following formats: CalComp C907, CGM, HP-GL, HP-GL/2,PostScript, Versatec Blocked Raster (VBR), and Versatec Random File (VR

PanelsA panel is a designated region of a design. You can create a named panel, tprint that panel, or you can print the entire design. Panel names are case-sen

Print FilterA print filter is software that translates graphical and/or textual data into a forthat the printer can understand. It processes print jobs in the order and priorwhich they were spooled. The output from a print filter can be sent directly toprinter or written to a file, which can be sent to a printer at another time or pl

MGC Application

Output file

Exportfilter

Plotfilter

Plotter

IC Station User’s Manual, v8.9_9 19-3

Page 514: Icstation User Manual @Vins

Print/Plot Setup Requirements Printing/Plotting in IC Station

ion

ll

rom

e.

99.

The following print filters support IC Station designs:

• Hewlett-Packard HP-GL/2 Print Filter

• Hewlett-Packard HP-GL Print Filter

• CalComp C907 Print Filter

• Versatec VCR and VPR Print Filters

• PostScript

• HotPlot

Print/Plot Setup RequirementsBefore invoking ICgraph and printing cells or files, you must complete thefollowing:

• Have your system administrator set up the Plot/Export filters for yourprinters/plotters. For information on Plot/Export filters, refer to the sect“Fundamentals.” in thePlot/Export Filter User’s and Reference Manual.

• Specify the default printer or plotter with the PRINTER or PLOTTER sheenvironment variable.

Print Cell/Setup Print OptionsThe Print Cell command (from the File menu) and the Setup Print command (fthe Setup menu) let you specify the following options when printing cells:

• Priority . The priority of the print job in relation to other jobs in the queu

• Copies. The number of copies to print. The valid range is between 1 and

• Panel. The name of a pre-defined panel.

IC Station User’s Manual, v8.9_919-4

Page 515: Icstation User Manual @Vins

Printing/Plotting in IC Station Print Cell/Setup Print Options

o

d at

tally

y

cale

ges-2 is

• Grid . The spacing between grid markings in design coordinates.

• Layers. The design layers to print, which can be a combination of:

o A single layer by number, or a single layer by name.

o A range of layers using the form:n-m.

o A pre-defined or user-defined layer set.

• Levels of Hierarchy. The number of levels down the hierarchy to print. Tplot only the top level, use 0.

• Peeked Cells Only. You can choose whether to print all cells at thespecified levels of hierarchy, or only those cells that are currently peekethe specified levels of hierarchy. This option controls whether a cell isexported as flat or hierarchical.

• Array Rendering. Choose how to print your arrays:

o Standard: Prints all elements of each array.

o Borders: Prints only the border elements of each array.

o Corners: Prints only the corner elements, and the elements horizonand vertically adjacent to each corner of each array.

o Verify: Prints only the border elements, and the elements diagonalladjacent to each corner element of each array.

• Pages. The number of pages to use for the print output. If this option isspecified, the scale will be calculated automatically.

• Scale. The scale for the output. Initially set to -1. Positive and negativenumbers scale the output differently. A scale of 0 specifies either true sor one page, whichever is smaller.

A negative integer specifies the best fit orientation on the number of pagiven by the absolute value of the specified scale. For example, scale =best fit on 2 pages.

IC Station User’s Manual, v8.9_9 19-5

Page 516: Icstation User Manual @Vins

Print Cell/Setup Print Options Printing/Plotting in IC Station

the

ver

r

is

s not

rt.

n is

on

A positive integer scales the real size of the design by that number. Useone of the following formulas to calculate the scale:

scale = output_inches / (microns * 3.937E-5)scale = output_cm / (microns * 1E-4)

where:

output_inchesnumber of inches desired at the outputoutput_cmnumber of centimeters desired at the outputmicronsnumber of microns in the design

• Printer Name. The name of the printer. This is usually the printer namethat you specified with the PRINTER shell environment variable. A sermust be online for the printer that you specify.

• Job Config File. A label string that specifies the pathname of theconfiguration file to be used for the printer instead of the default file. Fomore information, refer to theManaging Mentor Graphics SoftwareManual.

• Orientation . The rotation of the print job, which can be one of bestfit,landscape, or portrait. Also controls orientation for exported graphics.

• Notification . You can choose whether or not to be notified when the jobfinished.

• Objects (cull). The minimum-size object to print. This value is specified aa number of pixels on the printer. Any objects smaller than this size doappear on the output.

• Paper Width. The width of the printer paper. This option is used only foautomatic calculation of the best-fit scale; it has no effect on the outpu

• Paper Length. The length of the printer paper. Do not specify this optiowhen rolled paper that has no defined length is being used. This optionused only for automatic calculation of the best-fit scale; it has no effectthe output.

IC Station User’s Manual, v8.9_919-6

Page 517: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing Procedures

the

althe

• Units. The units for the width and length options, which can be inches,centimeters, or meters.

Printing Procedures

Printing ASCII Files

The Print Text File command sends an existing text file to the printer. To printtext file, perform the following tasks:

1. Type the Print Text File command in the popup command line.

The PRI TE F prompt bar is displayed.

2. Type the filename that you want to print.

3. Verify the printer name.

The printer specified in your PRINTER environment variable is used bydefault. You must have a print filter for the specified printer. For moreinformation on print filters, refer to the section “Print Filter.”

4. Execute the PRI TE F prompt bar.

For more information on printing text files, refer to the Print Interface ReferenceManual.

Print an Entire Cell

1. In ICgraph, choose the following menu item:

File > Print > Print Cell...

2. Specify the options that you want to change from the defaults. Additionoptions can be specified with the Setup Print button. For information onprinting options, refer to the section “Print Cell/Setup Print Options.”

IC Station User’s Manual, v8.9_9 19-7

Page 518: Icstation User Manual @Vins

Printing Procedures Printing/Plotting in IC Station

gn to

l

ject

3. Execute the Setup Print and Print Cell dialog boxes to submit the desithe print server.

Creating a Panel within a Cell

1. Choose theObjects > Add > Panel: menu item or execute the Add Panecommand.

The Add Panel dialog box is displayed.

2. Enter the name of a panel in the prompt bar.

3. Press the Tab key to go to the next field in the prompt bar.

4. Use the Select button to define a rectangular region in the cell.

Printing a Panel within a Cell

To print a panel, perform the following steps:

1. Display the Print Cell dialog box.

2. Fill in the panel name that you previously defined.

3. Execute the Print Cell dialog box.

Panels can also be specified when using HotPlot. For more information onHotPlot, refer to the section “Printing with the IC Station HotPlot Interface.”

Exporting Graphics

You can also export data from IC Station to a file for inclusion as a graphic obor for plotting at a later time.

ADD PAN Panel Name OK CancelRectangle Options...

IC Station User’s Manual, v8.9_919-8

Page 519: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing Procedures

s

portcript

,

Capturing Screen Images

Capturing an image from your screen to a file involves using Mentor GraphicExport Screenform (MGC > Export Screen) with the third-party screen exportsoftware of your choice. Figure19-3 illustrates this process. On theExportScreen dialog box, you supply the paths to a script that invokes the actual extool and the output path. Specify any screen export software you wish in the sor use the default example script,export_screen.sh.

Figure 19-3. The Export Screen Process

Change the default path to the script and output file by setting the AMPLEvariables,$export_screen_script and$export_screen_output_file. Furthercustomizing can be performed by redefining the AMPLE functions,$export_screen and$export_screen_form. For a description of these functionsrefer to the section “Export Screen AMPLE Functions” in thePlot/Export FilterReference Manual.

$export_screen_output_file$export_screen_script

Export Screen form

Screen Export tool(3rd party)

Output file

(MGC Application)

Screen image

IC Station User’s Manual, v8.9_9 19-9

Page 520: Icstation User Manual @Vins

Printing Procedures Printing/Plotting in IC Station

or

andbe

Exporting to a File

You export data from IC Station to a file for inclusion as a graphic object or fplotting at a later time using theFile > Export Graphics... menu item. MentorGraphics provides filters that export in the following formats: CGM, CalCompC907, FrameMaker MIF and Editable MIF, HP-GL, HP-GL/2, PostScript,Versatec Blocked Raster (VBR), and Versatec Random File (VRF). The MIFEMIF filters allow you to export a picture of your design data to a file that canimported and edited with FrameMaker, as shown in Figure 19-4. For moreinformation, refer to theFrameConnect User's Manual.

Figure 19-4. Selecting a Format for Exported Data

Export Graphic to a File

OK Format Options

Export Formats

Color

MIF (Maker Interchange Format) .mif

Cancel

CGM (Computer Graphics Metafile) .cgm

Monochrome

Info Help

EPS (Encapsulated PostScript) .epsEPSI (Encapsulated PostScript Interchange).epsiHP-GL (Hewlett Packard Graphic Language) .hpgl

File Suffix

Select Format

EMIF (Editable Maker Interchange Format) .emif

EMIF (Editable Maker Interchange Format)Selected Format

RING.emifPatname

ScalingRotate No Scale Scale

panel1Panel name

IC Station User’s Manual, v8.9_919-10

Page 521: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

onetedd or

ses

the

TheExport Graphic to a File dialog box provides a menu of export filters fromwhich you can choose the format of the output file. You can create more thanconfiguration using the same export filter. This list of Mentor Graphics exporformats is specified with your Mentor Graphics printers in a plain text file callthe Plot Export Table (PET). This table is read when the application is invokeeach time you runMGC > Userware > Load, providing the path$MGC_PLOT_OPTIONS/pet.

If IC Station cannot find the specified path,$MGC_PLOT_OPTIONS/pet, it uses adefault PET file at$MGC_HOME/pkgs/print_base/userware/En_na/pet.

Figure 19-5. Where Export Graphics Obtains its Menu Information

Each format also has unique options you can specify by selectingFormatOptions from theExport Graphics form, as shown in Figure 19-5.

Printing with the IC Station HotPlotInterface

The IC Station HotPlot interface renders design data into an IPF file and pasthat file, along with user-selected options, to HotPlot. HotPlot then creates aplotter-ready file which it passes to a plot spooler. The plot manager controlsformatting and spooling process. Figure19-6 shows the plot flow using the ICStation HotPlot interface.

Export Graphic to a File

Export Formats

MIF (Maker Interchange Format)

CGM (Computer Graphics Metafile)

EPS (Encapsulated PostScript) EPSI (Encapsulated PostScript Interchange)HP-GL (Hewlett Packard Graphic Language)

File S

EMIF (Editable Maker Interchange Format) $MGC_PLOT_OPTIONS/pet

IC Station User’s Manual, v8.9_9 19-11

Page 522: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

Figure 19-6. The HotPlot Flow

Create IPF

IC Station

HotPlotInterface

Create IPFFile Only?

PlotOr

ManagerFormatter?

Send Plotto Printer?

IC StationHotPlot

Interface

GenerateOutput File

Plot Spooler

No

Yes

PM

Formatter

Yes

No

Save IPF Fileand End Process

Queue Plotting byPriority or Time

Delay

Save OutputFile for Future

Spooling

IC Station User’s Manual, v8.9_919-12

Page 523: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

thees

Using the IC Station HotPlot Interface

In the following descriptions of the IC Station HotPlot Interface dialog boxes,parenthetical material following the field names are the corresponding switchused when running HotPlot from a command shell.

To use HotPlot in IC Station:

1. ChooseFile > Print > HotPlot...

A dialogue box will appear. (Figure19-7)

IC Station User’s Manual, v8.9_9 19-13

Page 524: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

Figure 19-7. HotPlot Dialog Box

2. Select the appropriate options as described below and clickOK .

• Plot Handling: Specifies the HotPlot operating mode.

IC Station User’s Manual, v8.9_919-14

Page 525: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

ity,

ot

r

se

is

isre

o Use Plot Manager: (plr) In Plot Manager mode, HotPlot allows usercontrol of the plot process. The user can specify time delay, job priorand means of notification upon completion.

Click on the “Set Plot Manager Options...” button to set up the PlotManager. For a description of the Plot Manger options, refer to “SetPlot Manager Options.”

o Use Formatter: (xxplot) The Formatter renders the plot data asspecified in theplotcap file and sends the data to the spooler. It alsooutputs the data to a file. This filename can be specified in the SetFormatter Options form; however, if no filename is specified, HotPlautomatically generates a name.

The formatter will run in the background, which means the formatteoutput will be written to the IC Station transcript intermingled withother transcript data. To kill a formatter running in the background,simply look for the process and kill it.

Click on the “Set Formatter Options...” button to set up the Formatter.For a description of the Formatter options, refer to “Set FormatterOptions.”

For more information on the plotcap file, see the chapter, “Reference tothe Plotter Configuration File” in theHotPlot User’s and ReferenceManual.

o Create IPF only: The HotPlot interface creates the IPF file, but doenot pass it to HotPlot. To use the file later, specify the IPF file as thinput file option when running HotPlot from a command shell.

• Plot Copies: (-C) Specifies the number of copies to plot. The valid range1-99.

• Compress Output: (-c | -nc) The output file generated by the Formattercompressed. If Send Plot to Printer is not selected, compressed files astored as <filename>.hpc.

IC Station User’s Manual, v8.9_9 19-15

Page 526: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

l,

e

s of this

Compression is available for the following formats: cpi, ccrf, ccrfil, hprtps, psras, and raster.

• Set Plot Attributes... Refer to “Set Plot Attributes” for a description of theplot attributes that can be set by HotPlot.

• Printer : (-P) Specifies the target plotter. This option overrides theenvironment variable PLOTTER.

• Select Printer...: (-P) Opens a dialog box with a list of plotters defined inthe default plotcap file. If you specify a plotcap file in the FormatterOptions dialog box, the scrollable printer will be unavailable.

• Setup File: (-S) Indicates the desired setup file. This option overrides thenvironment variable, SETUP, and the setup file specified inplotcap.

• Build : Opens a dialog box (Figure19-8) which allows you to create oroverwrite a setup file, which can derive the source of the attributes fromLayers, Session, or the Process. For more information on the attributeLayers, Session and Process, select the “Help” button at the bottom ofdialog box.

Figure 19-8. HotPlot Setup File Dialog Box

• GDSII File: Specify a GDSII file from which to plot directly. Use theOptions button to open the GDSII Options dialog box.

IC Station User’s Manual, v8.9_919-16

Page 527: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

ions

nece

ands

• Command File: (-cmdfile) Specifies the path of a file containing a list ofHotPlot command line arguments. The command file overrides the optselected in the HotPlot interface dialog boxes so it functions as apre-configured options file.

The commands in the command file must follow the same command lisyntax used on the plr or the formatter command line. The only differenis that blank lines may be used between commands or groups of commwithin the file.

• Layers: (-L) You can select to plot visible layers, all layers, or selectedlayers. Selecting Selected Layers opens a dialog box (Figure19-9) with alist of layers you can select for plotting.

• Select Layers...: Opens a dialog box (Figure19-9) for you to select layersto be plotted.

Figure 19-9. Select Layers Dialog Box

• Add Ruler: (-r | -nr) Indicates that a ruler should be drawn around theperimeter of the plot. The ruler is automatically scaled to the plot.

IC Station User’s Manual, v8.9_9 19-17

Page 528: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

lotethethet

uldl

aand

ill for

esh,

eIf

• Add Legend: (-l | -nl) Indicates that a legend should be plotted on each pstrip. All the legend information is based on the current plotcap file. Thlegend consists of a box for each plotted layer and a text tag showing layer number or the layer name. The lines of the box are plotted using line attributes for that layer; the box is filled using the fill pattern for thalayer; and text is plotted using the text attributes for that layer.

• Add Header First: (-hf) Plots the header at the top of each strip.

• Add Header Last: (-hl) Plots the header at the bottom of each strip.

• Magnification : (-M) Specifies the magnification factor for the plot. Mustbe a non-negative, real number. A value of 0 indicates the formatter shochoose the largest magnification possible without causing stripping. Alplotted data is magnified by the magnification factor.

• Compute Plot Size: Determines the size of the plot. If a plot consists ofsingle page then the width and length of the plot will be approximated displayed. THIS IS A ROUGH APPROXIMATION ONLY. If a plotconsists of multiple pages then the width and length values displayed wcorrespond to the maximum width and length values in the plotcap filethe currently selected printer. The result is placed in the #Pages field.

• #Pages: Shows the result of the Compute #Pages action button.

• Inches, Centimeters, and Meters: Specifies the units for the valuesentered in the Width and Length fields.

• Width : Specifies the width of a plot on a single page.

• Length: Specifies the length of a plot on a single page.

• Set Maximums...: Sets the width and length to the maximum width andlength in the plotcap file for the current printer. The units are set to inchbecause the maximum width and length are stored in inches. The widt

Note

If Add Header First and Add Header Last are both selected, thheader will be plotted at both the top and bottom of each strip. neither are selected, no header will be plotted.

IC Station User’s Manual, v8.9_919-18

Page 529: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

t a

t is1.

qualtatedwise

the

length, and units fields are automatically updated every time you selecprinter using the “Select Printers” scrollable list.

• Scale Plot by Width/Length: Calculates the magnification required to fit aplot sized with the Width and Length fields on a single page. The resulplaced in the Magnification field and the Current #Pages field is set to

• Rotation: (-R) Indicates the rotation for the plot. The valueauto causes theformatter to choose the rotation that generates the fewest strips. If an enumber of strips are produced, regardless of the rotation, the plot is roso the least amount of paper is used. Rotation occurs in a counter-clockdirection.

• Reflect: (-m | -nm) Reflects the plot about the y-axis of the plotter.

Set Plot Manager Options

The Set Plot Manager Options... button opens a dialog box, shown in Figure19-10. This allows you to set the plot manager options that are equivalent to options unique to running plr directly in HotPlot.

IC Station User’s Manual, v8.9_9 19-19

Page 530: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

he

at,dy

Figure 19-10. Plot Manager Dialog Box

o Time to Plot: (-a) Sets the time to start processing the job. Click on tSelect Time... button for a list of reserved words for specifyingprocessing start time. You can specify time using the 24-hour forman AM/PM format, or a reserved string. If the time specified has alreapassed, the job spools immediately.

o Select Time...: Opens a dialog box (Figure19-11) with a list ofreserved words for specifying processing start time.

IC Station User’s Manual, v8.9_919-20

Page 531: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

theuser.

at

ry.

r

Figure 19-11. Select Time to Plot Dialog Box

o Job Priority : (-p) Determines the sort order within the queue. Validpriorities are 1 to 256; however, only privileged users can specify apriority greater than 100.

o Notification Level: (-n) Specifies the conditions for HotPlot to notifythe user when the plot is complete. The available options are: notifyuser, notify the user in case there was an error, or never notify the

o Create symbolic link to IPF file: (-s | ns) If this is selected, it createssymbolic link to the input data file in the spooling directory. If it is noselected, it copies the input data file directly to the spooling directo

o Spooling Directory: (-wd) Specifies an alternate working directory foplot manager’s temporary and formatted files. It overrides the :sdoption of the plotcap file.

IC Station User’s Manual, v8.9_9 19-21

Page 532: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

or

y,

Set

lly

Set Formatter Options

The Set Formatter Options... button opens a dialog box (Figure19-12) allowingyou to set the formatter options which are equivalent to the options unique torunning xxplot directly in HotPlot.

Figure 19-12. Formatter Dialogue Box

o Plotcap File: (-pcap) Specifies the path to theplotcap file. This can beused to override the default location.

o Output File: (-out) Specifies an optional output path and file name fthe formatted job. The resulting file has an extension of-N, whereN isthe strip number represented in the file. If the file is compressed, .hpcisalso appended.

If you specify only the file name, the file is created in the workingdirectory. If you specify a pathname other than the working directorthe file is formatted in the working directory, then moved to thespecified path.

Enter an output file name and de-select Send Plot to Printer in the Plot Attributes form to have the formatter create a file that is notspooled to a plotter. If you wish to cause the formatter to automaticaplot the formatted file without deleting it, edit$PL_SCSDIR/ind/bin/hotplot_spool, setting the DELETE variable toFALSE.

IC Station User’s Manual, v8.9_919-22

Page 533: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

s.

he

Plot

e a

o Log File: (-log) Specifies the name of a log file to store job summarieUse with Verbose Transcript and Show Statistics in the Set PlotAttributes form to log the actions of the formatter and details of how tjob is processed into the specified file.

Set Plot Attributes

Following is a description of the plot attributes that can be set in the HotPlot Attributes dialog box, as shown in Figure19-13.

Figure 19-13. Plot Attributes Dialogue Box

o Panel: (-B) Specifies the name of a panel to plot. Click the “SelectPanel” button to select a panel from the defined panel list. To definpanel, refer to “Creating a Panel within a Cell.” “current_view” is a

IC Station User’s Manual, v8.9_9 19-23

Page 534: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

tion>

ethinell

noldest

200an

ntnfillh

e

system panel that defines the area of the current view of the IC Staedit window. If the “Panel” field is blank, all design data under “ViewAll” will be plotted.

o Peeked Cells Only: Plots only the data for peeked cells.

o Hierarchy Levels: Specifies the depth of hierarchy to plot. Data onlevels below the specified level does not get plotted.

o Cells to Omit: (-omitcell) Specifies a list of cells to be omitted from thplot. Cell names must be separated by a comma. Any cell nested wiexcluded cells will not be plotted unless they are referenced by a cthat has not been omitted.

o Minimum Text Size: (-tf) Allows you to specify an integer valuegreater than or equal to 0 that indicates the text filtering threshold idots. Only text strings with a height or width greater than the threshspecified will be plotted. For example, a threshold of 50 would requthat only text strings with a height or width greater than 50 dots beplotted. If the plotcap :nb option for the plotter being used is set to dots per inch, then any text strings with a height or width greater th1/4 inch would be plotted.

o Omit Text: (-t | -nt) Controls the visibility of the text contained in theinput data. It has no effect on text contained in the header or in thelegend.

o Page Overlap: (-o) Specifies the amount of overlap as a floating poinumber between strips when strip plotting occurs; this number is aapproximation. The overlap must be a multiple of 32 in order for thepatterns to line up between strips. Therefore, an overlap of one incactually produces an overlap of 192/200 (.96) inches on a 200 DPIplotter.

Note

Text in the plot legend may be filtered out if its size falls below thtext filtering threshold.

IC Station User’s Manual, v8.9_919-24

Page 535: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

ld

e

s

o #Pages: Shows the result of the Compute #Pages button.

o Pages to Plot: (-str) Allows you to plot a subset of the pages that wounormally be plotted. Type in either comma-separated strip numbers(1,3,5) or a range of strip numbers (1-4). There must be no spaces in thlist.

o Array Style: Specifies the plot handling of arrays.

• Standard: Prints all items of the array, as shown in Table19-1.

• Borders: Prints only the items that form the border of the array, ashown in Table19-2.

Table 19-1. Array Style: Standard

4x4 8x8

****************

****************************************************************

Table 19-2. Array Style: Borders

4x4 8x8

***** ** *****

********* ** ** ** ** ** *********

IC Station User’s Manual, v8.9_9 19-25

Page 536: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

rm

n

scanons

• Corners: Prints the three items in each of the four corners that fothe corners of the array, as shown in Table19-3.

• Verify : Prints the items that form the border plus the four items othe interior of each corner, as shown in Table19-4.

o Show Statistics: (-stat) Collects statistics for the current job and writethem to the transcript. If you are using the Use Formatter mode, youstore the statistics in the log file specified in the Set Formatter Optidialog box.

Table 19-3. Array Style: Corners

4x4 8x8

***** ** *****

** *** *

* *** **

Table 19-4. Array Style: Verify

4x4 8x8

****************

********** *** ** ** ** *** **********

IC Station User’s Manual, v8.9_919-26

Page 537: Icstation User Manual @Vins

Printing/Plotting in IC Station Printing with the IC Station HotPlot Interface

g

the

elot

de.

hf the

be

o Verbose Transcript: (-verbose) Collects the actions of the formatterand details of how the job is processed, then writes them to thetranscript. This information includes a list of plot attributes, includindefaults, options specified by theplotcap file, and formatting andspooling details. If you use the Use Formatter mode, you can storestatistics in the log file specified in the Set Formatter Options dialogbox.

o Keep IPF File: (-d | -nd) Specifies whether to keep the IPF file ordelete it when the formatting is complete.

o Send Plot to Printer: (-X) If selected, the plot will be passed on to thprint spooler when formatting is complete. If it is not selected, HotPwill save the plotter-ready file in the HotPlot spooling directoryspecified in theplotcapfile, or in the output file and directory specifiedin the Set Formatter Options dialog box when in Use Formatter mo

Spool plotter-ready files using the shell spooling commandslp andlpr .

o Header Note: (-T) Specifies an optional text string that is plotted witthe header of the plot. Because the header note is considered part oheader, either Add Header First or Add Header Last, or both must selected for the header note to be plotted.

For more information on using HotPlot, refer to theHotPlot User's and ReferenceManual.

IC Station User’s Manual, v8.9_9 19-27

Page 538: Icstation User Manual @Vins

Printing with the IC Station HotPlot Interface Printing/Plotting in IC Station

IC Station User’s Manual, v8.9_919-28

Page 539: Icstation User Manual @Vins

bout a

a cellthe

nt witheds

rocessrefer

sing

theiveted.

ith aph to

Chapter 20Technology Definition

Overview and Key ConceptsProcess data describes the technology, design rules, and other information acell or a design. Information shared among different cells in one design (forexample, the routing level definitions) is also contained in the Process.

Each cell has a Process associated with it. Either you specify a Process for when you create it, or a default Process is used. For more information, refer tosection “The Default Process.”

Once you assign a Process to a cell and save the cell, the Process is persistethe cell, but you can change the process. When you load a cell, the associatProcess is also loaded if it is not already loaded in the session. If the Procesassociated with a cell does not exist or cannot be found, ICgraph displays awarning and keeps the current session Process. You can also change the Passociated with a cell. For more information about changing a cell's Process,to the section “Changing a Cell Process.”

Thesession Process is the Process of the top-level cell in the active window.You can change the session Process by changing the active window or by uthe$create_process() or $load_process() function when the IC session is theactive window.

Theactive Processis the Process associated with the active context. Wheneveractive window changes, the active Process is reset to the Process of the actcontext. When the active Process changes, all other Processes are revalidaEach Process is marked valid or invalid, depending on whether or not it iscompatible with the active Process. When you set your context to a subcell, wdifferent Process than the root cell, the Process must be compatible for ICgraallow editing.

IC Station User’s Manual, v8.9_9 20-1

Page 540: Icstation User Manual @Vins

Overview and Key Concepts Technology Definition

ecision, tor as

n on.

tionrriteaved

r, line

erle

Process Information Sources

IC Station Process information comes from the following sources:

• Process Variables. A Process Variable is an AMPLE variable defined inthe Process Scope and saved with the Process Definition Fileset. ThreProcess variables are required in every Process: $process_name, $preand $unit_length. You can define Process variables and assign valuesthem using AMPLE assignment statements either at the command line opart of the execution of a Process Userware File. There is no restrictiothe number of such variables you define or on the values you give them

• Process Functions. A Process function is an AMPLE function defined inthe Process Scope and saved in the Process Definition Fileset. IC Stadoes not provide any Process functions by default; you may define youown Process functions. One important use of Process functions is to wdevice generators. A device generator defined in the Process scope is swith the Process Definition Fileset, and will therefore be loadedautomatically when you open a cell in IC Station. For more informationabout devices and generator functions, refer to the section “DeviceGenerators” in theIC Station Device Level Automation Manual.

• Layer Table Information . Layer table information, which is saved withthe Process Definition Fileset, includes layer names, layer aliases, layesets, layer default path widths, and layer appearance parameters (colorwidth, and fill pattern).

• Rule File. An ASCII file that contains design rule checks (for example,minimum width and spacing checks), connectivity information, and othinformation relevant to a cell or design. For more information on the Rufile, refer to the Standard Verification Rule Format Manual.

IC Station User’s Manual, v8.9_920-2

Page 541: Icstation User Manual @Vins

Technology Definition Overview and Key Concepts

nt toables.editess

the thenve

nd

ich

the

Process Variable Value Assignments

When creating a new Process or changing an existing Process, you may wadeclare new Process Variables or change the value of existing Process VariTo change or add Process Variables, you must first reserve the Process for with the$reserve_process() function. Then, you can make changes to the Procusing ICgraph functions at the command line or using the popup form.

If you are planning to make a series of changes, you might find it easier to typestatements into an ASCII file that you can use as a source for Process data,execute the statements all at once using the $dofile() function. When you hafinished changing the Process, you must execute the$save_process() function tosave the changes you made.

The$edit_process() function allows you to declare Process Variables, assign achange values to Process Variables, and create the binary PDF by filling ininformation on a popup form.

Process-related IC Station Functions

Process-related IC Station functions are part of the ICgraph function set, whare documented in the IC Station Reference Manual. The process-related ICStation functions are as follows:

• Layer Table Functions. These functions let you manipulate and accessinformation in the layer table:

$define_layer_alias() $report_layer_attributes()

$define_layer_name() $report_layer_sets()

$define_layer_set() $set_layer_appearance()

$get_layer_info() $set_layer_path_width()

$get_layer_minimum_spacing() $undefine_layer_alias()

$get_layer_minimum_width() $undefine_layer_name()

$get_layer_names() $undefine_layer_set()

$get_layer_number()

IC Station User’s Manual, v8.9_9 20-3

Page 542: Icstation User Manual @Vins

Overview and Key Concepts Technology Definition

arevaluessingry

y

y

• Other Process Functions. These functions let you manipulate and checkthe status of a Process while you are in an IC Station session:

Process Userware File

A Process Userware File (PUF) is an ASCII file that contains AMPLE Userwstatements that declare Process Variables, define Process Functions, assignto Process Variables, or manipulate the layer table. You can create a PUF uany text editor. The $dofile() function compiles the PUF and creates the binaProcess Definition Fileset (PDF).

You can examine an example PUF by reading the ASCII file:

$MGC_HOME/shared/pkgs/ic/userware/default/ic_process.ample

Process Definition Fileset

A Process Definition Fileset (PDF) is a DDMS database object that containsProcess Variables, Process Functions, and layer table information in a binarformat readable by IC Station.

The$create_process() function allocates space for a binary PDF. The $dofile()function executed in ICgraph compiles the ASCII PUF and creates the binarPDF. Execution of the dofile sets up IC Process Variables and IC SessionVariables within the Process Database. The$save_process() function saveschanges to a PDF. Once a PDF exists, you need to load it with the$load_process()function.

$create_process() $save_process()

$get_reserved() $set_cell_process()

$is_process_reserved() $set_process_override()

$load_process() $unreserve_process()

$report_process() $unset_process_override()

$report_reserved() $unset_cell_process()

$reserve_process()

IC Station User’s Manual, v8.9_920-4

Page 543: Icstation User Manual @Vins

Technology Definition Overview and Key Concepts

leters.dbers,

atived

y layer

to a

save

e the

te:

For more information on how a PDF is used in ICgraph, refer to the section“Process Operating Procedures.” For more information on the $dofile() function,refer to theAMPLE Reference Manual.

Layers

A layer is a numbered “bin” for storing system objects. Layers and layer setsyou partition data and control its presentation. There is a limit of 4096 user layYou can specify a layer by its number, or you can assign a primary name analiases. Most commands that require layers as an argument let you enter numnames, and ranges of layers. Layer numbers should always be positive; negnumbers are interpreted as a range of 0 to the absolute value of the specifienegative number.

Layer definition data belongs to a Process. Each layer stores the layer displaattributes that are used for objects placed on that layer. You can declare theappearance as part of the Process, or declare it interactively within ICgraph.Interactively-defined attributes become persistent only when you write them disk. When you do not specify layer appearance, ICgraph assigns defaultattributes.

Layer names, layer aliases, and layer sets are all persistent with the currentProcess definitions. You can define new layer sets and save the Process to these definitions.

A shape or path is associated with exactly one layer at a time. You can changlayer association of an object using the$change_layer() function.

Layer Appearance

You define layer appearance for objects on each layer according to their stanormal (unselected), selected, or highlighted. For each layer, you can set theappearance for the normal, selected, and highlighted states as follows:

• line color • fill color

• line width • fill pattern

• line style • text color

IC Station User’s Manual, v8.9_9 20-5

Page 544: Icstation User Manual @Vins

The Default Process Technology Definition

s ofreetrname.

n the

g tossignour

sf

ging

Regardless of their object type, all objects on a layer have the same displayattributes. If you want to have different display attributes for different objecttypes, you can assign the object types to different layers.

Layer Sets

You can also interact with layers through layer sets. Layer sets are collectionlayers. Layer sets must be named and can be assigned aliases. Layer sets arepresented internally as a set of layer numbers. They are created through soperators (AND, OR, NOT, XOR), which take layer numbers, layer names, olayer set names as arguments and return a single layer set with the specified

Layer sets are composed by value, not by reference; therefore, when themembership of one of the source sets changes, the change is not reflected icomposed set.

Layer Visibility

You can control the visibility of layers for each window. You do this byspecifying the visible layer sets associated with a window using the$set_visible_layers() function.

The Default ProcessBy definition, the default Process is compatible with any other Process. Thedefault Process gives you a quick way of accessing IC Station without havincreate your own Process. Instead of using the default Process, you should ato the cell a Process that contains the Process Variable values needed for ydesign.

For example, if you start to design a cell using the default $precision ProcesVariable assignment (1000), and later you decide to use a $precision value o2000, you must redesign your cell based on the new $precision value. Chanthe $precision value in mid-design changes the size of your cell geometries.

IC Station User’s Manual, v8.9_920-6

Page 545: Icstation User Manual @Vins

Technology Definition The Default Process

heer to

Default Process Variables

Table20-1 lists the Process variables used by IC Station and their values in tDefault Process. For more information about individual Process variables, refthe section “Process Variable Dictionary” in the IC Station Reference Manual.

Table 20-1. Default Process Variable Summary

Reserved AMPLEVariable Description

DataType

Default ProcessValue

$closely_tied Defines layers that should movetogether when compacted.

Vector oflayer setnames

Empty vector

$device_path Defines pathname to deviceuserware.

Vector [["$MGC_HOME/pkgs/ic/userware/default/devices","ic_process"]]

$half_layer Defines whether half layer routing isbeing used.

Integer 0

$layer_spacing Defines the minimum spacingbetween two objects on different ICStation layers.

Vector ofvectors ofnumbers

Empty vector

$mfg_grid Defines the dimensions of themanufacturing grid.

Floatingpoint

0.001

$port_height Specifies the height of placed portshapes and port row height whenused in conjunction with theAutomated Layout tools.

Floatingpoint

2.0

$port_styles Defines the styles that can be usedfor port connection points.

Vector ofvectors ofmixed type

Empty vector

$power_net_names Defines the names of the powernets.

Vector ofstrings

Empty vector

$power_styles Defines the power styles to usewhen routing power nets.

Vector ofvectors ofmixed type

Empty vector

$precision Defines the database resolution. Integer 1000

IC Station User’s Manual, v8.9_9 20-7

Page 546: Icstation User Manual @Vins

The Default Process Technology Definition

$process_name The name of this specific process. String "Default"

$routing_level Defines the routing levels used in adesign.

Vector ofvectors ofmixed type

Empty vector

$signal_via_cell Defines the via cells to be used bythe routing tools.

Vector ofvectors ofmixed type

Empty vector

$site_type Defines the site types for standardcells and ports used in a design.

Vector ofvectors ofmixed type

Empty vector

$unit_length Defines the length of the user unit inmeters.

Floatingpoint

0.000001

$user_grid Defines the dimensions of the usergrid.

Floatingpoint

1

$wiring_type Defines the wire types used in adesign.

Vector ofvectors ofmixed type

Empty vector

Table 20-1. Default Process Variable Summary [continued]

Reserved AMPLEVariable Description

DataType

Default ProcessValue

IC Station User’s Manual, v8.9_920-8

Page 547: Icstation User Manual @Vins

Technology Definition The Default Process

, and

all

eult

Default Process Layers

Table20-2lists the default Process layer numbers, names, protection, aliasescolor that are defined in IC Station. For all layers, the default path width is 1;normal text is tan; selected text is White, and highlighted text is salmon. For layers, selected objects appear in their normal color, but with wide lines. Allhighlighted objects appear as white, with a solid fill pattern.

Although Table20-2lists only a small number of layers with defined names in thdefault Process, you can add objects to any layer in a cell that uses the defaProcess by specifying the layer number rather than a name.

Table 20-2. Default Process Layer Data

Lay.No.

Lay. Name Protection Aliases Normal Color

1 Layer1 Selectable Layer1 Red

2 Layer2 Selectable Layer2 Green

3 Layer3 Selectable Layer3 Coral

4 Layer4 Selectable Layer4 Cyan

5 Layer5 Selectable Layer5 Magenta

6 Layer6 Selectable Layer6 Yellow

7 Layer7 Selectable Layer7 Aquamarine

8 Layer8 Selectable Layer8 MediumAquamarine

4097 row Selectable Undefined Green

4098 drc_results NotSelectable

Undefined White

4100 masklv_results NotSelectable

Undefined White

4101 overflow Selectable Undefined Yellow

4102 device_iobj NotSelectable

Undefined Green

4103 flyline Selectable Undefined White

IC Station User’s Manual, v8.9_9 20-9

Page 548: Icstation User Manual @Vins

The Default Process Technology Definition

4104 fp1 Selectable Undefined Green

4105 active_overflow Selectable Undefined Yellow

4106 outline Selectable Undefined White

4108 gds_anchor Selectable Undefined Yellow

4109 gds_error Selectable Undefined White

4110 translate_text Selectable Undefined White

4111 power_strap Selectable Undefined Yellow

4113 cell_inst_name NotSelectable

Undefined White

4114 port_pin_name NotSelectable

Undefined White

4116 path_ref_line NotSelectable

Undefined White

4117 array_bb NotSelectable

Undefined White (width = 3)

4118 inst_bb NotSelectable

Undefined White (width = 3)

4119 fixed_bb NotSelectable

Undefined White (width = 3)

Table 20-2. Default Process Layer Data [continued]

Lay.No.

Lay. Name Protection Aliases Normal Color

IC Station User’s Manual, v8.9_920-10

Page 549: Icstation User Manual @Vins

Technology Definition System Layers

not

x

not

l.

y

System LayersLayers in the range of 4096 to 8191 are reserved for system use. Users candirectly place objects on these layers. Table20-3 lists each system layer that isdefined and what it is used for.

Table 20-3. Reserved System Layers

Lay.No.

Lay. Name Use

4097 row Contains row shapes.

4098 drc_results Holds the error results from $check_drc().

4100 masklv_results Holds the error results from $lvs_mask() and $lvs_direct().

4101 overflow Displays connectivity overflows.

4102 device_iobj Displays the extent of device objects.

4103 flyline Displays flylines for signal nets after executing$show_guidelines().

4104 fp1 Displays floorplan shapes.

4105 active_overflow Displays the active overflow.

4106 outline Displays temporary objects that are created by userware.

4108 gds_anchor Displays the anchor boxes that are the result of converting V7.designs that were translated from GDSII.

4109 gds_error Displays error shapes that are the result of polygons that couldbe translated from GDSII.

4110 translate_text Displays cell names that were a result of translating a V7.x cel

4111 power_strap

4113 cell_inst_name Displays cell instance names when the instance_name_displaapplication variable is set to @true.

4114 port_pin_name Displays port and pin names when the port_pin_name_displayapplication variable is set to @true.

4116 path_ref_line Displays path reference lines.

4117 array_bb Reserved for future use.

IC Station User’s Manual, v8.9_9 20-11

Page 550: Icstation User Manual @Vins

Multiple Processes Technology Definition

ss.all

theOSt twoat are

ve

Multiple ProcessesIn ICgraph, each cell references a user-defined Process or the default ProceICgraph loads that Process automatically when the cell is loaded. Normally, cells in a design use the same Process.

However, you use different cells with different, but compatible, Processes insame design. You may want to do this, for example, if you use a general CMvia in a design that references a specific CMOS Process. ICgraph can suppordifferent but compatible Processes in one design. However, two Processes thnot compatible, cannot be referenced by different cells in one design.

If the Processes are compatible, all Process data comes from either the acticontext cell Process or the session Process, as Table20-4 shows.

4118 inst_bb Reserved for future use.

4119 fixed_bb Reserved for future use.

Table 20-4. Source of Process Data

Process Data Source of Process Data

Layer attributes (colors, fill patterns) Session Process.

Layer Manager Layer names Layer aliases Layer sets Default path widths

Process associated with the activecontext cell, if defined in thatProcess; otherwise, source is thesession Process. Layers can also bedefined temporarily.

AMPLE variables and functions Process associated with the activecontext cell, if defined in thatProcess; otherwise, source is thesession Process.

Table 20-3. Reserved System Layers [continued]

Lay.No.

Lay. Name Use

IC Station User’s Manual, v8.9_920-12

Page 551: Icstation User Manual @Vins

Technology Definition Multiple Processes

blesem

nto a

ust

ses

e ina list

ut it

with

Each Process has its own layer attributes, layer manager, and AMPLE variaand functions. You can define Process-specific AMPLE functions and load thinto each Process. If you give the functions the same name, and load them idifferent Processes, you do not need to decide which function to execute forProcess. ICgraph automatically calls the function in the active Process.

Compatibility Requirements

For two processes (other than the default Process) to be compatible, they mmeet these requirements:

• The layer names, layer sets, and layer aliases that exist in both Procesmust refer to the same layer(s).

• The Process Variable $precision must have the same value in bothProcesses.

• The Process Variable $unit_length must have the same value in bothProcesses.

• All other Process Variables used by IC Station must have the same valuboth Processes or must be uninitialized in one or both Processes. For of these Process variables, refer toTable 20-1 on page 20-7.

The compatible Processes can differ in minor ways:

• Layer names, layer sets, and layer aliases that exist in only one of theProcesses can refer to any layer(s).

• The Process Variable $process_name must exist in both Processes, bcan have different values between the Processes.

• The layer appearance (for any layer) can be different.

• The default path width (for any layer) can be different.

• Process Variables that you define can exist in either or both Processesthe same or different values.

IC Station User’s Manual, v8.9_9 20-13

Page 552: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

tworocess

tionreed in

ive

youon

C

fore

Session and Active Process Compatibility

Compatibility of Processes is an issue only when two cells referencing thoseProcesses are part of the same design. Therefore, sometimes the Session Pand the Active Process may be different.

• If the Session and Active Processes are compatible, you can proceednormally. Both Processes are listed on the IC Station status line. IC Stauses the layer appearance defined in the Session Process to draw youdesign. For other Process information, IC Station first checks the ActivProcess, then checks the Session Process if the information is not definthe Active Process.

• If the Session and Active Processes are not compatible, the ActiveProcess is referred to as “invalid.” You cannot edit in place when the ActProcess is invalid, but you can still edit singly. To correct this (which isreally an error condition), you must use the$set_cell_process() function tomake one of the cells reference a different and compatible Process, ormust edit one of the Processes to make it compatible. For information how to edit a process, refer to the section “Editing a Process from theCommand Line.”

Process Operating Procedures

Creating a Process

Because the default Process contains layer table information, you will use itmainly in the GE or CE modes. In designs where you will be working in the CBmode, you must define a Process.

For example, suppose you want to create a new Process called “NMOS.” Beyou define your new Process, you may want to view the current Processinformation in the default Process. Use the$report_process() function to see theinitial values of the Process Variables:

: $report_process(@popup, @transcript, "");

IC Station User’s Manual, v8.9_920-14

Page 553: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

at

ight, the

yer,create

ake

ngeand

This function causes IC Station to send a transcript to an ICgraph window thdisplays the values of the default Process as shown in Figure20-1.

When you create a new Process, the Process Variables $mfg_grid, $port_he$precision, $process_name, $unit_length, and $user_grid are all initialized todefault values listed. The layer table, not shown in the Process report, is alsoinitialized to a default value: solid white lines are the appearance for every laand there are no layer names. You can use the $create_process() function toProcess “NMOS” like this:

$create_process("/user/danw/nmos")

You will want to change the Process from the default values to values that msense for the design you are creating. You can do this by creating a ProcessUserware File (PUF) and executing it with the $dofile function, or you can chathe values one at a time by using AMPLE assignment statements at the commline.

//// PROCESS NAME : Default// PATHNAME :// STATUS : READ ONLY//// ***** VARIABLES *****//----Name--------------------------Value----------------------//// (S) $closely_tied []// (S) $device_path[["$MGC_HOME/pkgs/ic/userware/default/devices","ic_process"]]// (S) $layer_spacing []// (S) $mfg_grid 0.001// (S) $port_height 1.0// (S) $port_styles []// (S) $power_net_names []// (S) $power_styles []// (S) $precision 1000// (S) $process_name "Default"// (S) $routing_level []// (S) $signal_via_cell []// (S) $site_type []

IC Station User’s Manual, v8.9_9 20-15

Page 554: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

dure:

ss in

ssess

l the

s for

the

// (S) $unit_length 1e-06// (S) $user_grid 1.0// (S) $wiring_type []

Figure 20-1. Default Process Variable Values

Creating a Process Using a Process Userware File

To create a Process using a Process Userware File (PUF), follow this proce

1. Use any ASCII file editor to create your PUF. Use the skeleton ProcesUserware File provided by Mentor Graphics or one of the example PUFthis manual. The skeleton PUF is in

$MGC_HOME/shared/pkgs/ic/userware/default/ic_process.ample

The PUF should include any or all of the following: user defined ProceVariables and functions, AMPLE assignment statements to other ProcVariables, and IC Station functions used to modify the layer table.

Use the ic_process@@ scope identifier for the AMPLE assignmentstatements and declarations in your PUF. The scope is used to controaccessibility of userware within ICgraph.

2. Within ICgraph, create a Process with the$create_process() function.

The $create_process() function automatically reserves the new Procesedit; that is, it calls the$reserve_process() function.

Execute the $create_process() function from the command line or frommenus. The $create_process() prompt bar, shown in Figure20-2 appearsand prompts you for the name of the Process to be created.

Figure 20-2. $create_process() Prompt Bar

CRE PR Pathname OK Cancelcmosv2

IC Station User’s Manual, v8.9_920-16

Page 555: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

te a

t theetion

e of

tifier:

is a

3. Use the $dofile() function to execute the functions in your PUF and creaPDF. For example, where this file is in the current directory or <path>:

$dofile("<path>/proc_userware")

IC Station returns an error message if there are compilation errors. EdiPUF to correct any errors, then execute the $dofile() function again. Thprevious execution may have executed functions that prevent the execufrom proceeding successfully the second time.

You can examine and verify changes with the$report_process() functionand use the$unreserve_process() function to forget the changes. If youunreserve the Process, the newly created Process will contain the valuthe variable assignments in the Default Process; the new Process willremain unnamed, and there will be no layer attributes defined.

4. Save the PDF using the$save_process() function.

The system does not generate an error if you forget to include the"ic_process@@" scope resolution operator in Step1 onpage 20-16. For example,if you create a new variable like this:

extern new_variable = 10;

"new_variable" would be set in the current scope, which is different than theProcess scope. Instead, you should use a statement like this:

extern ic_process@@new_variable = 10;

When retrieving values of Process Variables, you should use this scope iden

ic_process@@$precision

Note

NOTE: Executing the PUF makes changes to the PDF. Simplychanging a PUF does not change a PDF until that userware fileexecuted and the Process is saved to disk. You cannot changePDF created by IC Station into a PUF.

IC Station User’s Manual, v8.9_9 20-17

Page 556: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

be the

e

ers,

, you

thence

to

If you do not use the scope identifier, you will still get a value back, but it couldthe value of a variable named $precision in a different scope (one other thanProcess scope). Thus, it is safest to always use the scope identifier"ic_process@@" when referring to Process Variables. By using the scopeidentifier, you guarantee that the $precision Process Variable will be set to thProcess scope.

To find out what Process Variables are defined in the Process scope, use th$report_process()function. For more information on scopes and scope identifierefer to theAMPLE User's Manual. For a complete description of all ProcessVariables used in Process, refer to the section “Process Variable Dictionary” intheIC Station Reference Manual.

Creating a Process from the Command Line

Any statements that you can include in a PUF can also be executed from thecommand line. For example, if you are making a single change to a Processwill probably want to begin from the command line because it is easier thancreating and executing a PUF.

To create a Process from the command line, follow these steps:

1. Within ICgraph, execute the$create_process() function.

This automatically reserves the Process for edit.

2. Type in the function(s) or other AMPLE statement(s). For example, use$set_layer_appearance() function to set or retrieve the display appearaof the layers you are using in your design. For more information, refer the section “Setting Layer Appearance.”

Note

You might also want to make edits to a PUF. This will help youmaintain consistency in your ASCII Process files.

IC Station User’s Manual, v8.9_920-18

Page 557: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

wlyme

y

layer

theor

ipt

...”

the

3. Save the Process using the$save_process() function. This will save a newversion of your Process Definition Fileset.

If you decide to discard the changes to your Process, execute the$unreserve_process() function. This will ignore changes made to the necreated Process, and set the values of the Process Variables to the savalues as the default Process. All layer attributes and layer definitionsdefined in the new Process will be discarded.

Setting Layer Appearance

The $set_layer_appearance() function allows you to retrieve or set the displaappearance of the layers you are using in your design. You execute the$set_layer_appearance() function from the command line. Before setting theattributes in your Process, you must define the layers with the$define_layer_name() function.

Figure20-3 shows the dialog box associated with$set_layer_appearance().

• You can select an object fill color from the paint chip palette, located inupper left of the $set_layer_appearance() dialog box. Position the cursover the desired color and press the Select button of the mouse. Theselected color appears in the upper right corner of the color palette.

You can set your Edge color and Text color when you choose your FillColor if you press the button marked “Same As Obj Color.” Click on the“Edge Color...” button, and a paint chip similar to the Object Fill Color chpalette will appear. Click on the “Text Color...” button, and another painchip will appear for you to select the desired text color.

• Choose your Fill Pattern by clicking on the button marked “Fill Pattern.A fill pattern chip similar to the one shown in Figure20-4 is displayed,showing the possible fill patterns you can use in your design.

To select a fill pattern, position the cursor over the desired fill chip, andpress the Select button. The selected fill pattern will appear in a box inupper left hand corner of the chip. Click the OK button to exit the dialogbox.

IC Station User’s Manual, v8.9_9 20-19

Page 558: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

Figure 20-3. $set_layer_appearance() Dialog Box

Set Layer Appearance

CloseClear Form

Object Fill Color

Green

No Change

Edge Color... Text Color...

Same As Obj ColorSame As Obj Color

3

2

1

No Change

5

4

Short Dash

Dotted

Solid

No Change

C-Line

Long Dash

Fill Pattern...

No Change

Line Width Line Style

Normal Attributes

Select Attributes

Highlight Attributes

Attribute Mode

Choose One or More Layers

1234567894097

pwellnthinoxpthinoxpolysiliconp_pluscontactmetal1metal2viarow

And/Or type in layers

Select one of the following to perform action:

Set Get layer attributes.

Combine

Replace

For Print Attributes :

existing attributeswith new attributes

for this layer.Printing Attributes

Click Buttons

Color Paint Chip

IC Station User’s Manual, v8.9_920-20

Page 559: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

Figure 20-4. Fill Pattern Chip

• You can choose one of five line widths: “1” being the thinnest and “5”being the thickest.

• You can choose from one of the following line styles, as shown inFigure20-5.

IC Station User’s Manual, v8.9_9 20-21

Page 560: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

e

testhe

ups

ion

ionh toyer

e the

Figure 20-5. Line Styles in ICgraph

• The Attribute Mode switch specifies which object state the attributes arapplied to. Choose from Normal, Select, Highlight, or Printing.

• When you set the Attribute Mode to Printing, you can choose to eithercombine or replace existing attributes for the layer in the For PrintingAttributes Field. Combine adds any new attributes to the existing attribufor that layer. Replace removes existing attributes for the layer and onlyattributes you set henceforth apply to that layer.

• The Layer Selection selector allows you to choose the layer or layer groyou wish to view or modify. The selector is a red bounding box that youcontrol with the arrow keys. To select a layer to view, position the selectbox over the desired layer and click on the Select mouse button.

• You can either Set or Get the layer display attributes with the Layer Actswitch. If you choose to Get the layer attributes, select the layer you wisview, then select the Get button. The layer attributes for the selected laare displayed in the dialog box.

Should you choose to create or modify a layer, select the layer using thlayer selection box, select an attribute mode, set attributes, then pressSet button.

Solid

Dotted

Short Dash

Long Dash

C-Line

IC Station User’s Manual, v8.9_920-22

Page 561: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

ct.

a

,

at

nces

onhatl

If you make an error in modifying a layer while in the Set mode, you can selethe Clear Form button. To terminate the dialog box, click on the Close button

You can examine and verify your changes using the various layer reportingfunctions. For a list of these commands, refer to Table20-6. If the changes areincorrect, perform the$unreserve_process() function to discard the changes.

Loading a Process

When you wish to change the Session Process from the Default Process or currently defined Custom Process to a different Process, you must load theProcess into ICgraph.

Complete the following steps to load the Process into ICgraph:

1. Execute the $load_process()function.

The $load_process() function can be executed from the command linefrom the menu bar (File> Process> Load:), or from the Session palette(choose Load in the Process area).

2. Specify the Process name at the command line, or in the dialog box thappears if you leave out the name of the Process.

Once the Process is loaded, any new cell you create and begin to edit referethe Session Process until you change the Process.

Note

You cannot have a context window active when you load aprocess. Make the session window active by clicking SELECT the frame of the session window or any part of the context area tis not covered by a context window. You have been successfuwhen the session window frame is highlighted.

IC Station User’s Manual, v8.9_9 20-23

Page 562: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

e

canEmakeUF,

ing

he

n.

t the

Editing a Process

You may want to make changes or additions to the Process. You can edit thActive Process by editing the existing PUF and executing it with the $dofile()function; or by creating a new PUF and execute the $dofile() function; or youchange the value of existing Process Variables one at a time by using AMPLassignment statements at the ICgraph command line. If you are planning to a number of changes, you might find it easier to type the statements into a Pthen execute the statements all at once using the $dofile AMPLE function.

Editing a Process Using a Process Userware File

These steps are similar to those used to create a Process with a PUF:

1. Using an ASCII text editor, make the desired modifications to the existPUF.

2. If necessary, invoke ICgraph, then load the desired Process with the$load_process() function.

Execute the $load_process() function from the command line or from tmenu. When $load_process() is executed, a prompt bar will appear,requesting the pathname of the Process you want loaded into IC StatioFigure20-6 displays the prompt bar for the $load_process() function.

Figure 20-6. $load_process() Prompt Bar

Note

It is not possible to go backwards from a PDF created by ICStation to a PUF, so it is wise to make the PUF and the PDFconsistent. The easiest way to edit the Process and ensure thaPUF and the PDF are consistent is to edit the existing PUF andexecute it.

LOA PR Pathname OK Cancelcmosv1

IC Station User’s Manual, v8.9_920-24

Page 563: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

F toous

ges

efer

3. Reserve the Active Process with the$reserve_process() function.

4. Execute the modified PUF with the $dofile() function.

IC Station returns an error message if there are any errors. Edit the PUcorrect any errors, then execute the $dofile() function again. The previexecution may have executed functions that prevent the execution fromproceeding successfully the second time.

You can examine and verify changes with the$report_process() function.You can use the$unreserve_process()function to forget the changes. If youunreserve the Process, the edited Process will simply be the previousversion of the Process.

5. Save your changes by executing$save_process().

Editing a Process from the Command Line

To edit a Process from the command line, follow these steps:

1. Invoke ICgraph.

2. Execute$load_process().

3. Execute$reserve_process().

4. Type in the function(s) or other AMPLE statement(s) to make the chanto the Process.

You can set layer display attributes by invoking the$set_layer_appearance() function. For more information on the$set_layer_appearance() function and the accompanying dialog box, rto the section “Creating a Process from the Command Line.”

!Caution

It is not possible to go backwards from a PDF created by ICStation to a PUF, so it is wise to make the PUF and the PDFconsistent.

IC Station User’s Manual, v8.9_9 20-25

Page 564: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

tionsu

any

urthat

rnctione

rocess

ur

You can change or set other Process Variables or Process-related funcfrom the command line. If you set functions from the command line, yomust use the proper scope identifier for Process.

You can examine and verify your changes using the$report_process()function and other IC Station functions. If the changes are incorrect forreason, use the$unreserve_process() function to delete the changes.

5. Save the Process using the$save_process() function. This will save a newversion of your Process Definition Fileset.

Making Temporary Changes to a Process

If you want to make minor Process changes that need to last only through yocurrent session of IC Station, you can do this with selected variables, but notethere are some restrictions that will be outlined in the next section.

Layer Attributes and Layer Information

Layer attributes and layer information contain the data used to describe layeappearance, layer names, layer aliases, and layer sets. When you issue a futo change the layer appearance for a Process that is not reserved for edit, thchange occurs with this message:

Process is not reserved: Change to layer appearance is notpersistent.

IC Station has made the change to the unreserved Process, but because the Pis not reserved, the changes can later be discarded:

• If later in the same session you reserve the Process, the changes arediscarded. This is so the Process you are editing will correspond to yosaved PDF.

Note

You may also want to make edits to a PUF. This will help youmaintain consistency in your ASCII Process files.

IC Station User’s Manual, v8.9_920-26

Page 565: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

r a:

t not layerwing

willyou

the

ndaded

ou

te athat a

• When you exit the session, the changes will be discarded.

When you issue a function to define a layer name, layer set, or layer alias foProcess that is not reserved for edit, the function executes with this message

Using a temporary layer name or layer set NOT from a reservedProcess.

IC Station has created the layer name, layer alias, or layer set temporarily buin your Process. Instead, IC Station remembers the temporary layer names,aliases, and layer sets you define this way outside of any Process. The folloalso occurs:

• When you exit the session, the changes are discarded.

• When you use $get and $report functions, the layer name, alias, or setappear as defined, but the message listed above will appear, warning that the layer assignments are temporary and are not from a reservedProcess.

• The Rule file will not recognize the temporary layer name, alias, or set;Rule file retrieves these names only from your persistent Process.

• Other IC Station functions (for example,$set_visible_layers(), $add_path(),and$add_shape()) will recognize the temporary layer names, layer sets, alayer aliases that you have created. This is true even after you have lonew Processes because IC Station stores the temporary layer tableinformation outside of any Process.

• The$undefine_layer_alias()and$undefine_layer_set()functions will workcorrectly on the temporary layer names, layer sets, and layer aliases yhave created. However, you cannot mix temporary information withinformation that is stored in the Process. For example, you cannot createmporary layer alias to a layer name that is in your Process. Also notethe $undefine functions will not undefine layer sets or layer aliases fromProcess that is not reserved.

IC Station User’s Manual, v8.9_9 20-27

Page 566: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

ocess

y thees of

ess is

s and

y

s youuse

the

at isanew

Using Process When Creating Cells

Upon creation, the cells reference the Process that is the current Session Prunless you specify a Process in the$create_cell() function. The $create_cell()function allows you to specify a Process to use and automatically loads thatProcess upon execution of the$create_cell() function. If you do not specify aProcess, then the current Session Process is used.

The current Session Process or a PDF you have loaded can be referenced bcells. IC Station supplies a default Process that you can use in the early stagdesigning a cell. The default Process is useful if you wish to start work on adesign, but the Process for that design has not been defined yet or the Procunavailable for some reason.

The next sections show you two ways to create a cell: using a custom Procesusing the default Process.

Creating a Cell Using a Custom Process

Normally, cells that you create will reference a Process that you have alreadcreated.

1. Within ICgraph, load the existing Process you want to use.

If you have already opened an existing cell that references the Proceswant, IC Station will have loaded the Process automatically. Otherwise,the$load_process() function.

2. Create the new cell using the$create_cell() function.

Execute $create_cell() from the command line or from the menus. Afterfunction is executed, a dialog box will appear and prompt you forinformation on the new cell.

When you create new cells, they automatically reference the Process ththe Session Process at the time they are created if you do not specify Process in the dialog box. The status line now shows the name of yourcell and the name of your Process.

IC Station User’s Manual, v8.9_920-28

Page 567: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

yxistorill

s and

e

isdese,es.

stdes—

nyt

at isrocesse

You can also specify the cell Process and or cell Library from the$create_cell() dialog box. If you want to set both the Process and Librarfrom the $create_cell() dialog box, both the Process and Library must eand be available to be loaded into IC Station. If you specify a Process Library that does not exist, you will get an error message and the cell wnot be created. To correct this, you must create the appropriate ProcesLibrary and then re-execute the $create_cell() function.

3. Edit and save your new cell.

The new cell now references your Process. When you load the cell again, thProcess will be loaded automatically by IC Station. If you want the cell toreference a different Process, use the$set_cell_process() function.

Creating a Cell Using the Default Process

You can create cells that reference the default Process. The default Processstored internally in ICgraph and cannot be edited. The default Process provilayer appearances for all layers and initializes the $precision, $process_nam$user_unit, $user_grid, and $unit_length Process Variables to common valuThe default Process does not reference any specific process technology (forexample, CMOS).

Because the default Process does not define layer names, layer sets, or moProcess Variables, you cannot use the default Process in the CE or CBC moif you do, you will get an error.

1. Invoke ICgraph.

ICgraph automatically loads the default Process and sets the SessionProcess to be the default Process. Do not load any other Process or aexisting cell, because that would set the Session Process to a differenProcess.

2. Create the new cell using the$create_cell() function.

When you create new cells, they automatically reference the Process ththe Session Process at the time they are created. Since the Session Pis the default Process, the new cell references the default Process. Th

IC Station User’s Manual, v8.9_9 20-29

Page 568: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

fault

ain,

PDF.

CE

hown

status line now shows the name of your new cell and the name of the deProcess.

3. Edit and save your new cell.

The new cell now references the default Process. When you load the cell agthe default Process will be loaded automatically by IC Station.

Remember, you cannot edit the default Process.

Changing a Cell Process

You may want to change the Process that a cell references if you are:

• Changing the Process reference from the default Process to a specific

• Changing the Process reference from an existing PDF to a PDF thatcontains the information needed to promote a design from the GE to theor CBC modes.

• Changing the Process reference from an existing PDF to a PDF thatcontains different display attributes.

To change a Process, follow these steps:

1. Within ICgraph, load the cell you want with $open_cell(@edit).

2. Execute$set_cell_process().

3. Enter the name of the new Process in the Set Cell Process dialog box sin Figure20-7.

IC Station User’s Manual, v8.9_920-30

Page 569: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

ifiedin

the

u makeE orfore,

s tonces,

Figure 20-7. $set_cell_process() Dialog Box

4. Select whether only the current editing context cells are set to the specProcess (“Change current context only”), which is the default, or all cellsthe hierarchy are set to the specified Process (“Change all cells inhierarchy”).

5. Execute $set_cell_process().

6. Execute the$save_cell() function.

The cell(s) reference has now been set to the new Process you specified in $set_cell_process() function.

Procedures Required after Editing a Process

Because the Process is persistent data that describes a design, changes yoto a Process can invalidate cells that reference it. A cell that is valid in the CCBC mode may not be valid after you change the Process it references. ThereIC Station must usually revalidate CE and CBC cells after you make changetheir Processes. If the cell is no longer valid because of the Process it refereyou must do one of the following:

IC Station User’s Manual, v8.9_9 20-31

Page 570: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

ting, youting

es if

ging

value.

he

,

• Edit the Process to eliminate the errors.

• Load a new Rule file that checks different rules.

• Make the cell reference a different Process using the$set_cell_process()function.

• Change the editing mode of the cell.

Until you do one of these steps, you will not be able to edit the cell in the edimode that was invalid. Thus, to edit the cell to remove the cause of the errormust first change your editing mode. For more information about changing edimodes, refer to the section “Edit Mode Operations.”

Some Process Variables used throughout IC Station can cause major changyou edit them. For example:

• $precision describes the number of database units per user unit. Chan$precision changes the physical size of any layout data that may havealready been created. Thus, we recommend that you set the value of$precision to be the same in all your Processes and never change that

• $routing_level specifies (among other things) the routing levels in yourdesign. IC Station automatically creates layer sets that correspond to trouting levels in your design. These “routing level layer sets” are givennames according to the name specified by $routing_level. For examplesuppose you have a Process with a $routing_level defined as in Figure20-8.

IC Station User’s Manual, v8.9_920-32

Page 571: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

ichog

our

tion

RCis

rn

ent

ent

Figure 20-8. Routing Level Process Variable

In this example, IC Station would automatically create the layer sets M1, whcontains layer 14; and M2, which contains layer 12. These layer sets will alscontain other layer numbers if you specify other ICgraph layers for this routinlevel using the $wiring_type and $power_styles Process Variables.

If you make a change to any of the Process Variables while you are editing ycell, your design will be affected in some way. Table20-5 tells you what to do ifyou change a Process Variable.

Table 20-5. Effects of Changes to Process Variables

Process Variable Effects of Changing Process Variable

$closely_tied To see the effects of your changes, return to the compacstep.

$layer_spacing Return to the placement step. You need to check your Drules to make sure that they still agree with the values in thvariable.

$mfg_grid To see the effects of changing the manufacturing grid, retuto the Floorplanning step.

$port_height To see the effects of your changes, return to the Placemstep.

$port_styles To see the effects of your changes, return to the Placemstep.

//////////////// Routing Level Definitions// Purpose: Assigns direction, minimum spacing, base and// blockage layer for each routing level.// Form: Vector of [Level Name, Preferred Routing// Direction,// Minimum Spacing, Base Layer, Blockage Layer]extern ic_process@@$routing_level = [ ["M1", @HORIZONTAL, 2.500, 14, 46], ["M2", @VERTICAL, 2.500, 12, 44]];

IC Station User’s Manual, v8.9_9 20-33

Page 572: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

dingck.

gay

ent

grid

$power_net_names If you add or delete net names, return to the Logic Loastep. If you change only a net type, you need not backtra

$power_styles If you add or delete bus types, return to the Floorplanninstep to see the effects of your changes. Other changes mrequire backtracking to the Automatic Routing step.

$precision No data is recalculated when you change the $precisionvariable. You may need to return to the beginning of yourdesign.

$process_name Requires no changes to data.

$routing_level Reroute your design to see the effects of your changes.

$signal_via_cell Re-route the design to view the effects of changing the$signal_via_cell variable. If you change via sizes, youshould re-route.

$site_type To see the effects of your changes, return to the Placemstep.

$unit_length Requires no changes to data.

$user_grid Return to the Floorplanning step. Changes to the $user_variable may invalidate your design.

$wiring_type Reroute your design to see the effects of your changes.

Table 20-5. Effects of Changes to Process Variables [continued]

Process Variable Effects of Changing Process Variable

IC Station User’s Manual, v8.9_920-34

Page 573: Icstation User Manual @Vins

Technology Definition Process Operating Procedures

ouor

ee

gn

tionnd

s ofts

et.

sses

Retrieving Process Information

There are several ways to retrieve Process information, depending on how ywant the information to be returned. You can get it in a form that you can viewreturn it to an AMPLE function within a program.

Viewing Process Information

To get view process information, use the report functions shown in Table20-6.Type the function on the command line or use the Report pulldown menu. Threport goes to a dialog box, report window, transcript window, or an ASCII fildepending on what you have defined for $setup_reports().

Table 20-6. Report Functions

Function Name Purpose

$report_design_layers() Lists the internal user layers used in the desifrom the specified context down through thehierarchy.

$report_layer_attributes() Provides the layer name, layer aliases, protecstatus, and appearance for a layer or layer set adefault path widths.

$report_process() Provides the pathname and reservation statuthe Active Process and the Session Process. Lisall Process Variables and Process functions.

$report_layer_sets() Lists the layer numbers contained in a layer s

$report_reserved() Provides the name and pathname of all procethat are currently reserved.

IC Station User’s Manual, v8.9_9 20-35

Page 574: Icstation User Manual @Vins

Process Operating Procedures Technology Definition

e

t.

nd

hat

e

Retrieving Process Variables With AMPLE Functions

To retrieve Process information for use within AMPLE expressions, use thefunctions listed in Table20-7.

Use the AMPLE $writeln() function to display a single piece of information in thtranscript. For example:

$writeln(ic_process@@$precision)

displays the current value of the $precision Process Variable in the transcrip

Table 20-7. Functions Returning Process Information

Function Name Purpose

$get_layer_info() Returns the appearance and default pathwidth.

$get_layer_minimum_spacing() Returns the spacing as specified in the$layer_spacing Process Variable for objectson two routing levels that correspond to theinput of ICgraph layers.

$get_layer_minimum_width() Returns the width defined for a wiring styleand routing level.

$get_layer_names() Returns a vector containing the name(s) aalias(es), if any, defined for a layer number.

$get_layer_number() Returns a vector containing the number(s)corresponding to a layer name, alias, or set.

$get_reserved() Returns the pathnames of any Processes tare reserved for edit.

$is_process_reserved() Returns @true or @false to signify that thActive Process is or is not reserved.

IC Station User’s Manual, v8.9_920-36

Page 575: Icstation User Manual @Vins

Technology Definition Process Examples

ion

ere

sed

rily

You can also enter the name of any Process Variable in an AMPLE expresswhere you need the value of that variable. To retrieve the value of a ProcessVariable, use the name of the Process Variable in the AMPLE expression whyou need the value. For example:

extern width = 3.0 * ic_process@@$precision;extern spacing = 3.0 * ic_process@@$layer_spacing[1][3];

For more information on the $report functions and the functions in Table20-7,refer to the IC Station Reference Manual. For more information on individualProcess Variables and their values, refer to the section “Process VariableDictionary” in the IC Station Reference Manual. For more information on how touse AMPLE expressions and write your own macros, refer to theAMPLEReference Manual.

Process Examples

Automated Layout

Defining Multiple Blockages

In the following example, wiring layer definitions, metal1.i and metal2.i are uas regular layers. The multiple layers are listed in the example as Power.i,Metal2.e, and metal1.e. The multiple layers' Wire Type numbers were arbitrachosen.

Example of definitions for multiple blockages per routing level:

// ####### Routing Level Definitions #######// Purpose: Assigns direction, minimum spacing, base and blockage layer for each routing level.// Form: Vector of [Level Name, Preferred Routing Direction, Min Spacing, Base Layer, Blockage Layer] extern ic_process@@$routing_level = [["METAL1", @VERTICAL, 2.000, "port1me.e", "metal1.blkg"],["METAL2", @HORIZONTAL, 2.000, "port2me.e", "metal2.blkg"]];// ####### Wiring Layer Definitions #######// Purpose: Assigns ICgraph layers to wire types by

IC Station User’s Manual, v8.9_9 20-37

Page 576: Icstation User Manual @Vins

Process Examples Technology Definition

the

routing levels.// Form: Vector of [Wire Type,// Vector of [ICgraph Layer, Routing Width] ... for each route levelextern ic_process@@$wiring_type = [[1, ["metal1.i", 2.000], ["metal2.i", 3.000] ] ,[25, ["metal1.i", 2.000], ["Power.i", 3.000] ],[26, ["metal1.i", 2.000], ["Metal2.e", 3.000] ],[27, ["metal1.e", 2.000], ["metal2.i", 3.000] ],];

Specifying the Error Checks Listed by Error

// Warning[37]:[Placer,Router] Width or height of port is not on grid. [Name]// [IN] [VDD]// Warning[40]:[Placer] Left or right edge of port is not on grid with respect to its center. [Name]// [IN]

Specifying the Error Checks Listed by Object

// [Cell template name:IN]// Warning[37]:[Placer,Router] Width or height of port is not on grid. [Name] [IN]// Warning[40]:[Placer] Left or right edge of port is not on grid with respect to its center. [Name] [IN]// [Cell template name:st1jkx_c]// Warning[1]:[Placer,Router] Width or height of cell template is not on grid. [Name][st1jkx_c]// Warning[5]:[Router] Center point of this pin is not on grid in a template. [Cell name:Pin name][st1jkx_c: AR]

Choosing the Primary Routing Layer

The following is an example how the primary routing layer is chosen based onvalue of the$routing_level Process Variable.

extern ic_process@@$routing_level = [ ["POLY", @VERTICAL, 2.000, "POLY.E", "poly.blkg"], ["METAL1", @HORIZONTAL, 2.000, "METAL1.E", "metal1.blkg"], ["METAL2", @VERTICAL, 3.000, "METAL2.E", "metal2.blkg"]

IC Station User’s Manual, v8.9_920-38

Page 577: Icstation User Manual @Vins

Technology Definition Process Examples

and,

ls and

];

Process Userware File Defining Multiple Wire Types and Vias

This sample section of a Process Userware File (PUF) has multiple wire typesvias defined. The ports on the cell are defined on layers POLY.E, METAL1.Eand METAL2.E. Three different wire types are defined and explicit spacingsbetween the various routing levels are defined by using the$layer_spacingProcess Variable. This example Process is a three-level Process; six via celfour different port styles are defined.

// ####### Miscellaneous Settings #######extern ic_process@@$process_name = "proc";extern ic_process@@$precision = 1000;extern ic_process@@$unit_length = 1.0e-6;extern ic_process@@$user_grid = 8.000;extern ic_process@@$mfg_grid = 0.010;// ####### Routing Level Definitions #######// Purpose: Assigns direction, minimum spacing, base and// blockage layer for// each routing level.// Form: Vector of [Level Name, Preferred Routing// Direction, Min Spacing, Base Layer,// Blockage Layer]extern ic_process@@$routing_level = [["POLY", @VERTICAL, 2.000, "POLY.E", "poly.blkg"],["METAL1", @HORIZONTAL, 2.000, "METAL1.E", "metal1.blkg"],["METAL2", @VERTICAL, 3.000, "METAL2.E", "metal2.blkg"]];// ####### Wiring Layer Definitions #######// Purpose: Assigns ICgraph layers to wire types by// routing levels.// Form: Vector of [Wire Type,// Vector of [ICgraph Layer, Routing Width]//...// for each route levelextern ic_process@@$wiring_type = [[1, ["poly", 3.000], ["metal1", 3.000], ["metal2", 3.000] ],[2, ["poly.wire2", 2.500], ["metal1.wire2", 2.500], ["metal2.wire2", 2.500] ],

IC Station User’s Manual, v8.9_9 20-39

Page 578: Icstation User Manual @Vins

Process Examples Technology Definition

[3, ["poly.wire3", 2.000], ["metal1.wire3", 2.000], ["metal2.wire3", 2.000] ]];// ####### Power Net Name Definitions #######// Purpose: Define the power net names used.// Form: Vector of [Power Net Name, Net Type].extern ic_process@@$power_net_names = [["VSS", @POWER_SUPPLY],["VDD", @POWER_SUPPLY]];// ####### Power Routing Definitions #######// Purpose: Defines the power styles to be used for power// routing.// Form: Vector of [Power Style Type, Power Name, Route// Level, ICgraph Layer, Width,// Gap, Bus Count]extern ic_process@@$power_styles = [[@IO_RING, "VSS", 3, "metal2", 170.000, 0.000, 1],[@INTERNAL_ROW, "VSS", 2, "metal1", 12.000, 0.000, 1],[@ROW_TO_BUS, "VSS", 2, "metal1", 12.000, 0.000, 1],[@PAD_TO_BUS, "VSS", 3, "metal2", 20.000, 0.000, 1],[@LEFT_VERTICAL_BUS, "VSS", 3, "metal2", 20.000, 0.000, 1],[@TIE_DOWN, "VSS", 3, "metal2", 3.000, 0.000, 1],[@IO_RING, "VDD", 3, "metal2", 116.000, 0.000, 1],[@INTERNAL_ROW, "VDD", 2, "metal1", 12.000, 0.000, 1],[@ROW_TO_BUS, "VDD", 2, "metal1", 12.000, 0.000, 1],[@PAD_TO_BUS, "VDD", 3, "metal2", 20.000, 0.000, 1],[@RIGHT_VERTICAL_BUS, "VDD", 3, "metal2", 20.000, 0.000, 1],[@TIE_DOWN, "VDD", 3, "metal2", 3.000, 0.000, 1]];// ####### Signal Via Name Declarations #######// Purpose: Defines via types for use in design.// Form: Vector of [Via Cell Physical Name, Type,// Level,// Level2, ICgraph Contact// Layer].extern ic_process@@$signal_via_cell = [["/user/layout/a9510", 1, 1, 2, 404],["/user/layout/a9500", 1, 2, 3, 472],["/user/layout/via2_1", 2, 1, 2, 504],["/user/layout/via2_2", 2, 2, 3, 572],["/user/layout/via3_1", 3, 1, 2, 604],];

IC Station User’s Manual, v8.9_920-40

Page 579: Icstation User Manual @Vins

Technology Definition Process Examples

// ####### Layer to Layer Spacing Definitions #######// Purpose: Explicitly defines minimum spacing values// between objects on ICgraph layers.// Form: Vector of [ICgraph layer #, ICgraph layer #,// Spacing]extern ic_process@@$layer_spacing = [[ "poly", "poly.wire2", 2.750 ],[ "poly", "poly.wire3", 2.655 ],[ "poly.wire2", "poly.wire2", 2.435 ],[ "poly.wire2", "poly.wire3", 2.455 ],[ "poly.wire3", "poly.wire3", 2.445 ],[ "metal1", "metal1.wire2", 2.755 ],[ "metal1", "metal1.wire3", 2.650 ],[ "metal1.wire2", "metal1.wire2", 2.365 ],[ "metal1.wire2", "metal1.wire3", 2.375 ],[ "metal1.wire3", "metal1.wire3", 2.385 ],[ "metal2", "metal2.wire2", 2.450 ],[ "metal2", "metal2.wire3", 2.355 ],[ "metal2.wire2", "metal2.wire2", 2.225 ],[ "metal2.wire2", "metal2.wire3", 2.220 ],[ "metal2.wire3", "metal2.wire3", 2.235 ],[ "404, 404, 2.145],[ "via1", "via2", 2.140],[ "metal1", "via2", 2.445],[ "via1", "metal.wire2", 2.440],];// ####### Standard Cell Site Definitions #######// Purpose: Specifies the standard cell site types and// associated geometric cells.// Form: Vector of [Site Number, PORT_SITE | CELL_SITE,// Feedthru Cell Name, Left Cap// Cell Name, Right Cap Cell Name]extern ic_process@@$site_type = [[3, @PORT_SITE, "", "", ""],[1, @CELL_SITE, "a9450", "", ""]];// ####### Port style definitions #######// Purpose: Specifies the shapes to be created when autoplacing unplaced ports.// Form: Vector of [ Port Style Name,// Vector of [ Width, Level ]// ]extern ic_process@@$port_styles = [

IC Station User’s Manual, v8.9_9 20-41

Page 580: Icstation User Manual @Vins

Process Examples Technology Definition

["a9190", [ 3.000, 3 ]],["a9130", [ 3.000, 2 ], [ 3.000, 3 ]],["a9120s", [ 20.000, 3 ]],["a9120d", [ 20.000, 3 ]]];//The port style definition for the "a9130" port shape is an//example of a multi-layer port. The automatic router will//automatically place a via on this port shape.///////// Port height definition ////////// Purpose: Specifies the height of all port shapes (i.e.dimension perpendicular to side.)// Form: Floating point value.// Example: extern ic_process@@$port_height = 3.0;extern ic_process@@$port_height = 2.000;// ###### Closely Tied Layer Sets ######// Purpose: Define names of the closely tied layer sets.// Form: Vector of layer set names.extern ic_process@@$closely_tied = [];

Process Variable Definitions

The following is a Process Variable definitions example:

extern ic_process@@$process_name = "proc";extern ic_process@@$precision = 1000;extern ic_process@@$unit_length = 1.0e-6;extern ic_process@@$user_grid = 8.000;extern ic_process@@$mfg_grid = 0.010;

IC Station User’s Manual, v8.9_920-42

Page 581: Icstation User Manual @Vins

Technology Definition Process Examples

Layer Table Information

The following are examples of information in the Layer Table:

$define_layer_name("metal1.ext", 114, @noreplace);$define_layer_name("via.ext", 115, @noreplace);$define_layer_set("metal1.map", @or_op, @replace, ["metal1"]);$define_layer_set("metal1.map", @or_op, @replace, ["metal1.map", "metal1.ext"]);$define_layer_set("via.map", @or_op, @replace, ["via"]);$define_layer_set("via.map", @or_op, @replace, ["via.map", "via.ext"]);$define_layer_name("m1.blkg", 46, @replace);$define_layer_name("m2.blkg", 44, @replace);$set_layer_appearance(@normal, "m1.blkg", @combination, void, "Orange", 0, "Orange", "Orange");$set_layer_appearance(@select, "m1.blkg", @combination, 3, "Orange", 0, "Orange", "Orange");

Layer Names

The following are examples of layer names which you define with the$define_layer_name() function:

$define_layer_name("metal2.ext", 112, @noreplace);$define_layer_name("contact.ext", 113, @noreplace);$define_layer_name("metal1.ext", 114, @noreplace);$define_layer_name("m1.blkg", 46, @replace);$define_layer_name("m2.blkg", 44, @replace);

Routing Level Process Variable Definition

The following is an example of a$routing_level Process Variable definition:

// ####### Routing Level Definitions #######// Purpose: Assigns direction, minimum spacing, base and// blockage layer for each routing level.// Form: Vector of [Level Name, Preferred Routing// Direction, Min Spacing, Base// Layer, Blockage Layer]

IC Station User’s Manual, v8.9_9 20-43

Page 582: Icstation User Manual @Vins

Process Examples Technology Definition

extern ic_process@@$routing_level = [ ["metal1.map", @HORIZONTAL, 2.500, "metal1.ext", "m1.blkg"], ["metal2.map", @VERTICAL, 2.500, "metal2.ext", "m2.blkg"]];

Wiring Type Process Variable Definition

The following is an example of a$wiring_type Process Variable definition:

// ####### Defines Wiring Layers #######// Purpose: Assigns ICgraph layers to wire types by// routing levels.// Form: Vector of [Wire Type,// Vector of [ICgraph Layer, Routing// Width] ... for each route levelextern ic_process@@$wiring_type = [ [1, ["metal1", 3.000], ["metal2", 3.000] ]];

Power Net Names Process Variable Definition

The following is an example of a$power_net_namesProcess Variable definition:

// ####### Power Net Name Definitions #######// Purpose: Define the power net names used.// Form: Vector of [Power Net Name, Net Type].

extern ic_process@@$power_net_names = [ ["VCC", @POWER_SUPPLY], ["VSS", @POWER_SUPPLY], ["VDD", @POWER_SUPPLY]];

Power Styles Process Variable Definition

The following is an example of a$power_styles Process Variable definition:

// ####### Power Routing Definitions #######// Purpose: Defines the power styles to be used for// power routing.// Form: Vector of [Power Style Type, Power Name,

IC Station User’s Manual, v8.9_920-44

Page 583: Icstation User Manual @Vins

Technology Definition Process Examples

// Route Level, ICgraph Layer,// Width, Gap, Bus Count]

extern ic_process@@$power_styles = [ [@INTERNAL_ROW, "VCC", 1, "metal1", 10.000, 0.000, 1], [@ROW_TO_BUS, "VCC", 1, "metal1", 10.000, 0.000, 1], [@LEFT_VERTICAL_BUS, "VCC", 2, "metal2", 60.000, 0.000, 1], [@TIE_DOWN, "VCC", 1, "metal1", 5.000, 0.000, 1], [@INTERNAL_ROW, "VSS", 1, "metal1", 10.000, 0.000, 1], [@ROW_TO_BUS, "VSS", 1, "metal1", 10.000, 0.000, 1], [@RIGHT_VERTICAL_BUS, "VSS", 2, "metal2", 60.000, 0.000, 1], [@TIE_DOWN, "VSS", 1, "metal1", 5.000, 0.000, 1]];

Signal Via Cell Process Variable Definition

The following is an example of a$signal_via_cell Process Variable definition:

// ####### Signal Via Name Declarations #######// Purpose: Defines via types for use in design.// Form: Vector of [Via Cell Physical Name, Type,// Level1, Level2, ICgraph Contact// Layer].extern ic_process@@$signal_via_cell = [["/user/layout/a9510", 1, 1, 2, 404]["/user/layout/a9500", 1, 2, 3, 472],];

Layer Spacing Process Variable Definition

The following is an example of a$layer_spacing Process Variable definition:

// ####### Layer to Layer Spacing Definitions #######// Purpose: Explicitly defines minimum spacing values// between objects on ICgraph// layers.// Form: Vector of [ICgraph layer #, ICgraph layer #,// Spacing]

IC Station User’s Manual, v8.9_9 20-45

Page 584: Icstation User Manual @Vins

Process Examples Technology Definition

extern ic_process@@$layer_spacing = [["metal1", "metal2", 2.00]["via", "via", 5.00]];

Site Type Process Variable Definition

The following is an example of a$site_type Process Variable definition:

// ####### Standard Cell Site Definitions #######// Purpose: Specifies the standard cell site types and// associated geometric cells.// Form: Vector of [Site Number, PORT_SITE | CELL_SITE,// Feedthru Cell Name, Left// Cap Cell Name, Right Cap Cell Name]

extern ic_process@@$site_type = [ [3, @CELL_SITE, "", "", ""], [2, @PORT_SITE, "", "", ""], [1, @CELL_SITE, "", "", ""]];

Port Styles Process Variable Definition

The following is an example of a$port_styles Process Variable definition:

// ####### Port style definitions #######// Purpose: Specifies the shapes to be created when// autoplacing unplaced ports.// Form: Vector of [ Port Style Name,// Vector of [ Width, Level ]]extern ic_process@@$port_styles = [ ["vss_port", [ 10.000, 1 ] ], ["vcc_port", [ 10.000, 1 ] ], ["signal_port", [ 3.000, 1 ] ]];

IC Station User’s Manual, v8.9_920-46

Page 585: Icstation User Manual @Vins

Technology Definition Process Examples

the

r own

d

Port Height Process Variable Definition

The following is an example of a$port_height Process Variable definition:

///////// Port height definition ////////// Purpose: Specifies the height of all port shapes// (i.e. dimension perpendicular to side.)// Form: Floating point value.// Example: extern ic_process@@$port_height = 3.0;

extern ic_process@@$port_height = 2.500;

Closely Tied Process Variable Definition

The following is an example of a$closely_tied Process Variable definition:

// ###### Closely Tied Layer Sets ######// Purpose: Define names of the closely tied layer sets.// Form: Vector of layer set names.

extern ic_process@@$closely_tied = [ [ "diffusion", "poly" ]];

Skeleton Process Userware File

This section shows you a skeleton Process Userware File (PUF) that definesdefault values for the mandatory Process Variables and null values for otherProcess Variables. You can use this skeleton PUF as a template to create youcustom PUF. The file is named ic_process.ample; you can find it in$MGC_HOME/shared/pkgs/ic/userware/default.

Below is the first part of the skeleton PUF. It starts with the declaration of theProcess Variables $precision, $process_name, $unit_length, $user_grid, an$mfg_grid.

// ic_process.ample///// V A R I A B L E S// default process valuesextern $precision = 1000;extern $process_name = "Default";

IC Station User’s Manual, v8.9_9 20-47

Page 586: Icstation User Manual @Vins

Process Examples Technology Definition

s thetses.

the

extern $unit_length = 1.0e-06;///////// Miscellaneous Settings ////////extern $user_grid = 1.000;extern $mfg_grid = 0.001;

The following pages show the rest of the skeleton PUF. This section containProcess Variables used to do tasks related to IC Station (for example, LayouVerification, Automated Layout, and promotion to the CE or CBC mode). Thevalues are set to empty vectors ([]); you should set them with your own value

Each Process Variable has a short explanation and a brief example built intoASCII code. This provides a template to help you create PUFs that use theAutomated Layout tools in your design. For more information on all of thereserved Process Variables, refer to the section “Process Variable Dictionary” intheIC Station Reference Manual.

//////// Routing Level Definitions //////////Purpose: Assigns direction, minimum spacing, base and //blockage layer for// each routing level.// Form: Vector of [Level Name, Preferred Routing //Direction, Min Spacing, Base Layer, //Blockage Layer]// Example:// extern $routing_level = [// ["METAL1", @HORIZONTAL, 2.000, 30, 33],// ["METAL2", @VERTICAL, 4.000, 31, 34]// ];extern $routing_level = [];///////// Wiring Layer Definitions ////////// Purpose: Assigns ICgraph layers to wire types by //routing levels.// Form: Vector of [Wire Type,// Vector of [ICgraph Layer, Routing Width] //... for each route level// Example:// extern $wiring_type = [// [1, [30, 2.000], [31, 4.000] ],// [2, [30, 3.000], [31, 5.000] ]// ];extern $wiring_type = [];///////// Power Net Name Definitions ////////

IC Station User’s Manual, v8.9_920-48

Page 587: Icstation User Manual @Vins

Technology Definition Process Examples

// Purpose: Define the power net names used.// Form: Vector of [Power Net Name, Net Type].// Example:// extern $power_net_names = [// ["VCC", @POWER_SUPPLY],// ["VSS", @POWER_SUPPLY],// ["VDD", @POWER_SUPPLY]// ];extern $power_net_names = [];///////// Power Routing Definitions ////////// Purpose: Defines the power styles to be used for //power routing.// Form: Vector of [Power Style Type, Power Name, //Route Level, ICgraph Layer, Width, Gap, // BusCount]// Example:// extern $power_styles = [// [@PAD_TO_BUS, "VSS", 1, 30, 10.000, 0.000, //1],// [@RIGHT_VERTICAL_BUS, "VSS", 1, 30, 10.000, //0.000, 1],// [@PAD_TO_BUS, "VDD", 1, 30, 10.000, 0.000, //1],// [@LEFT_VERTICAL_BUS, "VDD", 1, 30, 10.000, //0.000, 1],// ];extern $power_style = [];///////// Signal Via Name Declarations ////////// Purpose: Defines via types for use in design.// Form: Vector of [Via Cell Physical Name, Type, //Level1, Level2, ICgraph Contact Layer].// Example:// extern ic_process@@$signal_via_cell = [// ["viacell", 1, 1, 2, 8]// ];extern $signal_via_cell = [];///////// Layer to Layer Spacing Definitions ////////// Purpose: Explicitly defines minimum spacing values //between objects on ICgraph layers.// Form: Vector of [ICgraph layer, ICgraph layer, spacing]//// Example:// extern $layer_spacing = [

IC Station User’s Manual, v8.9_9 20-49

Page 588: Icstation User Manual @Vins

Process Examples Technology Definition

// [8, 8, 3.00],// [1, 8, 3.00],// [2, 8, 4.00]// ];extern $layer_spacing = [];///////// Standard Cell Site Definitions ////////// Purpose: Specifies the standard cell site types and //associated geometric cells.// Form: Vector of [Site Number, PORT_SITE | CELL_SITE,// Feedthru Cell Name, Left Cap Cell Name, //Right Cap Cell Name]// Example:// extern $site_type = [// [1, @CELL_SITE, "", "", ""],// [2, @CELL_SITE, "", "", ""],// [3, @PORT_SITE, "", "", ""]// ];extern $site_type = [];///////// Port style definitions ////////// Purpose: Specifies the shapes to be created when //autoplacing unplaced ports.// Form: Vector of [ Port Style Name,// Vector of [ Width, Level ]// ]// Example:// extern $port_styles = [// [ "signal_port", [3.00, 2] ],// [ "power_port", [10.00, 2] ]// ];extern $port_styles = [];///////// Port height definition ////////// Purpose: Specifies the height of all port shapes //(i.e.dimension perpendicular to side.)// Form: Floating point value.// Example: extern ic_process@@$port_height = 3.0;extern $port_height = 1.0;///////// Closely Tied Layer Sets ////////// Purpose: Define layers that should be considered// closely tied by the compactor.// Form: Vector of [layer, layer1, layer2, ..., layern]// Example:// external $closely_tied = [// [1,2,3],

IC Station User’s Manual, v8.9_920-50

Page 589: Icstation User Manual @Vins

Technology Definition Process Examples

t youen

as at of

by

fined:

// [2,3]// ];extern $closely_tied = [];

Custom Process Userware File

This section gives an example of a custom Process Userware File (PUF) thamight create and name "simple_proc". The Process Variables have been givnew values, and the layer table has been set up with layer names and layerattributes that make sense for some design.

Below is the first part of a custom PUF. Notice the use of the scope identifier"ic_process@@" before the Process Variables. If you use the skeleton PUFtemplate to create your own PUF, you must include the scope identifier in froneach Process Variable AMPLE function or user-defined function.

//// execute this file using $dofile for Process //"simple_proc"extern ic_process@@$process_name = "simple_proc";extern ic_process@@$precision = 1000;extern ic_process@@$unit_length = 1.0e-6;extern ic_process@@$user_grid = 6.500;extern ic_process@@$mfg_grid = 0.000;

Below is the next section of the custom PUF, which contains information usedProcess to describe layer table information. The first set of layer commandsdefines layer names to be used by this PUF. Here, five layers have been dem1.base, m2.base, m1.blk, m2.blk, and a contact layer. The layer numbersreference layers used by IC Station.

//////////////// Layer Names ////////////////// Purpose: Define names of layers used in this design and// associate those names with ICgraph layer numbers.// Form: $define_layer_name("layer name", layer number);$define_layer_name("m1.base", 12, @replace);$define_layer_name("m2.base", 14, @replace);$define_layer_name("m1.blk", 44, @replace);$define_layer_name("m2.blk", 46, @replace);$define_layer_name("contact", 8, @replace);

IC Station User’s Manual, v8.9_9 20-51

Page 590: Icstation User Manual @Vins

Process Examples Technology Definition

owreen.

. Int of

y are

Below is the next section of the custom PUF, which contains a description of heach of the layers previously defined will be displayed as it is drawn on the sc

//////////////// Layer appearance ////////////////// Purpose: Setup layer appearance for layers used in// my design.// Form: $set_layer_appearance(select state,// ICgraph layer name, line style, line width,// line color, fill pattern number, fill color,// text color)$set_layer_appearance(@normal, "contact", @solid, 1,"red", 0, "red", "white");$set_layer_appearance(@select, "contact", @solid, 3, "red",0, "red", "white");$set_layer_appearance(@normal, "m1.base", @solid, 1, "blue",1, "blue", "white");$set_layer_appearance(@select, "m1.base", @solid, 3, "blue",0, "blue", "white");$set_layer_appearance(@normal, "m2.base", @solid, 1, "pink",1, "pink", "white");$set_layer_appearance(@select, "m2.base", @solid, 3, "pink",0, "pink", "white");$set_layer_appearance(@normal, "m1.blk", @solid, 1, "yellow",0, "yellow", "white");$set_layer_appearance(@select, "m1.blk", @solid, 3, "yellow",0, "yellow", "white");$set_layer_appearance(@normal, "m2.blk", @solid, 1, "orange",0, "orange", "white");$set_layer_appearance(@select, "m2.blk", @solid, 3, "orange",0, "orange", "white");

Below is the rest of the custom PUF. This part is similar to the skeleton PUFthe custom PUF, the Process Variables have been assigned values. This sevariables is also used by the IC Station Layout Verification and AutomatedLayout tools. When you set this set of variables, you must make sure that theuseful in the design you are working on.

//////////////// Routing Level Definitions// Purpose: Assigns direction, minimum spacing, base and// blockage layer for each routing level.

IC Station User’s Manual, v8.9_920-52

Page 591: Icstation User Manual @Vins

Technology Definition Process Examples

// Form: Vector of [Level Name, Preferred Routing //Direction, Minimum Spacing, Base Layer, //Blockage Layer]extern ic_process@@$routing_level = [ ["M1", @HORIZONTAL, 2.500, "m1.base", "m1.blk"], ["M2", @VERTICAL, 2.500, "m2.base", "m2.blk"]];//////////////// Wiring Layer Definitions// Purpose: Assigns ICgraph layers to wire types by// routing levels.// Form: Vector of [Wire Type,// [Layer, Width],// [Layer, Width],... ]extern ic_process@@$wiring_type = [ [1, ["m1.base", 3.000], ["m2.base", 3.000] ]];//////////////// Power Net Name Definitions// Purpose: Define the power net names used.// Form: Vector of [Power Net Name, Net Type].extern ic_process@@$power_net_names = [ ["VCC", @POWER_SUPPLY], ["VSS", @POWER_SUPPLY], ["VDD", @POWER_SUPPLY]];//////////////// Power Routing Definitions// Purpose: Defines the power styles to be used for// power routing.// Form: Vector of [Power Style Type, Power Name,// Route Level, ICgraph Layer, Width, Gap, Bus_count]//extern ic_process@@$power_styles = [ [@INTERNAL_ROW, "VCC", 1, "m1.base", 10.000, 0.000, 1], [@ROW_TO_BUS, "VCC", 1, "m1.base", 10.000, 0.000, 1], [@LEFT_VERTICAL_BUS, "VCC", 2, "m2.base", 30.000, 0.000, 1], [@TIE_DOWN, "VCC", 1, "m1.base", 5.000, 0.000, 1], [@INTERNAL_ROW, "VSS", 1, "m1.base", 10.000, 0.000, 1], [@ROW_TO_BUS, "VSS", 1, "m1.base", 10.000, 0.000, 1],

IC Station User’s Manual, v8.9_9 20-53

Page 592: Icstation User Manual @Vins

Process Examples Technology Definition

[@RIGHT_VERTICAL_BUS, "VSS", 2, "m2.base", 30.000, 0.000, 1], [@TIE_DOWN, "VSS", 1, "m1.base", 5.000, 0.000, 1]];/////////////// Signal Via Name Declarations// Purpose: Defines via types for use in design.// Form: Vector of [Via Cell Physical Name, Type,// Level1, Level2, IC Station Contact Layer].extern ic_process@@$signal_via_cell = [ ["$MGC_HOME/user/danw/cells/via_cell", 1, 1, 2, "contact"]];/////////////// Layer to Layer Spacing Definitions// Purpose: Specifies the standard cell site types and// associated geometric cells.// Form: Vector of [ IC Station layer spacing ];extern ic_process@@$layer_spacing = [];/////////////// Standard Cell Site Definitions// Purpose: Specifies the standard cell site types and// associated geometric cells.// Form: Vector of [Site Number, @PORT_SITE|@CELL_SITE,// Feedthru Cell Name, Left Cap Cell Name,// Right Cap Cell Name]extern ic_process@@$site_type = [ [3, @CELL_SITE, "", "", ""] [2, @CELL_SITE, "", "", ""] [1, @CELL_SITE, "", "", ""]];/////////////// Port Style Definitions// Purpose: Specifies the shapes to be created when// autoplacing unplaced ports.// Form: Vector of [Port Style Name,// Vector of [Width, Level]// ]extern ic_process@@$port_styles = [ ["vss_port", [10.000, 1] ], ["vcc_port", [10.000, 1] ], ["signal_port", [3.000, 1] ]];/////////////// Port Height Definition// Purpose: Defines the dimension of ports that is// perpendicular to the row.extern ic_process@@$port_height = 3.000;

IC Station User’s Manual, v8.9_920-54

Page 593: Icstation User Manual @Vins

Technology Definition Process Related Messages

henree

llyon

as

er

this

/////////////// Closely Tied Layer Sets// Purpose: Define names of the closely tied layer sets// Form: Vector of closely tied layers.extern ic_process@@$closely_tied = [];

Process Related MessagesThis appendix covers some of the messages that IC Station might display wyou are using Process related functions. These messages are divided into thtypes:

• Error messages are the most serious, indicating either that IC Stationcannot complete a valid function for some reason or that the function isinvalid.

• Warning messagesindicate a condition between notes and errors, typicaindicating a condition where you will want to correct an unusual conditibefore proceeding.

• Note messagesare the least serious, typically indicating that a function hexecuted successfully, but with unusual results.

Error Messages

The following error messages indicate that “some_name” is not a known layname, layer alias, or layer set in this Process.

• Unknown layer name "some_name".

• Unknown layer set name "some_name".

• Unknown layer alias "some_name".

The following error messages indicate that "some_name" is already known inProcess, so you cannot change it.

• Layer name "some_name" already known.

IC Station User’s Manual, v8.9_9 20-55

Page 594: Icstation User Manual @Vins

Process Related Messages Technology Definition

ameThe

efore

one

• Known layer set name "some_name".

The following error messages indicate that "some_name" is a reserved layer nor layer set name in IC Station, so you cannot use it the way you wanted to. reserved layer names are "active_overflow," "device_iobj," "drc_results,""masklv_results," "flyline," "fp1," "outline," "overflow," "gds_error," and "row."The reserved layer set names are "all," "named," and "named_or_used."

• Cannot remove reserved layer name "some_name".

• Illegal to redefine reserved layer name"some_name".

• Illegal to alias reserved layer name "some_name".

• Cannot remove reserved layer set name "some_name".

This error message indicates that "some_name" is a known layer set and thercannot be used in functions that require a single layer.

• Layer name "some_name" refers to a layer set, notto an individual layer.

The following error messages indicate an internal IC Station error. If you seeof these messages, contact Mentor Graphics Customer Service.

• Remove of layer name "some_name" failed due tointernal error.

• Remove of layer set "some_name" failed due tointernal error.

• Internal error in layer manager

The following error messages indicate that the layer name or number youspecified cannot be defined or undefined in the way you requested:

• Cannot create the temporary layer definition for"some_name" because "some_name" is a name in theactive process, which is not reserved.

IC Station User’s Manual, v8.9_920-56

Page 595: Icstation User Manual @Vins

Technology Definition Process Related Messages

n

iable

.

riable

• "some_name" is a primary layer (set) name, not analias.

• "some_name" is an alias, not a primary layer (set)name. Layer ## already has primary name"some_name".

This error message indicates that the layer name for the given layer has beereplaced with "some_name."

• Replacing layer ## primary name "some_name".

The following error messages indicate that you tried to change a Process Varto an invalid value:

• A precision of "##" is invalid. Must be larger than0.

• Wrong type for process variable "some_name".

• Fill pattern "##" is invalid. Valid values are 0 -255.

• The variable "some_name" is used by ICgraph and maynot be changed in that way.

The following error messages indicate that two of your Processes areincompatible for the reason shown. Be sure to correct this before continuing

• Process precision of ## conflicts with the currentvalue of ##.

• Process unit length of ## conflicts with thecurrent value of ##.

The following error message indicates that you tried to access a Process Vathat has not been defined:

• Process variable "some_name" not found.

IC Station User’s Manual, v8.9_9 20-57

Page 596: Icstation User Manual @Vins

Process Related Messages Technology Definition

our

asthe

iable

The following error messages indicate problems with the attempt to access yProcess Definition Fileset on disk.

• Process "some_name" already exists. Nothingcreated.

• The default process cannot be saved.

• The process could not be saved due to unexpectederror.

The following error message indicates that the process for your current cell hnot been loaded because of an unexpected error. You should either correct error and reload the process, or use the $set_cell_process function beforecontinuing.

• Command not allowed when the process is notcorrectly set.

The following error messages indicate that you tried to change a Process Varto an invalid value.

• Element "some_name" of process variable"process_variable_name" must be a type_name.

• Each vector element of "some_name" must have ##items.

• Bad routing level in process variable "some_name".

• Undefined power "some_name" in process variable"process_variable_name".

• User grid value must be greater than or equal to1/$precision.

• Current power styles reference power name(s) notfound in new power names list.

IC Station User’s Manual, v8.9_920-58

Page 597: Icstation User Manual @Vins

Technology Definition Process Related Messages

es or

.

e or

• Variable "some_name" may not be assigned to untilrouting levels have been defined.

• Process variable "some_name" must be a type_name.

The following error message indicates that the pathname specified for the rulProcess couldn't be opened, so the conversion failed.

• Unable to create file "some_name".

The following error messages indicate that two of your Processes areincompatible for the reason shown. Be sure to correct this before continuing

• Layer name "some_name" for layer ## maps to layer## in the active process.

• Layer name "some_name" is a layer set in the activeprocess.

• Layer set "some_name" is a layer name for layer"##" in the active process.

The following error messages indicate a problem with your attempt to reservunreserve a Process:

• The process is not reserved for edit. Nothing done.

• The default process cannot be reserved.

• Concurrency conflict. Cannot reserve process"some_name".

• The process could not be unreserved due to anunexpected error.

IC Station User’s Manual, v8.9_9 20-59

Page 598: Icstation User Manual @Vins

Process Related Messages Technology Definition

ssarea

, then

tivebout

way

The following error message indicates that you tried to execute $load_procewhen an IC area was active. $load_process is valid only when the IC Sessionis the active area. You should first set the Session area to be your active areause the $load_process function.

• The active process cannot be changed when a context(for example,an IC graphics window) is active.

The following error message indicates that you cannot edit because your AcProcess is not compatible with your Session Process. For more information ahow to resolve this problem, refer to the section “Multiple Processes.”

• The process for this cell is not compatible withthe active process.

Warning Messages

The following warning messages indicate that the Process has changed in athat probably impacts the Rule file. Reload the Rule file before continuing.

• The process variable "some_name" is used in therule file. Rules may need to be reloaded.

• The layer name or layer set "some_name" is used inthe rule file. Rules may need to be reloaded.

• Precision used for the rule file was ##. Rulesshould be reloaded.

• Unit length used for the rule file was ##. Rulesshould be reloaded.

IC Station User’s Manual, v8.9_920-60

Page 599: Icstation User Manual @Vins

Technology Definition Process Related Messages

hes and

rger

rn will

urcess;,

The following warning messages indicate that a Process couldn't be loadedcorrectly. You will probably want to correct the problem and then try to load tProcess again. If you decide to proceed, you should first use $report_procesother functions to check on the state of the Process.

• The process has been loaded, but not all of itsinformation was loaded correctly.

• The process "some_name" could not be loaded. Usethe Set Cell Process command to correct theproblem. The default process will be usedtemporarily.

Note Messages

The following note message indicates that $user_unit value you specified is lathan a millimeter. You should correct it before continuing.

• User unit length of "%1D" is larger than 1 mm inlength.

The following note messages indicate that you are using the temporary layemanager because the Process is not reserved. Temporary layer informationot be saved.

• Using a temporary layer name or layer set NOT froma reserved process.

• The session process is not reserved, so this changeto layer appearance will not be persistent.

The following note messages indicate that $create_process succeeded. If yoactive area was the IC Session, the new Process will become the Session Prothe Session Process will not be changed.

• Process "some_name" created and set active.

• Process "some_name" created but NOT set active.

IC Station User’s Manual, v8.9_9 20-61

Page 600: Icstation User Manual @Vins

Process Related Messages Technology Definition

ocess,

The following note messages indicate that $unreserve_process, $reserve_pror $save_process worked correctly.

• Edit reservation canceled for process "some_name".

• Process "some_name" is reserved for edit.

• Process "some_name" has been saved.

IC Station User’s Manual, v8.9_920-62

Page 601: Icstation User Manual @Vins

frface

o the

ththe the andll’s flat

Chapter 21Calibre Interface

OverviewIf you are a Calibre user, you can verify the physical and electrical integrity oyour IC designs, and then view and debug the results, using the Calibre intein IC Station. Using theCalibre pulldown menu from the IC Cell Window, youcan perform flat or hierarchical processing and display the results.

This chapter describes how to invoke Calibre from IC Station. However, forin-depth information on using Calibre and how Calibre processes data, refer tCalibre Verification User’s Manual. Additionally, for information on writing therequired Rule file for Calibre processing, refer to theStandard Verification RuleFormat (SVRF) Manual.

Calibre DRC/DRC-H

Calibre DRC/DRC-H, an edge-based design rule checking system, works wipolygons’ edges. When an IC designer creates layers, Calibre DRC checks edges located on those layers by reading the database flat and operating onresulting flat geometries. Calibre DRC-H maintains the database’s hierarchystores, analyzes and processes data once per cell instead of once for each ceplacement.

IC Station User’s Manual, v8.9_9 21-1

Page 602: Icstation User Manual @Vins

Overview Calibre Interface

four

ified

used

nd

.

es

The DRC environment also allows you to view error layers generated by theCalibre lithography tools. These tools include:

• OPC: Generates layers containing OPC-corrected geometries for thespecified input layer(s).

• ORC: Generates layers containing edges that were in error on the specinput layer(s).

• PRINTimage: Generates layers containing simulated SEM for thespecified input layer(s).

• PSMgate: Generates layers containing the phase polygons that can beto produce a phase-shifting mask.

Refer to theCalibre Design for Manufacturability User’s Manual for CalibreOPCpro, Calibre ORC, Calibre PRINTimage and Calibre PSMgate process aprocedures.

For more detailed information on Calibre DRC/DRC-H, refer to the section “DRCConcepts” in theCalibre Verification User’s Manual.

Calibre LVS/LVS-H

Calibre LVS/LVS-H performs flat and hierarchical layout-versus-schematiccomparisons. LVS/LVS-H processing consists of connectivity extraction anddevice recognition.

Discrepancies between the layout and schematic appear in the LVS report,showing the differences between circuits from both a source and a layoutperspective. These two perspectives allow you to compare all possible views

For more detailed information on Calibre LVS/LVS-H, see section “ConnectivityExtraction” in theCalibre Verification User’s Manual.

Calibre RVE

Calibre RVE is a graphical user interface designed to help you debug CalibrLVS-H results and browse Calibre DRC/DRC-H results. The “icrve” module i

IC Station User’s Manual, v8.9_921-2

Page 603: Icstation User Manual @Vins

Calibre Interface Using the Calibre Interface in IC Station

ccess

n

atale,

tion.

tion.

at

loaded as a shared library when ICgraph starts. This module allows you to aCalibre RVE.

Calibre RVE offers a textual Spice netlist browser that can highlight andcross-probe connectivity and device information. You are also able to viewhierarchical discrepancies on a cell-by-cell basis, and select specific errors owhich you would like more detailed information.

For more detailed information on RVE, refer to the section“Calibre RVE/QDB-H” in theCalibre Verification User’s Manual.

Using the Calibre Interface in IC StationBefore using the Calibre interface, you must do the following:

1. Acquire the applicable Calibre license(s).

2. Install Calibre v8.7 or later.

3. Create an SVRF Rule file, which contains design rule and connectivity dnecessary for Calibre processing. For information on creating a Rule firefer to theStandard Verification Rule Format (SVRF) Manual.

4. Create a layout database, which contains a circuit’s geometric descripFor information on setting up a layout database, refer to “Layout Database”in theCalibre Verification User’s Manual.

5. Create a source database, which contains a circuit’s electrical informaFor information on setting up a source database, refer to “Source Database”in theCalibre Verification User’s Manual.

6. Create a netlist, if running LVS. For more information on the netlist formneeded in LVS, refer to “Spice Format” in theCalibre Verification User’sManual.

IC Station User’s Manual, v8.9_9 21-3

Page 604: Icstation User Manual @Vins

Using the Calibre Interface in IC Station Calibre Interface

g

e

Using the IC Session Calibre Menu

The Calibre pulldown menu in the IC Cell Window, shown inFigure 21-1,provides you with quick access to the Calibre tools. From this menu, you caninvoke the Calibre DRC, LVS, PEX windows, and Calibre RVE. The followinsections describe these menu items.

Figure 21-1. Calibre Pulldown Menu

Using Calibre > Run DRC

TheCalibre > Run DRC menu item displays the Setup Calibre dialog box,shown inFigure 21-2. You use this dialog box to enter the path to the Calibresoftware tree. If you have already specified the Calibre software tree using thCalibre > Setup menu item, this dialog box is not displayed.

Figure 21-2. Setup Calibre Dialog Box for DRC

IC Station User’s Manual, v8.9_921-4

Page 605: Icstation User Manual @Vins

Calibre Interface Using the Calibre Interface in IC Station

e

ce,

After you specify the path to the Calibre tree and execute the dialog box, theCalibre Interactive-DRC dialog box displays as shown inFigure 21-3.

The Calibre DRC window allows you to specify options and selected Rule filstatements that execute the desired Calibre DRC functionality.

Figure 21-3. Calibre Interactive - DRC Dialog Box

For instructions on using the Calibre Interactive - DRC graphical user interfarefer to the “Graphical Interface Overview” and “Hierarchical DRC” sections intheCalibre Verification User’s Manual.

IC Station User’s Manual, v8.9_9 21-5

Page 606: Icstation User Manual @Vins

Using the Calibre Interface in IC Station Calibre Interface

nre

Using Calibre > Run LVS

TheCalibre > Run LVS menu item displays the Setup Calibre dialog box showin Figure 21-4. You use this dialog box to enter the path to the Calibre softwatree. If you have already specified the Calibre software tree using theCalibre >Setup menu item, this dialog box is not displayed.

Figure 21-4. Setup Calibre Dialog Box for LVS

IC Station User’s Manual, v8.9_921-6

Page 607: Icstation User Manual @Vins

Calibre Interface Using the Calibre Interface in IC Station

e,

After you specify the path to the Calibre tree and execute the dialog box, theCalibre Interactive-LVS dialog box displays as shown inFigure 21-3.

The Calibre LVS window allows you to specify options and selected rule filestatements that execute the desired Calibre LVS functionality.

Figure 21-5. Calibre Interactive - LVS Dialog Box

For instructions on using the Calibre Interactive - LVS graphical user interfacrefer to sections “Graphical Interface Overview” and “Hierarchical LVS” in theCalibre Verification User’s Manual.

IC Station User’s Manual, v8.9_9 21-7

Page 608: Icstation User Manual @Vins

Using the Calibre Interface in IC Station Calibre Interface

e

ce

n

Using Calibre > Start RVE

TheCalibre > Start RVE menu item displays the Setup Calibre dialog boxshown inFigure 21-6. You use this dialog box to enter the path to the Calibresoftware tree. If you have already specified the Calibre software tree using thCalibre > Setup menu item, this dialog box is not displayed.

Figure 21-6. Setup Calibre Dialog Box for RVE

After you specify the path to the Calibre tree and execute the dialog box, theCalibre Interactive-RVE dialog box displays as shown inFigure 21-3.

For instructions on using the Calibre Interactive - RVE graphical user interfa(GUI), refer to section “RVE/QDB-H and Query Server” in theCalibreVerification User’s Manual.

Using Calibre > Run PEX

TheCalibre > Run PEX menu item invokes the Calibre Interactive PEX GUI, ainterface to thexCalibre PX-C/PX-RC or theflat-extraction mode xCalibre-Hbatch parasitic extraction tools. See theUsing the Calibre Interactive PEX UserInterface manual for more information.

IC Station User’s Manual, v8.9_921-8

Page 609: Icstation User Manual @Vins

Calibre Interface IC Station to Calibre Translation

inree

u

ouhe

eich

portough

he IC

Using Calibre > Setup

TheCalibre > Setupmenu item displays the Setup Calibre dialog box shown Figure 21-7. You use this dialog box to enter the path to the Calibre software twhen you are going to invoke the Calibre Interactive - DRC and LVS tools.

You do not have to use theSetupmenu item to specify the software tree when yoinvoke Calibre Interactive - DRC or LVS tools, because you are prompted tospecify the Calibre software tree if one is not already specified. However, if ywant to change an already specified Calibre software tree, you need to use tCalibre > Setup menu item.

Figure 21-7. Setup Calibre Dialog Box

Calibre uses a TCP socket to communicate with Calibre RVE and the CalibrInteractive tools. Calibre attempts to initialize a server socket at port 9189, whis the default IPC Port number present in the Setup Calibre dialog box. If thatis being used, the code searches for a free socket port in the range 5000 thr9999. For more information on socket connections, refer to the “SocketConnections” section in theCalibre Verification User’s Manual.

IC Station to Calibre TranslationTo translate your IC Station database into Calibre intermediate format, use t$write_calibre() function. This function writes a Calibre design database fromStation that only Calibre and IC Station can read.

IC Station User’s Manual, v8.9_9 21-9

Page 610: Icstation User Manual @Vins

IC Station to Calibre Translation Calibre Interface

the

eed

you

To translate between IC Station and Calibre, perform the following steps:

1. Verify that the Layout System parameter is set in the Calibre Rule file tovalue "GDSII" before translating.

2. Select the Write Calibre palette menu item or theTranslate > WriteCalibre pulldown menu item.

The Write Calibre dialog box shown inFigure 21-8 appears.

Figure 21-8. Write Calibre Dialog Box

3. Enter the cell’s name to be translated in theIC Station Cell Names field.

All hierarchy below each specified cell is translated. The cell does not nto be open for translation to occur.

If a cell is open and active, its name appears in the entry box. However,can overwrite that cell name entry.

4. Specify the pathname, in theOutput Calibre File field, of the directorywhere you want the new Calibre intermediate format stored.

5. SelectWrite Calibre Options to specify the translation options, ifapplicable.

IC Station User’s Manual, v8.9_921-10

Page 611: Icstation User Manual @Vins

Calibre Interface IC Station to Calibre Translation

You may have loaded an options file with a dofile. If so, go to Step8.

The Write Calibre Options dialog box shown inFigure 21-9 displays.

Figure 21-9. Write Calibre Options Dialog Box

6. Specify the options you want in the Write Calibre Options dialog box.

For more information on options, refer to the “Read/Write GDSII OptionsDialog Box” table (Table 17-1 on page 17-10) in the “Importing andExporting Data” section.

7. Click OK to execute the Write Calibre Options dialog box.

8. Click OK to execute the Write Calibre dialog box.

For more information, refer to the$write_calibre() command in theIC StationReference Manual.

IC Station User’s Manual, v8.9_9 21-11

Page 612: Icstation User Manual @Vins

IC Station to Calibre Translation Calibre Interface

IC Station User’s Manual, v8.9_921-12

Page 613: Icstation User Manual @Vins

ase.. The

g

the

or to

Chapter 22XML Format

OverviewThe XML database format is an ASCII representation of an IC Station databThe ASCII database is a one-to-one representation of the IC Station databasecell and connectivity data is preserved in both the writing to XML and readinfrom XML. As all translated cells in a given XML document are created inmemory, the translation capacity is limited to your hardware resources.

Among the many uses of having an IC Station database in ASCII format arefollowing:

• You can backup the database easily

• You can edit the database directly with an ASCII editor

• You can use scripting languages to make global changes to the designcompile custom reports on the design

This chapter covers the following elements of XML format translation:

• User Interface: Describes IC Station’s graphical interface to the XMLformat functions.

• Function Reference Table: A list of XML format functions with links to theIC Station Reference Manual.

• The Document Type Definition (DTD): A description of the structure of theXML database.

IC Station User’s Manual, v8.9_9 22-1

Page 614: Icstation User Manual @Vins

User Interface XML Format

tly

t.

• XML Tutorial: Examples, suggestions, and resources for working direcwith an XML database.

User InterfaceThere are four dialog boxes available for setting up and using the XML formaThe items in the list below link to a dialog box. Following each dialog box is adescription of its fields.

• Read XML

• Read XML Options

• Write XML

• Write XML Options

Read XML

Figure 22-1 shows the Read XML dialog box.

IC Station User’s Manual, v8.9_922-2

Page 615: Icstation User Manual @Vins

XML Format User Interface

e

ls theterer.

.

Figure 22-1. Read XML Dialog Box

• XML File : The name of the XML file to read. It is a required field. Use thNavigator button to browse for a file.

• XML Cell Name: By default, the XML Cell Name field is blank and allcells in the XML file will be translated. If you enter a cell name, all the celreferenced by that cell, and their referenced cells, recursively, down toleaf cells, will also be translated. You can enter multiple cell names. Afyou enter each cell name, a new field will appear for you to enter anoth

• Output Directory : Specifies the path to store the translated data. It is arequired field. Use the Navigator button to browse for a directory.

• Read Options: This button brings up the Read XML Options dialog box

Read XML Options

Figure 22-2 shows the Read XML Options dialog box.

IC Station User’s Manual, v8.9_9 22-3

Page 616: Icstation User Manual @Vins

User Interface XML Format

are

nd a

ass nolle

ry.

Figure 22-2. Read XML Options Dialog Box

• Replace Existing Cell(s): A toggle specifying whether or not to replaceany existing cells with the same name as a cell to be written. Cell namescase-sensitive.

• Log File: A path to a file where XML transcripts, warning and errormessages are written.

• Cell Path Style: Specifies the format of the cell path names.

o Leaf Names Under Output Directory: All cells are put in the OutputDirectory using their leaf names. If the cell name contains the “/”character, the leading path is ignored; only the leaf name is used, awarning is given. All unprintable characters in the leaf name arereplaced with an underline “_”; although, with an ASCII format suchXML, unprintable characters are discouraged. In this mode, there itracking for unique cell names, so the saved version of duplicate cenames depends on the Replace Existing Cell(s) toggle. If it is on, thfinal cell will be saved; if it is off, the first cell will be saved.

o Hierarchy Created Under Output Directory : The cell’s pathcomponents are preserved when cell is saved in the output directo

IC Station User’s Manual, v8.9_922-4

Page 617: Icstation User Manual @Vins

XML Format User Interface

ath,

inme iss.

illed

.

Soft path names are stripped of their “$” and converted to a hard pso a cell named $TESTDIR/layout/cellx is saved as/OUTPUT_DIRECTORY/TESTDIR/layout/cellx.

o Use XML file paths: Ignores the output directory and saves the cellits exact path. If a cell already exists with the same name in the sapath, the Replace Existing Cell(s) toggle determines which versionsaved. You must have write permission to the destination directorie

Write XML

Figure 22-3 shows the Write XML dialog box.

Figure 22-3. Write XML Dialog Box

• IC Station Cell Names: Specifies a list of cells to be translated. You canenter multiple cell names; after you enter each cell name, a new field wappear for you to enter another. All cells in the hierarchy below the listcells also will be written.

• Output XML File : Specifies the XML filename to be created. It is arequired field. Use the Navigator button to browse for a file.

• Write Options: This button brings up the Write XML Options dialog box

IC Station User’s Manual, v8.9_9 22-5

Page 618: Icstation User Manual @Vins

User Interface XML Format

Write XML Options

Figure 22-4 shows the Write XML Options dialog box.

Figure 22-4. Write XML Options Dialog Box

• Replace Existing XML File: Toggle specifying whether or not to replaceany existing XML file with the same name as the output XML file.

• Log File: A path to a file where XML transcripts and warning and errormessages are written.

• Cell Path Style: Specifies how to write the names of the pathnameattributes for the elements listed inTable 22-1.

IC Station User’s Manual, v8.9_922-6

Page 619: Icstation User Manual @Vins

XML Format Function Reference Table

h if

e

)

)

se

L

Other pathname attributes, such as process and rules, will use softpatpossible, otherwise they will use hard path.

Following are the three Cell Path Style options:

o Leaf Names: Writes all cells with leaf names only. No check is madfor duplicate names. (CELLX)

o Soft Path: Writes all cells with soft path names. ($PROJECT/CELLX

o Hard Path: Writes all cells with hard path names. (/user/proj/CELLX

• XML Style : Specifies whether the XML style is verbose or terse. Verbois human-readable. Terse is more compact, but somewhat cryptic.

• Group File Protection: Sets the output file group permissions. Ownerpermissions are always set to Read/Write.

• Other File Protection: Sets the output file world permissions. Ownerpermissions are always set to Read/Write.

Function Reference TableTable 22-2 shows a list of functions available for setting up and using the XMformat. Each function links to theIC Station Reference Manual.

Table 22-1. Pathname Attributes

ELEMENT ATTRIBUTE

cell name

instance cellname

array cellname

via_obj name

IC Station User’s Manual, v8.9_9 22-7

Page 620: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

epear

ssignere is

. The

The Document Type Definition (DTD)The XML documents produced by the Write XML function are made up ofdeclarations defined in the document type definition (DTD). This is standardXML usage. There are three declarations that make up the XML document:element type declarations, attribute declarations, and entity declarations. ThDTD declares the structure of elements, attributes, and entities which may apin an XML database for IC Station translation.

Element Type Declarations

Element type declarations define the hierarchical structure of elements and arequirements to elements regarding their number, occurrence, and order. Thone element type declaration for every element in the XML structure. Eachdeclaration contains the element name and (generally) a list of sub-elementsdeclaration looks like the following:

<!ELEMENT design (version?, process, cell+, digest?)>

Table 22-2. XML Functions

XML Functions

$read_xml()

$write_xml()

$set_xml_logfile()

$set_xml_read_cell_path_style()

$set_xml_replace()

$set_xml_write_cell_path_style()

$set_xml_style()

$set_xml_group_protection()

$set_xml_other_protection()

IC Station User’s Manual, v8.9_922-8

Page 621: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

type

ach

ying aheoccur

they

if but it

in a

The string, <!ELEMENT, is the element declaration. The element name is“design.” In the XML database, design is the root element. The items in theparentheses are the elements in the second level of hierarchy; they are theelements of a design. Each second-level element also has a similar elementdeclaration which defines the third-level structure. The symbols following theelement names specify the requirements on the number and occurrence of eelement.Table 22-3 shows the meaning of each symbol.

You can make sense of how the XML database uses these symbols by applbasic understanding of IC design to the example element type definition for telement, design, above. The sub-element, process, has no symbol, so it mustonce, and can only occur once. The nature of design processes dictates thisrequirement. The elements, version and digest, have a question mark (?), sodo not have to occur at all, but if they do, they can only occur once. Theinformation they hold is not critical to the design structure, but can be useful they do occur once. The element, cell, has a plus (+), so it must occur once,can also occur an unlimited number of times. Again, the nature of IC designdictates that there must be one cell, but there is no limit to the number of cellsdesign.

Table 22-3. Element Control Symbols

Symbol Meaning

None An element must occur once, and can onlyoccur once.

? An element does not have to occur, but if itdoes, it can only occur once.

* An element does not have to occur at all, butit can also occur an unlimited number oftimes.

+ An element must occur at least once, but itcan also occur an unlimited number oftimes.

IC Station User’s Manual, v8.9_9 22-9

Page 622: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

der inrder,r

ted by to a

in aon

.

The element type definition can also control the order in which sub-elementsoccur. If the items are separated by a comma, they must occur in the same orthe document. If the items are separated by a pipe (|), they can occur in any obut the element control symbols still control their number and occurrence. Foexample, see the following element type definition:

<!ELEMENT port ((shape|path)*,property*)>

The elements, shape and path, can be in any order because they are separathe pipe (|), and being grouped with the parentheses. The asterisk(*) appliesboth; however, since the group is separated from the element, property, withcomma, property must be the last element in a port definition.

In some cases, an element does not have any sub-elements, but may contanumber or a string. If it contains a number or string, the element type definitiappears as follows:

<!ELEMENT origin_line (#PCDATA)>

The string, #PCDATA, means Parsed Character Data, (alphanumeric text).

Table 22-4 shows the elements declared in the IC Station XML database DTDFor more information on the elements and attributes see the section, “Element andAttribute Tables.”

Table 22-4. XML database DTD Elements

Elements

array boundary cell coords

design device digest instance

iobj library_ref net origin_line

panel path pin_ref port

port_ref process property property_text

rotate row shape text

IC Station User’s Manual, v8.9_922-10

Page 623: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

ignedte

of

ofly

ee

of

mpty

Attribute Declarations

Each element declared in an element type declaration can have attributes assto it. As element type declarations define the structure of a document, attribudeclarations control the content of the elements. Each attribute declarationcontains the name of the element to assign the attribute to followed by a list attributes, attribute types, and attribute traits. For example, see the followingattribute declaration:

<!ATTLIST shapeaspect(INTERNAL|EXTERNAL|BOTH)“INTERNAL”layerCDATA #REQUIRED

>

The element, shape, has two attributes: aspect and layer. Aspect can be onethree types: internal, external, or both. Layer is character data, which is simpalphanumeric text. The trait of aspect is that it defaults to “INTERNAL,” whilethe trait of layer is that it is a required attribute. The trait of an attribute can b#REQUIRED, #IMPLIED (which means the attribute is optional), or one of thpossible attribute types which serves as the default.

In the section, “Element and Attribute Tables,” there are tables with descriptionsof each element type declaration used for the XML database, and for thoseelements with attributes assigned to them, there are tables with descriptionsthose attribute declarations.

In some cases, the XML database uses empty elements with attributes. An eelement and its attribute list appears as follows:

<!ELEMENT version EMPTY><!ATTLIST version

number CDATA #REQUIRED>

transform translate version via_obj

Table 22-4. XML database DTD Elements

Elements

IC Station User’s Manual, v8.9_9 22-11

Page 624: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

h

Lype

ement

n

ee

This is functionally equivalent to the following element declaration:

<!ELEMENT version (#PCDATA)>

While these variations are functionally equivalent, considerations for how theXML document expresses the content of these elements have dictated whicmethod to use on a case-by-case basis.

Following is an example of how an instance of an element is coded in the XMdatabase. You have already seen in the examples above what the element tdeclaration for the element port looks like in the DTD, and what the attributedeclaration for the element shape looks like in the DTD, so you can use thosdeclarations to see how the XML database expresses an instance of the eleport.

<port name="s" direction="BIDIRECTIONAL" id="19"><shape aspect="BOTH" layer="14">

<coords>300 1900 2100 37</coords><property name="$name" value="1"></property>

</shape><property name="phy_pin" value="s"></property>

</port>

Entity Declarations

There are several types of entity declarations used in XML, but the IC StatioXML database only uses parameter entities. These function like variables,providing a shorthand for strings in element type declarations. An examplefollows:

<!ENTITY %cell.preamble “library_ref*, property*, panel*,boundary?”>

Such entities are used in elements as follows:

<!ELEMENT cell (%cell.preamble;, %cell.mask;,%cell.connectivity;)>

In the element type declaration for cell, each entity name is substituted for thstring defined in the entity declarations. You can find the sub-elements for th

IC Station User’s Manual, v8.9_922-12

Page 625: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

ent

ment iswo

se

achbe

Lningst be

shis

element cell by looking at entity declarations. For the XML database, the elemcell is the only element that uses entities.

These notations appear only in the DTD. For example, you will never see%cell.mask; in an IC Station XML document; you will see the attributes theypoint to, instead.

Verbose vs. Terse XML Database

You can write the XML database in two different modes: verbose or terse. Inverbose mode, the XML database is coded in a human-readable format. Eleand attribute names are complete names. In terse mode, the XML databasecoded cryptically to make the database as small as possible. Following are telement type declarations, one in verbose mode, and one in terse mode:

<!ELEMENT design (version?, process, library*, cell+,digest?)>

<!ELEMENT design (ver?, proc, l*, c+, dg?)>

Each table in the section, “Element and Attribute Tables,” show what the elementtype declarations and attribute declarations look like in both verbose and termodes.

Data Correctness

There are three levels of correctness associated with the IC Station XMLdatabase: well-formed, format valid, and data valid. Below is a description of elevel of correctness. If you wish to edit the XML database directly, you must careful to preserve all three levels of correctness.

A well-formed XML document is one in which the syntax conforms to the XMspecification. For example, there must be a matching end tag for every begintag, there can be no duplicate attribute names, and all special characters mucorrectly escaped. The XML parser will return errors if the document is notwell-formed, and the translation will terminate.

A format valid document (called simply “valid” in the XML 1.0 specification) ione in which the structure follows exactly the specified structure in the DTD. T

IC Station User’s Manual, v8.9_9 22-13

Page 626: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

n that noidity

finedt

ile.

basically enforces the hierarchy defined in the DTD. For example, allsub-elements separated by commas in element type definitions must occur iexact order in the document, and the hierarchy must be preserved such thatsub-elements occur at a higher level than its parent element. Any format valerror will cause the translation to terminate.

A data valid document is one in which the appropriate data is stored in eachelement. For example, the elementcoords contains integers and white spacesonly; any non-numeric character data stored in that element would constituteinvalid data. Any data validity error will cause the translation to terminate.

Element and Attribute Tables

Below are tables that show the element type declaration for each element dein the XML database DTD, and any attribute declaration associated with thaelement.

Design Element

The design element has no attributes.

Version Element

The version element contains the ICgraph version string that writes the XML fThe version element has attributes.

Table 22-5. ELEMENT design

Verbose Terse

<!ELEMENT design(version?,process,cell+, digest?)>

<!ELEMENT des (ver?, proc, c+,dg?)>

IC Station User’s Manual, v8.9_922-14

Page 627: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

nd the

Process Element

The process element contains attributes recording the path to the process apath to Rules file. This element captures adocument-global process and Rulesfile, and if a cell element differs from this definition, that cell willlocally overridethe global definitions via its optional attributes. The process element hasattributes.

Table 22-6. ELEMENT version

Verbose Terse

<!ELEMENT version EMPTY> <!ELEMENT ver EMPTY>

Table 22-7. Version Attribute List

Verbose Terse Attribute Type Trait

number nu CDATA REQUIRED

Table 22-8. ELEMENT process

Verbose Terse

<!ELEMENT process EMPTY> <!ELEMENT proc EMPTY>

Table 22-9. Process Attribute List

Verbose Terse Attribute Type Trait

path pa CDATA REQUIRED

rules_path rl CDATA IMPLIED

IC Station User’s Manual, v8.9_9 22-15

Page 628: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

then an

Digest Element

The digest element gives a checksum of the bytes in the document betweenbeginning <design> tag and the <digest ...> tag. This is used to indicate wheIC XML document has been altered. The digest element has attributes.

Cell Element

The cell element contains the ENTITIES cell.preamble, cell.mask, andcell.connectivity. See the section, “Cell Parameter Entities,” for a description ofthe entities. The cell element has attributes.

Table 22-10. ELEMENT digest

Verbose Terse

<!ELEMENT digest EMPTY) <!ELEMENT dg EMPTY>

Table 22-11. Digest Attribute List

Verbose Terse Attribute Type Trait

stamp sp CDATA REQUIRED

Table 22-12. ELEMENT cell

Verbose Terse

<!ELEMENT cell (%cell.preamble;,%cell.mask;, %cell.connectivity;)

<!ELEMENT c (%cell.preamble;,%cell.mask;, %cell.connectivity;)>

IC Station User’s Manual, v8.9_922-16

Page 629: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

Table 22-13. Cell Attribute List

Verbose Terse Attribute Type Trait

name n CDATA REQUIRED

type t Verbose:(BLOCK|STANDARD|EXTERNAL|LEFT_CAP|RIGHT_CAP|CORNER|FEEDTHROUGH|VIA)

Terse:(B|S|E|L|R|C|F|V)

Verbose:“BLOCK”

Terse:“B”

conn_mode cm Verbose:(GE|CE|CBC)

Terse:(G|X|C)

Verbose:“CBC”

Terse:“C”

process p CDATA IMPLIED

rules ru CDATA IMPLIED

logic_src_name ln CDATA IMPLIED

angle_mode a Verbose:(FORTY_FIVE|NINETY|ALL)

Terse:(F|N|A)

Verbose:“NINETY”

Terse:“N”

modified mo CDATA REQUIRED

created k CDATA REQUIRED

IC Station User’s Manual, v8.9_9 22-17

Page 630: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

ivity.

cell

Cell Parameter Entities

The cell element is the only element in the XML database DTD that usesparameter entities. The entities are cell.preamble, cell.mask, and cell.connectBelow are the descriptions of these entities.

cell.preamble

This preamble describes the data of cells and the data contained in cells. A may optionally reference a library. The cell itself may contain properties, and

extraction_mode xm Verbose:(IMPLICIT|EXPLICIT)

Terse:(I|E)

IMPLIED

cell_sites cs CDATA IMPLIED

padding_grid pg CDATA IMPLIED

power_styles pw CDATA IMPLIED

signal_via_cell sv CDATA IMPLIED

port_styles ps CDATA IMPLIED

port_height ph CDATA IMPLIED

site_type st CDATA IMPLIED

user_grid ug CDATA IMPLIED

closely_tied ct CDATA IMPLIED

wiring_type wt CDATA IMPLIED

routing_direction rd CDATA IMPLIED

layer_spacing ls CDATA IMPLIED

half_layer hl CDATA IMPLIED

Table 22-13. Cell Attribute List

Verbose Terse Attribute Type Trait

IC Station User’s Manual, v8.9_922-18

Page 631: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

nts of

are

areh are

have an fp1 shape. This begins to define the elements and the order of elemea cell definition.

Cell Mask

The cell mask section describes a portion of the cell’s physical objects whichcontained in the cell.

Cell Connectivity

The cell connectivity section describes all of the cell’s physical objects whichpart of ports and nets. Nested within either ports or nets are the objects whicpart of them.

Table 22-14. ENTITY cell.preamble

Verbose Terse

<!ENTITY % cell.preamble“library_ref?, property*, panel*,boundary?”>

<!ENTITY % cell.preamble“lr?,a*,e*, b?”>

Table 22-15. ENTITY cell.mask

Verbose Terse

<!ENTITY % cell.mask “row*,(instance|array|device)*,(shape|path|via_obj)* text*”>

<!ENTITY % cell.mask“ro*,(i|m|d)*,(s|w|v)*, f*”>

Table 22-16. ENTITY cell.connectivity

Verbose Terse

<!ENTITY % cell.connectivity “port*,net*”>

<!ENTITY % cell.connectivity“po*,n*”>

IC Station User’s Manual, v8.9_9 22-19

Page 632: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

utes.

Library_ref Element

A library_ref element is a canonical path name to a library. The library_refelement has attributes.

Panel Element

A panel is a permanent named object in a cell. The panel element has attrib

Table 22-17. ELEMENT library_ref

Verbose Terse

<!ELEMENT library_ref EMPTY> <!ELEMENT lr EMPTY>

Table 22-18. Library_ref Attribute List

Verbose Terse Attribute Type Trait

name n CDATA REQUIRED

Table 22-19. ELEMENT panel

Verbose Terse

<!ELEMENT panel (coords)> <!ELEMENT e (p)

Table 22-20. Panel Attribute List

Verbose Terse Attribute Type Trait

name n CDATA REQUIRED

IC Station User’s Manual, v8.9_922-20

Page 633: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

rty

Property Element

A property element contains a name value pair; both are required. The propeelement has attributes.

Property_text Element

The property_text element is a sub-element of the property element. Theproperty_text element has attributes.

Table 22-21. ELEMENT property

Verbose Terse

<!ELEMENT property(property_text)*>

<!ELEMENT a (z)*>

Table 22-22. Property Attribute List

Verbose Terse Attribute Type Trait

name n CDATA REQUIRED

value v CDATA REQUIRED

Table 22-23. ELEMENT property_text

Verbose Terse

<!ELEMENT property_text (rotate?,translate)>

<!ELEMENT z (r? x)>

IC Station User’s Manual, v8.9_9 22-21

Page 634: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

rtys not

Boundary Element

The boundary element contains the coords element, and zero or more propeelements. The boundary element is the FP1 layer. The boundary element doehave attributes.

Table 22-24. Property_text Attribute List

Verbose Terse Attribute Type Trait

layer l CDATA REQUIRED

height h CDATA REQUIRED

hjust hj Verbose:(LEFT | CENTER | RIGHT)

Terse:(L | C | R)

Verbose:“CENTER”

Terse:“C”

vjust vj Verbose:(TOP | MIDDLE|BOTTOM | BASE)

Terse:(T | M | B | D)

Verbose:“MIDDLE”

Terse:“M”

orient or Verbose:(0|90|180|270)

Terse:(0|9|1|2)

“0”

IC Station User’s Manual, v8.9_922-22

Page 635: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

riorfined

f

ve placed

mentten

l().

Instance Element

An instance is any instantiation of an ICgraph cell template in another cell. Pto an instantiation of any cell, the cell must have already been previously deas a CELL element. Undefined instances will result in termination of thetranslation.

An instance element includes all cell placements. Instances with cell types oSTANDARD, EXTERNAL, LEFT_CAP, RIGHT_CAP, or FEEDTHROUGHmust have at least one site type. Site type’s range is 1 to 30. Cells of the abotypes may have more than one site type. The above instances must also beon rows to be validly placed (not to be confused with document validity).

The cellname must be present. If there is an inst_name property then the elewill have an inst_name attribute. If not, the handle of the instance will be writout as a handle attribute. One of these two attributes is required by $read_xm

Instances by default are “PLACED.”

The instance element has attributes.

Table 22-25. ELEMENT boundary

Verbose Terse

<!ELEMENT boundary (coords,property*)>

<!ELEMENT b (p, a*)>

Table 22-26. ELEMENT instance

Verbose Terse

<!ELEMENT instance((translate|transform)?,property*)>

<!ELEMENT i ((x|t)?,a*)>

IC Station User’s Manual, v8.9_9 22-23

Page 636: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

r all

Array Element

If a placement is an array, then it will have an array element and attributes foarray information. The array element has attributes.

Table 22-27. Instance Attribute List

Verbose Terse

Attribute Type Trait

cellname c CDATA REQUIRED

inst_name i CDATA IMPLIED

handle ha CDATA IMPLIED

type t Verbose:(BLOCK|STANDARD|EXTERNAL|LEFT_CAP|RIGHT_CAP|CORNER|FEEDTHROUGH|VIA)

Terse:(B|S|E|L|R|C|F|V)

Verbose:“BLOCK”

Terse:“B”

placed pl Verbose:(PLACED | UNPLACED)

Terse:(P|U)

Verbose:“PLACED”

Terse:“P”

row_id ri CDATA IMPLIED

IC Station User’s Manual, v8.9_922-24

Page 637: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

e,

Iobj Element

The iobj element is the independent object. It defines the type of device, thelocation of the device, along with the device translate/transform if there is onand the properties of the device. The iobj element has attributes.

Table 22-28. ELEMENT array

Verbose Terse

<!ELEMENT array ((translate|transform)?,property*)>

<!ELEMENT m ((x|t)?,a*)>

Table 22-29. Array Attribute List

Verbose Terse Attribute Type Trait

cellname c CDATA REQUIRED

row ro CDATA REQUIRED

column co CDATA REQUIRED

row_pitch rp CDATA REQUIRED

col_pitch cp CDATA REQUIRED

subcell_orient so Verbose:(NONE|XFLIP|90|XFLIP90|180|XFLIP180|270|XFLIP270)

Terse:(N|X|9|X9|1|X1|2|X2)

Verbose:“NONE”

Terse:“N”

scale sc CDATA IMPLIED

IC Station User’s Manual, v8.9_9 22-25

Page 638: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

:

ct or

Device Element

The device element is distinct from cell placements for the following reasons

• Devices have a generator name instead of a cell name.

• Devices have embedded geometries.

• Devices can be point, path and shape devices.

• Devices must have one shape and/or path beyond their generator objethey are illegal.

The device element has attributes.

Table 22-30. ELEMENT iobj

Verbose Terse

<!ELEMENT iobj (coords,property*)>

<!ELEMENT io (p, a*)>

Table 22-31. Iobj Attribute List

Verbose Terse Attribute Type Trait

device_type y Verbose:(POINT|SHAPE|PATH)

Terse:(P|S|W)

Verbose:“POINT”

Terse:“P”

IC Station User’s Manual, v8.9_922-26

Page 639: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

Table 22-32. ELEMENT device

Verbose Terse

<!ELEMENT device((translate|transform)?,iobj,(shape|path|text|port)+)>

<!ELEMENT d ((x|t)?, io,(s|w|f|po)+)>

Table 22-33. Device Attribute List

Verbose Terse Attribute Type Trait

generator g CDATA REQUIRED

inst_name* i CDATA IMPLIED

handle* ha CDATA IMPLIED

type t Verbose:(BLOCK|STADARD|EXTERNAL|LEFT_CAP|RIGHT_CAP|CORNER|FEEDTHROUGH|VIA)

Terse:(B|S|E|L|R|C|F|V)

Verbose:“BLOCK”

Terse:“B”

site s CDATA IMPLIED

placed p Verbose:(PLACED|UNPLACED)

Terse:(P|U)

Verbose:“PLACED”

Terse:“P”

row_id ri CDATA IMPLIED

IC Station User’s Manual, v8.9_9 22-27

Page 640: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

, butfor

de ar

he

Transform Element

The transform element describes a complete canonical geometric transformcompresses all the components by supplying defaults and common choices orthogonal rotations.

A translate is almost always two integers for x and y translation; however, insitransform with a non-orthogonal rotation (i.e. 303 degrees) and a non-integescale (i.e. 1.5), a transform may consist of two floating-point numbers. Thissometimes occurs in transforms associated with arrays and devices.

The transform element has attributes.

Note

The inst_name and handle attributes behave the same as for tInstance element.

Table 22-34. ELEMENT transform

Verbose Terse

<!ELEMENT transform(rotate?,translate)>

<!ELEMENT t (r?,x)>

Table 22-35. Transform Attribute List

Verbose Terse Attribute Type Trait

flip fl (N|H|V) “N”

rotate r Verbose:(0|90|180|270)

Terse:(0|9|1|2)

“0”

IC Station User’s Manual, v8.9_922-28

Page 641: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

does

ment

int

Rotate Element

Element contains a string that contains the rotation value. The rotate elementnot have attributes.

Translate Element

Element contains a string that contains the translate value. The translate elehas no attributes.

Coords Element

Coordinate values are four or more integer values, except when part of a podevice iobj), and always have an even number of coordinates. Example of arectangle:

<coords>0 0 100 100</coords>

Example of a polygon:

scale sc CDATA IMPLIED

Table 22-36. ELEMENT rotate

Verbose Terse

<!ELEMENT rotate (#PCDATA)> <!ELEMENT r (#PCDATA)>

Table 22-37. ELEMENT translate

Verbose Terse

<!ELEMENT translate (#PCDATA)> <!ELEMENT x (#PCDATA)>

Table 22-35. Transform Attribute List

Verbose Terse Attribute Type Trait

IC Station User’s Manual, v8.9_9 22-29

Page 642: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

hape.

<coords>0 0 100 0 100 100 50 100 50 50 0 50 0 0</coords>

The coord element has no attributes.

Shape Element

The shape element describes the coordinates and properties of a primitive sThe shape element has attributes.

Table 22-38. ELEMENT coords

Verbose Terse

<!ELEMENT coords (#PCDATA)> <!ELEMENT p (#PCDATA)>

Table 22-39. ELEMENT shape

Verbose Terse

<!ELEMENT shape (coords,property*)>

<!ELEMENT s (p,a*)>

Table 22-40. Shape Attribute List

Verbose Terse Attribute Types Trait

aspect f Verbose:(INTERNAL|EXTERNAL|BOTH)

Terse:(I|E|B)

Verbose:“INTERNAL”

Terse:“I”

layer l CDATA REQUIRED

IC Station User’s Manual, v8.9_922-30

Page 643: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

Path Element

The path element describes the coordinates, properties, and attributes of aprimitive path. The path element has attributes.

Table 22-41. ELEMENT path

Verbose Terse

<!ELEMENT path (coords, property*)> <!ELEMENT w (p,a*)>

Table 22-42. Path Attribute List

Verbose Terse Attribute Type Trait

aspect f Verbose:(INTERNAL|EXTERNAL|BOTH)

Terse:(I|E|B)

Verbose:“INTERNAL”

Terse:“I”

layer l CDATA REQUIRED

width w CDATA REQUIRED

style sy Verbose:(LEFT|CENTER|RIGHT)

Terse:(L|C|R)

Verbose:“CENTER”

Terse:“C”

IC Station User’s Manual, v8.9_9 22-31

Page 644: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

Via_obj Element

The via object element has attributes.

end_style q Verbose:(NORMAL|EXTENDED|EXTEND_FIRST|EXTEND_LAST)

Terse:(N|F|L|X)

Verbose:“NORMAL”

Terse:“N”

padding pd Verbose:(NONE|HEUR|GRID)

Terse:(N|H|G)

Verbose:“NONE”

Terse:“N”

Table 22-43. ELEMENT via_obj

Verbose Terse

<!ELEMENT via_obj((translate |transform), property*)>

<!ELEMENT v ((x|t),a*)>

Table 22-44. Via_obj Attribute List

Verbose Terse Attribute Type Trait

name n CDATA REQUIRED

Table 22-42. Path Attribute List

Verbose Terse Attribute Type Trait

IC Station User’s Manual, v8.9_922-32

Page 645: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

Text Element

The text element has attributes.

Table 22-45. ELEMENT Text

Verbose Terse

<!ELEMENT text (rotate?, translate,property*)>

<!ELEMENT f (r?, x, a*)>

Table 22-46. Text Attribute List

Verbose Terse

Attribute Type Trait

string x CDATA REQUIRED

font fo (0|1|2|3) “0”

aspect f Verbose:(INTERNAL|EXTERNAL|BOTH)

Terse:(I|E|B)

Verbose:“INTERNAL”

Terse:“I”

layer l CDATA REQUIRED

height h CDATA REQUIRED

hjust hj Verbose:(LEFT|CENTER|RIGHT)

Terse:(L|C|R)

Verbose:“CENTER”

Terse:“C”

IC Station User’s Manual, v8.9_9 22-33

Page 646: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

Row Element

The row element has attributes.

vjust vj Verbose:(TOP|MIDDLE|BOTTOM|BASE)

Terse:(T|M|B|D)

Verbose:“MIDDLE”

Terse:“M”

orient or Verbose:(0|90|180|270)

Terse:(0|9|1|2)

“0”

Table 22-47. ELEMENT row

Verbose Terse

<!ELEMENT row (origin_line, coords,property*)>

<!ELEMENT ro (o, p, a*)>

Table 22-48. Row Attribute List

Verbose Terse Attribute Type Trait

site_type st CDATA REQUIRED

Table 22-46. Text Attribute List

Verbose Terse

Attribute Type Trait

IC Station User’s Manual, v8.9_922-34

Page 647: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

ype

site_type is a site type number 1 - 30. Instances with this matching site tare legal to place on this row.

type t Verbose:(INTERNALS|EXTERNALS|PORTSUNTYPED)

Terse:(I|E|P|U)

Verbose:“INTERNAL”

Terse:“I”

orientset os CDATA “N”

justification j Verbose:(LEFT|CENTER|RIGHT)

Terse:(L|C|R)

Verbose:“CENTER”

Terse:“C”

slide sl Verbose:(NO|YES)

Terse:(N|Y)

Verbose:“NO”

Terse:“N”

resize rs Verbose:(NO|YES)

Terse:(N|Y)

Verbose:“NO”

Terse:“N”

id id CDATA IMPLIED

Table 22-48. Row Attribute List

Verbose Terse Attribute Type Trait

IC Station User’s Manual, v8.9_9 22-35

Page 648: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

ype,t has

orientset is a type of row orientation and can have any number of thefollowing (N|MX|MY|MXY|R|RMX|RMY|RMXY). This prevents it from beingan enumeration. The default is “N” for normal orientation.

Origin_line Element

The origin line element is four integers for beginning x,y and ending x,y. Theorigin_line element has no attributes.

Port Element

Ports represent logical connectivity of a cell. Each port keeps its own name, tdirection, properties and any shapes that belong to this port. The port elemenattributes.

Table 22-49. ELEMENT origin_line

Verbose Terse

<!ELEMENT origin_line(#PCDATA)>

<!ELEMENT o (#PCDATA)>

Table 22-50. ELEMENT port

Verbose Terse

<!ELEMENT port ((shape|path)*,property*)>

<!ELEMENT po ((s|w)*,a*)>

Table 22-51. Port Attribute List

Verbose Terse Attribute Type Trait

name n CDATA REQUIRED

net_name* nn CDATA IMPLIED

IC Station User’s Manual, v8.9_922-36

Page 649: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

handle* ha CDATA IMPLIED

type t Verbose:(SIGNAL|POWER|FEEDTHRU)

Terse:(S|P|F)

Verbose:“SIGNAL”

Terse:“S”

direction d Verbose:(IN|OUT |BIDIRECTIONAL)

Terse:(I|O|B)

Verbose:“IN”

Terse:“I”

placed pl Verbose:(PLACED |UNPLACED)

Terse:(P | U)

Verbose:“PLACED”

Terse:“P”

must_connect mc CDATA IMPLIED

id id CDATA IMPLIED

Note

If there is a net_name property, then the element will have anet_name attribute. If not, the handle of the instance will bewritten out as a handle attribute. One of these two attributes isrequired by $read_xml().

Table 22-51. Port Attribute List

Verbose Terse Attribute Type Trait

IC Station User’s Manual, v8.9_9 22-37

Page 650: Icstation User Manual @Vins

The Document Type Definition (DTD) XML Format

Port_ref Element

A port refers to an existing port. The port name is the name of the port, butmultiple ports may exist with the same name, so the id is used to identify aspecific port.

The port_net element has attributes.

Net Element

The net element has attributes.

Table 22-52. ELEMENT port_ref

Verbose Terse

<!ELEMENT port_ref EMPTY)> <!ELEMENT tr EMPTY)>

Table 22-53. Port_ref Attribute List

Verbose Terse Attribute Type Trait

port_name po CDATA REQUIRED

id id CDATA IMPLIED

Table 22-54. ELEMENT net

Verbose Terse

<!ELEMENT net (pin_ref*, port_ref*,(path|shape|via_obj)*, property*)>

<!ELEMENT n (pr*,tr*,(w|s|v)*,a*)>

IC Station User’s Manual, v8.9_922-38

Page 651: Icstation User Manual @Vins

XML Format The Document Type Definition (DTD)

Pin_ref Element

The pin_ref element has attributes.

Table 22-55. Net Attribute List

Verbose Terse Attribute Type Trait

net_name* nn CDATA IMPLIED

handle* ha CDATA IMPLIED

type t Verbose:(SIGNAL|POWER|GROUND|SPECIAL)

Terse:(S|P|G|O)

Verbose:“SIGNAL”

Terse:“S”

Note

If there is a net_name property, then the element will have anet_name attribute. If not, the handle of the instance will bewritten out as a handle attribute. One of these two attributes isrequired by $read_xml().

Table 22-56. ELEMENT pin_ref

Verbose Terse

<!ELEMENT pin_ref EMPTY> <!ELEMENT pr EMPTY>

IC Station User’s Manual, v8.9_9 22-39

Page 652: Icstation User Manual @Vins

XML Tutorial XML Format

fewoutan

lso,nd

XML TutorialThe XML format provides you with considerable flexibility in global updatingand custom reporting on an XML database. This tutorial provides you with aideas on what is possible with an XML database, how to make changes withcorrupting the database, and it also discusses various tools you can use on XML database and where you can get them.

Examples

You can find the examples cited in this section in the following path:$MGC_HOME/shared/examples/xml

This directory contains a README which describes the examples in detail. Aeach script is well-commented, describing how to prepare the script to run awhat the script does.

The XML example directory contains the following directories:

• Data: Contains the XML database each of the scripts use.

Table 22-57. Pin_ref Attribute List

Verbose Terse Attribute Type Trait

inst_name* i CDATA IMPLIED

handle* ha CDATA IMPLIED

pin_name pi CDATA REQUIRED

Note

If there is an inst_name property, then the element will have aninst_name attribute. If not, the handle of the instance will bewritten out as a handle attribute. One of these two attributes isrequired by $read_xml().

IC Station User’s Manual, v8.9_922-40

Page 653: Icstation User Manual @Vins

XML Format XML Tutorial

n in

ase

the

for

uildy andd on

tingthe

e've

• Perl: Contains three scripts. One changes the cell leaf names to alllower-case. Another reports simple statistics on objects in an XMLdatabase. The other changes the layer numbers in a layer map.

• Python: Contains the same three scripts as the Perl directory, but writtePython.

• Java: Contains a java application that creates a Jtree of an XML databcell hierarchy with the underlying cells, devices, and via objects.

• XSLT : Contains a script that builds an HTML table of statistics from anXML database. The tutorial does not cover using XSLT, but we provideexample as a proof of concept and as a guide.

Parsing XML

There are two general interfaces for parsing an XML document: “Simple APIXML” (SAX) and “Document Object Model” (DOM). SAX is a low-level eventparser which passes information about the document line by line; it does not ba parse tree. DOM, on the other hand, builds the entire parse tree in memorparses the file by traversing the tree. As IC Station XML databases are baseIC designs, they are likely to be too large for the DOM method to operateefficiently. All but one of the IC Station XML examples use SAX.

Perl

To use Perl scripts on an XML database, you must build and install an XMLparser in your Perl distribution. XML::Parser is a public-domain, unsupportedlibrary extension of the Perl language. The latest version at the time of this wriwas XML-Parser-2.29.tar.gz. Be sure to check for newer versions, and read readme file online before downloading.

It is available at:http://www.perl.com/CPAN-local/modules/by-module/XML/

While there is more than one way to make Perl aware of external libraries, wchosen to use the following method:

use lib ("some_path" . $ENV{VCO});

IC Station User’s Manual, v8.9_9 22-41

Page 654: Icstation User Manual @Vins

XML Tutorial XML Format

the

ach

hods

l

es toes,

tics

ion.

X

od of

This method allows you to patch the code if the location changes. In ourenvironment, $VCO specifies the OS platform (Sun, HP, or Linux) on which script is running.

Set up the architecture-based library path before using XML::Parser...use lib ("/wv/icqa/tools/perl/lib/5.00503/" . $ENV{VCO});

Also, make sure you set the path to your Perl distribution on the first line of escript as it may be different from the one we use.

Parsing with Perl

All three Perl examples use the SAX parsing method. There are two sub-metyou need to consider when using Perl’s XML::Parser library. XML::Parserprovides a low-level interface with XML::Parser::Expat. This gives you morecontrol over how your script interfaces with the data, but it adds a level ofcomplexity as well. The example script, xml_lcase_cell, uses theXML::Parser::Expat method. The other two Perl scripts use the more generaXML::Parser method. Look at each of the scripts to see the difference inimplementation.

Finally, you must decide whether to capture the data with event handlers orsubroutines. Event handlers are most efficient when you want to make changa database. Although, your script might only change a small set of the XML linyou accumulate the entire database and save it with changes at the end.Subroutines are most efficient when you want to filter data to calculate statisbecause you do not accumulate the entire database for saving. The scripts,xml_lcase and xml_lmap, use handlers while the script, xml_stat, usessubroutines. Look at each of the scripts to see the difference in implementat

xml_lcase_cell

This script globally changes all cell leaf names to lower case. It uses the SAmethod of parsing with XML::Parser::Expat and event handlers.

xml_lmap

This script changes the layer numbers in the layer map. It uses the SAX methparsing with XML::Parser and event handlers.

IC Station User’s Manual, v8.9_922-42

Page 655: Icstation User Manual @Vins

XML Format Credits

uses

ut

makeOMe

theerun

a for

1.1)

xml_stat

This script reports the number of each type of object in an XML database. It the SAX method of parsing with XML::Parser and subroutines.

Python

This directory contains the same three scripts that are in the Perl directory, bthey were written with Python. They were written strictly with tools that comewith the Python distribution, so they show that Python parsing works as anout-of-the-box solution.

Java

To use Java on your XML databases, you must have a Java XML parser andsure it is included in your class path. The example uses the Xerces-J 1.1.2 Dparser which is available from www.apache.org (at the time of this writing, thURL is http://www.apache.org/xerces-j/index.html).

This script makes a Jtree showing the cell hierarchy of an XML database withunderlying cells, devices, and via objects. Since the result is a hierarchy of thentire database, it uses the DOM parsing method. Just remember, if you try toit on a moderate-sized design, you are likely to run out of memory.

See the source for comments on how the script works and how to set up JavXML parsing. Also see the README for additional Java XML parsingcomments.

CreditsTo leverage the work done in the XML community at large, IC Station uses anon-validating XML parser available on the internet to implement the parsingphase of its $read_xml() command. This parser is the expat parser (version authored by James Clark, and available at:

http://www.jclark.com/xml/expat.html

IC Station User’s Manual, v8.9_9 22-43

Page 656: Icstation User Manual @Vins

Credits XML Format

u

m

usebut

This version of expat is subject to the Mozilla Public License Version 1.1. Yomay obtain a copy of the License at:

http://www.mozilla.org/MPL/

There is a later version of expat being developed under the MIT/X Consortiulicense at:

https://sourceforge.net/projects/expat/

Clark Cooper is the project lead for this version. IC Station does not currentlythis version's improved library (it was not completed in time for this release) may in a future release.

IC Station User’s Manual, v8.9_922-44

Page 657: Icstation User Manual @Vins

rcuittakester

rllsCou

l,

useith

the

ith

,cript,

Chapter 23AutoCells Interface

AutoCells is a stand-alone, automatic placement and routing tool for large-cidesigns made up of standard cells. It is a command-line-based batch tool thata host of arguments either directly from the command line, or from a paramefile. IC Station provides a group of forms in which you enter a basic set ofAutoCells arguments that IC Station writes out to a valid AutoCells parametefile. IC Station then invokes AutoCells on that file. If you are an expert AutoCeuser, or if you require more advanced AutoCells functionality than what the IStation AutoCells interface provides, then you should use AutoCells directly. Ycan find out more about AutoCells in theAutoCells User’s and Reference Manuapackaged with your AutoCells distribution.

Running AutoCells from IC StationTo run AutoCells, you must have a process file and a design that are valid forwith AutoCells. To check whether you have a process file that is valid for use wAutoCells, click on thePlace & Route > (AutoCells) ChkProcpalette menu. Tocheck whether you have a design that is valid for use with AutoCells, click onPlace & Route > (AutoCells) ChkDsn palette menu. IC Station will report anydeficiencies in either the process file or the design that invalidate their use wAutoCells.

You invoke the AutoCells interface by clicking on thePlace & Route >(AutoCells) Run palette menu. The AutoCells Invoke Controller dialog boxappears, as shown inFigure 23-1, with the Basic tabbed pane active by default.

To run AutoCells, enter your information in the appropriate fields of the BasicPlace, and Route tabbed panes, and click on Run AC. You can view the transsave the transcript, or halt AutoCells in the Log tabbed pane.

IC Station User’s Manual, v8.9_9 23-1

Page 658: Icstation User Manual @Vins

The AutoCells Forms AutoCells Interface

ear

ncel.

tog

his

lt

ell

The AutoCells FormsAll the tabbed panes found on the AutoCells Invoke Controller dialog box appbelow along with descriptions of each field.Figure 23-1 shows the Basic tabbedpane,Figure 23-2 shows the Place tabbed pane,Figure 23-3 shows the Routetabbed pane, andFigure 23-4 shows the Log tabbed pane. Common to all fourtabbed panes are the three button below the panes, Run AC, Reset, and CaFollowing is a description of the behavior of each of these three buttons.

• Run AC

This button starts the sequence of commands and verification checks prepare the data to run with AutoCells. IC Station performs the followinsteps when you click on this button:

a. Creates a directory in the directory from which you invoked ICgrapnamed after the current active cell with the suffix “.ac”. We refer to thas the cell directory.

b. Attempts to create the AutoCells.PAR file in the cell directory. Anyfailures halt the run and issues an error message.

c. Writes the values from each tabbed pane, beginning with Basic,proceeding to Place, and ending with Route, but only if anAutoCells.PAR file is created.

d. Attempts to write autocells.cmd in the cell directory. Any failures hathe run and issues an error message.

e. Calls $write_def().

f. Calls $write_lef().

g. Runs Lef2Tech in the cell directory creating a file after the active cname with the extension, “.def”.

h. Runs Lef2L in the cell directory creating the file, “cells.L”.

i. Runs Def2L in the cell directory creating the file, “netlist.R”.

IC Station User’s Manual, v8.9_923-2

Page 659: Icstation User Manual @Vins

AutoCells Interface The AutoCells Forms

e

j. Runs AutoCells in the cell directory creating the file, “out.L”.

k. Runs L2def in the cell directory creating a file after the active cell namwith the extension, “.def”.

l. Loads the new “.def” file into IC Station with $read_def().

This button is disabled while AutoCells is running.

• Reset

Sets all fields on all tabs to their default values. This button is disabledwhile AutoCells is running.

IC Station User’s Manual, v8.9_9 23-3

Page 660: Icstation User Manual @Vins

The AutoCells Forms AutoCells Interface

rent

Figure 23-1. AutoCells Basic Tabbed Pane

The following describes the fields in the AutoCells Basic tabbed pane:

• Routing Layers

The following fields specify routing levels for the channel router. Thevalues of these fields are loaded automatically from the data in the curactive cell when you open the AutoCells interface from ICgraph. If you

IC Station User’s Manual, v8.9_923-4

Page 661: Icstation User Manual @Vins

AutoCells Interface The AutoCells Forms

em

the

heult),

ns

ey,

1)

1)

l

leave any of these fields empty, IC Station does not write an entry for thin the parameter file.

o ver0: Specifies the name of the auxiliary (high resistance) verticalrouting level for the channel router.

o hor1: Specifies the name of the first horizontal routing level for thechannel router.

o ver1: Specifies the name of the first vertical routing level for thechannel router.

o hor2: Specifies the name of the second horizontal routing level for channel router.

o ver2: Specifies the name of the second vertical routing level for thechannel router.

To the right of each field is an option menu from which you can specify trouting model associated with each field. The options are contour (defaobstruction, and ignore.

• Vias

The following fields specify the name of the cut for the four combinatioof horizontal and vertical levels. The values of these fields are loadedautomatically from the data in the current active cell when you open thAutoCells interface from ICgraph. If you leave any of these fields emptIC Station does not write an entry for them in the parameter file.

o h1v0: Specifies the name of the cut from the first horizontal level (horto the auxiliary vertical level (ver0).

o h1v1: Specifies the name of the cut from the first horizontal level (horto the first vertical level (ver1).

o h2v1: Specifies the name of the cut from the second horizontal leve(hor2) to the first vertical level (ver1).

IC Station User’s Manual, v8.9_9 23-5

Page 662: Icstation User Manual @Vins

The AutoCells Forms AutoCells Interface

l

de

o h2v2: Specifies the name of the cut from the second horizontal leve(hor2) to the second vertical level (ver2).

• Grid Size

Specifies the resolution of the snap grid. The value of this field is loadeautomatically from the data in the current active cell when you open thAutoCells interface from ICgraph.

• Auxiliary PAR file -(optional)-

Specifies a file containing additional AutoCells control parameters tocompliment the parameters you specify in the AutoCells interface. ICStation does not validate any parameters in this file.

IC Station User’s Manual, v8.9_923-6

Page 663: Icstation User Manual @Vins

AutoCells Interface The AutoCells Forms

ies

Figure 23-2. AutoCells Place Tabbed Pane

The following describes the fields in the AutoCells Place tabbed pane:

• Terminal Levels -(optional)-

These fields specify the routing levels to which you want the connectmodules to force all terminals. Terminals from the top, bottom, left, andright of the block can be sent to different routing levels. The name entr

IC Station User’s Manual, v8.9_9 23-7

Page 664: Icstation User Manual @Vins

The AutoCells Forms AutoCells Interface

ngots the

sidelue

andare

en

hes 0,of

rtrol

ve

f

are case-sensitive, and the names must match exactly one of the routilevels you have specified in the Route tabbed pane. If the names do nmatch, IC Station issues a warning message stating such, and discardparameter file.

• Terminal Spacing -(optional)-

Specifies the spacing between terminals on the same layer on a givenof the block: top, bottom, left, and right. The units are in microns. The vais a floating point number, and the spinner control next to the fieldincrements or decrements the value by 0.1. The minimum value is 0.0,the maximum value is 1024.0. When the values for either top or bottompositive and non-zero, it overrides any value set for vertical terminalspacing. If you leave any of the fields empty, a value of 0.0 appears whyou move the mouse cursor out of the field.

• Boundary Controls -(optional)-

o Number of Rows: Specifies the estimated number of rows in thedesign. This field takes an integer, and the spinner control next to tfield increments or decrements the value by 1. The minimum value iand the maximum value is 1024. If you leave the field empty, a value0 appears when you move the mouse cursor out of the field.

o Aspect Ratio: Specifies the ratio of a standard cell block’s width oveheight. This field takes a floating point number, and the spinner connext to the field increments or decrements the value by 0.1. Theminimum value is 0.0, and the maximum value is 1024.0. If you leathe field empty, a value of 1.0 appears when you move the mousecursor out of the field.

o Flip Cells: Specifies that you want AutoCells to flip cells about they-axis to improve net length.

o Flip Rows: Specifies whether you want AutoCells to flip either none othe rows, all the even rows, or all the odd rows, about the x-axis.

IC Station User’s Manual, v8.9_923-8

Page 665: Icstation User Manual @Vins

AutoCells Interface The AutoCells Forms

undtive

Figure 23-3. AutoCells Route Tabbed Pane

The following describes the fields in the AutoCells Route tabbed pane:

• Connection Cells

These fields specify the names of the feedthrough, power tap, and grotap cells. The values of these fields are loaded automatically from the acprocess when you open the AutoCells interface from ICgraph.

IC Station User’s Manual, v8.9_9 23-9

Page 666: Icstation User Manual @Vins

The AutoCells Forms AutoCells Interface

telock.

on

neck.

o

(s)

o Feed Cells: Specifies the name of the spacer cell feedthroughs.

o Power Cells: Specifies the name of the power tap cell.

o Ground Cell: Specifies the name of the ground tap cell.

o Vertical Power Cell: Specifies the vertical power bus cell.

• Power Controls -(optional)-

o Vertical Power Interval : Specifies an interval in microns at which toplace column cells in each row.

o Merge Power Busses: Specifies whether or not power busses areshared by flipped rows.

o Use Side Power Strap: Specifies whether or not the connect and roumodules place vertical power and ground straps on the sides of a b

• -(optional)-

The following fields are miscellaneous options for the router:

o Dynamic Feedthrough Insertion: Specifies whether or not theAutoCells global router is to dynamically create feedthroughs basedthe obstructions it finds in each row.

o Preserve Pin Ordering: Indicates to preserve any pin ordering.

o Run Converters Only: If selected, IC Station only runs the preparatiosteps prior to executing AutoCells on the data. This allows you to chthe intermediate conversion files before committing to a routing run

o Run Notch/Gap Fill: Controls the treatment that IC Station applies tthe DEF file that is an end-product of an AutoCells run.

o Remote Host(s): Specifies the name(s) of the remote host computerto use in remote parallel routing.

IC Station User’s Manual, v8.9_923-10

Page 667: Icstation User Manual @Vins

AutoCells Interface The AutoCells Forms

n

o Local/Remote: Specifies whether to run the AutoCells routing step oa local or remote host.

Figure 23-4. AutoCells Log Tabbed Pane

The following describes the fields in the AutoCells Log tabbed pane:

• Transcript Window

IC Station User’s Manual, v8.9_9 23-11

Page 668: Icstation User Manual @Vins

The AutoCells Forms AutoCells Interface

ms

you

rorne

s

g

Provides a read-only view of the standard out and standard error streafrom AutoCells.

• Stop Run

Allows you to stop an AutoCells run. This button is enabled only whenAutoCells is running. Because of interprocess communications timing,might experience a slight delay when stopping a run.

The Log pane provides a read-only view of the standard out and standard erstreams from AutoCells. You can save this log at the end of the AutoCells ruwith File > Save. You can search for text in the log with the Find option from thpopup menu.

Note

The control buttons at the bottom of the AutoCells InvokeController dialog box are disabled during an AutoCells run. Thiprevents an accidental start of another AutoCells run, and itprevents accidental termination of the AutoCells interface durinan AutoCells run.

IC Station User’s Manual, v8.9_923-12

Page 669: Icstation User Manual @Vins

ARoute ARoute Overview

blegrven

Chapter 24ARoute

ARoute OverviewARoute is a chip-level gridless area router. It is a component of the ICassemproduct bundle. Because ARoute disregards the grid, it is not efficient routinstandard cells. Furthermore, ARoute does not move blocks to make room foroutes like ICblocks does. ARoute makes as many routes as possible in a giarea with fixed blocks.

This chapter contains the following sections:

• ARoute Process

• ARoute Concepts

• ARoute Graphical User Interface

• ARoute Figures

ARoute ProcessTask Prerequisites

1. Invoke IC Station.

2. Open your design.

3. Review your design to make sure it conforms to theguidelines for optimalARoute performance.

IC Station User’s Manual, v8.9_9 24-1

Page 670: Icstation User Manual @Vins

ARoute Process ARoute

,

e

mber

iledoute

age(s).

4. Make sure the process file for your design has the appropriate processvalues set. The relevant process values for ARoute are Routing LevelsSignal Via Cell, and Wiring Type.

5. Open theARoute palette menu with the IC Palettes > ICassemble > Routpalette menu item.

6. Set up ARoute.

Task

1. Set routing area.

• If you are routing by region, use Define from the ARoute Regionsection of theARoute palette menu to define as many routing areas asyou need. Use Select from the ARoute Region section of theARoutepalette menu to select which of the defined regions to route.

• If you arerouting by extent, ARoute will route the extent of thefloorplan shape, or the cell in which you have your context set.

2. Click RUN from the ARoute Commands section of theARoute palettemenu.

3. Watch the status line as ARoute runs for the progress as well as the nuof successful and failed routes. Turn on the ARoute status line withSetup >Status Line > Show ARoute Status.

4. When ARoute finishes, view the transcript window for messages on faroutes. This reports both the net that failed to route and the reason the rfailed.

5. Make changes to your design as necessary based on the failure messand run ARoute again, or route the failed nets interactively with IRoute

IC Station User’s Manual, v8.9_924-2

Page 671: Icstation User Manual @Vins

ARoute ARoute Process

his

ace

r.

ingreor

e

on. The

are

gesng.

a

yan a

Apply Area Routing Performance Guidelines to YourDesign

1. Place your pins at a minimum of wire_to_via spacing on your blocks. Tallows room for ARoute to place vias to access crowded pins.Example

2. Place your pins on the layer that matches thepreferred routing directionforthe side of the block the pin is placed on. Example

3. Place your pins only on layers defined as routing layers. If you must plpins on a non-routing layer, you need to set the preferred routing directionfor that layer to Half-Layer. ARoute then stubs the pin to a routing layeExample

4. Define your pins to be at least as wide as the minimum width of the routlayer that matches the pin layer. Conversely, if the pin width is set befoyou set the width of a wire or net, make sure you set the width of the wirenet to be the same width or smaller than the width of the pins. ARoutecannot route a wire to a pin that has a width less than the minimum wirwidth.

5. Make sure the path width is a multiple of the manufacturing grid basedthe centerline. ARoute uses centerline-based paths when adding wirescenterline of the path is placed on either manufacturing grid or a user-defined grid. ARoute does not check to validate that the edges of the pinon the manufacturing grid.

6. Make sure the origin of the via is on a valid grid. ARoute checks the edof a via for design rule compliance, but it does not check for grid snappi

7. Use pin stubbing to give ARoute access to crowded pins. A pin stub isshort wire on the non-preferred routing direction that transitions to thepreferred routing directionwith a via after it clears the congestion of nearbpins. When space is available, ARoute places a via on the pin rather thstub. Example

8. Make sure your blockage shapes abut your pin edges. If a blockagecompletely encloses a pin, ARoute will not route the pin. If you want to

IC Station User’s Manual, v8.9_9 24-3

Page 672: Icstation User Manual @Vins

ARoute Concepts ARoute

rge

all

place vias on the pins, make sure to cut the blockage around the pin laenough to accommodate all metal to metal blockage distances. Example

Set up ARoute

Task Prerequisites

1. Open theARoute palette menu from the IC Palettes palette menu.

Task

Each setup task below is optional. You can use the ARoute defaults and skipsetup, or you can select any number of controls that you want to edit.

1. Set ARoute Options

2. Set Preferred Routing Direction

3. Set Route Hierarchy Mode

4. Set Overflow versus Net Routing

5. Set Region versus Extent Routing

6. Select Net Classes

7. Set up Net Classes

8. Assign Nets to Classes

ARoute Concepts

Routing by Region

You can use two methods of defining an area within which ARoute will routenets or overflows. One method is toroute all nets or overflows in a cell’s extent.The other is to route all nets or overflows in a user-defined region.

IC Station User’s Manual, v8.9_924-4

Page 673: Icstation User Manual @Vins

ARoute ARoute Concepts

d. Ifly

ws

allnt.

Routing by region behaves as follows:

• The region must be rectilinear.

• Only the nets or overflows completely enclosed in the region are routea net extends outside the region, only the segments that are completeenclosed in the region are routed.

• If any net or overflow is selected, then only the selected nets or overflocompletely enclosed in the region are routed.

• Set whether ARoute should route nets or overflows withSet Overflowversus Net Routing.

Related Tasks

Set Region versus Extent Routing

Routing by Extent

You can use two methods of defining an area within which ARoute will routenets or overflows. One method is to route all nets or overflows in a cell’s exteThe other is toroute all nets or overflows in a user-defined region.

Routing by cell extent behaves as follows:

• ARoute routes by cell extent by default.

• The area within which ARoute routes is defined by the cell boundary.

• Set whether ARoute should route nets or overflows withSet Overflow vs.Net Routing.

Related Tasks

Set Region vs. Extent Routing

IC Station User’s Manual, v8.9_9 24-5

Page 674: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

cing

ialog

ox:

Net Classes

A net class is a group of nets to which you can assign the same width and sparules. Use theSelect Net Classes dialog box to view, edit, or create classes. UsetheSetup Net Classes dialog box to define the name of the class as well as thewidth and spacing the members of that class shares. Use theAssign Nets toClasses dialog box to define what nets belong to a class.

Related Tasks

Select Net Classes dialog box

Set up Net Classes dialog box

Assign Nets to Classes dialog box

ARoute Graphical User Interface

Setup ICassemble > ARoute

The Setup > ICassemble pulldown menu item opens the Setup ICassemble dbox, shown inFigure 24-1.

Figure 24-1. Setup ICassemble > ARoute Dialog Box

The following describe the fields of the Setup ICassemble > ARoute dialog b

IC Station User’s Manual, v8.9_924-6

Page 675: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

the

an

not

• Enable via rotation: If you have vias that are non-concentric, you canenable ARoute to rotate the via so the via always lies in the direction ofrouting layer’s preferred routing direction.

• Enable fixed pitch grid: Yes, opens the Fixed Pitch Grid window in theSetup ICassemble dialog box, shown inFigure 24-2.

Use fixed pitch gridding when you want to route on a custom grid. You cspecify a different grid for each routing level, and the grid can havedifferent x and y values. However, if a route’s source or target pins areon the custom grid, then ARoute will not place the route.

IC Station User’s Manual, v8.9_9 24-7

Page 676: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

ox

of

Figure 24-2. Setup ICassemble > Fixed Pitch Grid Dialog Box

The following describe the fields of the Setup ICassemble > ARoute dialog bwith fixed pitch grid open:

• Start grid from cell origin : Specifies the X and Y offset from the cellorigin from which to start the custom grid.

• Level: Displays the routing level, read from the Routing Levels section the process file.

IC Station User’s Manual, v8.9_924-8

Page 677: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

g

g

een

t

ess

• Horiz. Pitch: Sets the horizontal pitch of the custom grid for each routinlayer.

• Vertical Pitch: Sets the vertical pitch of the custom grid for each routinlayer.

ARoute Options Dialog Box

Open withOptions from theARoute palette menu.

The following describe the fields of the ARoute Options dialog box:

• Completion versus Routing Time

Use this slide bar to select the ratio you want ARoute to consider betwrunning faster or achieving a higher completion rate.

• Allow Vias?

If you allow vias, you have the option of selecting the ratio you wantARoute to consider between using vias versus using jogs. If you do noallow vias, ARoute will strictly use jogs.

• Rip?

Specifies whether or not to have ARoute rip up the routes and try toimprove its first attempt. If you choose to have ARoute rip, you have accto the Rip Options dialog box, shown inFigure 24-3, which you can use toset the Rip options.

IC Station User’s Manual, v8.9_9 24-9

Page 678: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

.

oes

g

Figure 24-3. Rip Options Dialog Box

The following describe the fields of the Rip Options dialog box:

• ReRoute: Specifies whether or not to re-route the design after ripping.

• Rip Range: Specifies how extensive you want ARoute to rip the design

• Number of Rip Passes: Specifies the number of times you want ARoute trip the design. If you select Automatic, ARoute continue to run rip passuntil it finds no improvement from one pass to the next.

Set Preferred Routing Direction Dialog Box

Open withDirection from theARoute palette menu.

The following describe the fields of the Set Preferred Routing Direction dialobox:

IC Station User’s Manual, v8.9_924-10

Page 679: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

s

o

r a

et

to

lar

larl

l

• Level Name: Shows the name of the routing levels listed in your procesfile.

• Direction: Sets the direction to one of the following settings:

o Horizontal : Sets the preferred routing direction for the given layer thorizontal.

o Vertical : Sets the preferred routing direction for the given layer tovertical.

o Both: Sets the preferred routing direction for the given layer to bothhorizontal and vertical.

o None: The given layer has no preferred routing direction.

o Half Layer : Sets stubbing for non-routing layers. If this is not set fonon-routing layer, ARoute will not route to pins on that layer.

• Wrong Way: Wrong Way selection is only available for routing layers. SWrong Way to one of the following settings:

o Enable: ARoute can use a routing layer in a direction perpendicularits preferred routing direction.

o Disable: ARoute cannot use a routing layer in a direction perpendicuto its preferred routing direction.

o Stub: ARoute can only use a routing layer in a direction perpendicuto its preferred routing direction to create a stub, but not for generarouting.

Set Route Hierarchy Mode Selector

Use the External/Peeked/All selector from the ARoute Setup section on theARoute palette menu to route hierarchy in one of the following modes:

• All data: ARoute considers all data in an instance as blockages.

• External aspect data only: ARoute only considers an instance’s externadata as blockages.

IC Station User’s Manual, v8.9_9 24-11

Page 680: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

• Peeked data: ARoute only considers an instance’s peeked data asblockages.

Set Overflow Versus Net Routing Selector

Use the Overflow/Nets selector from the ARoute Setup section on theARoutepalette menu to route based on one of the following modes:

• Nets: ARoute routes based on the nets in the routing area.

• Overflows: ARoute routes based on the overflows in the routing area.

Set Region Versus Extent Selector

Use the Region/Extent selector from the ARoute Setup section on theARoutepalette menu to route an area based on one of the following modes:

• Region: ARoute routes only the nets or overflows in a rectilinear regionyou provide.

• Extent: ARoute routes all the nets or overflows within the extent of theselected cell.

Select Net Class Dialog Box

Open withEdit from the ARoute Net Classes section of theARoute palette menu.

The following describe the fields of the Select Net Class dialog box:

IC Station User’s Manual, v8.9_924-12

Page 681: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

.

net

• Class Window: Select theclass from this window that you want to change

• New/Edit: Opens theNet Class dialog boxwhich you use to create or edit anet class and define the width and spacing on the routing levels of thatclass.

• Assign: Opens the Assign Nets to Classes dialog box which you use toassign nets to selected net classes.

• Remove: Removes the selected net class.

• Close: Closes the Select Net Classes dialog box.

Net Class Dialog Box

Open with the New/Edit button on the Select Net Class dialog box.

IC Station User’s Manual, v8.9_9 24-13

Page 682: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

The following describe the fields of the Net Class dialog box:

• Net Class: Use this combo box to select the name of thenet classyou wishto edit. If you select “New...”, you will need to click “Apply” for the dialogbox that prompts for the new class name.

• Level: Shows the name of the routing levels listed in your process file.

• Width : Sets the width of the nets in the net class.

• Spacing: Sets the wire to wire spacing of the nets in the net class.

• Advanced Spacing: Opens theAdditional Layer Spacing Dialog Box.

• Shielding: Toggles shielding on or off. The Edit button opens theDefineNet Class Shield Dialog Box.

Additional Layer Spacing Dialog Box

Opens with the Advanced Spacing button on theNet Class Dialog Box.

The following describe the fields of the Additional Layer Spacing dialog box:

IC Station User’s Manual, v8.9_924-14

Page 683: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

f

ns

w the

• Additional Layer Spacing: Specifies the spacing required betweendifferent layers for the same class.

• Class to Class Spacing: Specifies the spacing required between layers oone class to layers of another class.

Define Net Class Shield Dialog Box

The following describe the fields of the Define Net Class Shield dialog box:

• Shield Type: Specifies the type of shield to route with the net. The optioare as follows:

o Parallel same-layer only: Specifies that a shield will be placed only onthe same layer as the net.

o Layer above/below only: Specifies that a shield will be placed only onthe layers above and below the net.

o Parallel + Layer Above/Below: Specifies that a shield will be placedboth on the same layer as the net, and on the layers above and belonet.

• Shield wire net: Specifies which net to use as the shielding net.

IC Station User’s Manual, v8.9_9 24-15

Page 684: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

d

s

et

• Same layer shield wire width: Specifies the width of the shield wire.

• Same layer shield wire spacing: Specifies the spacing between the net anthe shield wire.

• Layer above/below overlap: Specifies how much the shield on the layerabove and below the net overlap the net.

Assign Nets to Classes Dialog Box

Open with the Assign button from the Select Net Class dialog box.

The following describe the fields of the Assign Nets to Classes dialog box:

• Select net class: Select thenet class to which you want to assign nets.

• Select net name: Select all the nets you want to assign to the selected nclass.

IC Station User’s Manual, v8.9_924-16

Page 685: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

Edit Process Override Dialog Box

Open with File > Process > Edit Proc Override.

The following describe the fields of the Edit Process Override dialog box:

• Process Name: Shows the name of the process file you are editing.

• User Grid: Sets the user grid in a 1:1 aspect ratio.

• Half Layer Routing : This is used for ICblocks. ARoute ignores this.

• Process Values: Select an item from the list box and click the Edit Valuebutton to open that item’s dialog box. Enter the process values in eachdialog box.

IC Station User’s Manual, v8.9_9 24-17

Page 686: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

ARoute Palette Menu

Open withICassemble > Route palette menu item on the IC Palettes palettemenu.

Figure 24-4. ARoute Palette Menu

Following are descriptions of the ARoute Palette menu buttons:

Plan

NetsOptions

Define

ChkProc

RUN

Run

Shape*

RotateFlip H

Grid

Top

ExtentDirection

Select

ChkDsn

SOvrf

DeletePath*Move Copy

Meas*Flip V

Delete

External

Load SaveEdit

FlatnAlignSldRte

RunSetup

Shield

Rip

Assign

IC Station User’s Manual, v8.9_924-18

Page 687: Icstation User Manual @Vins

ARoute ARoute Graphical User Interface

ages.ell

a

tes

tton

• Plan: Opens the Floorplanning palette menu.

• Top: Opens IC Palette.

• Options: Opens theARoute Options dialog box.

• Direction: Opens the Set Preferred Routing Direction dialog box.

• Nets: Allows you to select whether ARoute routes overflows or nets.

• Extent: Sets routing region to extent or region.

• External: Specifies the route hierarchy mode.External specifies that onlygeometries on the external aspect of the instance are treated as blockPeeked specifies that only the geometries visible from being peeked artreated as blockages.All specifies that all geometries in the instance’s cehierarchy are treated as blockages.

• Load: Loads an existing net class control file with width and spacingconstraints to apply to each net.

• Save: Save the currently loaded and edited net class control file.

• Edit : Edit the constraints on a net in a net class control file.

• Assign: Opens the Assign Netclass Dialog Box which you use to assignnet to an existing class.

• Define: Prompts you to place a rectangle region. ARoute then only rouinside that region.

• Select: Specifies an ARoute routing region for executing editingcommands.

• RUN: Starts the ARoute process. This button becomes a red STOP buduring a run.

• Rip: Rips up existing routes and runs ARoute to try to improve routingcompletion.

IC Station User’s Manual, v8.9_9 24-19

Page 688: Icstation User Manual @Vins

ARoute Graphical User Interface ARoute

th

lls.

ject

d

ths

• Setup: Opens the Setup IRoute dialog box.

• Run: Activates IRoute and opens the IRoute prompt bar.

• ChkProc: Checks whether or not the loaded process is valid for use wiAutoCells.

• ChkDsn: Checks whether or not the design is valid for use with AutoCe

• Run: Runs AutoCells.

• Shield: Opens theDefine Net Class Shield Dialog Box.

• Delete: Deletes routes. Either all, selected, or ports.

• SOvrf: Selects all overflows.

• Align : Use this menu item to align the selected objects to some other obin the layout.

• Flatn: Flattens the hierarchy of the selected cells.

• SldRte: Slide selected routes with the cursor keys.

• Shape*: Displays the Add Shape prompt bar. Use this menu item to adshapes to the design.

• Path*: Displays the Add Path prompt bar. Use this menu item to add pato the design.

• Delete: Deletes selected objects in the active context.

• Move: Moves selected objects in the active context.

• Copy: Copies selected objects in the active context.

• Flip H : Flips selected objects horizontally.

• Flip V : Flips selected objects vertically.

IC Station User’s Manual, v8.9_924-20

Page 689: Icstation User Manual @Vins

ARoute ARoute Figures

• Rotate: Opens the Rotate prompt bar for rotating selected objects.

• Meas*: Opens the Measure Distance prompt bar.

• Grid : Opens the Set Grid dialog box.

ARoute FiguresFigure 24-5. Pin Spacing Guidelines

IC Station User’s Manual, v8.9_9 24-21

Page 690: Icstation User Manual @Vins

ARoute Figures ARoute

Figure 24-6. Pin Layers and Preferred Routing Direction

IC Station User’s Manual, v8.9_924-22

Page 691: Icstation User Manual @Vins

ARoute ARoute Figures

Figure 24-7. Pins on Non-Routing Layers

IC Station User’s Manual, v8.9_9 24-23

Page 692: Icstation User Manual @Vins

ARoute Figures ARoute

Figure 24-8. Pin Stubbing

IC Station User’s Manual, v8.9_924-24

Page 693: Icstation User Manual @Vins

ARoute ARoute Figures

Figure 24-9. Pin Blockage Layers and Shapes

IC Station User’s Manual, v8.9_9 24-25

Page 694: Icstation User Manual @Vins

ARoute Figures ARoute

IC Station User’s Manual, v8.9_924-26

Page 695: Icstation User Manual @Vins

e

h.

mon

om

Chapter 25Tutorial

About This TutorialThis tutorial is designed for new users of ICgraph who have some knowledgabout IC layout, electronic design, and the UNIX environment. This tutorialprovides basic instructions for using ICgraph to perform mask layout.

Prerequisite

Before you begin this tutorial, read Section1, “Introduction to IC Station.”

Tutorial Organization and Goals

This tutorial contains the following sections:

• “Falcon Framework,” which describes the Falcon Framework, designmanagement, and the Common User Interface (CUI) specific to ICgrap

When you complete this section, you should be able to use designmanagement tools to copy design data, and describe and perform ComUser Interface operations related to windows, menus, and keys.

• “Full Custom Editing,” which describes the basic concepts of editingICgraph cells in a full custom mode.

When you complete this section, you should be able to perform full custpolygon editing for an inverter.

IC Station User’s Manual, v8.9_9 25-1

Page 696: Icstation User Manual @Vins

Falcon Framework Tutorial

e

icsr

re:

r

set of

Falcon FrameworkUpon successful completion of this module, you should be able to perform thfollowing design management and Common User Interface (CUI) functionswithout assistance:

• Describe the primary elements of the Falcon Framework.

• Use CUI windows, the mouse, keys, and menus.

• Create directories and copy design data.

• Use online documentation.

Falcon Framework Overview

The Falcon Framework is a common environment in which both Mentor Graphand OpenDoor tools run. The Falcon Framework provides the Common UseInterface and generic tools for text editing, design management, and toolprototyping.

The components of the Falcon Framework architecture underlying ICgraph a

• Design Manager IC. A tool that you use to manage your IC designs,including copying, moving, controlling changes, and releasing. Somedesign management capabilities are embedded in ICgraph. For moreinformation on design management, refer to theDesign Manager User'sManual.

• Common User Interface (CUI). The CUI is the way in which you interactwith the tools. Parts of the CUI include windows, keys, and menus. Fomore information on the CUI, refer to theCommon User Interface Manual.

• Decision Support System (DSS). The DSS is your tool for creating customelectronic design tools. DSS combines a spreadsheet user interface, ainterfaces to outside data, and a visual building-block toolkit. For moreinformation on DSS, refer to the Decision Support System (DSS) User'sManual.

IC Station User’s Manual, v8.9_925-2

Page 697: Icstation User Manual @Vins

Tutorial Falcon Framework

E,

ofer ICs.er IC

er ICnager

• AMPLE . A C-like procedural programming language. You can useAMPLE to extend and customize tools. For more information on AMPLrefer to theAMPLE User's Manual and theAMPLE Reference Manual.

For more detailed information on using the Falcon Framework, you shouldcomplete theGetting Started with Falcon Framework Workbook.

Design Management

TheDesign Manager ICis a tool that helps you manage your IC designs byproviding an easy way to copy and move designs, access previous versionsdesigns, and perform other tasks. The basic unit on which the Design Managoperates is called thedesign object. Design objects are design files and directorieInstead of treating files and directories as separate objects, the Design Managtreats them as a single design object. Regardless of the particular files anddirectories that compose your application's design objects, the Design Managoperates on them in the same way. For example, using the same Design MaIC command, you are able to copy a schematic or an entire IC.

Figure25-1 shows an example of the Design Manager IC session window.

IC Station User’s Manual, v8.9_9 25-3

Page 698: Icstation User Manual @Vins

Falcon Framework Tutorial

e

Figure 25-1. Design Manager

A subset of design management operations is available to you from withinICgraph. These design management operations are referred to as theIntegratedDesign Manager (iDM)which is available from the pulldown menu itemMGC >Design Management in the IC Graph session window. The iDM commands ardescribed in detail in the section “Integrated Design Management (iDM)” in theDesign Manager User's Manual. Figure25-2 shows the Copy Design Objectdialog box that is available within ICgraph to copy design objects.

IC Station User’s Manual, v8.9_925-4

Page 699: Icstation User Manual @Vins

Tutorial Falcon Framework

Figure 25-2. Copy Design Object Dialog Box

For more information on the Design Manager IC, refer to theDesign ManagerUser's Manual.

IC Station User’s Manual, v8.9_9 25-5

Page 700: Icstation User Manual @Vins

Falcon Framework Tutorial

ls.

nd

I):

ucts.

ool

line

he

w

druser

Common User Interface

All Mentor Graphics IC products use theIC Flow Common User Interface(IC CUI). The IC CUI provides a consistent way for you to interact with all tooThe IC CUI is based on Open Software Foundation/Motif (OSF/Motif)standards—an industry-wide set of guidelines that apply a commonlook and feelto all tools. Mentor Graphics has enhanced the IC CUI for greater flexibility afunctionality.

Here are some of the notable features of the IC Common User Interface (CU

• Consistent appearance and action across all Mentor Graphics IC prod

• Multiple windows on the display that let you access different parts of a tor different tools during the same session.

• Seven standard menus for performing generic tasks and accessing onhelp.

• Consistent controls and actions for all types of menus.

• Graphical controls that let you interact with tools.

• Access to the IC Common User Interface via graphic input devices,keyboard mnemonics, and the keyboard.

• Ability to add menus, menu items or any other available functionality to tIC Flow Common User Interface to enhance your own productivity.

For more information on the IC Common User Interface, refer to the “Overvieand Key Concepts” section of theCommon User Interface Manual.

Windows

A window is a specified area on the display screen in which you run a tool aninteract with it. All Mentor Graphics tools use windows. The IC Common UseInterface uses several types of windows to display information and to receiveinput. Each window fulfills a specific purpose. Figure25-3 shows thesessionwindow for ICgraph when ICgraph is first invoked.

IC Station User’s Manual, v8.9_925-6

Page 701: Icstation User Manual @Vins

Tutorial Falcon Framework

e

ive

The session window is the host window for a tool that displays whenever youinvoke a Mentor Graphics tool, such as ICgraph. You can have more than onsession window, and use multiple tools at any given time.

Figure 25-3. IC Session Window

The parts of the IC Session window are:

• Title bar. Contains the name of the tool. Theactive window acceptskeyboard input; all other windows are inactive. The title area of the actwindow is highlighted to distinguish it from non-active windows.

Softkeys

Palette Menu

Message Area

Status Line

Title Bar

Pulldown Menu Bar

IC Station User’s Manual, v8.9_9 25-7

Page 702: Icstation User Manual @Vins

Falcon Framework Tutorial

rges

ou

s),

• Status Line. Displays status information for ICgraph as shown inFigure 25-3.

When the Show Dynamic Status option is enabled, the status line enlato display two rows of information as shown inFigure 25-3; when DynamicStatus is disabled, the status line appears as shown inFigure 25-4. Bydefault, Dynamic Status is enabled.

Figure 25-4. Status Line with Dynamic Status Disabled

The Dynamic Status row displays dynamic hotkeys during operations. Ycan enable/disable dynamic status using theSetup > Status Linemenuitem and toggling theShow Dynamic Status button.

For more information on enabling Dynamic Status (i.e. dynamic hotkeyrefer to the “$setup_status_line()” function page in theIC Station ReferenceManual. For additional information on dynamic hotkeys, refer to sectionDynamic Hotkeysin theIC Station User Interface Manual.

• Pulldown Menu bar. Contains the Session pulldown menus.

• Palette Menu. Contains the Session palette menus.

• Softkeys. Displays the key definitions for function keys.

• Message area. Displays notes, warnings, and errors and informationalmessages generated during operations.

For more information on windows, refer to the section “Windows” in theCommonUser Interface Manual.

Status Line with Dynamic Status Disabled

IC Station User’s Manual, v8.9_925-8

Page 703: Icstation User Manual @Vins

Tutorial Falcon Framework

of

ornds.

Scopes

A scope is a software concept that restricts a set of commands to objects in aspecific window. Each tool and each window in that tool contains its own setcommands. For example, in the IC 1 and IC 2 windows shown in Figure25-5, youcan execute commands to manipulate polygons; however, you cannot issuecommands related to schematic data. As you move from window to window,tool to tool, the scope changes, restricting or expanding the available comma

Figure 25-5. Scopes

For more information on scopes, refer to theAMPLE User's Manual or theCustomizing the Common User Interface Manual.

IC Station User’s Manual, v8.9_9 25-9

Page 704: Icstation User Manual @Vins

Falcon Framework Tutorial

es

.

e

.ign

he

theits

Navigators

Navigators let you select and explore the contents of directories and referencthrough buttons as shown in Figure25-6. A navigator generally displays when acommand requires a pathname as an argument such as when opening cells

Figure 25-6. Navigator

The function of each Navigator window button is described below.

• Explore Contents. Navigates into the selected directory and displays thdesign objects that it contains.

• Explore Parent. Navigates up one directory or reference level.

• Explore References. Displays thereferencesof the selected design objectReferences are other design objects that are used by the selected desobject, such as a Process in an ICgraph cell.

• Explore Back to Parent. Navigates back to the design object that holds treferences currently displayed.

• Go To. Displays a dialog box into which you can enter a pathname torepresent the desired file system directory destination. After you enter destination directory, the navigator goes to that directory and displays contents, and the title bar displays the new location.

ExploreContentsExploreParentExploreReferences

Explore Backto Parent

Go To

IC Station User’s Manual, v8.9_925-10

Page 705: Icstation User Manual @Vins

Tutorial Falcon Framework

as

in

s

For more information on the Navigator window buttons, refer to theDesignManager User's Manual.

The Mouse

Themouse is a graphical input device that lets you interact with the tools. Themouse buttons are referred to as the Select, Stroke/Drag, and Menu buttonsshown in Figure25-7.

Figure 25-7. The Mouse

You can perform several actions with mouse buttons:

• Click . Press and release a button without moving the mouse.

• Double-click. Click the button twice in rapid succession. Some selecteddesign objects behave differently if you double-click a button:

o Double-clicking with the Select button on a selected design object the Design Manager invokes the default tool on the design.

o Double-clicking with the Select button on a subwindow icon restorethe window to its previous size.

Select Button

Menu Button

Stroke/Drag Button

IC Station User’s Manual, v8.9_9 25-11

Page 706: Icstation User Manual @Vins

Falcon Framework Tutorial

es

.

cts

se),

yourions,ical

led

tion

o the

o Double-clicking with the Select button on a window menu button closthe window.

o Double-clicking with the Select button while interactively entering alocation completes the location entry.

o Double-clicking with the Menu button displays the last popup menuselection. You then choose a menu item and click the Menu button

o Double-clicking with the Select button in a layer palette gadget selethat layer and executes the dialog box.

• Drag. Press the button, drag the cursor to a new location (using the mouand then release the button.

For more information on graphic input devices, refer to the Common UserInterface Manual.

Keys

The keys you use with IC Station depend on your workstation. IC Station issupported on HP-PA, DEC, and Sun workstations.

In this manual, you may read about a key name that is not labeled as such onkeyboard. Because Mentor Graphics tools exist on several different workstateach with a slightly different keyboard, this manual describes keys by their logkey names rather than by the names that appear on the keycaps. A logical keynameis a name that represents a particular physical key, which may be labedifferently on different keyboards. For example, theSet IC Layerkey is on key F0on the HP-PA keyboard and on key F12 on the Sun keyboard.

For a complete list of logical key names for various platforms, refer to the sec“ Logical Key Name Mappings” in the Common User Interface ReferenceManual.

For a complete list of key names and how they are used in IC Station, refer tsection “Keys” in the IC Station User Interface Manual.

IC Station User’s Manual, v8.9_925-12

Page 707: Icstation User Manual @Vins

Tutorial Falcon Framework

.r a

y to

e

Menus

Menus are graphical aids that display a list of tasks pertinent to a tool or areaWhen you select a menu item, either the tool performs the specified action, ocascading menu, dialog box, or prompt bar appears. Menus are an easy waexecute tasks without having to know the underlying commands. The labexercises in this training workbook typically use pulldown, popup, and palettmenu items to issue commands. Figure25-8 shows examples of these menus.

Figure 25-8. Menus: Pulldown, Popup, and Palette

There are three kinds of menus:

• Pulldown menus are displayed at the top of the session window. Thesemenus generally provide functionality that is used in several differentwindows.

ObjectDefault Property SettingsParameterInterfacesCheckPanelsGroups

Set Report Defaults...

Report Check Miscellaneous Libraries Help

SelectedAs Specified... All

InstanceNet

Open

CellProcessLibraryClipboard

Easy Edit

Back

Add Objects

Shape *Path *

Property *Prop Text *

Cell *Device *Ruler *

Pulldown

Popup Palette

IC Station User’s Manual, v8.9_9 25-13

Page 708: Icstation User Manual @Vins

Falcon Framework Tutorial

e

lityf the

nts

s

le

ve the

• Popup menus are specific to a window. These menus generally providfunctionality that is used only in the window in which they appear.

• Palette menus generally provide functionality that is used in a specificwindow. Unlike the popup menu, you can always access the functionaof this type of menu. Palette menus are usually displayed on the side osession window and can appear as text or icons.

Some menu items include one of the following characters:

• A colon (:) following a menu item indicates that a prompt bar will bedisplayed for that menu item, which usually means that not all argumehave been supplied for the function.

• An ellipsis (...) following a menu item indicates that a dialog box displayfor that menu item, which usually means that additional information isrequired to complete the function.

• An arrow ( ) following a menu item indicates that a submenu is availabthat contains additional choices.

For more information, refer to the Common User Interface Manual and the ICStation User Interface Manual.

Prompt Bars

A prompt bar is a graphical aid that is displayed when required arguments hanot been supplied to a command. You complete the requested arguments onprompt bar and execute it. TheFunction name gives you the abbreviatedcommand or function name; for example, OPE CE (Open Cell) in Figure25-9.TheLocation cursor highlights the active field in a prompt bar.

IC Station User’s Manual, v8.9_925-14

Page 709: Icstation User Manual @Vins

Tutorial Falcon Framework

mpte.

ign

Figure 25-9. Prompt Bar

Controls are graphical push-buttons that let you supply arguments to the probar. Required arguments are in bold type; optional arguments are in italic typPrompt bar controls includechoice steppers, dynamic prompts, entry boxes, andbuttons. Access is a stepper control.Choice steppers let you select one of manyvalues.Dynamic prompts let you enter location coordinates, such as the plus s(+) in the lower prompt bar.

OPE CE Cell name OK CancelAccessjkff read_only

ADD SH Polygon OK CancelOptions...

Controls

Location Cursor

Function Name

Prompt Bar Buttons

IC Station User’s Manual, v8.9_9 25-15

Page 710: Icstation User Manual @Vins

Falcon Framework Tutorial

ou

then

ou

ing

large

exes,

Prompt bar buttons let you specify additional optional arguments (Options...),execute the prompt bar (OK ), or cancel the prompt bar (Cancel) as shown inFigure25-10. You can also use the Return key to execute a prompt bar and ycan use the Esc key to cancel a prompt bar.Mid-command freedom lets you stopin the middle of one operation and perform one or more other operations, andreturn to the interrupted operation.

Figure 25-10. Prompt Bar Buttons

For more information, refer to the Common User Interface Manual.

Dialog Boxes

A dialog boxis an area with controls similar to those on prompt bars that help yto provide information to one or more functions, or let you read information. Adialog box can appear in any window or area and prevents you from continuwith the tool until you fill out the dialog box and accept or cancel its settings.They are usually displayed instead of a prompt bar when a command has a number of arguments, such as the one shown in Figure25-11.

Dialog boxes contain a variety of controls that you can use to interact with thdialog boxes. Controls may include radio buttons, regular push-buttons, list boand miniature navigators similar to the one used in the Design Manager IC.

OPE CE Cell name OK CancelAccessjkff read_only

ADD SH Polygon OK CancelOptions...

ADD SH Polygon OK CancelOptions...

IC Station User’s Manual, v8.9_925-16

Page 711: Icstation User Manual @Vins

Tutorial Falcon Framework

by

t oftool.

n in

Figure 25-11. Dialog Box

For more information on dialog boxes and their controls, refer to theIC FlowCommon User Interface Manual.

Strokes

A stroke is a recognizable character or symbol that you sketch on the screenholding down the Stroke button on the mouse and dragging the cursor as ifdrawing with a pen. To terminate the stroke, release the Stroke button. A sedefault stroke characters and symbols is defined each time that you invoke a

For example, if you sketch the letter C from top to bottom in ICgraph as showFigure25-12, you invoke the$copy() function. To copy an object, refer to thefollowing instructions.

Setup Session

OK Cancel

Select Input Device: Show Menu Bar

Double Click Speed Window Layout

Slow

Fast

Stacking

Ask User for Position

Left Right Tiling

Up Down Tiling

Quadrant Tiling

GTCOSUMMAGRAPHICS

Show Session Title

Show Message Area

Show Palette

Show Status Line

Reset

Show Soft Keys

MOUSE

IC Station User’s Manual, v8.9_9 25-17

Page 712: Icstation User Manual @Vins

Falcon Framework Tutorial

py.

cesand

Copying an Object

1. Select the object.

2. Press and hold the Stroke button.

3. Sketch the letter C, starting at the spot where you want to place the co

Figure 25-12. Stroke Example

As you draw a stroke, the system identifies it according to the path that it traacross the screen. This path is labeled with a series of numbers. To underst

IC Station User’s Manual, v8.9_925-18

Page 713: Icstation User Manual @Vins

Tutorial Falcon Framework

e as

n isy the

e

these numbers, imagine that an invisible grid is superimposed over the strokshown in Figure25-13.

Figure 25-13. Stroke Grid

A stroke is identified by the box numbers it passes through. This identificatiocalled the stroke ID. For example, a stroke in the shape of a C is identified bnumbers “3214789.” Similarly, a U is identified as “1478963.” The size of thestroke does not influence its numeric identifier; the invisible grid adjusts to thsize of the stroke.

Strokes drawn from top to bottom are not equivalent to strokes drawn frombottom to top. For example, a “C”-shaped stroke drawn from top to bottom isidentified as “3214789,” while a “C” drawn from bottom to top is “9874123.”

For more information on strokes, refer to theCommon User Interface Manualandthe IC Station User Interface Manual.

987

654

321

IC Station User’s Manual, v8.9_9 25-19

Page 714: Icstation User Manual @Vins

Falcon Framework Tutorial

n thet to

w is

otherousd instlickon's

th

ICost

ls.

Online Documentation

From within a tool, you can get help on a tool's menus, functions, and keys iform of online versions of the documentation. IC Station uses Adobe Acrobadisplay online documentation.

When you use the Help menu in IC Station, an Adobe Acrobat Session windocreated if one does not already exist.

Hypertext links are a feature of online documents that let you navigate to anlocation in the same document or to another document. In addition to numerhypertext links throughout the manuals, all entries in the Table of Contents anthe Index are hypertext links. Hypertext links are highlighted on color displayand are enclosed in a box on monochrome displays. You can click the Selecbutton on a hypertext link to display the targeted page. For example, if you con the name of a function in the Table of Contents, the first page of that functidescription is displayed.

Environment Variables

An environment variable is a shell-level variable that lets you communicate wiyour application to set its internal states as it is invoking. The names of thesevariables and the values that you assign to them are case-sensitive.

To ensure that your environment works correctly, you or your SystemAdministrator must correctly set the appropriate environment variables for theStation tools. A minimum set of environment variables commonly needed by mIC users is listed below.

• MGC_HOME . Specifies the location of Mentor Graphics software.

• MGLS_LICENSE_FILE . Specifies the location of Mentor Graphicsapplications' license file.

• LM_LICENSE_FILE . Specifies the location of CheckMate license file.

• MGC_WD . Specifies the working directory inside Mentor Graphics too

IC Station User’s Manual, v8.9_925-20

Page 715: Icstation User Manual @Vins

Tutorial Full Custom Editing

sther

n

r

your

If

t theons

• MGC_LOCATION_MAP . An ASCII file that associates hard pathnamewith soft prefixes; used to resolve paths to cells, referenced cells, and odesign objects.

• MGC_NO_LOCATION_MAP . Specifies that you are not using a locatiomap.

• DEFAULT_PRINTER_NAME . Specifies the name of the default printeto print to within Mentor Graphics tools.

• MGC_KBD . Specifies type of keyboard for predefined key functions.

For complete information about those environment variables that can affect IC Station environment, refer to “Environment Variables” in theManagingMentor Grapics IC Flow Software manual.

Full Custom Editing

Full Custom Editing Overview

If you are creating standard cells, you will generally use parts from a library. you are developing libraries, creating ICs that do not lend themselves toautomation, or creating ICs that require minimum die size, you may handcrafindividual polygons. After you have a schematic, you can create and edit polygin ICgraph—the layout editor for IC Station.

Upon completion of this module, you should be able to perform the followingtasks:

• Describe the primary ICgraph windows and their purpose.

• Describe the primary objects that you can place in a cell.

• Open an ICgraph Edit window for a new cell.

• Create rectangular and irregular polygons.

• Modify polygons.

IC Station User’s Manual, v8.9_9 25-21

Page 716: Icstation User Manual @Vins

Full Custom Editing Tutorial

that

es ases

• Save the cell database.

• Exit ICgraph.

ICgraph

ICgraph is a complete IC layout environment, which includes subsets of toolslet you perform floorplanning, automated block placement and routing, fullcustom editing, and interactive layout verification as shown inFigure 25-14. Youcan mix automated and full custom design methods within a cell. ICgraph usunified database and rule set, which is built on the Falcon Framework, and uthe IC CUI.

IC Station User’s Manual, v8.9_925-22

Page 717: Icstation User Manual @Vins

Tutorial Full Custom Editing

Figure 25-14. ICgraph Flow Chart

ICgraph

Compaction

Full CustomEditing

LayoutVerification

Placement andRouting

ICrulesICtrace

ICextract

ICplanICblocks

ICgraph

ICcompact

Batch Verificationand PatternGeneration

Schematic Captureand Simulation

IC Station User’s Manual, v8.9_9 25-23

Page 718: Icstation User Manual @Vins

Full Custom Editing Tutorial

ll

elyyly

The major functional areas and tools within ICgraph include the following:

• Full Custom Editing. Uses ICgraph, the default editing environment. Fucustom editing lets you handcraft each polygon in a cell.

• Placement and Routing. Uses a subset of ICgraph commands calledICplan to perform floorplanning. In addition, ICgraph includes a separatlicensed subset of commands called ICblocks that let you automaticallgenerate an IC layout from schematic or netlist information, or manualplace and route standard cells and blocks.

• Compaction. Uses the compact command in ICgraph to compactcell-based, device-based, and all-angle polygon based designs.

• Layout Verification . Uses three separately licensed subsets of ICgraphcommands and a common Rules file to perform interactive layoutverification.

o ICrules performs design rule checking (DRC).

o ICtrace performs layout versus schematic (LVS) checking.

o ICextract performs parasitic extraction (PEX).

After the IC layout is complete, you can perform batch verification usingCheckMate, ICverify, or Calibre/xCalibre. You can then perform patterngeneration.

Cells

Cells are the basic design element in ICgraph. Each cell is an independentstructure which you can createflat or hierarchically. Flat cells contain only masklayout data and do not reference any other cells as shown in Figure25-15. Yougenerally use flat cells for smaller designs.

IC Station User’s Manual, v8.9_925-24

Page 719: Icstation User Manual @Vins

Tutorial Full Custom Editing

r

Figure 25-15. Flat Design Data

Hierarchical cells contain references to other cells calledinstances. When youreference another cell, you place a symbolic representation of that cell in youdesign, much like placing a symbol on a schematic as shown in Figure25-16.

GND GNDGND GND GNDGND

VS

S

VS

S VS

S

VS

S

VS

S

VS

S

VS

S

VS

S

VS

S

VS

S VS

S

A BZ ZAZA ZA AKJ QN

CL

R Q

S

NO

R2

INV

INV

NO

R2

VDD

INV

VDD

INV

VDD

GND

BZ A

A Z

Z

Z

VD

D

VD

DVD

D

VD

D

VD

DV

SS

22

NR

2IV IV IV

FJK

3

VD

D

VD

D

VD

D

VD

D VD

D

INV

INV

INV

VDD

INV

VDD

A QNJ KZ A Z

RING

INV

JKF

F

RING

INV

VDD

JKF

F

VDD

VD

D

VD

D

IV

RING

22

22

S R Q

CL A Z

22

SQ R

SR

QA

A

VS

SV

DD

VD

DV

SS

IV

22

INV

JKF

F

NA

ND

3

GND

VDD

GND

VDD

JKF

F

INV

NA

ND

3

VDD

GND

IVFJK

3

ND

3

A

QN

CL

CL

QN

JK

JK A

Z

Z

A

BZ

Z

A

B

CC

VS

SVS

SV

DD

VD

DV

SS

VD

D

VS

SV

DD

VS

SV

DD

33

IC Station User’s Manual, v8.9_9 25-25

Page 720: Icstation User Manual @Vins

Full Custom Editing Tutorial

sterll at

.e

y

Figure 25-16. Hierarchical Design Data

Referenced cells can be as simple as a transistor, or as complex as the regisection of a microprocessor. You can view the mask data of a referenced ceany time by peeking the cell. By designing hierarchically, you can partitiondesigns into functional blocks. This is especially useful in team environmentsEach team member can work on a functional block without interfering with thother team members.

Before you can make changes to a cell, you must reserve the cell for edit. Bdefault, cells are opened read-only.

For more information about Cells, refer to the section “Cell and Instance” inChapter5.

RINGRINGRING

33

NAND3INVINVNAND4

I0I0I1

I1

I2I2

OU

TO

UT

OU

TO

UT

ININOU

TO

UT

ININ

INV

QQ

SET

SE

TRESET

CLO

CK

CLO

CK

RE

SE

T

JK

JKQ

B

QB

QQ

SET

SE

T

RESET

CLO

CK

CLO

CK

RE

SE

T

J K

J KQ

B

QB

OU

TO

UTIN

INOU

TO

UTIN

INOU

TO

UTIN

IN OU

TO

UTIN

IN

VDD

GNDI2I0I0 I1

I1I2

I3

I3

OU

TO

UTB

A

ZZB

A

DC

DC

VD

DV

SS

ND

4

I0I1I0I1

OU

TO

UT

INV INV INVNOR2

JKFF

JKFF

IC Station User’s Manual, v8.9_925-26

Page 721: Icstation User Manual @Vins

Tutorial Full Custom Editing

des

theph

cell

or

ny

ally but

tivenout.

Editing Modes

ICgraph has three levels of automatic rules checking calledEditing modes. Whenyou create a cell in ICgraph, you assign one of the three following editing moto the cell:

• Geometry Editing (GE) mode

• Connectivity Editing (CE) mode

• Correct By Construction (CBC) mode

The three editing modes differ in the level of editing constraints enforced by built-in connectivity model and design rule checking (DRC) algorithms. ICgraalso lets you change cells from one editing mode to another, as long as the meets certain requirements.

GE mode.Enables you to perform unrestricted polygon editing, does not usemaintain the connectivity information, and does not prevent connectivity orphysical design rule errors. You generally use the GE mode for handcraftingpolygon-level layout.

CE mode. Maintains connectivity data as edits occur, but does not prevent aerrors in connectivity or physical design rules. You get a warning whenconnectivity is being changed by an edit, but the edit does occur. You generuse the CE mode in situations where you want to keep track of connectivity,need the freedom to modify it.

CBC mode. Maintains connectivity data as edits occur, but layout edits cannochange the connectivity. You generally use the CBC mode for Schematic DrLayout (SDL), place and route, and cleanup after you perform automated lay

IC Station User’s Manual, v8.9_9 25-27

Page 722: Icstation User Manual @Vins

Full Custom Editing Tutorial

ical

glepe

ight,

ent

nt likeges

ces

nce.

Graphical Objects

You interact with various graphical objects that you create in ICgraph. Graphobjects that you use in full custom editing consist of the following:

• Shapes. A closed polygon of less than 4096 vertices that exists on a sinlayer. Most basic editing commands operate on shapes. The terms shaand polygon are sometimes used interchangeably.

• Paths. A special shape that is defined by a centerline, a width, and anendtype. Most edit functions operate on the path centerline.

• Property Text. A graphical representation of a property. The propertyvalue is displayed, can be selected, and has characteristics such as hejustification, and orientation.

• Instances. A reference to another cell, reflecting the functionality that isdefined by that cell. Just as you use symbols on a schematic to represfunctionality, you use instances of other cells in ICgraph to representfunctionality that you have already defined and verified. Placing a cellinside another cell is calledinstantiation.

• Devices. A programmable, reusable object, linked to a program called adevice generator, which builds each occurrence of the device based oparameters that can vary with each placement. Devices can behave jusinstances; they can have an external aspect, including pins and blockathat can correspond to a schematic component.

• Arrays. Arrayed instances of a cell. Arrays of non-instance objects, devior arrays themselves cannot be created.

• Vias. An object that connects two layers with a shape on each layer,implemented asvia instancesor via objects. Via instances are cells that youcreate with no restrictions on the objects contained within the via instaVia objects are simpler and are restricted to two shapes on two layers.

IC Station User’s Manual, v8.9_925-28

Page 723: Icstation User Manual @Vins

Tutorial Full Custom Editing

cal

anethee ine pin at

t theof

andort is

rtiesote a

data.

nal

enbject

Logical Objects

Logical objects are non-graphical objects that you place in your design. Logiobjects that you would generally use in full custom editing consist of thefollowing:

• Pins. A pin, which can have a name, is a logical object that belongs to instance. You use pins to connect an instance to another instance at thsame level of the hierarchy. Objects that make up the pin are defined byport members in the underlying cell. When you place a cell as an instancanother cell, all shapes and paths that are part of a port become a singlin the parent cell. A pin is viewed at the symbolic level; a port is viewedthe mask level.

• Ports. A port is a logical object whose members include one or moreshapes or paths that define where connections can be made to a cell anext level of the hierarchy. You can individually select and edit membersa port. When you place a cell as an instance in another cell, all shapespaths that are part of a port become a single pin in the parent cell. A pviewed at the mask level; a pin is viewed at the symbolic level. A portbecomes a pin at the next level up in the hierarchy.

• Properties. A logical object associated with a specific object in the cell.Properties are the equivalent of property text without the graphicalrepresentation of the property value. For example, you would use propewhen you need to add connectivity information to the cell and you do nwant that information displayed, but you would use property text to namcell. The object that a property is attached to is called the propertyowner.

Aspects

There are two sets of data associated with a cell: internal data and external These two sets of data are referred to asaspects. Aspect determines the objectswithin a cell that are visible when that cell is instantiated in another cell. Exterdata objects are the interface (or symbol) of the cell as shown in Figure25-17.Internal data objects are the implementation of a cell and are visible when thobject is peeked, as shown in Figure25-18. For example, the blockage shapes oan instance are part of the external aspect of the cell that is instantiated. An o

IC Station User’s Manual, v8.9_9 25-29

Page 724: Icstation User Manual @Vins

Full Custom Editing Tutorial

th a

can be a member of both the internal and external sets of data, making it bopart of the implementation, as well as part of the interface of a cell.

Data within a cell can be one of the following:

• External only. Used for a symbolic view and some blockages.

• Internal only . Used for mask data and non-exported cell features.

• Both external and internal. Used for pins and some blockages.

Figure 25-17. External Aspect Figure 25-18. Internal Aspect

NAND4NAND4

GN

D

Vdd NAND4

OUT OUT

I3

I3

I2

I2

I1I1

I0 I0ND4

IC Station User’s Manual, v8.9_925-30

Page 725: Icstation User Manual @Vins

Tutorial Full Custom Editing

use

aths

tion

uringcess isxist,cess is

Young theeocess

Aspect does not distinguish mask from non-mask data. To do that, you mustyour own specification of layers for output. Aspects have the followingcharacteristics:

• You can specify the aspect (internal, external, or both) for shapes and pwhen you create them.

• You can change the aspect associated with an object.

• Port members (shapes and paths) automatically have both internal andexternal aspects.

• The external aspect includes the connected interface of the cell. Theinternal aspect contains data that is the implementation of the cell.

Process

TheProcess describes the technology, design rules, and other global informaabout a cell or a design. This information may include the precision (minimumobject size), layer naming and appearance, and layer-to-layer spacingrequirements.

Each cell has a Process associated with it. If you do not specify a Process dcell creation, a default Process is used. When a cell loads, the associated Proloaded (if it is not already loaded). If the Process that you specify does not eICgraph gives you a warning and keeps the current session Process. The Propersistent with the cell; you can change it only with theSET CEll Processcommand.

The session Process is the Process of the top-level cell in the active window.change the session Process either by changing the active window, or by usiCREate PRocess or LOAd PRocess commands when the IC session is the activwindow. Before you can make changes to a Process, you must reserve the Pr

IC Station User’s Manual, v8.9_9 25-31

Page 726: Icstation User Manual @Vins

Full Custom Editing Tutorial

of and the

e

gysyers

et ofs as

for edit. If the active window changes, the active Process is reset. The namefollowing Process: in the status line is the name of the active Process.

Process data is stored in a Process Definition Fileset (PDF), which consists (PDF) and a Rule file. The PDF contains information such as layer naming aappearance, precision, and process-related variables. The Rule file containsfollowing information:

• Design rule data. Specifies various design rule checks.

• Connectivity data. Specifies the layers that are electrically connected.

• Parasitic data. Specifies the proportionality constants used to determinthe capacitive and resistive effects on a layer.

• Device recognition data. Specifies transistor and capacitor data.

Layers

There are 4096 layers numbered 0 - 4095 available in ICgraph. The technolothat you are using generally determines the layers that you use. Layer data ipersistent within a particular process. While editing, you can decide which laare visible as shown in Figure25-19.

Note

When you create a cell, ICgraph defines the Process to be a sdefault parameters. ICgraph allows you to change your procesneeded. CMOS is one of the most commonly used Processes.

IC Station User’s Manual, v8.9_925-32

Page 727: Icstation User Manual @Vins

Tutorial Full Custom Editing

uch

veple,

do

Figure 25-19. Set Visible Layers Menu

For each numbered layer, you can also define the following:

• Names. A string that you use to refer to a layer rather than a number, sas active, diffusion, pwell, and metal1.

• Aliases. A string that you use to refer to a layer name or set that you haalready defined. Aliases are usually shorthand layer names. For examyou could define an alias for metal1 called m1.

• Default path widths. A real number that is used as a default when you not supply a width argument to a path creation command.

And/Or type in layers

Action

Append

Remove

Replace

Toggle

Refresh Display

OK Reset Cancel

Choose One or More

1234567894097

pwellnthinoxpthinoxpolysiliconp_pluscontactmetal1metal2viarow

Set Visible Layers

Layers

IC Station User’s Manual, v8.9_9 25-33

Page 728: Icstation User Manual @Vins

Full Custom Editing Tutorial

e

s.

, thef a

the

• Appearance parameters. Values that let you specify how objects on aparticular layer are displayed. You can specify the following appearancparameters for normal, selected, and highlighted objects:

o Line, Fill, and Text color. You can choose from 86 predefined color

o Line Style. You can choose between solid, dotted, dashed, or acombination of dotted and dashed.

o Line width. You can choose between 1 through 5 pixels.

o Fill pattern. You can choose from 256 predefined patterns.

Layer setsare groups of layers that you refer to by a single name. For exampleoverlapping areas of the active and poly layers may define the gate region otransistor. You define a layer set calledgateconsisting of the active and diffusionlayers; then you use gate as a layer name instead of active and poly.

IC Window

IC windows are where you create and edit all ICgraph cells as shown inFigure25-20. You can have an unlimited number of IC windows open at anygiven time. You can copy data between IC windows by first copying or cuttingdata to a clipboard window, and then pasting it to another IC window.

IC Station User’s Manual, v8.9_925-34

Page 729: Icstation User Manual @Vins

Tutorial Full Custom Editing

is

bein

Figure 25-20. IC Station Window

You have a single active window in ICgraph. The title bar of the active windowhighlighted. You execute commands that operate on objects within the activewindow.

The cell that you are editing in the active window is referred to as theactivecontext cell. If you are editing a hierarchical design, the active context cell maythe top level cell in an IC window, or it might be an instance of another cell withan IC window that you are editing. The name followingContext:in the status lineis the name of the active context cell.

IC Station

IC Palettes

Easy EditEdit

Expert EditCE/CBC Edit

IC Session

ICrulesICtrace (D)ICtrace (M)

ICextract (D)ICextract (M)Verifdp (DRC)Verifdp (LVS)

FloorplanPlace/Route

TimingSDL

MGC File Co ntext Objects Edit Select Connectivity Set up Report O ther View Packages Help

Context: my_inverter(GE-E 0) Process: default Cursor: 10.000 1.000 Sel: 0Layer: 1

IC 1: my_inverter > my_inverter (b)

my_inverter

IC Station User’s Manual, v8.9_9 25-35

Page 730: Icstation User Manual @Vins

Full Custom Editing Tutorial

ons, and

electofsomendour

When you open an IC window, the status line is updated to display informatiabout the active context, the current Process, cursor and distance coordinateselection count in the active cell.

Selection

In ICgraph, youselect objects in the active context cell that you want tomanipulate in some way, such as copying, moving, or notching. When you sobjects, the select count in the status line is updated to indicate the number selected objects. Selected and unselected objects are usually highlighted in way to make it easier for you to differentiate them. You define the selected aunselected display attributes for objects on a layer-by-layer basis as part of yProcess.

Figure 25-21. Selection in ICgraph

IC 1: my_inverter > my_inverter (b)

SelectedObjects

UnselectedObjects

IC Station User’s Manual, v8.9_925-36

Page 731: Icstation User Manual @Vins

Tutorial Full Custom Editing

anda.

Theed.

thetn tell

jects,ct aisent

elect

cted

ouy. Ifies.ific

To simplify selection, set a global select filter, which specifies the selectableunselectable types of objects and the area relation used for selection by areSelection is also affected by object protection settings and window-specificsettings of layer visibility; you can select an object graphically only if it isunprotected and it is on a visible layer.

Selection in ICgraph follows the paradigm of an open and closed select set. current selectionis the current set of selected items, which can be open or closA select set remains open until you perform an operation on one or more of selected objects. After the current selection is closed, the items in the currenselection remain selected so that you can continue to operate on them. You caif the current select set is open or closed by looking at the select count. If theselect count is followed by a plus sign (+), the select set is open and you cancontinue selecting additional objects.

ICgraph begins with an open, empty select set. If you unselect all selected obthe select set is also emptied. If the current select set is closed and you selenew item, all items in the current select set are unselected, a new select set opened, and the new item is the only item in the current selection. If the currselection is closed, but items are still selected, you can execute the REOpenSElection command, and then select additional items. You can use the REScommand to reopen a select set after you have unselected all objects.

Editing Operations

There are a large number of editing operations that you can perform on seleobjects in ICgraph. For this tutorial, the discussion is limited to the followingoperations:

• Moving. You can move selected objects and edges to an absolute celllocation, or you can move selected objects by a relative offset by thedistance that you specify.

• Copying. You can copy selected objects to an absolute cell location, or ycan copy selected objects by a relative offset xy distance that you specifyou specify a relative xy offset, you can also specify the number of copThis method lets you quickly duplicate objects that must be offset a specdistance from each other.

IC Station User’s Manual, v8.9_9 25-37

Page 732: Icstation User Manual @Vins

Full Custom Editing Tutorial

ct:

e

ject.you

-outthe

the

o

• Rotating. You can rotate selected objects a specific number of degreesabout a specific point. Positive rotation is counterclockwise; negativerotation is clockwise.

• Notching. You can notch selected shapes and devices. This operationworks in two modes, depending on what part of an object that you sele

o If you select the entire polygon, you can notch-in and notch-out anyedge, and the overall area of the polygon changes by the area of thnotch that you create. When you notch in, you cut out parts of theselected shapes. When you notch out, you add to each selected obYou can also use the notch operation to cut a hole in an object, or can notch through an object to create multiple objects.

o If you select one or more edges of a polygon, you can perform anotch-with-constant-area operation; that is, as you notch-in or notchan edge, the polygon is modified along the selected edge to maintainoriginal area of the polygon.

Full Custom Editing Lab Exercise

Prior to working through this lab exercise, you should successfully completeGetting Started with Falcon Framework for IC Flow Training Workbook.

In this lab exercise, you will create mask data for an inverter and perform thefollowing tasks:

• Identify the IC Environment windows.

• Open ICgraph windows.

• Set the cell Process.

• Create full custom mask data for a cell.

Note

You can use the Undo popup menu item in the IC window to undany mistakes you may make.

IC Station User’s Manual, v8.9_925-38

Page 733: Icstation User Manual @Vins

Tutorial Full Custom Editing

t uprns

:

by

n:

• Modify mask data for a cell.

If you have not yet invoked and used a Mentor Graphics tool, you need to seyour environment, copy the training data to your workstation, and modify youlocation map before you can complete this exercise. The following two sectioprovide instructions for completing these steps.

Setting Environment to Invoke ICgraph

To set up your environment for invoking ICgraph, perform the following steps

• If you do not have a training directory in your home account, create oneentering the following commands at a shell prompt:

shell> cdshell> pwdshell> mkdir training

• Set MGC_WD to the location of your newly createdtraining directory, asshown, whereyour_path is replaced with the path of your home accountreturned by thepwd command above:

shell> MGC_WD= your_path /trainingshell> export MGC_WD

• Set MGC_HOME to the location of your ICgraph software tree as show

shell> MGC_HOME= path_to_icgraph_treeshell> export MGC_HOME

• Set MGC_LOCATION_MAP to the location of your mgc_location_mapfile:

shell>MGC_LOCATION_MAP=your_path /training/icgng/mgc_location_map

shell> export MGC_LOCATION_MAP

Note

Your location map filemgc_location_mapdoes not yet exist inthis location. You will copy it there in the next section.

IC Station User’s Manual, v8.9_9 25-39

Page 734: Icstation User Manual @Vins

Full Custom Editing Tutorial

n,

the

by

w

Copying the Training Data and Update the Location Map

To copy the training data from the MGC software tree to your own workstatioperform the following steps:

1. Invoke the Design Manager IC by executing the following command atshell prompt:

shell> $MGC_HOME/bin/dmgr_ic

2. From a Navigator window; choose theEdit > Copy pulldown menu item tocopy the training package from the MGC_HOME tree to the trainingdirectory on your workstation as specified below:

Copy from: $MGC_HOME/shared/training/icg894ngCopy to: / your_path /training/icgng

3. Update the location map, whose contents are shown inFigure 25-22, topoint to the location of the training data you copied to your workstationdoingone of the following steps:

Figure 25-22. Location Map

• Invoke the text editor of your choice on themgc_location_map filelocated in yourtraining directory and replace theyour_pathportion ofthe pathname with the path to your home account.

For example, if your home account is located at/user/jdoe, thepathname associated with the $IC_TRAINING soft prefix would noappear as:

/user/jdoe/training

IC Station User’s Manual, v8.9_925-40

Page 735: Icstation User Manual @Vins

Tutorial Full Custom Editing

exit

one

• From the Design Manager IC, use the Notepad editor to edit themgc_location_map file, by performing the following steps:

i. Select theMGC > Notepad > Open > Edit pulldown menu item.

ii. Enter the pathname /your_path/training/icgng/mgc_location_mapinthe dialog box that appears (replacingyour_pathwith the location ofyour home account).

iii. Click OK to open the file.

iv. Replace theyour_pathportion of the pathname associated with the$IC_TRAINING soft prefix with your home account by clicking theSelect mouse button in the Notepad window and typing.

For example, if your home account is located at/user/jdoe, thepathname associated with the $IC_TRAINING soft prefix wouldnow appear as:

/user/jdoe/training

v. Select theFile > Save pulldown menu item.

vi. Close the Notepad edit window by double-clicking the WindowClose icon in the upper left-hand corner of the Notepad window.

4. After you have copied the training data and modified the location map,the Design Manager IC by selectingMGC > Exit from the pulldown menu.

Invoking ICgraph

You are now ready to invoke ICgraph and complete this exercise.

1. Invoke ICgraph by executing the command$MGC_HOME/bin/ic at the shellprompt.

The ICgraph Session is displayed as a separate window, similar to theshown earlier inFigure 25-3 on page 25-7.

IC Station User’s Manual, v8.9_9 25-41

Page 736: Icstation User Manual @Vins

Full Custom Editing Tutorial

leerte

Opening ICgraph Cells

1. Click Open on the IC Session palette menu.

The Open Cell dialog box is displayed, similar to the one in Figure25-23.

2. Enter my_inverter for the Cell Name.

Figure 25-23. Open Cell Dialog Box

3. Click on the Edit button to enable editing of the cell.

4. Press the Return key to execute the dialog box.

Note

The cell may not be found if the MGC_WD environment variabis not set correctly in the beginning of the exercise. If my_invertis not found, repeat step 2, but use the Navigator button to locathe cell. To find my_inverter, navigate to theyour_path/training/icgng directory.

Open Cell

OK CancelReset

Cell Name Navigator...

Edit Read Only

my_inverter

Access

IC Station User’s Manual, v8.9_925-42

Page 737: Icstation User Manual @Vins

Tutorial Full Custom Editing

you

ntryus

An IC window is displayed as shown in Figure25-24. The plus sign (+) atthe lower left is theorigin point, which always identifies absolute location(0, 0) in your design.

5. Maximize the IC Window (my_inverter) by clicking the Maximize buttonin the upper-right corner of the window.

The inverter cell that you have opened for edit in the IC Window iscomplete, with the exception of the metal1 layer. In the next procedure,create the polygons to complete the metal1 layer.

6. Locate the following parts of the IC Status window:

Note

The IC Session palette has changed to the IC Palettes. Each eon the IC Palettes menu gives you access to other palette menfor editing and other ICgraph functionality such as verification.

a. The name of the current cell. d. The active layer.

b. The process associated withthe cell.

e. The select count.

c. The cursor position.

IC Station User’s Manual, v8.9_9 25-43

Page 738: Icstation User Manual @Vins

Full Custom Editing Tutorial

fromenn

in

Figure 25-24. IC Window

Setting the Cell Process

Before editing the cell my_inverter, you need to reset the Process parametersdefault to CMOS. CMOS is a process specifically designed for this tutorial. Whcreating your own cells, you may set the Process to suit your particular designeeds.

1. Select theFile > Process> Set Cell Process pulldown menu item.

Note

If the Set Cell Process menu item is gray, you forgot to choose“edit” when you opened the cell. Close the cell, then open it agachoosing “edit,” or use the keyboard shortcut Ctrl-m.

IC Station User’s Manual, v8.9_925-44

Page 739: Icstation User Manual @Vins

Tutorial Full Custom Editing

ent

) as

2. Click the Navigator button in the Set Cell Process dialog box.

The Process Navigator shows your current directory location. Your currlocation should be$IC_TRAINING/icgng.

3. Double-click thecmos process in the list box.

4. If theChange current context only entry in the Set Cell Process dialogbox is not enabled, select it now.

5. Click OK in the Set Cell Process dialog box.

The Process now associated with the my_inverter cell reads CMOS (-Rshown in Figure25-25 rather than default.

Figure 25-25. ICgraph Window Showing Process Change

For more information on cell Processes, refer to the section“Process” onpage 25-31.

IC Station User’s Manual, v8.9_9 25-45

Page 740: Icstation User Manual @Vins

Full Custom Editing Tutorial

the

t.

s

ne, or

Displaying the Layer Palette

Figure25-26 shows the layers that are used in this cell. The first column lists layer number; the second column is the name assigned to the layer; the thirdcolumn is the color of objects on each layer. These layers are a minimum seProcesses that you use in your own designs can vary considerably.

1. Choose theOther > Layers > Show Layer Palettepulldown menu item todisplay the Layer Palette.

Alternately, you can use command syntax to display the layer palette ashown below:

SHOw LAyer Palette

The Layer Palette is displayed above the regular palette menu. You canow use the Layer Palette in future operations that require a layer choicto change the visibility and selectability of layers. You can also use it todisable the display of fill patterns for specific layers, which improvesredraw time for large designs. Figure25-27 shows a portion of the floatingLayer Palette.

# Name Color # Name Color

0 substrate white 6 pplus light gold

1 pwell cyan 7 contact light gray

2 oxide green 8 metal1 blue

3 res coral 9 via white

4 poly red 10 metal2 medium orchid

5 nplus orchid

Figure 25-26. CMOS Process Layers

IC Station User’s Manual, v8.9_925-46

Page 741: Icstation User Manual @Vins

Tutorial Full Custom Editing

thee

n

o

ox

les.

Figure 25-27. Floating Layer Palette

TheS on the right side of the Layer Palette indicates whether objects onlayer are Selectable; theV indicates that objects on the layer are Visible; thF indicates whether objects on the layer will show a fill pattern if one isdefined for that layer.

2. Set the active layer tocontact, by using the Select mouse button to click othe layer name or fill pattern rectangle for thecontact layer. The contactlayer is the default layer for creation operations.

The status line should show that thecontact layer is the active layer.

3. Change the visibility of thepoly layer by using the Stroke mouse button tclick on the layer name or fill pattern box for thepoly layer.

Thepoly layer is no longer visible.

4. Use the Stroke mouse button to click on the layer name or fill pattern bfor thepoly layer.

Thepoly layer is visible again. Each time you click on a layer with theStroke mouse button in the Layer Palette, the visibility of the layer togg

IC Station User’s Manual, v8.9_9 25-47

Page 742: Icstation User Manual @Vins

Full Custom Editing Tutorial

e

Creating Polygons

In this procedure, you will create the polygons for the metal1 layer.

1. To help you properly place and size the polygons that you create, placrulers in the IC window by performing the following actions:

a. Choose the following item on the IC Palettes menu:

(IC Palettes) > Easy Edit

The Easy Edit palette menu contains the basic creation and editingcommands that you will need for this lab procedure.

b. Choose the following palette menu item:

(Easy Edit Palette) > Ruler

The Add Ruler prompt bar is displayed. The cursor changes to thelocation cursor, which resembles a street intersection.

c. Position the cursor about 5 microns directly to the left of the originpoint.

“TO Mark:” in the status window should read -5.000, 0.000.

d. Press and hold the Select button.

e. Move the cursor vertically in the IC Window until it is just above thetop of the inverter.

f. Release the Select button.

g. Position the cursor about 5 microns directly below the origin point.

“TO Mark:” in the status window should read 0.000, -5.000.

h. Press and hold the Select button.

IC Station User’s Manual, v8.9_925-48

Page 743: Icstation User Manual @Vins

Tutorial Full Custom Editing

t

es

i. Move the cursor to the right in the IC Window until it is just to the righof the inverter.

j. Release the Select button.

You should now have two rulers in the IC window, similar to the onshown in Figure25-28.

Figure 25-28. Adding Rulers

80

0 10 200

10

70

20

30

40

50

60

IC Station User’s Manual, v8.9_9 25-49

Page 744: Icstation User Manual @Vins

Full Custom Editing Tutorial

r or

k. Press the Esc key to remove the Add Ruler prompt bar.

2. Use the Layer Palette to turn off the visibility for all layers EXCEPT thecontact, via, and metal1 layers by first clicking theV to turn off visibilityfor layers; then, click the blue buttons in theV column for the three layerswhose visibility you want to enable. The contact, metal1, and via layersshould display in the IC window, similar to those shown in Figure25-29.

Note

At any time, you can press the Esc key to remove a prompt badialog box, which has the same effect as selecting the Cancelbutton on the prompt bar or dialog box.

IC Station User’s Manual, v8.9_925-50

Page 745: Icstation User Manual @Vins

Tutorial Full Custom Editing

Figure 25-29. Inverter contact, metal1, and via Layers

80

0 10 200

10

70

20

30

40

50

60

IC Station User’s Manual, v8.9_9 25-51

Page 746: Icstation User Manual @Vins

Full Custom Editing Tutorial

ook the

e

ite

l1

3. Because you will be working in a small area of the design, you need to lat a close-up of your work area. To view an area of the design, performfollowing actions:

a. Choose the following pulldown menu item:

View > Area:

The Select button is now defined so that you can view an area of thschematic.

b. Draw a rectangle around the area shown in Figure25-30 by depressingthe Select button, dragging the mouse from one corner to its opposcorner and then releasing the Select button. These actions define arectangular area around the region shown in Figure25-30. In definingthe area, it does not matter which corner you begin with.

Figure 25-30. Viewing An Area of The IC

4. Specify the active layer by using the Select button to click on the metalayer in the Layer Palette.

0 10 200

10

20

30

IC Station User’s Manual, v8.9_925-52

Page 747: Icstation User Manual @Vins

Tutorial Full Custom Editing

gin

0.

t in

w

as

u

5. Create a rectangular polygon by performing the following actions:

a. Choose the following palette menu item:

(Easy Edit) > Shape

The Add Shape prompt bar is displayed. The Cursor readout in thestatus bar changes to readTo Mark:. The change is not visible until thecursor is moved back into the edit window. Whenever you createobjects, the Cursor readout changes from an absolute location to arelative distance, allowing you to create objects of a specific size.

b. Position the cursor at the absolute location 0,0 by clicking on the oripoint.

c. Press and hold the Select button.

d. Look at theTo Mark: readout in the Status window. It should read 0

e. Hold down the Select button, then move the cursor up and to the righthe IC window.

You should see a dynamic rectangle, similar to the one that you sawhen you defined an area for viewing.

f. Look at theTo Mark: readout in the Status window; it should changeyou move the cursor.

g. Move the cursor until theTo Mark: readout is 24, 10.

h. Release the Select button.

i. Press the Unselect All function key.

As you create polygons, they are automatically selected for furthermanipulation. For now, you will not manipulate the polygons that yocreate—thus the reason for unselecting.

IC Station User’s Manual, v8.9_9 25-53

Page 748: Icstation User Manual @Vins

Full Custom Editing Tutorial

n.

You should now have a rectangular polygon on the metal1 layer,similar to the one shown in Figure25-31. The Add Shape prompt bar isstill displayed so that you can add additional polygons to your desig

Figure 25-31. Adding A Polygon To The metal1 Layer

6. Using the procedure that you just learned and with Figure25-32 as areference, add additional polygons to the metal1 layer.

You will need to adjust your viewed area as you add the additionalpolygons. You can use theView > All to see the entire cell, thenView >Area to look at a smaller area.

7. Press the Unselect All Function key.

0 10 200

10

20

30

IC Station User’s Manual, v8.9_925-54

Page 749: Icstation User Manual @Vins

Tutorial Full Custom Editing

ns.te by

tal1

Figure 25-32. Adding Additional Polygons To The metal1 Layer

Modifying Polygons

In the previous lab procedure, you learned how to create rectangular polygoFrequently, your designs need non-rectangular polygons, which you can crearemoving pieces from a rectangular polygon.

1. Using the previous procedure, create an additional polygon on the melayer that looks similar to the one highlighted in Figure25-33.

0

10

70

20

30

40

50

60

80

0 10 20

IC Station User’s Manual, v8.9_9 25-55

Page 750: Icstation User Manual @Vins

Full Custom Editing Tutorial

Do not unselect this polygon.

2. Press the Esc key to remove the Add Shape prompt bar.

Figure 25-33. Final metal1 Polygon

3. Notch a polygon by performing the following actions: (Note: For moreinformation about notching polygons, refer to section “Notching Objects”in Chapter12.)

a. Choose the following palette menu item:

(Easy Edit) > Notch

0

10

70

20

30

40

50

60

0 10 20

IC Station User’s Manual, v8.9_925-56

Page 751: Icstation User Manual @Vins

Tutorial Full Custom Editing

apethe

ion

ion

The Notch prompt bar is displayed. If you had unselected the last shthat you created, the Select Area prompt bar would display before Notch prompt bar.

b. Using theCursor: readout as a reference, position the cursor at locat14, 68. The cursor should be positioned similarly to the one inFigure25-34.

c. Press and hold the Select button.

Figure 25-34. First Cursor Position For Notching

d. Using theCursor: readout as a reference, position the cursor at locat26, 39 so that you have a dynamic rectangle, similar to the one inFigure25-35, that intersects the last polygon that you created.

e. Release the Select button.

70

20

30

40

50

60

IC Station User’s Manual, v8.9_9 25-57

Page 752: Icstation User Manual @Vins

Full Custom Editing Tutorial

and

l1

The rectangular area that intersected the metal1 polygon is notchedremoved from the polygon, similar to the one shown in Figure25-36.

4. Using the same procedure, notch the lower right corner from the metapolygon using 14, 12 as the first coordinate location, and 25, 35 as thesecond coordinate location.

Your polygon should now look similar to the one in Figure25-37.

Figure 25-35. Second CursorPosition For Notching

Figure 25-36. First NotchComplete

70

20

30

40

50

60

70

20

30

40

50

60

IC Station User’s Manual, v8.9_925-58

Page 753: Icstation User Manual @Vins

Tutorial Full Custom Editing

n

edr

Figure 25-37. Second Notch Complete

5. Press the Esc key to remove the Notch prompt bar.

6. Press and the Unselect All function key.

Note

In notching a polygon, the placement of your first cursor positiodetermines if material is removed from or added to the selectedobject. If your first cursor position is placed outside of the selectobject, material will be removed from the polygon. On the othehand if your first cursor position is inside the selected object,material is added to the polygon.

0

10

70

20

30

40

50

60

0 10 20

IC Station User’s Manual, v8.9_9 25-59

Page 754: Icstation User Manual @Vins

Full Custom Editing Tutorial

7. To remove the rulers, perform the following actions:

a. Choose the following palette menu item:

(Easy Edit) > Delete Ruler

The Delete Ruler prompt bar is displayed.

b. Move the cursor to each ruler and click the Select button.

c. Press the Esc key to remove the Delete Ruler prompt bar.

8. In the Layer Palette, toggle all layers so they are visible by clicking theVbutton.

Your inverter is complete and should look similar to the one shown inFigure25-38.

IC Station User’s Manual, v8.9_925-60

Page 755: Icstation User Manual @Vins

Tutorial Full Custom Editing

.

ps:

Figure 25-38. Completed Inverter

Exiting ICgraph

Now that your inverter is complete, you need to save the design to your disk

1. Save your cell and close the IC window by performing the following ste

a. Double-click the Window Menu button on the IC window.

IC Station User’s Manual, v8.9_9 25-61

Page 756: Icstation User Manual @Vins

Full Custom Editing Tutorial

r

ttege in

A dialog box displays that asks if you want to save changes to youinverter.

b. Click OK.

Your inverter cell is written to your disk and the IC window closes.Because you no longer have an IC window open, the Session Palemenu displays and the pulldown menus change to reflect the chanavailable functionality.

When you want to save your cell, but not close the IC window, useFile >Cell > Save Cell.

2. Close the IC Station session window by usingFile > Exit Session >Discard.

You have completed this lab exercise.

IC Station User’s Manual, v8.9_925-62

Page 757: Icstation User Manual @Vins

ou

ata

ellsd of

is-via

ance.ns ofgcanry of cells

Appendix APerformance Improvement Tips

GDSII to ICgraph TranslationThe following sections contain several tips that will help you reduce the timerequired to translate a GDSII design to an ICgraph design.

Via Cells

If the design being translated contains a large number of via cell instances, ycan significantly reduce the translation time by creating the via ahead of timeusing IC Station via cells. This is particularly useful when translating GDSII dcreated by automatic placement and routing software, but it will reduce thetranslation time of any cells that include large numbers of via cell instances.

Use theCreate Via command on the session menu to create one or more via cas necessary. When the translation occurs, ICLink will use this via cell insteacreating new via cells.

An added benefit is that when an IC Station cell that has been typed as “via”instantiated, the data structure for it is significantly smaller than that of a noninstance. This results in faster instantiation and less memory requirements.

A large layout might have hundreds of thousands of vias. At this writing (v8.2release), a via instance is approximately 300 bytes smaller than a non-via instTherefore, using the pre-created via can reduce memory requirements by temegabytes for a large design. This can make the difference between needin64MB vs. 32MB. Lower usage of memory also reduces the disk thrashing thatoccur when the data structures in your design are larger than the real memothe hardware that you are using. Spending several minutes to create the viacan potentially turn hours of translation time into minutes.

IC Station User’s Manual, v8.9_9 A-1

Page 758: Icstation User Manual @Vins

Graphic Performance Tuning Performance Improvement Tips

s

thejectsems.two

s torstypek's

lt ineand

se of

’s

e

Datatype to Layer Mapping

If the GDS “datatype” attributes are present in the stream file, ICLink providetwo mechanisms for modeling them in the IC Station database.

The default is to create a property (named “gdsii_datatype”) and attach it to object that had the datatype attribute in the stream file. This lets you select obaccording to their datatype attribute, much as they could on their Calma systWhile the use of the property offers some advantages, it is the slower of the options.

The second option is to have ICLink map distinct layer-datatype combinationunique IC Station layers. On a Calma system, geometric data can be on laye0-63, and can have datatype attributes of 0-63. This results in 4096 layer-datacombinations. Not coincidentally, IC Station supports up to 4096 layers. ICLinability to map distinct layer-datatype combinations to unique layers can resuthe datatype-dependent editing operations the user would expect, without thoverhead of properties. The elimination of properties reduces translation timememory requirements. Selection by datatype is still possible (by setting theselectable layers). And, viewing by datatype is easier than with the propertyimplementation (by using “set visible layers”).

The disadvantage is that the user is presented with data on (potentially) asignificantly larger number of layers than were used on the Calma. Liberal ulayer sets will typically be required to make this manageable.

Graphic Performance TuningThis section contains tips and information you can use to improve IC Stationgraphic performance.

Overview

The following is a list of functions and environment variables that can improvredraw performance in IC Station.

IC Station User’s Manual, v8.9_9A-2

Page 759: Icstation User Manual @Vins

Performance Improvement Tips Graphic Performance Tuning

l.s.

ly

to

rawecify

or

Graphics Functions

• $set_array_display_style(): Set the array display to corners, verify, orborder. This can be done in the $setup_ic() function.

• $set_cull(): Use $set_cull() to change the number of square pixels todisplay at a window zoom factor to a higher value. You can use thisfunction to specify the size of an image, in pixels, that is drawn on thescreen. By default, the value is set to five. This means that if an objectwould be drawn in five pixels or less, it is not drawn. This can improveredraw speeds by eliminating drawing data that is too small to be usefuContacts and vias usually fall into this category at certain display scale

• $set_dynamic_loading(): Dynamic loading is a feature in IC Station thatimproves the performance of opening objects. It allows IC Station to onload objects that are needed for a particular action.

• $set_fill_display(): Use $set_fill_display(@off) to turn off the display offill patterns for ALL layers.

• $set_filled_layers(): Turn off the fill pattern display of layers with$set_filled_layers().

• $set_graphic_interrupt(): Use the graphic interrupt to interrupt a redrawof an area after you have seen enough of the design to then zoom in toanother area.

• $set_instance_name_display(): Use $set_instance_name_display(@off)avoid drawing cell or instance text.

• $set_layer_appearance(): The layer display attributes (line widths, linestyles, fill patterns, and so on) that you use can have an impact on redtimes during creation, editing, and viewing operations. You can optimizthe drawing speed of objects in your design by using this function to spea line width of 1, solid line styles, and no fill pattern. Other tips includemaking sure you don’t use thick lines or dotted and dashed type lines fyour layer appearance.

IC Station User’s Manual, v8.9_9 A-3

Page 760: Icstation User Manual @Vins

Graphic Performance Tuning Performance Improvement Tips

f

rn

ing

• $set_peek_on_view(): Use $set_peek_on_view(@off) to turn off display oall geometries at all levels of hierarchy displayed all the time.

• $set_redraw_level(): You can use this function to specify how IC Stationdraws the data based on the hierarchy. The settings areall, context, andminimum:

o Specifyingall causes all objects on the screen to be redrawn duringredraws.

o Specifyingcontext causes a redraw of only the objects in the currentcontext and below during redraws.

o Theminimum setting causes only the objects within the rectangularregion of the modified objects to be redrawn during redraws.

• $set_redraw_precision(): Use $set_redraw_precision(@draft) for aquicker redraw overall.

• $set_redraw_queue_control(): Use $set_redraw_queue_control() tochange redraw performance.

• $set_text_display(): Use $set_text_display(@off) to turn off other text.

• $set_visible_layers(): Turn off the visibility of layers you do not need tosee with $set_visible_layers().

• $show_context(): Use $show_context(100) when editing in-context to tuoff all elements not in the current context.

Graphics Environment Variables

The following is a list of environment variables that can be set (prior to invokIC Station) to improve redraw performance:

• X11DD_DEFAULT_LINE_WIDTH : Set this variable to 0. This forceslines to be drawn in “hardware” mode. The default is 1. Example:

X11DD_DEFAULT_LINE_WIDTH=0;export X11DD_DEFAULT_LINE_WIDTH

IC Station User’s Manual, v8.9_9A-4

Page 761: Icstation User Manual @Vins

Performance Improvement Tips Graphic Performance Tuning

stesutelueivesent.

seding

1

alid

otsign

ll,

e of

n

te is

• IC_CACHE_LAYERS: Sets the size of IC Station layer cache. Graphicattributes in IC Station are grouped by layer, and caching these attribuimproves overall graphics performance by eliminating redundant attribsetups when drawing on a particular layer. Setting this variable to a vagreater than or equal to the number of layers defined by your process goptimal caching performance and maximum graphics redraw improvemValid values=0 through 4095, default=1.

IC_CACHE_LAYERS=256; export IC_CACHE_LAYERS

• IC_USE_FP_TRANSFORMS: Historically, integer-based coordinatetransformations were generally faster to compute than floating point-bacoordinates. However, most modern day workstations have built-in floatpoint processors and often perform floating point multiples and dividesfaster than equivalent integer-based operations. Setting this variable totells IC Station to perform coordinates transform using floating-pointoperations. Setting it to 0 forces IC Station to use integer transforms. Vvalues=0 through 1, default=0.

IC_USE_FP_TRANSFORMS=1; export IC_USE_FP_TRANSFORMS

• IC_TEXT_CULL: IC Station uses a technique called culling wheregraphics elements that are smaller than a user-defined threshold are ndrawn. This significantly speeds up redraws when large portions of a deare visible. Normally the cull is applied to the largest dimension of anobject's extent. Given that text strings are generally much wider than tathe normal culling procedure leaves text displayed that is basicallyunreadable on the screen. Since drawing text is a significant percentagredraw time, drawing unreadable text impacts overall redraw times.

This variable modifies the culling behavior by allowing text to be culled oa specific dimension of its extent. When the variable is set toHEIGHT, thentext strings are culled on theirshorter dimension, allowing unreadable texto remain undrawn, speeding up overall redraw times. The default valuEXTENT, which forces cull to use the longer dimension. Validvalues=['HEIGHT', 'WIDTH', 'EXTENT'], default='EXTENT'.

IC_TEXT_CULL=HEIGHT; export IC_TEXT_CULL

IC Station User’s Manual, v8.9_9 A-5

Page 762: Icstation User Manual @Vins

Graphic Performance Tuning Performance Improvement Tips

sder

ueent

ue to

ose

n, ittion

rawthat, toject.

m

this.t are

• IC_REDRAW_QUEUE_CONTROLS: This variable modifies the 4magic numbers used to control the IC Station redraw queue. The settingfor these magic numbers are described in IC Station documentation unthe $set_redraw_queue_control() command.

IC_REDRAW_QUEUE_CONTROLS=1 2048 0 256000;export IC_REDRAW_QUEUE_CONTROLS

• IC_BLT_OVERLAPS: IC Station uses a fast image replication techniqcalledblitting to copy repeated instances of a graphics object onto differportions of the screen. This imaging technique is typically an order ofmagnitude faster than drawing each instance of an object. However, dthe nature of the imaging operation, an object cannot be copied if itsbounding box extent overlaps where the copy is to be placed. So, in thcases the copies are drawn instead ofblitted.

When this variable is set to 1 and IC Station detects the overlap conditioreserves a bit of graphics memory, called an off-screen bitmap. IC Stauses the image copy function to create an off-screentemplateof the object.This off-screen template is then used for copying images, making a redof each instance of the graphics object unnecessary. It should be notedon some older workstations, copying images from an off-screen bitmapthe screen can actually take longer than drawing each instance of an obThe default value is 0, which turns off theblit overlap function. Validvalues=0 through 1, default=0.

IC_BLT_OVERLAPS=1; export IC_BLT_OVERLAPS

• MGC_DISABLE_BACKING_STORE : Backing store is a means ofpreserving the portion of the screen obscured by another window.Typically, when the window is unobstructed, the area that was coveredmust be redrawn. When backing store is used, that area is retrieved fromemory and blitted on the screen.

HP Series workstations have a special hardware accelerator to handleSun workstations implement this operation in software, which can affecredraw performance. If IC Station occupies most of the screen and you

IC Station User’s Manual, v8.9_9A-6

Page 763: Icstation User Manual @Vins

Performance Improvement Tips Graphic Performance Tuning

Sun

ageored

t

ruee an

ebe

ean

w andkly

not constantly popping windows over the session, and you are using aworkstation, set this environment variable to true. Example:

MGC_DISABLE_BACKING_STORE=true;export MGC_DISABLE_BACKING_STORE

If this environment variable is false, then ICgraph saves the graphic imwhen the session is obscured or iconified, allowing the image to be restwithout a full redraw of the session.

• MGC_IC_DYNLOAD : To ensure that redraw times are not biased byincremental database loading, set the following UNIX shell environmenvariable prior to invoking IC Station. Example:

MGC_IC_DYNLOAD=false; export MGC_IC_DYNLOAD

The default behavior (true) is that incremental database loading biasesredraw times.

• MGC_NO_DASHED_WIDE_LINES : Use the this environment variableto render all lines in a design as solid with width=1, regardless of their tattributes. On older Sun workstations, dash-patterned and wide lines takinordinate amount of time to draw and this variable forces all lines to bdrawn as fast as possible. The penalty is that elements can no longer identified by their line characteristics.

MGC_NO_DASHED_WIDE_LINES=true;export MGC_NO_DASHED_WIDE_LINES

On the Sun, setting this variable to false causes wide/dashed lines to bdisplayed. On other platforms, setting this variable to anything other thfalse causes wide/dashed lines to be displayed as solid wide lines.

Graphic Performance Improvements

This section describes a set of graphics performance enhancements to redradesign view navigation for IC Station. These changes allow you to more quicview and navigate portions of large and/or complex IC designs.

IC Station User’s Manual, v8.9_9 A-7

Page 764: Icstation User Manual @Vins

Graphic Performance Tuning Performance Improvement Tips

of IC

mallfrom

ugh

res tor

youth as

torror

o

nglts

The reason for these performance enhancements is to improve the usabilityStation when navigating and/or searching views of an IC design. This isparticularly critical for large or complex designs that can require minutes toredraw a view of the design.

The v8.9_9 performance improvements promote heavy reuse of a relatively sset of views that can be refreshed from cached images rather than redrawn the IC design database.

Progressive View Traversal

A common technique for navigating about the view of a large or complex ICdesign isprogressive view traversal. This begins by specifying a particularhigh-level view of the chip, waiting for the redraw of the view to express enonew detail on the screen to be able to identify a desired region, and thenprogresses (zooming in on or viewing the area) into the desired region. Thisprocess is recursively repeated, backtracking where needed, until the structube edited are brought into view. Once editing or viewing is complete, the usebacktracks to some top-level or intermediate-level view, and the navigationprocess is repeated.

The progressive view traversal technique requires some knowledge of the laof the chip. You are also required to locate visual cues in the design view, sucinstance names, distinct cell topology or unique geometric features in order locate a region of interest. Ultimately this technique requires some trial and esearching.

Progressive View Traversal Availability

The progressive view traversal technique has been enhanced in IC Station tinclude the following two features:

1. Top Down Rendering. This is a technique where an IC design view isconstructed by first drawing the largest top level features so that the ICdesign’s topology is recognizable early in the redraw process.

2. Graphic Interrupt. Once your identify a particular region of interest durithe redraw, you can press an additional key (typically Control-I) that ha

IC Station User’s Manual, v8.9_9A-8

Page 765: Icstation User Manual @Vins

Performance Improvement Tips Graphic Performance Tuning

in

rsal

he

erse

et ofes

llowhe

the redraw process and allows you to immediately select the next viewthe progression.

The progressive view traversal technique is supported in IC Station by thefollowing commands: $view_all(), $view_area(), $view_centered(),$view_context(), $view_panel(), $view_previous(), $zoom_in(), and$zoom_out().

Additionally, the following Common User Interface commands support anincremental form of progressive view traversal: $scroll_left_by_window(),$scroll_right_by_window(), $scroll_up_by_window(),$scroll_down_by_window().

The following IC Station commands also influence the progressive view travetechnique: $peek(), $peek_area(), and $set_peek_on_view().

Progressive View Traversal Enhancements

1. $redraw() function has been optimized to draw objects faster.

2. IC Station now maintains aview history stackthat allows a fast, singleaction method for retracing or backtracking through previous views of tIC design.

a. $view_previous() function has been enhanced to conditionally travback through the view history stack.

b. A new function, $view_next(), traverses forward through the viewhistory stack.

3. The graphic interrupt has been modified so it can be generated by a skeys that initiate other redraws. This minimizes the number of keystrokneeded to interrupt a redraw and start the next viewing operation.

4. IC Station stores selected views of an IC design in an image cache to afor fast redraws of often-visited views. You can select which views to cacand control the number of views that can be cached.

IC Station User’s Manual, v8.9_9 A-9

Page 766: Icstation User Manual @Vins

Graphic Performance Tuning Performance Improvement Tips

atngctly

),

ake

ionns

ed

iew

Classified View Traversal

A primary built-in navigation technique is viewing regions of the IC design thcontain specific classifications or collection of objects. By specifying or includiobjects into various view classes, you can reach the enclosing view area direwithout having to search the IC design.

Classified View Traversal Availability

The collection view technique is supported in IC Station by the followingcommand set: $view_all_mask_devices(), $view_all_mask_discrepancies(),$view_all_mask_nets(), $view_current_mask_device(),$view_current_mask_discrepancy(), $view_current_mask_net(), $view_drc($view_highlighted(), and $view_selected().

Redraw Control

Redraw controls allow you to “tune” the drawing performance and visualprecision of the contents of the edit windows in IC Station. In general, you mtrade-off decisions where visual precision is compromised for faster redrawperformance. Since redraw performance is critical during the design navigatand editing process, you will likely want the ability make the trade-off decisioand tailor your editing environment accordingly.

Redraw Control Availability

IC Station currently supports the following redraw control functions:

• $set_redraw_level() function controls how much of a window is refreshduring execution of the $redraw() function.

• $set_redraw_precision() function controls the visual accuracy when a vis redrawn.

• $set_redraw_queue_control() function controls how quickly and howfrequently the view is updated during a redraw.

• $set_cull() function controls the rejection of objects based on size.

IC Station User’s Manual, v8.9_9A-10

Page 767: Icstation User Manual @Vins

Performance Improvement Tips Editing Operations

s.

s.

pt anated

nd

d be

nge theion.

Redraw Control Enhancements

1. The Setup Redraw dialog box now contains all redraw control functionThe$set_redraw_level() function has been removed from the Setup ICdialog box and has been replaced with $set_crosshair_target() function

2. The following new functions have been added:

a. $redraw_area() function refreshes only required portions of a viewwithout redrawing the whole window.

b. $set_text_cull() function culls out unreadable text.

c. Add a $set_hierarchy_level_cull() function limits the number ofhierarchy layers to render.

3. The $set_redraw_queue_control() function has been modified to acceadditional argument that specifies how many hierarchy levels are allocredraw queues.

Editing OperationsThe following tips can help you improve the performance both for interactive aindividual command usage during editing operations:

• Customize the user interface to optimize the keystrokes required forcommon interactive operations. As many operations as possible shoulmade available from the palette menu and strokes.

• When writing AMPLE macros, make sure that drawing is turned off bycalling the$freeze_window() function in the AMPLE macro. Call the$unfreeze_window() function to resume drawing of graphics.

• In macros, supply all of the arguments to functions that you call. Allowithe system to supply default argument values can substantially increasrun time. For example, the layer and aspect in the $add_shape() funct

IC Station User’s Manual, v8.9_9 A-11

Page 768: Icstation User Manual @Vins

Editing Operations Performance Improvement Tips

er

opyith

ersuires

• Set the redraw mode to “context minimum” to minimize the amount ofdrawing that is done after each editing operation. Use the array displaymodes and limited peeking, which were both mentioned earlier to furthminimize redraw time.

• When adding or editing large numbers of geometries, such as during a coperation, use the $set_autoselect() function to turn “autoselect” off. Wautoselect on, additional time is spent selecting new orjust edited objects.

• Make sure that the aspect setting is “internal” when adding large numbof shapes or paths. Geometries that are part of the external aspect reqmore processing, and therefore take more time than internal geometriewhen the database is written.

IC Station User’s Manual, v8.9_9A-12

Page 769: Icstation User Manual @Vins

Index

Index

AActions

mouse,25-11Active context

Add Cell,11-22Copy,12-67Cut,12-70description,1-22design stage library prescreening,16-4layout floor planning,10-1move operations,12-56

Active windowdescription,1-21

Addcell, description,11-22path, description,12-24property text, description,5-14property, description,5-31shape, description,12-18

Adding connectionsto a netlist,14-30

Adding PG TextAdd Device,12-30Add Point Device,12-31

Adding text objects to a group,12-32Algorithm

placement, improve,4-3placement, initial,4-2placement, initial + improve,4-2placement, random + improve,4-3placement, resume,4-3routing,4-4routing, channel,4-4routing, channel, final,4-4routing, channel, global,4-4routing, line-probe,4-4

Aligning Objects,12-62abutting shapes and paths,12-64toggling shapes and paths,12-19, 12-25,

12-64

AMPLE expressionsprocess information in,20-36

AMPLE scopeidentifier,20-16

Angle modedescription,5-4

Application variabledescription,1-21

Arc shapecreating,12-20

Areablockage,5-23bottom-up design, layout,10-4compactor,18-2floorplan shapes,10-2floorplanning, topological,10-2line probe router,4-13route area ratio,10-8row sculpting,10-5top-down design, estimation algorithms,

10-4Area estimation,seeFloorplanningArray

description,5-17object types,25-28

Aspectdescription,5-1description, both,5-2description, external,5-1description, internal,5-1external data,5-1, 25-29internal data,5-1, 25-29when peeking,5-3

Aspect, externalblockage,8-12coincident edges,5-25port shapes,8-12routing layer,5-23

Aspect, internal and externaldesign data,5-1

IC Station User’s Manual, v8.9_9 Index-1

Page 770: Icstation User Manual @Vins

Index (cont.)

Index

e

Attributesmode, setting,20-22

Auto Complete Outlines,12-15AutoLogic

description,1-6options,1-6

Automated layoutcell creation,15-8connectivity enforcement,4-16interrupting automated tools,15-10outline check,5-28process variables,8-2

Autoplacingblocks,15-12ports on placed cells and blocks,15-12

BBehavioral Language Models

description,1-5Block placement

automatic placement,15-12checking,15-12

Blockageabstracted,13-6aspect, external,8-12complete, creating,16-5description,5-23directional, creating,16-5layers for $routing_level Process Variable,

13-7multiple,15-8multiple, using Routing Level,5-25multiple, using Wiring Type,5-25real geometry,13-6

BOLD Browserdescription,25-20

Bottom-up design methodologyfeatures,10-3mixed standard cells and blocks,15-1

Boundary

cell, description,5-26Build

library, 16-1Build_lib

changes required after running,16-8complete blockages, creating,16-5directional blockages, creating,16-5using to create ports,16-7

Buildinglibrary, 16-5

CCalibre

translating between IC Station and Calibrdescribed,17-33, 21-9

Calibre DRCdecribed,21-1

Calibre DRC Menudescribed,21-4

Calibre DRC window,21-5Calibre Interactive

DRC,21-5LVS, 21-7

Calibre InterfaceCalibre DRC,21-4

described,21-1Calibre LVS,21-6

described,21-2Calibre PEX,21-8Calibre RVE,21-8

described,21-2Calibre Setup,21-9using the interface in IC Station,21-3

Calibre LVSdescribed,21-2

Calibre LVS Menudescribed,21-6

Calibre LVS window,21-7Calibre PEX Menu

described,21-8

IC Station User’s Manual, v8.9_9Index-2

Page 771: Icstation User Manual @Vins

Index

Index (cont.)

Calibre RVEdescribed,21-2

Calibre RVE Menudescribed,21-8

Calibre Setup Menudescribed,21-9

Capacitance Driven Layoutcapacitance calculation,7-2description,7-1terms and acronyms,7-1

Capturingscreen images,19-9

CBC,seeCorrect By ConstructionCDL, seeCapacitance Driven LayoutCE,seeConnectivity EditingCell

blocks,5-15corner,5-16creation using an EDDM viewpoint,17-2description,5-15external,5-16feedthru,5-16left and right cap,5-16Process, default, use in creating,20-29Process, use when creating,20-28restrictions, type,5-16revalidation after process change,20-31saving,20-31standard,5-15types,5-15using the Automated Standard Cell

Placement function,15-14vias,4-16

Cell Angle Mode translation option,17-10Cell boundary

description,5-26Cell creation

custom Process,20-28default,20-28default Process,20-28

ICgraph default Process,20-29Process Definition Fileset,20-28

Cell demotionCBC to CE,13-10CBC to GE,13-12CE to GE,13-11

Cell libraryadding cells to an IC Station library,16-3prescreening,16-4

Cell Name Case translation option,17-10Cell Name Length translation option,17-11Cell Name Map File translation option,17-11Cell outline

creating,15-8extent default,5-28

Cell promotionCE to CBC,13-8GE to CBC,13-3GE to CE,13-1

Cell typedescription,5-15

Changing default PG text fontprocedure,12-29

Changing PG text sizeprocedure,12-31

Circle shapecreating,12-20

Clipboardcopy/paste,12-70cut/paste,12-71items not maintained,12-70

Coincident edgesaspect, external,5-25

Common User Interfacedescription,7-1, 25-6

Compactionarea,18-2, 18-4auto add blkg,18-8check same net rules,18-8compact to,18-8

IC Station User’s Manual, v8.9_9 Index-3

Page 772: Icstation User Manual @Vins

Index (cont.)

Index

description,2-4, 3-5, 18-1direction,18-2, 18-4external cells,18-6gridded and gridless,18-12jog insertion,18-8jog power,18-8keep options,18-12keeping corners of external rows clear

(illustration),18-7minimizing resistive layers (illustration),

18-11offset vias,18-5panel name,18-4parameters,18-4parameters, external rows,18-7path, minimizing,18-10port extent,8-13reference,18-2, 18-4select objects,18-4tromboning reduction (illustration),18-10using corners (illustration),18-7vias to wires,18-5wires crossing boundary,18-6wires to pins,18-9

Compatibilityactive Processes,20-14requirements,20-13session Processes,20-14

Compatible Processesdescription,20-12

Component modelingBehavioral Language Models,1-5

Components, prompt barfunction name,25-14location cursor,25-14

Compose layerdescription,12-89

Computer modelsfor designs,1-7

Connections

verifying missing,14-28Connectivity

checking,10-3guidelines,10-17how to maintain,1-24in pin assignment,10-4properties, specifying,5-30

Connectivity Editingdescription,25-27maintaining connectivity,1-23revalidation after Process change,20-31

Connectivity planeabstracted blockages,13-7

Controls, prompt barbutton,25-15choice stepper,25-15entry box,25-15

ConversionV7.0 schematic to an EDDM schematic

source,17-1Copy

description,12-67Copy/paste

description,12-70Corners

clearing by the compactor,18-7Correct By Construction

consistency with Process,1-24description,25-27maintaining connectivity,1-23revalidation after process change,20-31

Create Celldescription,11-1, 20-28dialog box (illustration),20-28

Create Processdescription,20-15prompt bar (illustration),20-16

Creating a Processat the command line,20-18

Creating PG text

IC Station User’s Manual, v8.9_9Index-4

Page 773: Icstation User Manual @Vins

Index

Index (cont.)

procedure,12-30procedure, custom fonts,12-27

Creation operations, automated layoutbuild library,16-1load logic,11-11

Creation operations, full customAdd Cell,11-22Add Path,12-24Add Property,5-31Add Property Text,5-14Add Shape,12-18arc,12-20circle,12-20Create Cell,11-1Make Array,12-91Make Cell,11-8Make Port,12-25, 15-9Routing,14-1

Custom ProcessProcess Userware File,20-51

Cutdescription,12-70

Cut/pastedescription,12-71

cut_stretch() explained,12-77Cutting shapes,12-77

DDatabase

description,5-5design,5-5keeping designs up to date,1-35

Decision Support Systemdescription,25-2

Defaultlayer table information,20-15Process description,20-6Process Variable values (illustration),

20-15Process, use creating cell,20-29

Default Processlayers,20-9variables,20-7

Default Process VariablesGDSII to ICgraph,17-24

Definition of propertiesdescription,8-5

Design ArchitectEDDM Viewpoint,4-13

Design capabilitiesediting modes,1-22flat versus hierarchical,1-25

Design Managerdescription,25-3invoking IC tools,1-1invoking, tools,1-16

Design methodologiesbottom-up,15-1top-down,15-6

Design requirementsdescription,8-1Process,8-1

Design viewpointdescription,1-9EDDM viewpoint,4-13

Device$make_array(),25-28parameterized,5-18parameterized, creating,5-19point-based, description,5-19shape-based, description,5-19

Device object typesdescription,25-28

Dialog boxCreate Cell,20-28description,25-16Set Layer Appearance,20-19

Directional blockagescreating,16-6using build_lib,16-5

IC Station User’s Manual, v8.9_9 Index-5

Page 774: Icstation User Manual @Vins

Index (cont.)

Index

Dofiledescription,20-4

DSS,seeDecision Support SystemDynamic status

status line,25-8

EECO,seeEngineering Change OrderEDDM viewpoint

as logic source,4-13creating an IC Station cell using an EDDM

viewpoint source,17-2loading a netlist,17-1

Edge colorsetting,20-19

Edit operationscopy/paste,12-70cut/paste,12-71

Edit operations, full customcompose layer,12-89copy,12-67cut,12-70fillet, 12-87flatten,12-86modify centerline,12-73move,12-56move edge,12-60notch,12-74resize,12-85slice,12-78stretch,12-83

Editing a Processfrom command line,20-25

Editing featurelayers,20-5object types,25-28, 25-29

Editing modesCBC to CE, demoting,13-10CBC to GE, demoting,13-12CE to CBC, promoting,13-8

CE to GE, demoting,13-11Connectivity Editing,1-23, 25-27Correct By Construction,1-23, 25-27description,25-27GE to CBC, promoting,13-3GE to CE, promoting,13-1Geometry Editing,1-22, 25-27

Engineering Change Ordercorrespondence,6-2crossprobe table,6-2description,6-1detected changes,6-5Edit commands,6-16, 6-17environmental requirements,6-1logic change example,6-3logical correspondence,6-2logic-layout relationship,6-2process flow,6-2

Environment variabledescription,1-20MGC_PLOT_OPTIONS,19-11

Explore navigatorsdescription,25-10

Export Screendescription,19-9

Export Screen Scriptdescription,19-9

Exportingoptions,19-11Plot Export Table,19-11

External aspectdata, description,25-29description,5-1fracturing non-rectangular blockages,16-3via cell,8-16

FFalcon Framework

AMPLE, 25-3Common User Interface,25-2

IC Station User’s Manual, v8.9_9Index-6

Page 775: Icstation User Manual @Vins

Index

Index (cont.)

Decision Support System,25-2Design Manager,25-2overview,25-2

Feedthruinternal,8-14internal, preventing,8-14

Fill colorsetting,20-19

Fill patternchip (illustration),20-19

Filletdescription,12-87

Fix Self-Intersecting Polygons translationoption,17-11

Flat layoutdescription,1-25

Flattendescription,12-86

Floorplanautomatically creating,10-16description,2-3, 3-5rows,2-3, 3-5shapes,2-3, 3-5viewing,10-16

Floorplan rowcopying,10-18deleting,10-18moving,10-17notching,10-17

Floorplan shapedescription,5-28

Floorplanner parametersedge gap,10-8number of rows,10-8route area ratio,10-8

Floorplanningadding rows,10-15area estimation,10-2automatically creating the floorplan,10-16copying a row,10-18

deleting a row,10-18editing with constant area,10-2floorplan shapes,5-28hierarchical repartitioning,10-2moving a row,10-17notching a row,10-17updating and showing guidelines,10-17

Functions$build_lib(),16-2$create_cell(),20-28$create_process(),20-4$define_layer_name(),20-43$define_must_connect(),8-14$dofile(),20-4$load_process(),20-4$report_process(),20-14

example,20-14$reserve_process(),20-3

description,20-3$save_process(),20-4

description,20-4$scale_cells

PG Text, using to change size,12-31$set_cell_process(),20-14

prompt bar (illustration),20-31referencing another Process,20-29

$set_layer_appearanc()dialog box,20-20

$slice()effect on properties,12-78

$writeln()example,20-36

IC Station,20-3list of report functions,20-35returned Process information (table),20-36

GGDS Library translation option,17-11GDSII, 17-2

Reading GDSII Data,17-3

IC Station User’s Manual, v8.9_9 Index-7

Page 776: Icstation User Manual @Vins

Index (cont.)

Index

e

Writing GDSII Data,17-6GE,seeGeometry EditingGeometry Editing

description,25-27Geometry mapping

multilayer,13-5single-layer,13-4

Gravity distancedescribed,12-64

Groupdescription,5-37

Guidelinesupdating and showing,10-17

HHandle

description,5-1Hierarchical layout

description,1-26Hierarchy

repartitioning,10-18repartitioning, illustration,10-2

Highlightingdescription,5-44objects,5-44

HotPlotdescription,19-11

Hypertext linksdescription,25-20

IIC

environment,1-1, 1-20tools,1-1

IC Environmentdescription,1-1, 1-20

IC Stationcapabilities,1-2Falcon Framework,1-1tools, list of,1-4

translating between IC Station and Calibrdescribed,17-33, 21-9

ICblocksblock placement, automatic,15-12block placement, manual,15-11

ICcompactcompaction operations,18-2compaction parameters,18-4description,2-4, 3-5, 18-1introduction,18-2levels, minimizing,18-13posts, inserting,18-14slide route,18-13vias, minimizing,18-12

ICextractHSPICE netlist,15-7in floorplanning,10-3Rules Files,4-15

ICgraphcompaction in,18-4tools, list of,25-24

ICLinkreport creation,2-5

ICplanrow, sculpting,10-5

ICrulesRules Files,4-15

ICtraceRules Files,4-15

Idea Stationcapabilities,1-2

Importing dataloading a netlist from an EDDM viewpoint,

17-1logical data, importing,17-1

Instancedescription,5-15object types,25-28pin assignment,10-4pin placement, automatic,15-13

IC Station User’s Manual, v8.9_9Index-8

Page 777: Icstation User Manual @Vins

Index

Index (cont.)

Internal aspectdata, description,25-29description,5-1

Internal state functiondescription,1-21

Interruptingautomated tools,15-10

Invokinga tool,1-16

KKeys

description,25-12

LLayer

action,20-22aliases,25-33appearance,20-5appearance parameters,25-34appearance, PUF example,20-52attributes,20-26changing layer appearance to view routing

results,14-29default path widths,25-33default Process,20-9defaults,20-15description,25-32display attributes,20-22fill pattern,25-34information,20-26line style,25-34line width,25-34line, fill, and text color,25-34mapping,13-4names,25-33selection,20-22sets,20-6visibility, 20-6

Layer definitions

example,20-37routing,15-8

Layer Filter translation option,17-11Layer routing

aspect, external,5-23Layer set

description,25-34Layer table

defaults,20-15functions (list),20-3PUF example,20-51

Layer table informationdescription,20-2

Layout Verification systemdescription,1-12

Layout versus schematicICtrace,15-6

Levelsminimizing,18-13

Libraryblocks,5-15build, 16-1Build_lib parameters, using,16-5building,16-5cell, corner,5-16cell, external,5-16cell, standard,5-15feedthru,5-16IC Station library, adding cells to,16-3IC Station library, creating,16-3left and right cap cells,5-16ports, creating,16-7prescreening,16-4

Licensedescription,1-19floating, description,1-19nodelocked, description,1-19types,1-19

Linestyle, setting,20-21

IC Station User’s Manual, v8.9_9 Index-9

Page 778: Icstation User Manual @Vins

Index (cont.)

Index

width, setting,20-21Load Logic

description,11-11EDDM, 11-11

Load Processdescription,20-28prompt bar (illustration),20-24

Location cursordescription,25-14

Lock Cells translation option,17-12Log File translation option,17-12Logic Loading,11-11

Property Handling,11-14Requirements,11-11

Logic sourceEDDM, 4-13, 11-11

Logic synthesisin the design process,1-6

Logical objectsdescription,25-29pins,25-29ports,25-29properties,25-29

MMake

array, description,12-91cell, description,11-8port, description,12-25, 15-9

Manhattan Arc ModeDescribed,12-22

Menuspalette, description,25-13popup, description,25-13pulldown, description,25-13

Message areadescription,25-8

Messages,20-55error, definition,20-55note, definition,20-55

warning, definition,20-55MGC_PLOT_OPTIONS environment variable

description,19-11Mid-command freedom

description,25-16Mixed standard cells and blocks

bottom-up design,15-1top-down design,15-6

Modify Centerlinedescription,12-73

Mouseclick, description,25-11double-click, description,25-11drag, description,25-12

Mouse buttons,25-11click, description,25-11double-click, description,25-11drag, description,25-12

Moveas close as possible,12-59description,12-56DRC rules,12-58relative,12-58unconstrained,12-57

Move Edgedescription,12-60

Movingsingle vertex,12-62

NNaming Conventions

ports, pins and nets,13-13Navigation buttons

explore back to parent,25-10explore contents,25-10explore parent,25-10explore references,25-10go to,25-10

Netdescription,5-34

IC Station User’s Manual, v8.9_9Index-10

Page 779: Icstation User Manual @Vins

Index

Index (cont.)

restructuring nets, signal and power,14-26Netlist-Driven Layout,11-16Notch

description,12-74floorplan shapes with constant area

(illustration),10-6

OObject

ICgraph, description,5-6Object type

array,5-17cell, 5-15cell instance,5-15instance,5-15list, 5-6net,5-34overflow,5-36parameterized device,5-18path,5-7path, in automated layout,5-7PG text,5-20pin, in automated layout,8-11pin, in full custom,5-33port, in automated layout,8-12port, in full custom,5-31property,5-29property text,5-13row, 5-28shape,5-7via instance,5-21via object,5-21

Object typesarrays,25-28cells,25-28devices,25-28instances,25-28paths,25-28property text,25-28shapes,25-28

via, 25-28Operational configurations,seeEditing modesOSF/Motif

overview,25-6Overflow

description,5-36information retrieval,14-29line probe router,4-13over-the-block prevention,14-27

Over-the-block routingprevention,5-25, 14-27

PPalette menu

description,25-8, 25-14Panels

description,19-3Parameterized device

description,5-18using as placements,5-19

Pathalignment,12-19, 12-25, 12-64description,5-7power,5-7signal,5-7

Path object typesdescription,25-28

Pathsadding, abutting,12-25

PDF,seeProcess Definition FilesetPeek

internal routing check,8-13PG text

character example,12-27description,5-20layer for shapes,12-27

Pindescription,5-33editing pin/port placement violations,

15-13

IC Station User’s Manual, v8.9_9 Index-11

Page 780: Icstation User Manual @Vins

Index (cont.)

Index

placing pins,15-13power,8-11signal,8-11used in automated layout,8-11

Pin logical objects,25-29Pin placement

automatic,15-12automatic placing,15-13protecting,15-13

Placedport, description,5-31

Placementdescription,4-2method, improve,4-3method, initial,4-2method, initial+ improve,4-2method, random + improve,4-3method, resume,4-3with ICblocks,4-2

Placingblocks and cells,15-11

Plotterdefault,19-4

PlottingExport Graphic to a File dialog box,19-10

Plotting in IC Station,seePrintingPoint-to-point routing

description,14-1Popup menu

description,25-14Port

activating,5-32creating using Build_lib,16-7description,5-31editing pin/port placement violations,

15-13electrical equivalence,5-33fracturing rectilinear,15-10Make Cell,11-8member, description,5-31

placed, description,5-31placing on placed cells and blocks,15-12unplaced, description,5-31used in automated layout,8-12

Port logical objects,25-29Port placement

automatic,15-12protecting,15-13

Port shapesaspect, external,8-12

Postsinsert,18-14

Power routingstyles,4-12

Power strapsdescription,4-6

Prescreeningcell library,16-4

Primitivesspecifying,4-14

Printarray rendering, print cell option,19-5ASCII files,19-7copies, print cell option,19-4cull, print cell option,19-6grid, print cell option,19-5HotPlot, description,19-11job config file, print cell option,19-6layers, print cell option,19-5levels of hierarchy, print cell option,19-5notification, print cell option,19-6objects, print cell option,19-6orientation, print cell option,19-6pages, print cell option,19-5panel, print cell option,19-4paper length, print cell option,19-6paper width, print cell option,19-6peeked cells only, print cell option,19-5print cell options,19-4printer name, print cell option,19-6

IC Station User’s Manual, v8.9_9Index-12

Page 781: Icstation User Manual @Vins

Index

Index (cont.)

priority, print cell option,19-4procedure, an entire cell,19-7procedure, creating a panel,19-8procedure, printing a panel,19-8scale, print cell option,19-5setup print options,19-4setup requirements, ASCII files,19-4setup requirements, ICgraph designs,19-4

Print filterdescription,19-3

Print Text Filecommand,19-7

Print versus exportdifferences,19-2

Print/Plotsetup requirements,19-4

Printerdefault,19-4

Printingin IC Station,19-1process,19-1

Procedureactive context, changing,12-16application variables, using,12-37aspects, using,12-94block and cell placement, changing,15-11cell, creating,11-1cell, opening,11-21cells, peeking,11-24cells, unpeeking,11-26clipboard, using,12-70, 12-71context, editing in,12-16data, importing and exporting,17-1GDSII to IC Station, reading,17-3groups, using,12-93hierarchical design, creating,11-23IC Station to Calibre, writing,17-33, 21-9IC Station to GDSII, writing,17-6layers, viewing,12-35library, building,16-5

move, as close as possible,12-59move, DRC,12-58move, relative,12-58move, unconstrained,12-57object template, setting,12-17objects, aligning,12-62objects, copying,12-68objects, highlighting,12-43objects, moving,12-57, 12-58, 12-60objects, notching,12-75operating system, setup,1-15paths, creating,12-24peek-as-you-go, using,11-25PG text font, changing the default,12-29PG text font, creating custom,12-27PG text, changing the size,12-31PG text, creating,12-30Process, loading,20-23redo, using,12-92redraw mode, changing,12-38reserving a cell,11-21routing, point-to-point,14-22select filter, using,12-39shapes, creating,12-18Spice Netlist, using,11-16undo, using,12-92

Processcell creation, default in,20-28changes, discarding,20-19changes, temporary,20-26consistency with CBC,1-24creating,20-14creation, command line,20-18creation, Process Userware File,20-16custom, definition,20-28default, description,20-6description,25-31editing,20-24editing, command line,20-25editing, post-edit procedure,20-31

IC Station User’s Manual, v8.9_9 Index-13

Page 782: Icstation User Manual @Vins

Index (cont.)

Index

functions, description,20-2functions, IC Station related,20-3functions, information returned (table),

20-36information, functions,20-2information, layer table,20-2information, overall description,20-2information, retrieving,20-35information, returned to AMPLE function,

20-36information, Rules File,20-2information, variables,20-2information, viewing or reading,20-35messages, error, IC Station,20-55messages, note, IC Station,20-55messages, warning, IC Station,20-55other functions (list),20-4references, changing,20-30routing, example,14-23saving,20-19scope identifier,20-16source data (table),20-12unreserving,20-17values, default (illustration),20-15via cells,4-16

Process Definition Fileset$create_process(),20-4$load_process(),20-4$save_process(),20-4definition and description,20-4Rules File,4-15

Process translation option,17-12Process Userware File

$dofile(),20-4build_lib, using,16-5custom, example,20-51definition and description,20-4definitions, example,20-39executing,20-17layer appearance, example,20-52

layer table information, example,20-51Process, create,20-16Process, create (illustration),20-16Process, editing,20-24skeleton PUF,20-16skeleton PUF, example,20-47

Process Variables$precision Process Variable

effect of changing,20-32$routing_level,13-9$routing_level Process Variable

effect of changing,20-32automated layout,8-2changing, effects of (table),20-33default values,20-47description,1-21, 20-2editing,20-32PUF, example,20-52required variables,20-2value assignments,20-3value defaults (illustration),20-15

Process Variables, defaultGDSII to ICgraph,17-24

Process Variables, GDSII to ICgraph$mfg_grid,17-24$port_height,17-24$precision,17-24$unit_length,17-24$user_grid,17-24

Prompt bar$create_process(),20-16$load_process(),20-24$set_cell_process(),20-31description,25-14function name,25-14mid-command freedom,25-16

Properties translation option,17-12Property

$cut(),12-70$slice(),12-78, 12-80, 12-81, 12-83

IC Station User’s Manual, v8.9_9Index-14

Page 783: Icstation User Manual @Vins

Index

Index (cont.)

s,

cutting or copying to clipboard,12-70description,5-29net properties, adding,13-14Route_set, preventing internal feedthru,

8-14via, 8-16Wtype,15-7

Property logical objectsdescription,25-29

Property textadding,5-13description,5-13functions and,5-14options,5-13visibility, 5-13

Property text object typesdescription,25-28

PUF,seeProcess Userware FilePulldown menu

description,25-13menu bar,25-8

RReading information

report functions,20-35Rectangle, dotted line

cell extent,10-5Rectilinear ports

fracturing,15-10Reference help

BOLD Browser,25-20References

Process, changing,20-30Repartitioning

hierarchy,10-18Replace Existing Cell(s) translation option,

17-12Replace Existing GDSII Stream File

translation option,17-13Report Functions

$report functionstable,20-35

Reserved systemlayers,20-11

Resistive layersreduction by compactor,18-11

Resistor/capacitor extraction,12-50Resistor/capacitor extraction, setting up,12-52Resistor/capacitor extraction, using,12-53Resize

description,12-85Resizing

polygon,12-85Restrictions, cell type

device-specific behavior,5-17hierarchy,5-16overview,5-16site_type,5-16via-specific behavior,5-17

Resynchronizingdescription,1-35

Route_set propertyusing with feedthrus,8-14

Routes, internalblockages,8-12external aspect,8-16unrestricted pin locations,4-11via cell definitions,8-16

Routingalgorithm,4-4algorithm, channel,4-4algorithm, line-probe,4-4automated,14-26automatic routing of nets,14-26changing layer appearance to view result

14-29cleanup,4-9command, Autoroute All,4-4command, Autoroute Nets,4-4command, Autoroute Overflow,4-4

IC Station User’s Manual, v8.9_9 Index-15

Page 784: Icstation User Manual @Vins

Index (cont.)

Index

Compact,18-12dangling net, removal,4-10description,4-5design rule violations,4-11final, 4-8global, improved,4-7global, initial,4-6missing connections, verifying,14-28overflow information,14-29over-the-cell,4-6point-to-point,14-22preventing over-the-block routing,14-27Process, example,14-23Slide Route,18-13steps,4-5with ICblocks,4-4with ICblocks, description,4-4

Routing layeraspect, external,5-23

Routing Leveldefining multiple blockages,15-8

Rowadding, manually,10-15description,5-28sculpting, description,10-5sculpting, in ICplan,10-5

Rules Fileabutting cells,8-14continuous_drc,4-16description,4-15, 20-2RuleCheck group,4-16

SSalvaging references

description,1-36Schematic

description,1-6Scope

command line changes,20-26description,25-9

identifier, AMPLE,20-16problems when omitted,20-17PUF, example,20-51

Screencapturing,19-9

Select filterdescription,5-40

Selectingobjects,5-39

Selecting text,12-41Selection

description,5-39, 25-36Session window

description,25-7multiple,25-7

Set Layer Mapping translation option,17-13Set Text Height translation option,17-13Setting

Gravity distancedescribed,12-64

Setup IC,12-3Shape

description,5-7object types,25-28

Shapesadding, abutting,12-19alignment,12-64Cutting and recomposing,12-77

Sitetypes,5-15

Site typedescription,5-15

Skeleton PUFexample,20-47

Slicedescription,12-78

Softkeys,25-8Spice

Using a Spice Netlist,11-16Standard cell placement

IC Station User’s Manual, v8.9_9Index-16

Page 785: Icstation User Manual @Vins

Index

Index (cont.)

automatic,15-14Status line

description,25-8Stretch

description,12-83Strokes

description,25-17Stub routing

description,4-6Synthesis

description,1-6System

layers,20-11

TTechnology information

for automated layout,4-15Terse Transcript translation option,17-14Test vector generation

description,1-9Text

adding text objects to a group,12-32Selecting,12-41

Text colorsetting,20-19

Text objectsadding to a group,12-32

Tie-downsdescription,4-6

Title areadescription,25-7

Toolinvocation,1-16

Top-down design methodologyextent definition,10-4features,10-4mixed standard cells and blocks,15-6

Translating between IC Station and Calibredescribed,17-33, 21-9

Translation Options

Cell Name Case,17-10, 17-11Fix Self-Intersecting Polygons,17-11

Translation optionsCell Angle Mode,17-10Cell Name Map File,17-11descriptions,17-10GDS Library,17-11Layer Filter,17-11Lock Cells,17-12Log File,17-12Process,17-12Properties,17-12Replace Existing Cell(s),17-12Replace Existing GDSII Stream File,17-13Set Layer Mapping,17-13Set Text Height,17-13setting,17-29Terse Transcript,17-14

Tromboningreduction by compactor,18-10

UUndoability

description,5-44Undoability types

blocking,5-44transparent,5-44undoable,5-44

Unplacedport, description,5-31

Unreserving a Processexample,20-17

Updatingdescription,1-36

User Gridports, entering,8-13

User Interface Layer Managermessages,20-55

Using,12-32

IC Station User’s Manual, v8.9_9 Index-17

Page 786: Icstation User Manual @Vins

Index (cont.)

Index

VVariables

default Process,20-7types,1-20

Variables, Process, GDSII to ICgraph$mfg_grid,17-24$port_height,17-24$precision,17-24$process_name,17-24$unit_length,17-24$user_grid,17-24

Viadescription,5-21instance, description,5-21minimize,18-12object types,25-28object, construction,5-21object, description,5-21object, edit restrictions,5-22object, type conversion,5-23properties,8-16requirements,8-16to wire (illustration),18-6

WWindow components

message area,25-8palette menu,25-8pulldown menu bar,25-8softkeys,25-8status line,25-8title bar,25-7

Windowsdescription,25-6message area,25-8palette menu,25-8pulldown menu bar,25-8session,25-7softkeys,25-8status line,25-8

title bar,25-7Wire Types

Specifying,15-7

IC Station User’s Manual, v8.9_9Index-18

Page 787: Icstation User Manual @Vins

Updated: 11/20/02

Trademark Information

Page 788: Icstation User Manual @Vins

thisware”)intainphics

to use(c) onentor

s andllowingple, toe (suchsimilarations

are,cutableC++puterram.l-timeducts

ationhics'se foried byto sellrm. Ifr normalf the

on andgths,productuent toty of

End-User License Agreement

IMPORTANT - USE OF THIS SOFTWARE IS SUBJECT TO LICENSE RESTRICTIONS.CAREFULLY READ THIS LICENSE AGREEMENT BEFORE USING THE SOFTWARE.

END-USER LICENSE AGREEMENT

1. GRANT OF LICENSE. The software programs you are installing, downloading, or have acquired withAgreement, including any updates, modifications, revisions, copies, documentation and design data (“Softare copyrighted, trade secret and confidential information of Mentor Graphics or its licensors who maexclusive title to all Software and retain all rights not expressly granted by this Agreement. Mentor Gragrants to you, subject to payment of appropriate license fees, a nontransferable, nonexclusive licenseSoftware solely: (a) in machine-readable, object-code form; (b) for your internal business purposes; andthe computer hardware or at the site for which an applicable license fee is paid, or as authorized by MGraphics. A site is restricted to a one-half mile (800 meter) radius. Mentor Graphics' standard policieprograms, which vary depending on Software, license fees paid or service plan purchased, apply to the foand are subject to change: (a) relocation of Software; (b) use of Software, which may be limited, for examexecution of a single session by a single user on the authorized hardware or for a restricted period of timlimitations may be communicated and technically implemented through the use of authorization codes ordevices); (c) support services provided, including eligibility to receive telephone support, updates, modificand revisions. Current standard policies and programs are available upon request.

2. ESD SOFTWARE. If you purchased a license to use embedded software development (“ESD”) SoftwMentor Graphics grants to you a nontransferable, nonexclusive license to reproduce and distribute exefiles created using ESD compilers, including the ESD run-time libraries distributed with ESD C andcompiler Software that are linked into a composite program as an integral part of your compiled comprogram, provided that you distribute these files only in conjunction with your compiled computer progMentor Graphics does NOT grant you any right to duplicate or incorporate copies of Mentor Graphics' reaoperating systems or other ESD Software, except those explicitly granted in this section, into your prowithout first signing a separate agreement with Mentor Graphics for such purpose.

3. BETA CODE. Portions or all of certain Software may contain code for experimental testing and evalu(“Beta Code”), which may not be used without Mentor Graphics' explicit authorization. Upon Mentor Grapauthorization, Mentor Graphics grants to you a temporary, nontransferable, nonexclusive licenexperimental use to test and evaluate the Beta Code without charge for a limited period of time specifMentor Graphics. This grant and your use of the Beta Code shall not be construed as marketing or offeringa license to the Beta Code, which Mentor Graphics may choose not to release commercially in any foMentor Graphics authorizes you to use the Beta Code, you agree to evaluate and test the Beta Code undeconditions as directed by Mentor Graphics. You will contact Mentor Graphics periodically during your use oBeta Code to discuss any malfunctions or suggested improvements. Upon completion of your evaluatitesting, you will send to Mentor Graphics a written evaluation of the Beta Code, including its strenweaknesses and recommended improvements. You agree that any written evaluations and all inventions,improvements, modifications or developments that Mentor Graphics conceives or made during or subseqthis Agreement, including those based partly or wholly on your feedback, will be the exclusive proper

This license is a legal “Agreement” concerning the use of Software between you, the end user, eitherindividually or as an authorized representative of the company acquiring the license, and MentorGraphics Corporation and Mentor Graphics (Ireland) Limited, acting directly or through theirsubsidiaries or authorized distributors (collectively “Mentor Graphics”). USE OF SOFTWAREINDICATES YOUR COMPLETE AND UNCONDITIONAL ACCEPTANCE OF THE TERMS ANDCONDITIONS SET FORTH IN THIS AGREEMENT. If you do not agree to these terms and conditions,promptly return, or, if received electronically, certify destruction of, Software and all accompanying itemswithin five days after receipt of Software and receive a full refund of any license fee paid.

Page 789: Icstation User Manual @Vins

The

rizedm andor itsding

equest.ctors,opriateoes notses ofverse-assignrwise

then-t shallnationive the

willntorill beuponityuse,

)

)

Mentor Graphics. Mentor Graphics will have exclusive rights, title and interest in all such property.provisions of this subsection shall survive termination or expiration of this Agreement.

4. RESTRICTIONS ON USE. You may copy Software only as reasonably necessary to support the authouse. Each copy must include all notices and legends embedded in Software and affixed to its mediucontainer as received from Mentor Graphics. All copies shall remain the property of Mentor Graphicslicensors. You shall maintain a record of the number and primary location of all copies of Software, inclucopies merged with other software, and shall make those records available to Mentor Graphics upon rYou shall not make Software available in any form to any person other than employees and contraexcluding Mentor Graphics' competitors, whose job performance requires access. You shall take appraction to protect the confidentiality of Software and ensure that any person permitted access to Software ddisclose it or use it except as permitted by this Agreement. Except as otherwise permitted for purpointeroperability as specified by applicable and mandatory local law, you shall not reverse-assemble, recompile, reverse-engineer or in any way derive from Software any source code. You may not sublicense,or otherwise transfer Software, this Agreement or the rights under it, whether by operation of law or othe(“attempted transfer”) without Mentor Graphics' prior written consent and payment of Mentor Graphicscurrent applicable transfer charges. Any attempted transfer without Mentor Graphics’ prior written consenbe a material breach of this Agreement and may, at Mentor Graphics’ option, result in the immediate termiof the Agreement and licenses granted under this Agreement. The provisions of this section 4 shall survtermination or expiration of this Agreement.

5. LIMITED WARRANTY.

5.1. Mentor Graphics warrants that during the warranty period, Software, when properly installed,substantially conform to the functional specifications set forth in the applicable user manual. MeGraphics does not warrant that Software will meet your requirements or that operation of Software wuninterrupted or error free. The warranty period is 90 days starting on the 15th day after delivery orinstallation, whichever first occurs. You must notify Mentor Graphics in writing of any nonconformwithin the warranty period. This warranty shall not be valid if Software has been subject to misunauthorized modification or installation. MENTOR GRAPHICS' ENTIRE LIABILITY AND YOUREXCLUSIVE REMEDY SHALL BE, AT MENTOR GRAPHICS' OPTION, EITHER (A) REFUND OFTHE PRICE PAID UPON RETURN OF SOFTWARE TO MENTOR GRAPHICS OR (BMODIFICATION OR REPLACEMENT OF SOFTWARE THAT DOES NOT MEET THIS LIMITEDWARRANTY, PROVIDED YOU HAVE OTHERWISE COMPLIED WITH THIS AGREEMENT.MENTOR GRAPHICS MAKES NO WARRANTIES WITH RESPECT TO: (A) SERVICES; (BSOFTWARE WHICH IS LICENSED TO YOU FOR A LIMITED TERM OR LICENSED AT NO COST;OR (C) EXPERIMENTAL BETA CODE; ALL OF WHICH ARE PROVIDED “AS IS.”

5.2. THE WARRANTIES SET FORTH IN THIS SECTION 5 ARE EXCLUSIVE. NEITHER MENTORGRAPHICS NOR ITS LICENSORS MAKE ANY OTHER WARRANTIES, EXPRESS, IMPLIED, ORSTATUTORY, WITH RESPECT TO SOFTWARE OR OTHER MATERIAL PROVIDED UNDER THISAGREEMENT. MENTOR GRAPHICS AND ITS LICENSORS SPECIFICALLY DISCLAIM ALLIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEAND NON-INFRINGEMENT OF INTELLECTUAL PROPERTY.

6. LIMITATION OF LIABILITY. EXCEPT WHERE THIS EXCLUSION OR RESTRICTION OF LIABILITYWOULD BE VOID OR INEFFECTIVE UNDER APPLICABLE LAW, IN NO EVENT SHALL MENTORGRAPHICS OR ITS LICENSORS BE LIABLE FOR INDIRECT, SPECIAL, INCIDENTAL, ORCONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS) WHETHER BASED ONCONTRACT, TORT OR ANY OTHER LEGAL THEORY, EVEN IF MENTOR GRAPHICS OR ITSLICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENTSHALL MENTOR GRAPHICS' OR ITS LICENSORS' LIABILITY UNDER THIS AGREEMENT EXCEEDTHE AMOUNT PAID BY YOU FOR THE SOFTWARE OR SERVICE GIVING RISE TO THE CLAIM. INTHE CASE WHERE NO AMOUNT WAS PAID, MENTOR GRAPHICS AND ITS LICENSORS SHALLHAVE NO LIABILITY FOR ANY DAMAGES WHATSOEVER.

Page 790: Icstation User Manual @Vins

ng thatanada,magesthat ashicsce tose or

odifyr (c)r use.

withntorpart of

re; (g)entorburse

allyseics. Iff thern it tohics'

whichf thedirectl and

rcial.S.

eements (c)(1)

7. LIFE ENDANGERING ACTIVITIES. NEITHER MENTOR GRAPHICS NOR ITS LICENSORS SHALLBE LIABLE FOR ANY DAMAGES RESULTING FROM OR IN CONNECTION WITH THE USE OFSOFTWARE IN ANY APPLICATION WHERE THE FAILURE OR INACCURACY OF THE SOFTWAREMIGHT RESULT IN DEATH OR PERSONAL INJURY.

8. INDEMNIFICATION. YOU AGREE TO INDEMNIFY AND HOLD HARMLESS MENTOR GRAPHICSAND ITS LICENSORS FROM ANY CLAIMS, LOSS, COST, DAMAGE, EXPENSE, OR LIABILITY,INCLUDING ATTORNEYS' FEES, ARISING OUT OF OR IN CONNECTION WITH YOUR USE OFSOFTWARE AS DESCRIBED IN SECTION 7.

9. INFRINGEMENT.

9.1. Mentor Graphics will defend or settle, at its option and expense, any action brought against you allegiSoftware infringes a patent or copyright or misappropriates a trade secret in the United States, CJapan, or member state of the European Patent Office. Mentor Graphics will pay any costs and dafinally awarded against you that are attributable to the infringement action. You understand and agreeconditions to Mentor Graphics’ obligations under this section you must: (a) notify Mentor Grappromptly in writing of the action; (b) provide Mentor Graphics all reasonable information and assistandefend or settle the action; and (c) grant Mentor Graphics sole authority and control of the defensettlement of the action.

9.2. If an infringement claim is made, Mentor Graphics may, at its option and expense: (a) replace or mSoftware so that it becomes noninfringing; (b) procure for you the right to continue using Software; orequire the return of Software and refund to you any license fee paid, less a reasonable allowance fo

9.3. Mentor Graphics has no liability to you if infringement is based upon: (a) the combination of Softwareany product not furnished by Mentor Graphics; (b) the modification of Software other than by MeGraphics; (c) the use of other than a current unaltered release of Software; (d) the use of Software asan infringing process; (e) a product that you make, use or sell; (f) any Beta Code contained in Softwaany Software provided by Mentor Graphics' licensors who do not provide such indemnification to MGraphics' customers; or (h) infringement by you that is deemed willful. In the case of (h) you shall reimMentor Graphics for its attorney fees and other costs related to the action upon a final judgment.

9.4. THIS SECTION 9 STATES THE ENTIRE LIABILITY OF MENTOR GRAPHICS AND ITSLICENSORS AND YOUR SOLE AND EXCLUSIVE REMEDY WITH RESPECT TO ANY ALLEGEDPATENT OR COPYRIGHT INFRINGEMENT OR TRADE SECRET MISAPPROPRIATION BY ANYSOFTWARE LICENSED UNDER THIS AGREEMENT.

10. TERM. This Agreement remains effective until expiration or termination. This Agreement will automaticterminate if you fail to comply with any term or condition of this Agreement or if you fail to pay for the licenwhen due and such failure to pay continues for a period of 30 days after written notice from Mentor GraphSoftware was provided for limited term use, this Agreement will automatically expire at the end oauthorized term. Upon any termination or expiration, you agree to cease all use of Software and retuMentor Graphics or certify deletion and destruction of Software, including all copies, to Mentor Grapreasonable satisfaction.

11. EXPORT. Software is subject to regulation by local laws and United States government agencies,prohibit export or diversion of certain products, information about the products, and direct products oproducts to certain countries and certain persons. You agree that you will not export any Software orproduct of Software in any manner without first obtaining all necessary approval from appropriate locaUnited States government agencies.

12. RESTRICTED RIGHTS NOTICE. Software was developed entirely at private expense and is commecomputer software provided with RESTRICTED RIGHTS. Use, duplication or disclosure by the UGovernment or a U.S. Government subcontractor is subject to the restrictions set forth in the license agrunder which Software was obtained pursuant to DFARS 227.7202-3(a) or as set forth in subparagraph

Page 791: Icstation User Manual @Vins

cable.egon

oment

ourith thef anyer this

sivegontion

id,ining

atterer termsich arerder orizedstituteatter ofenses.

and (2) of the Commercial Computer Software - Restricted Rights clause at FAR 52.227-19, as appliContractor/manufacturer is Mentor Graphics Corporation, 8005 SW Boeckman Road, Wilsonville, Or97070-7777 USA.

13. THIRD PARTY BENEFICIARY. For any Software under this Agreement licensed by Mentor Graphics frMicrosoft or other licensors, Microsoft or the applicable licensor is a third party beneficiary of this Agreemwith the right to enforce the obligations set forth in this Agreement.

14. AUDIT RIGHTS. With reasonable prior notice, Mentor Graphics shall have the right to audit during ynormal business hours all records and accounts as may contain information regarding your compliance wterms of this Agreement. Mentor Graphics shall keep in confidence all information gained as a result oaudit. Mentor Graphics shall only use or disclose such information as necessary to enforce its rights undAgreement.

15. CONTROLLING LAW AND JURISDICTION. THIS AGREEMENT SHALL BE GOVERNED BY ANDCONSTRUED UNDER THE LAWS OF OREGON, USA, IF YOU ARE LOCATED IN NORTH OR SOUTHAMERICA, AND THE LAWS OF IRELAND IF YOU ARE LOCATED OUTSIDE OF NORTH AND SOUTHAMERICA. All disputes arising out of or in relation to this Agreement shall be submitted to the exclujurisdiction of Dublin, Ireland when the laws of Ireland apply, or Wilsonville, Oregon when the laws of Oreapply. This section shall not restrict Mentor Graphics’ right to bring an action against you in the jurisdicwhere your place of business is located.

16. SEVERABILITY. If any provision of this Agreement is held by a court of competent jurisdiction to be voinvalid, unenforceable or illegal, such provision shall be severed from this Agreement and the remaprovisions will remain in full force and effect.

17. MISCELLANEOUS. This Agreement contains the parties’ entire understanding relating to its subject mand supersedes all prior or contemporaneous agreements, including but not limited to any purchase ordand conditions, except valid license agreements related to the subject matter of this Agreement (whphysically signed by you and an authorized agent of Mentor Graphics) either referenced in the purchase ootherwise governing this subject matter. This Agreement may only be modified in writing by authorrepresentatives of the parties. Waiver of terms or excuse of breach must be in writing and shall not consubsequent consent, waiver or excuse. The prevailing party in any legal action regarding the subject mthis Agreement shall be entitled to recover, in addition to other relief, reasonable attorneys' fees and exp

Rev. 020826, Part Number 214231